@bigmistqke/lexicon-to-valibot 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +55 -47
- package/dist/index.js +10450 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/converters/atproto.ts","../src/converters/complex.ts","../src/converters/primitives.ts","../src/converters/xrpc.ts","../src/atproto-refs.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { convertBlob, convertCidLink, convertToken } from \"./converters/atproto.js\";\nimport { convertArray, convertObject, convertRef, convertUnion } from \"./converters/complex.js\";\nimport {\n convertBoolean,\n convertBytes,\n convertInteger,\n convertString,\n convertUnknown,\n} from \"./converters/primitives.js\";\nimport {\n convertProcedure,\n convertQuery,\n convertSubscription,\n type ProcedureValidators,\n type QueryValidators,\n type SubscriptionValidators,\n} from \"./converters/xrpc.js\";\nimport type {\n ConverterContext,\n LexArray,\n LexBlob,\n LexBoolean,\n LexBytes,\n LexCidLink,\n LexInteger,\n LexObject,\n LexRecord,\n LexRef,\n LexRefUnion,\n LexString,\n LexToken,\n LexUnknown,\n LexUserType,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription\n} from \"./types.js\";\n\n// Flexible input type that accepts both LexiconDoc and const objects\nexport interface LexiconInput {\n lexicon: 1;\n id: string;\n defs: Record<string, unknown>;\n description?: string;\n revision?: number;\n}\n\n// Options for lexiconToValibot\nexport interface LexiconToValibotOptions {\n /** External ref schemas (e.g., com.atproto.repo.strongRef) */\n externalRefs?: Record<string, v.GenericSchema>;\n}\n\nexport type { ProcedureValidators, QueryValidators, SubscriptionValidators };\n\ntype XrpcResult = QueryValidators | ProcedureValidators | SubscriptionValidators;\n\nfunction convertType(schema: unknown, ctx: ConverterContext): v.GenericSchema {\n if (typeof schema !== \"object\" || schema === null) {\n throw new Error(`Invalid schema: expected object, got ${typeof schema}`);\n }\n\n const schemaObj = schema as { type?: string };\n\n switch (schemaObj.type) {\n // Primitives\n case \"boolean\":\n return convertBoolean(schema as LexBoolean);\n case \"integer\":\n return convertInteger(schema as LexInteger);\n case \"string\":\n return convertString(schema as LexString);\n case \"unknown\":\n return convertUnknown(schema as LexUnknown);\n\n // IPLD types\n case \"bytes\":\n return convertBytes(schema as LexBytes);\n case \"cid-link\":\n return convertCidLink(schema as LexCidLink);\n\n // AT Protocol types\n case \"blob\":\n return convertBlob(schema as LexBlob);\n case \"token\":\n return convertToken(schema as LexToken);\n\n // Complex types\n case \"array\":\n return convertArray(schema as LexArray, ctx, convertType);\n case \"object\":\n return convertObject(schema as LexObject, ctx, convertType);\n case \"ref\":\n return convertRef(schema as LexRef, ctx);\n case \"union\":\n return convertUnion(schema as LexRefUnion, ctx);\n\n // Record type\n case \"record\":\n return convertObject((schema as LexRecord).record, ctx, convertType);\n\n default:\n throw new Error(`Unknown schema type: ${schemaObj.type}`);\n }\n}\n\n// Convert XRPC def - returns validators object\nfunction convertXrpcDef(schema: unknown, ctx: ConverterContext): XrpcResult {\n if (typeof schema !== \"object\" || schema === null) {\n throw new Error(`Invalid schema: expected object, got ${typeof schema}`);\n }\n\n const schemaObj = schema as { type?: string };\n\n switch (schemaObj.type) {\n case \"query\":\n return convertQuery(schema as LexXrpcQuery, ctx, convertType);\n case \"procedure\":\n return convertProcedure(schema as LexXrpcProcedure, ctx, convertType);\n case \"subscription\":\n return convertSubscription(schema as LexXrpcSubscription, ctx, convertType);\n default:\n throw new Error(`Not an XRPC type: ${schemaObj.type}`);\n }\n}\n\n// Check if a def is an XRPC type\nfunction isXrpcDef(schema: unknown): boolean {\n if (typeof schema !== \"object\" || schema === null) return false;\n const type = (schema as { type?: string }).type;\n return type === \"query\" || type === \"procedure\" || type === \"subscription\";\n}\n\nfunction createRefResolver(\n lexiconId: string,\n defs: Record<string, LexUserType>,\n cache: Map<string, v.GenericSchema>,\n externalRefs: Record<string, v.GenericSchema> = {}\n): (ref: string) => v.GenericSchema {\n return (ref: string) => {\n // Parse the ref - could be:\n // - \"#defName\" (local ref)\n // - \"com.example.lexicon#defName\" (external ref)\n // - \"com.example.lexicon\" (main def of external lexicon)\n\n let resolvedRef = ref;\n\n if (ref.startsWith(\"#\")) {\n // Local ref\n resolvedRef = `${lexiconId}${ref}`;\n } else if (!ref.includes(\"#\")) {\n // External ref to main def\n resolvedRef = `${ref}#main`;\n }\n\n // Check cache first\n if (cache.has(resolvedRef)) {\n return cache.get(resolvedRef)!;\n }\n\n // Check external refs (try both original and resolved)\n if (externalRefs[ref]) {\n cache.set(resolvedRef, externalRefs[ref]);\n return externalRefs[ref];\n }\n if (externalRefs[resolvedRef]) {\n cache.set(resolvedRef, externalRefs[resolvedRef]);\n return externalRefs[resolvedRef];\n }\n\n // Parse the full ref\n const [nsid, defName] = resolvedRef.includes(\"#\")\n ? resolvedRef.split(\"#\")\n : [resolvedRef, \"main\"];\n\n // Only handle local refs\n if (nsid !== lexiconId) {\n // External ref not found in externalRefs\n console.warn(`External ref not resolved: ${ref} - provide it in externalRefs option`);\n return v.unknown();\n }\n\n const def = defs[defName];\n if (!def) {\n throw new Error(`Ref not found: ${ref} (resolved to ${resolvedRef})`);\n }\n\n // Create context for conversion\n const ctx: ConverterContext = {\n lexiconId,\n defs,\n resolveRef: createRefResolver(lexiconId, defs, cache, externalRefs),\n };\n\n // Convert and cache\n const schema = convertType(def, ctx);\n cache.set(resolvedRef, schema);\n return schema;\n };\n}\n\nimport type { InferLexiconValidators, InferXrpcValidators } from \"./infer.js\";\n\n// Helper type to convert schema map to output type map\ntype InferSchemaOutputs<T extends Record<string, v.GenericSchema>> = {\n [K in keyof T]: v.InferOutput<T[K]>;\n};\n\n/**\n * Convert a lexicon to valibot schemas for records and objects.\n * Skips XRPC types (query, procedure, subscription) - use xrpcToValibot for those.\n */\nexport function lexiconToValibot<\n T extends LexiconInput,\n ExtRefs extends Record<string, v.GenericSchema> = {}\n>(\n lexicon: T,\n options: { externalRefs?: ExtRefs } = {}\n): InferLexiconValidators<T, InferSchemaOutputs<ExtRefs>> {\n const cache = new Map<string, v.GenericSchema>();\n const resolveRef = createRefResolver(\n lexicon.id,\n lexicon.defs as Record<string, LexUserType>,\n cache,\n options.externalRefs ?? {}\n );\n\n const ctx: ConverterContext = {\n lexiconId: lexicon.id,\n defs: lexicon.defs,\n resolveRef,\n };\n\n const result: Record<string, v.GenericSchema> = {};\n\n for (const [defName, def] of Object.entries(lexicon.defs)) {\n // Skip XRPC types\n if (isXrpcDef(def)) continue;\n result[defName] = convertType(def, ctx);\n }\n\n return result as InferLexiconValidators<T, InferSchemaOutputs<ExtRefs>>;\n}\n\n/**\n * Convert a lexicon to valibot validators for XRPC endpoints.\n * Only handles query, procedure, and subscription types.\n */\nexport function xrpcToValibot<\n T extends LexiconInput,\n ExtRefs extends Record<string, v.GenericSchema> = {}\n>(\n lexicon: T,\n options: { externalRefs?: ExtRefs } = {}\n): InferXrpcValidators<T, InferSchemaOutputs<ExtRefs>> {\n const cache = new Map<string, v.GenericSchema>();\n const resolveRef = createRefResolver(\n lexicon.id,\n lexicon.defs as Record<string, LexUserType>,\n cache,\n options.externalRefs ?? {}\n );\n\n const ctx: ConverterContext = {\n lexiconId: lexicon.id,\n defs: lexicon.defs,\n resolveRef,\n };\n\n const result: Record<string, XrpcResult> = {};\n\n for (const [defName, def] of Object.entries(lexicon.defs)) {\n // Only handle XRPC types\n if (!isXrpcDef(def)) continue;\n result[defName] = convertXrpcDef(def, ctx);\n }\n\n return result as InferXrpcValidators<T, InferSchemaOutputs<ExtRefs>>;\n}\n\n// Re-export valibot's InferOutput for convenience\nexport type { InferOutput } from \"valibot\";\n// Re-export built-in AT Protocol refs\nexport { atprotoRefs, type AtprotoRefs } from \"./atproto-refs.js\";\n\n// Re-export inference types\nexport type { InferLexiconOutput, InferLexiconValidators, InferLexType } from \"./infer.js\";\n// Re-export types\nexport type { LexiconDoc, LexUserType } from \"./types.js\";\n","import * as v from \"valibot\";\nimport type { LexBlob, LexCidLink, LexToken } from \"../types.js\";\n\n// Blob reference types for AT Protocol\n// The SDK deserializes blobs as BlobRef class instances, so we use duck typing\n// to accept both plain objects and class instances with the required properties.\n\ntype TypedBlobRef = {\n $type: \"blob\";\n ref: { $link: string };\n mimeType: string;\n size: number;\n};\n\ntype UntypedBlobRef = {\n cid: string;\n mimeType: string;\n};\n\ntype BlobRef = TypedBlobRef | UntypedBlobRef;\n\n// Check for SDK BlobRef class: { ref: CID, mimeType: string, size: number }\n// The SDK's _BlobRef has ref as a _CID object, not { $link: string }\nfunction isTypedBlobRef(value: unknown): boolean {\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as Record<string, unknown>;\n return (\n typeof obj.ref === \"object\" &&\n obj.ref !== null &&\n typeof obj.mimeType === \"string\" &&\n typeof obj.size === \"number\"\n );\n}\n\nfunction isUntypedBlobRef(value: unknown): value is UntypedBlobRef {\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as Record<string, unknown>;\n return typeof obj.cid === \"string\" && typeof obj.mimeType === \"string\";\n}\n\nfunction isBlobRef(value: unknown): value is BlobRef {\n return isTypedBlobRef(value) || isUntypedBlobRef(value);\n}\n\n// Custom schema that accepts both plain objects and BlobRef class instances\nconst blobRefSchema = v.custom<BlobRef>(isBlobRef, \"Expected BlobRef\");\n\nexport function convertBlob(schema: LexBlob): v.GenericSchema {\n // For now, we validate the structure but don't enforce accept/maxSize at runtime\n // Those would require access to the actual blob data\n return blobRefSchema;\n}\n\n// CID link is represented as an object with $link property containing the CID string\nconst cidLinkSchema = v.object({\n $link: v.string(),\n});\n\nexport function convertCidLink(_schema: LexCidLink): v.GenericSchema {\n return cidLinkSchema;\n}\n\nexport function convertToken(schema: LexToken): v.GenericSchema {\n // Token is essentially a string literal representing a constant identifier\n // The value should be the full NSID#name reference\n return v.string();\n}\n","import * as v from \"valibot\";\nimport type { LexArray, LexObject, LexRef, LexRefUnion, ConverterContext } from \"../types.js\";\n\nexport function convertArray(\n schema: LexArray,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n const itemsSchema = convertType(schema.items, ctx);\n\n const checks: v.PipeItem<unknown[], unknown[], v.BaseIssue<unknown>>[] = [];\n\n if (schema.minLength !== undefined) {\n checks.push(v.minLength(schema.minLength));\n }\n if (schema.maxLength !== undefined) {\n checks.push(v.maxLength(schema.maxLength));\n }\n\n if (checks.length === 0) {\n return v.array(itemsSchema);\n }\n\n return v.pipe(v.array(itemsSchema), ...checks);\n}\n\nexport function convertObject(\n schema: LexObject,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n const properties: Record<string, v.GenericSchema> = {};\n const requiredSet = new Set(schema.required ?? []);\n const nullableSet = new Set(schema.nullable ?? []);\n\n if (schema.properties) {\n for (const [key, prop] of Object.entries(schema.properties)) {\n let propSchema = convertType(prop, ctx);\n\n // Handle nullable\n if (nullableSet.has(key)) {\n propSchema = v.nullable(propSchema);\n }\n\n // Handle optional (not in required list)\n if (!requiredSet.has(key)) {\n propSchema = v.optional(propSchema);\n }\n\n properties[key] = propSchema;\n }\n }\n\n return v.object(properties);\n}\n\nexport function convertRef(schema: LexRef, ctx: ConverterContext): v.GenericSchema {\n return v.lazy(() => ctx.resolveRef(schema.ref));\n}\n\nexport function convertUnion(\n schema: LexRefUnion,\n ctx: ConverterContext\n): v.GenericSchema {\n if (schema.refs.length === 0) {\n return v.never();\n }\n\n if (schema.refs.length === 1) {\n return v.lazy(() => ctx.resolveRef(schema.refs[0]));\n }\n\n // Create a union of lazy refs - we know there are at least 2 refs from the check above\n const [first, second, ...rest] = schema.refs.map((ref) =>\n v.lazy(() => ctx.resolveRef(ref))\n );\n\n return v.union([first, second, ...rest]);\n}\n","import * as v from \"valibot\";\nimport type { LexBoolean, LexInteger, LexString, LexUnknown, LexBytes } from \"../types.js\";\n\nexport function convertBoolean(schema: LexBoolean): v.GenericSchema {\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n return v.boolean();\n}\n\nexport function convertInteger(schema: LexInteger): v.GenericSchema {\n const checks: v.PipeItem<number, number, v.BaseIssue<unknown>>[] = [v.integer()];\n\n if (schema.minimum !== undefined) {\n checks.push(v.minValue(schema.minimum));\n }\n if (schema.maximum !== undefined) {\n checks.push(v.maxValue(schema.maximum));\n }\n\n if (schema.enum !== undefined && schema.enum.length > 0) {\n return v.picklist(schema.enum);\n }\n\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n\n return v.pipe(v.number(), ...checks);\n}\n\nconst graphemeSegmenter = new Intl.Segmenter(\"en\", { granularity: \"grapheme\" });\n\nfunction countGraphemes(str: string): number {\n return [...graphemeSegmenter.segment(str)].length;\n}\n\nexport function convertString(schema: LexString): v.GenericSchema {\n const checks: v.PipeItem<string, string, v.BaseIssue<unknown>>[] = [];\n\n if (schema.minLength !== undefined) {\n checks.push(v.minLength(schema.minLength));\n }\n if (schema.maxLength !== undefined) {\n checks.push(v.maxLength(schema.maxLength));\n }\n\n if (schema.minGraphemes !== undefined) {\n const min = schema.minGraphemes;\n checks.push(\n v.check(\n (value) => countGraphemes(value) >= min,\n `String must have at least ${min} grapheme(s)`\n )\n );\n }\n if (schema.maxGraphemes !== undefined) {\n const max = schema.maxGraphemes;\n checks.push(\n v.check(\n (value) => countGraphemes(value) <= max,\n `String must have at most ${max} grapheme(s)`\n )\n );\n }\n\n if (schema.enum !== undefined && schema.enum.length > 0) {\n return v.picklist(schema.enum);\n }\n\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n\n if (schema.format !== undefined) {\n switch (schema.format) {\n case \"datetime\":\n checks.push(v.isoTimestamp());\n break;\n case \"uri\":\n checks.push(v.url());\n break;\n case \"at-uri\":\n checks.push(v.regex(/^at:\\/\\/[a-zA-Z0-9._:%-]+\\/[a-zA-Z0-9.]+\\/[a-zA-Z0-9._~:@!$&')(*+,;=-]+$/));\n break;\n case \"did\":\n checks.push(v.regex(/^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$/));\n break;\n case \"handle\":\n checks.push(v.regex(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/));\n break;\n case \"nsid\":\n checks.push(v.regex(/^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\\.[a-zA-Z]([a-zA-Z]{0,61}[a-zA-Z])?)$/));\n break;\n case \"cid\":\n checks.push(v.regex(/^[a-zA-Z0-9+/=]+$/));\n break;\n case \"tid\":\n checks.push(v.regex(/^[234567abcdefghijklmnopqrstuvwxyz]{13}$/));\n break;\n case \"record-key\":\n checks.push(v.regex(/^[a-zA-Z0-9._:~-]+$/));\n break;\n case \"language\":\n checks.push(v.regex(/^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/));\n break;\n case \"at-identifier\":\n // at-identifier can be a handle or a DID\n checks.push(v.regex(/^(did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]|([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$/));\n break;\n }\n }\n\n if (checks.length === 0) {\n return v.string();\n }\n\n return v.pipe(v.string(), ...checks);\n}\n\nexport function convertUnknown(_schema: LexUnknown): v.GenericSchema {\n return v.unknown();\n}\n\nexport function convertBytes(schema: LexBytes): v.GenericSchema {\n const baseSchema = v.instance(Uint8Array);\n\n if (schema.minLength === undefined && schema.maxLength === undefined) {\n return baseSchema;\n }\n\n return v.pipe(\n baseSchema,\n v.check((value) => {\n if (schema.minLength !== undefined && value.length < schema.minLength) {\n return false;\n }\n if (schema.maxLength !== undefined && value.length > schema.maxLength) {\n return false;\n }\n return true;\n }, `Bytes length must be between ${schema.minLength ?? 0} and ${schema.maxLength ?? \"∞\"}`)\n );\n}\n","import * as v from \"valibot\";\nimport type { LexXrpcQuery, LexXrpcProcedure, LexXrpcSubscription, ConverterContext } from \"../types.js\";\n\nexport interface QueryValidators {\n parameters: v.GenericSchema;\n output: v.GenericSchema;\n}\n\nexport interface ProcedureValidators {\n parameters: v.GenericSchema;\n input: v.GenericSchema;\n output: v.GenericSchema;\n}\n\nexport interface SubscriptionValidators {\n parameters: v.GenericSchema;\n message: v.GenericSchema;\n}\n\n// Convert params object to valibot schema\nfunction convertParams(\n params: { type: \"params\"; required?: string[]; properties?: Record<string, unknown> } | undefined,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n if (!params?.properties) {\n return v.object({});\n }\n\n const properties: Record<string, v.GenericSchema> = {};\n const requiredSet = new Set(params.required ?? []);\n\n for (const [key, prop] of Object.entries(params.properties)) {\n let propSchema = convertType(prop, ctx);\n\n if (!requiredSet.has(key)) {\n propSchema = v.optional(propSchema);\n }\n\n properties[key] = propSchema;\n }\n\n return v.object(properties);\n}\n\n// Convert body (input/output/message) to valibot schema\nfunction convertBody(\n body: { schema?: unknown } | undefined,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n if (!body?.schema) {\n return v.unknown();\n }\n return convertType(body.schema, ctx);\n}\n\nexport function convertQuery(\n schema: LexXrpcQuery,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): QueryValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n output: convertBody(schema.output, ctx, convertType),\n };\n}\n\nexport function convertProcedure(\n schema: LexXrpcProcedure,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): ProcedureValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n input: convertBody(schema.input, ctx, convertType),\n output: convertBody(schema.output, ctx, convertType),\n };\n}\n\nexport function convertSubscription(\n schema: LexXrpcSubscription,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): SubscriptionValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n message: convertBody(schema.message, ctx, convertType),\n };\n}\n","// Built-in AT Protocol type validators\n// Users can spread these into externalRefs option\n\nimport * as v from \"valibot\";\n\n// com.atproto.repo.strongRef - reference to another record\nconst strongRef = v.object({\n uri: v.string(),\n cid: v.string(),\n});\n\n// com.atproto.label.selfLabel\nconst selfLabel = v.object({\n val: v.string(),\n});\n\n// com.atproto.label.selfLabels\nconst selfLabels = v.object({\n values: v.array(selfLabel),\n});\n\nexport const atprotoRefs = {\n \"com.atproto.repo.strongRef\": strongRef,\n \"com.atproto.repo.strongRef#main\": strongRef,\n \"com.atproto.label.defs#selfLabel\": selfLabel,\n \"com.atproto.label.defs#selfLabels\": selfLabels,\n} as const;\n\nexport type AtprotoRefs = typeof atprotoRefs;"],"mappings":"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","names":["v","v","convertType","v","v","convertType","v"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.cjs","../node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.cjs","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/handle.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/did.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/nsid.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/at-identifier.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/aturi_validation.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/aturi.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/tid.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/recordkey.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/datetime.ts","../node_modules/.pnpm/@atproto+syntax@0.4.2/node_modules/@atproto/syntax/src/index.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/util.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/types.ts","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/vendor/varint.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/varint.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bytes.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/hashes/digest.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/vendor/base-x.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base58.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base32.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/cid.js","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/check.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/util.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/arrays.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/async.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/tid.ts","../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/cid.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/object.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/blob.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/language.ts","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/identity.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base2.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base8.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base10.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base16.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base36.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base64.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/bases/base256emoji.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/hashes/hasher.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/hashes/sha2.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/hashes/identity.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/codecs/raw.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/codecs/json.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/index.js","../node_modules/.pnpm/multiformats@9.9.0/node_modules/multiformats/cjs/src/basics.js","../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/cjs/src/util/bases.js","../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/cjs/src/from-string.js","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/lib/nodejs-buffer.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/uint8array-from-base64.ts","../node_modules/.pnpm/uint8arrays@3.0.0/node_modules/uint8arrays/cjs/src/to-string.js","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/uint8array-to-base64.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/uint8array.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/lex-equals.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/lex.ts","../node_modules/.pnpm/unicode-segmenter@0.14.5/node_modules/unicode-segmenter/core.cjs","../node_modules/.pnpm/unicode-segmenter@0.14.5/node_modules/unicode-segmenter/_grapheme_data.cjs","../node_modules/.pnpm/unicode-segmenter@0.14.5/node_modules/unicode-segmenter/_incb_data.cjs","../node_modules/.pnpm/unicode-segmenter@0.14.5/node_modules/unicode-segmenter/grapheme.cjs","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/utf8-grapheme-len.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/utf8-len.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/utf8.ts","../node_modules/.pnpm/@atproto+lex-data@0.0.4/node_modules/@atproto/lex-data/src/index.ts","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/src/bytes.ts","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/dist/json.js","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/src/link.ts","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/src/blob.ts","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/src/lex-json.ts","../node_modules/.pnpm/@atproto+lex-json@0.0.4/node_modules/@atproto/lex-json/src/index.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/ipld.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/retry.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/types.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/times.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/strings.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/did-doc.ts","../node_modules/.pnpm/@atproto+common-web@0.4.8/node_modules/@atproto/common-web/src/index.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/blob-refs.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validators/blob.ts","../node_modules/.pnpm/iso-datestring-validator@2.2.2/node_modules/iso-datestring-validator/dist/index.js","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validators/formats.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validators/primitives.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validators/complex.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validators/xrpc.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/validation.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/lexicons.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/serialize.ts","../node_modules/.pnpm/@atproto+lexicon@0.4.14/node_modules/@atproto/lexicon/src/index.ts","../src/index.ts","../src/converters/atproto.ts","../src/converters/complex.ts","../src/converters/primitives.ts","../src/converters/xrpc.ts","../src/atproto-refs.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getParsedType = exports.ZodParsedType = exports.objectUtil = exports.util = void 0;\nvar util;\n(function (util) {\n util.assertEqual = (_) => { };\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && Number.isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => (typeof val === \"string\" ? `'${val}'` : val)).join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (exports.util = util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (exports.objectUtil = objectUtil = {}));\nexports.ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return exports.ZodParsedType.undefined;\n case \"string\":\n return exports.ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? exports.ZodParsedType.nan : exports.ZodParsedType.number;\n case \"boolean\":\n return exports.ZodParsedType.boolean;\n case \"function\":\n return exports.ZodParsedType.function;\n case \"bigint\":\n return exports.ZodParsedType.bigint;\n case \"symbol\":\n return exports.ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return exports.ZodParsedType.array;\n }\n if (data === null) {\n return exports.ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return exports.ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return exports.ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return exports.ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return exports.ZodParsedType.date;\n }\n return exports.ZodParsedType.object;\n default:\n return exports.ZodParsedType.unknown;\n }\n};\nexports.getParsedType = getParsedType;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZodError = exports.quotelessJson = exports.ZodIssueCode = void 0;\nconst util_js_1 = require(\"./helpers/util.cjs\");\nexports.ZodIssueCode = util_js_1.util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexports.quotelessJson = quotelessJson;\nclass ZodError extends Error {\n get errors() {\n return this.issues;\n }\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util_js_1.util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n const firstEl = sub.path[0];\n fieldErrors[firstEl] = fieldErrors[firstEl] || [];\n fieldErrors[firstEl].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nexports.ZodError = ZodError;\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ZodError_js_1 = require(\"../ZodError.cjs\");\nconst util_js_1 = require(\"../helpers/util.cjs\");\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodError_js_1.ZodIssueCode.invalid_type:\n if (issue.received === util_js_1.ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodError_js_1.ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util_js_1.util.jsonStringifyReplacer)}`;\n break;\n case ZodError_js_1.ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util_js_1.util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util_js_1.util.joinValues(issue.options)}`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util_js_1.util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util_js_1.util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodError_js_1.ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"bigint\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodError_js_1.ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodError_js_1.ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodError_js_1.ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodError_js_1.ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodError_js_1.ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util_js_1.util.assertNever(issue);\n }\n return { message };\n};\nexports.default = errorMap;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultErrorMap = void 0;\nexports.setErrorMap = setErrorMap;\nexports.getErrorMap = getErrorMap;\nconst en_js_1 = __importDefault(require(\"./locales/en.cjs\"));\nexports.defaultErrorMap = en_js_1.default;\nlet overrideErrorMap = en_js_1.default;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isAsync = exports.isValid = exports.isDirty = exports.isAborted = exports.OK = exports.DIRTY = exports.INVALID = exports.ParseStatus = exports.EMPTY_PATH = exports.makeIssue = void 0;\nexports.addIssueToContext = addIssueToContext;\nconst errors_js_1 = require(\"../errors.cjs\");\nconst en_js_1 = __importDefault(require(\"../locales/en.cjs\"));\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nexports.makeIssue = makeIssue;\nexports.EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = (0, errors_js_1.getErrorMap)();\n const issue = (0, exports.makeIssue)({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap, // contextual error map is first priority\n ctx.schemaErrorMap, // then schema-bound map if available\n overrideMap, // then global override map\n overrideMap === en_js_1.default ? undefined : en_js_1.default, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return exports.INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return exports.INVALID;\n if (value.status === \"aborted\")\n return exports.INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nexports.ParseStatus = ParseStatus;\nexports.INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nexports.DIRTY = DIRTY;\nconst OK = (value) => ({ status: \"valid\", value });\nexports.OK = OK;\nconst isAborted = (x) => x.status === \"aborted\";\nexports.isAborted = isAborted;\nconst isDirty = (x) => x.status === \"dirty\";\nexports.isDirty = isDirty;\nconst isValid = (x) => x.status === \"valid\";\nexports.isValid = isValid;\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\nexports.isAsync = isAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorUtil = void 0;\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n // biome-ignore lint:\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message?.message;\n})(errorUtil || (exports.errorUtil = errorUtil = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.discriminatedUnion = exports.date = exports.boolean = exports.bigint = exports.array = exports.any = exports.coerce = exports.ZodFirstPartyTypeKind = exports.late = exports.ZodSchema = exports.Schema = exports.ZodReadonly = exports.ZodPipeline = exports.ZodBranded = exports.BRAND = exports.ZodNaN = exports.ZodCatch = exports.ZodDefault = exports.ZodNullable = exports.ZodOptional = exports.ZodTransformer = exports.ZodEffects = exports.ZodPromise = exports.ZodNativeEnum = exports.ZodEnum = exports.ZodLiteral = exports.ZodLazy = exports.ZodFunction = exports.ZodSet = exports.ZodMap = exports.ZodRecord = exports.ZodTuple = exports.ZodIntersection = exports.ZodDiscriminatedUnion = exports.ZodUnion = exports.ZodObject = exports.ZodArray = exports.ZodVoid = exports.ZodNever = exports.ZodUnknown = exports.ZodAny = exports.ZodNull = exports.ZodUndefined = exports.ZodSymbol = exports.ZodDate = exports.ZodBoolean = exports.ZodBigInt = exports.ZodNumber = exports.ZodString = exports.ZodType = void 0;\nexports.NEVER = exports.void = exports.unknown = exports.union = exports.undefined = exports.tuple = exports.transformer = exports.symbol = exports.string = exports.strictObject = exports.set = exports.record = exports.promise = exports.preprocess = exports.pipeline = exports.ostring = exports.optional = exports.onumber = exports.oboolean = exports.object = exports.number = exports.nullable = exports.null = exports.never = exports.nativeEnum = exports.nan = exports.map = exports.literal = exports.lazy = exports.intersection = exports.instanceof = exports.function = exports.enum = exports.effect = void 0;\nexports.datetimeRegex = datetimeRegex;\nexports.custom = custom;\nconst ZodError_js_1 = require(\"./ZodError.cjs\");\nconst errors_js_1 = require(\"./errors.cjs\");\nconst errorUtil_js_1 = require(\"./helpers/errorUtil.cjs\");\nconst parseUtil_js_1 = require(\"./helpers/parseUtil.cjs\");\nconst util_js_1 = require(\"./helpers/util.cjs\");\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (Array.isArray(this._key)) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if ((0, parseUtil_js_1.isValid)(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError_js_1.ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message ?? ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: message ?? required_error ?? ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: message ?? invalid_type_error ?? ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return (0, util_js_1.getParsedType)(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_js_1.getParsedType)(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new parseUtil_js_1.ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: (0, util_js_1.getParsedType)(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if ((0, parseUtil_js_1.isAsync)(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n const ctx = {\n common: {\n issues: [],\n async: params?.async ?? false,\n contextualErrorMap: params?.errorMap,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_js_1.getParsedType)(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n \"~validate\"(data) {\n const ctx = {\n common: {\n issues: [],\n async: !!this[\"~standard\"].async,\n },\n path: [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_js_1.getParsedType)(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return (0, parseUtil_js_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n };\n }\n catch (err) {\n if (err?.message?.toLowerCase()?.includes(\"encountered\")) {\n this[\"~standard\"].async = true;\n }\n ctx.common = {\n issues: [],\n async: true,\n };\n }\n }\n return this._parseAsync({ data, path: [], parent: ctx }).then((result) => (0, parseUtil_js_1.isValid)(result)\n ? {\n value: result.value,\n }\n : {\n issues: ctx.common.issues,\n });\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params?.errorMap,\n async: true,\n },\n path: params?.path || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: (0, util_js_1.getParsedType)(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await ((0, parseUtil_js_1.isAsync)(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodError_js_1.ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n this[\"~standard\"] = {\n version: 1,\n vendor: \"zod\",\n validate: (data) => this[\"~validate\"](data),\n };\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nexports.ZodType = ZodType;\nexports.Schema = ZodType;\nexports.ZodSchema = ZodType;\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst jwtRegex = /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/;\n// const ipv6Regex =\n// /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nconst ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\nconst ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// https://base64.guru/standards/base64url\nconst base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n let secondsRegexSource = `[0-5]\\\\d`;\n if (args.precision) {\n secondsRegexSource = `${secondsRegexSource}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n secondsRegexSource = `${secondsRegexSource}(\\\\.\\\\d+)?`;\n }\n const secondsQuantifier = args.precision ? \"+\" : \"?\"; // require seconds if precision is nonzero\n return `([01]\\\\d|2[0-3]):[0-5]\\\\d(:${secondsRegexSource})${secondsQuantifier}`;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nfunction isValidJWT(jwt, alg) {\n if (!jwtRegex.test(jwt))\n return false;\n try {\n const [header] = jwt.split(\".\");\n if (!header)\n return false;\n // Convert base64url to base64\n const base64 = header\n .replace(/-/g, \"+\")\n .replace(/_/g, \"/\")\n .padEnd(header.length + ((4 - (header.length % 4)) % 4), \"=\");\n const decoded = JSON.parse(atob(base64));\n if (typeof decoded !== \"object\" || decoded === null)\n return false;\n if (\"typ\" in decoded && decoded?.typ !== \"JWT\")\n return false;\n if (!decoded.alg)\n return false;\n if (alg && decoded.alg !== alg)\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nfunction isValidCidr(ip, version) {\n if ((version === \"v4\" || !version) && ipv4CidrRegex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6CidrRegex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.string,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const status = new parseUtil_js_1.ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"email\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"emoji\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"uuid\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"nanoid\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"cuid\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"cuid2\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"ulid\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"url\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"regex\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"duration\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"ip\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"jwt\") {\n if (!isValidJWT(input.data, check.alg)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"jwt\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cidr\") {\n if (!isValidCidr(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"cidr\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"base64\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64url\") {\n if (!base64urlRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n validation: \"base64url\",\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_js_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodError_js_1.ZodIssueCode.invalid_string,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n base64url(message) {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return this._addCheck({\n kind: \"base64url\",\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil_js_1.errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil_js_1.errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...errorUtil_js_1.errorUtil.errToObj(options) });\n }\n datetime(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n offset: options?.offset ?? false,\n local: options?.local ?? false,\n ...errorUtil_js_1.errorUtil.errToObj(options?.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof options?.precision === \"undefined\" ? null : options?.precision,\n ...errorUtil_js_1.errorUtil.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil_js_1.errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options?.position,\n ...errorUtil_js_1.errorUtil.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil_js_1.errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(1, errorUtil_js_1.errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isCIDR() {\n return !!this._def.checks.find((ch) => ch.kind === \"cidr\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get isBase64url() {\n // base64url encoding is a modification of base64 that can safely be used in URLs and filenames\n return !!this._def.checks.find((ch) => ch.kind === \"base64url\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nexports.ZodString = ZodString;\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = Number.parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = Number.parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / 10 ** decCount;\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.number,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n let ctx = undefined;\n const status = new parseUtil_js_1.ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util_js_1.util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_js_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil_js_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_js_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_js_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_js_1.errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil_js_1.errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil_js_1.errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || (ch.kind === \"multipleOf\" && util_js_1.util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null;\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nexports.ZodNumber = ZodNumber;\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n try {\n input.data = BigInt(input.data);\n }\n catch {\n return this._getInvalidInput(input);\n }\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new parseUtil_js_1.ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util_js_1.util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil_js_1.errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil_js_1.errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil_js_1.errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil_js_1.errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil_js_1.errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nexports.ZodBigInt = ZodBigInt;\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodBoolean = ZodBoolean;\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.date,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_date,\n });\n return parseUtil_js_1.INVALID;\n }\n const status = new parseUtil_js_1.ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util_js_1.util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil_js_1.errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nexports.ZodDate = ZodDate;\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodSymbol = ZodSymbol;\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodUndefined = ZodUndefined;\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.null,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodNull = ZodNull;\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodAny = ZodAny;\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodUnknown = ZodUnknown;\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.never,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n}\nexports.ZodNever = ZodNever;\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.void,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n}\nexports.ZodVoid = ZodVoid;\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== util_js_1.ZodParsedType.array) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: tooBig ? ZodError_js_1.ZodIssueCode.too_big : ZodError_js_1.ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return parseUtil_js_1.ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return parseUtil_js_1.ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil_js_1.errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil_js_1.errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil_js_1.errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nexports.ZodArray = ZodArray;\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util_js_1.util.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") {\n }\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return parseUtil_js_1.ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return parseUtil_js_1.ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil_js_1.errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: errorUtil_js_1.errorUtil.errToObj(message).message ?? defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n for (const key of util_js_1.util.objectKeys(mask)) {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n for (const key of util_js_1.util.objectKeys(this.shape)) {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n for (const key of util_js_1.util.objectKeys(this.shape)) {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n for (const key of util_js_1.util.objectKeys(this.shape)) {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util_js_1.util.objectKeys(this.shape));\n }\n}\nexports.ZodObject = ZodObject;\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError_js_1.ZodError(result.ctx.common.issues));\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_js_1.INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError_js_1.ZodError(issues));\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_union,\n unionErrors,\n });\n return parseUtil_js_1.INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nexports.ZodUnion = ZodUnion;\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util_js_1.util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.object) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return parseUtil_js_1.INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nexports.ZodDiscriminatedUnion = ZodDiscriminatedUnion;\nfunction mergeValues(a, b) {\n const aType = (0, util_js_1.getParsedType)(a);\n const bType = (0, util_js_1.getParsedType)(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === util_js_1.ZodParsedType.object && bType === util_js_1.ZodParsedType.object) {\n const bKeys = util_js_1.util.objectKeys(b);\n const sharedKeys = util_js_1.util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === util_js_1.ZodParsedType.array && bType === util_js_1.ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === util_js_1.ZodParsedType.date && bType === util_js_1.ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if ((0, parseUtil_js_1.isAborted)(parsedLeft) || (0, parseUtil_js_1.isAborted)(parsedRight)) {\n return parseUtil_js_1.INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_intersection_types,\n });\n return parseUtil_js_1.INVALID;\n }\n if ((0, parseUtil_js_1.isDirty)(parsedLeft) || (0, parseUtil_js_1.isDirty)(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nexports.ZodIntersection = ZodIntersection;\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\n// type ZodTupleItems = [ZodTypeAny, ...ZodTypeAny[]];\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.array) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.array,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return parseUtil_js_1.INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return parseUtil_js_1.ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return parseUtil_js_1.ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nexports.ZodTuple = ZodTuple;\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.object) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.object,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return parseUtil_js_1.ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return parseUtil_js_1.ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nexports.ZodRecord = ZodRecord;\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.map) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.map,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return parseUtil_js_1.INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return parseUtil_js_1.INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nexports.ZodMap = ZodMap;\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.set) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.set,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil_js_1.errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil_js_1.errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nexports.ZodSet = ZodSet;\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.function) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.function,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n function makeArgsIssue(args, error) {\n return (0, parseUtil_js_1.makeIssue)({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, (0, errors_js_1.getErrorMap)(), errors_js_1.defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodError_js_1.ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return (0, parseUtil_js_1.makeIssue)({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, (0, errors_js_1.getErrorMap)(), errors_js_1.defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodError_js_1.ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return (0, parseUtil_js_1.OK)(async function (...args) {\n const error = new ZodError_js_1.ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return (0, parseUtil_js_1.OK)(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError_js_1.ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError_js_1.ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args ? args : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nexports.ZodFunction = ZodFunction;\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nexports.ZodLazy = ZodLazy;\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_js_1.ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return parseUtil_js_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nexports.ZodLiteral = ZodLiteral;\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n expected: util_js_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_js_1.INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(this._def.values);\n }\n if (!this._cache.has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_js_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\nexports.ZodEnum = ZodEnum;\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util_js_1.util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.string && ctx.parsedType !== util_js_1.ZodParsedType.number) {\n const expectedValues = util_js_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n expected: util_js_1.util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n });\n return parseUtil_js_1.INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util_js_1.util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util_js_1.util.objectValues(nativeEnumValues);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n received: ctx.data,\n code: ZodError_js_1.ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return parseUtil_js_1.INVALID;\n }\n return (0, parseUtil_js_1.OK)(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nexports.ZodNativeEnum = ZodNativeEnum;\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== util_js_1.ZodParsedType.promise && ctx.common.async === false) {\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n const promisified = ctx.parsedType === util_js_1.ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return (0, parseUtil_js_1.OK)(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nexports.ZodPromise = ZodPromise;\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n (0, parseUtil_js_1.addIssueToContext)(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return parseUtil_js_1.INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_js_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_js_1.DIRTY)(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return parseUtil_js_1.INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (result.status === \"dirty\")\n return (0, parseUtil_js_1.DIRTY)(result.value);\n if (status.value === \"dirty\")\n return (0, parseUtil_js_1.DIRTY)(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!(0, parseUtil_js_1.isValid)(base))\n return parseUtil_js_1.INVALID;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!(0, parseUtil_js_1.isValid)(base))\n return parseUtil_js_1.INVALID;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({\n status: status.value,\n value: result,\n }));\n });\n }\n }\n util_js_1.util.assertNever(effect);\n }\n}\nexports.ZodEffects = ZodEffects;\nexports.ZodTransformer = ZodEffects;\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === util_js_1.ZodParsedType.undefined) {\n return (0, parseUtil_js_1.OK)(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodOptional = ZodOptional;\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === util_js_1.ZodParsedType.null) {\n return (0, parseUtil_js_1.OK)(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodNullable = ZodNullable;\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === util_js_1.ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nexports.ZodDefault = ZodDefault;\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if ((0, parseUtil_js_1.isAsync)(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError_js_1.ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError_js_1.ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nexports.ZodCatch = ZodCatch;\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== util_js_1.ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n (0, parseUtil_js_1.addIssueToContext)(ctx, {\n code: ZodError_js_1.ZodIssueCode.invalid_type,\n expected: util_js_1.ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return parseUtil_js_1.INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nexports.ZodNaN = ZodNaN;\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexports.BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nexports.ZodBranded = ZodBranded;\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return (0, parseUtil_js_1.DIRTY)(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return parseUtil_js_1.INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nexports.ZodPipeline = ZodPipeline;\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if ((0, parseUtil_js_1.isValid)(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return (0, parseUtil_js_1.isAsync)(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nexports.ZodReadonly = ZodReadonly;\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\n////////////////////////////////////////\n////////////////////////////////////////\n////////// //////////\n////////// z.custom //////////\n////////// //////////\n////////////////////////////////////////\n////////////////////////////////////////\nfunction cleanParams(params, data) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n return p2;\n}\nfunction custom(check, _params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n const r = check(data);\n if (r instanceof Promise) {\n return r.then((r) => {\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n });\n }\n if (!r) {\n const params = cleanParams(_params, data);\n const _fatal = params.fatal ?? fatal ?? true;\n ctx.addIssue({ code: \"custom\", ...params, fatal: _fatal });\n }\n return;\n });\n return ZodAny.create();\n}\nexports.late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (exports.ZodFirstPartyTypeKind = ZodFirstPartyTypeKind = {}));\n// requires TS 4.4+\nclass Class {\n constructor(..._) { }\n}\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nexports.instanceof = instanceOfType;\nconst stringType = ZodString.create;\nexports.string = stringType;\nconst numberType = ZodNumber.create;\nexports.number = numberType;\nconst nanType = ZodNaN.create;\nexports.nan = nanType;\nconst bigIntType = ZodBigInt.create;\nexports.bigint = bigIntType;\nconst booleanType = ZodBoolean.create;\nexports.boolean = booleanType;\nconst dateType = ZodDate.create;\nexports.date = dateType;\nconst symbolType = ZodSymbol.create;\nexports.symbol = symbolType;\nconst undefinedType = ZodUndefined.create;\nexports.undefined = undefinedType;\nconst nullType = ZodNull.create;\nexports.null = nullType;\nconst anyType = ZodAny.create;\nexports.any = anyType;\nconst unknownType = ZodUnknown.create;\nexports.unknown = unknownType;\nconst neverType = ZodNever.create;\nexports.never = neverType;\nconst voidType = ZodVoid.create;\nexports.void = voidType;\nconst arrayType = ZodArray.create;\nexports.array = arrayType;\nconst objectType = ZodObject.create;\nexports.object = objectType;\nconst strictObjectType = ZodObject.strictCreate;\nexports.strictObject = strictObjectType;\nconst unionType = ZodUnion.create;\nexports.union = unionType;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nexports.discriminatedUnion = discriminatedUnionType;\nconst intersectionType = ZodIntersection.create;\nexports.intersection = intersectionType;\nconst tupleType = ZodTuple.create;\nexports.tuple = tupleType;\nconst recordType = ZodRecord.create;\nexports.record = recordType;\nconst mapType = ZodMap.create;\nexports.map = mapType;\nconst setType = ZodSet.create;\nexports.set = setType;\nconst functionType = ZodFunction.create;\nexports.function = functionType;\nconst lazyType = ZodLazy.create;\nexports.lazy = lazyType;\nconst literalType = ZodLiteral.create;\nexports.literal = literalType;\nconst enumType = ZodEnum.create;\nexports.enum = enumType;\nconst nativeEnumType = ZodNativeEnum.create;\nexports.nativeEnum = nativeEnumType;\nconst promiseType = ZodPromise.create;\nexports.promise = promiseType;\nconst effectsType = ZodEffects.create;\nexports.effect = effectsType;\nexports.transformer = effectsType;\nconst optionalType = ZodOptional.create;\nexports.optional = optionalType;\nconst nullableType = ZodNullable.create;\nexports.nullable = nullableType;\nconst preprocessType = ZodEffects.createWithPreprocess;\nexports.preprocess = preprocessType;\nconst pipelineType = ZodPipeline.create;\nexports.pipeline = pipelineType;\nconst ostring = () => stringType().optional();\nexports.ostring = ostring;\nconst onumber = () => numberType().optional();\nexports.onumber = onumber;\nconst oboolean = () => booleanType().optional();\nexports.oboolean = oboolean;\nexports.coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nexports.NEVER = parseUtil_js_1.INVALID;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./errors.cjs\"), exports);\n__exportStar(require(\"./helpers/parseUtil.cjs\"), exports);\n__exportStar(require(\"./helpers/typeAliases.cjs\"), exports);\n__exportStar(require(\"./helpers/util.cjs\"), exports);\n__exportStar(require(\"./types.cjs\"), exports);\n__exportStar(require(\"./ZodError.cjs\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.z = void 0;\nconst z = __importStar(require(\"./v3/external.cjs\"));\nexports.z = z;\n__exportStar(require(\"./v3/external.cjs\"), exports);\nexports.default = z;\n","export const INVALID_HANDLE = 'handle.invalid'\n\nexport type HandleString = `${string}.${string}`\n\n// Currently these are registration-time restrictions, not protocol-level\n// restrictions. We have a couple accounts in the wild that we need to clean up\n// before hard-disallow.\n// See also: https://en.wikipedia.org/wiki/Top-level_domain#Reserved_domains\nexport const DISALLOWED_TLDS = [\n '.local',\n '.arpa',\n '.invalid',\n '.localhost',\n '.internal',\n '.example',\n '.alt',\n // policy could concievably change on \".onion\" some day\n '.onion',\n // NOTE: .test is allowed in testing and devopment. In practical terms\n // \"should\" \"never\" actually resolve and get registered in production\n]\n\n// Handle constraints, in English:\n// - must be a possible domain name\n// - RFC-1035 is commonly referenced, but has been updated. eg, RFC-3696,\n// section 2. and RFC-3986, section 3. can now have leading numbers (eg,\n// 4chan.org)\n// - \"labels\" (sub-names) are made of ASCII letters, digits, hyphens\n// - can not start or end with a hyphen\n// - TLD (last component) should not start with a digit\n// - can't end with a hyphen (can end with digit)\n// - each segment must be between 1 and 63 characters (not including any periods)\n// - overall length can't be more than 253 characters\n// - separated by (ASCII) periods; does not start or end with period\n// - case insensitive\n// - domains (handles) are equal if they are the same lower-case\n// - punycode allowed for internationalization\n// - no whitespace, null bytes, joining chars, etc\n// - does not validate whether domain or TLD exists, or is a reserved or\n// special TLD (eg, .onion or .local)\n// - does not validate punycode\nexport function ensureValidHandle(\n handle: string,\n): asserts handle is HandleString {\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9.-]*$/.test(handle)) {\n throw new InvalidHandleError(\n 'Disallowed characters in handle (ASCII letters, digits, dashes, periods only)',\n )\n }\n\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n const labels = handle.split('.')\n if (labels.length < 2) {\n throw new InvalidHandleError('Handle domain needs at least two parts')\n }\n for (let i = 0; i < labels.length; i++) {\n const l = labels[i]\n if (l.length < 1) {\n throw new InvalidHandleError('Handle parts can not be empty')\n }\n if (l.length > 63) {\n throw new InvalidHandleError('Handle part too long (max 63 chars)')\n }\n if (l.endsWith('-') || l.startsWith('-')) {\n throw new InvalidHandleError(\n 'Handle parts can not start or end with hyphens',\n )\n }\n if (i + 1 === labels.length && !/^[a-zA-Z]/.test(l)) {\n throw new InvalidHandleError(\n 'Handle final component (TLD) must start with ASCII letter',\n )\n }\n }\n}\n\n// simple regex translation of above constraints\nconst HANDLE_REGEX =\n /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/\n\nexport function ensureValidHandleRegex(\n handle: string,\n): asserts handle is HandleString {\n if (handle.length > 253) {\n throw new InvalidHandleError('Handle is too long (253 chars max)')\n }\n if (!HANDLE_REGEX.test(handle)) {\n throw new InvalidHandleError(\"Handle didn't validate via regex\")\n }\n}\n\nexport function normalizeHandle(handle: string): string {\n return handle.toLowerCase()\n}\n\nexport function normalizeAndEnsureValidHandle(handle: string): HandleString {\n const normalized = normalizeHandle(handle)\n ensureValidHandle(normalized)\n return normalized\n}\n\nexport function isValidHandle(handle: string): handle is HandleString {\n return handle.length <= 253 && HANDLE_REGEX.test(handle)\n}\n\nexport function isValidTld(handle: string): boolean {\n for (const tld of DISALLOWED_TLDS) {\n if (handle.endsWith(tld)) {\n return false\n }\n }\n return true\n}\n\nexport class InvalidHandleError extends Error {}\n/** @deprecated Never used */\nexport class ReservedHandleError extends Error {}\n/** @deprecated Never used */\nexport class UnsupportedDomainError extends Error {}\n/** @deprecated Never used */\nexport class DisallowedDomainError extends Error {}\n","// Human-readable constraints:\n// - valid W3C DID (https://www.w3.org/TR/did-core/#did-syntax)\n// - entire URI is ASCII: [a-zA-Z0-9._:%-]\n// - always starts \"did:\" (lower-case)\n// - method name is one or more lower-case letters, followed by \":\"\n// - remaining identifier can have any of the above chars, but can not end in \":\"\n// - it seems that a bunch of \":\" can be included, and don't need spaces between\n// - \"%\" is used only for \"percent encoding\" and must be followed by two hex characters (and thus can't end in \"%\")\n// - query (\"?\") and fragment (\"#\") stuff is defined for \"DID URIs\", but not as part of identifier itself\n// - \"The current specification does not take a position on the maximum length of a DID\"\n// - in current atproto, only allowing did:plc and did:web. But not *forcing* this at lexicon layer\n// - hard length limit of 8KBytes\n// - not going to validate \"percent encoding\" here\n\nexport type DidString<M extends string = string> = `did:${M}:${string}`\n\nexport function ensureValidDid(did: string): asserts did is DidString {\n if (!did.startsWith('did:')) {\n throw new InvalidDidError('DID requires \"did:\" prefix')\n }\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._:%-]*$/.test(did)) {\n throw new InvalidDidError(\n 'Disallowed characters in DID (ASCII letters, digits, and a couple other characters only)',\n )\n }\n\n const { length, 1: method } = did.split(':')\n if (length < 3) {\n throw new InvalidDidError(\n 'DID requires prefix, method, and method-specific content',\n )\n }\n\n if (!/^[a-z]+$/.test(method)) {\n throw new InvalidDidError('DID method must be lower-case letters')\n }\n\n if (did.endsWith(':') || did.endsWith('%')) {\n throw new InvalidDidError('DID can not end with \":\" or \"%\"')\n }\n\n if (did.length > 2 * 1024) {\n throw new InvalidDidError('DID is too long (2048 chars max)')\n }\n}\n\nexport function ensureValidDidRegex(did: string): asserts did is DidString {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints\n if (!/^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$/.test(did)) {\n throw new InvalidDidError(\"DID didn't validate via regex\")\n }\n\n if (did.length > 2 * 1024) {\n throw new InvalidDidError('DID is too long (2048 chars max)')\n }\n}\n\nexport class InvalidDidError extends Error {}\n","/*\nGrammar:\n\nalpha = \"a\" / \"b\" / \"c\" / \"d\" / \"e\" / \"f\" / \"g\" / \"h\" / \"i\" / \"j\" / \"k\" / \"l\" / \"m\" / \"n\" / \"o\" / \"p\" / \"q\" / \"r\" / \"s\" / \"t\" / \"u\" / \"v\" / \"w\" / \"x\" / \"y\" / \"z\" / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\" / \"G\" / \"H\" / \"I\" / \"J\" / \"K\" / \"L\" / \"M\" / \"N\" / \"O\" / \"P\" / \"Q\" / \"R\" / \"S\" / \"T\" / \"U\" / \"V\" / \"W\" / \"X\" / \"Y\" / \"Z\"\nnumber = \"1\" / \"2\" / \"3\" / \"4\" / \"5\" / \"6\" / \"7\" / \"8\" / \"9\" / \"0\"\ndelim = \".\"\nsegment = alpha *( alpha / number / \"-\" )\nauthority = segment *( delim segment )\nname = alpha *( alpha / number )\nnsid = authority delim name\n\n*/\n\nexport type NsidString = `${string}.${string}.${string}`\n\nexport class NSID {\n readonly segments: readonly string[]\n\n static parse(input: string): NSID {\n return new NSID(input)\n }\n\n static create(authority: string, name: string): NSID {\n const input = [...authority.split('.').reverse(), name].join('.')\n return new NSID(input)\n }\n\n static isValid(nsid: string) {\n return isValidNsid(nsid)\n }\n\n static from(input: { toString: () => string }): NSID {\n if (input instanceof NSID) {\n // No need to clone, NSID is immutable\n return input\n }\n if (Array.isArray(input)) {\n return new NSID((input as string[]).join('.'))\n }\n return new NSID(String(input))\n }\n\n constructor(nsid: string) {\n this.segments = parseNsid(nsid)\n }\n\n get authority() {\n return this.segments\n .slice(0, this.segments.length - 1)\n .reverse()\n .join('.')\n }\n\n get name() {\n return this.segments.at(this.segments.length - 1)\n }\n\n toString() {\n return this.segments.join('.')\n }\n}\n\nexport function ensureValidNsid(nsid: string): asserts nsid is NsidString {\n const result = validateNsid(nsid)\n if (!result.success) throw new InvalidNsidError(result.message)\n}\n\nexport function parseNsid(nsid: string): string[] {\n const result = validateNsid(nsid)\n if (!result.success) throw new InvalidNsidError(result.message)\n return result.value\n}\n\nexport function isValidNsid(nsid: string): nsid is NsidString {\n // Since the regex version is more performant for valid NSIDs, we use it when\n // we don't care about error details.\n return validateNsidRegex(nsid).success\n}\n\ntype ValidateResult<T> =\n | { success: true; value: T }\n | { success: false; message: string }\n\n// Human readable constraints on NSID:\n// - a valid domain in reversed notation\n// - followed by an additional period-separated name, which is camel-case letters\nexport function validateNsid(input: string): ValidateResult<string[]> {\n if (input.length > 253 + 1 + 63) {\n return {\n success: false,\n message: 'NSID is too long (317 chars max)',\n }\n }\n if (hasDisallowedCharacters(input)) {\n return {\n success: false,\n message:\n 'Disallowed characters in NSID (ASCII letters, digits, dashes, periods only)',\n }\n }\n const segments = input.split('.')\n if (segments.length < 3) {\n return {\n success: false,\n message: 'NSID needs at least three parts',\n }\n }\n for (const l of segments) {\n if (l.length < 1) {\n return {\n success: false,\n message: 'NSID parts can not be empty',\n }\n }\n if (l.length > 63) {\n return {\n success: false,\n message: 'NSID part too long (max 63 chars)',\n }\n }\n if (startsWithHyphen(l) || endsWithHyphen(l)) {\n return {\n success: false,\n message: 'NSID parts can not start or end with hyphen',\n }\n }\n }\n if (startsWithNumber(segments[0])) {\n return {\n success: false,\n message: 'NSID first part may not start with a digit',\n }\n }\n if (!isValidIdentifier(segments[segments.length - 1])) {\n return {\n success: false,\n message:\n 'NSID name part must be only letters and digits (and no leading digit)',\n }\n }\n return {\n success: true,\n value: segments,\n }\n}\n\nfunction hasDisallowedCharacters(v: string) {\n return !/^[a-zA-Z0-9.-]*$/.test(v)\n}\n\nfunction startsWithNumber(v: string) {\n const charCode = v.charCodeAt(0)\n return charCode >= 48 && charCode <= 57\n}\n\nfunction startsWithHyphen(v: string) {\n return v.charCodeAt(0) === 45 /* - */\n}\n\nfunction endsWithHyphen(v: string) {\n return v.charCodeAt(v.length - 1) === 45 /* - */\n}\n\nfunction isValidIdentifier(v: string) {\n // Note, since we already know that \"v\" only contains [a-zA-Z0-9-], we can\n // simplify the following regex by checking only the first char and presence\n // of \"-\".\n\n // return /^[a-zA-Z][a-zA-Z0-9]*$/.test(v)\n return !startsWithNumber(v) && !v.includes('-')\n}\n\n/**\n * @deprecated Use {@link ensureValidNsid} if you care about error details,\n * {@link parseNsid}/{@link NSID.parse} if you need the parsed segments, or\n * {@link isValidNsid} if you just want a boolean.\n */\nexport function ensureValidNsidRegex(nsid: string): asserts nsid is NsidString {\n const result = validateNsidRegex(nsid)\n if (!result.success) throw new InvalidNsidError(result.message)\n}\n\n/**\n * Regexp based validation that behaves identically to the previous code but\n * provides less detailed error messages (while being 20% to 50% faster).\n */\nexport function validateNsidRegex(value: string): ValidateResult<NsidString> {\n if (value.length > 253 + 1 + 63) {\n return {\n success: false,\n message: 'NSID is too long (317 chars max)',\n }\n }\n\n if (\n !/^[a-zA-Z](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?:\\.[a-zA-Z](?:[a-zA-Z0-9]{0,62})?)$/.test(\n value,\n )\n ) {\n return {\n success: false,\n message: \"NSID didn't validate via regex\",\n }\n }\n\n return {\n success: true,\n value: value as NsidString,\n }\n}\n\nexport class InvalidNsidError extends Error {}\n","import { DidString, ensureValidDidRegex } from './did.js'\nimport {\n HandleString,\n InvalidHandleError,\n ensureValidHandleRegex,\n} from './handle.js'\n\nexport type AtIdentifierString = DidString | HandleString\n\nexport function ensureValidAtIdentifier(\n input: string,\n): asserts input is AtIdentifierString {\n try {\n if (input.startsWith('did:')) {\n ensureValidDidRegex(input)\n } else {\n ensureValidHandleRegex(input)\n }\n } catch (cause) {\n throw new InvalidHandleError('Invalid DID or handle', { cause })\n }\n}\n","import { AtIdentifierString, ensureValidAtIdentifier } from './at-identifier.js'\nimport { ensureValidDidRegex } from './did.js'\nimport { ensureValidHandleRegex } from './handle.js'\nimport { NsidString, isValidNsid } from './nsid.js'\n\nexport type AtUriString =\n | `at://${AtIdentifierString}`\n | `at://${AtIdentifierString}/${NsidString}`\n | `at://${AtIdentifierString}/${NsidString}/${string}`\n\n// Human-readable constraints on ATURI:\n// - following regular URLs, a 8KByte hard total length limit\n// - follows ATURI docs on website\n// - all ASCII characters, no whitespace. non-ASCII could be URL-encoded\n// - starts \"at://\"\n// - \"authority\" is a valid DID or a valid handle\n// - optionally, follow \"authority\" with \"/\" and valid NSID as start of path\n// - optionally, if NSID given, follow that with \"/\" and rkey\n// - rkey path component can include URL-encoded (\"percent encoded\"), or:\n// ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\" / \":\" / \"@\" / \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n// [a-zA-Z0-9._~:@!$&'\\(\\)*+,;=-]\n// - rkey must have at least one char\n// - regardless of path component, a fragment can follow as \"#\" and then a JSON pointer (RFC-6901)\n\nexport function ensureValidAtUri(input: string): asserts input is AtUriString {\n const fragmentIndex = input.indexOf('#')\n if (fragmentIndex !== -1) {\n if (input.charCodeAt(fragmentIndex + 1) !== 47) {\n throw new Error('ATURI fragment must be non-empty and start with slash')\n }\n if (input.includes('#', fragmentIndex + 1)) {\n throw new Error('ATURI can have at most one \"#\", separating fragment out')\n }\n\n // NOTE: enforcing *some* checks here for sanity. Eg, at least no whitespace\n const fragment = input.slice(fragmentIndex + 1)\n if (!/^\\/[a-zA-Z0-9._~:@!$&')(*+,;=%[\\]/-]*$/.test(fragment)) {\n throw new Error('Disallowed characters in ATURI fragment (ASCII)')\n }\n }\n\n const uri = fragmentIndex === -1 ? input : input.slice(0, fragmentIndex)\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n\n if (!uri.startsWith('at://')) {\n throw new Error('ATURI must start with \"at://\"')\n }\n\n // check that all chars are boring ASCII\n if (!/^[a-zA-Z0-9._~:@!$&')(*+,;=%/-]*$/.test(uri)) {\n throw new Error('Disallowed characters in ATURI (ASCII)')\n }\n\n const authorityEnd = uri.indexOf('/', 5)\n const authority =\n authorityEnd === -1 ? uri.slice(5) : uri.slice(5, authorityEnd)\n try {\n ensureValidAtIdentifier(authority)\n } catch (cause) {\n throw new Error('ATURI authority must be a valid handle or DID', { cause })\n }\n\n const collectionStart = authorityEnd === -1 ? -1 : authorityEnd + 1\n const collectionEnd =\n collectionStart === -1 ? -1 : uri.indexOf('/', collectionStart)\n\n if (collectionStart !== -1) {\n const collection =\n collectionEnd === -1\n ? uri.slice(collectionStart)\n : uri.slice(collectionStart, collectionEnd)\n\n if (collection.length === 0) {\n throw new Error(\n 'ATURI can not have a slash after authority without a path segment',\n )\n }\n if (!isValidNsid(collection)) {\n throw new Error(\n 'ATURI requires first path segment (if supplied) to be valid NSID',\n )\n }\n }\n\n const recordKeyStart = collectionEnd === -1 ? -1 : collectionEnd + 1\n const recordKeyEnd =\n recordKeyStart === -1 ? -1 : uri.indexOf('/', recordKeyStart)\n\n if (recordKeyStart !== -1) {\n if (recordKeyStart === uri.length) {\n throw new Error(\n 'ATURI can not have a slash after collection, unless record key is provided',\n )\n }\n // would validate rkey here, but there are basically no constraints!\n }\n\n if (recordKeyEnd !== -1) {\n throw new Error(\n 'ATURI path can have at most two parts, and no trailing slash',\n )\n }\n}\n\nexport function ensureValidAtUriRegex(uri: string): asserts uri is AtUriString {\n // simple regex to enforce most constraints via just regex and length.\n // hand wrote this regex based on above constraints. whew!\n const aturiRegex =\n /^at:\\/\\/(?<authority>[a-zA-Z0-9._:%-]+)(\\/(?<collection>[a-zA-Z0-9-.]+)(\\/(?<rkey>[a-zA-Z0-9._~:@!$&%')(*+,;=-]+))?)?(#(?<fragment>\\/[a-zA-Z0-9._~:@!$&%')(*+,;=\\-[\\]/\\\\]*))?$/\n const rm = uri.match(aturiRegex)\n if (!rm || !rm.groups) {\n throw new Error(\"ATURI didn't validate via regex\")\n }\n const groups = rm.groups\n\n try {\n ensureValidHandleRegex(groups.authority)\n } catch {\n try {\n ensureValidDidRegex(groups.authority)\n } catch {\n throw new Error('ATURI authority must be a valid handle or DID')\n }\n }\n\n if (groups.collection && !isValidNsid(groups.collection)) {\n throw new Error('ATURI collection path segment must be a valid NSID')\n }\n\n if (uri.length > 8 * 1024) {\n throw new Error('ATURI is far too long')\n }\n}\n","import { AtIdentifierString, ensureValidAtIdentifier } from './at-identifier.js'\nimport { AtUriString } from './aturi_validation.js'\nimport { ensureValidNsid } from './nsid.js'\n\nexport * from './aturi_validation.js'\n\nexport const ATP_URI_REGEX =\n // proto- --did-------------- --name---------------- --path---- --query-- --hash--\n /^(at:\\/\\/)?((?:did:[a-z0-9:%-]+)|(?:[a-z0-9][a-z0-9.:-]*))(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n// --path----- --query-- --hash--\nconst RELATIVE_REGEX = /^(\\/[^?#\\s]*)?(\\?[^#\\s]+)?(#[^\\s]+)?$/i\n\nexport class AtUri {\n hash: string\n host: AtIdentifierString\n pathname: string\n searchParams: URLSearchParams\n\n constructor(uri: string, base?: string | AtUri) {\n const parsed =\n base !== undefined\n ? typeof base === 'string'\n ? Object.assign(parse(base), parseRelative(uri))\n : Object.assign({ host: base.host }, parseRelative(uri))\n : parse(uri)\n\n ensureValidAtIdentifier(parsed.host)\n\n this.hash = parsed.hash ?? ''\n this.host = parsed.host\n this.pathname = parsed.pathname ?? ''\n this.searchParams = parsed.searchParams\n }\n\n static make(handleOrDid: string, collection?: string, rkey?: string) {\n let str = handleOrDid\n if (collection) str += '/' + collection\n if (rkey) str += '/' + rkey\n return new AtUri(str)\n }\n\n get protocol() {\n return 'at:'\n }\n\n get origin() {\n return `at://${this.host}` as const\n }\n\n get hostname() {\n return this.host\n }\n\n set hostname(v: string) {\n ensureValidAtIdentifier(v)\n this.host = v\n }\n\n get search() {\n return this.searchParams.toString()\n }\n\n set search(v: string) {\n this.searchParams = new URLSearchParams(v)\n }\n\n get collection() {\n return this.pathname.split('/').filter(Boolean)[0] || ''\n }\n\n set collection(v: string) {\n ensureValidNsid(v)\n const parts = this.pathname.split('/').filter(Boolean)\n parts[0] = v\n this.pathname = parts.join('/')\n }\n\n get rkey() {\n return this.pathname.split('/').filter(Boolean)[1] || ''\n }\n\n set rkey(v: string) {\n const parts = this.pathname.split('/').filter(Boolean)\n parts[0] ||= 'undefined'\n parts[1] = v\n this.pathname = parts.join('/')\n }\n\n get href() {\n return this.toString()\n }\n\n toString(): AtUriString {\n let path = this.pathname || '/'\n if (!path.startsWith('/')) {\n path = `/${path}`\n }\n let qs = ''\n if (this.searchParams.size) {\n qs = `?${this.searchParams.toString()}`\n }\n let hash = this.hash\n if (hash && !hash.startsWith('#')) {\n hash = `#${hash}`\n }\n return `at://${this.host}${path}${qs}${hash}` as AtUriString\n }\n}\n\nfunction parse(str: string) {\n const match = str.match(ATP_URI_REGEX) as null | {\n 0: string\n 1: string | undefined // proto\n 2: string // host\n 3: string | undefined // path\n 4: string | undefined // query\n 5: string | undefined // hash\n }\n\n if (!match) {\n throw new Error(`Invalid AT uri: ${str}`)\n }\n\n return {\n host: match[2],\n hash: match[5],\n pathname: match[3],\n searchParams: new URLSearchParams(match[4]),\n }\n}\n\nfunction parseRelative(str: string) {\n const match = str.match(RELATIVE_REGEX) as null | {\n 0: string\n 1: string | undefined // path\n 2: string | undefined // query\n 3: string | undefined // hash\n }\n\n if (!match) {\n throw new Error(`Invalid path: ${str}`)\n }\n\n return {\n hash: match[3],\n pathname: match[1],\n searchParams: new URLSearchParams(match[2]),\n }\n}\n","export type TidString = string\n\nconst TID_LENGTH = 13\nconst TID_REGEX = /^[234567abcdefghij][234567abcdefghijklmnopqrstuvwxyz]{12}$/\n\nexport function ensureValidTid(tid: string): asserts tid is TidString {\n if (tid.length !== TID_LENGTH) {\n throw new InvalidTidError(`TID must be ${TID_LENGTH} characters`)\n }\n // simple regex to enforce most constraints via just regex and length.\n if (!TID_REGEX.test(tid)) {\n throw new InvalidTidError('TID syntax not valid (regex)')\n }\n}\n\nexport function isValidTid(tid: string): tid is TidString {\n return tid.length === TID_LENGTH && TID_REGEX.test(tid)\n}\n\nexport class InvalidTidError extends Error {}\n","export type RecordKeyString = string\n\nconst RECORD_KEY_MAX_LENGTH = 512\nconst RECORD_KEY_MIN_LENGTH = 1\nconst RECORD_KEY_INVALID_VALUES = new Set(['.', '..'])\nconst RECORD_KEY_REGEX = /^[a-zA-Z0-9_~.:-]{1,512}$/\n\n// https://atproto.com/specs/record-key#record-key-syntax\n// Regardless of the type, Record Keys must fulfill some baseline syntax constraints:\n// - restricted to a subset of ASCII characters -- the allowed characters are\n// alphanumeric (A-Za-z0-9), period, dash, underscore, colon, or tilde (.-_:~)\n// - must have at least 1 and at most 512 characters\n// - the specific record key values . and .. are not allowed\n// - must be a permissible part of repository MST path string (the above\n// constraints satisfy this condition)\n// - must be permissible to include in a path component of a URI (following\n// RFC-3986, section 3.3). The above constraints satisfy this condition, by\n// matching the \"unreserved\" characters allowed in generic URI paths.\n\nexport function ensureValidRecordKey(\n rkey: string,\n): asserts rkey is RecordKeyString {\n if (\n rkey.length > RECORD_KEY_MAX_LENGTH ||\n rkey.length < RECORD_KEY_MIN_LENGTH\n ) {\n throw new InvalidRecordKeyError(\n `record key must be ${RECORD_KEY_MIN_LENGTH} to ${RECORD_KEY_MAX_LENGTH} characters`,\n )\n }\n if (RECORD_KEY_INVALID_VALUES.has(rkey)) {\n throw new InvalidRecordKeyError('record key can not be \".\" or \"..\"')\n }\n // simple regex to enforce most constraints via just regex and length.\n if (!RECORD_KEY_REGEX.test(rkey)) {\n throw new InvalidRecordKeyError('record key syntax not valid (regex)')\n }\n}\n\nexport function isValidRecordKey(rkey: string): rkey is RecordKeyString {\n return (\n rkey.length >= RECORD_KEY_MIN_LENGTH &&\n rkey.length <= RECORD_KEY_MAX_LENGTH &&\n RECORD_KEY_REGEX.test(rkey) &&\n !RECORD_KEY_INVALID_VALUES.has(rkey)\n )\n}\n\nexport class InvalidRecordKeyError extends Error {}\n","/** An ISO 8601 formatted datetime string (YYYY-MM-DDTHH:mm:ss.sssZ) */\nexport type DatetimeString =\n `${string}-${string}-${string}T${string}:${string}:${string}${'Z' | `+${string}` | `-${string}`}`\n\n// Allow date.toISOString() to be used where datetime format is expected\ndeclare global {\n interface Date {\n toISOString(): `${string}-${string}-${string}T${string}:${string}:${string}Z`\n }\n}\n\n/* Validates datetime string against atproto Lexicon 'datetime' format.\n * Syntax is described at: https://atproto.com/specs/lexicon#datetime\n */\nexport function ensureValidDatetime(\n dtStr: string,\n): asserts dtStr is DatetimeString {\n const date = new Date(dtStr)\n // must parse as ISO 8601; this also verifies semantics like month is not 13 or 00\n if (isNaN(date.getTime())) {\n throw new InvalidDatetimeError('datetime did not parse as ISO 8601')\n }\n if (date.toISOString().startsWith('-')) {\n throw new InvalidDatetimeError('datetime normalized to a negative time')\n }\n // regex and other checks for RFC-3339\n if (\n !/^[0-9]{4}-[01][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](.[0-9]{1,20})?(Z|([+-][0-2][0-9]:[0-5][0-9]))$/.test(\n dtStr,\n )\n ) {\n throw new InvalidDatetimeError(\"datetime didn't validate via regex\")\n }\n if (dtStr.length > 64) {\n throw new InvalidDatetimeError('datetime is too long (64 chars max)')\n }\n if (dtStr.endsWith('-00:00')) {\n throw new InvalidDatetimeError(\n 'datetime can not use \"-00:00\" for UTC timezone',\n )\n }\n if (dtStr.startsWith('000')) {\n throw new InvalidDatetimeError('datetime so close to year zero not allowed')\n }\n}\n\n/* Same logic as ensureValidDatetime(), but returns a boolean instead of throwing an exception.\n */\nexport function isValidDatetime(dtStr: string): dtStr is DatetimeString {\n try {\n ensureValidDatetime(dtStr)\n } catch (err) {\n if (err instanceof InvalidDatetimeError) {\n return false\n }\n throw err\n }\n\n return true\n}\n\n/* Takes a flexible datetime string and normalizes representation.\n *\n * This function will work with any valid atproto datetime (eg, anything which isValidDatetime() is true for). It *additionally* is more flexible about accepting datetimes that don't comply to RFC 3339, or are missing timezone information, and normalizing them to a valid datetime.\n *\n * One use-case is a consistent, sortable string. Another is to work with older invalid createdAt datetimes.\n *\n * Successful output will be a valid atproto datetime with millisecond precision (3 sub-second digits) and UTC timezone with trailing 'Z' syntax. Throws `InvalidDatetimeError` if the input string could not be parsed as a datetime, even with permissive parsing.\n *\n * Expected output format: YYYY-MM-DDTHH:mm:ss.sssZ\n */\nexport function normalizeDatetime(dtStr: string): DatetimeString {\n if (isValidDatetime(dtStr)) {\n const outStr = new Date(dtStr).toISOString()\n if (isValidDatetime(outStr)) {\n return outStr\n }\n }\n\n // check if this permissive datetime is missing a timezone\n if (!/.*(([+-]\\d\\d:?\\d\\d)|[a-zA-Z])$/.test(dtStr)) {\n const date = new Date(dtStr + 'Z')\n if (!isNaN(date.getTime())) {\n const tzStr = date.toISOString()\n if (isValidDatetime(tzStr)) {\n return tzStr\n }\n }\n }\n\n // finally try parsing as simple datetime\n const date = new Date(dtStr)\n if (isNaN(date.getTime())) {\n throw new InvalidDatetimeError(\n 'datetime did not parse as any timestamp format',\n )\n }\n const isoStr = date.toISOString()\n if (isValidDatetime(isoStr)) {\n return isoStr\n } else {\n throw new InvalidDatetimeError(\n 'datetime normalized to invalid timestamp string',\n )\n }\n}\n\n/* Variant of normalizeDatetime() which always returns a valid datetime strings.\n *\n * If a InvalidDatetimeError is encountered, returns the UNIX epoch time as a UTC datetime (1970-01-01T00:00:00.000Z).\n */\nexport const normalizeDatetimeAlways = (dtStr: string): DatetimeString => {\n try {\n return normalizeDatetime(dtStr)\n } catch (err) {\n if (err instanceof InvalidDatetimeError) {\n return new Date(0).toISOString()\n }\n throw err\n }\n}\n\n/* Indicates a datetime string did not pass full atproto Lexicon datetime string format checks.\n */\nexport class InvalidDatetimeError extends Error {}\n","export * from './handle.js'\nexport * from './did.js'\nexport * from './nsid.js'\nexport * from './aturi.js'\nexport * from './at-identifier.js'\nexport * from './tid.js'\nexport * from './recordkey.js'\nexport * from './datetime.js'\n","import { z } from 'zod'\n\nexport function toLexUri(str: string, baseUri?: string): string {\n if (str.split('#').length > 2) {\n throw new Error('Uri can only have one hash segment')\n }\n\n if (str.startsWith('lex:')) {\n return str\n }\n if (str.startsWith('#')) {\n if (!baseUri) {\n throw new Error(`Unable to resolve uri without anchor: ${str}`)\n }\n return `${baseUri}${str}`\n }\n return `lex:${str}`\n}\n\nexport function requiredPropertiesRefinement<\n ObjectType extends {\n required?: string[]\n properties?: Record<string, unknown>\n },\n>(object: ObjectType, ctx: z.RefinementCtx) {\n // Required fields check\n if (object.required === undefined) {\n return\n }\n\n if (!Array.isArray(object.required)) {\n ctx.addIssue({\n code: z.ZodIssueCode.invalid_type,\n received: typeof object.required,\n expected: 'array',\n })\n return\n }\n\n if (object.properties === undefined) {\n if (object.required.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Required fields defined but no properties defined`,\n })\n }\n return\n }\n\n for (const field of object.required) {\n if (object.properties[field] === undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Required field \"${field}\" not defined`,\n })\n }\n }\n}\n","import { z } from 'zod'\nimport { NSID } from '@atproto/syntax'\nimport { requiredPropertiesRefinement } from './util'\n\n// primitives\n// =\n\nexport const lexBoolean = z.object({\n type: z.literal('boolean'),\n description: z.string().optional(),\n default: z.boolean().optional(),\n const: z.boolean().optional(),\n})\nexport type LexBoolean = z.infer<typeof lexBoolean>\n\nexport const lexInteger = z.object({\n type: z.literal('integer'),\n description: z.string().optional(),\n default: z.number().int().optional(),\n minimum: z.number().int().optional(),\n maximum: z.number().int().optional(),\n enum: z.number().int().array().optional(),\n const: z.number().int().optional(),\n})\nexport type LexInteger = z.infer<typeof lexInteger>\n\nexport const lexStringFormat = z.enum([\n 'datetime',\n 'uri',\n 'at-uri',\n 'did',\n 'handle',\n 'at-identifier',\n 'nsid',\n 'cid',\n 'language',\n 'tid',\n 'record-key',\n])\nexport type LexStringFormat = z.infer<typeof lexStringFormat>\n\nexport const lexString = z.object({\n type: z.literal('string'),\n format: lexStringFormat.optional(),\n description: z.string().optional(),\n default: z.string().optional(),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n minGraphemes: z.number().int().optional(),\n maxGraphemes: z.number().int().optional(),\n enum: z.string().array().optional(),\n const: z.string().optional(),\n knownValues: z.string().array().optional(),\n})\nexport type LexString = z.infer<typeof lexString>\n\nexport const lexUnknown = z.object({\n type: z.literal('unknown'),\n description: z.string().optional(),\n})\nexport type LexUnknown = z.infer<typeof lexUnknown>\n\nexport const lexPrimitive = z.discriminatedUnion('type', [\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n])\nexport type LexPrimitive = z.infer<typeof lexPrimitive>\n\n// ipld types\n// =\n\nexport const lexBytes = z.object({\n type: z.literal('bytes'),\n description: z.string().optional(),\n maxLength: z.number().optional(),\n minLength: z.number().optional(),\n})\nexport type LexBytes = z.infer<typeof lexBytes>\n\nexport const lexCidLink = z.object({\n type: z.literal('cid-link'),\n description: z.string().optional(),\n})\nexport type LexCidLink = z.infer<typeof lexCidLink>\n\nexport const lexIpldType = z.discriminatedUnion('type', [lexBytes, lexCidLink])\nexport type LexIpldType = z.infer<typeof lexIpldType>\n\n// references\n// =\n\nexport const lexRef = z.object({\n type: z.literal('ref'),\n description: z.string().optional(),\n ref: z.string(),\n})\nexport type LexRef = z.infer<typeof lexRef>\n\nexport const lexRefUnion = z.object({\n type: z.literal('union'),\n description: z.string().optional(),\n refs: z.string().array(),\n closed: z.boolean().optional(),\n})\nexport type LexRefUnion = z.infer<typeof lexRefUnion>\n\nexport const lexRefVariant = z.discriminatedUnion('type', [lexRef, lexRefUnion])\nexport type LexRefVariant = z.infer<typeof lexRefVariant>\n\n// blobs\n// =\n\nexport const lexBlob = z.object({\n type: z.literal('blob'),\n description: z.string().optional(),\n accept: z.string().array().optional(),\n maxSize: z.number().optional(),\n})\nexport type LexBlob = z.infer<typeof lexBlob>\n\n// complex types\n// =\n\nexport const lexArray = z.object({\n type: z.literal('array'),\n description: z.string().optional(),\n items: z.discriminatedUnion('type', [\n // lexPrimitive\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n // lexIpldType\n lexBytes,\n lexCidLink,\n // lexRefVariant\n lexRef,\n lexRefUnion,\n // other\n lexBlob,\n ]),\n minLength: z.number().int().optional(),\n maxLength: z.number().int().optional(),\n})\nexport type LexArray = z.infer<typeof lexArray>\n\nexport const lexPrimitiveArray = lexArray.merge(\n z.object({\n items: lexPrimitive,\n }),\n)\nexport type LexPrimitiveArray = z.infer<typeof lexPrimitiveArray>\n\nexport const lexToken = z.object({\n type: z.literal('token'),\n description: z.string().optional(),\n})\nexport type LexToken = z.infer<typeof lexToken>\n\nexport const lexObject = z\n .object({\n type: z.literal('object'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n nullable: z.string().array().optional(),\n properties: z.record(\n z.discriminatedUnion('type', [\n lexArray,\n\n // lexPrimitive\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n // lexIpldType\n lexBytes,\n lexCidLink,\n // lexRefVariant\n lexRef,\n lexRefUnion,\n // other\n lexBlob,\n ]),\n ),\n })\n .superRefine(requiredPropertiesRefinement)\nexport type LexObject = z.infer<typeof lexObject>\n\n// xrpc\n// =\n\nexport const lexXrpcParameters = z\n .object({\n type: z.literal('params'),\n description: z.string().optional(),\n required: z.string().array().optional(),\n properties: z.record(\n z.discriminatedUnion('type', [\n lexPrimitiveArray,\n\n // lexPrimitive\n lexBoolean,\n lexInteger,\n lexString,\n lexUnknown,\n ]),\n ),\n })\n .superRefine(requiredPropertiesRefinement)\nexport type LexXrpcParameters = z.infer<typeof lexXrpcParameters>\n\nexport const lexXrpcBody = z.object({\n description: z.string().optional(),\n encoding: z.string(),\n // @NOTE using discriminatedUnion with a refined schema requires zod >= 4\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcBody = z.infer<typeof lexXrpcBody>\n\nexport const lexXrpcSubscriptionMessage = z.object({\n description: z.string().optional(),\n // @NOTE using discriminatedUnion with a refined schema requires zod >= 4\n schema: z.union([lexRefVariant, lexObject]).optional(),\n})\nexport type LexXrpcSubscriptionMessage = z.infer<\n typeof lexXrpcSubscriptionMessage\n>\n\nexport const lexXrpcError = z.object({\n name: z.string(),\n description: z.string().optional(),\n})\nexport type LexXrpcError = z.infer<typeof lexXrpcError>\n\nexport const lexXrpcQuery = z.object({\n type: z.literal('query'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcQuery = z.infer<typeof lexXrpcQuery>\n\nexport const lexXrpcProcedure = z.object({\n type: z.literal('procedure'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n input: lexXrpcBody.optional(),\n output: lexXrpcBody.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcProcedure = z.infer<typeof lexXrpcProcedure>\n\nexport const lexXrpcSubscription = z.object({\n type: z.literal('subscription'),\n description: z.string().optional(),\n parameters: lexXrpcParameters.optional(),\n message: lexXrpcSubscriptionMessage.optional(),\n errors: lexXrpcError.array().optional(),\n})\nexport type LexXrpcSubscription = z.infer<typeof lexXrpcSubscription>\n\n// database\n// =\n\nexport const lexRecord = z.object({\n type: z.literal('record'),\n description: z.string().optional(),\n key: z.string().optional(),\n record: lexObject,\n})\nexport type LexRecord = z.infer<typeof lexRecord>\n\n// core\n// =\n\n// We need to use `z.custom` here because\n// lexXrpcProperty and lexObject are refined\n// `z.union` would work, but it's too slow\n// see #915 for details\nexport const lexUserType = z.custom<\n | LexRecord\n | LexXrpcQuery\n | LexXrpcProcedure\n | LexXrpcSubscription\n | LexBlob\n | LexArray\n | LexToken\n | LexObject\n | LexBoolean\n | LexInteger\n | LexString\n | LexBytes\n | LexCidLink\n | LexUnknown\n>(\n (val) => {\n if (!val || typeof val !== 'object') {\n return\n }\n\n if (val['type'] === undefined) {\n return\n }\n\n switch (val['type']) {\n case 'record':\n return lexRecord.parse(val)\n\n case 'query':\n return lexXrpcQuery.parse(val)\n case 'procedure':\n return lexXrpcProcedure.parse(val)\n case 'subscription':\n return lexXrpcSubscription.parse(val)\n\n case 'blob':\n return lexBlob.parse(val)\n\n case 'array':\n return lexArray.parse(val)\n case 'token':\n return lexToken.parse(val)\n case 'object':\n return lexObject.parse(val)\n\n case 'boolean':\n return lexBoolean.parse(val)\n case 'integer':\n return lexInteger.parse(val)\n case 'string':\n return lexString.parse(val)\n case 'bytes':\n return lexBytes.parse(val)\n case 'cid-link':\n return lexCidLink.parse(val)\n case 'unknown':\n return lexUnknown.parse(val)\n }\n },\n (val) => {\n if (!val || typeof val !== 'object') {\n return {\n message: 'Must be an object',\n fatal: true,\n }\n }\n\n if (val['type'] === undefined) {\n return {\n message: 'Must have a type',\n fatal: true,\n }\n }\n\n if (typeof val['type'] !== 'string') {\n return {\n message: 'Type property must be a string',\n fatal: true,\n }\n }\n\n return {\n message: `Invalid type: ${val['type']} must be one of: record, query, procedure, subscription, blob, array, token, object, boolean, integer, string, bytes, cid-link, unknown`,\n fatal: true,\n }\n },\n)\nexport type LexUserType = z.infer<typeof lexUserType>\n\nexport const lexiconDoc = z\n .object({\n lexicon: z.literal(1),\n id: z.string().refine((v: string) => NSID.isValid(v), {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(lexUserType),\n })\n .superRefine((doc, ctx) => {\n for (const defId in doc.defs) {\n const def = doc.defs[defId]\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'procedure' ||\n def.type === 'query' ||\n def.type === 'subscription')\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Records, procedures, queries, and subscriptions must be the main definition.`,\n })\n }\n }\n })\nexport type LexiconDoc = z.infer<typeof lexiconDoc>\n\n// helpers\n// =\n\nexport function isValidLexiconDoc(v: unknown): v is LexiconDoc {\n return lexiconDoc.safeParse(v).success\n}\n\nexport function isObj<V>(v: V): v is V & object {\n return v != null && typeof v === 'object'\n}\n\nexport type DiscriminatedObject = { $type: string }\nexport function isDiscriminatedObject(v: unknown): v is DiscriminatedObject {\n return isObj(v) && '$type' in v && typeof v.$type === 'string'\n}\n\nexport function parseLexiconDoc(v: unknown): LexiconDoc {\n lexiconDoc.parse(v)\n return v as LexiconDoc\n}\n\nexport type ValidationResult<V = unknown> =\n | {\n success: true\n value: V\n }\n | {\n success: false\n error: ValidationError\n }\n\nexport class ValidationError extends Error {}\nexport class InvalidLexiconError extends Error {}\nexport class LexiconDefNotFoundError extends Error {}\n","'use strict';\n\nvar encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nvar varint$1 = _brrp_varint;\n\nmodule.exports = varint$1;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar varint$1 = require('../vendor/varint.js');\n\nconst decode = (data, offset = 0) => {\n const code = varint$1.decode(data, offset);\n return [\n code,\n varint$1.decode.bytes\n ];\n};\nconst encodeTo = (int, target, offset = 0) => {\n varint$1.encode(int, target, offset);\n return target;\n};\nconst encodingLength = int => {\n return varint$1.encodingLength(int);\n};\n\nexports.decode = decode;\nexports.encodeTo = encodeTo;\nexports.encodingLength = encodingLength;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\n\nexports.coerce = coerce;\nexports.empty = empty;\nexports.equals = equals;\nexports.fromHex = fromHex;\nexports.fromString = fromString;\nexports.isBinary = isBinary;\nexports.toHex = toHex;\nexports.toString = toString;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\nvar varint = require('../varint.js');\n\nconst create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nconst decode = multihash => {\n const bytes$1 = bytes.coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes$1);\n const [size, digestOffset] = varint.decode(bytes$1.subarray(sizeOffset));\n const digest = bytes$1.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes$1);\n};\nconst equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && bytes.equals(a.bytes, b.bytes);\n }\n};\nclass Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}\n\nexports.Digest = Digest;\nexports.create = create;\nexports.decode = decode;\nexports.equals = equals;\n","'use strict';\n\nfunction base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\n\nmodule.exports = _brrp__multiformats_scope_baseX;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar baseX$1 = require('../../vendor/base-x.js');\nvar bytes = require('../bytes.js');\n\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nconst or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nclass Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nconst from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nconst baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = baseX$1(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => bytes.coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nconst rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};\n\nexports.Codec = Codec;\nexports.baseX = baseX;\nexports.from = from;\nexports.or = or;\nexports.rfc4648 = rfc4648;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base58btc = base.baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nconst base58flickr = base.baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});\n\nexports.base58btc = base58btc;\nexports.base58flickr = base58flickr;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base32 = base.rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nconst base32upper = base.rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nconst base32pad = base.rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nconst base32padupper = base.rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nconst base32hex = base.rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nconst base32hexupper = base.rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nconst base32hexpad = base.rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nconst base32hexpadupper = base.rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nconst base32z = base.rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});\n\nexports.base32 = base32;\nexports.base32hex = base32hex;\nexports.base32hexpad = base32hexpad;\nexports.base32hexpadupper = base32hexpadupper;\nexports.base32hexupper = base32hexupper;\nexports.base32pad = base32pad;\nexports.base32padupper = base32padupper;\nexports.base32upper = base32upper;\nexports.base32z = base32z;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar varint = require('./varint.js');\nvar digest = require('./hashes/digest.js');\nvar base58 = require('./bases/base58.js');\nvar base32 = require('./bases/base32.js');\nvar bytes = require('./bytes.js');\n\nclass CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest: digest$1} = this.multihash;\n const multihash = digest.create(code, digest$1);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58.base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest$1 = digest.decode(multihash);\n return CID.create(version, code, digest$1);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes$1) {\n const specs = CID.inspectBytes(bytes$1);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = bytes.coerce(bytes$1.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest$1 = new digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest$1) : CID.createV1(specs.codec, digest$1);\n return [\n cid,\n bytes$1.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58.base58btc;\n return [\n base58.base58btc.prefix,\n decoder.decode(`${ base58.base58btc.prefix }${ source }`)\n ];\n }\n case base58.base58btc.prefix: {\n const decoder = base || base58.base58btc;\n return [\n base58.base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.base32.prefix: {\n const decoder = base || base32.base32;\n return [\n base32.base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58.base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;\n\nexports.CID = CID;\n","// Explicitly not using \"zod\" types here to avoid mismatching types due to\n// version differences.\n\nexport interface Checkable<T> {\n parse: (obj: unknown) => T\n safeParse: (\n obj: unknown,\n ) => { success: true; data: T } | { success: false; error: Error }\n}\n\nexport interface Def<T> {\n name: string\n schema: Checkable<T>\n}\n\nexport const is = <T>(obj: unknown, def: Checkable<T>): obj is T => {\n return def.safeParse(obj).success\n}\n\nexport const create =\n <T>(def: Checkable<T>) =>\n (v: unknown): v is T =>\n def.safeParse(v).success\n\nexport const assure = <T>(def: Checkable<T>, obj: unknown): T => {\n return def.parse(obj)\n}\n\nexport const isObject = (obj: unknown): obj is Record<string, unknown> => {\n return typeof obj === 'object' && obj !== null\n}\n","export const noUndefinedVals = <T>(\n obj: Record<string, T | undefined>,\n): Record<string, T> => {\n Object.keys(obj).forEach((k) => {\n if (obj[k] === undefined) {\n delete obj[k]\n }\n })\n return obj as Record<string, T>\n}\n\nexport function aggregateErrors(\n errors: unknown[],\n message?: string,\n): Error | AggregateError {\n if (errors.length === 1) {\n return errors[0] instanceof Error\n ? errors[0]\n : new Error(message ?? stringifyError(errors[0]), { cause: errors[0] })\n } else {\n return new AggregateError(\n errors,\n message ?? `Multiple errors: ${errors.map(stringifyError).join('\\n')}`,\n )\n }\n}\n\nfunction stringifyError(reason: unknown): string {\n if (reason instanceof Error) {\n return reason.message\n }\n return String(reason)\n}\n\n/**\n * Returns a shallow copy of the object without the specified keys. If the input\n * is nullish, it returns the input.\n */\nexport function omit<\n T extends undefined | null | Record<string, unknown>,\n K extends keyof NonNullable<T>,\n>(\n object: T,\n rejectedKeys: readonly K[],\n): T extends undefined ? undefined : T extends null ? null : Omit<T, K>\nexport function omit(\n src: undefined | null | Record<string, unknown>,\n rejectedKeys: readonly string[],\n): undefined | null | Record<string, unknown> {\n // Hot path\n\n if (!src) return src\n\n const dst = {}\n const srcKeys = Object.keys(src)\n for (let i = 0; i < srcKeys.length; i++) {\n const key = srcKeys[i]\n if (!rejectedKeys.includes(key)) {\n dst[key] = src[key]\n }\n }\n return dst\n}\n\nexport const jitter = (maxMs: number) => {\n return Math.round((Math.random() - 0.5) * maxMs * 2)\n}\n\nexport const wait = (ms: number) => {\n return new Promise((res) => setTimeout(res, ms))\n}\n\nexport type BailableWait = {\n bail: () => void\n wait: () => Promise<void>\n}\n\nexport const bailableWait = (ms: number): BailableWait => {\n let bail\n const waitPromise = new Promise<void>((res) => {\n const timeout = setTimeout(res, ms)\n bail = () => {\n clearTimeout(timeout)\n res()\n }\n })\n return { bail, wait: () => waitPromise }\n}\n\nexport const flattenUint8Arrays = (arrs: Uint8Array[]): Uint8Array => {\n const length = arrs.reduce((acc, cur) => {\n return acc + cur.length\n }, 0)\n const flattened = new Uint8Array(length)\n let offset = 0\n arrs.forEach((arr) => {\n flattened.set(arr, offset)\n offset += arr.length\n })\n return flattened\n}\n\nexport const streamToBuffer = async (\n stream: AsyncIterable<Uint8Array>,\n): Promise<Uint8Array> => {\n const arrays: Uint8Array[] = []\n for await (const chunk of stream) {\n arrays.push(chunk)\n }\n return flattenUint8Arrays(arrays)\n}\n\nconst S32_CHAR = '234567abcdefghijklmnopqrstuvwxyz'\n\nexport const s32encode = (i: number): string => {\n let s = ''\n while (i) {\n const c = i % 32\n i = Math.floor(i / 32)\n s = S32_CHAR.charAt(c) + s\n }\n return s\n}\n\nexport const s32decode = (s: string): number => {\n let i = 0\n for (const c of s) {\n i = i * 32 + S32_CHAR.indexOf(c)\n }\n return i\n}\n\nexport const asyncFilter = async <T>(\n arr: T[],\n fn: (t: T) => Promise<boolean>,\n) => {\n const results = await Promise.all(arr.map((t) => fn(t)))\n return arr.filter((_, i) => results[i])\n}\n\nexport const isErrnoException = (\n err: unknown,\n): err is NodeJS.ErrnoException => {\n return !!err && err['code']\n}\n\nexport const errHasMsg = (err: unknown, msg: string): boolean => {\n return !!err && typeof err === 'object' && err['message'] === msg\n}\n\nexport const chunkArray = <T>(arr: T[], chunkSize: number): T[][] => {\n return arr.reduce((acc, cur, i) => {\n const chunkI = Math.floor(i / chunkSize)\n if (!acc[chunkI]) {\n acc[chunkI] = []\n }\n acc[chunkI].push(cur)\n return acc\n }, [] as T[][])\n}\n\nexport const range = (num: number): number[] => {\n const nums: number[] = []\n for (let i = 0; i < num; i++) {\n nums.push(i)\n }\n return nums\n}\n\nexport const dedupeStrs = (strs: string[]): string[] => {\n return [...new Set(strs)]\n}\n\nexport const parseIntWithFallback = <T>(\n value: string | undefined,\n fallback: T,\n): number | T => {\n const parsed = parseInt(value || '', 10)\n return isNaN(parsed) ? fallback : parsed\n}\n","export function keyBy<T, K extends keyof T>(\n arr: readonly T[],\n key: K,\n): Map<T[K], T> {\n return arr.reduce((acc, cur) => {\n acc.set(cur[key], cur)\n return acc\n }, new Map<T[K], T>())\n}\n\nexport const mapDefined = <T, S>(\n arr: T[],\n fn: (obj: T) => S | undefined,\n): S[] => {\n const output: S[] = []\n for (const item of arr) {\n const val = fn(item)\n if (val !== undefined) {\n output.push(val)\n }\n }\n return output\n}\n","import { aggregateErrors, bailableWait } from './util'\n\n// reads values from a generator into a list\n// breaks when isDone signals `true` AND `waitFor` completes OR when a max length is reached\n// NOTE: does not signal generator to close. it *will* continue to produce values\nexport const readFromGenerator = async <T>(\n gen: AsyncGenerator<T>,\n isDone: (last?: T) => Promise<boolean> | boolean,\n waitFor: Promise<unknown> = Promise.resolve(),\n maxLength = Number.MAX_SAFE_INTEGER,\n): Promise<T[]> => {\n const evts: T[] = []\n let bail: undefined | (() => void)\n let hasBroke = false\n const awaitDone = async () => {\n if (await isDone(evts.at(-1))) {\n return true\n }\n const bailable = bailableWait(20)\n await bailable.wait()\n bail = bailable.bail\n if (hasBroke) return false\n return await awaitDone()\n }\n const breakOn: Promise<void> = new Promise((resolve) => {\n waitFor.then(() => {\n awaitDone().then(() => resolve())\n })\n })\n\n try {\n while (evts.length < maxLength) {\n const maybeEvt = await Promise.race([gen.next(), breakOn])\n if (!maybeEvt) break\n const evt = maybeEvt as IteratorResult<T>\n if (evt.done) break\n evts.push(evt.value)\n }\n } finally {\n hasBroke = true\n bail && bail()\n }\n return evts\n}\n\nexport type Deferrable = {\n resolve: () => void\n complete: Promise<void>\n}\n\nexport const createDeferrable = (): Deferrable => {\n let resolve\n const promise: Promise<void> = new Promise((res) => {\n resolve = () => res()\n })\n return { resolve, complete: promise }\n}\n\nexport const createDeferrables = (count: number): Deferrable[] => {\n const list: Deferrable[] = []\n for (let i = 0; i < count; i++) {\n list.push(createDeferrable())\n }\n return list\n}\n\nexport const allComplete = async (deferrables: Deferrable[]): Promise<void> => {\n await Promise.all(deferrables.map((d) => d.complete))\n}\n\nexport class AsyncBuffer<T> {\n private buffer: T[] = []\n private promise: Promise<void>\n private resolve: () => void\n private closed = false\n private toThrow: unknown | undefined\n\n constructor(public maxSize?: number) {\n // Initializing to satisfy types/build, immediately reset by resetPromise()\n this.promise = Promise.resolve()\n this.resolve = () => null\n this.resetPromise()\n }\n\n get curr(): T[] {\n return this.buffer\n }\n\n get size(): number {\n return this.buffer.length\n }\n\n get isClosed(): boolean {\n return this.closed\n }\n\n resetPromise() {\n this.promise = new Promise<void>((r) => (this.resolve = r))\n }\n\n push(item: T) {\n this.buffer.push(item)\n this.resolve()\n }\n\n pushMany(items: T[]) {\n items.forEach((i) => this.buffer.push(i))\n this.resolve()\n }\n\n async *events(): AsyncGenerator<T> {\n while (true) {\n if (this.closed && this.buffer.length === 0) {\n if (this.toThrow) {\n throw this.toThrow\n } else {\n return\n }\n }\n await this.promise\n if (this.toThrow) {\n throw this.toThrow\n }\n if (this.maxSize && this.size > this.maxSize) {\n throw new AsyncBufferFullError(this.maxSize)\n }\n const [first, ...rest] = this.buffer\n if (first) {\n this.buffer = rest\n yield first\n } else {\n this.resetPromise()\n }\n }\n }\n\n throw(err: unknown) {\n this.toThrow = err\n this.closed = true\n this.resolve()\n }\n\n close() {\n this.closed = true\n this.resolve()\n }\n}\n\nexport class AsyncBufferFullError extends Error {\n constructor(maxSize: number) {\n super(`ReachedMaxBufferSize: ${maxSize}`)\n }\n}\n\n/**\n * Utility function that behaves like {@link Promise.allSettled} but returns the\n * same result as {@link Promise.all} in case every promise is fulfilled, and\n * throws an {@link AggregateError} if there are more than one errors.\n */\nexport function allFulfilled<T extends readonly unknown[] | []>(\n promises: T,\n): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>\nexport function allFulfilled<T>(\n promises: Iterable<T | PromiseLike<T>>,\n): Promise<Awaited<T>[]>\nexport function allFulfilled(\n promises: Iterable<Promise<unknown>>,\n): Promise<unknown[]> {\n return Promise.allSettled(promises).then(handleAllSettledErrors)\n}\n\nexport function handleAllSettledErrors<\n T extends readonly PromiseSettledResult<unknown>[] | [],\n>(\n results: T,\n): {\n -readonly [P in keyof T]: T[P] extends PromiseSettledResult<infer U>\n ? U\n : never\n}\nexport function handleAllSettledErrors<T>(\n results: PromiseSettledResult<T>[],\n): T[]\nexport function handleAllSettledErrors(\n results: PromiseSettledResult<unknown>[],\n): unknown[] {\n if (results.every(isFulfilledResult)) return results.map(extractValue)\n\n const errors = results.filter(isRejectedResult).map(extractReason)\n throw aggregateErrors(errors)\n}\n\nexport function isRejectedResult(\n result: PromiseSettledResult<unknown>,\n): result is PromiseRejectedResult {\n return result.status === 'rejected'\n}\n\nfunction extractReason(result: PromiseRejectedResult): unknown {\n return result.reason\n}\n\nexport function isFulfilledResult<T>(\n result: PromiseSettledResult<T>,\n): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nfunction extractValue<T>(result: PromiseFulfilledResult<T>): T {\n return result.value\n}\n","import { s32decode, s32encode } from './util'\n\nconst TID_LEN = 13\n\nlet lastTimestamp = 0\nlet timestampCount = 0\nlet clockid: number | null = null\n\nfunction dedash(str: string): string {\n return str.replaceAll('-', '')\n}\n\nexport class TID {\n str: string\n\n constructor(str: string) {\n const noDashes = dedash(str)\n if (noDashes.length !== TID_LEN) {\n throw new Error(`Poorly formatted TID: ${noDashes.length} length`)\n }\n this.str = noDashes\n }\n\n static next(prev?: TID): TID {\n // javascript does not have microsecond precision\n // instead, we append a counter to the timestamp to indicate if multiple timestamps were created within the same millisecond\n // take max of current time & last timestamp to prevent tids moving backwards if system clock drifts backwards\n const time = Math.max(Date.now(), lastTimestamp)\n if (time === lastTimestamp) {\n timestampCount++\n }\n lastTimestamp = time\n const timestamp = time * 1000 + timestampCount\n // the bottom 32 clock ids can be randomized & are not guaranteed to be collision resistant\n // we use the same clockid for all tids coming from this machine\n if (clockid === null) {\n clockid = Math.floor(Math.random() * 32)\n }\n const tid = TID.fromTime(timestamp, clockid)\n if (!prev || tid.newerThan(prev)) {\n return tid\n }\n return TID.fromTime(prev.timestamp() + 1, clockid)\n }\n\n static nextStr(prev?: string): string {\n return TID.next(prev ? new TID(prev) : undefined).toString()\n }\n\n static fromTime(timestamp: number, clockid: number): TID {\n // base32 encode with encoding variant sort (s32)\n const str = `${s32encode(timestamp)}${s32encode(clockid).padStart(2, '2')}`\n return new TID(str)\n }\n\n static fromStr(str: string): TID {\n return new TID(str)\n }\n\n static oldestFirst(a: TID, b: TID): number {\n return a.compareTo(b)\n }\n\n static newestFirst(a: TID, b: TID): number {\n return b.compareTo(a)\n }\n\n static is(str: string): boolean {\n return dedash(str).length === TID_LEN\n }\n\n timestamp(): number {\n return s32decode(this.str.slice(0, 11))\n }\n\n clockid(): number {\n return s32decode(this.str.slice(11, 13))\n }\n\n formatted(): string {\n const str = this.toString()\n return `${str.slice(0, 4)}-${str.slice(4, 7)}-${str.slice(\n 7,\n 11,\n )}-${str.slice(11, 13)}`\n }\n\n toString(): string {\n return this.str\n }\n\n // newer > older\n compareTo(other: TID): number {\n if (this.str > other.str) return 1\n if (this.str < other.str) return -1\n return 0\n }\n\n equals(other: TID): boolean {\n return this.str === other.str\n }\n\n newerThan(other: TID): boolean {\n return this.compareTo(other) > 0\n }\n\n olderThan(other: TID): boolean {\n return this.compareTo(other) < 0\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { CID } from 'multiformats/cid'\n\nexport const DAG_CBOR_MULTICODEC = 0x71\nexport const RAW_BIN_MULTICODEC = 0x55\n\nexport const SHA2_256_MULTIHASH_CODE = 0x12\n\nexport type MultihashDigest<Code extends number = number> = {\n code: Code\n digest: Uint8Array\n size: number\n bytes: Uint8Array\n}\n\ndeclare module 'multiformats/cid' {\n /**\n * @deprecated use the {@link Cid} interface from `@atproto/lex-data`, and\n * related helpers ({@link asCid}, {@link parseCid}, {@link decodeCid},\n * {@link createCid}, {@link isCid}), instead.\n *\n * This is marked as deprecated because we want to discourage direct usage of\n * `multiformats/cid` in dependent packages, and instead have them rely on the\n * {@link Cid} interface from `@atproto/lex-data`. The {@link CID} class from\n * `multiformats` version <10 has compatibility issues with certain TypeScript\n * configuration, which can lead to type errors in dependent packages.\n *\n * We are stuck with version 9 because `@atproto` packages did not drop\n * CommonJS support yet, and multiformats version 10 only supports ES modules.\n *\n * In order to avoid compatibility issues, while preparing for future breaking\n * changes (CID in multiformats v10+ has a slightly different interface), as\n * we update or swap out `multiformats`, we provide our own stable {@link Cid}\n * interface.\n */\n interface CID {}\n}\n\n// multiformats' CID class is not very portable because:\n//\n// - In dependent packages that use \"moduleResolution\" set to \"node16\",\n// \"nodenext\" or \"bundler\", TypeScript fails to properly resolve the\n// multiformats package when importing CID from @atproto/lex-data. This causes\n// type errors in those packages. This is caused by the fact that the\n// multiformats version <10 (which is the last version that supports CommonJS)\n// uses \"exports\" field in package.json, which do not contain \"types\"\n// entrypoints.\n// https://www.npmjs.com/package/multiformats/v/9.9.0?activeTab=code\n// - By defining our own interface and helper functions, we can have more\n// control over the public API exposed by this package.\n// - It allow us to have a stable interface in case we need to swap out, or\n// eventually update multiformats (should we choose to drop CommonJS support)\n// in the future.\n\n// @NOTE Even though it is not portable, we still re-export CID here so that\n// dependent packages where it can be used, have access to it (instead of\n// importing directly from \"multiformats\" or\"multiformats/cid\").\nexport { CID }\n\n/**\n * Interface for working with decoded CID string, compatible with\n * {@link CID} implementation.\n */\nexport interface Cid {\n version: 0 | 1\n code: number\n multihash: MultihashDigest\n bytes: Uint8Array\n equals(other: unknown): boolean\n toString(): string\n}\n\nexport function asCid(value: unknown): Cid | null {\n return CID.asCID(value)\n}\n\nexport function parseCid(input: string): Cid {\n return CID.parse(input)\n}\n\nexport function decodeCid(bytes: Uint8Array): Cid {\n return CID.decode(bytes)\n}\n\nexport function createCid(code: number, digest: MultihashDigest): Cid {\n return CID.createV1(code, digest)\n}\n\nexport function isCid(\n value: unknown,\n options?: { strict?: boolean },\n): value is Cid {\n const cid = asCid(value)\n if (!cid) {\n return false\n }\n\n if (options?.strict) {\n if (cid.version !== 1) {\n return false\n }\n if (cid.code !== RAW_BIN_MULTICODEC && cid.code !== DAG_CBOR_MULTICODEC) {\n return false\n }\n if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) {\n return false\n }\n }\n\n return true\n}\n\nexport function validateCidString(input: string): boolean {\n return parseCidString(input)?.toString() === input\n}\n\nexport function parseCidString(input: string): Cid | undefined {\n try {\n return parseCid(input)\n } catch {\n return undefined\n }\n}\n\nexport function ensureValidCidString(input: string): void {\n if (!validateCidString(input)) {\n throw new Error(`Invalid CID string`)\n }\n}\n","/**\n * Checks whether the input is an object (not null).\n */\nexport function isObject(input: unknown): input is object {\n return input != null && typeof input === 'object'\n}\n\nconst ObjectProto = Object.prototype\nconst ObjectToString = Object.prototype.toString\n\n/**\n * Checks whether the input is an object (not null) whose prototype is either\n * null or `Object.prototype`.\n */\nexport function isPlainObject(input: unknown) {\n return isObject(input) && isPlainProto(input)\n}\n\n/**\n * Checks whether the prototype of the input object is either null or\n * `Object.prototype`.\n */\nexport function isPlainProto(input: object): input is Record<string, unknown> {\n const proto = Object.getPrototypeOf(input)\n if (proto === null) return true\n return (\n (proto === ObjectProto ||\n // Needed to support NodeJS's `runInNewContext` which produces objects\n // with a different prototype\n Object.getPrototypeOf(proto) === null) &&\n ObjectToString.call(input) === '[object Object]'\n )\n}\n","import {\n Cid,\n RAW_BIN_MULTICODEC,\n SHA2_256_MULTIHASH_CODE,\n asCid,\n parseCid,\n} from './cid.js'\nimport { isPlainObject } from './object.js'\n\n/**\n * @note {@link BlobRef} is just a {@link LexMap} with a specific shape.\n */\nexport type BlobRef = {\n $type: 'blob'\n mimeType: string\n ref: Cid\n size: number\n}\n\nexport function isBlobRef(\n input: unknown,\n options?: { strict?: boolean },\n): input is BlobRef {\n if (!isPlainObject(input)) {\n return false\n }\n\n if (input?.$type !== 'blob') {\n return false\n }\n\n const { mimeType, size, ref } = input\n // @NOTE Very basic mime validation\n if (typeof mimeType !== 'string' || !mimeType.includes('/')) {\n return false\n }\n\n if (\n typeof size !== 'number' ||\n size < 0 ||\n !Number.isInteger(size) ||\n !Number.isSafeInteger(size)\n ) {\n return false\n }\n\n if (typeof ref !== 'object' || ref === null) {\n return false\n }\n\n for (const key in input) {\n if (\n key !== '$type' &&\n key !== 'mimeType' &&\n key !== 'ref' &&\n key !== 'size'\n ) {\n return false\n }\n }\n\n const cid = asCid(ref)\n if (!cid) {\n return false\n }\n\n if (options?.strict) {\n if (cid.version !== 1) {\n return false\n }\n if (cid.code !== RAW_BIN_MULTICODEC) {\n return false\n }\n if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * @note {@link LegacyBlobRef} is just a {@link LexMap} with a specific shape.\n */\nexport type LegacyBlobRef = {\n cid: string\n mimeType: string\n}\n\nexport function isLegacyBlobRef(input: unknown): input is LegacyBlobRef {\n if (!isPlainObject(input)) {\n return false\n }\n\n const { cid, mimeType } = input\n if (typeof cid !== 'string') {\n return false\n }\n\n if (typeof mimeType !== 'string') {\n return false\n }\n\n for (const key in input) {\n if (key !== 'cid' && key !== 'mimeType') {\n return false\n }\n }\n\n try {\n parseCid(cid)\n } catch {\n return false\n }\n\n return true\n}\n","const BCP47_REGEXP =\n /^((?<grandfathered>(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?<language>([A-Za-z]{2,3}(-(?<extlang>[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?<script>[A-Za-z]{4}))?(-(?<region>[A-Za-z]{2}|[0-9]{3}))?(-(?<variant>[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-(?<extension>[0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(?<privateUseA>x(-[A-Za-z0-9]{1,8})+))?)|(?<privateUseB>x(-[A-Za-z0-9]{1,8})+))$/\n\nexport type LanguageTag = {\n grandfathered?: string\n language?: string\n extlang?: string\n script?: string\n region?: string\n variant?: string\n extension?: string\n privateUse?: string\n}\n\nexport function parseLanguageString(input: string): LanguageTag | null {\n const parsed = input.match(BCP47_REGEXP)\n if (!parsed?.groups) return null\n\n const { groups } = parsed\n return {\n grandfathered: groups.grandfathered,\n language: groups.language,\n extlang: groups.extlang,\n script: groups.script,\n region: groups.region,\n variant: groups.variant,\n extension: groups.extension,\n privateUse: groups.privateUseA || groups.privateUseB,\n }\n}\n\n/**\n * Validates well-formed BCP 47 syntax\n *\n * @see {@link https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1}\n */\nexport function isLanguageString(input: string): boolean {\n return BCP47_REGEXP.test(input)\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\nvar bytes = require('../bytes.js');\n\nconst identity = base.from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => bytes.toString(buf),\n decode: str => bytes.fromString(str)\n});\n\nexports.identity = identity;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base2 = base.rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});\n\nexports.base2 = base2;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base8 = base.rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});\n\nexports.base8 = base8;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base10 = base.baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});\n\nexports.base10 = base10;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base16 = base.rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nconst base16upper = base.rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});\n\nexports.base16 = base16;\nexports.base16upper = base16upper;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base36 = base.baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nconst base36upper = base.baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});\n\nexports.base36 = base36;\nexports.base36upper = base36upper;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst base64 = base.rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nconst base64pad = base.rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nconst base64url = base.rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nconst base64urlpad = base.rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});\n\nexports.base64 = base64;\nexports.base64pad = base64pad;\nexports.base64url = base64url;\nexports.base64urlpad = base64urlpad;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar base = require('./base.js');\n\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nconst base256emoji = base.from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});\n\nexports.base256emoji = base256emoji;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar digest = require('./digest.js');\n\nconst from = ({name, code, encode}) => new Hasher(name, code, encode);\nclass Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? digest.create(this.code, result) : result.then(digest$1 => digest.create(this.code, digest$1));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\n\nexports.Hasher = Hasher;\nexports.from = from;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar crypto = require('crypto');\nvar hasher = require('./hasher.js');\nvar bytes = require('../bytes.js');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar crypto__default = /*#__PURE__*/_interopDefaultLegacy(crypto);\n\nconst sha256 = hasher.from({\n name: 'sha2-256',\n code: 18,\n encode: input => bytes.coerce(crypto__default[\"default\"].createHash('sha256').update(input).digest())\n});\nconst sha512 = hasher.from({\n name: 'sha2-512',\n code: 19,\n encode: input => bytes.coerce(crypto__default[\"default\"].createHash('sha512').update(input).digest())\n});\n\nexports.sha256 = sha256;\nexports.sha512 = sha512;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\nvar digest$1 = require('./digest.js');\n\nconst code = 0;\nconst name = 'identity';\nconst encode = bytes.coerce;\nconst digest = input => digest$1.create(code, encode(input));\nconst identity = {\n code,\n name,\n encode,\n digest\n};\n\nexports.identity = identity;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bytes = require('../bytes.js');\n\nconst name = 'raw';\nconst code = 85;\nconst encode = node => bytes.coerce(node);\nconst decode = data => bytes.coerce(data);\n\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nconst name = 'json';\nconst code = 512;\nconst encode = node => textEncoder.encode(JSON.stringify(node));\nconst decode = data => JSON.parse(textDecoder.decode(data));\n\nexports.code = code;\nexports.decode = decode;\nexports.encode = encode;\nexports.name = name;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar cid = require('./cid.js');\nvar varint = require('./varint.js');\nvar bytes = require('./bytes.js');\nvar hasher = require('./hashes/hasher.js');\nvar digest = require('./hashes/digest.js');\n\n\n\nexports.CID = cid.CID;\nexports.varint = varint;\nexports.bytes = bytes;\nexports.hasher = hasher;\nexports.digest = digest;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar identity = require('./bases/identity.js');\nvar base2 = require('./bases/base2.js');\nvar base8 = require('./bases/base8.js');\nvar base10 = require('./bases/base10.js');\nvar base16 = require('./bases/base16.js');\nvar base32 = require('./bases/base32.js');\nvar base36 = require('./bases/base36.js');\nvar base58 = require('./bases/base58.js');\nvar base64 = require('./bases/base64.js');\nvar base256emoji = require('./bases/base256emoji.js');\nvar sha2 = require('./hashes/sha2.js');\nvar identity$1 = require('./hashes/identity.js');\nvar raw = require('./codecs/raw.js');\nvar json = require('./codecs/json.js');\nrequire('./index.js');\nvar cid = require('./cid.js');\nvar hasher = require('./hashes/hasher.js');\nvar digest = require('./hashes/digest.js');\nvar varint = require('./varint.js');\nvar bytes = require('./bytes.js');\n\nconst bases = {\n ...identity,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity$1\n};\nconst codecs = {\n raw,\n json\n};\n\nexports.CID = cid.CID;\nexports.hasher = hasher;\nexports.digest = digest;\nexports.varint = varint;\nexports.bytes = bytes;\nexports.bases = bases;\nexports.codecs = codecs;\nexports.hashes = hashes;\n","'use strict';\n\nvar basics = require('multiformats/basics');\n\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: basics.bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...basics.bases\n};\n\nmodule.exports = BASES;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\n\nfunction fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}\n\nexports.fromString = fromString;\n","type Encoding = 'utf8' | 'base64' | 'base64url'\n\ninterface NodeJSBuffer<TArrayBuffer extends ArrayBufferLike = ArrayBufferLike>\n extends Uint8Array<TArrayBuffer> {\n byteLength: number\n toString(encoding?: Encoding): string\n}\n\ninterface NodeJSBufferConstructor {\n new (input: string, encoding?: Encoding): NodeJSBuffer\n from(\n input: Uint8Array | ArrayBuffer | ArrayBufferView,\n ): NodeJSBuffer<ArrayBuffer>\n from(input: string, encoding?: Encoding): NodeJSBuffer<ArrayBuffer>\n byteLength(input: string, encoding?: Encoding): number\n prototype: NodeJSBuffer\n}\n\n// Avoids a direct reference to Node.js Buffer, which might not exist in some\n// environments (e.g. browsers, Deno, Bun) to prevent bundlers from trying to\n// include polyfills.\nconst BUFFER = /*#__PURE__*/ (() => 'Bu' + 'f'.repeat(2) + 'er')() as 'Buffer'\nexport const NodeJSBuffer: NodeJSBufferConstructor | null =\n (globalThis as any)?.[BUFFER]?.prototype instanceof Uint8Array &&\n 'byteLength' in (globalThis as any)[BUFFER]\n ? ((globalThis as any)[BUFFER] as NodeJSBufferConstructor)\n : null\n","import { fromString } from 'uint8arrays/from-string'\nimport { NodeJSBuffer } from './lib/nodejs-buffer.js'\nimport { Base64Alphabet } from './uint8array-base64.js'\n\nconst Buffer = NodeJSBuffer\n\ndeclare global {\n interface Uint8ArrayConstructor {\n /**\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/fromBase64 Uint8Array.fromBase64()}\n */\n fromBase64?: (\n b64: string,\n options?: {\n /** @default 'base64' */\n alphabet?: 'base64' | 'base64url'\n lastChunkHandling?: 'loose' | 'strict' | 'stop-before-partial'\n },\n ) => Uint8Array\n }\n}\n\nexport const fromBase64Native =\n typeof Uint8Array.fromBase64 === 'function'\n ? function fromBase64Native(\n b64: string,\n alphabet: Base64Alphabet = 'base64',\n ): Uint8Array {\n return Uint8Array.fromBase64!(b64, {\n alphabet,\n lastChunkHandling: 'loose',\n })\n }\n : null\n\nexport const fromBase64Node = Buffer\n ? function fromBase64Node(\n b64: string,\n alphabet: Base64Alphabet = 'base64',\n ): Uint8Array {\n const bytes = Buffer.from(b64, alphabet)\n verifyBase64ForBytes(b64, bytes)\n // Convert to Uint8Array because even though Buffer is a sub class of\n // Uint8Array, it serializes differently to Uint8Array (e.g. in JSON) and\n // results in unexpected behavior downstream (e.g. in tests)\n return new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength)\n }\n : null\n\nexport function fromBase64Ponyfill(\n b64: string,\n alphabet: Base64Alphabet = 'base64',\n): Uint8Array {\n const bytes = fromString(b64, b64.endsWith('=') ? `${alphabet}pad` : alphabet)\n verifyBase64ForBytes(b64, bytes)\n return bytes\n}\n\n// @NOTE NodeJS will silently stop decoding at the first invalid character,\n// while \"uint8arrays/from-string\" will not validate that the padding is\n// correct. The following function performs basic validation to ensure that the\n// input was a valid base64 string. The availability of the \"bytes\" allows\n// to perform checks with O[1] complexity.\nfunction verifyBase64ForBytes(b64: string, bytes: Uint8Array): void {\n const paddingCount = b64.endsWith('==') ? 2 : b64.endsWith('=') ? 1 : 0\n const trimmedLength = b64.length - paddingCount\n const expectedByteLength = Math.floor((trimmedLength * 3) / 4)\n if (bytes.length !== expectedByteLength) {\n throw new Error('Invalid base64 string')\n }\n\n const expectedB64Length = (bytes.length / 3) * 4\n const expectedPaddingCount =\n expectedB64Length % 4 === 0 ? 0 : 4 - (expectedB64Length % 4)\n const expectedFullB64Length = expectedB64Length + expectedPaddingCount\n if (b64.length > expectedFullB64Length) {\n throw new Error('Invalid base64 string')\n }\n\n // The previous might still allow false positive if only the last few\n // chars are invalid.\n for (\n let i = Math.ceil(expectedB64Length);\n i < b64.length - paddingCount;\n i++\n ) {\n const code = b64.charCodeAt(i)\n if (\n !(code >= 65 && code <= 90) && // A-Z\n !(code >= 97 && code <= 122) && // a-z\n !(code >= 48 && code <= 57) && // 0-9\n code !== 43 && // +\n code !== 47 // /\n ) {\n throw new Error('Invalid base64 string')\n }\n }\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar bases = require('./util/bases.js');\n\nfunction toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n return base.encoder.encode(array).substring(1);\n}\n\nexports.toString = toString;\n","import { toString } from 'uint8arrays/to-string'\nimport { NodeJSBuffer } from './lib/nodejs-buffer.js'\nimport { Base64Alphabet } from './uint8array-base64.js'\n\nconst Buffer = NodeJSBuffer\n\ndeclare global {\n interface Uint8Array {\n /**\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/toBase64 Uint8Array.prototype.toBase64()}\n */\n toBase64?: (options?: {\n /** @default 'base64' */\n alphabet?: 'base64' | 'base64url'\n omitPadding?: boolean\n }) => string\n }\n}\n\nexport const toBase64Native =\n typeof Uint8Array.prototype.toBase64 === 'function'\n ? function toBase64Native(\n bytes: Uint8Array,\n alphabet: Base64Alphabet = 'base64',\n ): string {\n return bytes.toBase64!({ alphabet, omitPadding: true })\n }\n : null\n\nexport const toBase64Node = Buffer\n ? function toBase64Node(\n bytes: Uint8Array,\n alphabet: Base64Alphabet = 'base64',\n ): string {\n const buffer = bytes instanceof Buffer ? bytes : Buffer.from(bytes)\n const b64 = buffer.toString(alphabet)\n\n // @NOTE We strip padding for strict compatibility with\n // uint8arrays.toString behavior. Tests failing because of the presence of\n // padding are not really synonymous with an actual error and we might\n // (should?) actually want to keep the padding at some point.\n return b64.charCodeAt(b64.length - 1) === /* '=' */ 0x3d\n ? b64.charCodeAt(b64.length - 2) === /* '=' */ 0x3d\n ? b64.slice(0, -2) // '=='\n : b64.slice(0, -1) // '='\n : b64\n }\n : null\n\nexport function toBase64Ponyfill(\n bytes: Uint8Array,\n alphabet: Base64Alphabet = 'base64',\n): string {\n return toString(bytes, alphabet)\n}\n","import { Base64Alphabet } from './uint8array-base64.js'\nimport {\n fromBase64Native,\n fromBase64Node,\n fromBase64Ponyfill,\n} from './uint8array-from-base64.js'\nimport {\n toBase64Native,\n toBase64Node,\n toBase64Ponyfill,\n} from './uint8array-to-base64.js'\n\nexport type { Base64Alphabet }\n\n// @TODO drop dependency on uint8arrays package once Uint8Array.fromBase64 /\n// Uint8Array.prototype.toBase64 is widely supported, and mark fromBase64 /\n// toBase64 as deprecated. We can also drop NodeJS specific implementations\n// once NodeJS <24 is no longer supported.\n\n/**\n * Encodes a Uint8Array into a base64 string.\n *\n * @returns The base64 encoded string\n */\nexport const toBase64: (\n bytes: Uint8Array,\n alphabet?: Base64Alphabet,\n) => string = toBase64Native ?? toBase64Node ?? toBase64Ponyfill\n\n/**\n * Decodes a base64 string into a Uint8Array. This function supports both padded\n * and unpadded base64 strings.\n *\n * @returns The decoded {@link Uint8Array}\n * @throws If the input is not a valid base64 string\n */\nexport const fromBase64: (\n b64: string,\n alphabet?: Base64Alphabet,\n) => Uint8Array = fromBase64Native ?? fromBase64Node ?? fromBase64Ponyfill\n\nif (toBase64 === toBase64Ponyfill || fromBase64 === fromBase64Ponyfill) {\n /*#__PURE__*/\n console.warn(\n '[@atproto/lex-data]: Uint8Array.fromBase64 / Uint8Array.prototype.toBase64 not available in this environment. Falling back to ponyfill implementation.',\n )\n}\n\n/**\n * Coerces various binary data representations into a Uint8Array.\n *\n * @return `undefined` if the input could not be coerced into a {@link Uint8Array}.\n */\nexport function asUint8Array(input: unknown): Uint8Array | undefined {\n if (input instanceof Uint8Array) {\n return input\n }\n\n if (ArrayBuffer.isView(input)) {\n return new Uint8Array(\n input.buffer,\n input.byteOffset,\n input.byteLength / Uint8Array.BYTES_PER_ELEMENT,\n )\n }\n\n if (input instanceof ArrayBuffer) {\n return new Uint8Array(input)\n }\n\n return undefined\n}\n\nexport function ui8Equals(a: Uint8Array, b: Uint8Array): boolean {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n\n return true\n}\n","import { asCid, isCid } from './cid.js'\nimport { LexValue } from './lex.js'\nimport { isPlainObject } from './object.js'\nimport { ui8Equals } from './uint8array.js'\n\nexport function lexEquals(a: LexValue, b: LexValue): boolean {\n if (Object.is(a, b)) {\n return true\n }\n\n if (\n a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object'\n ) {\n return false\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false\n }\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!lexEquals(a[i], b[i])) {\n return false\n }\n }\n return true\n } else if (Array.isArray(b)) {\n return false\n }\n\n if (ArrayBuffer.isView(a)) {\n if (!ArrayBuffer.isView(b)) return false\n return ui8Equals(a, b)\n } else if (ArrayBuffer.isView(b)) {\n return false\n }\n\n if (isCid(a)) {\n // @NOTE CID.equals returns its argument when it is falsy (e.g. null or\n // undefined) so we need to explicitly check that the output is \"true\".\n return asCid(a)!.equals(asCid(b)) === true\n } else if (isCid(b)) {\n return false\n }\n\n if (!isPlainObject(a) || !isPlainObject(b)) {\n // Foolproof (should never happen)\n throw new TypeError(\n 'Invalid LexValue (expected CID, Uint8Array, or LexMap)',\n )\n }\n\n const aKeys = Object.keys(a)\n const bKeys = Object.keys(b)\n\n if (aKeys.length !== bKeys.length) {\n return false\n }\n\n for (const key of aKeys) {\n const aVal = a[key]\n const bVal = b[key]\n\n // Needed because of the optional index signature in the Lex object type\n // though, in practice, aVal should never be undefined here.\n if (aVal === undefined) {\n if (bVal === undefined && bKeys.includes(key)) continue\n return false\n } else if (bVal === undefined) {\n return false\n }\n\n if (!lexEquals(aVal, bVal)) {\n return false\n }\n }\n\n return true\n}\n","import { Cid, isCid } from './cid.js'\nimport { isPlainObject, isPlainProto } from './object.js'\n\nexport type LexScalar = number | string | boolean | null | Cid | Uint8Array\nexport type LexValue = LexScalar | LexValue[] | { [_ in string]?: LexValue }\nexport type LexMap = { [_ in string]?: LexValue }\nexport type LexArray = LexValue[]\n\nexport function isLexMap(value: unknown): value is LexMap {\n return isPlainObject(value) && Object.values(value).every(isLexValue)\n}\n\nexport function isLexArray(value: unknown): value is LexArray {\n return Array.isArray(value) && value.every(isLexValue)\n}\n\nexport function isLexScalar(value: unknown): value is LexScalar {\n switch (typeof value) {\n case 'object':\n return value === null || value instanceof Uint8Array || isCid(value)\n case 'string':\n case 'boolean':\n return true\n case 'number':\n if (Number.isInteger(value)) return true\n // fallthrough\n default:\n return false\n }\n}\n\nexport function isLexValue(value: unknown): value is LexValue {\n // Using a stack to avoid recursion depth issues.\n const stack: unknown[] = [value]\n // Cyclic structures are not valid LexValues as they cannot be serialized to\n // JSON or CBOR. This also allows us to avoid infinite loops when traversing\n // the structure.\n const visited = new Set<object>()\n\n do {\n const value = stack.pop()!\n\n // Optimization: we are not using `isLexScalar` here to avoid extra function\n // calls, and to avoid computing `typeof value` multiple times.\n switch (typeof value) {\n case 'object':\n if (value === null) {\n // LexScalar\n } else if (isPlainProto(value)) {\n if (visited.has(value)) return false\n visited.add(value)\n stack.push(...Object.values(value))\n } else if (Array.isArray(value)) {\n if (visited.has(value)) return false\n visited.add(value)\n stack.push(...value)\n } else if (value instanceof Uint8Array || isCid(value)) {\n // LexScalar\n } else {\n return false\n }\n break\n case 'string':\n case 'boolean':\n break\n case 'number':\n if (Number.isInteger(value)) break\n // fallthrough\n default:\n return false\n }\n } while (stack.length > 0)\n\n // Optimization: ease GC's work\n visited.clear()\n\n return true\n}\n\nexport type TypedLexMap = LexMap & { $type: string }\nexport function isTypedLexMap(value: LexValue): value is TypedLexMap {\n return (\n isLexMap(value) && typeof value.$type === 'string' && value.$type.length > 0\n )\n}\n","\"use strict\";\n\nexports.decodeUnicodeData = decodeUnicodeData;\nexports.findUnicodeRangeIndex = findUnicodeRangeIndex;\n// @ts-check\n\n/**\n * @template {number} [T=number]\n * @typedef {[from: number, to: number, category: T]} CategorizedUnicodeRange\n */\n\n/**\n * @typedef {CategorizedUnicodeRange<0>} UnicodeRange\n */\n\n/**\n * @typedef {string & { __tag: 'UnicodeDataEncoding' }} UnicodeDataEncoding\n *\n * Encoding for array of {@link UnicodeRange}, items separated by comma.\n *\n * Each {@link UnicodeDataRow} packed as a base36 integer:\n *\n * padding = to - from\n * encoding = base36(from) + ',' + base36(padding)\n *\n * Notes:\n * - base36 can hold surprisingly large numbers in a few characters.\n * - The biggest codepoint is 0xE01F0 (918,000) at this point\n * - The max value of a category is 23; https://www.unicode.org/reports/tr29/tr29-45.html#Table_Word_Break_Property_Values\n * - The longest range is 42,720; CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF\n */\n\n/**\n * @template {number} [T=number]\n * @param {UnicodeDataEncoding} data\n * @param {string} [cats='']\n * @returns {Array<CategorizedUnicodeRange<T>>}\n */\nfunction decodeUnicodeData(data, cats = '') {\n let buf = /** @type {Array<CategorizedUnicodeRange<T>>} */[],\n nums = data.split(',').map(s => s ? parseInt(s, 36) : 0),\n n = 0;\n for (let i = 0; i < nums.length; i++) i % 2 ? buf.push([n, n + nums[i], (/** @type {T} */cats ? parseInt(cats[i >> 1], 36) : 0)]) : n = nums[i];\n return buf;\n}\n\n/**\n * @template {object} Ext\n * @typedef {{\n * segment: string,\n * index: number,\n * input: string,\n * } & Ext} SegmentOutput\n */\n\n/**\n * @template {object} T\n * @typedef {IterableIterator<SegmentOutput<T>>} Segmenter\n */\n\n/**\n * @template {number} [T=number]\n * @param {number} cp\n * @param {CategorizedUnicodeRange<T>[]} ranges\n * @return {number} index of matched unicode range, or -1 if no match\n */\nfunction findUnicodeRangeIndex(cp, ranges, lo = 0, hi = ranges.length - 1) {\n while (lo <= hi) {\n let mid = lo + hi >>> 1,\n range = ranges[mid];\n if (cp < range[0]) hi = mid - 1;else if (cp > range[1]) lo = mid + 1;else return mid;\n }\n return -1;\n}","\"use strict\";\n\nexports.grapheme_ranges = exports.GraphemeCategory = void 0;\nvar _core = require(\"./core.cjs\");\n// The following code was generated by \"scripts/unicode.js\",\n// DO NOT EDIT DIRECTLY.\n//\n// @ts-check\n\n/**\n * @typedef {import('./core.js').UnicodeDataEncoding} UnicodeDataEncoding\n */\n\n/**\n * @typedef {0} GC_Any\n * @typedef {1} GC_CR\n * @typedef {2} GC_Control\n * @typedef {3} GC_Extend\n * @typedef {4} GC_Extended_Pictographic\n * @typedef {5} GC_L\n * @typedef {6} GC_LF\n * @typedef {7} GC_LV\n * @typedef {8} GC_LVT\n * @typedef {9} GC_Prepend\n * @typedef {10} GC_Regional_Indicator\n * @typedef {11} GC_SpacingMark\n * @typedef {12} GC_T\n * @typedef {13} GC_V\n * @typedef {14} GC_ZWJ\n * @typedef {(\n * | GC_Any\n * | GC_CR\n * | GC_Control\n * | GC_Extend\n * | GC_Extended_Pictographic\n * | GC_L\n * | GC_LF\n * | GC_LV\n * | GC_LVT\n * | GC_Prepend\n * | GC_Regional_Indicator\n * | GC_SpacingMark\n * | GC_T\n * | GC_V\n * | GC_ZWJ\n * )} GraphemeCategoryNum\n */\n\n/**\n * @typedef {import('./core.js').CategorizedUnicodeRange<GraphemeCategoryNum>} GraphemeCategoryRange\n */\n\n/**\n * @typedef {(\n * | 'Any'\n * | 'CR'\n * | 'Control'\n * | 'Extend'\n * | 'Extended_Pictographic'\n * | 'L'\n * | 'LF'\n * | 'LV'\n * | 'LVT'\n * | 'Prepend'\n * | 'Regional_Indicator'\n * | 'SpacingMark'\n * | 'T'\n * | 'V'\n * | 'ZWJ'\n * )} GraphemeCategoryKey\n */\n\n/**\n * Grapheme category enum\n *\n * Note:\n * The object isn't actually frozen\n * because using `Object.freeze` increases 800 bytes on Brotli compression.\n *\n * @type {Readonly<Record<GraphemeCategoryKey, GraphemeCategoryNum>>}\n */\nconst GraphemeCategory = exports.GraphemeCategory = {\n Any: 0,\n CR: 1,\n Control: 2,\n Extend: 3,\n Extended_Pictographic: 4,\n L: 5,\n LF: 6,\n LV: 7,\n LVT: 8,\n Prepend: 9,\n Regional_Indicator: 10,\n SpacingMark: 11,\n T: 12,\n V: 13,\n ZWJ: 14\n};\n\n/**\n * @type {GraphemeCategoryRange[]}\n */\nconst grapheme_ranges = exports.grapheme_ranges = (0, _core.decodeUnicodeData)(/** @type {UnicodeDataEncoding} */\n',9,a,,b,1,d,,e,h,3j,w,4p,,4t,,4u,,lc,33,w3,6,13l,18,14v,,14x,1,150,1,153,,16o,5,174,a,17g,,18r,k,19s,,1cm,6,1ct,,1cv,5,1d3,1,1d6,3,1e7,,1e9,,1f4,q,1ie,a,1kb,8,1kt,,1li,3,1ln,8,1lx,2,1m1,4,1nd,2,1ow,1,1p3,8,1qi,n,1r6,,1r7,v,1s3,,1tm,,1tn,,1to,,1tq,2,1tt,7,1u1,3,1u5,,1u6,1,1u9,6,1uq,1,1vl,,1vm,1,1x8,,1xa,,1xb,1,1xd,3,1xj,1,1xn,1,1xp,,1xz,,1ya,1,1z2,,1z5,1,1z7,,20s,,20u,2,20x,1,213,1,217,2,21d,,228,1,22d,,22p,1,22r,,24c,,24e,2,24h,4,24n,1,24p,,24r,1,24t,,25e,1,262,5,269,,26a,1,27w,,27y,1,280,,281,3,287,1,28b,1,28d,,28l,2,28y,1,29u,,2bi,,2bj,,2bk,,2bl,1,2bq,2,2bu,2,2bx,,2c7,,2dc,,2dd,2,2dg,,2f0,,2f2,2,2f5,3,2fa,2,2fe,3,2fp,1,2g2,1,2gx,,2gy,1,2ik,,2im,,2in,1,2ip,,2iq,,2ir,1,2iu,2,2iy,3,2j9,1,2jm,1,2k3,,2kg,1,2ki,1,2m3,1,2m6,,2m7,1,2m9,3,2me,2,2mi,2,2ml,,2mm,,2mv,,2n6,1,2o1,,2o2,1,2q2,,2q7,,2q8,1,2qa,2,2qe,,2qg,6,2qn,,2r6,1,2sx,,2sz,,2t0,6,2tj,7,2wh,,2wj,,2wk,8,2x4,6,2zc,1,305,,307,,309,,30e,1,31t,d,327,,328,4,32e,1,32l,a,32x,z,346,,371,3,375,,376,5,37d,1,37f,1,37h,1,386,1,388,1,38e,2,38x,3,39e,,39g,,39h,1,39p,,3a5,,3cw,2n,3fk,1z,3hk,2f,3tp,2,4k2,3,4ky,2,4lu,1,4mq,1,4ok,1,4om,,4on,6,4ou,7,4p2,,4p3,1,4p5,a,4pp,,4qz,2,4r2,,4r3,,4ud,1,4vd,,4yo,2,4yr,3,4yv,1,4yx,2,4z4,1,4z6,,4z7,5,4zd,2,55j,1,55l,1,55n,,579,,57a,,57b,,57c,6,57k,,57m,,57p,7,57x,5,583,9,58f,,59s,u,5c0,3,5c4,,5dg,9,5dq,3,5du,2,5ez,8,5fk,1,5fm,,5gh,,5gi,3,5gm,1,5go,5,5ie,,5if,,5ig,1,5ii,2,5il,,5im,,5in,4,5k4,7,5kc,7,5kk,1,5km,1,5ow,2,5p0,c,5pd,,5pe,6,5pp,,5pw,,5pz,,5q0,1,5vk,1r,6bv,,6bw,,6bx,,6by,1,6co,6,6d8,,6dl,,6e8,f,6hc,w,6jm,,6k9,,6ms,5,6nd,1,6xm,1,6y0,,70o,,72n,,73d,a,73s,2,79e,,7fu,1,7g6,,7gg,,7i3,3,7i8,5,7if,b,7is,35,7m8,39,7pk,a,7pw,,7py,,7q5,,7q9,,7qg,,7qr,1,7r8,,7rb,,7rg,,7ri,,7rn,2,7rr,,7s3,4,7th,2,7tt,,7u8,,7un,,850,1,8hx,2,8ij,1,8k0,,8k5,,8vj,2,8zj,,928,v,wvj,3,wvo,9,wwu,1,wz4,1,x6q,,x6u,,x6z,,x7n,1,x7p,1,x7r,,x7w,,xa8,1,xbo,f,xc4,1,xcw,h,xdr,,xeu,7,xfr,a,xg2,,xg3,,xgg,s,xhc,2,xhf,,xir,,xis,1,xiu,3,xiy,1,xj0,1,xj2,1,xj4,,xk5,,xm1,5,xm7,1,xm9,1,xmb,1,xmd,1,xmr,,xn0,,xn1,,xoc,,xps,,xpu,2,xpz,1,xq6,1,xq9,,xrf,,xrg,1,xri,1,xrp,,xrq,,xyb,1,xyd,,xye,1,xyg,,xyh,1,xyk,,xyl,,1e68,f,1e74,f,1edb,,1ehq,1,1ek0,b,1eyl,,1f4w,,1f92,4,1gjl,2,1gjp,1,1gjw,3,1gl4,2,1glb,,1gpx,1,1h5w,3,1h7t,4,1hgr,1,1hj0,3,1hl2,a,1hmq,3,1hq8,,1hq9,,1hqa,,1hrs,e,1htc,,1htf,1,1htr,2,1htu,,1hv4,2,1hv7,3,1hvb,1,1hvd,1,1hvh,,1hvm,,1hvx,,1hxc,2,1hyf,4,1hyk,,1hyl,7,1hz9,1,1i0j,,1i0w,1,1i0y,,1i2b,2,1i2e,8,1i2n,,1i2o,,1i2q,1,1i2x,3,1i32,,1i33,,1i5o,2,1i5r,2,1i5u,1,1i5w,3,1i66,,1i69,,1ian,,1iao,2,1iar,7,1ibk,1,1ibm,1,1id7,1,1ida,,1idb,,1idc,,1idd,3,1idj,1,1idn,1,1idp,,1idz,,1iea,1,1iee,6,1ieo,4,1igo,,1igp,1,1igr,5,1igy,,1ih1,,1ih3,2,1ih6,,1ih8,1,1iha,2,1ihd,,1ihe,,1iht,1,1ik5,2,1ik8,7,1ikg,1,1iki,2,1ikl,,1ikm,,1ila,,1ink,,1inl,1,1inn,5,1int,,1inu,,1inv,1,1inx,,1iny,,1inz,1,1io1,,1io2,1,1iun,,1iuo,1,1iuq,3,1iuw,3,1iv0,1,1iv2,,1iv3,1,1ivw,1,1iy8,2,1iyb,7,1iyj,1,1iyl,,1iym,,1iyn,1,1j1n,,1j1o,,1j1p,,1j1q,1,1j1s,7,1j4t,,1j4u,,1j4v,,1j4y,3,1j52,,1j53,4,1jcc,2,1jcf,8,1jco,,1jcp,1,1jjk,,1jjl,4,1jjr,1,1jjv,3,1jjz,,1jk0,,1jk1,,1jk2,,1jk3,,1jo1,2,1jo4,3,1joa,1,1joc,3,1jog,,1jok,,1jpd,9,1jqr,5,1jqx,,1jqy,,1jqz,3,1jrb,,1jrl,5,1jrr,1,1jrt,2,1jt0,5,1jt6,c,1jtj,,1jtk,1,1k4v,,1k4w,6,1k54,5,1k5a,,1k5b,,1k7m,l,1k89,,1k8a,6,1k8h,,1k8i,1,1k8k,,1k8l,1,1kc1,5,1kca,,1kcc,1,1kcf,6,1kcm,,1kcn,,1kei,4,1keo,1,1ker,1,1ket,,1keu,,1kev,,1koj,1,1kol,1,1kow,1,1koy,,1koz,,1kqc,1,1kqe,4,1kqm,1,1kqo,2,1kre,,1ovk,f,1ow0,,1ow7,e,1xr2,b,1xre,2,1xrh,2,1zow,4,1zqo,6,206b,,206f,3,20jz,,20k1,1i,20lr,3,20o4,,20og,1,2ftp,1,2fts,3,2jgg,19,2jhs,m,2jxh,4,2jxp,5,2jxv,7,2jy3,7,2jyd,6,2jze,3,2k3m,2,2lmo,1i,2lob,1d,2lpx,,2lqc,,2lqz,4,2lr5,e,2mtc,6,2mtk,g,2mu3,6,2mub,1,2mue,4,2mxb,,2n1s,6,2nce,,2ne4,3,2nsc,3,2nzi,1,2ok0,6,2on8,6,2pz4,73,2q6l,2,2q7j,,2q98,5,2q9q,1,2qa6,,2qa9,9,2qb1,1k,2qcm,p,2qdd,e,2qe2,,2qen,,2qeq,8,2qf0,3,2qfd,c1,2qrf,4,2qrk,8t,2r0m,7d,2r9c,3j,2rg4,b,2rit,16,2rkc,3,2rm0,7,2rmi,5,2rns,7,2rou,29,2rrg,1a,2rss,9,2rt3,c8,2scg,sd,jny8,v,jnz4,2n,jo1s,3j,jo5c,6n,joc0,2rz', '262122424333333393233393339333333333393393b3b3b3b3b333b33b3bb33333b3b3333333b3b33bb3333b33b3bb33333b3bbb333b333b33333b3b3b3b3333b3b33b3bb39333b33b33b3b3b333b333333b3b333333b33b3b3333b3335dc333333b3b3b33323333b3bb3b33b3b3b3333b3333b3b333bb3b33b3b3b3b3b333b333b3323e2244234444444444444444444444444444444444444444443333333333b3b3bb33333b353b3b3b3b333b3b333b333333b3bb3b3b3bb333232333333333333333b3b3333bb3b393933b3b33bb3b393b3b3b3333b33b33b3bbb33b333b3333bb3933b3b3b333b3b3b3b3b33b3b3b33b3b3b33b3b33b33b3b3b33bb39b9b3b33b3b33b9333b393b3b33b33b3b3b3333393b3b3b33b39bb3b332333b333dd3b33332333323333333333333333333333344444444a44444434444444444444423232');","\"use strict\";\n\nexports.consonant_ranges = void 0;\nvar _core = require(\"./core.cjs\");\n// The following code was generated by \"scripts/unicode.js\",\n// DO NOT EDIT DIRECTLY.\n//\n// @ts-check\n\n/**\n * @typedef {import('./core.js').UnicodeRange} UnicodeRange\n * @typedef {import('./core.js').UnicodeDataEncoding} UnicodeDataEncoding\n */\n\n/**\n * The Unicode `Indic_Conjunct_Break=Consonant` derived property table\n *\n * @type {UnicodeRange[]}\n */\nconst consonant_ranges = exports.consonant_ranges = (0, _core.decodeUnicodeData)(/** @type {UnicodeDataEncoding} */\n'1sl,10,1ug,7,1vc,7,1w5,j,1wq,6,1wy,,1x2,3,1y4,1,1y7,,1yo,1,239,j,23u,6,242,1,245,4,261,,26t,j,27e,6,27m,1,27p,4,28s,1,28v,,29d,,2dx,j,2ei,f,2fs,2,2l1,11');","\"use strict\";\n\nexports.countGrapheme = exports.countGraphemes = countGraphemes;\nexports.graphemeSegments = graphemeSegments;\nexports.splitGraphemes = splitGraphemes;\nvar _core = require(\"./core.cjs\");\nvar _grapheme_data = require(\"./_grapheme_data.cjs\");\nexports.GraphemeCategory = _grapheme_data.GraphemeCategory;\nvar _incb_data = require(\"./_incb_data.cjs\");\n// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT\n// file at the top-level directory of this distribution and at\n// http://rust-lang.org/COPYRIGHT.\n//\n// Licensed under the MIT license\n// <LICENSE-MIT or http://opensource.org/licenses/MIT>.\n//\n// Modified original Rust library [source code]\n// (https://github.com/unicode-rs/unicode-segmentation/blob/1f88570/src/grapheme.rs)\n//\n// to create JavaScript library [unicode-segmenter]\n// (https://github.com/cometkim/unicode-segmenter)\n\n// @ts-check\n\n/**\n * @typedef {import('./_grapheme_data.js').GC_Any} GC_Any\n *\n * @typedef {import('./_grapheme_data.js').GraphemeCategoryNum} GraphemeCategoryNum\n * @typedef {import('./_grapheme_data.js').GraphemeCategoryRange} GraphemeCategoryRange\n *\n * @typedef {object} GraphemeSegmentExtra\n * @property {number} _hd The first code point of the segment\n * @property {GraphemeCategoryNum} _catBegin Beginning Grapheme_Cluster_Break category of the segment\n * @property {GraphemeCategoryNum} _catEnd Ending Grapheme_Cluster_Break category of the segment\n *\n * @typedef {import('./core.js').Segmenter<GraphemeSegmentExtra>} GraphemeSegmenter\n */\n\nconst BMP_MAX = 0xFFFF;\n\n/**\n * Unicode segmentation by extended grapheme rules.\n *\n * This is fully compatible with the {@link Intl.Segmenter.segment} API\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter/segment\n *\n * @param {string} input\n * @return {GraphemeSegmenter} iterator for grapheme cluster segments\n */\nfunction* graphemeSegments(input) {\n let cp = input.codePointAt(0);\n\n // do nothing on empty string\n if (cp == null) return;\n\n /** Current cursor position. */\n let cursor = cp <= BMP_MAX ? 1 : 2;\n\n /** Total length of the input string. */\n let len = input.length;\n\n /** Category of codepoint immediately preceding cursor */\n let catBefore = cat(cp);\n\n /** @type {GraphemeCategoryNum} Category of codepoint immediately preceding cursor. */\n let catAfter = 0;\n\n /** The number of RIS codepoints preceding `cursor`. */\n let risCount = 0;\n\n /**\n * Emoji state for GB11: tracks if we've seen Extended_Pictographic followed by Extend* ZWJ\n * Only relevant when catBefore === ZWJ && catAfter === Extended_Pictographic\n */\n let emoji = false;\n\n /** InCB=Consonant - segment started with Indic consonant */\n let consonant = false;\n\n /** InCB=Linker - seen a linker after consonant */\n let linker = false;\n let index = 0;\n\n /** Beginning category of a segment */\n let _catBegin = catBefore;\n\n /** Memoize the beginning code point of the segment. */\n let _hd = cp;\n while (cursor < len) {\n cp = /** @type {number} */input.codePointAt(cursor);\n catAfter = cat(cp);\n let boundary = true;\n\n // GB3: CR × LF\n if (catBefore === 1) {\n boundary = catAfter !== 6;\n }\n // GB4: (Control | CR | LF) ÷\n else if (catBefore === 2 || catBefore === 6) {\n boundary = true;\n }\n // GB5: ÷ (Control | CR | LF)\n else if (catAfter === 1 || catAfter === 2 || catAfter === 6) {\n boundary = true;\n }\n // GB9, GB9a: × (Extend | ZWJ | SpacingMark) - most common no-break case\n else if (catAfter === 3 || catAfter === 14 || catAfter === 11) {\n boundary = false;\n }\n // GB9b: Prepend ×\n else if (catBefore === 9) {\n boundary = false;\n }\n // GB11: ExtPic Extend* ZWJ × ExtPic\n else if (catBefore === 14 && catAfter === 4) {\n boundary = !emoji;\n }\n // GB12, GB13: RI × RI (odd count means no break)\n else if (catBefore === 10 && catAfter === 10) {\n // risCount is count BEFORE current RI, so odd means this is 2nd, 4th, etc.\n boundary = risCount++ % 2 === 1;\n }\n // GB6: L × (L | V | LV | LVT)\n else if (catBefore === 5) {\n boundary = !(catAfter === 5 || catAfter === 13 || catAfter === 7 || catAfter === 8);\n }\n // GB7: (LV | V) × (V | T)\n else if ((catBefore === 7 || catBefore === 13) && (catAfter === 13 || catAfter === 12)) {\n boundary = false;\n }\n // GB8: (LVT | T) × T\n else if ((catBefore === 8 || catBefore === 12) && catAfter === 12) {\n boundary = false;\n }\n // GB9c: InCB=Consonant InCB=Extend* InCB=Linker InCB=Extend* × InCB=Consonant\n else if (catAfter === 0 && consonant && linker && isIndicConjunctConsonant(cp)) {\n boundary = false;\n }\n // else GB999: ÷ Any\n\n if (boundary) {\n yield {\n segment: input.slice(index, cursor),\n index,\n input,\n _hd,\n _catBegin,\n _catEnd: catBefore\n };\n\n // Reset segment state\n emoji = false;\n risCount = 0;\n index = cursor;\n _catBegin = catAfter;\n _hd = cp;\n }\n // Update state for continuing segment\n else {\n // emoji state for GB11\n if (catAfter === 14 && (catBefore === 3 || catBefore === 4)) {\n emoji = true;\n }\n // InCB state for GB9c\n else if (cp >= 2325) {\n if (!consonant && catBefore === 0) {\n consonant = isIndicConjunctConsonant(_hd);\n }\n if (consonant && catAfter === 3) {\n linker = linker || cp === 0x094D || cp === 0x09CD || cp === 0x0A4D || cp === 0x0ACD || cp === 0x0B4D || cp === 0x0C4D || cp === 0x0D4D;\n } else {\n linker = false;\n }\n }\n }\n cursor += cp <= BMP_MAX ? 1 : 2;\n catBefore = catAfter;\n }\n if (index < len) {\n yield {\n segment: input.slice(index),\n index,\n input,\n _hd,\n _catBegin,\n _catEnd: catBefore\n };\n }\n}\n\n/**\n * Count number of extended grapheme clusters in given text.\n *\n * NOTE:\n *\n * This function is a small wrapper around {@link graphemeSegments}.\n *\n * If you call it more than once at a time, consider memoization\n * or use {@link graphemeSegments} or {@link splitGraphemes} once instead\n *\n * @param {string} text\n * @return {number} count of grapheme clusters\n */\nfunction countGraphemes(text) {\n let count = 0;\n for (let _ of graphemeSegments(text)) count += 1;\n return count;\n}\n/**\n * Split given text into extended grapheme clusters.\n *\n * @param {string} text\n * @return {IterableIterator<string>} iterator for grapheme clusters\n *\n * @see {@link graphemeSegments} if you need extra information.\n *\n * @example\n * [...splitGraphemes('abc')] // => ['a', 'b', 'c']\n */\nfunction* splitGraphemes(text) {\n for (let s of graphemeSegments(text)) yield s.segment;\n}\n\n// Segmented 4-bit packed lookup tables for BMP code points.\n// \n// Memory and code size optimization: Skip regions that can be easily inlined\n// - 0x3000-0x9FFF (CJK): 28,672 codepoints, only 12 non-Any ranges\n// - 0xAC00-0xD7A3 (Hangul syllables): 11,172 codepoints, LV or LVT computed at runtime\n// - 0xD7A4-0xD7FF (Hangul Jamo Extended-B): 92 codepoints, only 2 non-Any ranges\n// - 0xE000-0xFDFF (Private Use): 7,680 codepoints, only 1 non-Any range\n// - 0xFE00-0xFFFF (Specials): 512 codepoints -> very rare and small, binary search fallback\n// \n// Hangul syllables note:\n// - LV syllables: single codepoints at 0xAC00 + n*28\n// - LVT syllables: 27 consecutive codepoints after each LV\n// \n// Indexed category segments (4-bit packed, 2 categories per byte):\n// - SEG0: 0x0080-0x2FFF (12,160 codepoints -> 6,080 bytes)\n// - SEG1: 0xA000-0xABFF (3,072 codepoints -> 1,536 bytes)\n//\n// Total index size: 7,616 bytes (~7.4KB)\nconst SEG0 = new Uint8Array(6080),\n SEG0_MIN = 0x0080,\n SEG0_MAX = 0x2FFF;\nconst SEG1 = new Uint8Array(1536),\n SEG1_MIN = 0xA000,\n SEG1_MAX = 0xABFF;\nconst SEG_CURSOR = (() => {\n let cursor = 0;\n while (true) {\n let [start, end, cat] = _grapheme_data.grapheme_ranges[cursor];\n if (start > SEG1_MAX) break;\n cursor++;\n\n // Skip inlined ranges\n if (end < SEG0_MIN || start > SEG0_MAX && end < SEG1_MIN) continue;\n for (let cp = start; cp <= end; cp++) {\n let /** @type {Uint8Array} */seg,\n idx = 0;\n if (cp <= SEG0_MAX) {\n seg = SEG0;\n idx = cp - SEG0_MIN >> 1;\n } else {\n seg = SEG1;\n idx = cp - SEG1_MIN >> 1;\n }\n seg[idx] = cp & 1 ? seg[idx] & 0x0F | cat << 4 : seg[idx] & 0xF0 | cat;\n }\n }\n return cursor;\n})();\n\n/**\n * `Grapheme_Cluster_Break` property value of a given codepoint\n *\n * @see https://www.unicode.org/reports/tr29/tr29-43.html#Default_Grapheme_Cluster_Table\n *\n * @param {number} cp\n * @return {GraphemeCategoryNum}\n */\nfunction cat(cp) {\n // ASCII fast path\n if (cp < SEG0_MIN) {\n if (cp >= 32) return 0;\n if (cp === 10) return 6;\n if (cp === 13) return 1;\n return 2;\n }\n // Index Segment 0: 0x0080-0x2FFF\n if (cp <= SEG0_MAX) {\n let byte = SEG0[cp - SEG0_MIN >> 1];\n return /** @type {GraphemeCategoryNum} */cp & 1 ? byte >> 4 : byte & 0x0F;\n }\n // CJK fast path: 0x3000-0x9FFF\n if (cp < SEG1_MIN) {\n if (cp < 0x3030) return cp >= 0x302A ? 3 : 0;\n if (cp < 0x309B) {\n if (cp === 0x3030 || cp === 0x303D) return 4;\n return cp >= 0x3099 ? 3 : 0;\n }\n if (cp === 0x3297 || cp === 0x3299) return 4;\n return 0;\n }\n // Index Segment 1: 0xA000-0xABFF\n if (cp <= SEG1_MAX) {\n let byte = SEG1[cp - SEG1_MIN >> 1];\n return /** @type {GraphemeCategoryNum} */cp & 1 ? byte >> 4 : byte & 0x0F;\n }\n // Hangul syllables path: 0xAC00-0xD7A3\n if (cp <= 0xD7A3) {\n return (cp - 0xAC00) % 28 === 0 ? 7 : 8; // LV : LVT\n }\n // Hangul Jamo Extended-B path: 0xD7A4-0xD7FF\n if (cp <= 0xD7FF) {\n if (cp <= 0xD7C6) return cp >= 0xD7B0 ? 13 : 0; // V\n return cp >= 0xD7CB ? 12 : 0; // T\n }\n // Private Use fast path: 0xE000-0xFDFF\n if (cp < 0xFE00) {\n return cp === 0xFB1E ? 3 : 0;\n }\n // Specials (0xFE00-0xFFFF) and Non-BMP\n let idx = (0, _core.findUnicodeRangeIndex)(cp, _grapheme_data.grapheme_ranges, SEG_CURSOR);\n return idx < 0 ? 0 : _grapheme_data.grapheme_ranges[idx][2];\n}\n\n/**\n * @param {number} cp\n * @return {boolean}\n */\nfunction isIndicConjunctConsonant(cp) {\n return (0, _core.findUnicodeRangeIndex)(cp, _incb_data.consonant_ranges) >= 0;\n}","import { countGraphemes } from 'unicode-segmenter/grapheme'\n\n// @TODO: Drop usage of \"unicode-segmenter\" package when Intl.Segmenter is\n// widely supported.\n// https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter\nconst segmenter =\n 'Segmenter' in Intl && typeof Intl.Segmenter === 'function'\n ? /*#__PURE__*/ new Intl.Segmenter()\n : null\n\nexport const graphemeLenNative = segmenter\n ? function graphemeLenNative(str: string): number {\n let length = 0\n for (const _ of segmenter.segment(str)) length++\n return length\n }\n : null\n\nexport function graphemeLenPonyfill(str: string): number {\n return countGraphemes(str)\n}\n","import { NodeJSBuffer } from './lib/nodejs-buffer.js'\n\n// @NOTE This file is not meant to be exported directly. Instead, we re-export\n// public functions from ./utf8.ts. The reason for this separation is that this\n// file allows to test both the NodeJS-optimized and ponyfill implementations.\n\nexport const utf8LenNode = NodeJSBuffer\n ? function utf8LenNode(string: string): number {\n return NodeJSBuffer!.byteLength(string, 'utf8')\n }\n : null\n\nexport function utf8LenCompute(string: string): number {\n // The code below is similar to TextEncoder's implementation of UTF-8\n // encoding. However, using TextEncoder to get the byte length is slower\n // as it requires allocating a new Uint8Array and copying data:\n\n // return new TextEncoder().encode(string).byteLength\n\n // The base length is the string length (all ASCII)\n let len = string.length\n let code: number\n\n // The loop calculates the number of additional bytes needed for\n // non-ASCII characters\n for (let i = 0; i < string.length; i += 1) {\n code = string.charCodeAt(i)\n\n if (code <= 0x7f) {\n // ASCII, 1 byte\n } else if (code <= 0x7ff) {\n // 2 bytes char\n len += 1\n } else {\n // 3 bytes char\n len += 2\n // If the current char is a high surrogate, and the next char is a low\n // surrogate, skip the next char as the total is a 4 bytes char\n // (represented as a surrogate pair in UTF-16) and was already accounted\n // for.\n if (code >= 0xd800 && code <= 0xdbff) {\n code = string.charCodeAt(i + 1)\n if (code >= 0xdc00 && code <= 0xdfff) {\n i++\n }\n }\n }\n }\n\n return len\n}\n","import { graphemeLenNative, graphemeLenPonyfill } from './utf8-grapheme-len.js'\nimport { utf8LenCompute, utf8LenNode } from './utf8-len.js'\n\nexport const graphemeLen: (str: string) => number =\n graphemeLenNative ?? graphemeLenPonyfill\n\nif (graphemeLen === graphemeLenPonyfill) {\n /*#__PURE__*/\n console.warn(\n '[@atproto/lex-data]: Intl.Segmenter is not available in this environment. Falling back to ponyfill implementation.',\n )\n}\n\nexport const utf8Len: (string: string) => number = utf8LenNode ?? utf8LenCompute\n","export * from './blob.js'\nexport * from './cid.js'\nexport * from './language.js'\nexport * from './lex-equals.js'\nexport * from './lex.js'\nexport * from './object.js'\nexport * from './uint8array.js'\nexport * from './utf8.js'\n","import { fromBase64, toBase64 } from '@atproto/lex-data'\nimport { JsonValue } from './json.js'\n\nexport function parseLexBytes(input?: {\n $bytes?: unknown\n}): Uint8Array | undefined {\n if (!input || !('$bytes' in input)) {\n return undefined\n }\n\n for (const key in input) {\n if (key !== '$bytes') {\n return undefined\n }\n }\n\n if (typeof input.$bytes !== 'string') {\n throw new TypeError('$bytes must be a base64-encoded string')\n }\n\n return fromBase64(input.$bytes)\n}\n\nexport function encodeLexBytes(bytes: Uint8Array): JsonValue {\n return { $bytes: toBase64(bytes) }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=json.js.map","import { Cid, parseCid } from '@atproto/lex-data'\nimport { JsonValue } from './json.js'\n\nexport function parseLexLink(input?: { $link?: unknown }): Cid | undefined {\n if (!input || !('$link' in input)) {\n return undefined\n }\n\n for (const key in input) {\n if (key !== '$link') {\n return undefined\n }\n }\n\n if (typeof input.$link !== 'string') {\n throw new TypeError('$link must be a base32-encoded CID string')\n }\n\n if (input.$link.length === 0) {\n throw new TypeError('CID string in $link cannot be empty')\n }\n\n // Arbitrary limit to prevent DoS via extremely long CIDs\n if (input.$link.length > 2048) {\n throw new TypeError('CID string in $link is too long')\n }\n\n try {\n return parseCid(input.$link)\n } catch (cause) {\n throw new TypeError('Invalid CID string in $link', { cause })\n }\n}\n\nexport function encodeLexLink(cid: Cid): JsonValue {\n return { $link: cid.toString() }\n}\n","import { BlobRef, LexMap, isBlobRef } from '@atproto/lex-data'\nimport { parseLexLink } from './link.js'\n\nexport function parseBlobRef(\n input: LexMap,\n options?: { strict?: boolean },\n): BlobRef | undefined {\n if (input.$type !== 'blob') return undefined\n\n const ref = input?.ref\n if (!ref || typeof ref !== 'object') return undefined\n\n // @NOTE Because json to lex conversion can be performed both in a depth-first\n // manner (e.g. via lexParse) or in a breadth-first manner (e.g. via\n // jsonToLex), the `ref` property may either be a LexMap with a $link\n // property, or it may already be a CID instance.\n\n if ('$link' in ref) {\n const cid = parseLexLink(ref)\n if (!cid) return undefined\n\n const blob = { ...input, ref: cid }\n if (isBlobRef(blob, options)) return blob\n }\n\n if (isBlobRef(input)) {\n return input\n }\n\n return undefined\n}\n","import {\n BlobRef,\n Cid,\n LexArray,\n LexMap,\n LexValue,\n isCid,\n} from '@atproto/lex-data'\nimport { parseBlobRef } from './blob.js'\nimport { encodeLexBytes, parseLexBytes } from './bytes.js'\nimport { JsonObject, JsonValue } from './json.js'\nimport { encodeLexLink, parseLexLink } from './link.js'\n\nexport function lexStringify(input: LexValue): string {\n // @NOTE Because of the way the \"replacer\" works in JSON.stringify, it's\n // simpler to convert Lex to JSON first rather than trying to do it\n // on-the-fly.\n return JSON.stringify(lexToJson(input))\n}\n\nexport type LexParseOptions = {\n /**\n * Forbids the presence of invalid Lex values (e.g. non-integer numbers,\n * malformed $link, $bytes, blob objects, etc.)\n */\n strict?: boolean\n}\n\nexport function lexParse(\n input: string,\n options: LexParseOptions = { strict: false },\n): LexValue {\n return JSON.parse(input, function (key: string, value: JsonValue): LexValue {\n switch (typeof value) {\n case 'object':\n if (value === null) return null\n if (Array.isArray(value)) return value\n return parseSpecialJsonObject(value, options) ?? value\n case 'number':\n if (Number.isInteger(value) && Number.isSafeInteger(value)) return value\n if (options.strict) {\n throw new TypeError(`Invalid non-integer number: ${value}`)\n }\n // fallthrough\n default:\n return value\n }\n })\n}\n\nexport function jsonToLex(\n value: JsonValue,\n options: LexParseOptions = { strict: false },\n): LexValue {\n switch (typeof value) {\n case 'object': {\n if (value === null) return null\n if (Array.isArray(value)) return jsonArrayToLex(value, options)\n return (\n parseSpecialJsonObject(value, options) ??\n jsonObjectToLexMap(value, options)\n )\n }\n case 'number':\n if (Number.isInteger(value) && Number.isSafeInteger(value)) return value\n if (options.strict) {\n throw new TypeError(`Invalid non-integer number: ${value}`)\n }\n // fallthrough\n case 'boolean':\n case 'string':\n return value\n default:\n throw new TypeError(`Invalid JSON value: ${typeof value}`)\n }\n}\n\nfunction jsonArrayToLex(\n input: JsonValue[],\n options: LexParseOptions,\n): LexValue[] {\n // Lazily copy value\n let copy: LexValue[] | undefined\n for (let i = 0; i < input.length; i++) {\n const inputItem = input[i]\n const item = jsonToLex(inputItem, options)\n if (item !== inputItem) {\n copy ??= Array.from(input)\n copy[i] = item\n }\n }\n return copy ?? input\n}\n\nfunction jsonObjectToLexMap(\n input: JsonObject,\n options: LexParseOptions,\n): LexMap {\n // Lazily copy value\n let copy: LexMap | undefined = undefined\n for (const [key, jsonValue] of Object.entries(input)) {\n // Prevent prototype pollution\n if (key === '__proto__') {\n throw new TypeError('Invalid key: __proto__')\n }\n\n // Ignore (strip) undefined values\n if (jsonValue === undefined) {\n copy ??= { ...input }\n delete copy[key]\n continue\n }\n\n const value = jsonToLex(jsonValue!, options)\n if (value !== jsonValue) {\n copy ??= { ...input }\n copy[key] = value\n }\n }\n return copy ?? input\n}\n\nexport function lexToJson(value: LexValue): JsonValue {\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return value\n } else if (Array.isArray(value)) {\n return lexArrayToJson(value)\n } else if (isCid(value)) {\n return encodeLexLink(value)\n } else if (ArrayBuffer.isView(value)) {\n return encodeLexBytes(value)\n } else {\n return encodeLexMap(value)\n }\n case 'boolean':\n case 'string':\n case 'number':\n return value\n default:\n throw new TypeError(`Invalid Lex value: ${typeof value}`)\n }\n}\n\nfunction lexArrayToJson(input: LexArray): JsonValue[] {\n // Lazily copy value\n let copy: JsonValue[] | undefined\n for (let i = 0; i < input.length; i++) {\n const inputItem = input[i]\n const item = lexToJson(inputItem)\n if (item !== inputItem) {\n copy ??= Array.from(input) as JsonValue[]\n copy[i] = item\n }\n }\n return copy ?? (input as JsonValue[])\n}\n\nfunction encodeLexMap(input: LexMap): JsonObject {\n // Lazily copy value\n let copy: JsonObject | undefined = undefined\n for (const [key, lexValue] of Object.entries(input)) {\n // Prevent prototype pollution\n if (key === '__proto__') {\n throw new TypeError('Invalid key: __proto__')\n }\n\n // Ignore (strip) undefined values\n if (lexValue === undefined) {\n copy ??= { ...input } as JsonObject\n delete copy[key]\n continue\n }\n\n const jsonValue = lexToJson(lexValue!)\n if (jsonValue !== lexValue) {\n copy ??= { ...input } as JsonObject\n copy[key] = jsonValue\n }\n }\n return copy ?? (input as JsonObject)\n}\n\nfunction parseSpecialJsonObject(\n input: LexMap,\n options: LexParseOptions,\n): Cid | Uint8Array | BlobRef | undefined {\n // Hot path: use hints to avoid parsing when possible\n\n if (input.$link !== undefined) {\n const cid = parseLexLink(input)\n if (cid) return cid\n if (options.strict) throw new TypeError(`Invalid $link object`)\n } else if (input.$bytes !== undefined) {\n const bytes = parseLexBytes(input)\n if (bytes) return bytes\n if (options.strict) throw new TypeError(`Invalid $bytes object`)\n } else if (input.$type !== undefined) {\n // @NOTE Since blobs are \"just\" regular lex objects with a special shape,\n // and because an object that does not conform to the blob shape would still\n // result in undefined being returned, we only attempt to parse blobs when\n // the strict option is enabled.\n if (options.strict) {\n if (input.$type === 'blob') {\n const blob = parseBlobRef(input, options)\n if (blob) return blob\n throw new TypeError(`Invalid blob object`)\n } else if (typeof input.$type !== 'string') {\n throw new TypeError(`Invalid $type property (${typeof input.$type})`)\n } else if (input.$type.length === 0) {\n throw new TypeError(`Empty $type property`)\n }\n }\n }\n\n // @NOTE We ignore legacy blob representation here. They can be handled at the\n // application level if needed.\n\n return undefined\n}\n","export * from './bytes.js'\nexport * from './json.js'\nexport * from './lex-json.js'\nexport * from './link.js'\n","import { LexValue, lexEquals } from '@atproto/lex-data'\nimport { JsonValue, jsonToLex, lexToJson } from '@atproto/lex-json'\n\n/**\n * @deprecated Use {@link JsonValue} from `@atproto/lex-cbor` instead.\n */\nexport type LegacyJsonValue = unknown\n\nexport type { LegacyJsonValue as JsonValue }\n\n/**\n * @deprecated Use {@link LexValue} from `@atproto/lex-cbor` instead.\n */\nexport type IpldValue = unknown\n\n/**\n * Converts a JSON-compatible value to an IPLD-compatible value.\n * @deprecated Use {@link jsonToLex} from `@atproto/lex-cbor` instead.\n */\nexport const jsonToIpld = (val: LegacyJsonValue): IpldValue => {\n return jsonToLex(val as JsonValue, { strict: false })\n}\n\n/**\n * Converts an IPLD-compatible value to a JSON-compatible value.\n * @deprecated Use {@link lexToJson} from `@atproto/lex-cbor` instead.\n */\nexport const ipldToJson = (val: IpldValue): LegacyJsonValue => {\n // Legacy behavior(s)\n if (val === undefined) return val\n if (Number.isNaN(val)) return val\n\n return lexToJson(val as LexValue)\n}\n\n/**\n * Compares two IPLD-compatible values for deep equality.\n * @deprecated Use {@link lexEquals} from `@atproto/lex-cbor` instead.\n */\nexport const ipldEquals = (a: IpldValue, b: IpldValue): boolean => {\n if (!lexEquals(a as LexValue, b as LexValue)) return false\n\n // @NOTE The previous implementation used \"===\" which treats NaN as unequal to\n // NaN.\n if (Number.isNaN(a)) return false\n\n return true\n}\n","import { wait } from './util'\n\nexport type RetryOptions = {\n maxRetries?: number\n getWaitMs?: (n: number) => number | null\n}\n\nexport async function retry<T>(\n fn: () => Promise<T>,\n opts: RetryOptions & {\n retryable?: (err: unknown) => boolean\n } = {},\n): Promise<T> {\n const { maxRetries = 3, retryable = () => true, getWaitMs = backoffMs } = opts\n let retries = 0\n let doneError: unknown\n while (!doneError) {\n try {\n return await fn()\n } catch (err) {\n const waitMs = getWaitMs(retries)\n const willRetry =\n retries < maxRetries && waitMs !== null && retryable(err)\n if (willRetry) {\n retries += 1\n if (waitMs !== 0) {\n await wait(waitMs)\n }\n } else {\n doneError = err\n }\n }\n }\n throw doneError\n}\n\nexport function createRetryable(retryable: (err: unknown) => boolean) {\n return async <T>(fn: () => Promise<T>, opts?: RetryOptions) =>\n retry(fn, { ...opts, retryable })\n}\n\n// Waits exponential backoff with max and jitter: ~100, ~200, ~400, ~800, ~1000, ~1000, ...\nexport function backoffMs(n: number, multiplier = 100, max = 1000) {\n const exponentialMs = Math.pow(2, n) * multiplier\n const ms = Math.min(exponentialMs, max)\n return jitter(ms)\n}\n\n// Adds randomness +/-15% of value\nfunction jitter(value: number) {\n const delta = value * 0.15\n return value + randomRange(-delta, delta)\n}\n\nfunction randomRange(from: number, to: number) {\n const rand = Math.random() * (to - from)\n return rand + from\n}\n","import { z } from 'zod'\nimport { CID } from '@atproto/lex-data'\nimport { Def } from './check'\n\nconst cidSchema = z.unknown().transform((obj, ctx): CID => {\n const cid = CID.asCID(obj)\n\n if (cid == null) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Not a valid CID',\n })\n return z.NEVER\n }\n\n return cid\n})\n\nconst carHeader = z.object({\n version: z.literal(1),\n roots: z.array(cidSchema),\n})\nexport type CarHeader = z.infer<typeof carHeader>\n\nexport const schema = {\n cid: cidSchema,\n carHeader,\n bytes: z.instanceof(Uint8Array),\n string: z.string(),\n array: z.array(z.unknown()),\n map: z.record(z.string(), z.unknown()),\n unknown: z.unknown(),\n}\n\nexport const def = {\n cid: {\n name: 'cid',\n schema: schema.cid,\n } as Def<CID>,\n carHeader: {\n name: 'CAR header',\n schema: schema.carHeader,\n } as Def<CarHeader>,\n bytes: {\n name: 'bytes',\n schema: schema.bytes,\n } as Def<Uint8Array>,\n string: {\n name: 'string',\n schema: schema.string,\n } as Def<string>,\n map: {\n name: 'map',\n schema: schema.map,\n } as Def<Record<string, unknown>>,\n unknown: {\n name: 'unknown',\n schema: schema.unknown,\n } as Def<unknown>,\n}\n\nexport type ArrayEl<A> = A extends readonly (infer T)[] ? T : never\n\nexport type NotEmptyArray<T> = [T, ...T[]]\n","export const SECOND = 1000\nexport const MINUTE = SECOND * 60\nexport const HOUR = MINUTE * 60\nexport const DAY = HOUR * 24\n\nexport const lessThanAgoMs = (time: Date, range: number) => {\n return Date.now() < time.getTime() + range\n}\n\nexport const addHoursToDate = (hours: number, startingDate?: Date): Date => {\n // When date is passed, clone before calling `setHours()` so that we are not mutating the original date\n const currentDate = startingDate ? new Date(startingDate) : new Date()\n currentDate.setHours(currentDate.getHours() + hours)\n return currentDate\n}\n","import {\n LanguageTag,\n fromBase64,\n graphemeLen,\n isLanguageString,\n parseLanguageString,\n toBase64,\n utf8Len,\n} from '@atproto/lex-data'\n\n/**\n * @deprecated Use {@link graphemeLen} from `@atproto/lex-data` instead.\n */\nconst graphemeLenLegacy = graphemeLen\nexport { graphemeLenLegacy as graphemeLen }\n\n/**\n * @deprecated Use {@link utf8Len} from `@atproto/lex-data` instead.\n */\nconst utf8LenLegacy = utf8Len\nexport { utf8LenLegacy as utf8Len }\n\n/**\n * @deprecated Use {@link LanguageTag} from `@atproto/lex-data` instead.\n */\ntype LanguageTagLegacy = LanguageTag\nexport type { LanguageTagLegacy as LanguageTag }\n\n/**\n * @deprecated Use {@link parseLanguageString} from `@atproto/lex-data` instead.\n */\nexport const parseLanguageLegacy = parseLanguageString\nexport { parseLanguageLegacy as parseLanguage }\n\n/**\n * @deprecated Use {@link isLanguageString} from `@atproto/lex-data` instead.\n */\nexport const validateLanguage = isLanguageString\n\n/**\n * @deprecated Use {@link toBase64} from `@atproto/lex-data` instead.\n */\nexport const utf8ToB64Url = (utf8: string): string => {\n return toBase64(new TextEncoder().encode(utf8), 'base64url')\n}\n\n/**\n * @deprecated Use {@link fromBase64} from `@atproto/lex-data` instead.\n */\nexport const b64UrlToUtf8 = (b64: string): string => {\n return new TextDecoder().decode(fromBase64(b64, 'base64url'))\n}\n","import { z } from 'zod'\n\n// Parsing atproto data\n// --------\n\nexport const isValidDidDoc = (doc: unknown): doc is DidDocument => {\n return didDocument.safeParse(doc).success\n}\n\nexport const getDid = (doc: DidDocument): string => {\n const id = doc.id\n if (typeof id !== 'string') {\n throw new Error('No `id` on document')\n }\n return id\n}\n\nexport const getHandle = (doc: DidDocument): string | undefined => {\n const aka = doc.alsoKnownAs\n if (aka) {\n for (let i = 0; i < aka.length; i++) {\n const alias = aka[i]\n if (alias.startsWith('at://')) {\n // strip off \"at://\" prefix\n return alias.slice(5)\n }\n }\n }\n return undefined\n}\n\n// @NOTE we parse to type/publicKeyMultibase to avoid the dependency on @atproto/crypto\nexport const getSigningKey = (\n doc: DidDocument,\n): { type: string; publicKeyMultibase: string } | undefined => {\n return getVerificationMaterial(doc, 'atproto')\n}\n\nexport const getVerificationMaterial = (\n doc: DidDocument,\n keyId: string,\n): { type: string; publicKeyMultibase: string } | undefined => {\n // /!\\ Hot path\n\n const key = findItemById(doc, 'verificationMethod', `#${keyId}`)\n if (!key) {\n return undefined\n }\n\n if (!key.publicKeyMultibase) {\n return undefined\n }\n\n return {\n type: key.type,\n publicKeyMultibase: key.publicKeyMultibase,\n }\n}\n\nexport const getSigningDidKey = (doc: DidDocument): string | undefined => {\n const parsed = getSigningKey(doc)\n if (!parsed) return\n return `did:key:${parsed.publicKeyMultibase}`\n}\n\nexport const getPdsEndpoint = (doc: DidDocument): string | undefined => {\n return getServiceEndpoint(doc, {\n id: '#atproto_pds',\n type: 'AtprotoPersonalDataServer',\n })\n}\n\nexport const getFeedGenEndpoint = (doc: DidDocument): string | undefined => {\n return getServiceEndpoint(doc, {\n id: '#bsky_fg',\n type: 'BskyFeedGenerator',\n })\n}\n\nexport const getNotifEndpoint = (doc: DidDocument): string | undefined => {\n return getServiceEndpoint(doc, {\n id: '#bsky_notif',\n type: 'BskyNotificationService',\n })\n}\n\nexport const getServiceEndpoint = (\n doc: DidDocument,\n opts: { id: string; type?: string },\n) => {\n // /!\\ Hot path\n\n const service = findItemById(doc, 'service', opts.id)\n if (!service) {\n return undefined\n }\n\n if (opts.type && service.type !== opts.type) {\n return undefined\n }\n\n if (typeof service.serviceEndpoint !== 'string') {\n return undefined\n }\n\n return validateUrl(service.serviceEndpoint)\n}\n\nfunction findItemById<\n D extends DidDocument,\n T extends 'verificationMethod' | 'service',\n>(doc: D, type: T, id: string): NonNullable<D[T]>[number] | undefined\nfunction findItemById(\n doc: DidDocument,\n type: 'verificationMethod' | 'service',\n id: string,\n) {\n // /!\\ Hot path\n\n const items = doc[type]\n if (items) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const itemId = item.id\n\n if (\n itemId[0] === '#'\n ? itemId === id\n : // Optimized version of: itemId === `${doc.id}${id}`\n itemId.length === doc.id.length + id.length &&\n itemId[doc.id.length] === '#' &&\n itemId.endsWith(id) &&\n itemId.startsWith(doc.id) // <== We could probably skip this check\n ) {\n return item\n }\n }\n }\n return undefined\n}\n\n// Check protocol and hostname to prevent potential SSRF\nconst validateUrl = (urlStr: string): string | undefined => {\n if (!urlStr.startsWith('http://') && !urlStr.startsWith('https://')) {\n return undefined\n }\n\n if (!canParseUrl(urlStr)) {\n return undefined\n }\n\n return urlStr\n}\n\nconst canParseUrl =\n URL.canParse ??\n // URL.canParse is not available in Node.js < 18.17.0\n ((urlStr: string): boolean => {\n try {\n new URL(urlStr)\n return true\n } catch {\n return false\n }\n })\n\n// Types\n// --------\n\nconst verificationMethod = z.object({\n id: z.string(),\n type: z.string(),\n controller: z.string(),\n publicKeyMultibase: z.string().optional(),\n})\n\nconst service = z.object({\n id: z.string(),\n type: z.string(),\n serviceEndpoint: z.union([z.string(), z.record(z.unknown())]),\n})\n\nexport const didDocument = z.object({\n id: z.string(),\n alsoKnownAs: z.array(z.string()).optional(),\n verificationMethod: z.array(verificationMethod).optional(),\n service: z.array(service).optional(),\n})\n\nexport type DidDocument = z.infer<typeof didDocument>\n","export * as check from './check'\nexport * as util from './util'\n\nexport * from './arrays'\nexport * from './async'\nexport * from './util'\nexport * from './tid'\nexport * from './ipld'\nexport * from './retry'\nexport * from './types'\nexport * from './times'\nexport * from './strings'\nexport * from './did-doc'\n","import { CID } from 'multiformats/cid'\nimport { z } from 'zod'\nimport { check, ipldToJson, schema } from '@atproto/common-web'\n\nexport const typedJsonBlobRef = z\n .object({\n $type: z.literal('blob'),\n ref: schema.cid,\n mimeType: z.string(),\n size: z.number(),\n })\n .strict()\nexport type TypedJsonBlobRef = z.infer<typeof typedJsonBlobRef>\n\nexport const untypedJsonBlobRef = z\n .object({\n cid: z.string(),\n mimeType: z.string(),\n })\n .strict()\nexport type UntypedJsonBlobRef = z.infer<typeof untypedJsonBlobRef>\n\nexport const jsonBlobRef = z.union([typedJsonBlobRef, untypedJsonBlobRef])\nexport type JsonBlobRef = z.infer<typeof jsonBlobRef>\n\nexport class BlobRef {\n public original: JsonBlobRef\n\n constructor(\n public ref: CID,\n public mimeType: string,\n public size: number,\n original?: JsonBlobRef,\n ) {\n this.original = original ?? {\n $type: 'blob',\n ref,\n mimeType,\n size,\n }\n }\n\n static asBlobRef(obj: unknown): BlobRef | null {\n if (check.is(obj, jsonBlobRef)) {\n return BlobRef.fromJsonRef(obj)\n }\n return null\n }\n\n static fromJsonRef(json: JsonBlobRef): BlobRef {\n if (check.is(json, typedJsonBlobRef)) {\n return new BlobRef(json.ref, json.mimeType, json.size)\n } else {\n return new BlobRef(CID.parse(json.cid), json.mimeType, -1, json)\n }\n }\n\n ipld(): TypedJsonBlobRef {\n return {\n $type: 'blob',\n ref: this.ref,\n mimeType: this.mimeType,\n size: this.size,\n }\n }\n\n toJSON() {\n return ipldToJson(this.ipld()) as {\n $type: 'blob'\n ref: { $link: string }\n mimeType: string\n size: number\n }\n }\n}\n","import { BlobRef } from '../blob-refs'\nimport { Lexicons } from '../lexicons'\nimport { LexUserType, ValidationError, ValidationResult } from '../types'\n\nexport function blob(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // check\n if (!value || !(value instanceof BlobRef)) {\n return {\n success: false,\n error: new ValidationError(`${path} should be a blob ref`),\n }\n }\n return { success: true, value }\n}\n","(()=>{\"use strict\";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^(?!0{4}\"+t+\"0{2}\"+t+\"0{2})((?=[0-9]{4}\"+t+\"(((0[^2])|1[0-2])|02(?=\"+t+\"(([0-1][0-9])|2[0-8])))\"+t+\"[0-9]{2})|(?=((([13579][26])|([2468][048])|(0[48]))0{2})|([0-9]{2}((((0|[2468])[48])|[2468][048])|([13579][26])))\"+t+\"02\"+t+\"29))([0-9]{4})\"+t+\"(?!((0[469])|11)\"+t+\"31)((0[1,3-9]|1[0-2])|(02(?!\"+t+\"3)))\"+t+\"(0[1-9]|[1-2][0-9]|3[0-1])$\").test(e)}function n(e){var t=/\\D/.exec(e);return t?t[0]:\"\"}function i(e,t,r){void 0===t&&(t=\":\"),void 0===r&&(r=!1);var i=new RegExp(\"^([0-1]|2(?=([0-3])|4\"+t+\"00))[0-9]\"+t+\"[0-5][0-9](\"+t+\"([0-5]|6(?=0))[0-9])?(.[0-9]{1,9})?$\");if(!r||!/[Z+\\-]/.test(e))return i.test(e);if(/Z$/.test(e))return i.test(e.replace(\"Z\",\"\"));var o=e.includes(\"+\"),a=e.split(/[+-]/),u=a[0],d=a[1];return i.test(u)&&function(e,t,r){return void 0===r&&(r=\":\"),new RegExp(t?\"^(0(?!(2\"+r+\"4)|0\"+r+\"3)|1(?=([0-1]|2(?=\"+r+\"[04])|[34](?=\"+r+\"0))))([03469](?=\"+r+\"[03])|[17](?=\"+r+\"0)|2(?=\"+r+\"[04])|5(?=\"+r+\"[034])|8(?=\"+r+\"[04]))\"+r+\"([03](?=0)|4(?=5))[05]$\":\"^(0(?=[^0])|1(?=[0-2]))([39](?=\"+r+\"[03])|[0-24-8](?=\"+r+\"00))\"+r+\"[03]0$\").test(e)}(d,o,n(d))}function o(e){var t=e.split(\"T\"),o=t[0],a=t[1],u=r(o,n(o));if(!a)return!1;var d,s=(d=a.match(/([^Z+\\-\\d])(?=\\d+\\1)/),Array.isArray(d)?d[0]:\"\");return u&&i(a,s,!0)}function a(e,t){return void 0===t&&(t=\"-\"),new RegExp(\"^[0-9]{4}\"+t+\"(0(?=[^0])|1(?=[0-2]))[0-9]$\").test(e)}e.r(t),e.d(t,{isValidDate:()=>r,isValidISODateString:()=>o,isValidTime:()=>i,isValidYearMonth:()=>a});var u=exports;for(var d in t)u[d]=t[d];t.__esModule&&Object.defineProperty(u,\"__esModule\",{value:!0})})();","import { isValidISODateString } from 'iso-datestring-validator'\nimport { CID } from 'multiformats/cid'\nimport { validateLanguage } from '@atproto/common-web'\nimport {\n ensureValidAtUri,\n ensureValidDid,\n ensureValidHandle,\n ensureValidNsid,\n ensureValidRecordKey,\n isValidTid,\n} from '@atproto/syntax'\nimport { ValidationError, ValidationResult } from '../types'\n\nexport function datetime(path: string, value: string): ValidationResult {\n try {\n if (!isValidISODateString(value)) {\n throw new Error()\n }\n } catch {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an valid atproto datetime (both RFC-3339 and ISO-8601)`,\n ),\n }\n }\n return { success: true, value }\n}\n\nexport function uri(path: string, value: string): ValidationResult {\n const isUri = value.match(/^\\w+:(?:\\/\\/)?[^\\s/][^\\s]*$/) !== null\n if (!isUri) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a uri`),\n }\n }\n return { success: true, value }\n}\n\nexport function atUri(path: string, value: string): ValidationResult {\n try {\n ensureValidAtUri(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid at-uri`),\n }\n }\n\n return { success: true, value }\n}\n\nexport function did(path: string, value: string): ValidationResult {\n try {\n ensureValidDid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did`),\n }\n }\n\n return { success: true, value }\n}\n\nexport function handle(path: string, value: string): ValidationResult {\n try {\n ensureValidHandle(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid handle`),\n }\n }\n\n return { success: true, value }\n}\n\nexport function atIdentifier(path: string, value: string): ValidationResult {\n // We can discriminate based on the \"did:\" prefix\n if (value.startsWith('did:')) {\n const didResult = did(path, value)\n if (didResult.success) return didResult\n } else {\n const handleResult = handle(path, value)\n if (handleResult.success) return handleResult\n }\n\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid did or a handle`),\n }\n}\n\nexport function nsid(path: string, value: string): ValidationResult {\n try {\n ensureValidNsid(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid nsid`),\n }\n }\n return { success: true, value }\n}\n\nexport function cid(path: string, value: string): ValidationResult {\n try {\n CID.parse(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a cid string`),\n }\n }\n return { success: true, value }\n}\n\n// The language format validates well-formed BCP 47 language tags: https://www.rfc-editor.org/info/bcp47\nexport function language(path: string, value: string): ValidationResult {\n if (validateLanguage(value)) {\n return { success: true, value }\n }\n return {\n success: false,\n error: new ValidationError(\n `${path} must be a well-formed BCP 47 language tag`,\n ),\n }\n}\n\nexport function tid(path: string, value: string): ValidationResult {\n if (isValidTid(value)) {\n return { success: true, value }\n }\n\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid TID`),\n }\n}\n\nexport function recordKey(path: string, value: string): ValidationResult {\n try {\n ensureValidRecordKey(value)\n } catch {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid Record Key`),\n }\n }\n return { success: true, value }\n}\n","import { CID } from 'multiformats/cid'\nimport { graphemeLen, utf8Len } from '@atproto/common-web'\nimport { Lexicons } from '../lexicons'\nimport {\n LexBoolean,\n LexBytes,\n LexInteger,\n LexString,\n LexUserType,\n ValidationError,\n ValidationResult,\n} from '../types'\nimport * as formats from './formats'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'boolean':\n return boolean(lexicons, path, def, value)\n case 'integer':\n return integer(lexicons, path, def, value)\n case 'string':\n return string(lexicons, path, def, value)\n case 'bytes':\n return bytes(lexicons, path, def, value)\n case 'cid-link':\n return cidLink(lexicons, path, def, value)\n case 'unknown':\n return unknown(lexicons, path, def, value)\n default:\n return {\n success: false,\n error: new ValidationError(`Unexpected lexicon type: ${def.type}`),\n }\n }\n}\n\nfunction boolean(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBoolean\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'boolean') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n } else if (type !== 'boolean') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a boolean`),\n }\n }\n\n // const\n if (typeof def.const === 'boolean') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n return { success: true, value }\n}\n\nfunction integer(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexInteger\n\n // type\n const type = typeof value\n if (type === 'undefined') {\n if (typeof def.default === 'number') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n } else if (!Number.isInteger(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an integer`),\n }\n }\n\n // const\n if (typeof def.const === 'number') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as number)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maximum\n if (typeof def.maximum === 'number') {\n if ((value as number) > def.maximum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be greater than ${def.maximum}`,\n ),\n }\n }\n }\n\n // minimum\n if (typeof def.minimum === 'number') {\n if ((value as number) < def.minimum) {\n return {\n success: false,\n error: new ValidationError(\n `${path} can not be less than ${def.minimum}`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nfunction string(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexString\n\n // type\n if (typeof value === 'undefined') {\n if (typeof def.default === 'string') {\n return { success: true, value: def.default }\n }\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n } else if (typeof value !== 'string') {\n return {\n success: false,\n error: new ValidationError(`${path} must be a string`),\n }\n }\n\n // const\n if (typeof def.const === 'string') {\n if (value !== def.const) {\n return {\n success: false,\n error: new ValidationError(`${path} must be ${def.const}`),\n }\n }\n }\n\n // enum\n if (Array.isArray(def.enum)) {\n if (!def.enum.includes(value as string)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be one of (${def.enum.join('|')})`,\n ),\n }\n }\n }\n\n // maxLength and minLength\n if (typeof def.minLength === 'number' || typeof def.maxLength === 'number') {\n // If the JavaScript string length * 3 is below the maximum limit,\n // its UTF8 length (which <= .length * 3) will also be below.\n if (typeof def.minLength === 'number' && value.length * 3 < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n\n // If the JavaScript string length * 3 is within the maximum limit,\n // its UTF8 length (which <= .length * 3) will also be within.\n // When there's no minimal length, this lets us skip the UTF8 length check.\n let canSkipUtf8LenChecks = false\n if (\n typeof def.minLength === 'undefined' &&\n typeof def.maxLength === 'number' &&\n value.length * 3 <= def.maxLength\n ) {\n canSkipUtf8LenChecks = true\n }\n\n if (!canSkipUtf8LenChecks) {\n const len = utf8Len(value)\n\n if (typeof def.maxLength === 'number') {\n if (len > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxLength} characters`,\n ),\n }\n }\n }\n\n if (typeof def.minLength === 'number') {\n if (len < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minLength} characters`,\n ),\n }\n }\n }\n }\n }\n\n // maxGraphemes and minGraphemes\n if (\n typeof def.maxGraphemes === 'number' ||\n typeof def.minGraphemes === 'number'\n ) {\n let needsMaxGraphemesCheck = false\n let needsMinGraphemesCheck = false\n\n if (typeof def.maxGraphemes === 'number') {\n if (value.length <= def.maxGraphemes) {\n // If the JavaScript string length (UTF-16) is within the maximum limit,\n // its grapheme length (which <= .length) will also be within.\n needsMaxGraphemesCheck = false\n } else {\n needsMaxGraphemesCheck = true\n }\n }\n\n if (typeof def.minGraphemes === 'number') {\n if (value.length < def.minGraphemes) {\n // If the JavaScript string length (UTF-16) is below the minimal limit,\n // its grapheme length (which <= .length) will also be below.\n // Fail early.\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minGraphemes} graphemes`,\n ),\n }\n } else {\n needsMinGraphemesCheck = true\n }\n }\n\n if (needsMaxGraphemesCheck || needsMinGraphemesCheck) {\n const len = graphemeLen(value)\n\n if (typeof def.maxGraphemes === 'number') {\n if (len > def.maxGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be longer than ${def.maxGraphemes} graphemes`,\n ),\n }\n }\n }\n\n if (typeof def.minGraphemes === 'number') {\n if (len < def.minGraphemes) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be shorter than ${def.minGraphemes} graphemes`,\n ),\n }\n }\n }\n }\n }\n\n if (typeof def.format === 'string') {\n switch (def.format) {\n case 'datetime':\n return formats.datetime(path, value)\n case 'uri':\n return formats.uri(path, value)\n case 'at-uri':\n return formats.atUri(path, value)\n case 'did':\n return formats.did(path, value)\n case 'handle':\n return formats.handle(path, value)\n case 'at-identifier':\n return formats.atIdentifier(path, value)\n case 'nsid':\n return formats.nsid(path, value)\n case 'cid':\n return formats.cid(path, value)\n case 'language':\n return formats.language(path, value)\n case 'tid':\n return formats.tid(path, value)\n case 'record-key':\n return formats.recordKey(path, value)\n }\n }\n\n return { success: true, value }\n}\n\nfunction bytes(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n def = def as LexBytes\n\n if (!value || !(value instanceof Uint8Array)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a byte array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if (value.byteLength > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be larger than ${def.maxLength} bytes`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if (value.byteLength < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not be smaller than ${def.minLength} bytes`,\n ),\n }\n }\n }\n\n return { success: true, value }\n}\n\nfunction cidLink(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n if (CID.asCID(value) === null) {\n return {\n success: false,\n error: new ValidationError(`${path} must be a CID`),\n }\n }\n\n return { success: true, value }\n}\n\nfunction unknown(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!value || typeof value !== 'object') {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n return { success: true, value }\n}\n","import { Lexicons } from '../lexicons'\nimport {\n LexArray,\n LexRefVariant,\n LexUserType,\n ValidationError,\n ValidationResult,\n isDiscriminatedObject,\n isObj,\n} from '../types'\nimport { toLexUri } from '../util'\nimport { blob } from './blob'\nimport { validate as validatePrimitive } from './primitives'\n\nexport function validate(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n switch (def.type) {\n case 'object':\n return object(lexicons, path, def, value)\n case 'array':\n return array(lexicons, path, def, value)\n case 'blob':\n return blob(lexicons, path, def, value)\n default:\n return validatePrimitive(lexicons, path, def, value)\n }\n}\n\nexport function array(\n lexicons: Lexicons,\n path: string,\n def: LexArray,\n value: unknown,\n): ValidationResult {\n // type\n if (!Array.isArray(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an array`),\n }\n }\n\n // maxLength\n if (typeof def.maxLength === 'number') {\n if ((value as Array<unknown>).length > def.maxLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have more than ${def.maxLength} elements`,\n ),\n }\n }\n }\n\n // minLength\n if (typeof def.minLength === 'number') {\n if ((value as Array<unknown>).length < def.minLength) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must not have fewer than ${def.minLength} elements`,\n ),\n }\n }\n }\n\n // items\n const itemsDef = def.items\n for (let i = 0; i < (value as Array<unknown>).length; i++) {\n const itemValue = value[i]\n const itemPath = `${path}/${i}`\n const res = validateOneOf(lexicons, itemPath, itemsDef, itemValue)\n if (!res.success) {\n return res\n }\n }\n\n return { success: true, value }\n}\n\nexport function object(\n lexicons: Lexicons,\n path: string,\n def: LexUserType,\n value: unknown,\n): ValidationResult {\n // type\n if (!isObj(value)) {\n return {\n success: false,\n error: new ValidationError(`${path} must be an object`),\n }\n }\n\n // properties\n let resultValue = value\n if ('properties' in def && def.properties != null) {\n for (const key in def.properties) {\n const keyValue = value[key]\n if (keyValue === null && def.nullable?.includes(key)) {\n continue\n }\n const propDef = def.properties[key]\n if (keyValue === undefined && !def.required?.includes(key)) {\n // Fast path for non-required undefined props.\n if (\n propDef.type === 'integer' ||\n propDef.type === 'boolean' ||\n propDef.type === 'string'\n ) {\n if (propDef.default === undefined) {\n continue\n }\n } else {\n // Other types have no defaults.\n continue\n }\n }\n const propPath = `${path}/${key}`\n const validated = validateOneOf(lexicons, propPath, propDef, keyValue)\n const propValue = validated.success ? validated.value : keyValue\n\n // Return error for bad validation, giving required rule precedence\n if (propValue === undefined) {\n if (def.required?.includes(key)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must have the property \"${key}\"`,\n ),\n }\n }\n } else {\n if (!validated.success) {\n return validated\n }\n }\n\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== keyValue) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n\nexport function validateOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false, // this is the only type constraint we need currently (used by xrpc body schema validators)\n): ValidationResult {\n let concreteDef: LexUserType\n\n if (def.type === 'union') {\n if (!isDiscriminatedObject(value)) {\n return {\n success: false,\n error: new ValidationError(\n `${path} must be an object which includes the \"$type\" property`,\n ),\n }\n }\n if (!refsContainType(def.refs, value.$type)) {\n if (def.closed) {\n return {\n success: false,\n error: new ValidationError(\n `${path} $type must be one of ${def.refs.join(', ')}`,\n ),\n }\n }\n return { success: true, value }\n } else {\n concreteDef = lexicons.getDefOrThrow(value.$type)\n }\n } else if (def.type === 'ref') {\n concreteDef = lexicons.getDefOrThrow(def.ref)\n } else {\n concreteDef = def\n }\n\n return mustBeObj\n ? object(lexicons, path, concreteDef, value)\n : validate(lexicons, path, concreteDef, value)\n}\n\n// to avoid bugs like #0189 this needs to handle both\n// explicit and implicit #main\nconst refsContainType = (refs: string[], type: string) => {\n const lexUri = toLexUri(type)\n if (refs.includes(lexUri)) {\n return true\n }\n\n if (lexUri.endsWith('#main')) {\n return refs.includes(lexUri.slice(0, -5))\n } else {\n return !lexUri.includes('#') && refs.includes(`${lexUri}#main`)\n }\n}\n","import { Lexicons } from '../lexicons'\nimport { LexXrpcParameters, ValidationError, ValidationResult } from '../types'\nimport { array } from './complex'\nimport * as PrimitiveValidators from './primitives'\n\nexport function params(\n lexicons: Lexicons,\n path: string,\n def: LexXrpcParameters,\n val: unknown,\n): ValidationResult<Record<string, unknown>> {\n // type\n const value = val && typeof val === 'object' ? val : {}\n\n const requiredProps = new Set(def.required ?? [])\n\n // properties\n let resultValue = value as Record<string, unknown>\n if (typeof def.properties === 'object') {\n for (const key in def.properties) {\n const propDef = def.properties[key]\n const validated =\n propDef.type === 'array'\n ? array(lexicons, key, propDef, value[key])\n : PrimitiveValidators.validate(lexicons, key, propDef, value[key])\n const propValue = validated.success ? validated.value : value[key]\n const propIsUndefined = typeof propValue === 'undefined'\n // Return error for bad validation, giving required rule precedence\n if (propIsUndefined && requiredProps.has(key)) {\n return {\n success: false,\n error: new ValidationError(`${path} must have the property \"${key}\"`),\n }\n } else if (!propIsUndefined && !validated.success) {\n return validated\n }\n // Adjust value based on e.g. applied defaults, cloning shallowly if there was a changed value\n if (propValue !== value[key]) {\n if (resultValue === value) {\n // Lazy shallow clone\n resultValue = { ...value }\n }\n resultValue[key] = propValue\n }\n }\n }\n\n return { success: true, value: resultValue }\n}\n","import { Lexicons } from './lexicons'\nimport {\n LexRecord,\n LexRefVariant,\n LexUserType,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription,\n} from './types'\nimport { object, validateOneOf } from './validators/complex'\nimport { params } from './validators/xrpc'\n\nexport function assertValidRecord(\n lexicons: Lexicons,\n def: LexRecord,\n value: unknown,\n) {\n const res = object(lexicons, 'Record', def.record, value)\n if (!res.success) throw res.error\n return res.value\n}\n\nexport function assertValidXrpcParams(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery | LexXrpcSubscription,\n value: unknown,\n) {\n if (def.parameters) {\n const res = params(lexicons, 'Params', def.parameters, value)\n if (!res.success) throw res.error\n return res.value\n }\n}\n\nexport function assertValidXrpcInput(\n lexicons: Lexicons,\n def: LexXrpcProcedure,\n value: unknown,\n) {\n if (def.input?.schema) {\n // loop: all input schema definitions\n return assertValidOneOf(lexicons, 'Input', def.input.schema, value, true)\n }\n}\n\nexport function assertValidXrpcOutput(\n lexicons: Lexicons,\n def: LexXrpcProcedure | LexXrpcQuery,\n value: unknown,\n) {\n if (def.output?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(lexicons, 'Output', def.output.schema, value, true)\n }\n}\n\nexport function assertValidXrpcMessage(\n lexicons: Lexicons,\n def: LexXrpcSubscription,\n value: unknown,\n) {\n if (def.message?.schema) {\n // loop: all output schema definitions\n return assertValidOneOf(\n lexicons,\n 'Message',\n def.message.schema,\n value,\n true,\n )\n }\n}\n\nfunction assertValidOneOf(\n lexicons: Lexicons,\n path: string,\n def: LexRefVariant | LexUserType,\n value: unknown,\n mustBeObj = false,\n) {\n const res = validateOneOf(lexicons, path, def, value, mustBeObj)\n if (!res.success) throw res.error\n return res.value\n}\n","import {\n InvalidLexiconError,\n LexRecord,\n LexUserType,\n LexiconDefNotFoundError,\n LexiconDoc,\n ValidationError,\n ValidationResult,\n isObj,\n} from './types'\nimport { toLexUri } from './util'\nimport {\n assertValidRecord,\n assertValidXrpcInput,\n assertValidXrpcMessage,\n assertValidXrpcOutput,\n assertValidXrpcParams,\n} from './validation'\nimport { object as validateObject } from './validators/complex'\n\n/**\n * A collection of compiled lexicons.\n */\nexport class Lexicons implements Iterable<LexiconDoc> {\n docs: Map<string, LexiconDoc> = new Map()\n defs: Map<string, LexUserType> = new Map()\n\n constructor(docs?: Iterable<LexiconDoc>) {\n if (docs) {\n for (const doc of docs) {\n this.add(doc)\n }\n }\n }\n\n /**\n * @example clone a lexicon:\n * ```ts\n * const clone = new Lexicons(originalLexicon)\n * ```\n *\n * @example get docs array:\n * ```ts\n * const docs = Array.from(lexicons)\n * ```\n */\n [Symbol.iterator](): Iterator<LexiconDoc> {\n return this.docs.values()\n }\n\n /**\n * Add a lexicon doc.\n */\n add(doc: LexiconDoc): void {\n const uri = toLexUri(doc.id)\n if (this.docs.has(uri)) {\n throw new Error(`${uri} has already been registered`)\n }\n\n // WARNING\n // mutates the object\n // -prf\n resolveRefUris(doc, uri)\n\n this.docs.set(uri, doc)\n for (const [defUri, def] of iterDefs(doc)) {\n this.defs.set(defUri, def)\n }\n }\n\n /**\n * Remove a lexicon doc.\n */\n remove(uri: string) {\n uri = toLexUri(uri)\n const doc = this.docs.get(uri)\n if (!doc) {\n throw new Error(`Unable to remove \"${uri}\": does not exist`)\n }\n for (const [defUri, _def] of iterDefs(doc)) {\n this.defs.delete(defUri)\n }\n this.docs.delete(uri)\n }\n\n /**\n * Get a lexicon doc.\n */\n get(uri: string): LexiconDoc | undefined {\n uri = toLexUri(uri)\n return this.docs.get(uri)\n }\n\n /**\n * Get a definition.\n */\n getDef(uri: string): LexUserType | undefined {\n uri = toLexUri(uri)\n return this.defs.get(uri)\n }\n\n /**\n * Get a def, throw if not found. Throws on not found.\n */\n getDefOrThrow<T extends LexUserType['type'] = LexUserType['type']>(\n uri: string,\n types?: readonly T[],\n ): Extract<LexUserType, { type: T }>\n getDefOrThrow(\n uri: string,\n types?: readonly LexUserType['type'][],\n ): LexUserType {\n const def = this.getDef(uri)\n if (!def) {\n throw new LexiconDefNotFoundError(`Lexicon not found: ${uri}`)\n }\n if (types && !types.includes(def.type)) {\n throw new InvalidLexiconError(\n `Not a ${types.join(' or ')} lexicon: ${uri}`,\n )\n }\n return def\n }\n\n /**\n * Validate a record or object.\n */\n validate(lexUri: string, value: unknown): ValidationResult {\n if (!isObj(value)) {\n throw new ValidationError(`Value must be an object`)\n }\n\n const lexUriNormalized = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUriNormalized, ['record', 'object'])\n\n if (def.type === 'record') {\n return validateObject(this, 'Record', def.record, value)\n } else if (def.type === 'object') {\n return validateObject(this, 'Object', def, value)\n } else {\n // shouldn't happen\n throw new InvalidLexiconError('Definition must be a record or object')\n }\n }\n\n /**\n * Validate a record and throw on any error.\n */\n assertValidRecord(lexUri: string, value: unknown) {\n if (!isObj(value)) {\n throw new ValidationError(`Record must be an object`)\n }\n if (!('$type' in value)) {\n throw new ValidationError(`Record/$type must be a string`)\n }\n const { $type } = value\n if (typeof $type !== 'string') {\n throw new ValidationError(`Record/$type must be a string`)\n }\n\n const lexUriNormalized = toLexUri(lexUri)\n if (toLexUri($type) !== lexUriNormalized) {\n throw new ValidationError(\n `Invalid $type: must be ${lexUriNormalized}, got ${$type}`,\n )\n }\n\n const def = this.getDefOrThrow(lexUriNormalized, ['record'])\n return assertValidRecord(this, def as LexRecord, value)\n }\n\n /**\n * Validate xrpc query params and throw on any error.\n */\n assertValidXrpcParams(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, [\n 'query',\n 'procedure',\n 'subscription',\n ])\n return assertValidXrpcParams(this, def, value)\n }\n\n /**\n * Validate xrpc input body and throw on any error.\n */\n assertValidXrpcInput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['procedure'])\n return assertValidXrpcInput(this, def, value)\n }\n\n /**\n * Validate xrpc output body and throw on any error.\n */\n assertValidXrpcOutput(lexUri: string, value: unknown) {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['query', 'procedure'])\n return assertValidXrpcOutput(this, def, value)\n }\n\n /**\n * Validate xrpc subscription message and throw on any error.\n */\n assertValidXrpcMessage<T = unknown>(lexUri: string, value: unknown): T {\n lexUri = toLexUri(lexUri)\n const def = this.getDefOrThrow(lexUri, ['subscription'])\n return assertValidXrpcMessage(this, def, value) as T\n }\n\n /**\n * Resolve a lex uri given a ref\n */\n resolveLexUri(lexUri: string, ref: string) {\n lexUri = toLexUri(lexUri)\n return toLexUri(ref, lexUri)\n }\n}\n\nfunction* iterDefs(doc: LexiconDoc): Generator<[string, LexUserType]> {\n for (const defId in doc.defs) {\n yield [`lex:${doc.id}#${defId}`, doc.defs[defId]]\n if (defId === 'main') {\n yield [`lex:${doc.id}`, doc.defs[defId]]\n }\n }\n}\n\n// WARNING\n// this method mutates objects\n// -prf\nfunction resolveRefUris(obj: any, baseUri: string): any {\n for (const k in obj) {\n if (obj.type === 'ref') {\n obj.ref = toLexUri(obj.ref, baseUri)\n } else if (obj.type === 'union') {\n obj.refs = obj.refs.map((ref) => toLexUri(ref, baseUri))\n } else if (Array.isArray(obj[k])) {\n obj[k] = obj[k].map((item: any) => {\n if (typeof item === 'string') {\n return item.startsWith('#') ? toLexUri(item, baseUri) : item\n } else if (item && typeof item === 'object') {\n return resolveRefUris(item, baseUri)\n }\n return item\n })\n } else if (obj[k] && typeof obj[k] === 'object') {\n obj[k] = resolveRefUris(obj[k], baseUri)\n }\n }\n return obj\n}\n","import { CID } from 'multiformats/cid'\nimport {\n IpldValue,\n JsonValue,\n check,\n ipldToJson,\n jsonToIpld,\n} from '@atproto/common-web'\nimport { BlobRef, jsonBlobRef } from './blob-refs'\n\nexport type LexValue =\n | IpldValue\n | BlobRef\n | Array<LexValue>\n | { [key: string]: LexValue }\n\nexport type RepoRecord = Record<string, LexValue>\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\nexport const lexToIpld = (val: LexValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => lexToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return val.original\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = lexToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const ipldToLex = (val: IpldValue): LexValue => {\n // map arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToLex(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, using hints to avoid expensive is() check\n if (\n (val['$type'] === 'blob' ||\n (typeof val['cid'] === 'string' &&\n typeof val['mimeType'] === 'string')) &&\n check.is(val, jsonBlobRef)\n ) {\n return BlobRef.fromJsonRef(val)\n }\n // retain cids, bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // map plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToLex(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const lexToJson = (val: LexValue): JsonValue => {\n return ipldToJson(lexToIpld(val))\n}\n\nexport const stringifyLex = (val: LexValue): string => {\n return JSON.stringify(lexToJson(val))\n}\n\nexport const jsonToLex = (val: JsonValue): LexValue => {\n return ipldToLex(jsonToIpld(val))\n}\n\nexport const jsonStringToLex = (val: string): LexValue => {\n return jsonToLex(JSON.parse(val))\n}\n","export * from './types'\nexport * from './lexicons'\nexport * from './blob-refs'\nexport * from './serialize'\n","import * as v from \"valibot\";\nimport { convertBlob, convertCidLink, convertToken } from \"./converters/atproto.js\";\nimport { convertArray, convertObject, convertRef, convertUnion } from \"./converters/complex.js\";\nimport {\n convertBoolean,\n convertBytes,\n convertInteger,\n convertString,\n convertUnknown,\n} from \"./converters/primitives.js\";\nimport {\n convertProcedure,\n convertQuery,\n convertSubscription,\n type ProcedureValidators,\n type QueryValidators,\n type SubscriptionValidators,\n} from \"./converters/xrpc.js\";\nimport type {\n ConverterContext,\n LexArray,\n LexBlob,\n LexBoolean,\n LexBytes,\n LexCidLink,\n LexInteger,\n LexObject,\n LexRecord,\n LexRef,\n LexRefUnion,\n LexString,\n LexToken,\n LexUnknown,\n LexUserType,\n LexXrpcProcedure,\n LexXrpcQuery,\n LexXrpcSubscription\n} from \"./types.js\";\n\n// Flexible input type that accepts both LexiconDoc and const objects\nexport interface LexiconInput {\n lexicon: 1;\n id: string;\n defs: Record<string, unknown>;\n description?: string;\n revision?: number;\n}\n\n// Options for lexiconToValibot\nexport interface LexiconToValibotOptions {\n /** External ref schemas (e.g., com.atproto.repo.strongRef) */\n externalRefs?: Record<string, v.GenericSchema>;\n /** Format for blob validation: 'sdk' for parsing fetched records, 'wire' for outgoing. Default: 'sdk' */\n format?: 'sdk' | 'wire';\n}\n\nexport type { ProcedureValidators, QueryValidators, SubscriptionValidators };\n\ntype XrpcResult = QueryValidators | ProcedureValidators | SubscriptionValidators;\n\nfunction convertType(schema: unknown, ctx: ConverterContext): v.GenericSchema {\n if (typeof schema !== \"object\" || schema === null) {\n throw new Error(`Invalid schema: expected object, got ${typeof schema}`);\n }\n\n const schemaObj = schema as { type?: string };\n\n switch (schemaObj.type) {\n // Primitives\n case \"boolean\":\n return convertBoolean(schema as LexBoolean);\n case \"integer\":\n return convertInteger(schema as LexInteger);\n case \"string\":\n return convertString(schema as LexString);\n case \"unknown\":\n return convertUnknown(schema as LexUnknown);\n\n // IPLD types\n case \"bytes\":\n return convertBytes(schema as LexBytes);\n case \"cid-link\":\n return convertCidLink(schema as LexCidLink);\n\n // AT Protocol types\n case \"blob\":\n return convertBlob(schema as LexBlob, ctx.blobFormat);\n case \"token\":\n return convertToken(schema as LexToken);\n\n // Complex types\n case \"array\":\n return convertArray(schema as LexArray, ctx, convertType);\n case \"object\":\n return convertObject(schema as LexObject, ctx, convertType);\n case \"ref\":\n return convertRef(schema as LexRef, ctx);\n case \"union\":\n return convertUnion(schema as LexRefUnion, ctx);\n\n // Record type\n case \"record\":\n return convertObject((schema as LexRecord).record, ctx, convertType);\n\n default:\n throw new Error(`Unknown schema type: ${schemaObj.type}`);\n }\n}\n\n// Convert XRPC def - returns validators object\nfunction convertXrpcDef(schema: unknown, ctx: ConverterContext): XrpcResult {\n if (typeof schema !== \"object\" || schema === null) {\n throw new Error(`Invalid schema: expected object, got ${typeof schema}`);\n }\n\n const schemaObj = schema as { type?: string };\n\n switch (schemaObj.type) {\n case \"query\":\n return convertQuery(schema as LexXrpcQuery, ctx, convertType);\n case \"procedure\":\n return convertProcedure(schema as LexXrpcProcedure, ctx, convertType);\n case \"subscription\":\n return convertSubscription(schema as LexXrpcSubscription, ctx, convertType);\n default:\n throw new Error(`Not an XRPC type: ${schemaObj.type}`);\n }\n}\n\n// Check if a def is an XRPC type\nfunction isXrpcDef(schema: unknown): boolean {\n if (typeof schema !== \"object\" || schema === null) return false;\n const type = (schema as { type?: string }).type;\n return type === \"query\" || type === \"procedure\" || type === \"subscription\";\n}\n\n// Check if a def is a record type\nfunction isRecordDef(schema: unknown): boolean {\n if (typeof schema !== \"object\" || schema === null) return false;\n return (schema as { type?: string }).type === \"record\";\n}\n\nfunction createRefResolver(\n lexiconId: string,\n defs: Record<string, LexUserType>,\n cache: Map<string, v.GenericSchema>,\n externalRefs: Record<string, v.GenericSchema> = {},\n blobFormat: 'sdk' | 'wire' = 'sdk'\n): (ref: string) => v.GenericSchema {\n return (ref: string) => {\n // Parse the ref - could be:\n // - \"#defName\" (local ref)\n // - \"com.example.lexicon#defName\" (external ref)\n // - \"com.example.lexicon\" (main def of external lexicon)\n\n let resolvedRef = ref;\n\n if (ref.startsWith(\"#\")) {\n // Local ref\n resolvedRef = `${lexiconId}${ref}`;\n } else if (!ref.includes(\"#\")) {\n // External ref to main def\n resolvedRef = `${ref}#main`;\n }\n\n // Check cache first\n if (cache.has(resolvedRef)) {\n return cache.get(resolvedRef)!;\n }\n\n // Check external refs (try both original and resolved)\n if (externalRefs[ref]) {\n cache.set(resolvedRef, externalRefs[ref]);\n return externalRefs[ref];\n }\n if (externalRefs[resolvedRef]) {\n cache.set(resolvedRef, externalRefs[resolvedRef]);\n return externalRefs[resolvedRef];\n }\n\n // Parse the full ref\n const [nsid, defName] = resolvedRef.includes(\"#\")\n ? resolvedRef.split(\"#\")\n : [resolvedRef, \"main\"];\n\n // Only handle local refs\n if (nsid !== lexiconId) {\n // External ref not found in externalRefs\n console.warn(`External ref not resolved: ${ref} - provide it in externalRefs option`);\n return v.unknown();\n }\n\n const def = defs[defName];\n if (!def) {\n throw new Error(`Ref not found: ${ref} (resolved to ${resolvedRef})`);\n }\n\n // Create context for conversion\n const ctx: ConverterContext = {\n lexiconId,\n defs,\n resolveRef: createRefResolver(lexiconId, defs, cache, externalRefs, blobFormat),\n blobFormat,\n };\n\n // Convert and cache\n const schema = convertType(def, ctx);\n cache.set(resolvedRef, schema);\n return schema;\n };\n}\n\nimport type { BlobFormat, InferLexiconValidators, InferXrpcValidators } from \"./infer.js\";\n\n// Helper type to convert schema map to output type map\ntype InferSchemaOutputs<T extends Record<string, v.GenericSchema>> = {\n [K in keyof T]: v.InferOutput<T[K]>;\n};\n\n/**\n * Convert a lexicon to valibot schemas for records and objects.\n * Skips XRPC types (query, procedure, subscription) - use xrpcToValibot for those.\n */\nexport function lexiconToValibot<\n T extends LexiconInput,\n ExtRefs extends Record<string, v.GenericSchema> = {},\n Format extends BlobFormat = 'sdk'\n>(\n lexicon: T,\n options: { externalRefs?: ExtRefs; format?: Format } = {}\n): InferLexiconValidators<T, InferSchemaOutputs<ExtRefs>, Format> {\n const blobFormat = options.format ?? 'sdk';\n const cache = new Map<string, v.GenericSchema>();\n const resolveRef = createRefResolver(\n lexicon.id,\n lexicon.defs as Record<string, LexUserType>,\n cache,\n options.externalRefs ?? {},\n blobFormat\n );\n\n const ctx: ConverterContext = {\n lexiconId: lexicon.id,\n defs: lexicon.defs,\n resolveRef,\n blobFormat,\n };\n\n const result: Record<string, v.GenericSchema> = {};\n\n for (const [defName, def] of Object.entries(lexicon.defs)) {\n // Skip XRPC types\n if (isXrpcDef(def)) continue;\n\n let schema = convertType(def, ctx);\n\n // For wire format, wrap record types with $type\n if (blobFormat === 'wire' && isRecordDef(def)) {\n const $type = defName === 'main' ? lexicon.id : `${lexicon.id}#${defName}`;\n schema = v.object({\n $type: v.literal($type),\n ...('entries' in schema ? (schema as v.ObjectSchema<v.ObjectEntries, undefined>).entries : {}),\n });\n }\n\n result[defName] = schema;\n }\n\n return result as InferLexiconValidators<T, InferSchemaOutputs<ExtRefs>, Format>;\n}\n\n/**\n * Convert a lexicon to valibot validators for XRPC endpoints.\n * Only handles query, procedure, and subscription types.\n */\nexport function xrpcToValibot<\n T extends LexiconInput,\n ExtRefs extends Record<string, v.GenericSchema> = {},\n Format extends BlobFormat = 'sdk'\n>(\n lexicon: T,\n options: { externalRefs?: ExtRefs; format?: Format } = {}\n): InferXrpcValidators<T, InferSchemaOutputs<ExtRefs>, Format> {\n const blobFormat = options.format ?? 'sdk';\n const cache = new Map<string, v.GenericSchema>();\n const resolveRef = createRefResolver(\n lexicon.id,\n lexicon.defs as Record<string, LexUserType>,\n cache,\n options.externalRefs ?? {},\n blobFormat\n );\n\n const ctx: ConverterContext = {\n lexiconId: lexicon.id,\n defs: lexicon.defs,\n resolveRef,\n blobFormat,\n };\n\n const result: Record<string, XrpcResult> = {};\n\n for (const [defName, def] of Object.entries(lexicon.defs)) {\n // Only handle XRPC types\n if (!isXrpcDef(def)) continue;\n result[defName] = convertXrpcDef(def, ctx);\n }\n\n return result as InferXrpcValidators<T, InferSchemaOutputs<ExtRefs>, Format>;\n}\n\n// Re-export valibot's InferOutput for convenience\nexport type { InferOutput } from \"valibot\";\n// Re-export built-in AT Protocol refs\nexport { atprotoRefs, type AtprotoRefs } from \"./atproto-refs.js\";\n\n// Re-export inference types\nexport type { BlobFormat, InferLexiconOutput, InferLexiconValidators, InferLexType } from \"./infer.js\";\n// Re-export types\nexport type { LexiconDoc, LexUserType } from \"./types.js\";\n","import { BlobRef } from \"@atproto/lexicon\";\nimport * as v from \"valibot\";\nimport type { BlobFormat, LexBlob, LexCidLink, LexToken } from \"../types.js\";\n\n// Blob reference types for AT Protocol\n\n// Wire format: what gets sent to/from PDS\ntype WireBlobRef = {\n $type: \"blob\";\n ref: { $link: string };\n mimeType: string;\n size: number;\n};\n\n// Untyped/legacy format\ntype UntypedBlobRef = {\n cid: string;\n mimeType: string;\n};\n\n// Check for wire format: { $type: \"blob\", ref: { $link: string }, ... }\nfunction isWireBlobRef(value: unknown): value is WireBlobRef {\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as Record<string, unknown>;\n return (\n obj.$type === \"blob\" &&\n typeof obj.ref === \"object\" &&\n obj.ref !== null &&\n typeof (obj.ref as Record<string, unknown>).$link === \"string\" &&\n typeof obj.mimeType === \"string\" &&\n typeof obj.size === \"number\"\n );\n}\n\n// Check for SDK BlobRef class instance\nfunction isSdkBlobRef(value: unknown): value is BlobRef {\n return value instanceof BlobRef;\n}\n\nfunction isUntypedBlobRef(value: unknown): value is UntypedBlobRef {\n if (typeof value !== \"object\" || value === null) return false;\n const obj = value as Record<string, unknown>;\n return typeof obj.cid === \"string\" && typeof obj.mimeType === \"string\";\n}\n\n// Validator for SDK format (incoming from PDS via SDK)\nconst blobSdkSchema = v.custom<BlobRef | UntypedBlobRef>(\n (value) => isSdkBlobRef(value) || isUntypedBlobRef(value),\n \"Expected BlobRef (SDK format)\"\n);\n\n// Validator for wire format (outgoing to PDS)\nconst blobWireSchema = v.custom<WireBlobRef | UntypedBlobRef>(\n (value) => isWireBlobRef(value) || isUntypedBlobRef(value),\n \"Expected BlobRef (wire format)\"\n);\n\nexport function convertBlob(schema: LexBlob, format: BlobFormat): v.GenericSchema {\n // For now, we validate the structure but don't enforce accept/maxSize at runtime\n // Those would require access to the actual blob data\n return format === 'sdk' ? blobSdkSchema : blobWireSchema;\n}\n\n// CID link is represented as an object with $link property containing the CID string\nconst cidLinkSchema = v.object({\n $link: v.string(),\n});\n\nexport function convertCidLink(_schema: LexCidLink): v.GenericSchema {\n return cidLinkSchema;\n}\n\nexport function convertToken(schema: LexToken): v.GenericSchema {\n // Token is essentially a string literal representing a constant identifier\n // The value should be the full NSID#name reference\n return v.string();\n}\n","import * as v from \"valibot\";\nimport type { LexArray, LexObject, LexRef, LexRefUnion, ConverterContext } from \"../types.js\";\n\nexport function convertArray(\n schema: LexArray,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n const itemsSchema = convertType(schema.items, ctx);\n\n const checks: v.PipeItem<unknown[], unknown[], v.BaseIssue<unknown>>[] = [];\n\n if (schema.minLength !== undefined) {\n checks.push(v.minLength(schema.minLength));\n }\n if (schema.maxLength !== undefined) {\n checks.push(v.maxLength(schema.maxLength));\n }\n\n if (checks.length === 0) {\n return v.array(itemsSchema);\n }\n\n return v.pipe(v.array(itemsSchema), ...checks);\n}\n\nexport function convertObject(\n schema: LexObject,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n const properties: Record<string, v.GenericSchema> = {};\n const requiredSet = new Set(schema.required ?? []);\n const nullableSet = new Set(schema.nullable ?? []);\n\n if (schema.properties) {\n for (const [key, prop] of Object.entries(schema.properties)) {\n let propSchema = convertType(prop, ctx);\n\n // Handle nullable\n if (nullableSet.has(key)) {\n propSchema = v.nullable(propSchema);\n }\n\n // Handle optional (not in required list)\n if (!requiredSet.has(key)) {\n propSchema = v.optional(propSchema);\n }\n\n properties[key] = propSchema;\n }\n }\n\n return v.object(properties);\n}\n\nexport function convertRef(schema: LexRef, ctx: ConverterContext): v.GenericSchema {\n return v.lazy(() => ctx.resolveRef(schema.ref));\n}\n\nexport function convertUnion(\n schema: LexRefUnion,\n ctx: ConverterContext\n): v.GenericSchema {\n if (schema.refs.length === 0) {\n return v.never();\n }\n\n if (schema.refs.length === 1) {\n return v.lazy(() => ctx.resolveRef(schema.refs[0]));\n }\n\n // Create a union of lazy refs - we know there are at least 2 refs from the check above\n const [first, second, ...rest] = schema.refs.map((ref) =>\n v.lazy(() => ctx.resolveRef(ref))\n );\n\n return v.union([first, second, ...rest]);\n}\n","import * as v from \"valibot\";\nimport type { LexBoolean, LexInteger, LexString, LexUnknown, LexBytes } from \"../types.js\";\n\nexport function convertBoolean(schema: LexBoolean): v.GenericSchema {\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n return v.boolean();\n}\n\nexport function convertInteger(schema: LexInteger): v.GenericSchema {\n const checks: v.PipeItem<number, number, v.BaseIssue<unknown>>[] = [v.integer()];\n\n if (schema.minimum !== undefined) {\n checks.push(v.minValue(schema.minimum));\n }\n if (schema.maximum !== undefined) {\n checks.push(v.maxValue(schema.maximum));\n }\n\n if (schema.enum !== undefined && schema.enum.length > 0) {\n return v.picklist(schema.enum);\n }\n\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n\n return v.pipe(v.number(), ...checks);\n}\n\nconst graphemeSegmenter = new Intl.Segmenter(\"en\", { granularity: \"grapheme\" });\n\nfunction countGraphemes(str: string): number {\n return [...graphemeSegmenter.segment(str)].length;\n}\n\nexport function convertString(schema: LexString): v.GenericSchema {\n const checks: v.PipeItem<string, string, v.BaseIssue<unknown>>[] = [];\n\n if (schema.minLength !== undefined) {\n checks.push(v.minLength(schema.minLength));\n }\n if (schema.maxLength !== undefined) {\n checks.push(v.maxLength(schema.maxLength));\n }\n\n if (schema.minGraphemes !== undefined) {\n const min = schema.minGraphemes;\n checks.push(\n v.check(\n (value) => countGraphemes(value) >= min,\n `String must have at least ${min} grapheme(s)`\n )\n );\n }\n if (schema.maxGraphemes !== undefined) {\n const max = schema.maxGraphemes;\n checks.push(\n v.check(\n (value) => countGraphemes(value) <= max,\n `String must have at most ${max} grapheme(s)`\n )\n );\n }\n\n if (schema.enum !== undefined && schema.enum.length > 0) {\n return v.picklist(schema.enum);\n }\n\n if (schema.const !== undefined) {\n return v.literal(schema.const);\n }\n\n if (schema.format !== undefined) {\n switch (schema.format) {\n case \"datetime\":\n checks.push(v.isoTimestamp());\n break;\n case \"uri\":\n checks.push(v.url());\n break;\n case \"at-uri\":\n checks.push(v.regex(/^at:\\/\\/[a-zA-Z0-9._:%-]+\\/[a-zA-Z0-9.]+\\/[a-zA-Z0-9._~:@!$&')(*+,;=-]+$/));\n break;\n case \"did\":\n checks.push(v.regex(/^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$/));\n break;\n case \"handle\":\n checks.push(v.regex(/^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/));\n break;\n case \"nsid\":\n checks.push(v.regex(/^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\\.[a-zA-Z]([a-zA-Z]{0,61}[a-zA-Z])?)$/));\n break;\n case \"cid\":\n checks.push(v.regex(/^[a-zA-Z0-9+/=]+$/));\n break;\n case \"tid\":\n checks.push(v.regex(/^[234567abcdefghijklmnopqrstuvwxyz]{13}$/));\n break;\n case \"record-key\":\n checks.push(v.regex(/^[a-zA-Z0-9._:~-]+$/));\n break;\n case \"language\":\n checks.push(v.regex(/^[a-zA-Z]{2,3}(-[a-zA-Z0-9]+)*$/));\n break;\n case \"at-identifier\":\n // at-identifier can be a handle or a DID\n checks.push(v.regex(/^(did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]|([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$/));\n break;\n }\n }\n\n if (checks.length === 0) {\n return v.string();\n }\n\n return v.pipe(v.string(), ...checks);\n}\n\nexport function convertUnknown(_schema: LexUnknown): v.GenericSchema {\n return v.unknown();\n}\n\nexport function convertBytes(schema: LexBytes): v.GenericSchema {\n const baseSchema = v.instance(Uint8Array);\n\n if (schema.minLength === undefined && schema.maxLength === undefined) {\n return baseSchema;\n }\n\n return v.pipe(\n baseSchema,\n v.check((value) => {\n if (schema.minLength !== undefined && value.length < schema.minLength) {\n return false;\n }\n if (schema.maxLength !== undefined && value.length > schema.maxLength) {\n return false;\n }\n return true;\n }, `Bytes length must be between ${schema.minLength ?? 0} and ${schema.maxLength ?? \"∞\"}`)\n );\n}\n","import * as v from \"valibot\";\nimport type { LexXrpcQuery, LexXrpcProcedure, LexXrpcSubscription, ConverterContext } from \"../types.js\";\n\nexport interface QueryValidators {\n parameters: v.GenericSchema;\n output: v.GenericSchema;\n}\n\nexport interface ProcedureValidators {\n parameters: v.GenericSchema;\n input: v.GenericSchema;\n output: v.GenericSchema;\n}\n\nexport interface SubscriptionValidators {\n parameters: v.GenericSchema;\n message: v.GenericSchema;\n}\n\n// Convert params object to valibot schema\nfunction convertParams(\n params: { type: \"params\"; required?: string[]; properties?: Record<string, unknown> } | undefined,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n if (!params?.properties) {\n return v.object({});\n }\n\n const properties: Record<string, v.GenericSchema> = {};\n const requiredSet = new Set(params.required ?? []);\n\n for (const [key, prop] of Object.entries(params.properties)) {\n let propSchema = convertType(prop, ctx);\n\n if (!requiredSet.has(key)) {\n propSchema = v.optional(propSchema);\n }\n\n properties[key] = propSchema;\n }\n\n return v.object(properties);\n}\n\n// Convert body (input/output/message) to valibot schema\nfunction convertBody(\n body: { schema?: unknown } | undefined,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): v.GenericSchema {\n if (!body?.schema) {\n return v.unknown();\n }\n return convertType(body.schema, ctx);\n}\n\nexport function convertQuery(\n schema: LexXrpcQuery,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): QueryValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n output: convertBody(schema.output, ctx, convertType),\n };\n}\n\nexport function convertProcedure(\n schema: LexXrpcProcedure,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): ProcedureValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n input: convertBody(schema.input, ctx, convertType),\n output: convertBody(schema.output, ctx, convertType),\n };\n}\n\nexport function convertSubscription(\n schema: LexXrpcSubscription,\n ctx: ConverterContext,\n convertType: (type: unknown, ctx: ConverterContext) => v.GenericSchema\n): SubscriptionValidators {\n return {\n parameters: convertParams(schema.parameters, ctx, convertType),\n message: convertBody(schema.message, ctx, convertType),\n };\n}\n","// Built-in AT Protocol type validators\n// Users can spread these into externalRefs option\n\nimport * as v from \"valibot\";\n\n// com.atproto.repo.strongRef - reference to another record\nconst strongRef = v.object({\n uri: v.string(),\n cid: v.string(),\n});\n\n// com.atproto.label.selfLabel\nconst selfLabel = v.object({\n val: v.string(),\n});\n\n// com.atproto.label.selfLabels\nconst selfLabels = v.object({\n values: v.array(selfLabel),\n});\n\nexport const atprotoRefs = {\n \"com.atproto.repo.strongRef\": strongRef,\n \"com.atproto.repo.strongRef#main\": strongRef,\n \"com.atproto.label.defs#selfLabel\": selfLabel,\n \"com.atproto.label.defs#selfLabels\": selfLabels,\n} as const;\n\nexport type AtprotoRefs = typeof atprotoRefs;"],"mappings":"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","names":["util","object","array","objectUtil","__importDefault","__importDefault","errorUtil","custom","check","regex","ctx","minLength","maxLength","result","issues","elements","processed","r","ZodFirstPartyTypeKind","__createBinding","__exportStar","exports","__createBinding","__setModuleDefault","v","__importStar","__exportStar","exports","v","__exportStar","v","date","__exportStar","object","v","require_varint","bytes","i","j","string","bytes","encode","decode","string","version","bytes","digest","cid","v","maxLength","clockid","v","d","b","__assign","o","require_identity","string","string","Buffer","array","Buffer","value","countGraphemes","cat","string","require_json","service","__importStar","__exportStar","BlobRef","require_dist","t","r","n","e","i","o","a","u","d","__importStar","boolean","integer","string","unknown","array","object","__importStar","__exportStar","v","v","convertType","v","v","convertType","v"]}
|