this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add artist form

Hilke Ros 55ac0afc 5db26480

+705 -8
+3
.gitignore
··· 39 39 # typescript 40 40 *.tsbuildinfo 41 41 next-env.d.ts 42 + 43 + # sqlite file 44 + app.db*
app.db

This is a binary file and will not be displayed.

app.db-shm

This is a binary file and will not be displayed.

app.db-wal

This is a binary file and will not be displayed.

+34
app/api/artist/route.ts
··· 1 + import { NextRequest, NextResponse } from "next/server"; 2 + import { Client } from "@atproto/lex"; 3 + import { getSession } from "@/lib/auth/session"; 4 + import { getOAuthClient } from "@/lib/auth/client"; 5 + import * as ch from "@/src/lexicons/ch"; 6 + 7 + export async function POST(request: NextRequest) { 8 + 9 + const session = await getSession(); 10 + if (!session) { 11 + return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); 12 + } 13 + 14 + const { name } = await request.json(); 15 + 16 + if (!name || typeof name !== "string") { 17 + return NextResponse.json({ error: "Name is required" }, { status: 400 }); 18 + } 19 + 20 + const client = await getOAuthClient(); 21 + const oauthSession = await client.restore(session.did); 22 + const lexClient = new Client(oauthSession); 23 + 24 + const createdAt = new Date().toISOString(); 25 + const res = await lexClient.create(ch.indiemusi.alpha.actor.artist, { 26 + name, 27 + createdAt, 28 + }); 29 + 30 + return NextResponse.json({ 31 + success: true, 32 + uri: res.uri, 33 + }); 34 + }
+7 -7
app/page.tsx
··· 1 1 import { getSession } from "@/lib/auth/session"; 2 2 import { LoginForm } from "@/components/LoginForm"; 3 3 import { LogoutButton } from "@/components/LogoutButton"; 4 + import { ArtistForm } from "@/components/ArtistForm"; 4 5 5 6 export default async function Home() { 6 7 const session = await getSession(); ··· 10 11 <main className="w-full max-w-md mx-auto p-8"> 11 12 <div className="text-center mb-8"> 12 13 <h1 className="text-3xl font-bold text-zinc-900 dark:text-zinc-100 mb-2"> 13 - AT Protocol OAuth 14 + Statusphere 14 15 </h1> 15 16 <p className="text-zinc-600 dark:text-zinc-400"> 16 - Sign in with your AT Protocol account 17 + Set your status on the Atmosphere 17 18 </p> 18 19 </div> 19 20 20 21 <div className="bg-white dark:bg-zinc-900 rounded-lg border border-zinc-200 dark:border-zinc-800 p-6"> 21 22 {session ? ( 22 23 <div className="space-y-4"> 23 - <div className="flex items-center justify-between"> 24 - <p className="text-sm text-zinc-600 dark:text-zinc-400"> 25 - Signed in as{" "} 26 - <span className="font-mono">{session.did}</span> 24 + <div className="flex items-center justify-between mb-4"> 25 + <p className="text-sm text-zinc-500 dark:text-zinc-400"> 26 + Signed in 27 27 </p> 28 28 <LogoutButton /> 29 29 </div> 30 - <p className="text-green-600">Authentication working!</p> 30 + <ArtistForm /> 31 31 </div> 32 32 ) : ( 33 33 <LoginForm />
+65
components/ArtistForm.tsx
··· 1 + "use client"; 2 + 3 + import { useState } from "react"; 4 + import { useRouter } from "next/navigation"; 5 + 6 + 7 + 8 + export function ArtistForm() { 9 + const router = useRouter(); 10 + const [name, setName] = useState(""); 11 + const [loading, setLoading] = useState(false); 12 + const [error, setError] = useState<string | null>(null); 13 + 14 + async function handleSubmit(e: React.FormEvent) { 15 + e.preventDefault(); 16 + setLoading(true); 17 + setError(null); 18 + 19 + try { 20 + const res = await fetch("/api/artist", { 21 + method: "POST", 22 + headers: { "Content-Type": "application/json" }, 23 + body: JSON.stringify({ name }), 24 + }); 25 + 26 + if (!res.ok) { 27 + throw new Error("Failed to update artist"); 28 + } 29 + 30 + router.refresh(); 31 + } catch (err) { 32 + console.error("Failed to update artist:", err); 33 + // setSelected(currentStatus ?? null); 34 + } finally { 35 + setLoading(false); 36 + } 37 + } 38 + 39 + return ( 40 + <form onSubmit={handleSubmit} className="space-y-4"> 41 + <div> 42 + <label className="block text-sm font-medium text-zinc-700 dark:text-zinc-300 mb-1"> 43 + Artist name 44 + </label> 45 + <input 46 + type="text" 47 + value={name} 48 + onChange={(e) => setName(e.target.value)} 49 + className="w-full px-3 py-2 border border-zinc-300 dark:border-zinc-700 rounded-lg bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100" 50 + disabled={loading} 51 + /> 52 + </div> 53 + 54 + {error && <p className="text-red-500 text-sm">{error}</p>} 55 + 56 + <button 57 + type="submit" 58 + disabled={loading || !name} 59 + className="w-full py-2 px-4 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50" 60 + > 61 + {loading ? "Saving..." : "Save Artist"} 62 + </button> 63 + </form> 64 + ); 65 + }
+1 -1
lib/auth/client.ts
··· 8 8 } from "@atproto/oauth-client-node"; 9 9 import { getDb } from "../db"; 10 10 11 - export const SCOPE = "atproto"; 11 + export const SCOPE = "atproto repo:ch.indiemusi.alpha.actor.artist"; 12 12 13 13 // Use globalThis to persist across Next.js hot reloads 14 14 const globalAuth = globalThis as unknown as {
+1
package.json
··· 10 10 "migrate": "tsx scripts/migrate.ts" 11 11 }, 12 12 "dependencies": { 13 + "@atproto/lex": "^0.0.20", 13 14 "@atproto/oauth-client-node": "^0.3.17", 14 15 "better-sqlite3": "^12.6.2", 15 16 "kysely": "^0.28.11",
+429
pnpm-lock.yaml
··· 8 8 9 9 .: 10 10 dependencies: 11 + '@atproto/lex': 12 + specifier: ^0.0.20 13 + version: 0.0.20 11 14 '@atproto/oauth-client-node': 12 15 specifier: ^0.3.17 13 16 version: 0.3.17 ··· 96 99 '@atproto/common-web@0.4.18': 97 100 resolution: {integrity: sha512-ilImzP+9N/mtse440kN60pGrEzG7wi4xsV13nGeLrS+Zocybc/ISOpKlbZM13o+twPJ+Q7veGLw9CtGg0GAFoQ==} 98 101 102 + '@atproto/common@0.5.14': 103 + resolution: {integrity: sha512-FnhTppvJw8I1AuvEkL9JREFwmM6ciYfSlQ0Zo6neiJIhTf1wf5/ONeFSYKu1/dxC63JEratGIAfVjSBJJZi7sg==} 104 + engines: {node: '>=18.7.0'} 105 + 106 + '@atproto/crypto@0.4.5': 107 + resolution: {integrity: sha512-n40aKkMoCatP0u9Yvhrdk6fXyOHFDDbkdm4h4HCyWW+KlKl8iXfD5iV+ECq+w5BM+QH25aIpt3/j6EUNerhLxw==} 108 + engines: {node: '>=18.7.0'} 109 + 99 110 '@atproto/did@0.3.0': 100 111 resolution: {integrity: sha512-raUPzUGegtW/6OxwCmM8bhZvuIMzxG5t9oWsth6Tp91Kb5fTnHV2h/KKNF1C82doeA4BdXCErTyg7ISwLbQkzA==} 101 112 ··· 108 119 '@atproto/jwk@0.6.0': 109 120 resolution: {integrity: sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==} 110 121 122 + '@atproto/lex-builder@0.0.17': 123 + resolution: {integrity: sha512-lM1eTonUdhJ5d899tX7fNxDmU9bnq+laO+H6OkxPbJe5FNyp/ZtnDmaQ5eHO+Hkr9RNBoV1/5b2Mw9OXgYFW7Q==} 124 + 125 + '@atproto/lex-cbor@0.0.14': 126 + resolution: {integrity: sha512-zeqxaKAifR8qlFKg4A6t1RCT8TcjeDnIXLtp3QnDu0QoxslxsmcsrqNrrgmka8w+bYW2+h/rT9MPWglkT7vHyw==} 127 + 128 + '@atproto/lex-client@0.0.15': 129 + resolution: {integrity: sha512-j/eZGCdkhABU8Z868Y/gn909hS77rOCdMqtOaQdflEaKUKiAo2/gqeTpoAjHBnL5Rzz255wj9qZMqZTR/Ygwxw==} 130 + 111 131 '@atproto/lex-data@0.0.13': 112 132 resolution: {integrity: sha512-7Z7RwZ1Y/JzBF/Tcn/I4UJ/vIGfh5zn1zjv0KX+flke2JtgFkSE8uh2hOtqgBQMNqE3zdJFM+dcSWln86hR3MQ==} 113 133 134 + '@atproto/lex-document@0.0.15': 135 + resolution: {integrity: sha512-QT2MbICG4cTFrrA19SIHpZJ33WRLdzjhDsEhSknQ4dE5CjqPf4BP9LaC4pOeW8NE5Kn92hgIm3JWNjoak8blXw==} 136 + 137 + '@atproto/lex-installer@0.0.20': 138 + resolution: {integrity: sha512-ImlGANCwFO1ALIr+k6FrnxVpm7DV9LSm8lpn7gHJUhwFL9FgkW7lJKBo/2pis8JgKbL4ShB5JSom/AAdLWSqQA==} 139 + 114 140 '@atproto/lex-json@0.0.13': 115 141 resolution: {integrity: sha512-hwLhkKaIHulGJpt0EfXAEWdrxqM2L1tV/tvilzhMp3QxPqYgXchFnrfVmLsyFDx6P6qkH1GsX/XC2V36U0UlPQ==} 116 142 143 + '@atproto/lex-resolver@0.0.17': 144 + resolution: {integrity: sha512-6nI5bYZUYh50ZI8r4erLRP9EbNcW226VShpVN3vHyOSgTje4VP1RTcvBhROBAPj4rL3vc+Oa8OiL6IQXkYrQBg==} 145 + 146 + '@atproto/lex-schema@0.0.14': 147 + resolution: {integrity: sha512-xUxFuXdgVVI1IBDXcQlanH7HuEo9Pk65DYifnhqFDzNRH9SZQxPvPO+rOxMG/bRHygPaI+A+UbXr+S7qpPYOLg==} 148 + 149 + '@atproto/lex@0.0.20': 150 + resolution: {integrity: sha512-pMLNoqwV27OzM74FDvHWpFtLC6dXFzKmdL5GHVIQFLdHmyg2Ob199AUgZuwC6dl2E9pqDyl8QlV8QcmKHSa8OA==} 151 + hasBin: true 152 + 117 153 '@atproto/lexicon@0.6.2': 118 154 resolution: {integrity: sha512-p3Ly6hinVZW0ETuAXZMeUGwuMm3g8HvQMQ41yyEE6AL0hAkfeKFaZKos6BdBrr6CjkpbrDZqE8M+5+QOceysMw==} 119 155 ··· 126 162 127 163 '@atproto/oauth-types@0.6.3': 128 164 resolution: {integrity: sha512-jdKuoPknJuh/WjI+mYk7agSbx9mNVMbS6Dr3k1z2YMY2oRiCQjxYBuo4MLKATbxj05nMQaZRWlHRUazoAu5Cng==} 165 + 166 + '@atproto/repo@0.8.12': 167 + resolution: {integrity: sha512-QpVTVulgfz5PUiCTELlDBiRvnsnwrFWi+6CfY88VwXzrRHd9NE8GItK7sfxQ6U65vD/idH8ddCgFrlrsn1REPQ==} 168 + engines: {node: '>=18.7.0'} 129 169 130 170 '@atproto/syntax@0.5.0': 131 171 resolution: {integrity: sha512-UA2DSpGdOQzUQ4gi5SH+NEJz/YR3a3Fg3y2oh+xETDSiTRmA4VhHRCojhXAVsBxUT6EnItw190C/KN+DWW90kw==} ··· 572 612 cpu: [x64] 573 613 os: [win32] 574 614 615 + '@ipld/dag-cbor@7.0.3': 616 + resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} 617 + 575 618 '@jridgewell/gen-mapping@0.3.13': 576 619 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 577 620 ··· 648 691 engines: {node: '>= 10'} 649 692 cpu: [x64] 650 693 os: [win32] 694 + 695 + '@noble/curves@1.9.7': 696 + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} 697 + engines: {node: ^14.21.3 || >=16} 698 + 699 + '@noble/hashes@1.8.0': 700 + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} 701 + engines: {node: ^14.21.3 || >=16} 651 702 652 703 '@nodelib/fs.scandir@2.1.5': 653 704 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} ··· 762 813 763 814 '@tailwindcss/postcss@4.2.1': 764 815 resolution: {integrity: sha512-OEwGIBnXnj7zJeonOh6ZG9woofIjGrd2BORfvE5p9USYKDCZoQmfqLcfNiRWoJlRWLdNPn2IgVZuWAOM4iTYMw==} 816 + 817 + '@ts-morph/common@0.28.1': 818 + resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} 765 819 766 820 '@tybys/wasm-util@0.10.1': 767 821 resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} ··· 951 1005 cpu: [x64] 952 1006 os: [win32] 953 1007 1008 + abort-controller@3.0.0: 1009 + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 1010 + engines: {node: '>=6.5'} 1011 + 954 1012 acorn-jsx@5.3.2: 955 1013 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 956 1014 peerDependencies: ··· 964 1022 ajv@6.14.0: 965 1023 resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} 966 1024 1025 + ansi-regex@5.0.1: 1026 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1027 + engines: {node: '>=8'} 1028 + 967 1029 ansi-styles@4.3.0: 968 1030 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 969 1031 engines: {node: '>=8'} ··· 1013 1075 async-function@1.0.0: 1014 1076 resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 1015 1077 engines: {node: '>= 0.4'} 1078 + 1079 + atomic-sleep@1.0.0: 1080 + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 1081 + engines: {node: '>=8.0.0'} 1016 1082 1017 1083 available-typed-arrays@1.0.7: 1018 1084 resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} ··· 1070 1136 buffer@5.7.1: 1071 1137 resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 1072 1138 1139 + buffer@6.0.3: 1140 + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1141 + 1073 1142 call-bind-apply-helpers@1.0.2: 1074 1143 resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 1075 1144 engines: {node: '>= 0.4'} ··· 1089 1158 caniuse-lite@1.0.30001776: 1090 1159 resolution: {integrity: sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw==} 1091 1160 1161 + cborg@1.10.2: 1162 + resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} 1163 + hasBin: true 1164 + 1092 1165 chalk@4.1.2: 1093 1166 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1094 1167 engines: {node: '>=10'} ··· 1098 1171 1099 1172 client-only@0.0.1: 1100 1173 resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 1174 + 1175 + cliui@8.0.1: 1176 + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 1177 + engines: {node: '>=12'} 1178 + 1179 + code-block-writer@13.0.3: 1180 + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} 1101 1181 1102 1182 color-convert@2.0.1: 1103 1183 resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} ··· 1188 1268 electron-to-chromium@1.5.307: 1189 1269 resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} 1190 1270 1271 + emoji-regex@8.0.0: 1272 + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1273 + 1191 1274 emoji-regex@9.2.2: 1192 1275 resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1193 1276 ··· 1363 1446 resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1364 1447 engines: {node: '>=0.10.0'} 1365 1448 1449 + event-target-shim@5.0.1: 1450 + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1451 + engines: {node: '>=6'} 1452 + 1453 + events@3.3.0: 1454 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1455 + engines: {node: '>=0.8.x'} 1456 + 1366 1457 expand-template@2.0.3: 1367 1458 resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 1368 1459 engines: {node: '>=6'} ··· 1379 1470 1380 1471 fast-levenshtein@2.0.6: 1381 1472 resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1473 + 1474 + fast-redact@3.5.0: 1475 + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 1476 + engines: {node: '>=6'} 1382 1477 1383 1478 fastq@1.20.1: 1384 1479 resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} ··· 1444 1539 resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1445 1540 engines: {node: '>=6.9.0'} 1446 1541 1542 + get-caller-file@2.0.5: 1543 + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1544 + engines: {node: 6.* || 8.* || >= 10.*} 1545 + 1447 1546 get-intrinsic@1.3.0: 1448 1547 resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1449 1548 engines: {node: '>= 0.4'} ··· 1597 1696 is-finalizationregistry@1.1.1: 1598 1697 resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1599 1698 engines: {node: '>= 0.4'} 1699 + 1700 + is-fullwidth-code-point@3.0.0: 1701 + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1702 + engines: {node: '>=8'} 1600 1703 1601 1704 is-generator-function@1.1.2: 1602 1705 resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} ··· 1939 2042 resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1940 2043 engines: {node: '>= 0.4'} 1941 2044 2045 + on-exit-leak-free@2.1.2: 2046 + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 2047 + engines: {node: '>=14.0.0'} 2048 + 1942 2049 once@1.4.0: 1943 2050 resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1944 2051 ··· 1962 2069 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1963 2070 engines: {node: '>=6'} 1964 2071 2072 + path-browserify@1.0.1: 2073 + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 2074 + 1965 2075 path-exists@4.0.0: 1966 2076 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1967 2077 engines: {node: '>=8'} ··· 1984 2094 resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1985 2095 engines: {node: '>=12'} 1986 2096 2097 + pino-abstract-transport@1.2.0: 2098 + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 2099 + 2100 + pino-std-serializers@6.2.2: 2101 + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 2102 + 2103 + pino@8.21.0: 2104 + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} 2105 + hasBin: true 2106 + 1987 2107 possible-typed-array-names@1.1.0: 1988 2108 resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} 1989 2109 engines: {node: '>= 0.4'} ··· 2006 2126 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2007 2127 engines: {node: '>= 0.8.0'} 2008 2128 2129 + prettier@3.8.1: 2130 + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} 2131 + engines: {node: '>=14'} 2132 + hasBin: true 2133 + 2134 + process-warning@3.0.0: 2135 + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 2136 + 2137 + process@0.11.10: 2138 + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 2139 + engines: {node: '>= 0.6.0'} 2140 + 2009 2141 prop-types@15.8.1: 2010 2142 resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2011 2143 ··· 2018 2150 2019 2151 queue-microtask@1.2.3: 2020 2152 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2153 + 2154 + quick-format-unescaped@4.0.4: 2155 + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 2021 2156 2022 2157 rc@1.2.8: 2023 2158 resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} ··· 2039 2174 resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 2040 2175 engines: {node: '>= 6'} 2041 2176 2177 + readable-stream@4.7.0: 2178 + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 2179 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2180 + 2181 + real-require@0.2.0: 2182 + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 2183 + engines: {node: '>= 12.13.0'} 2184 + 2042 2185 reflect.getprototypeof@1.0.10: 2043 2186 resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 2044 2187 engines: {node: '>= 0.4'} ··· 2046 2189 regexp.prototype.flags@1.5.4: 2047 2190 resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 2048 2191 engines: {node: '>= 0.4'} 2192 + 2193 + require-directory@2.1.1: 2194 + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 2195 + engines: {node: '>=0.10.0'} 2049 2196 2050 2197 resolve-from@4.0.0: 2051 2198 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} ··· 2086 2233 resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 2087 2234 engines: {node: '>= 0.4'} 2088 2235 2236 + safe-stable-stringify@2.5.0: 2237 + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 2238 + engines: {node: '>=10'} 2239 + 2089 2240 scheduler@0.27.0: 2090 2241 resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 2091 2242 ··· 2144 2295 simple-get@4.0.1: 2145 2296 resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 2146 2297 2298 + sonic-boom@3.8.1: 2299 + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} 2300 + 2147 2301 source-map-js@1.2.1: 2148 2302 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2149 2303 engines: {node: '>=0.10.0'} 2150 2304 2305 + split2@4.2.0: 2306 + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 2307 + engines: {node: '>= 10.x'} 2308 + 2151 2309 stable-hash@0.0.5: 2152 2310 resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} 2153 2311 2154 2312 stop-iteration-iterator@1.1.0: 2155 2313 resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} 2156 2314 engines: {node: '>= 0.4'} 2315 + 2316 + string-width@4.2.3: 2317 + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2318 + engines: {node: '>=8'} 2157 2319 2158 2320 string.prototype.includes@2.0.1: 2159 2321 resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} ··· 2181 2343 string_decoder@1.3.0: 2182 2344 resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2183 2345 2346 + strip-ansi@6.0.1: 2347 + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2348 + engines: {node: '>=8'} 2349 + 2184 2350 strip-bom@3.0.0: 2185 2351 resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2186 2352 engines: {node: '>=4'} ··· 2227 2393 tar-stream@2.2.0: 2228 2394 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 2229 2395 engines: {node: '>=6'} 2396 + 2397 + thread-stream@2.7.0: 2398 + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 2230 2399 2231 2400 tinyglobby@0.2.15: 2232 2401 resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} ··· 2242 2411 peerDependencies: 2243 2412 typescript: '>=4.8.4' 2244 2413 2414 + ts-morph@27.0.2: 2415 + resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==} 2416 + 2245 2417 tsconfig-paths@3.15.0: 2246 2418 resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2247 2419 ··· 2320 2492 util-deprecate@1.0.2: 2321 2493 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2322 2494 2495 + varint@6.0.0: 2496 + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} 2497 + 2323 2498 which-boxed-primitive@1.1.1: 2324 2499 resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 2325 2500 engines: {node: '>= 0.4'} ··· 2345 2520 resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2346 2521 engines: {node: '>=0.10.0'} 2347 2522 2523 + wrap-ansi@7.0.0: 2524 + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2525 + engines: {node: '>=10'} 2526 + 2348 2527 wrappy@1.0.2: 2349 2528 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2529 + 2530 + y18n@5.0.8: 2531 + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2532 + engines: {node: '>=10'} 2350 2533 2351 2534 yallist@3.1.1: 2352 2535 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2353 2536 2537 + yargs-parser@21.1.1: 2538 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2539 + engines: {node: '>=12'} 2540 + 2541 + yargs@17.7.2: 2542 + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2543 + engines: {node: '>=12'} 2544 + 2354 2545 yocto-queue@0.1.0: 2355 2546 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2356 2547 engines: {node: '>=10'} ··· 2425 2616 '@atproto/syntax': 0.5.0 2426 2617 zod: 3.25.76 2427 2618 2619 + '@atproto/common@0.5.14': 2620 + dependencies: 2621 + '@atproto/common-web': 0.4.18 2622 + '@atproto/lex-cbor': 0.0.14 2623 + '@atproto/lex-data': 0.0.13 2624 + multiformats: 9.9.0 2625 + pino: 8.21.0 2626 + 2627 + '@atproto/crypto@0.4.5': 2628 + dependencies: 2629 + '@noble/curves': 1.9.7 2630 + '@noble/hashes': 1.8.0 2631 + uint8arrays: 3.0.0 2632 + 2428 2633 '@atproto/did@0.3.0': 2429 2634 dependencies: 2430 2635 zod: 3.25.76 ··· 2445 2650 multiformats: 9.9.0 2446 2651 zod: 3.25.76 2447 2652 2653 + '@atproto/lex-builder@0.0.17': 2654 + dependencies: 2655 + '@atproto/lex-document': 0.0.15 2656 + '@atproto/lex-schema': 0.0.14 2657 + prettier: 3.8.1 2658 + ts-morph: 27.0.2 2659 + tslib: 2.8.1 2660 + 2661 + '@atproto/lex-cbor@0.0.14': 2662 + dependencies: 2663 + '@atproto/lex-data': 0.0.13 2664 + tslib: 2.8.1 2665 + 2666 + '@atproto/lex-client@0.0.15': 2667 + dependencies: 2668 + '@atproto/lex-data': 0.0.13 2669 + '@atproto/lex-json': 0.0.13 2670 + '@atproto/lex-schema': 0.0.14 2671 + tslib: 2.8.1 2672 + 2448 2673 '@atproto/lex-data@0.0.13': 2449 2674 dependencies: 2450 2675 multiformats: 9.9.0 2451 2676 tslib: 2.8.1 2452 2677 uint8arrays: 3.0.0 2453 2678 unicode-segmenter: 0.14.5 2679 + 2680 + '@atproto/lex-document@0.0.15': 2681 + dependencies: 2682 + '@atproto/lex-schema': 0.0.14 2683 + core-js: 3.48.0 2684 + tslib: 2.8.1 2685 + 2686 + '@atproto/lex-installer@0.0.20': 2687 + dependencies: 2688 + '@atproto/lex-builder': 0.0.17 2689 + '@atproto/lex-cbor': 0.0.14 2690 + '@atproto/lex-data': 0.0.13 2691 + '@atproto/lex-document': 0.0.15 2692 + '@atproto/lex-resolver': 0.0.17 2693 + '@atproto/lex-schema': 0.0.14 2694 + '@atproto/syntax': 0.5.0 2695 + tslib: 2.8.1 2454 2696 2455 2697 '@atproto/lex-json@0.0.13': 2456 2698 dependencies: 2457 2699 '@atproto/lex-data': 0.0.13 2458 2700 tslib: 2.8.1 2459 2701 2702 + '@atproto/lex-resolver@0.0.17': 2703 + dependencies: 2704 + '@atproto-labs/did-resolver': 0.2.6 2705 + '@atproto/crypto': 0.4.5 2706 + '@atproto/lex-client': 0.0.15 2707 + '@atproto/lex-data': 0.0.13 2708 + '@atproto/lex-document': 0.0.15 2709 + '@atproto/lex-schema': 0.0.14 2710 + '@atproto/repo': 0.8.12 2711 + '@atproto/syntax': 0.5.0 2712 + tslib: 2.8.1 2713 + 2714 + '@atproto/lex-schema@0.0.14': 2715 + dependencies: 2716 + '@atproto/lex-data': 0.0.13 2717 + '@atproto/syntax': 0.5.0 2718 + tslib: 2.8.1 2719 + 2720 + '@atproto/lex@0.0.20': 2721 + dependencies: 2722 + '@atproto/lex-builder': 0.0.17 2723 + '@atproto/lex-client': 0.0.15 2724 + '@atproto/lex-data': 0.0.13 2725 + '@atproto/lex-installer': 0.0.20 2726 + '@atproto/lex-json': 0.0.13 2727 + '@atproto/lex-schema': 0.0.14 2728 + tslib: 2.8.1 2729 + yargs: 17.7.2 2730 + 2460 2731 '@atproto/lexicon@0.6.2': 2461 2732 dependencies: 2462 2733 '@atproto/common-web': 0.4.18 ··· 2497 2768 dependencies: 2498 2769 '@atproto/did': 0.3.0 2499 2770 '@atproto/jwk': 0.6.0 2771 + zod: 3.25.76 2772 + 2773 + '@atproto/repo@0.8.12': 2774 + dependencies: 2775 + '@atproto/common': 0.5.14 2776 + '@atproto/common-web': 0.4.18 2777 + '@atproto/crypto': 0.4.5 2778 + '@atproto/lexicon': 0.6.2 2779 + '@ipld/dag-cbor': 7.0.3 2780 + multiformats: 9.9.0 2781 + uint8arrays: 3.0.0 2782 + varint: 6.0.0 2500 2783 zod: 3.25.76 2501 2784 2502 2785 '@atproto/syntax@0.5.0': ··· 2856 3139 '@img/sharp-win32-x64@0.34.5': 2857 3140 optional: true 2858 3141 3142 + '@ipld/dag-cbor@7.0.3': 3143 + dependencies: 3144 + cborg: 1.10.2 3145 + multiformats: 9.9.0 3146 + 2859 3147 '@jridgewell/gen-mapping@0.3.13': 2860 3148 dependencies: 2861 3149 '@jridgewell/sourcemap-codec': 1.5.5 ··· 2911 3199 2912 3200 '@next/swc-win32-x64-msvc@16.1.6': 2913 3201 optional: true 3202 + 3203 + '@noble/curves@1.9.7': 3204 + dependencies: 3205 + '@noble/hashes': 1.8.0 3206 + 3207 + '@noble/hashes@1.8.0': {} 2914 3208 2915 3209 '@nodelib/fs.scandir@2.1.5': 2916 3210 dependencies: ··· 3001 3295 postcss: 8.5.8 3002 3296 tailwindcss: 4.2.1 3003 3297 3298 + '@ts-morph/common@0.28.1': 3299 + dependencies: 3300 + minimatch: 10.2.4 3301 + path-browserify: 1.0.1 3302 + tinyglobby: 0.2.15 3303 + 3004 3304 '@tybys/wasm-util@0.10.1': 3005 3305 dependencies: 3006 3306 tslib: 2.8.1 ··· 3178 3478 '@unrs/resolver-binding-win32-x64-msvc@1.11.1': 3179 3479 optional: true 3180 3480 3481 + abort-controller@3.0.0: 3482 + dependencies: 3483 + event-target-shim: 5.0.1 3484 + 3181 3485 acorn-jsx@5.3.2(acorn@8.16.0): 3182 3486 dependencies: 3183 3487 acorn: 8.16.0 ··· 3190 3494 fast-json-stable-stringify: 2.1.0 3191 3495 json-schema-traverse: 0.4.1 3192 3496 uri-js: 4.4.1 3497 + 3498 + ansi-regex@5.0.1: {} 3193 3499 3194 3500 ansi-styles@4.3.0: 3195 3501 dependencies: ··· 3270 3576 3271 3577 async-function@1.0.0: {} 3272 3578 3579 + atomic-sleep@1.0.0: {} 3580 + 3273 3581 available-typed-arrays@1.0.7: 3274 3582 dependencies: 3275 3583 possible-typed-array-names: 1.1.0 ··· 3327 3635 base64-js: 1.5.1 3328 3636 ieee754: 1.2.1 3329 3637 3638 + buffer@6.0.3: 3639 + dependencies: 3640 + base64-js: 1.5.1 3641 + ieee754: 1.2.1 3642 + 3330 3643 call-bind-apply-helpers@1.0.2: 3331 3644 dependencies: 3332 3645 es-errors: 1.3.0 ··· 3348 3661 3349 3662 caniuse-lite@1.0.30001776: {} 3350 3663 3664 + cborg@1.10.2: {} 3665 + 3351 3666 chalk@4.1.2: 3352 3667 dependencies: 3353 3668 ansi-styles: 4.3.0 ··· 3357 3672 3358 3673 client-only@0.0.1: {} 3359 3674 3675 + cliui@8.0.1: 3676 + dependencies: 3677 + string-width: 4.2.3 3678 + strip-ansi: 6.0.1 3679 + wrap-ansi: 7.0.0 3680 + 3681 + code-block-writer@13.0.3: {} 3682 + 3360 3683 color-convert@2.0.1: 3361 3684 dependencies: 3362 3685 color-name: 1.1.4 ··· 3438 3761 gopd: 1.2.0 3439 3762 3440 3763 electron-to-chromium@1.5.307: {} 3764 + 3765 + emoji-regex@8.0.0: {} 3441 3766 3442 3767 emoji-regex@9.2.2: {} 3443 3768 ··· 3788 4113 estraverse@5.3.0: {} 3789 4114 3790 4115 esutils@2.0.3: {} 4116 + 4117 + event-target-shim@5.0.1: {} 4118 + 4119 + events@3.3.0: {} 3791 4120 3792 4121 expand-template@2.0.3: {} 3793 4122 ··· 3805 4134 3806 4135 fast-levenshtein@2.0.6: {} 3807 4136 4137 + fast-redact@3.5.0: {} 4138 + 3808 4139 fastq@1.20.1: 3809 4140 dependencies: 3810 4141 reusify: 1.1.0 ··· 3860 4191 generator-function@2.0.1: {} 3861 4192 3862 4193 gensync@1.0.0-beta.2: {} 4194 + 4195 + get-caller-file@2.0.5: {} 3863 4196 3864 4197 get-intrinsic@1.3.0: 3865 4198 dependencies: ··· 4014 4347 is-finalizationregistry@1.1.1: 4015 4348 dependencies: 4016 4349 call-bound: 1.0.4 4350 + 4351 + is-fullwidth-code-point@3.0.0: {} 4017 4352 4018 4353 is-generator-function@1.1.2: 4019 4354 dependencies: ··· 4323 4658 define-properties: 1.2.1 4324 4659 es-object-atoms: 1.1.1 4325 4660 4661 + on-exit-leak-free@2.1.2: {} 4662 + 4326 4663 once@1.4.0: 4327 4664 dependencies: 4328 4665 wrappy: 1.0.2 ··· 4354 4691 dependencies: 4355 4692 callsites: 3.1.0 4356 4693 4694 + path-browserify@1.0.1: {} 4695 + 4357 4696 path-exists@4.0.0: {} 4358 4697 4359 4698 path-key@3.1.1: {} ··· 4366 4705 4367 4706 picomatch@4.0.3: {} 4368 4707 4708 + pino-abstract-transport@1.2.0: 4709 + dependencies: 4710 + readable-stream: 4.7.0 4711 + split2: 4.2.0 4712 + 4713 + pino-std-serializers@6.2.2: {} 4714 + 4715 + pino@8.21.0: 4716 + dependencies: 4717 + atomic-sleep: 1.0.0 4718 + fast-redact: 3.5.0 4719 + on-exit-leak-free: 2.1.2 4720 + pino-abstract-transport: 1.2.0 4721 + pino-std-serializers: 6.2.2 4722 + process-warning: 3.0.0 4723 + quick-format-unescaped: 4.0.4 4724 + real-require: 0.2.0 4725 + safe-stable-stringify: 2.5.0 4726 + sonic-boom: 3.8.1 4727 + thread-stream: 2.7.0 4728 + 4369 4729 possible-typed-array-names@1.1.0: {} 4370 4730 4371 4731 postcss@8.4.31: ··· 4397 4757 4398 4758 prelude-ls@1.2.1: {} 4399 4759 4760 + prettier@3.8.1: {} 4761 + 4762 + process-warning@3.0.0: {} 4763 + 4764 + process@0.11.10: {} 4765 + 4400 4766 prop-types@15.8.1: 4401 4767 dependencies: 4402 4768 loose-envify: 1.4.0 ··· 4411 4777 punycode@2.3.1: {} 4412 4778 4413 4779 queue-microtask@1.2.3: {} 4780 + 4781 + quick-format-unescaped@4.0.4: {} 4414 4782 4415 4783 rc@1.2.8: 4416 4784 dependencies: ··· 4434 4802 string_decoder: 1.3.0 4435 4803 util-deprecate: 1.0.2 4436 4804 4805 + readable-stream@4.7.0: 4806 + dependencies: 4807 + abort-controller: 3.0.0 4808 + buffer: 6.0.3 4809 + events: 3.3.0 4810 + process: 0.11.10 4811 + string_decoder: 1.3.0 4812 + 4813 + real-require@0.2.0: {} 4814 + 4437 4815 reflect.getprototypeof@1.0.10: 4438 4816 dependencies: 4439 4817 call-bind: 1.0.8 ··· 4453 4831 get-proto: 1.0.1 4454 4832 gopd: 1.2.0 4455 4833 set-function-name: 2.0.2 4834 + 4835 + require-directory@2.1.1: {} 4456 4836 4457 4837 resolve-from@4.0.0: {} 4458 4838 ··· 4499 4879 call-bound: 1.0.4 4500 4880 es-errors: 1.3.0 4501 4881 is-regex: 1.2.1 4882 + 4883 + safe-stable-stringify@2.5.0: {} 4502 4884 4503 4885 scheduler@0.27.0: {} 4504 4886 ··· 4602 4984 once: 1.4.0 4603 4985 simple-concat: 1.0.1 4604 4986 4987 + sonic-boom@3.8.1: 4988 + dependencies: 4989 + atomic-sleep: 1.0.0 4990 + 4605 4991 source-map-js@1.2.1: {} 4606 4992 4993 + split2@4.2.0: {} 4994 + 4607 4995 stable-hash@0.0.5: {} 4608 4996 4609 4997 stop-iteration-iterator@1.1.0: ··· 4611 4999 es-errors: 1.3.0 4612 5000 internal-slot: 1.1.0 4613 5001 5002 + string-width@4.2.3: 5003 + dependencies: 5004 + emoji-regex: 8.0.0 5005 + is-fullwidth-code-point: 3.0.0 5006 + strip-ansi: 6.0.1 5007 + 4614 5008 string.prototype.includes@2.0.1: 4615 5009 dependencies: 4616 5010 call-bind: 1.0.8 ··· 4665 5059 dependencies: 4666 5060 safe-buffer: 5.2.1 4667 5061 5062 + strip-ansi@6.0.1: 5063 + dependencies: 5064 + ansi-regex: 5.0.1 5065 + 4668 5066 strip-bom@3.0.0: {} 4669 5067 4670 5068 strip-json-comments@2.0.1: {} ··· 4703 5101 inherits: 2.0.4 4704 5102 readable-stream: 3.6.2 4705 5103 5104 + thread-stream@2.7.0: 5105 + dependencies: 5106 + real-require: 0.2.0 5107 + 4706 5108 tinyglobby@0.2.15: 4707 5109 dependencies: 4708 5110 fdir: 6.5.0(picomatch@4.0.3) ··· 4716 5118 dependencies: 4717 5119 typescript: 5.9.3 4718 5120 5121 + ts-morph@27.0.2: 5122 + dependencies: 5123 + '@ts-morph/common': 0.28.1 5124 + code-block-writer: 13.0.3 5125 + 4719 5126 tsconfig-paths@3.15.0: 4720 5127 dependencies: 4721 5128 '@types/json5': 0.0.29 ··· 4839 5246 4840 5247 util-deprecate@1.0.2: {} 4841 5248 5249 + varint@6.0.0: {} 5250 + 4842 5251 which-boxed-primitive@1.1.1: 4843 5252 dependencies: 4844 5253 is-bigint: 1.1.0 ··· 4886 5295 4887 5296 word-wrap@1.2.5: {} 4888 5297 5298 + wrap-ansi@7.0.0: 5299 + dependencies: 5300 + ansi-styles: 4.3.0 5301 + string-width: 4.2.3 5302 + strip-ansi: 6.0.1 5303 + 4889 5304 wrappy@1.0.2: {} 5305 + 5306 + y18n@5.0.8: {} 4890 5307 4891 5308 yallist@3.1.1: {} 5309 + 5310 + yargs-parser@21.1.1: {} 5311 + 5312 + yargs@17.7.2: 5313 + dependencies: 5314 + cliui: 8.0.1 5315 + escalade: 3.2.0 5316 + get-caller-file: 2.0.5 5317 + require-directory: 2.1.1 5318 + string-width: 4.2.3 5319 + y18n: 5.0.8 5320 + yargs-parser: 21.1.1 4892 5321 4893 5322 yocto-queue@0.1.0: {} 4894 5323
+5
src/lexicons/ch.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * as indiemusi from './ch/indiemusi'
+5
src/lexicons/ch/indiemusi.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * as alpha from './indiemusi/alpha'
+5
src/lexicons/ch/indiemusi/alpha.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * as actor from './alpha/actor'
+7
src/lexicons/ch/indiemusi/alpha/actor.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * as artist from './actor/artist' 6 + export * as masterOwner from './actor/masterOwner' 7 + export * as publishingOwner from './actor/publishingOwner'
+36
src/lexicons/ch/indiemusi/alpha/actor/artist.defs.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + import { l } from '@atproto/lex' 6 + 7 + const $nsid = 'ch.indiemusi.alpha.actor.artist' 8 + 9 + export { $nsid } 10 + 11 + /** An artist or band who performs music */ 12 + type Main = { $type: 'ch.indiemusi.alpha.actor.artist'; name?: string } 13 + 14 + export type { Main } 15 + 16 + /** An artist or band who performs music */ 17 + const main = l.record<'literal:self', Main>( 18 + 'literal:self', 19 + $nsid, 20 + l.object({ name: l.optional(l.string({ maxLength: 255 })) }), 21 + ) 22 + 23 + export { main } 24 + 25 + export const $isTypeOf = /*#__PURE__*/ main.isTypeOf.bind(main), 26 + $build = /*#__PURE__*/ main.build.bind(main), 27 + $type = /*#__PURE__*/ main.$type 28 + export const $assert = /*#__PURE__*/ main.assert.bind(main), 29 + $check = /*#__PURE__*/ main.check.bind(main), 30 + $cast = /*#__PURE__*/ main.cast.bind(main), 31 + $ifMatches = /*#__PURE__*/ main.ifMatches.bind(main), 32 + $matches = /*#__PURE__*/ main.matches.bind(main), 33 + $parse = /*#__PURE__*/ main.parse.bind(main), 34 + $safeParse = /*#__PURE__*/ main.safeParse.bind(main), 35 + $validate = /*#__PURE__*/ main.validate.bind(main), 36 + $safeValidate = /*#__PURE__*/ main.safeValidate.bind(main)
+6
src/lexicons/ch/indiemusi/alpha/actor/artist.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * from './artist.defs' 6 + export * as $defs from './artist.defs'
+36
src/lexicons/ch/indiemusi/alpha/actor/masterOwner.defs.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + import { l } from '@atproto/lex' 6 + 7 + const $nsid = 'ch.indiemusi.alpha.actor.masterOwner' 8 + 9 + export { $nsid } 10 + 11 + /** The entity (person or company) that owns the master recording rights */ 12 + type Main = { $type: 'ch.indiemusi.alpha.actor.masterOwner'; name: string } 13 + 14 + export type { Main } 15 + 16 + /** The entity (person or company) that owns the master recording rights */ 17 + const main = l.record<'tid', Main>( 18 + 'tid', 19 + $nsid, 20 + l.object({ name: l.string({ maxLength: 255 }) }), 21 + ) 22 + 23 + export { main } 24 + 25 + export const $isTypeOf = /*#__PURE__*/ main.isTypeOf.bind(main), 26 + $build = /*#__PURE__*/ main.build.bind(main), 27 + $type = /*#__PURE__*/ main.$type 28 + export const $assert = /*#__PURE__*/ main.assert.bind(main), 29 + $check = /*#__PURE__*/ main.check.bind(main), 30 + $cast = /*#__PURE__*/ main.cast.bind(main), 31 + $ifMatches = /*#__PURE__*/ main.ifMatches.bind(main), 32 + $matches = /*#__PURE__*/ main.matches.bind(main), 33 + $parse = /*#__PURE__*/ main.parse.bind(main), 34 + $safeParse = /*#__PURE__*/ main.safeParse.bind(main), 35 + $validate = /*#__PURE__*/ main.validate.bind(main), 36 + $safeValidate = /*#__PURE__*/ main.safeValidate.bind(main)
+6
src/lexicons/ch/indiemusi/alpha/actor/masterOwner.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * from './masterOwner.defs' 6 + export * as $defs from './masterOwner.defs'
+53
src/lexicons/ch/indiemusi/alpha/actor/publishingOwner.defs.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + import { l } from '@atproto/lex' 6 + 7 + const $nsid = 'ch.indiemusi.alpha.actor.publishingOwner' 8 + 9 + export { $nsid } 10 + 11 + /** A songwriter, composer, or music publisher who owns the publishing rights to a song or musical work */ 12 + type Main = { 13 + $type: 'ch.indiemusi.alpha.actor.publishingOwner' 14 + firstName?: string 15 + lastName?: string 16 + companyName?: string 17 + 18 + /** 19 + * Interested Party Information (IPI) number assigned to the publishing owner by a collecting society 20 + */ 21 + ipi?: string 22 + collectingSociety?: string 23 + } 24 + 25 + export type { Main } 26 + 27 + /** A songwriter, composer, or music publisher who owns the publishing rights to a song or musical work */ 28 + const main = l.record<'tid', Main>( 29 + 'tid', 30 + $nsid, 31 + l.object({ 32 + firstName: l.optional(l.string({ maxLength: 255 })), 33 + lastName: l.optional(l.string({ maxLength: 255 })), 34 + companyName: l.optional(l.string({ maxLength: 255 })), 35 + ipi: l.optional(l.string({ maxLength: 11 })), 36 + collectingSociety: l.optional(l.string({ maxLength: 255 })), 37 + }), 38 + ) 39 + 40 + export { main } 41 + 42 + export const $isTypeOf = /*#__PURE__*/ main.isTypeOf.bind(main), 43 + $build = /*#__PURE__*/ main.build.bind(main), 44 + $type = /*#__PURE__*/ main.$type 45 + export const $assert = /*#__PURE__*/ main.assert.bind(main), 46 + $check = /*#__PURE__*/ main.check.bind(main), 47 + $cast = /*#__PURE__*/ main.cast.bind(main), 48 + $ifMatches = /*#__PURE__*/ main.ifMatches.bind(main), 49 + $matches = /*#__PURE__*/ main.matches.bind(main), 50 + $parse = /*#__PURE__*/ main.parse.bind(main), 51 + $safeParse = /*#__PURE__*/ main.safeParse.bind(main), 52 + $validate = /*#__PURE__*/ main.validate.bind(main), 53 + $safeValidate = /*#__PURE__*/ main.safeValidate.bind(main)
+6
src/lexicons/ch/indiemusi/alpha/actor/publishingOwner.ts
··· 1 + /* 2 + * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT. 3 + */ 4 + 5 + export * from './publishingOwner.defs' 6 + export * as $defs from './publishingOwner.defs'