An experimental TypeSpec syntax for Lexicon

more

+1470 -8
+71
packages/emitter/lib/decorators.tsp
··· 61 61 * @param key - The key type for the record (e.g., "tid", "literal:self", "any") 62 62 */ 63 63 extern dec record(target: unknown, key: valueof string); 64 + 65 + // ============================================================================== 66 + // Pre-defined format scalars for common Lexicon string formats 67 + // These provide type-safe alternatives to @lexFormat("...") decorator 68 + // ============================================================================== 69 + 70 + /** 71 + * DID (Decentralized Identifier) 72 + * Automatically maps to format: "did" 73 + */ 74 + scalar did extends string; 75 + 76 + /** 77 + * Handle identifier 78 + * Automatically maps to format: "handle" 79 + */ 80 + scalar handle extends string; 81 + 82 + /** 83 + * AT-URI (AT Protocol URI) 84 + * Automatically maps to format: "at-uri" 85 + */ 86 + scalar atUri extends string; 87 + 88 + /** 89 + * ISO 8601 datetime string 90 + * Automatically maps to format: "datetime" 91 + */ 92 + scalar datetime extends string; 93 + 94 + /** 95 + * Content Identifier (CID) 96 + * Automatically maps to format: "cid" 97 + */ 98 + scalar cid extends string; 99 + 100 + /** 101 + * Timestamp Identifier (TID) 102 + * Automatically maps to format: "tid" 103 + */ 104 + scalar tid extends string; 105 + 106 + /** 107 + * Namespaced Identifier (NSID) 108 + * Automatically maps to format: "nsid" 109 + */ 110 + scalar nsid extends string; 111 + 112 + /** 113 + * Record key 114 + * Automatically maps to format: "record-key" 115 + */ 116 + scalar recordKey extends string; 117 + 118 + /** 119 + * Generic URI 120 + * Automatically maps to format: "uri" 121 + */ 122 + scalar uri extends string; 123 + 124 + /** 125 + * Language code (BCP 47) 126 + * Automatically maps to format: "language" 127 + */ 128 + scalar language extends string; 129 + 130 + /** 131 + * AT identifier (either DID or handle) 132 + * Automatically maps to format: "at-identifier" 133 + */ 134 + scalar atIdentifier extends string;
+7 -6
packages/example/package.json
··· 4 4 "private": true, 5 5 "type": "module", 6 6 "scripts": { 7 - "build": "pnpm run build:lexicon && pnpm run build:codegen", 8 - "build:lexicon": "tsp compile typlex/main.tsp", 9 - "build:codegen": "lex gen-server --yes ./src ./lexicon" 7 + "build": "pnpm run build:typlex && pnpm run build:codegen", 8 + "build:typlex": "tsp compile typlex/main.tsp", 9 + "build:codegen": "lex gen-server --yes ./src lexicon/app/example/*.json" 10 10 }, 11 11 "dependencies": { 12 12 "@atproto/lex-cli": "^0.9.5", 13 + "@atproto/xrpc-server": "^0.9.5", 13 14 "@typespec/compiler": "^0.64.0", 14 - "@typlex/emitter": "workspace:*", 15 - "@typlex/cli": "workspace:*" 15 + "@typlex/cli": "workspace:*", 16 + "@typlex/emitter": "workspace:*" 16 17 }, 17 18 "devDependencies": { 18 19 "typescript": "^5.0.0" 19 20 } 20 - } 21 + }
+20
packages/example/src/index.ts
··· 17 17 18 18 export class Server { 19 19 xrpc: XrpcServer 20 + app: AppNS 20 21 21 22 constructor(options?: XrpcOptions) { 22 23 this.xrpc = createXrpcServer(schemas, options) 24 + this.app = new AppNS(this) 25 + } 26 + } 27 + 28 + export class AppNS { 29 + _server: Server 30 + example: AppExampleNS 31 + 32 + constructor(server: Server) { 33 + this._server = server 34 + this.example = new AppExampleNS(server) 35 + } 36 + } 37 + 38 + export class AppExampleNS { 39 + _server: Server 40 + 41 + constructor(server: Server) { 42 + this._server = server 23 43 } 24 44 }
+229 -2
packages/example/src/lexicons.ts
··· 9 9 } from '@atproto/lexicon' 10 10 import { type $Typed, is$typed, maybe$typed } from './util.js' 11 11 12 - export const schemaDict = {} as const satisfies Record<string, LexiconDoc> 12 + export const schemaDict = { 13 + AppExampleDefs: { 14 + lexicon: 1, 15 + id: 'app.example.defs', 16 + defs: { 17 + postRef: { 18 + type: 'object', 19 + description: 'Reference to a post', 20 + required: ['uri', 'cid'], 21 + properties: { 22 + uri: { 23 + type: 'string', 24 + description: 'AT URI of the post', 25 + }, 26 + cid: { 27 + type: 'string', 28 + description: 'CID of the post', 29 + }, 30 + }, 31 + }, 32 + replyRef: { 33 + type: 'object', 34 + description: 'Reference to a parent post in a reply chain', 35 + required: ['root', 'parent'], 36 + properties: { 37 + root: { 38 + type: 'ref', 39 + ref: 'lex:app.example.defs#postRef', 40 + description: 'Root post in the thread', 41 + }, 42 + parent: { 43 + type: 'ref', 44 + ref: 'lex:app.example.defs#postRef', 45 + description: 'Direct parent post being replied to', 46 + }, 47 + }, 48 + }, 49 + entity: { 50 + type: 'object', 51 + description: 'Text entity (mention, link, or tag)', 52 + required: ['start', 'end', 'type', 'value'], 53 + properties: { 54 + start: { 55 + type: 'integer', 56 + description: 'Start index in text', 57 + }, 58 + end: { 59 + type: 'integer', 60 + description: 'End index in text', 61 + }, 62 + type: { 63 + type: 'string', 64 + description: 'Entity type', 65 + }, 66 + value: { 67 + type: 'string', 68 + description: 'Entity value (handle, URL, or tag)', 69 + }, 70 + }, 71 + }, 72 + }, 73 + }, 74 + AppExampleFollow: { 75 + lexicon: 1, 76 + id: 'app.example.follow', 77 + defs: { 78 + main: { 79 + type: 'record', 80 + key: 'tid', 81 + record: { 82 + type: 'object', 83 + required: ['subject', 'createdAt'], 84 + properties: { 85 + subject: { 86 + type: 'string', 87 + description: 'DID of the account being followed', 88 + }, 89 + createdAt: { 90 + type: 'string', 91 + format: 'datetime', 92 + description: 'When the follow was created', 93 + }, 94 + }, 95 + }, 96 + description: 'A follow relationship', 97 + }, 98 + }, 99 + }, 100 + AppExampleLike: { 101 + lexicon: 1, 102 + id: 'app.example.like', 103 + defs: { 104 + main: { 105 + type: 'record', 106 + key: 'tid', 107 + record: { 108 + type: 'object', 109 + required: ['subject', 'createdAt'], 110 + properties: { 111 + subject: { 112 + type: 'ref', 113 + ref: 'lex:app.example.defs#postRef', 114 + description: 'Post being liked', 115 + }, 116 + createdAt: { 117 + type: 'string', 118 + format: 'datetime', 119 + description: 'When the like was created', 120 + }, 121 + }, 122 + }, 123 + description: 'A like on a post', 124 + }, 125 + }, 126 + }, 127 + AppExamplePost: { 128 + lexicon: 1, 129 + id: 'app.example.post', 130 + defs: { 131 + main: { 132 + type: 'record', 133 + key: 'tid', 134 + record: { 135 + type: 'object', 136 + required: ['text', 'createdAt'], 137 + properties: { 138 + text: { 139 + type: 'string', 140 + description: 'Post text content', 141 + }, 142 + createdAt: { 143 + type: 'string', 144 + format: 'datetime', 145 + description: 'Creation timestamp', 146 + }, 147 + langs: { 148 + type: 'array', 149 + items: { 150 + type: 'string', 151 + }, 152 + description: 'Languages the post is written in', 153 + }, 154 + entities: { 155 + type: 'array', 156 + items: { 157 + type: 'ref', 158 + ref: 'lex:app.example.defs#entity', 159 + }, 160 + description: 'Referenced entities in the post', 161 + }, 162 + reply: { 163 + type: 'ref', 164 + ref: 'lex:app.example.defs#replyRef', 165 + description: 'Post the user is replying to', 166 + }, 167 + }, 168 + }, 169 + description: 'A post in the feed', 170 + }, 171 + }, 172 + }, 173 + AppExampleProfile: { 174 + lexicon: 1, 175 + id: 'app.example.profile', 176 + defs: { 177 + main: { 178 + type: 'record', 179 + key: 'self', 180 + record: { 181 + type: 'object', 182 + properties: { 183 + displayName: { 184 + type: 'string', 185 + description: 'Display name', 186 + }, 187 + description: { 188 + type: 'string', 189 + description: 'Profile description', 190 + }, 191 + avatar: { 192 + type: 'string', 193 + description: 'Profile avatar image', 194 + }, 195 + banner: { 196 + type: 'string', 197 + description: 'Profile banner image', 198 + }, 199 + }, 200 + }, 201 + description: 'User profile information', 202 + }, 203 + }, 204 + }, 205 + AppExampleRepost: { 206 + lexicon: 1, 207 + id: 'app.example.repost', 208 + defs: { 209 + main: { 210 + type: 'record', 211 + key: 'tid', 212 + record: { 213 + type: 'object', 214 + required: ['subject', 'createdAt'], 215 + properties: { 216 + subject: { 217 + type: 'ref', 218 + ref: 'lex:app.example.defs#postRef', 219 + description: 'Post being reposted', 220 + }, 221 + createdAt: { 222 + type: 'string', 223 + format: 'datetime', 224 + description: 'When the repost was created', 225 + }, 226 + }, 227 + }, 228 + description: 'A repost of another post', 229 + }, 230 + }, 231 + }, 232 + } as const satisfies Record<string, LexiconDoc> 13 233 export const schemas = Object.values(schemaDict) satisfies LexiconDoc[] 14 234 export const lexicons: Lexicons = new Lexicons(schemas) 15 235 ··· 41 261 } 42 262 } 43 263 44 - export const ids = {} as const 264 + export const ids = { 265 + AppExampleDefs: 'app.example.defs', 266 + AppExampleFollow: 'app.example.follow', 267 + AppExampleLike: 'app.example.like', 268 + AppExamplePost: 'app.example.post', 269 + AppExampleProfile: 'app.example.profile', 270 + AppExampleRepost: 'app.example.repost', 271 + } as const
+70
packages/example/src/types/app/example/defs.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + 9 + const is$typed = _is$typed, 10 + validate = _validate 11 + const id = 'app.example.defs' 12 + 13 + /** Reference to a post */ 14 + export interface PostRef { 15 + $type?: 'app.example.defs#postRef' 16 + /** AT URI of the post */ 17 + uri: string 18 + /** CID of the post */ 19 + cid: string 20 + } 21 + 22 + const hashPostRef = 'postRef' 23 + 24 + export function isPostRef<V>(v: V) { 25 + return is$typed(v, id, hashPostRef) 26 + } 27 + 28 + export function validatePostRef<V>(v: V) { 29 + return validate<PostRef & V>(v, id, hashPostRef) 30 + } 31 + 32 + /** Reference to a parent post in a reply chain */ 33 + export interface ReplyRef { 34 + $type?: 'app.example.defs#replyRef' 35 + root: PostRef 36 + parent: PostRef 37 + } 38 + 39 + const hashReplyRef = 'replyRef' 40 + 41 + export function isReplyRef<V>(v: V) { 42 + return is$typed(v, id, hashReplyRef) 43 + } 44 + 45 + export function validateReplyRef<V>(v: V) { 46 + return validate<ReplyRef & V>(v, id, hashReplyRef) 47 + } 48 + 49 + /** Text entity (mention, link, or tag) */ 50 + export interface Entity { 51 + $type?: 'app.example.defs#entity' 52 + /** Start index in text */ 53 + start: number 54 + /** End index in text */ 55 + end: number 56 + /** Entity type */ 57 + type: string 58 + /** Entity value (handle, URL, or tag) */ 59 + value: string 60 + } 61 + 62 + const hashEntity = 'entity' 63 + 64 + export function isEntity<V>(v: V) { 65 + return is$typed(v, id, hashEntity) 66 + } 67 + 68 + export function validateEntity<V>(v: V) { 69 + return validate<Entity & V>(v, id, hashEntity) 70 + }
+30
packages/example/src/types/app/example/follow.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + 9 + const is$typed = _is$typed, 10 + validate = _validate 11 + const id = 'app.example.follow' 12 + 13 + export interface Record { 14 + $type: 'app.example.follow' 15 + /** DID of the account being followed */ 16 + subject: string 17 + /** When the follow was created */ 18 + createdAt: string 19 + [k: string]: unknown 20 + } 21 + 22 + const hashRecord = 'main' 23 + 24 + export function isRecord<V>(v: V) { 25 + return is$typed(v, id, hashRecord) 26 + } 27 + 28 + export function validateRecord<V>(v: V) { 29 + return validate<Record & V>(v, id, hashRecord, true) 30 + }
+30
packages/example/src/types/app/example/like.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + import type * as AppExampleDefs from './defs.js' 9 + 10 + const is$typed = _is$typed, 11 + validate = _validate 12 + const id = 'app.example.like' 13 + 14 + export interface Record { 15 + $type: 'app.example.like' 16 + subject: AppExampleDefs.PostRef 17 + /** When the like was created */ 18 + createdAt: string 19 + [k: string]: unknown 20 + } 21 + 22 + const hashRecord = 'main' 23 + 24 + export function isRecord<V>(v: V) { 25 + return is$typed(v, id, hashRecord) 26 + } 27 + 28 + export function validateRecord<V>(v: V) { 29 + return validate<Record & V>(v, id, hashRecord, true) 30 + }
+36
packages/example/src/types/app/example/post.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + import type * as AppExampleDefs from './defs.js' 9 + 10 + const is$typed = _is$typed, 11 + validate = _validate 12 + const id = 'app.example.post' 13 + 14 + export interface Record { 15 + $type: 'app.example.post' 16 + /** Post text content */ 17 + text: string 18 + /** Creation timestamp */ 19 + createdAt: string 20 + /** Languages the post is written in */ 21 + langs?: string[] 22 + /** Referenced entities in the post */ 23 + entities?: AppExampleDefs.Entity[] 24 + reply?: AppExampleDefs.ReplyRef 25 + [k: string]: unknown 26 + } 27 + 28 + const hashRecord = 'main' 29 + 30 + export function isRecord<V>(v: V) { 31 + return is$typed(v, id, hashRecord) 32 + } 33 + 34 + export function validateRecord<V>(v: V) { 35 + return validate<Record & V>(v, id, hashRecord, true) 36 + }
+34
packages/example/src/types/app/example/profile.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + 9 + const is$typed = _is$typed, 10 + validate = _validate 11 + const id = 'app.example.profile' 12 + 13 + export interface Record { 14 + $type: 'app.example.profile' 15 + /** Display name */ 16 + displayName?: string 17 + /** Profile description */ 18 + description?: string 19 + /** Profile avatar image */ 20 + avatar?: string 21 + /** Profile banner image */ 22 + banner?: string 23 + [k: string]: unknown 24 + } 25 + 26 + const hashRecord = 'main' 27 + 28 + export function isRecord<V>(v: V) { 29 + return is$typed(v, id, hashRecord) 30 + } 31 + 32 + export function validateRecord<V>(v: V) { 33 + return validate<Record & V>(v, id, hashRecord, true) 34 + }
+30
packages/example/src/types/app/example/repost.ts
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { type ValidationResult, BlobRef } from '@atproto/lexicon' 5 + import { CID } from 'multiformats/cid' 6 + import { validate as _validate } from '../../../lexicons' 7 + import { type $Typed, is$typed as _is$typed, type OmitKey } from '../../../util' 8 + import type * as AppExampleDefs from './defs.js' 9 + 10 + const is$typed = _is$typed, 11 + validate = _validate 12 + const id = 'app.example.repost' 13 + 14 + export interface Record { 15 + $type: 'app.example.repost' 16 + subject: AppExampleDefs.PostRef 17 + /** When the repost was created */ 18 + createdAt: string 19 + [k: string]: unknown 20 + } 21 + 22 + const hashRecord = 'main' 23 + 24 + export function isRecord<V>(v: V) { 25 + return is$typed(v, id, hashRecord) 26 + } 27 + 28 + export function validateRecord<V>(v: V) { 29 + return validate<Record & V>(v, id, hashRecord, true) 30 + }
+5
packages/example/typlex/main.tsp
··· 40 40 // ============ Records ============ 41 41 42 42 @lexiconMain 43 + @record("tid") 43 44 @doc("A post in the feed") 44 45 model Post { 45 46 @doc("Post text content") ··· 60 61 } 61 62 62 63 @lexiconMain 64 + @record("tid") 63 65 @doc("A follow relationship") 64 66 model Follow { 65 67 @doc("DID of the account being followed") ··· 71 73 } 72 74 73 75 @lexiconMain 76 + @record("tid") 74 77 @doc("A like on a post") 75 78 model Like { 76 79 @doc("Post being liked") ··· 82 85 } 83 86 84 87 @lexiconMain 88 + @record("tid") 85 89 @doc("A repost of another post") 86 90 model Repost { 87 91 @doc("Post being reposted") ··· 93 97 } 94 98 95 99 @lexiconMain 100 + @record("self") 96 101 @doc("User profile information") 97 102 model Profile { 98 103 @doc("Display name")
+908
pnpm-lock.yaml
··· 55 55 '@atproto/lex-cli': 56 56 specifier: ^0.9.5 57 57 version: 0.9.5 58 + '@atproto/xrpc-server': 59 + specifier: ^0.9.5 60 + version: 0.9.5 58 61 '@typespec/compiler': 59 62 specifier: ^0.64.0 60 63 version: 0.64.0 ··· 74 77 '@atproto/common-web@0.4.3': 75 78 resolution: {integrity: sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==} 76 79 80 + '@atproto/common@0.4.12': 81 + resolution: {integrity: sha512-NC+TULLQiqs6MvNymhQS5WDms3SlbIKGLf4n33tpftRJcalh507rI+snbcUb7TLIkKw7VO17qMqxEXtIdd5auQ==} 82 + engines: {node: '>=18.7.0'} 83 + 84 + '@atproto/crypto@0.4.4': 85 + resolution: {integrity: sha512-Yq9+crJ7WQl7sxStVpHgie5Z51R05etaK9DLWYG/7bR5T4bhdcIgF6IfklLShtZwLYdVVj+K15s0BqW9a8PSDA==} 86 + engines: {node: '>=18.7.0'} 87 + 77 88 '@atproto/lex-cli@0.9.5': 78 89 resolution: {integrity: sha512-zun4jhD1dbjD7IHtLIjh/1UsMx+6E8+OyOT2GXYAKIj9N6wmLKM/v2OeQBKxcyqUmtRi57lxWnGikWjjU7pplQ==} 79 90 engines: {node: '>=18.7.0'} ··· 85 96 '@atproto/syntax@0.4.1': 86 97 resolution: {integrity: sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw==} 87 98 99 + '@atproto/xrpc-server@0.9.5': 100 + resolution: {integrity: sha512-V0srjUgy6mQ5yf9+MSNBLs457m4qclEaWZsnqIE7RfYywvntexTAbMoo7J7ONfTNwdmA9Gw4oLak2z2cDAET4w==} 101 + engines: {node: '>=18.7.0'} 102 + 103 + '@atproto/xrpc@0.7.5': 104 + resolution: {integrity: sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==} 105 + 88 106 '@babel/code-frame@7.25.9': 89 107 resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} 90 108 engines: {node: '>=6.9.0'} ··· 96 114 '@babel/highlight@7.25.9': 97 115 resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} 98 116 engines: {node: '>=6.9.0'} 117 + 118 + '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 119 + resolution: {integrity: sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==} 120 + cpu: [arm64] 121 + os: [darwin] 122 + 123 + '@cbor-extract/cbor-extract-darwin-x64@2.2.0': 124 + resolution: {integrity: sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==} 125 + cpu: [x64] 126 + os: [darwin] 127 + 128 + '@cbor-extract/cbor-extract-linux-arm64@2.2.0': 129 + resolution: {integrity: sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==} 130 + cpu: [arm64] 131 + os: [linux] 132 + 133 + '@cbor-extract/cbor-extract-linux-arm@2.2.0': 134 + resolution: {integrity: sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==} 135 + cpu: [arm] 136 + os: [linux] 137 + 138 + '@cbor-extract/cbor-extract-linux-x64@2.2.0': 139 + resolution: {integrity: sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==} 140 + cpu: [x64] 141 + os: [linux] 142 + 143 + '@cbor-extract/cbor-extract-win32-x64@2.2.0': 144 + resolution: {integrity: sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==} 145 + cpu: [x64] 146 + os: [win32] 99 147 100 148 '@esbuild/aix-ppc64@0.21.5': 101 149 resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} ··· 235 283 cpu: [x64] 236 284 os: [win32] 237 285 286 + '@ipld/dag-cbor@7.0.3': 287 + resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} 288 + 238 289 '@jest/schemas@29.6.3': 239 290 resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 240 291 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} ··· 242 293 '@jridgewell/sourcemap-codec@1.5.5': 243 294 resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 244 295 296 + '@noble/curves@1.9.7': 297 + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} 298 + engines: {node: ^14.21.3 || >=16} 299 + 300 + '@noble/hashes@1.8.0': 301 + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} 302 + engines: {node: ^14.21.3 || >=16} 303 + 245 304 '@nodelib/fs.scandir@2.1.5': 246 305 resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 247 306 engines: {node: '>= 8'} ··· 417 476 '@vitest/utils@1.6.1': 418 477 resolution: {integrity: sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==} 419 478 479 + abort-controller@3.0.0: 480 + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 481 + engines: {node: '>=6.5'} 482 + 483 + accepts@1.3.8: 484 + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 485 + engines: {node: '>= 0.6'} 486 + 420 487 acorn-walk@8.3.4: 421 488 resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 422 489 engines: {node: '>=0.4.0'} ··· 445 512 resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 446 513 engines: {node: '>=10'} 447 514 515 + array-flatten@1.1.1: 516 + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 517 + 448 518 assertion-error@1.1.0: 449 519 resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 450 520 521 + atomic-sleep@1.0.0: 522 + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 523 + engines: {node: '>=8.0.0'} 524 + 451 525 balanced-match@1.0.2: 452 526 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 453 527 528 + base64-js@1.5.1: 529 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 530 + 531 + body-parser@1.20.3: 532 + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} 533 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 534 + 454 535 brace-expansion@2.0.2: 455 536 resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 456 537 ··· 458 539 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 459 540 engines: {node: '>=8'} 460 541 542 + buffer@6.0.3: 543 + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 544 + 545 + bytes@3.1.2: 546 + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 547 + engines: {node: '>= 0.8'} 548 + 461 549 cac@6.7.14: 462 550 resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 463 551 engines: {node: '>=8'} 552 + 553 + call-bind-apply-helpers@1.0.2: 554 + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 555 + engines: {node: '>= 0.4'} 556 + 557 + call-bound@1.0.4: 558 + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 559 + engines: {node: '>= 0.4'} 560 + 561 + cbor-extract@2.2.0: 562 + resolution: {integrity: sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==} 563 + hasBin: true 564 + 565 + cbor-x@1.6.0: 566 + resolution: {integrity: sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==} 567 + 568 + cborg@1.10.2: 569 + resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} 570 + hasBin: true 464 571 465 572 chai@4.5.0: 466 573 resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} ··· 507 614 confbox@0.1.8: 508 615 resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 509 616 617 + content-disposition@0.5.4: 618 + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 619 + engines: {node: '>= 0.6'} 620 + 621 + content-type@1.0.5: 622 + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 623 + engines: {node: '>= 0.6'} 624 + 625 + cookie-signature@1.0.6: 626 + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 627 + 628 + cookie@0.7.1: 629 + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} 630 + engines: {node: '>= 0.6'} 631 + 510 632 cross-spawn@7.0.6: 511 633 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 512 634 engines: {node: '>= 8'} 513 635 636 + debug@2.6.9: 637 + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 638 + peerDependencies: 639 + supports-color: '*' 640 + peerDependenciesMeta: 641 + supports-color: 642 + optional: true 643 + 514 644 debug@4.4.3: 515 645 resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 516 646 engines: {node: '>=6.0'} ··· 524 654 resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} 525 655 engines: {node: '>=6'} 526 656 657 + depd@2.0.0: 658 + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 659 + engines: {node: '>= 0.8'} 660 + 661 + destroy@1.2.0: 662 + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 663 + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 664 + 665 + detect-libc@2.1.1: 666 + resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} 667 + engines: {node: '>=8'} 668 + 527 669 diff-sequences@29.6.3: 528 670 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 529 671 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 530 672 673 + dunder-proto@1.0.1: 674 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 675 + engines: {node: '>= 0.4'} 676 + 677 + ee-first@1.1.1: 678 + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 679 + 531 680 emoji-regex@8.0.0: 532 681 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 533 682 683 + encodeurl@1.0.2: 684 + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 685 + engines: {node: '>= 0.8'} 686 + 687 + encodeurl@2.0.0: 688 + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 689 + engines: {node: '>= 0.8'} 690 + 691 + es-define-property@1.0.1: 692 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 693 + engines: {node: '>= 0.4'} 694 + 695 + es-errors@1.3.0: 696 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 697 + engines: {node: '>= 0.4'} 698 + 699 + es-object-atoms@1.1.1: 700 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 701 + engines: {node: '>= 0.4'} 702 + 534 703 esbuild@0.21.5: 535 704 resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 536 705 engines: {node: '>=12'} ··· 540 709 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 541 710 engines: {node: '>=6'} 542 711 712 + escape-html@1.0.3: 713 + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 714 + 543 715 escape-string-regexp@1.0.5: 544 716 resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 545 717 engines: {node: '>=0.8.0'} ··· 547 719 estree-walker@3.0.3: 548 720 resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 549 721 722 + etag@1.8.1: 723 + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 724 + engines: {node: '>= 0.6'} 725 + 726 + event-target-shim@5.0.1: 727 + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 728 + engines: {node: '>=6'} 729 + 730 + events@3.3.0: 731 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 732 + engines: {node: '>=0.8.x'} 733 + 550 734 execa@8.0.1: 551 735 resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 552 736 engines: {node: '>=16.17'} 553 737 738 + express@4.21.2: 739 + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} 740 + engines: {node: '>= 0.10.0'} 741 + 554 742 fast-deep-equal@3.1.3: 555 743 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 556 744 557 745 fast-glob@3.3.3: 558 746 resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 559 747 engines: {node: '>=8.6.0'} 748 + 749 + fast-redact@3.5.0: 750 + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 751 + engines: {node: '>=6'} 560 752 561 753 fast-uri@3.1.0: 562 754 resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} ··· 577 769 resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 578 770 engines: {node: '>=8'} 579 771 772 + finalhandler@1.3.1: 773 + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} 774 + engines: {node: '>= 0.8'} 775 + 776 + forwarded@0.2.0: 777 + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 778 + engines: {node: '>= 0.6'} 779 + 780 + fresh@0.5.2: 781 + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 782 + engines: {node: '>= 0.6'} 783 + 580 784 fsevents@2.3.3: 581 785 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 582 786 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 583 787 os: [darwin] 584 788 789 + function-bind@1.1.2: 790 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 791 + 585 792 get-caller-file@2.0.5: 586 793 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 587 794 engines: {node: 6.* || 8.* || >= 10.*} ··· 589 796 get-func-name@2.0.2: 590 797 resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 591 798 799 + get-intrinsic@1.3.0: 800 + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 801 + engines: {node: '>= 0.4'} 802 + 803 + get-proto@1.0.1: 804 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 805 + engines: {node: '>= 0.4'} 806 + 592 807 get-stream@8.0.1: 593 808 resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 594 809 engines: {node: '>=16'} ··· 601 816 resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} 602 817 engines: {node: '>=18'} 603 818 819 + gopd@1.2.0: 820 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 821 + engines: {node: '>= 0.4'} 822 + 604 823 graphemer@1.4.0: 605 824 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 606 825 ··· 612 831 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 613 832 engines: {node: '>=8'} 614 833 834 + has-symbols@1.1.0: 835 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 836 + engines: {node: '>= 0.4'} 837 + 838 + hasown@2.0.2: 839 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 840 + engines: {node: '>= 0.4'} 841 + 842 + http-errors@2.0.0: 843 + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 844 + engines: {node: '>= 0.8'} 845 + 615 846 human-signals@5.0.0: 616 847 resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 617 848 engines: {node: '>=16.17.0'} 618 849 850 + iconv-lite@0.4.24: 851 + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 852 + engines: {node: '>=0.10.0'} 853 + 854 + ieee754@1.2.1: 855 + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 856 + 619 857 ignore@5.3.2: 620 858 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 621 859 engines: {node: '>= 4'} 860 + 861 + inherits@2.0.4: 862 + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 863 + 864 + ipaddr.js@1.9.1: 865 + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 866 + engines: {node: '>= 0.10'} 622 867 623 868 is-extglob@2.1.1: 624 869 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} ··· 668 913 669 914 magic-string@0.30.19: 670 915 resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 916 + 917 + math-intrinsics@1.1.0: 918 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 919 + engines: {node: '>= 0.4'} 920 + 921 + media-typer@0.3.0: 922 + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 923 + engines: {node: '>= 0.6'} 924 + 925 + merge-descriptors@1.0.3: 926 + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} 671 927 672 928 merge-stream@2.0.0: 673 929 resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} ··· 676 932 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 677 933 engines: {node: '>= 8'} 678 934 935 + methods@1.1.2: 936 + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 937 + engines: {node: '>= 0.6'} 938 + 679 939 micromatch@4.0.8: 680 940 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 681 941 engines: {node: '>=8.6'} 682 942 943 + mime-db@1.52.0: 944 + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 945 + engines: {node: '>= 0.6'} 946 + 947 + mime-types@2.1.35: 948 + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 949 + engines: {node: '>= 0.6'} 950 + 951 + mime@1.6.0: 952 + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 953 + engines: {node: '>=4'} 954 + hasBin: true 955 + 683 956 mimic-fn@4.0.0: 684 957 resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 685 958 engines: {node: '>=12'} ··· 691 964 mlly@1.8.0: 692 965 resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} 693 966 967 + ms@2.0.0: 968 + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 969 + 694 970 ms@2.1.3: 695 971 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 696 972 ··· 704 980 nanoid@3.3.11: 705 981 resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 706 982 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 983 + hasBin: true 984 + 985 + negotiator@0.6.3: 986 + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 987 + engines: {node: '>= 0.6'} 988 + 989 + node-gyp-build-optional-packages@5.1.1: 990 + resolution: {integrity: sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==} 707 991 hasBin: true 708 992 709 993 npm-run-path@5.3.0: 710 994 resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 711 995 engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 712 996 997 + object-inspect@1.13.4: 998 + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 999 + engines: {node: '>= 0.4'} 1000 + 1001 + on-exit-leak-free@2.1.2: 1002 + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 1003 + engines: {node: '>=14.0.0'} 1004 + 1005 + on-finished@2.4.1: 1006 + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1007 + engines: {node: '>= 0.8'} 1008 + 713 1009 onetime@6.0.0: 714 1010 resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 715 1011 engines: {node: '>=12'} ··· 718 1014 resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 719 1015 engines: {node: '>=18'} 720 1016 1017 + parseurl@1.3.3: 1018 + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1019 + engines: {node: '>= 0.8'} 1020 + 721 1021 path-browserify@1.0.1: 722 1022 resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 723 1023 ··· 728 1028 path-key@4.0.0: 729 1029 resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 730 1030 engines: {node: '>=12'} 1031 + 1032 + path-to-regexp@0.1.12: 1033 + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} 731 1034 732 1035 path-type@5.0.0: 733 1036 resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} ··· 752 1055 picomatch@4.0.3: 753 1056 resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 754 1057 engines: {node: '>=12'} 1058 + 1059 + pino-abstract-transport@1.2.0: 1060 + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 1061 + 1062 + pino-std-serializers@6.2.2: 1063 + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 1064 + 1065 + pino@8.21.0: 1066 + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} 1067 + hasBin: true 755 1068 756 1069 pkg-types@1.3.1: 757 1070 resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} ··· 769 1082 resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 770 1083 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 771 1084 1085 + process-warning@3.0.0: 1086 + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 1087 + 1088 + process@0.11.10: 1089 + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 1090 + engines: {node: '>= 0.6.0'} 1091 + 772 1092 prompts@2.4.2: 773 1093 resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 774 1094 engines: {node: '>= 6'} 775 1095 1096 + proxy-addr@2.0.7: 1097 + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1098 + engines: {node: '>= 0.10'} 1099 + 1100 + qs@6.13.0: 1101 + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} 1102 + engines: {node: '>=0.6'} 1103 + 776 1104 queue-microtask@1.2.3: 777 1105 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 778 1106 1107 + quick-format-unescaped@4.0.4: 1108 + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1109 + 1110 + range-parser@1.2.1: 1111 + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1112 + engines: {node: '>= 0.6'} 1113 + 1114 + rate-limiter-flexible@2.4.2: 1115 + resolution: {integrity: sha512-rMATGGOdO1suFyf/mI5LYhts71g1sbdhmd6YvdiXO2gJnd42Tt6QS4JUKJKSWVVkMtBacm6l40FR7Trjo6Iruw==} 1116 + 1117 + raw-body@2.5.2: 1118 + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1119 + engines: {node: '>= 0.8'} 1120 + 779 1121 react-is@18.3.1: 780 1122 resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1123 + 1124 + readable-stream@4.7.0: 1125 + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 1126 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1127 + 1128 + real-require@0.2.0: 1129 + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1130 + engines: {node: '>= 12.13.0'} 781 1131 782 1132 require-directory@2.1.1: 783 1133 resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} ··· 799 1149 run-parallel@1.2.0: 800 1150 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 801 1151 1152 + safe-buffer@5.2.1: 1153 + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1154 + 1155 + safe-stable-stringify@2.5.0: 1156 + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 1157 + engines: {node: '>=10'} 1158 + 1159 + safer-buffer@2.1.2: 1160 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1161 + 802 1162 semver@7.7.2: 803 1163 resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 804 1164 engines: {node: '>=10'} 805 1165 hasBin: true 806 1166 1167 + send@0.19.0: 1168 + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} 1169 + engines: {node: '>= 0.8.0'} 1170 + 1171 + serve-static@1.16.2: 1172 + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} 1173 + engines: {node: '>= 0.8.0'} 1174 + 1175 + setprototypeof@1.2.0: 1176 + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1177 + 807 1178 shebang-command@2.0.0: 808 1179 resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 809 1180 engines: {node: '>=8'} ··· 812 1183 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 813 1184 engines: {node: '>=8'} 814 1185 1186 + side-channel-list@1.0.0: 1187 + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1188 + engines: {node: '>= 0.4'} 1189 + 1190 + side-channel-map@1.0.1: 1191 + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1192 + engines: {node: '>= 0.4'} 1193 + 1194 + side-channel-weakmap@1.0.2: 1195 + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1196 + engines: {node: '>= 0.4'} 1197 + 1198 + side-channel@1.1.0: 1199 + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1200 + engines: {node: '>= 0.4'} 1201 + 815 1202 siginfo@2.0.0: 816 1203 resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 817 1204 ··· 826 1213 resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 827 1214 engines: {node: '>=14.16'} 828 1215 1216 + sonic-boom@3.8.1: 1217 + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} 1218 + 829 1219 source-map-js@1.2.1: 830 1220 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 831 1221 engines: {node: '>=0.10.0'} 832 1222 1223 + split2@4.2.0: 1224 + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1225 + engines: {node: '>= 10.x'} 1226 + 833 1227 stackback@0.0.2: 834 1228 resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1229 + 1230 + statuses@2.0.1: 1231 + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1232 + engines: {node: '>= 0.8'} 835 1233 836 1234 std-env@3.9.0: 837 1235 resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} ··· 840 1238 resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 841 1239 engines: {node: '>=8'} 842 1240 1241 + string_decoder@1.3.0: 1242 + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1243 + 843 1244 strip-ansi@6.0.1: 844 1245 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 845 1246 engines: {node: '>=8'} ··· 865 1266 temporal-spec@0.2.4: 866 1267 resolution: {integrity: sha512-lDMFv4nKQrSjlkHKAlHVqKrBG4DyFfa9F74cmBZ3Iy3ed8yvWnlWSIdi4IKfSqwmazAohBNwiN64qGx4y5Q3IQ==} 867 1268 1269 + thread-stream@2.7.0: 1270 + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 1271 + 868 1272 tinybench@2.9.0: 869 1273 resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 870 1274 ··· 884 1288 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 885 1289 engines: {node: '>=8.0'} 886 1290 1291 + toidentifier@1.0.1: 1292 + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1293 + engines: {node: '>=0.6'} 1294 + 887 1295 ts-morph@24.0.0: 888 1296 resolution: {integrity: sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==} 889 1297 890 1298 type-detect@4.1.0: 891 1299 resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} 892 1300 engines: {node: '>=4'} 1301 + 1302 + type-is@1.6.18: 1303 + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1304 + engines: {node: '>= 0.6'} 893 1305 894 1306 typescript@5.9.3: 895 1307 resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} ··· 909 1321 resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} 910 1322 engines: {node: '>=18'} 911 1323 1324 + unpipe@1.0.0: 1325 + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1326 + engines: {node: '>= 0.8'} 1327 + 1328 + utils-merge@1.0.1: 1329 + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1330 + engines: {node: '>= 0.4.0'} 1331 + 1332 + vary@1.1.2: 1333 + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1334 + engines: {node: '>= 0.8'} 1335 + 912 1336 vite-node@1.6.1: 913 1337 resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} 914 1338 engines: {node: ^18.0.0 || >=20.0.0} ··· 1001 1425 resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1002 1426 engines: {node: '>=10'} 1003 1427 1428 + ws@8.18.3: 1429 + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 1430 + engines: {node: '>=10.0.0'} 1431 + peerDependencies: 1432 + bufferutil: ^4.0.1 1433 + utf-8-validate: '>=5.0.2' 1434 + peerDependenciesMeta: 1435 + bufferutil: 1436 + optional: true 1437 + utf-8-validate: 1438 + optional: true 1439 + 1004 1440 y18n@5.0.8: 1005 1441 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1006 1442 engines: {node: '>=10'} ··· 1037 1473 uint8arrays: 3.0.0 1038 1474 zod: 3.25.76 1039 1475 1476 + '@atproto/common@0.4.12': 1477 + dependencies: 1478 + '@atproto/common-web': 0.4.3 1479 + '@ipld/dag-cbor': 7.0.3 1480 + cbor-x: 1.6.0 1481 + iso-datestring-validator: 2.2.2 1482 + multiformats: 9.9.0 1483 + pino: 8.21.0 1484 + 1485 + '@atproto/crypto@0.4.4': 1486 + dependencies: 1487 + '@noble/curves': 1.9.7 1488 + '@noble/hashes': 1.8.0 1489 + uint8arrays: 3.0.0 1490 + 1040 1491 '@atproto/lex-cli@0.9.5': 1041 1492 dependencies: 1042 1493 '@atproto/lexicon': 0.5.1 ··· 1058 1509 1059 1510 '@atproto/syntax@0.4.1': {} 1060 1511 1512 + '@atproto/xrpc-server@0.9.5': 1513 + dependencies: 1514 + '@atproto/common': 0.4.12 1515 + '@atproto/crypto': 0.4.4 1516 + '@atproto/lexicon': 0.5.1 1517 + '@atproto/xrpc': 0.7.5 1518 + cbor-x: 1.6.0 1519 + express: 4.21.2 1520 + http-errors: 2.0.0 1521 + mime-types: 2.1.35 1522 + rate-limiter-flexible: 2.4.2 1523 + uint8arrays: 3.0.0 1524 + ws: 8.18.3 1525 + zod: 3.25.76 1526 + transitivePeerDependencies: 1527 + - bufferutil 1528 + - supports-color 1529 + - utf-8-validate 1530 + 1531 + '@atproto/xrpc@0.7.5': 1532 + dependencies: 1533 + '@atproto/lexicon': 0.5.1 1534 + zod: 3.25.76 1535 + 1061 1536 '@babel/code-frame@7.25.9': 1062 1537 dependencies: 1063 1538 '@babel/highlight': 7.25.9 ··· 1071 1546 chalk: 2.4.2 1072 1547 js-tokens: 4.0.0 1073 1548 picocolors: 1.1.1 1549 + 1550 + '@cbor-extract/cbor-extract-darwin-arm64@2.2.0': 1551 + optional: true 1552 + 1553 + '@cbor-extract/cbor-extract-darwin-x64@2.2.0': 1554 + optional: true 1555 + 1556 + '@cbor-extract/cbor-extract-linux-arm64@2.2.0': 1557 + optional: true 1558 + 1559 + '@cbor-extract/cbor-extract-linux-arm@2.2.0': 1560 + optional: true 1561 + 1562 + '@cbor-extract/cbor-extract-linux-x64@2.2.0': 1563 + optional: true 1564 + 1565 + '@cbor-extract/cbor-extract-win32-x64@2.2.0': 1566 + optional: true 1074 1567 1075 1568 '@esbuild/aix-ppc64@0.21.5': 1076 1569 optional: true ··· 1141 1634 '@esbuild/win32-x64@0.21.5': 1142 1635 optional: true 1143 1636 1637 + '@ipld/dag-cbor@7.0.3': 1638 + dependencies: 1639 + cborg: 1.10.2 1640 + multiformats: 9.9.0 1641 + 1144 1642 '@jest/schemas@29.6.3': 1145 1643 dependencies: 1146 1644 '@sinclair/typebox': 0.27.8 1147 1645 1148 1646 '@jridgewell/sourcemap-codec@1.5.5': {} 1647 + 1648 + '@noble/curves@1.9.7': 1649 + dependencies: 1650 + '@noble/hashes': 1.8.0 1651 + 1652 + '@noble/hashes@1.8.0': {} 1149 1653 1150 1654 '@nodelib/fs.scandir@2.1.5': 1151 1655 dependencies: ··· 1296 1800 loupe: 2.3.7 1297 1801 pretty-format: 29.7.0 1298 1802 1803 + abort-controller@3.0.0: 1804 + dependencies: 1805 + event-target-shim: 5.0.1 1806 + 1807 + accepts@1.3.8: 1808 + dependencies: 1809 + mime-types: 2.1.35 1810 + negotiator: 0.6.3 1811 + 1299 1812 acorn-walk@8.3.4: 1300 1813 dependencies: 1301 1814 acorn: 8.15.0 ··· 1321 1834 1322 1835 ansi-styles@5.2.0: {} 1323 1836 1837 + array-flatten@1.1.1: {} 1838 + 1324 1839 assertion-error@1.1.0: {} 1840 + 1841 + atomic-sleep@1.0.0: {} 1325 1842 1326 1843 balanced-match@1.0.2: {} 1327 1844 1845 + base64-js@1.5.1: {} 1846 + 1847 + body-parser@1.20.3: 1848 + dependencies: 1849 + bytes: 3.1.2 1850 + content-type: 1.0.5 1851 + debug: 2.6.9 1852 + depd: 2.0.0 1853 + destroy: 1.2.0 1854 + http-errors: 2.0.0 1855 + iconv-lite: 0.4.24 1856 + on-finished: 2.4.1 1857 + qs: 6.13.0 1858 + raw-body: 2.5.2 1859 + type-is: 1.6.18 1860 + unpipe: 1.0.0 1861 + transitivePeerDependencies: 1862 + - supports-color 1863 + 1328 1864 brace-expansion@2.0.2: 1329 1865 dependencies: 1330 1866 balanced-match: 1.0.2 ··· 1333 1869 dependencies: 1334 1870 fill-range: 7.1.1 1335 1871 1872 + buffer@6.0.3: 1873 + dependencies: 1874 + base64-js: 1.5.1 1875 + ieee754: 1.2.1 1876 + 1877 + bytes@3.1.2: {} 1878 + 1336 1879 cac@6.7.14: {} 1337 1880 1881 + call-bind-apply-helpers@1.0.2: 1882 + dependencies: 1883 + es-errors: 1.3.0 1884 + function-bind: 1.1.2 1885 + 1886 + call-bound@1.0.4: 1887 + dependencies: 1888 + call-bind-apply-helpers: 1.0.2 1889 + get-intrinsic: 1.3.0 1890 + 1891 + cbor-extract@2.2.0: 1892 + dependencies: 1893 + node-gyp-build-optional-packages: 5.1.1 1894 + optionalDependencies: 1895 + '@cbor-extract/cbor-extract-darwin-arm64': 2.2.0 1896 + '@cbor-extract/cbor-extract-darwin-x64': 2.2.0 1897 + '@cbor-extract/cbor-extract-linux-arm': 2.2.0 1898 + '@cbor-extract/cbor-extract-linux-arm64': 2.2.0 1899 + '@cbor-extract/cbor-extract-linux-x64': 2.2.0 1900 + '@cbor-extract/cbor-extract-win32-x64': 2.2.0 1901 + optional: true 1902 + 1903 + cbor-x@1.6.0: 1904 + optionalDependencies: 1905 + cbor-extract: 2.2.0 1906 + 1907 + cborg@1.10.2: {} 1908 + 1338 1909 chai@4.5.0: 1339 1910 dependencies: 1340 1911 assertion-error: 1.1.0 ··· 1386 1957 1387 1958 confbox@0.1.8: {} 1388 1959 1960 + content-disposition@0.5.4: 1961 + dependencies: 1962 + safe-buffer: 5.2.1 1963 + 1964 + content-type@1.0.5: {} 1965 + 1966 + cookie-signature@1.0.6: {} 1967 + 1968 + cookie@0.7.1: {} 1969 + 1389 1970 cross-spawn@7.0.6: 1390 1971 dependencies: 1391 1972 path-key: 3.1.1 1392 1973 shebang-command: 2.0.0 1393 1974 which: 2.0.2 1394 1975 1976 + debug@2.6.9: 1977 + dependencies: 1978 + ms: 2.0.0 1979 + 1395 1980 debug@4.4.3: 1396 1981 dependencies: 1397 1982 ms: 2.1.3 ··· 1400 1985 dependencies: 1401 1986 type-detect: 4.1.0 1402 1987 1988 + depd@2.0.0: {} 1989 + 1990 + destroy@1.2.0: {} 1991 + 1992 + detect-libc@2.1.1: 1993 + optional: true 1994 + 1403 1995 diff-sequences@29.6.3: {} 1404 1996 1997 + dunder-proto@1.0.1: 1998 + dependencies: 1999 + call-bind-apply-helpers: 1.0.2 2000 + es-errors: 1.3.0 2001 + gopd: 1.2.0 2002 + 2003 + ee-first@1.1.1: {} 2004 + 1405 2005 emoji-regex@8.0.0: {} 1406 2006 2007 + encodeurl@1.0.2: {} 2008 + 2009 + encodeurl@2.0.0: {} 2010 + 2011 + es-define-property@1.0.1: {} 2012 + 2013 + es-errors@1.3.0: {} 2014 + 2015 + es-object-atoms@1.1.1: 2016 + dependencies: 2017 + es-errors: 1.3.0 2018 + 1407 2019 esbuild@0.21.5: 1408 2020 optionalDependencies: 1409 2021 '@esbuild/aix-ppc64': 0.21.5 ··· 1432 2044 1433 2045 escalade@3.2.0: {} 1434 2046 2047 + escape-html@1.0.3: {} 2048 + 1435 2049 escape-string-regexp@1.0.5: {} 1436 2050 1437 2051 estree-walker@3.0.3: 1438 2052 dependencies: 1439 2053 '@types/estree': 1.0.8 1440 2054 2055 + etag@1.8.1: {} 2056 + 2057 + event-target-shim@5.0.1: {} 2058 + 2059 + events@3.3.0: {} 2060 + 1441 2061 execa@8.0.1: 1442 2062 dependencies: 1443 2063 cross-spawn: 7.0.6 ··· 1450 2070 signal-exit: 4.1.0 1451 2071 strip-final-newline: 3.0.0 1452 2072 2073 + express@4.21.2: 2074 + dependencies: 2075 + accepts: 1.3.8 2076 + array-flatten: 1.1.1 2077 + body-parser: 1.20.3 2078 + content-disposition: 0.5.4 2079 + content-type: 1.0.5 2080 + cookie: 0.7.1 2081 + cookie-signature: 1.0.6 2082 + debug: 2.6.9 2083 + depd: 2.0.0 2084 + encodeurl: 2.0.0 2085 + escape-html: 1.0.3 2086 + etag: 1.8.1 2087 + finalhandler: 1.3.1 2088 + fresh: 0.5.2 2089 + http-errors: 2.0.0 2090 + merge-descriptors: 1.0.3 2091 + methods: 1.1.2 2092 + on-finished: 2.4.1 2093 + parseurl: 1.3.3 2094 + path-to-regexp: 0.1.12 2095 + proxy-addr: 2.0.7 2096 + qs: 6.13.0 2097 + range-parser: 1.2.1 2098 + safe-buffer: 5.2.1 2099 + send: 0.19.0 2100 + serve-static: 1.16.2 2101 + setprototypeof: 1.2.0 2102 + statuses: 2.0.1 2103 + type-is: 1.6.18 2104 + utils-merge: 1.0.1 2105 + vary: 1.1.2 2106 + transitivePeerDependencies: 2107 + - supports-color 2108 + 1453 2109 fast-deep-equal@3.1.3: {} 1454 2110 1455 2111 fast-glob@3.3.3: ··· 1460 2116 merge2: 1.4.1 1461 2117 micromatch: 4.0.8 1462 2118 2119 + fast-redact@3.5.0: {} 2120 + 1463 2121 fast-uri@3.1.0: {} 1464 2122 1465 2123 fastq@1.19.1: ··· 1474 2132 dependencies: 1475 2133 to-regex-range: 5.0.1 1476 2134 2135 + finalhandler@1.3.1: 2136 + dependencies: 2137 + debug: 2.6.9 2138 + encodeurl: 2.0.0 2139 + escape-html: 1.0.3 2140 + on-finished: 2.4.1 2141 + parseurl: 1.3.3 2142 + statuses: 2.0.1 2143 + unpipe: 1.0.0 2144 + transitivePeerDependencies: 2145 + - supports-color 2146 + 2147 + forwarded@0.2.0: {} 2148 + 2149 + fresh@0.5.2: {} 2150 + 1477 2151 fsevents@2.3.3: 1478 2152 optional: true 1479 2153 2154 + function-bind@1.1.2: {} 2155 + 1480 2156 get-caller-file@2.0.5: {} 1481 2157 1482 2158 get-func-name@2.0.2: {} 1483 2159 2160 + get-intrinsic@1.3.0: 2161 + dependencies: 2162 + call-bind-apply-helpers: 1.0.2 2163 + es-define-property: 1.0.1 2164 + es-errors: 1.3.0 2165 + es-object-atoms: 1.1.1 2166 + function-bind: 1.1.2 2167 + get-proto: 1.0.1 2168 + gopd: 1.2.0 2169 + has-symbols: 1.1.0 2170 + hasown: 2.0.2 2171 + math-intrinsics: 1.1.0 2172 + 2173 + get-proto@1.0.1: 2174 + dependencies: 2175 + dunder-proto: 1.0.1 2176 + es-object-atoms: 1.1.1 2177 + 1484 2178 get-stream@8.0.1: {} 1485 2179 1486 2180 glob-parent@5.1.2: ··· 1495 2189 path-type: 5.0.0 1496 2190 slash: 5.1.0 1497 2191 unicorn-magic: 0.1.0 2192 + 2193 + gopd@1.2.0: {} 1498 2194 1499 2195 graphemer@1.4.0: {} 1500 2196 1501 2197 has-flag@3.0.0: {} 1502 2198 1503 2199 has-flag@4.0.0: {} 2200 + 2201 + has-symbols@1.1.0: {} 2202 + 2203 + hasown@2.0.2: 2204 + dependencies: 2205 + function-bind: 1.1.2 2206 + 2207 + http-errors@2.0.0: 2208 + dependencies: 2209 + depd: 2.0.0 2210 + inherits: 2.0.4 2211 + setprototypeof: 1.2.0 2212 + statuses: 2.0.1 2213 + toidentifier: 1.0.1 1504 2214 1505 2215 human-signals@5.0.0: {} 1506 2216 2217 + iconv-lite@0.4.24: 2218 + dependencies: 2219 + safer-buffer: 2.1.2 2220 + 2221 + ieee754@1.2.1: {} 2222 + 1507 2223 ignore@5.3.2: {} 2224 + 2225 + inherits@2.0.4: {} 2226 + 2227 + ipaddr.js@1.9.1: {} 1508 2228 1509 2229 is-extglob@2.1.1: {} 1510 2230 ··· 1543 2263 dependencies: 1544 2264 '@jridgewell/sourcemap-codec': 1.5.5 1545 2265 2266 + math-intrinsics@1.1.0: {} 2267 + 2268 + media-typer@0.3.0: {} 2269 + 2270 + merge-descriptors@1.0.3: {} 2271 + 1546 2272 merge-stream@2.0.0: {} 1547 2273 1548 2274 merge2@1.4.1: {} 2275 + 2276 + methods@1.1.2: {} 1549 2277 1550 2278 micromatch@4.0.8: 1551 2279 dependencies: 1552 2280 braces: 3.0.3 1553 2281 picomatch: 2.3.1 1554 2282 2283 + mime-db@1.52.0: {} 2284 + 2285 + mime-types@2.1.35: 2286 + dependencies: 2287 + mime-db: 1.52.0 2288 + 2289 + mime@1.6.0: {} 2290 + 1555 2291 mimic-fn@4.0.0: {} 1556 2292 1557 2293 minimatch@9.0.5: ··· 1564 2300 pathe: 2.0.3 1565 2301 pkg-types: 1.3.1 1566 2302 ufo: 1.6.1 2303 + 2304 + ms@2.0.0: {} 1567 2305 1568 2306 ms@2.1.3: {} 1569 2307 ··· 1573 2311 1574 2312 nanoid@3.3.11: {} 1575 2313 2314 + negotiator@0.6.3: {} 2315 + 2316 + node-gyp-build-optional-packages@5.1.1: 2317 + dependencies: 2318 + detect-libc: 2.1.1 2319 + optional: true 2320 + 1576 2321 npm-run-path@5.3.0: 1577 2322 dependencies: 1578 2323 path-key: 4.0.0 2324 + 2325 + object-inspect@1.13.4: {} 2326 + 2327 + on-exit-leak-free@2.1.2: {} 2328 + 2329 + on-finished@2.4.1: 2330 + dependencies: 2331 + ee-first: 1.1.1 1579 2332 1580 2333 onetime@6.0.0: 1581 2334 dependencies: ··· 1585 2338 dependencies: 1586 2339 yocto-queue: 1.2.1 1587 2340 2341 + parseurl@1.3.3: {} 2342 + 1588 2343 path-browserify@1.0.1: {} 1589 2344 1590 2345 path-key@3.1.1: {} 1591 2346 1592 2347 path-key@4.0.0: {} 2348 + 2349 + path-to-regexp@0.1.12: {} 1593 2350 1594 2351 path-type@5.0.0: {} 1595 2352 ··· 1605 2362 1606 2363 picomatch@4.0.3: {} 1607 2364 2365 + pino-abstract-transport@1.2.0: 2366 + dependencies: 2367 + readable-stream: 4.7.0 2368 + split2: 4.2.0 2369 + 2370 + pino-std-serializers@6.2.2: {} 2371 + 2372 + pino@8.21.0: 2373 + dependencies: 2374 + atomic-sleep: 1.0.0 2375 + fast-redact: 3.5.0 2376 + on-exit-leak-free: 2.1.2 2377 + pino-abstract-transport: 1.2.0 2378 + pino-std-serializers: 6.2.2 2379 + process-warning: 3.0.0 2380 + quick-format-unescaped: 4.0.4 2381 + real-require: 0.2.0 2382 + safe-stable-stringify: 2.5.0 2383 + sonic-boom: 3.8.1 2384 + thread-stream: 2.7.0 2385 + 1608 2386 pkg-types@1.3.1: 1609 2387 dependencies: 1610 2388 confbox: 0.1.8 ··· 1625 2403 ansi-styles: 5.2.0 1626 2404 react-is: 18.3.1 1627 2405 2406 + process-warning@3.0.0: {} 2407 + 2408 + process@0.11.10: {} 2409 + 1628 2410 prompts@2.4.2: 1629 2411 dependencies: 1630 2412 kleur: 3.0.3 1631 2413 sisteransi: 1.0.5 1632 2414 2415 + proxy-addr@2.0.7: 2416 + dependencies: 2417 + forwarded: 0.2.0 2418 + ipaddr.js: 1.9.1 2419 + 2420 + qs@6.13.0: 2421 + dependencies: 2422 + side-channel: 1.1.0 2423 + 1633 2424 queue-microtask@1.2.3: {} 1634 2425 2426 + quick-format-unescaped@4.0.4: {} 2427 + 2428 + range-parser@1.2.1: {} 2429 + 2430 + rate-limiter-flexible@2.4.2: {} 2431 + 2432 + raw-body@2.5.2: 2433 + dependencies: 2434 + bytes: 3.1.2 2435 + http-errors: 2.0.0 2436 + iconv-lite: 0.4.24 2437 + unpipe: 1.0.0 2438 + 1635 2439 react-is@18.3.1: {} 2440 + 2441 + readable-stream@4.7.0: 2442 + dependencies: 2443 + abort-controller: 3.0.0 2444 + buffer: 6.0.3 2445 + events: 3.3.0 2446 + process: 0.11.10 2447 + string_decoder: 1.3.0 2448 + 2449 + real-require@0.2.0: {} 1636 2450 1637 2451 require-directory@2.1.1: {} 1638 2452 ··· 1672 2486 dependencies: 1673 2487 queue-microtask: 1.2.3 1674 2488 2489 + safe-buffer@5.2.1: {} 2490 + 2491 + safe-stable-stringify@2.5.0: {} 2492 + 2493 + safer-buffer@2.1.2: {} 2494 + 1675 2495 semver@7.7.2: {} 1676 2496 2497 + send@0.19.0: 2498 + dependencies: 2499 + debug: 2.6.9 2500 + depd: 2.0.0 2501 + destroy: 1.2.0 2502 + encodeurl: 1.0.2 2503 + escape-html: 1.0.3 2504 + etag: 1.8.1 2505 + fresh: 0.5.2 2506 + http-errors: 2.0.0 2507 + mime: 1.6.0 2508 + ms: 2.1.3 2509 + on-finished: 2.4.1 2510 + range-parser: 1.2.1 2511 + statuses: 2.0.1 2512 + transitivePeerDependencies: 2513 + - supports-color 2514 + 2515 + serve-static@1.16.2: 2516 + dependencies: 2517 + encodeurl: 2.0.0 2518 + escape-html: 1.0.3 2519 + parseurl: 1.3.3 2520 + send: 0.19.0 2521 + transitivePeerDependencies: 2522 + - supports-color 2523 + 2524 + setprototypeof@1.2.0: {} 2525 + 1677 2526 shebang-command@2.0.0: 1678 2527 dependencies: 1679 2528 shebang-regex: 3.0.0 1680 2529 1681 2530 shebang-regex@3.0.0: {} 1682 2531 2532 + side-channel-list@1.0.0: 2533 + dependencies: 2534 + es-errors: 1.3.0 2535 + object-inspect: 1.13.4 2536 + 2537 + side-channel-map@1.0.1: 2538 + dependencies: 2539 + call-bound: 1.0.4 2540 + es-errors: 1.3.0 2541 + get-intrinsic: 1.3.0 2542 + object-inspect: 1.13.4 2543 + 2544 + side-channel-weakmap@1.0.2: 2545 + dependencies: 2546 + call-bound: 1.0.4 2547 + es-errors: 1.3.0 2548 + get-intrinsic: 1.3.0 2549 + object-inspect: 1.13.4 2550 + side-channel-map: 1.0.1 2551 + 2552 + side-channel@1.1.0: 2553 + dependencies: 2554 + es-errors: 1.3.0 2555 + object-inspect: 1.13.4 2556 + side-channel-list: 1.0.0 2557 + side-channel-map: 1.0.1 2558 + side-channel-weakmap: 1.0.2 2559 + 1683 2560 siginfo@2.0.0: {} 1684 2561 1685 2562 signal-exit@4.1.0: {} ··· 1688 2565 1689 2566 slash@5.1.0: {} 1690 2567 2568 + sonic-boom@3.8.1: 2569 + dependencies: 2570 + atomic-sleep: 1.0.0 2571 + 1691 2572 source-map-js@1.2.1: {} 1692 2573 2574 + split2@4.2.0: {} 2575 + 1693 2576 stackback@0.0.2: {} 1694 2577 2578 + statuses@2.0.1: {} 2579 + 1695 2580 std-env@3.9.0: {} 1696 2581 1697 2582 string-width@4.2.3: ··· 1700 2585 is-fullwidth-code-point: 3.0.0 1701 2586 strip-ansi: 6.0.1 1702 2587 2588 + string_decoder@1.3.0: 2589 + dependencies: 2590 + safe-buffer: 5.2.1 2591 + 1703 2592 strip-ansi@6.0.1: 1704 2593 dependencies: 1705 2594 ansi-regex: 5.0.1 ··· 1724 2613 1725 2614 temporal-spec@0.2.4: {} 1726 2615 2616 + thread-stream@2.7.0: 2617 + dependencies: 2618 + real-require: 0.2.0 2619 + 1727 2620 tinybench@2.9.0: {} 1728 2621 1729 2622 tinyglobby@0.2.15: ··· 1739 2632 dependencies: 1740 2633 is-number: 7.0.0 1741 2634 2635 + toidentifier@1.0.1: {} 2636 + 1742 2637 ts-morph@24.0.0: 1743 2638 dependencies: 1744 2639 '@ts-morph/common': 0.25.0 1745 2640 code-block-writer: 13.0.3 1746 2641 1747 2642 type-detect@4.1.0: {} 2643 + 2644 + type-is@1.6.18: 2645 + dependencies: 2646 + media-typer: 0.3.0 2647 + mime-types: 2.1.35 1748 2648 1749 2649 typescript@5.9.3: {} 1750 2650 ··· 1757 2657 undici-types@6.21.0: {} 1758 2658 1759 2659 unicorn-magic@0.1.0: {} 2660 + 2661 + unpipe@1.0.0: {} 2662 + 2663 + utils-merge@1.0.1: {} 2664 + 2665 + vary@1.1.2: {} 1760 2666 1761 2667 vite-node@1.6.1(@types/node@20.19.19): 1762 2668 dependencies: ··· 1848 2754 ansi-styles: 4.3.0 1849 2755 string-width: 4.2.3 1850 2756 strip-ansi: 6.0.1 2757 + 2758 + ws@8.18.3: {} 1851 2759 1852 2760 y18n@5.0.8: {} 1853 2761