@onelyid/client 0.2.0
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 +62 -0
- package/dist/index.js +11091 -0
- package/dist/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
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+common-web@0.4.15/node_modules/@atproto/common-web/src/check.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/util.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/arrays.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/async.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/tid.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../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/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/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/object.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/lib/nodejs-buffer.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/uint8array-concat.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/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.10/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.10/node_modules/@atproto/lex-data/src/uint8array-to-base64.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/uint8array.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/cid.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/blob.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/lex-equals.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/lex-error.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/lex.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/utf8-from-base64.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.10/node_modules/@atproto/lex-data/src/utf8-grapheme-len.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/utf8-len.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/utf8-to-base64.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/utf8.ts","../../../node_modules/.pnpm/@atproto+lex-data@0.0.10/node_modules/@atproto/lex-data/src/index.ts","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/src/bytes.ts","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/dist/json.js","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/src/link.ts","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/src/blob.ts","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/src/lex-json.ts","../../../node_modules/.pnpm/@atproto+lex-json@0.0.10/node_modules/@atproto/lex-json/src/index.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/ipld.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/retry.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/types.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/times.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/strings.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/did-doc.ts","../../../node_modules/.pnpm/@atproto+common-web@0.4.15/node_modules/@atproto/common-web/src/index.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/util.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/types.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/blob-refs.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/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.6.1/node_modules/@atproto/lexicon/src/validators/formats.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/validators/primitives.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/validators/complex.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/validators/xrpc.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/validation.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/lexicons.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/serialize.ts","../../../node_modules/.pnpm/@atproto+lexicon@0.6.1/node_modules/@atproto/lexicon/src/index.ts","../src/index.ts","../src/middleware.ts","../src/db/index.ts","../src/oauth-client.ts","../src/storage.ts","../src/utils/req-utils.ts","../src/utils/utils.ts","../src/const.ts","../src/lock.ts","../src/db/queries.ts","../src/id-resolver.ts","../src/session.ts","../../internal/generated/lexicon/lexicons.ts","../../internal/generated/lexicon/util.ts","../../internal/generated/lexicon/types/app/bsky/actor/profile.ts","../src/data/trusted.json"],"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","// 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 for (const k of Object.keys(obj)) {\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","'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","'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","/**\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","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 concat(list: readonly Uint8Array[], totalLength?: number): NodeJSBuffer\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 : /* v8 ignore next -- @preserve */ null\n","import { NodeJSBuffer } from './lib/nodejs-buffer.js'\n\nconst Buffer = NodeJSBuffer\n\nexport const ui8ConcatNode = Buffer\n ? function ui8ConcatNode(array: readonly Uint8Array[]): Uint8Array {\n return Buffer.concat(array)\n }\n : /* v8 ignore next -- @preserve */ null\n\nexport function ui8ConcatPonyfill(array: readonly Uint8Array[]): Uint8Array {\n let totalLength = 0\n for (const arr of array) totalLength += arr.length\n const result = new Uint8Array(totalLength)\n let offset = 0\n for (const arr of array) {\n result.set(arr, offset)\n offset += arr.length\n }\n return result\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 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","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 : /* v8 ignore next -- @preserve */ 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 : /* v8 ignore next -- @preserve */ 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 : /* v8 ignore next -- @preserve */ 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 : /* v8 ignore next -- @preserve */ 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 { ui8ConcatNode, ui8ConcatPonyfill } from './uint8array-concat.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 =\n /* v8 ignore next -- @preserve */ toBase64Native ??\n toBase64Node ??\n 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 =\n /* v8 ignore next -- @preserve */ fromBase64Native ??\n fromBase64Node ??\n fromBase64Ponyfill\n\n/* v8 ignore next -- @preserve */\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\nexport function ifUint8Array(input: unknown): Uint8Array | undefined {\n if (input instanceof Uint8Array) {\n return input\n }\n\n return undefined\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\nexport const ui8Concat =\n /* v8 ignore next -- @preserve */ ui8ConcatNode ?? ui8ConcatPonyfill\n","import { CID } from 'multiformats/cid'\nimport { create as createDigest } from 'multiformats/hashes/digest'\nimport { sha256, sha512 } from 'multiformats/hashes/sha2'\nimport { isObject } from './object.js'\nimport { ui8Equals } from './uint8array.js'\n\nexport const DAG_CBOR_MULTICODEC = 0x71 // DRISL conformant DAG-CBOR\nexport type DAG_CBOR_MULTICODEC = typeof DAG_CBOR_MULTICODEC\n\nexport const RAW_MULTICODEC = 0x55 // raw binary codec used in DASL CIDs\nexport type RAW_MULTICODEC = typeof RAW_MULTICODEC\n\nexport const SHA256_MULTIHASH = sha256.code\nexport type SHA256_MULTIHASH = typeof SHA256_MULTIHASH\n\nexport const SHA512_MULTIHASH = sha512.code\nexport type SHA512_MULTIHASH = typeof SHA512_MULTIHASH\n\nexport interface Multihash<TCode extends number = number> {\n /**\n * Code of the multihash\n */\n code: TCode\n\n /**\n * Raw digest\n */\n digest: Uint8Array\n}\n\nexport function multihashEquals(a: Multihash, b: Multihash): boolean {\n return a.code === b.code && ui8Equals(a.digest, b.digest)\n}\n\ndeclare module 'multiformats/cid' {\n /**\n * @deprecated use the {@link Cid} interface from `@atproto/lex-data`, and\n * related helpers ({@link isCid}, {@link ifCid}, {@link asCid},\n * {@link parseCid}, {@link decodeCid}), 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`, `@atproto/lex-data` provides its own\n * stable {@link Cid} 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 { /** @deprecated */ CID }\n\n/**\n * Converts a {@link Cid} to a multiformats {@link CID} instance.\n *\n * @deprecated Packages depending on `@atproto/lex-data` should use the\n * {@link Cid} interface instead of relying on `multiformats`'s {@link CID}\n * implementation directly. This is to avoid compatibility issues, and in order\n * to allow better portability, compatibility and future updates.\n */\nexport function asMultiformatsCID<\n TVersion extends 0 | 1 = 0 | 1,\n TCode extends number = number,\n TMultihashCode extends number = number,\n>(input: Cid<TVersion, TCode, TMultihashCode>) {\n const cid =\n // Already a multiformats CID instance\n CID.asCID(input) ??\n // Create a new multiformats CID instance\n CID.create(\n input.version,\n input.code,\n createDigest(input.multihash.code, input.multihash.digest),\n )\n\n // @NOTE: the \"satisfies\" operator is used here to ensure that the Cid\n // interface is indeed compatible with multiformats' CID implementation, which\n // allows us to safely rely on multiformats' CID implementation where Cid are\n // needed.\n return cid satisfies Cid as CID & Cid<TVersion, TCode, TMultihashCode>\n}\n\n/**\n * Interface for working with CIDs\n */\nexport interface Cid<\n TVersion extends 0 | 1 = 0 | 1,\n TCode extends number = number,\n TMultihashCode extends number = number,\n> {\n // @NOTE This interface is compatible with multiformats' CID implementation\n // which we are using under the hood.\n\n readonly version: TVersion\n readonly code: TCode\n readonly multihash: Multihash<TMultihashCode>\n\n /**\n * Binary representation of the whole CID.\n */\n readonly bytes: Uint8Array\n\n equals(other: Cid): boolean\n toString(): string\n}\n\n/**\n * Represents the cid of raw binary data (like media blobs).\n *\n * The use of {@link SHA256_MULTIHASH} is recommended but not required for raw CIDs.\n *\n * @see {@link https://atproto.com/specs/data-model#link-and-cid-formats ATproto Data Model - Link and CID Formats}\n */\nexport type RawCid = Cid<1, RAW_MULTICODEC>\n\nexport function isRawCid(cid: Cid): cid is RawCid {\n return cid.version === 1 && cid.code === RAW_MULTICODEC\n}\n\n/**\n * Represents a DASL compliant CID.\n * @see {@link https://dasl.ing/cid.html DASL-CIDs}\n */\nexport type DaslCid = Cid<\n 1,\n RAW_MULTICODEC | DAG_CBOR_MULTICODEC,\n SHA256_MULTIHASH\n>\n\nexport function isDaslCid(cid: Cid): cid is DaslCid {\n return (\n cid.version === 1 &&\n (cid.code === RAW_MULTICODEC || cid.code === DAG_CBOR_MULTICODEC) &&\n cid.multihash.code === SHA256_MULTIHASH &&\n cid.multihash.digest.byteLength === 32 // Should always be 32 bytes (256 bits) for SHA-256, but double-checking anyways\n )\n}\n\n/**\n * Represents the cid of ATProto DAG-CBOR data (like repository MST nodes).\n * @see {@link https://atproto.com/specs/data-model#link-and-cid-formats ATproto Data Model - Link and CID Formats}\n */\nexport type CborCid = Cid<1, DAG_CBOR_MULTICODEC, SHA256_MULTIHASH>\n\nexport function isCborCid(cid: Cid): cid is CborCid {\n return cid.code === DAG_CBOR_MULTICODEC && isDaslCid(cid)\n}\n\nexport type CheckCidOptions = {\n flavor?: 'raw' | 'cbor' | 'dasl'\n}\n\nexport type InferCheckedCid<TOptions> = TOptions extends { flavor: 'raw' }\n ? RawCid\n : TOptions extends { flavor: 'cbor' }\n ? CborCid\n : Cid\n\n/**\n * Type guard to check whether a {@link Cid} instance meets specific flavor\n * constraints.\n */\nexport function checkCid<TOptions extends CheckCidOptions>(\n cid: Cid,\n options: TOptions,\n): cid is InferCheckedCid<TOptions>\nexport function checkCid(cid: Cid, options?: CheckCidOptions): boolean\nexport function checkCid(cid: Cid, options?: CheckCidOptions): boolean {\n switch (options?.flavor) {\n case undefined:\n return true\n case 'cbor':\n return isCborCid(cid)\n case 'dasl':\n return isDaslCid(cid)\n case 'raw':\n return isRawCid(cid)\n default:\n throw new TypeError(`Unknown CID flavor: ${options?.flavor}`)\n }\n}\n\n/**\n * Type guard to check whether a value is a valid {@link Cid} instance,\n * optionally checking for specific flavor constraints.\n */\nexport function isCid<TOptions extends CheckCidOptions>(\n value: unknown,\n options: TOptions,\n): value is InferCheckedCid<TOptions>\nexport function isCid(value: unknown, options?: CheckCidOptions): value is Cid\nexport function isCid(value: unknown, options?: CheckCidOptions): value is Cid {\n return isCidImplementation(value) && checkCid(value, options)\n}\n\n/**\n * Returns the input value as a {@link Cid} if it is valid, or `null` otherwise.\n */\nexport function ifCid<TValue, TOptions extends CheckCidOptions>(\n value: unknown,\n options: TOptions,\n): (TValue & InferCheckedCid<TOptions>) | null\nexport function ifCid<TValue>(\n value: TValue,\n options?: CheckCidOptions,\n): (TValue & Cid) | null\nexport function ifCid(value: unknown, options?: CheckCidOptions): Cid | null {\n if (isCidImplementation(value) && checkCid(value, options)) return value\n return null\n}\n\n/**\n * Returns the input value as a {@link Cid} if it is valid.\n *\n * @throws if the input is not a valid {@link Cid}.\n */\nexport function asCid<TValue, TOptions extends CheckCidOptions>(\n value: TValue,\n options: TOptions,\n): TValue & InferCheckedCid<TOptions>\nexport function asCid<TValue>(\n value: TValue,\n options?: CheckCidOptions,\n): Cid & TValue\nexport function asCid(value: unknown, options?: CheckCidOptions): Cid {\n if (isCidImplementation(value) && checkCid(value, options)) return value\n throw new Error('Not a valid CID')\n}\n\n/**\n * Decodes a CID from its binary representation.\n *\n * @see {@link https://dasl.ing/cid.html DASL-CIDs}\n * @throws if the input do not represent a valid DASL {@link Cid}\n */\nexport function decodeCid<TOptions extends CheckCidOptions>(\n cidBytes: Uint8Array,\n options: TOptions,\n): InferCheckedCid<TOptions>\nexport function decodeCid(cidBytes: Uint8Array, options?: CheckCidOptions): Cid\nexport function decodeCid(\n cidBytes: Uint8Array,\n options?: CheckCidOptions,\n): Cid {\n const cid = CID.decode(cidBytes)\n return asCid(cid, options)\n}\n\n/**\n * Parses a CID string into a Cid object.\n *\n * @throws if the input is not a valid CID string.\n */\nexport function parseCid<TOptions extends CheckCidOptions>(\n input: string,\n options: TOptions,\n): InferCheckedCid<TOptions>\nexport function parseCid(input: string, options?: CheckCidOptions): Cid\nexport function parseCid(input: string, options?: CheckCidOptions): Cid {\n const cid = CID.parse(input)\n return asCid(cid, options)\n}\n\nexport function validateCidString(\n input: string,\n options?: CheckCidOptions,\n): boolean {\n return parseCidSafe(input, options)?.toString() === input\n}\n\nexport function parseCidSafe<TOptions extends CheckCidOptions>(\n input: string,\n options: TOptions,\n): InferCheckedCid<TOptions> | null\nexport function parseCidSafe(\n input: string,\n options?: CheckCidOptions,\n): Cid | null\nexport function parseCidSafe(\n input: string,\n options?: CheckCidOptions,\n): Cid | null {\n try {\n return parseCid(input, options)\n } catch {\n return null\n }\n}\n\nexport function ensureValidCidString(\n input: string,\n options?: CheckCidOptions,\n): void {\n if (!validateCidString(input, options)) {\n throw new Error(`Invalid CID string`)\n }\n}\n\n/**\n * Verifies whether the multihash of a given {@link cid} matches the hash of the provided {@link bytes}.\n * @params cid The CID to match against the bytes.\n * @params bytes The bytes to verify.\n * @returns true if the CID matches the bytes, false otherwise.\n */\nexport async function isCidForBytes(\n cid: Cid,\n bytes: Uint8Array,\n): Promise<boolean> {\n if (cid.multihash.code === sha256.code) {\n const multihash = await sha256.digest(bytes)\n return multihashEquals(multihash, cid.multihash)\n }\n\n if (cid.multihash.code === sha512.code) {\n const multihash = await sha512.digest(bytes)\n return multihashEquals(multihash, cid.multihash)\n }\n\n // Don't know how to verify other multihash codes\n throw new Error('Unsupported CID multihash')\n}\n\nexport function createCid<TCode extends number, TMultihashCode extends number>(\n code: TCode,\n multihashCode: TMultihashCode,\n digest: Uint8Array,\n) {\n const cid: Cid = CID.createV1(code, createDigest(multihashCode, digest))\n return cid as Cid<1, TCode, TMultihashCode>\n}\n\nexport async function cidForCbor(bytes: Uint8Array): Promise<CborCid> {\n const multihash = await sha256.digest(bytes)\n return CID.createV1(DAG_CBOR_MULTICODEC, multihash) as CborCid\n}\n\nexport async function cidForRawBytes(bytes: Uint8Array): Promise<RawCid> {\n const multihash = await sha256.digest(bytes)\n return CID.createV1(RAW_MULTICODEC, multihash) as RawCid\n}\n\nexport function cidForRawHash(digest: Uint8Array): RawCid {\n // Fool-proofing\n if (digest.length !== 32) {\n throw new Error(`Invalid SHA-256 hash length: ${digest.length}`)\n }\n return createCid(RAW_MULTICODEC, sha256.code, digest)\n}\n\n/**\n * @internal\n */\nfunction isCidImplementation(value: unknown): value is Cid {\n if (CID.asCID(value)) {\n // CIDs created using older multiformats versions did not have a \"bytes\"\n // property.\n return (value as { bytes?: Uint8Array }).bytes != null\n } else {\n // Unknown implementation, do a structural check\n try {\n if (!isObject(value)) return false\n\n const val = value as Record<string, unknown>\n if (val.version !== 0 && val.version !== 1) return false\n if (!isUint8(val.code)) return false\n\n if (!isObject(val.multihash)) return false\n const mh = val.multihash as Record<string, unknown>\n if (!isUint8(mh.code)) return false\n if (!(mh.digest instanceof Uint8Array)) return false\n\n // Ensure that the bytes array is consistent with other properties\n if (!(val.bytes instanceof Uint8Array)) return false\n if (val.bytes[0] !== val.version) return false\n if (val.bytes[1] !== val.code) return false\n if (val.bytes[2] !== mh.code) return false\n if (val.bytes[3] !== mh.digest.length) return false\n if (val.bytes.length !== 4 + mh.digest.length) return false\n if (!ui8Equals(val.bytes.subarray(4), mh.digest)) return false\n\n if (typeof val.equals !== 'function') return false\n if (val.equals(val) !== true) return false\n\n return true\n } catch {\n return false\n }\n }\n}\n\n/**\n * @internal\n */\nfunction isUint8(val: unknown): val is number {\n return Number.isInteger(val) && (val as number) >= 0 && (val as number) < 256\n}\n","import { Cid, RawCid, ifCid, validateCidString } from './cid.js'\nimport { LexValue } from './lex.js'\nimport { isPlainObject, isPlainProto } from './object.js'\n\n/**\n * @note {@link BlobRef} is just a {@link LexMap} with a specific shape.\n */\nexport type BlobRef<Ref extends Cid = Cid> = {\n $type: 'blob'\n mimeType: string\n ref: Ref\n size: number\n}\n\nexport type BlobRefCheckOptions = {\n /**\n * If `false`, skips strict CID validation of {@link BlobRef.ref}, allowing\n * any valid CID. Otherwise, validates that the CID is v1, uses the raw\n * multicodec, and has a sha256 multihash.\n *\n * @defaults to `true`\n */\n strict?: boolean\n}\n\nexport type InferCheckedBlobRef<TOptions extends BlobRefCheckOptions> =\n TOptions extends { strict: false }\n ? BlobRef\n : { strict: boolean } extends TOptions\n ? BlobRef\n : BlobRef<RawCid>\n\nexport function isBlobRef(input: unknown): input is BlobRef<RawCid>\nexport function isBlobRef<TOptions extends BlobRefCheckOptions>(\n input: unknown,\n options: TOptions,\n): input is InferCheckedBlobRef<TOptions>\nexport function isBlobRef(\n input: unknown,\n options?: BlobRefCheckOptions,\n): input is BlobRef\nexport function isBlobRef(\n input: unknown,\n options?: BlobRefCheckOptions,\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 (typeof size !== 'number' || size < 0 || !Number.isSafeInteger(size)) {\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 = ifCid(\n ref,\n // Strict unless explicitly disabled\n options?.strict === false ? undefined : { flavor: 'raw' },\n )\n if (!cid) {\n return false\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' || mimeType.length === 0) {\n return false\n }\n\n for (const key in input) {\n if (key !== 'cid' && key !== 'mimeType') {\n return false\n }\n }\n\n if (!validateCidString(cid)) {\n return false\n }\n\n return true\n}\n\nexport type EnumBlobRefsOptions = BlobRefCheckOptions & {\n /**\n * @defaults to `false`\n */\n allowLegacy?: boolean\n}\n\nexport type InferEnumBlobRefs<TOptions extends EnumBlobRefsOptions> =\n TOptions extends { allowLegacy: true }\n ? InferCheckedBlobRef<TOptions> | LegacyBlobRef\n : { allowLegacy: boolean } extends TOptions\n ? InferCheckedBlobRef<TOptions> | LegacyBlobRef\n : InferCheckedBlobRef<TOptions>\n\n/**\n * Enumerates all {@link BlobRef}s (and, optionally, {@link LegacyBlobRef}s)\n * found within a {@link LexValue}.\n */\nexport function enumBlobRefs(\n input: LexValue,\n): Generator<BlobRef<RawCid>, void, unknown>\nexport function enumBlobRefs<TOptions extends EnumBlobRefsOptions>(\n input: LexValue,\n options: TOptions,\n): Generator<InferEnumBlobRefs<TOptions>, void, unknown>\nexport function enumBlobRefs(\n input: LexValue,\n options?: EnumBlobRefsOptions,\n): Generator<BlobRef | LegacyBlobRef, void, unknown>\nexport function* enumBlobRefs(\n input: LexValue,\n options?: EnumBlobRefsOptions,\n): Generator<BlobRef | LegacyBlobRef, void, unknown> {\n // LegacyBlobRef not included by default\n const includeLegacy = options?.allowLegacy === true\n\n // Using a stack to avoid recursion depth issues.\n const stack: LexValue[] = [input]\n\n // Since we are using a stack, we could end-up in an infinite loop with cyclic\n // structures. Cyclic structures are not valid LexValues and should, thus,\n // never occur, but let's be safe.\n const visited = new Set<object>()\n\n do {\n const value = stack.pop()!\n\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n if (visited.has(value)) continue\n visited.add(value)\n stack.push(...value)\n } else if (isPlainProto(value)) {\n if (visited.has(value)) continue\n visited.add(value)\n if (isBlobRef(value, options)) {\n yield value\n } else if (includeLegacy && isLegacyBlobRef(value)) {\n yield value\n } else {\n for (const v of Object.values(value)) {\n if (v != null) stack.push(v)\n }\n }\n }\n }\n } while (stack.length > 0)\n\n // Optimization: ease GC's work\n visited.clear()\n}\n","import { ifCid, 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 ifCid(b)?.equals(a) === 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","export type LexErrorCode = string & NonNullable<unknown>\n\nexport type LexErrorData<N extends LexErrorCode = LexErrorCode> = {\n error: N\n message?: string\n}\n\nexport class LexError<N extends LexErrorCode = LexErrorCode> extends Error {\n name = 'LexError'\n\n constructor(\n readonly error: N,\n message?: string, // Defaults to empty string in Error constructor\n options?: ErrorOptions,\n ) {\n super(message, options)\n }\n\n toString(): string {\n return `${this.name}: [${this.error}] ${this.message}`\n }\n\n toJSON(): LexErrorData<N> {\n const { error, message } = this\n return { error, message: message || undefined }\n }\n\n /**\n * Translate into an HTTP response for downstream clients.\n */\n toResponse(): Response {\n return Response.json(this.toJSON(), { status: 400 })\n }\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","import { fromString } from 'uint8arrays/from-string'\nimport { NodeJSBuffer } from './lib/nodejs-buffer.js'\nimport { Base64Alphabet } from './uint8array-base64.js'\n\nconst Buffer = NodeJSBuffer\n\nexport const utf8FromBase64Node = Buffer\n ? function utf8FromBase64Node(\n b64: string,\n alphabet: Base64Alphabet = 'base64',\n ): string {\n return Buffer.from(b64, alphabet).toString('utf8')\n }\n : /* v8 ignore next -- @preserve */ null\n\nconst textDecoder = /*#__PURE__*/ new TextDecoder()\nexport function utf8FromBase64Ponyfill(\n b64: string,\n alphabet?: Base64Alphabet,\n): string {\n const bytes = fromString(b64, alphabet)\n return textDecoder.decode(bytes)\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 : /* v8 ignore next -- @preserve */ 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 : /* v8 ignore next -- @preserve */ 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 : /* v8 ignore next -- @preserve */ 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 { toString } from 'uint8arrays/to-string'\nimport { NodeJSBuffer } from './lib/nodejs-buffer.js'\nimport { Base64Alphabet } from './uint8array-base64.js'\nimport { toBase64Node } from './uint8array-to-base64.js'\n\nconst Buffer = NodeJSBuffer\n\nexport const utf8ToBase64Node = Buffer\n ? function utf8ToBase64Node(text: string, alphabet?: Base64Alphabet): string {\n const buffer = Buffer.from(text, 'utf8')\n return toBase64Node!(buffer, alphabet)\n }\n : /* v8 ignore next -- @preserve */ null\n\nconst textEncoder = /*#__PURE__*/ new TextEncoder()\nexport function utf8ToBase64Ponyfill(\n text: string,\n alphabet?: Base64Alphabet,\n): string {\n const bytes = textEncoder.encode(text)\n return toString(bytes, alphabet)\n}\n","import { Base64Alphabet } from './uint8array.js'\nimport {\n utf8FromBase64Node,\n utf8FromBase64Ponyfill,\n} from './utf8-from-base64.js'\nimport { graphemeLenNative, graphemeLenPonyfill } from './utf8-grapheme-len.js'\nimport { utf8LenCompute, utf8LenNode } from './utf8-len.js'\nimport { utf8ToBase64Node, utf8ToBase64Ponyfill } from './utf8-to-base64.js'\n\nexport const graphemeLen: (str: string) => number =\n /* v8 ignore next -- @preserve */ graphemeLenNative ?? graphemeLenPonyfill\n\n/* v8 ignore next -- @preserve */\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 =\n /* v8 ignore next -- @preserve */ utf8LenNode ?? utf8LenCompute\n\nexport const utf8ToBase64: (str: string, alphabet?: Base64Alphabet) => string =\n /* v8 ignore next -- @preserve */ utf8ToBase64Node ?? utf8ToBase64Ponyfill\n\nexport const utf8FromBase64: (\n b64: string,\n alphabet?: Base64Alphabet,\n) => string =\n /* v8 ignore next -- @preserve */ utf8FromBase64Node ?? utf8FromBase64Ponyfill\n","export * from './blob.js'\nexport * from './cid.js'\nexport * from './lex-equals.js'\nexport * from './lex-error.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 {\n CheckCidOptions,\n Cid,\n InferCheckedCid,\n parseCid,\n} from '@atproto/lex-data'\nimport { JsonValue } from './json.js'\n\nexport function parseLexLink<TOptions extends CheckCidOptions>(\n input: undefined | Record<string, unknown>,\n options: TOptions,\n): InferCheckedCid<TOptions> | undefined\nexport function parseLexLink(\n input?: Record<string, unknown>,\n options?: CheckCidOptions,\n): Cid | undefined\nexport function parseLexLink(\n input?: Record<string, unknown>,\n options?: CheckCidOptions,\n): 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 const { $link } = input\n\n if (typeof $link !== 'string') {\n throw new TypeError('$link must be a base32-encoded CID string')\n }\n\n if ($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 ($link.length > 2048) {\n throw new TypeError('CID string in $link is too long')\n }\n\n try {\n return parseCid($link, options)\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 {\n BlobRef,\n BlobRefCheckOptions,\n LexMap,\n isBlobRef,\n} from '@atproto/lex-data'\nimport { parseLexLink } from './link.js'\n\nexport function parseBlobRef(\n input: LexMap,\n options?: BlobRefCheckOptions,\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<T extends LexValue = LexValue>(\n input: string,\n options: LexParseOptions = { strict: false },\n): T {\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.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.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 { fromBase64, graphemeLen, toBase64, utf8Len } from '@atproto/lex-data'\nimport {\n LanguageTag,\n isValidLanguage,\n parseLanguageString,\n} from '@atproto/syntax'\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/syntax` instead.\n */\nconst parseLanguageLegacy = parseLanguageString\nexport { parseLanguageLegacy as parseLanguage }\n\n/**\n * @deprecated Use {@link isLanguageString} from `@atproto/syntax` instead.\n */\nexport const validateLanguage = isValidLanguage\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 publicKeyJwk: z.record(z.string(), z.unknown()).optional(),\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\n/**\n * @deprecated Use `DidDocument` from `@atproto/did` instead as it applies\n * stricter (and more spec-compliant) validation.\n */\nexport const didDocument = z.object({\n '@context': z\n .union([\n z.literal('https://www.w3.org/ns/did/v1'),\n z.array(z.string().url()),\n ])\n .optional(),\n id: z.string(),\n alsoKnownAs: z.array(z.string()).optional(),\n verificationMethod: z.array(verificationMethod).optional(),\n authentication: z.array(z.union([z.string(), 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 { 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","/* eslint-disable import/no-deprecated */\n\nimport { z } from 'zod'\nimport { validateLanguage } from '@atproto/common-web'\nimport { isValidNsid } from '@atproto/syntax'\nimport { requiredPropertiesRefinement } from './util'\n\nexport const languageSchema = z\n .string()\n .refine(validateLanguage, 'Invalid BCP47 language tag')\n\nexport const lexLang = z.record(languageSchema, z.string().optional())\n\nexport type LexLang = z.infer<typeof lexLang>\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.string(),\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// permissions\n// =\n\nconst lexPermission = z.intersection(\n z.object({\n type: z.literal('permission'),\n resource: z.string().nonempty(),\n }),\n z.record(\n z.string(),\n z\n .union([\n z.array(z.union([z.string(), z.number().int(), z.boolean()])),\n\n z.boolean(),\n z.number().int(),\n z.string(),\n ])\n .optional(),\n ),\n)\n\nexport type LexPermission = z.infer<typeof lexPermission>\n\nexport const lexPermissionSet = z.object({\n type: z.literal('permission-set'),\n description: z.string().optional(),\n title: z.string().optional(),\n 'title:lang': lexLang.optional(),\n detail: z.string().optional(),\n 'detail:lang': lexLang.optional(),\n permissions: z.array(lexPermission),\n})\n\nexport type LexPermissionSet = z.infer<typeof lexPermissionSet>\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.string(),\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 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: z.object({\n description: z.string().optional(),\n schema: lexRefUnion,\n }),\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 | LexPermissionSet\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 'permission-set':\n return lexPermissionSet.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(isValidNsid, {\n message: 'Must be a valid NSID',\n }),\n revision: z.number().optional(),\n description: z.string().optional(),\n defs: z.record(z.string(), lexUserType),\n })\n .refine(\n (doc) => {\n for (const [defId, def] of Object.entries(doc.defs)) {\n if (\n defId !== 'main' &&\n (def.type === 'record' ||\n def.type === 'permission-set' ||\n def.type === 'procedure' ||\n def.type === 'query' ||\n def.type === 'subscription')\n ) {\n return false\n }\n }\n return true\n },\n {\n message: `Records, permission sets, procedures, queries, and subscriptions must be the main definition.`,\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","/* eslint-disable import/no-deprecated */\n\nimport { 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(): JsonBlobRef {\n return this.original\n }\n\n toJSON() {\n return ipldToJson(this.ipld())\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})})();","/* eslint-disable import/no-deprecated */\n\nimport { isValidISODateString } from 'iso-datestring-validator'\nimport { CID } from 'multiformats/cid'\nimport { validateLanguage } from '@atproto/common-web'\nimport {\n ensureValidAtUri,\n ensureValidDid,\n ensureValidHandle,\n ensureValidRecordKey,\n isValidNsid,\n isValidTid,\n isValidUri,\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 if (!isValidUri(value)) {\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 if (isValidNsid(value)) {\n return {\n success: true,\n value,\n }\n } else {\n return {\n success: false,\n error: new ValidationError(`${path} must be a valid nsid`),\n }\n }\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","/* eslint-disable import/no-deprecated */\n\nimport { 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\n/**\n * @note this is equivalent to `unknown` because of {@link IpldValue} being `unknown`.\n * @deprecated Use {@link Lex} from `@atproto/lex-data` instead.\n */\nexport type LexValue = unknown\n\n/**\n * @deprecated Use {@link TypedLexMap} from `@atproto/lex-data` instead.\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\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead (which doesn't need conversion to IPLD).\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\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead instead (which doesn't need conversion to IPLD).\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 './types/globals.d.ts'\nexport { authMiddleware, redirect, setAuth } from './middleware'\nexport type { AuthMiddlewareConfig, UserInfo, LoginPageProps } from './types/common'\n","import express from 'express'\nimport type { Handler, Request, Response, NextFunction, RequestHandler, Router } from 'express'\nimport { OAuthResolverError } from '@atproto/oauth-client-node'\nimport { authBodyParser, assertOrigin, assertPath, getHostname, getOrigin, isLocalHostname, openState, sealState, packState, unpackState, getMainAuthDomain, getAuthClientMountPath, getMainAuthDomainVariants, getCustomHeaderNames, assertRequestMode, Environment, getMainAuthDomainsList } from '@onelyid/common'\nimport { createDb, migrateToLatest } from './db'\nimport { OAuthClientFactory } from './oauth-client'\nimport { getOrCreateCookieSecret, getOrCreateStateSecret } from './db/queries'\nimport { createBidirectionalResolver, createIdResolver } from './id-resolver'\nimport { getSession, getSessionUser, setSession } from './session'\nimport { assertPublicUrl, getConsoleLogger, getDatabasePath, isValidHandle } from './utils/utils'\nimport { getDocRoutes } from './utils/req-utils'\nimport { AppContext, AuthMiddlewareConfig, InternalGlobals, LoginPageProps, RespGlobals, UserInfo } from './types/common'\nimport { INVALID } from './const'\n\n// Helper function for defining routes\nconst handler =\n (fn: Handler) =>\n async (\n req: Request,\n res: Response,\n next: NextFunction\n ) => {\n try {\n await fn(req, res, next)\n } catch (err) {\n next(err)\n }\n }\n\n// NOTE: Only use `iGlobals` where the usage is not direcly via `authMiddleware` setup\n// E.g. `setAuth` and `redirect` middlewares\nconst iGlobals: InternalGlobals = {\n ctx: null,\n globals: null,\n};\n\nexport const authMiddleware = (config?: AuthMiddlewareConfig): RequestHandler => {\n const router = express.Router()\n\n router.use(authBodyParser)\n\n const globals: RespGlobals = {\n // initialized on mount\n cookieSecret: '',\n stateSecret: '',\n mountPath: '',\n publicUrl: '',\n };\n\n const authClientMountPath = getAuthClientMountPath()\n\n globals.cookieSecret = config?.cookieSecret ?? '';\n globals.stateSecret = config?.stateSecret ?? '';\n globals.mountPath = assertPath(authClientMountPath);\n globals.publicUrl = assertPublicUrl(config?.publicUrl);\n\n let initError: unknown = null\n const ctx: AppContext = {\n logger: config?.logger ?? getConsoleLogger(),\n db: null,\n resolver: null,\n oauthClientFactory: null,\n };\n\n iGlobals.ctx = ctx;\n iGlobals.globals = globals;\n\n // kick off async initialization immediately\n ;(async () => {\n try {\n const dbPath = config?.dbPath || getDatabasePath()\n ctx.db = createDb(dbPath)\n await migrateToLatest(ctx.db)\n\n if (!globals.cookieSecret) {\n globals.cookieSecret = await getOrCreateCookieSecret(ctx.db)\n }\n if (!globals.stateSecret) {\n globals.stateSecret = await getOrCreateStateSecret(ctx.db)\n }\n\n const baseIdResolver = createIdResolver()\n ctx.resolver = createBidirectionalResolver(baseIdResolver)\n\n ctx.oauthClientFactory = new OAuthClientFactory()\n\n registerRoutes(router, ctx, globals, config)\n } catch (err) {\n initError = err\n }\n })()\n\n // gate middleware\n router.use(async (req, res, next) => {\n if (initError) {\n return next(initError)\n }\n if (!ctx.db || !globals.cookieSecret || !globals.stateSecret || !ctx.resolver || !ctx.oauthClientFactory) {\n return res.status(503).send('Service initializing')\n }\n if (globals.publicUrl === INVALID) {\n return res.status(503).send('Invalid publicUrl provided! Valid example: https://example.com')\n }\n if (req.baseUrl) {\n const message = `authMiddleware() must be mounted at root, not at \\`${req.baseUrl}\\``\n throw new Error(message);\n }\n\n req.ctx = {\n oauthClient: await ctx.oauthClientFactory.create(req, ctx, globals)\n };\n\n const modeConfigured = assertRequestMode(config?.mode)\n const modeInferred = getRequestMode(req, globals)\n if (modeConfigured && modeInferred && modeConfigured !== modeInferred) {\n const message = `Environment (request mode) mismatch! ${modeConfigured} ${modeInferred}`\n const acceptsJSON = req.accepts(['json', 'html']) === 'json'\n\n res.status(500)\n if (acceptsJSON) {\n res.json({ error: message })\n } else {\n res.send(message)\n }\n return\n }\n\n const requestMode = modeConfigured || modeInferred\n if (requestMode) {\n req.mode = requestMode\n } else if (req.path !== `${globals.mountPath}/callback`) {\n // NOTE: The (OAuth) callback route finalises `req.mode` separately\n req.mode = Environment.Prod // finalise `req.mode`\n }\n\n req.authFlow = () => initAuthFlow(req, res);\n req.getAuth = () => setReqAuth(req, res);\n\n res.clearAuth = () => deleteSession(req, res, globals);\n\n // custom json response\n res.json = (data: unknown) => sendJson(res, data)\n\n next()\n })\n\n return router\n}\n\nasync function initAuthFlow(req: Request, res: Response): Promise<LoginPageProps | void> {\n const searchParams = new URLSearchParams(req.query as Record<string, string>)\n let redirectUrl = searchParams.get('continue') || '/'\n if (await req.getAuth()) {\n return res.redirect(redirectUrl)\n }\n\n const { isMainAuthDomain, isMainAuthDomainVariant } = getMainAuthDomainVariants(req)\n if (!isMainAuthDomain) {\n if (!isMainAuthDomainVariant) {\n const authClientMountPath = getAuthClientMountPath()\n\n const searchParams = new URLSearchParams()\n searchParams.set('continue', redirectUrl)\n if (req.mode) {\n searchParams.set('request_mode', req.mode)\n }\n\n return res.redirect(`${authClientMountPath}/login/redirect?${searchParams.toString()}`)\n } else {\n return res.redirect(redirectUrl)\n }\n }\n\n let authOrigin = ''\n\n const state = searchParams.get('state') ?? ''\n if (state) {\n const stateObj = unpackState(state)\n redirectUrl = stateObj.redirectUrl || redirectUrl\n authOrigin = stateObj.authOrigin\n }\n\n const authClientMountPath = getAuthClientMountPath()\n const authActioUrl = `${authOrigin || ''}${authClientMountPath}/login`;\n\n const loginProps: LoginPageProps = { redirectUrl, authActioUrl }\n if (req.mode) {\n loginProps.requestMode = req.mode\n }\n return loginProps\n}\n\nasync function initOAuthFlow(handle: string, redirectUrl: string | undefined, req: Request, res: Response, globals: RespGlobals, config: AuthMiddlewareConfig | undefined, devMode?: boolean) {\n let loginRedirect = redirectUrl || assertPath(config?.loginRedirect);\n if (!loginRedirect) {\n if (devMode) {\n loginRedirect = `${globals.mountPath}/userinfo`\n } else {\n loginRedirect = '/'\n }\n }\n\n let localAuth = ''\n const hostname = getHostname(req)\n if (isLocalHostname(hostname)) {\n localAuth = hostname\n }\n\n const purpose = req.get('Sec-Purpose') ?? req.get('Purpose')\n const parts = purpose?.split(/[;,]/) ?? []\n const isSpeculative = parts.includes('prefetch') || parts.includes('prerender')\n if (isSpeculative) {\n res.send('')\n return\n }\n\n if (!handle) {\n return res.redirect(loginRedirect)\n }\n\n const stateObj: any = { loginRedirect }\n if (req.mode) {\n stateObj.requestMode = req.mode\n }\n if (localAuth) {\n stateObj.localAuth = localAuth\n }\n\n const url = await req.ctx.oauthClient!.authorize(handle, {\n scope: 'atproto transition:email',\n state: JSON.stringify(stateObj),\n })\n return res.redirect(url.toString())\n}\n\nexport const setAuth: RequestHandler = async (req, res, next) => {\n await setReqAuth(req, res)\n next()\n};\n\nexport const redirect: (path: string) => RequestHandler = (redirectPath: string) => (async (req, res, next) => {\n await setReqAuth(req, res)\n if (!req.auth) {\n const path = assertPath(redirectPath ?? '/');\n return res.redirect(path)\n }\n next()\n}) satisfies RequestHandler;\n\nasync function setReqAuth(req: Request, res: Response): Promise<UserInfo | null> {\n if (req.auth) {\n return req.auth\n }\n\n if (iGlobals.ctx && iGlobals.globals?.cookieSecret) {\n const { user, error } = await getSessionUser(req, res, iGlobals.ctx, iGlobals.globals.cookieSecret)\n if (!error && user) {\n req.auth = user\n }\n }\n if (!req.auth) {\n req.auth = null\n }\n return req.auth\n}\n\nasync function deleteSession(req: Request, res: Response, globals: RespGlobals) {\n const session = await getSession(req, res, globals.cookieSecret);\n await session.destroy()\n}\n\nfunction getRequestMode(req: Request, globals: RespGlobals): Environment | undefined {\n let requestMode: Environment | undefined = undefined\n const searchParams = new URLSearchParams(req.query as Record<string, string>)\n\n const customHeaders = getCustomHeaderNames()\n const requestModeValue = req.get(customHeaders.requestMode)\n requestMode = assertRequestMode(requestModeValue)\n\n if (!requestMode) {\n let _requestModeValue = searchParams.get('request_mode')\n if (!_requestModeValue && req.body) {\n _requestModeValue = (req.body.requestMode as string)\n }\n\n if (_requestModeValue) {\n const _requestMode = assertRequestMode(_requestModeValue)\n if (_requestMode) {\n requestMode = _requestMode\n }\n }\n }\n\n if (!requestMode && req.path === '/login') {\n const state = searchParams.get('state')\n if (state) {\n const stateObj = unpackState(state)\n const _requestMode = assertRequestMode(stateObj.requestMode)\n if (_requestMode) {\n requestMode = _requestMode\n }\n }\n }\n\n if (!requestMode && req.path === `${globals.mountPath}/transfer-local-session`) {\n const sealedState = searchParams.get('xstate')\n if (sealedState) {\n const stateObj = openState(sealedState, globals.stateSecret)\n const _requestMode = assertRequestMode(stateObj.requestMode)\n if (_requestMode) {\n requestMode = _requestMode\n }\n }\n }\n\n if (!requestMode) {\n const hostname = getHostname(req)\n for (const [mode, authDomain] of Object.entries(getMainAuthDomainsList())) {\n if (hostname === authDomain) {\n const _requestMode = assertRequestMode(mode)\n requestMode = _requestMode\n }\n }\n }\n\n return requestMode\n}\n\nfunction registerRoutes(router: Router, ctx: AppContext, globals: RespGlobals, config?: AuthMiddlewareConfig) {\n // OAuth metadata\n router.get(\n '/oauth-client-metadata.json',\n handler((req, res) => {\n return res.json(req.ctx.oauthClient!.clientMetadata)\n })\n )\n\n // Middleware root (base)\n router.get(\n `${globals.mountPath ?? '/'}`,\n handler((req, res) => {\n const { login, logout, userinfo } = getDocRoutes(req, globals)\n return res.json({\n info: \"middleware root endpoint\",\n try: [{ login, logout, userinfo }],\n })\n })\n )\n\n // OAuth callback to complete session creation\n router.get(\n `${globals.mountPath}/callback`,\n handler(async (req, res) => {\n let loginRedirect: string | undefined;\n const params = new URLSearchParams(req.originalUrl.split('?')[1])\n try {\n const { session, state } = await req.ctx.oauthClient!.callback(params)\n if (state) {\n const stateObj = JSON.parse(state)\n loginRedirect = stateObj.loginRedirect\n const requestMode = stateObj.requestMode\n\n // finalise `req.mode` for (OAuth) callback route\n if (!req.mode) {\n req.mode = requestMode || Environment.Prod\n }\n\n const customHeaders = getCustomHeaderNames()\n let proxyOrigin = req.get(customHeaders.proxyOrigin)\n proxyOrigin = assertOrigin(proxyOrigin)\n const localAuth = stateObj.localAuth\n const hostname = getHostname(req)\n\n const transferLocalAuth = proxyOrigin && localAuth && isLocalHostname(localAuth) && isLocalHostname(hostname) && localAuth !== hostname\n if (transferLocalAuth) {\n const state: any = { loginRedirect, did: session.did }\n if (req.mode) {\n state.requestMode = req.mode\n }\n const sealedState = sealState(state, globals.stateSecret)\n\n const url = new URL(`${getOrigin(req)}${globals.mountPath}/transfer-local-session`)\n url.hostname = localAuth\n url.searchParams.set('xstate', sealedState)\n\n return res.redirect(url.href)\n } else {\n await setSession(req, res, globals.cookieSecret, { did: session.did })\n }\n }\n } catch (err) {\n ctx.logger.error({ err }, 'oauth callback failed')\n return res.redirect('/?error')\n }\n\n if (!loginRedirect) {\n loginRedirect = '/'\n }\n\n return res.redirect(loginRedirect)\n })\n )\n\n // Login redirect handler\n router.get(\n `${globals.mountPath}/login/redirect`,\n handler(async (req, res) => {\n const searchParams = new URLSearchParams(req.query as Record<string, string>)\n const redirectUrl = searchParams.get('continue') || '/'\n const authOrigin = getOrigin(req)\n\n const stateObj: any = { redirectUrl, authOrigin }\n if (req.mode) {\n stateObj.requestMode = req.mode\n }\n const state = packState(stateObj)\n\n const mainAuthDomain = getMainAuthDomain(req)\n const url = new URL(`https://${mainAuthDomain}/login`)\n url.searchParams.set('state', state);\n return res.redirect(url.href)\n })\n )\n\n // Login handler\n router.route(`${globals.mountPath}/login`)\n .get(handler(async (req, res) => {\n const searchParams = new URLSearchParams(req.query as Record<string, string>)\n const handle = searchParams.get('handle')\n if (handle) {\n await handleLoginFlow(handle, undefined, req, res, true)\n }\n }))\n .post(handler(async (req, res) => {\n const handle = req.body?.handle\n const redirectUrl = req.body?.redirectUrl\n if (handle) {\n await handleLoginFlow(handle, redirectUrl, req, res)\n }\n }))\n\n // Logout handler\n // TODO: Can make it as POST-only later, with an info message for GET\n router.all(\n `${globals.mountPath}/logout`,\n handler(async (req, res) => {\n await deleteSession(req, res, globals)\n\n const acceptsJSON = req.accepts(['json', 'html']) === 'json'\n if (acceptsJSON) {\n return res.json({ ok: true })\n } else {\n return res.redirect('/')\n }\n })\n )\n\n // User info for current session\n router.get(\n `${globals.mountPath}/userinfo`,\n handler(async (req, res) => {\n const { login, logout, userinfo } = getDocRoutes(req, globals)\n const { user, error } = await getSessionUser(req, res, ctx, globals.cookieSecret)\n if (user === null) {\n return res.json({ ok: true, user, info: 'not logged-in', try: [{ login, userinfo }] })\n } else if (!user) {\n return res.json({ ok: true, user: null, error, try: [{ login, userinfo }] })\n }\n return res.json({ ok: true, user, try: [{ logout, userinfo }] })\n })\n )\n\n // Transfer local session (e.g. 127.0.0.1 --> localhost)\n router.get(\n `${globals.mountPath}/transfer-local-session`,\n handler(async (req, res) => {\n const customHeaders = getCustomHeaderNames()\n let proxyOrigin = req.get(customHeaders.proxyOrigin)\n proxyOrigin = assertOrigin(proxyOrigin)\n const hostname = getHostname(req)\n\n const transferLocalAuth = proxyOrigin && isLocalHostname(hostname)\n const sealedState = new URLSearchParams(req.query as Record<string, string>).get('xstate')\n if (transferLocalAuth && sealedState) {\n const stateObj = openState(sealedState, globals.stateSecret)\n if (stateObj) {\n const { loginRedirect, did } = stateObj\n await setSession(req, res, globals.cookieSecret, { did })\n return res.redirect(loginRedirect)\n }\n }\n\n return res.redirect('/')\n })\n )\n\n async function handleLoginFlow(handle: string, redirectUrl: string | undefined, req: Request, res: Response, devMode?: boolean) {\n const { login, userinfo } = getDocRoutes(req, globals)\n // const isPost = req.method === 'POST'\n\n // Validate\n if (!isValidHandle(handle)) {\n ctx.logger.error(`Invalid handle: ${handle}`)\n return res.json({\n handle: `${handle ?? ''}`,\n error: 'Invalid handle',\n try: [{ login, userinfo }],\n })\n }\n\n // Initiate the OAuth flow\n try {\n await initOAuthFlow(handle, redirectUrl, req, res, globals, config, devMode)\n } catch (err) {\n ctx.logger.error({ err }, 'oauth authorize failed')\n return res.json({\n error:\n err instanceof OAuthResolverError\n ? err.message\n : \"couldn't initiate login\",\n })\n }\n }\n}\n\nfunction sendJson(res: Response, data: unknown) {\n const dataStr = JSON.stringify(data, null, 2)\n return res.type('json').send(dataStr)\n}\n","import SqliteDb from 'better-sqlite3'\nimport {\n Kysely,\n Migrator,\n SqliteDialect,\n Migration,\n MigrationProvider,\n} from 'kysely'\n\n// Types\n\nexport type DatabaseSchema = {\n auth_session: AuthSession\n auth_state: AuthState\n app_secrets: AppSecrets\n oauth_lock: OAuthLock\n}\n\nexport type AuthSession = {\n key: string\n session: AuthSessionJson\n}\n\nexport type AuthState = {\n key: string\n state: AuthStateJson\n}\n\nexport type AppSecrets = {\n key: string\n value: string\n}\n\nexport type OAuthLock = {\n key: string\n}\n\ntype AuthStateJson = string\n\ntype AuthSessionJson = string\n\n// Migrations\n\nconst migrations: Record<string, Migration> = {}\n\nconst migrationProvider: MigrationProvider = {\n async getMigrations() {\n return migrations\n },\n}\n\nmigrations['001'] = {\n async up(db: Kysely<unknown>) {\n await db.schema\n .createTable('auth_session')\n .addColumn('key', 'varchar', (col) => col.primaryKey())\n .addColumn('session', 'varchar', (col) => col.notNull())\n .execute()\n await db.schema\n .createTable('auth_state')\n .addColumn('key', 'varchar', (col) => col.primaryKey())\n .addColumn('state', 'varchar', (col) => col.notNull())\n .execute()\n },\n async down(db: Kysely<unknown>) {\n await db.schema.dropTable('auth_state').execute()\n await db.schema.dropTable('auth_session').execute()\n },\n}\n\nmigrations['002'] = {\n async up(db: Kysely<unknown>) {\n await db.schema\n .createTable('app_secrets')\n .addColumn('key', 'varchar', (col) =>\n col.primaryKey()\n )\n .addColumn('value', 'varchar', (col) =>\n col.notNull()\n )\n .execute()\n },\n\n async down(db: Kysely<unknown>) {\n await db.schema.dropTable('app_secrets').execute()\n },\n}\n\nmigrations['003'] = {\n async up(db: Kysely<unknown>) {\n await db.schema\n .createTable('oauth_lock')\n .addColumn('key', 'varchar', (col) => col.primaryKey())\n .execute()\n },\n\n async down(db: Kysely<unknown>) {\n await db.schema.dropTable('oauth_lock').execute()\n },\n}\n\n// APIs\n\nexport const createDb = (location: string): Database => {\n return new Kysely<DatabaseSchema>({\n dialect: new SqliteDialect({\n database: new SqliteDb(location),\n }),\n })\n}\n\nexport const migrateToLatest = async (db: Database) => {\n const migrator = new Migrator({ db, provider: migrationProvider })\n const { error } = await migrator.migrateToLatest()\n if (error) throw error\n}\n\nexport type Database = Kysely<DatabaseSchema>\n","import { NodeOAuthClient, OAuthClient } from '@atproto/oauth-client-node'\nimport type { Request } from 'express'\nimport type { AppContext, RespGlobals } from './types/common'\nimport { SessionStore, StateStore } from './storage'\nimport { getBaseUrls } from './utils/req-utils'\nimport { sqliteRequestLock } from './lock'\n\nconst createClient = async (ctx: AppContext, publicUrl: string, baseUrl: string, basePath: string) => {\n const enc = encodeURIComponent\n return new NodeOAuthClient({\n clientMetadata: {\n client_name: 'ATProto client',\n client_id: publicUrl\n ? `${baseUrl}/oauth-client-metadata.json`\n : `http://localhost?redirect_uri=${enc(`${basePath}/callback`)}&scope=${enc('atproto transition:generic transition:email')}`,\n client_uri: baseUrl,\n redirect_uris: [`${basePath}/callback`],\n scope: 'atproto transition:generic transition:email',\n grant_types: ['authorization_code', 'refresh_token'],\n response_types: ['code'],\n application_type: 'web',\n token_endpoint_auth_method: 'none',\n dpop_bound_access_tokens: true,\n },\n stateStore: new StateStore(ctx.db!),\n sessionStore: new SessionStore(ctx.db!),\n requestLock: sqliteRequestLock(ctx.db!),\n })\n}\n\nexport class OAuthClientFactory {\n private readonly cache = new Map<string, Promise<OAuthClient>>();\n\n create(req: Request, ctx: AppContext, globals: RespGlobals): Promise<OAuthClient> {\n const { publicUrl, baseUrl, basePath } = getBaseUrls(req, globals)\n\n let cached = this.cache.get(baseUrl)\n if (!cached) {\n cached = createClient(ctx, publicUrl, baseUrl, basePath).catch(err => {\n this.cache.delete(baseUrl);\n throw err;\n })\n this.cache.set(baseUrl, cached)\n }\n return cached\n }\n}\n","import type {\n NodeSavedSession,\n NodeSavedSessionStore,\n NodeSavedState,\n NodeSavedStateStore,\n} from '@atproto/oauth-client-node'\nimport type { Database } from './types/common'\n\nexport class StateStore implements NodeSavedStateStore {\n constructor(private db: Database) {}\n async get(key: string): Promise<NodeSavedState | undefined> {\n const result = await this.db.selectFrom('auth_state').selectAll().where('key', '=', key).executeTakeFirst()\n if (!result) return\n return JSON.parse(result.state) as NodeSavedState\n }\n async set(key: string, val: NodeSavedState) {\n const state = JSON.stringify(val)\n await this.db\n .insertInto('auth_state')\n .values({ key, state })\n .onConflict((oc) => oc.doUpdateSet({ state }))\n .execute()\n }\n async del(key: string) {\n await this.db.deleteFrom('auth_state').where('key', '=', key).execute()\n }\n}\n\nexport class SessionStore implements NodeSavedSessionStore {\n constructor(private db: Database) {}\n async get(key: string): Promise<NodeSavedSession | undefined> {\n const result = await this.db.selectFrom('auth_session').selectAll().where('key', '=', key).executeTakeFirst()\n if (!result) return\n return JSON.parse(result.session) as NodeSavedSession\n }\n async set(key: string, val: NodeSavedSession) {\n const session = JSON.stringify(val)\n await this.db\n .insertInto('auth_session')\n .values({ key, session })\n .onConflict((oc) => oc.doUpdateSet({ session }))\n .execute()\n }\n async del(key: string) {\n await this.db.deleteFrom('auth_session').where('key', '=', key).execute()\n }\n}\n","import type { Request } from 'express'\nimport { getOrigin } from '@onelyid/common'\nimport { assertPublicUrl } from './utils';\nimport { RespGlobals } from '../types/common';\nimport { DEMO_HANDLE } from '../const';\n\nexport function getBaseUrls(req: Request, globals: RespGlobals) {\n const origin = getOrigin(req)\n const host = new URL(origin).host\n const publicUrl = globals.publicUrl || assertPublicUrl(origin)\n\n // NOTE: `publicUrl` remains empty string ('') for localhost/127.0.0.1\n let baseUrl: string;\n if (publicUrl) {\n baseUrl = publicUrl\n } else {\n let port = host?.split(':')[1] ?? ''\n if (port === '80') {\n port = ''\n }\n baseUrl = `http://127.0.0.1${port ? `:${port}` : ''}`\n }\n const basePath = `${baseUrl}${globals.mountPath}`\n return { publicUrl, baseUrl, basePath }\n}\n\nexport function getDocRoutes(req: Request, globals: RespGlobals) {\n const demoHandle = DEMO_HANDLE;\n const { basePath } = getBaseUrls(req, globals)\n\n const login = `${basePath}/login?handle=${demoHandle}`;\n const logout = `${basePath}/logout`;\n const userinfo = `${basePath}/userinfo`;\n return { login, logout, userinfo }\n}\n","import fs from 'node:fs'\nimport path from 'node:path'\nimport os from 'node:os'\nimport { isValidHandle as isValidHandleSyntax } from '@atproto/syntax'\nimport { isLocalHostname } from '@onelyid/common'\nimport { Logger } from '../types/common'\nimport { DEFAULT_DBFILE_DIR, DEFAULT_DBFILE_NAME, INVALID } from '../const'\n\nexport function getConsoleLogger(): Logger {\n return {\n info: console.info,\n warn: console.warn,\n error: console.error,\n }\n}\n\n// NOTE: `publicUrl` remains empty string ('') for localhost/127.0.0.1\nexport function assertPublicUrl(url?: string) {\n let publicUrl = url ?? '';\n publicUrl = publicUrl.trim();\n if (!publicUrl) return publicUrl;\n \n publicUrl = publicUrl.toLowerCase()\n if (publicUrl.endsWith('/')) {\n publicUrl = publicUrl.substring(0, publicUrl.length-1)\n }\n if (!publicUrl.startsWith('http://') && !publicUrl.startsWith('https://')) {\n return INVALID\n }\n\n try {\n const urlObj = new URL(publicUrl)\n if (isLocalHostname(urlObj.hostname)) {\n return ''\n } else {\n return publicUrl\n }\n } catch(err) {\n return INVALID\n }\n}\n\nexport function isValidHandle(handle?: string) {\n if (!handle || typeof handle !== 'string') {\n return false\n }\n return isValidHandleSyntax(handle);\n}\n\nfunction getAppPackageName(): string | null {\n let dir = process.cwd()\n\n while (true) {\n const pkgPath = path.join(dir, 'package.json')\n if (fs.existsSync(pkgPath)) {\n try {\n const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))\n return pkg.name ?? null\n } catch {\n return null\n }\n }\n\n const parent = path.dirname(dir)\n if (parent === dir) break\n dir = parent\n }\n\n return null\n}\n\nexport function getDatabasePath() {\n // local db file\n return DEFAULT_DBFILE_NAME\n\n let dbFile = DEFAULT_DBFILE_NAME;\n const packageName = getAppPackageName()\n if (packageName) {\n dbFile = `${packageName}-${dbFile}`\n }\n dbFile = dbFile.replace(/\\s+/g, '-');\n\n const dir = path.join(os.homedir(), DEFAULT_DBFILE_DIR, 'db')\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir, { recursive: true })\n }\n\n const file = path.join(dir, dbFile)\n return file\n}\n","export const INVALID = 'invalid';\nexport const DEFAULT_DBFILE_NAME = 'database.sqlite';\nexport const DEFAULT_DBFILE_DIR = '.onelyid';\nexport const COOKIE_SECRET_KEY = 'cookie_secret';\nexport const STATE_SECRET_KEY = 'state_secret';\nexport const DEMO_HANDLE = 'abraj.dev';\n","import type { RuntimeLock } from '@atproto/oauth-client'\nimport type { Database } from './types/common'\n\nconst sleep = (ms: number) => new Promise((r) => setTimeout(r, ms))\n\nexport const sqliteRequestLock =\n (db: Database): RuntimeLock =>\n async <T>(\n name: string,\n fn: () => T | PromiseLike<T>\n ): Promise<T> => {\n // acquire\n while (true) {\n try {\n await db\n .insertInto('oauth_lock')\n .values({ key: name })\n .execute()\n break\n } catch {\n await sleep(50)\n }\n }\n\n try {\n return await fn()\n } finally {\n // release\n await db\n .deleteFrom('oauth_lock')\n .where('key', '=', name)\n .execute()\n }\n }\n","import crypto from 'node:crypto'\nimport type { Database } from './index';\nimport { COOKIE_SECRET_KEY, STATE_SECRET_KEY } from '../const';\n\nexport async function getOrCreateAppSecret(db: Database, keyName: string, bytesLength = 32) {\n const existing = await db\n .selectFrom('app_secrets')\n .select('value')\n .where('key', '=', keyName)\n .executeTakeFirst()\n\n if (existing) {\n return existing.value\n }\n\n // equivalent to `openssl rand -hex 32`\n const secret = crypto.randomBytes(bytesLength).toString('hex')\n\n await db\n .insertInto('app_secrets')\n .values({\n key: keyName,\n value: secret,\n })\n .onConflict((oc) => oc.doNothing())\n .execute()\n\n return secret\n}\n\nexport async function getOrCreateCookieSecret(db: Database) {\n return getOrCreateAppSecret(db, COOKIE_SECRET_KEY)\n}\n\nexport async function getOrCreateStateSecret(db: Database) {\n return getOrCreateAppSecret(db, STATE_SECRET_KEY)\n}\n","import { IdResolver, MemoryCache } from '@atproto/identity'\n\nconst HOUR = 60e3 * 60\nconst DAY = HOUR * 24\n\n\nexport function createIdResolver() {\n return new IdResolver({\n didCache: new MemoryCache(HOUR, DAY),\n })\n}\n\nexport interface BidirectionalResolver {\n resolveDidToHandle(did: string): Promise<string>\n resolveDidsToHandles(dids: string[]): Promise<Record<string, string>>\n}\n\nexport function createBidirectionalResolver(resolver: IdResolver) {\n return {\n async resolveDidToHandle(did: string): Promise<string> {\n const didDoc = await resolver.did.resolveAtprotoData(did)\n const resolvedHandle = await resolver.handle.resolve(didDoc.handle)\n if (resolvedHandle === did) {\n return didDoc.handle\n }\n return did\n },\n\n async resolveDidsToHandles(\n dids: string[]\n ): Promise<Record<string, string>> {\n const didHandleMap: Record<string, string> = {}\n const resolves = await Promise.all(\n dids.map((did) => this.resolveDidToHandle(did).catch((_) => did))\n )\n for (let i = 0; i < dids.length; i++) {\n didHandleMap[dids[i] ?? ''] = resolves[i] ?? ''\n }\n return didHandleMap\n },\n }\n}\n","import type { IncomingMessage, ServerResponse } from 'node:http'\nimport { Agent } from '@atproto/api'\nimport { OAuthServerAgent } from '@atproto/oauth-client-node'\nimport { getIronSession } from 'iron-session'\nimport { getBaseDomain, getHostname, getMainAuthDomain, isLocalHostname } from '@onelyid/common'\nimport { AppContext, UserInfo, Session } from './types/common'\nimport * as Profile from '#/internal/generated/lexicon/types/app/bsky/actor/profile'\nimport dataTrusted from './data/trusted.json'\n\nexport async function getSession(\n req: IncomingMessage,\n res: ServerResponse<IncomingMessage>,\n cookieSecret: string,\n) {\n const hostname = getHostname(req as any)\n const isLocalhost = isLocalHostname(hostname)\n const baseDomainObj = getBaseDomain(req)\n const mainAuthDomain = getMainAuthDomain(req)\n\n let cookieDomain = baseDomainObj ? baseDomainObj.baseDomain : undefined\n if (cookieDomain === mainAuthDomain || baseDomainObj?.isLocalhost || !baseDomainObj?.isVerified) {\n cookieDomain = undefined; // Host-only cookie\n }\n if (cookieDomain) {\n cookieDomain = `.${cookieDomain}`\n }\n\n const session = await getIronSession<Session>(req, res, {\n cookieName: 'sid',\n password: cookieSecret,\n cookieOptions: { // NOTE: the same cookie options are used for cookie deletion also\n domain: cookieDomain,\n path: '/',\n httpOnly: true,\n secure: !isLocalhost && process.env.NODE_ENV === 'production',\n sameSite: 'lax',\n maxAge: 60 * 60 * 24 * 7, // 7 days\n }\n })\n return session;\n}\n\nexport async function setSession(\n req: IncomingMessage,\n res: ServerResponse<IncomingMessage>,\n cookieSecret: string,\n session: any,\n) {\n if (!session) return\n const clientSession = await getSession(req, res, cookieSecret);\n // assert(!clientSession.did, 'session already exists')\n if (session.did) clientSession.did = session.did\n await clientSession.save()\n}\n\n// Helper function to get the Atproto Agent for the active session\nexport async function getSessionAgent(\n req: IncomingMessage,\n res: ServerResponse<IncomingMessage>,\n ctx: AppContext,\n cookieSecret: string,\n): Promise<{ agent?: Agent | null, issuer?: string, error?: string }> {\n const session = await getSession(req, res, cookieSecret);\n if (!session.did) return { agent: null }\n try {\n const oauthSession = await (req as any).ctx.oauthClient!.restore(session.did)\n\n let issuer: OAuthServerAgent['issuer'] | null = oauthSession.server.issuer;\n if (!issuer || issuer !== oauthSession.serverMetadata.issuer) {\n return { error: 'invalid issuer' }\n }\n\n const agent = oauthSession ? new Agent(oauthSession) : null\n return { agent, issuer }\n } catch (err) {\n const error = 'oauth restore failed'\n ctx.logger.warn({ err }, error)\n await session.destroy()\n return { error }\n }\n}\n\nexport async function getSessionUser(\n req: IncomingMessage,\n res: ServerResponse<IncomingMessage>,\n ctx: AppContext,\n cookieSecret: string,\n): Promise<{ user?: UserInfo | null, error?: string }> {\n // If the user is signed in, get an agent which communicates with their server\n const { agent, issuer } = await getSessionAgent(req, res, ctx, cookieSecret);\n\n if (!agent || !issuer) {\n return { user: null }\n }\n\n const issuerTrusted = dataTrusted.trustedIssuers.includes(issuer)\n\n // Fetch user info (current auth session)\n const userSessionPr = agent.com.atproto.server.getSession().catch(() => undefined);\n\n // Fetch additional information about the logged-in user\n const profileResponsePr = agent.com.atproto.repo.getRecord({\n repo: agent.assertDid,\n collection: 'app.bsky.actor.profile',\n rkey: 'self',\n }).catch(() => undefined);\n\n const [userSession, profileResponse] = await Promise.all([userSessionPr, profileResponsePr]);\n\n const profileRecord = profileResponse?.data;\n const userInfo = userSession?.data;\n\n const profile: Profile.Record | null = profileRecord &&\n Profile.isRecord(profileRecord.value) &&\n Profile.validateRecord(profileRecord.value).success\n ? profileRecord.value\n : null\n\n const handle = userInfo?.handle;\n const email = userInfo?.email;\n const emailConfirmed = userInfo?.emailConfirmed;\n\n // TODO: email verification in case of untrusted issuer\n const emailTrusted = issuerTrusted;\n\n if (!handle) {\n const error = 'handle missing'\n ctx.logger.error(error)\n ctx.logger.warn('userSession:', userSession)\n return { error }\n }\n\n if (!email || !emailConfirmed) {\n const error = 'no verified email found'\n ctx.logger.error(error)\n ctx.logger.warn('email:', email, `[${emailConfirmed}]`)\n ctx.logger.warn('user:', { did: agent.assertDid, handle, displayName: profile?.displayName ?? '' })\n return { error }\n }\n\n const profileData: UserInfo = {\n did: agent.assertDid,\n handle,\n email,\n emailTrusted,\n displayName: profile?.displayName ?? '',\n avatar: 'BlobRef{ref,mimeType,size,original}', // profile.avatar\n // profile.createdAt\n // profile.description\n };\n\n return { user: profileData }\n}\n","/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport {\n type LexiconDoc,\n Lexicons,\n ValidationError,\n type ValidationResult,\n} from '@atproto/lexicon'\nimport { type $Typed, is$typed, maybe$typed } from './util.js'\n\nexport const schemaDict = {\n ComAtprotoLabelDefs: {\n lexicon: 1,\n id: 'com.atproto.label.defs',\n defs: {\n label: {\n type: 'object',\n description:\n 'Metadata tag on an atproto resource (eg, repo or record).',\n required: ['src', 'uri', 'val', 'cts'],\n properties: {\n ver: {\n type: 'integer',\n description: 'The AT Protocol version of the label object.',\n },\n src: {\n type: 'string',\n format: 'did',\n description: 'DID of the actor who created this label.',\n },\n uri: {\n type: 'string',\n format: 'uri',\n description:\n 'AT URI of the record, repository (account), or other resource that this label applies to.',\n },\n cid: {\n type: 'string',\n format: 'cid',\n description:\n \"Optionally, CID specifying the specific version of 'uri' resource this label applies to.\",\n },\n val: {\n type: 'string',\n maxLength: 128,\n description:\n 'The short string name of the value or type of this label.',\n },\n neg: {\n type: 'boolean',\n description:\n 'If true, this is a negation label, overwriting a previous label.',\n },\n cts: {\n type: 'string',\n format: 'datetime',\n description: 'Timestamp when this label was created.',\n },\n exp: {\n type: 'string',\n format: 'datetime',\n description:\n 'Timestamp at which this label expires (no longer applies).',\n },\n sig: {\n type: 'bytes',\n description: 'Signature of dag-cbor encoded label.',\n },\n },\n },\n selfLabels: {\n type: 'object',\n description:\n 'Metadata tags on an atproto record, published by the author within the record.',\n required: ['values'],\n properties: {\n values: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#selfLabel',\n },\n maxLength: 10,\n },\n },\n },\n selfLabel: {\n type: 'object',\n description:\n 'Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.',\n required: ['val'],\n properties: {\n val: {\n type: 'string',\n maxLength: 128,\n description:\n 'The short string name of the value or type of this label.',\n },\n },\n },\n labelValueDefinition: {\n type: 'object',\n description:\n 'Declares a label value and its expected interpretations and behaviors.',\n required: ['identifier', 'severity', 'blurs', 'locales'],\n properties: {\n identifier: {\n type: 'string',\n description:\n \"The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).\",\n maxLength: 100,\n maxGraphemes: 100,\n },\n severity: {\n type: 'string',\n description:\n \"How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.\",\n knownValues: ['inform', 'alert', 'none'],\n },\n blurs: {\n type: 'string',\n description:\n \"What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.\",\n knownValues: ['content', 'media', 'none'],\n },\n defaultSetting: {\n type: 'string',\n description: 'The default setting for this label.',\n knownValues: ['ignore', 'warn', 'hide'],\n default: 'warn',\n },\n adultOnly: {\n type: 'boolean',\n description:\n 'Does the user need to have adult content enabled in order to configure this label?',\n },\n locales: {\n type: 'array',\n items: {\n type: 'ref',\n ref: 'lex:com.atproto.label.defs#labelValueDefinitionStrings',\n },\n },\n },\n },\n labelValueDefinitionStrings: {\n type: 'object',\n description:\n 'Strings which describe the label in the UI, localized into a specific language.',\n required: ['lang', 'name', 'description'],\n properties: {\n lang: {\n type: 'string',\n description:\n 'The code of the language these strings are written in.',\n format: 'language',\n },\n name: {\n type: 'string',\n description: 'A short human-readable name for the label.',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n description:\n 'A longer description of what the label means and why it might be applied.',\n maxGraphemes: 10000,\n maxLength: 100000,\n },\n },\n },\n labelValue: {\n type: 'string',\n knownValues: [\n '!hide',\n '!no-promote',\n '!warn',\n '!no-unauthenticated',\n 'dmca-violation',\n 'doxxing',\n 'porn',\n 'sexual',\n 'nudity',\n 'nsfl',\n 'gore',\n ],\n },\n },\n },\n AppBskyActorProfile: {\n lexicon: 1,\n id: 'app.bsky.actor.profile',\n defs: {\n main: {\n type: 'record',\n description: 'A declaration of a Bluesky account profile.',\n key: 'literal:self',\n record: {\n type: 'object',\n properties: {\n displayName: {\n type: 'string',\n maxGraphemes: 64,\n maxLength: 640,\n },\n description: {\n type: 'string',\n description: 'Free-form profile description text.',\n maxGraphemes: 256,\n maxLength: 2560,\n },\n avatar: {\n type: 'blob',\n description:\n \"Small image to be displayed next to posts from account. AKA, 'profile picture'\",\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n banner: {\n type: 'blob',\n description:\n 'Larger horizontal image to display behind profile view.',\n accept: ['image/png', 'image/jpeg'],\n maxSize: 1000000,\n },\n labels: {\n type: 'union',\n description:\n 'Self-label values, specific to the Bluesky application, on the overall account.',\n refs: ['lex:com.atproto.label.defs#selfLabels'],\n },\n joinedViaStarterPack: {\n type: 'ref',\n ref: 'lex:com.atproto.repo.strongRef',\n },\n createdAt: {\n type: 'string',\n format: 'datetime',\n },\n },\n },\n },\n },\n },\n ComAtprotoRepoStrongRef: {\n lexicon: 1,\n id: 'com.atproto.repo.strongRef',\n description: 'A URI with a content-hash fingerprint.',\n defs: {\n main: {\n type: 'object',\n required: ['uri', 'cid'],\n properties: {\n uri: {\n type: 'string',\n format: 'at-uri',\n },\n cid: {\n type: 'string',\n format: 'cid',\n },\n },\n },\n },\n },\n} as const satisfies Record<string, LexiconDoc>\nexport const schemas = Object.values(schemaDict) satisfies LexiconDoc[]\nexport const lexicons: Lexicons = new Lexicons(schemas)\n\nexport function validate<T extends { $type: string }>(\n v: unknown,\n id: string,\n hash: string,\n requiredType: true,\n): ValidationResult<T>\nexport function validate<T extends { $type?: string }>(\n v: unknown,\n id: string,\n hash: string,\n requiredType?: false,\n): ValidationResult<T>\nexport function validate(\n v: unknown,\n id: string,\n hash: string,\n requiredType?: boolean,\n): ValidationResult {\n return (requiredType ? is$typed : maybe$typed)(v, id, hash)\n ? lexicons.validate(`${id}#${hash}`, v)\n : {\n success: false,\n error: new ValidationError(\n `Must be an object with \"${hash === 'main' ? id : `${id}#${hash}`}\" $type property`,\n ),\n }\n}\n\nexport const ids = {\n ComAtprotoLabelDefs: 'com.atproto.label.defs',\n AppBskyActorProfile: 'app.bsky.actor.profile',\n ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',\n} as const\n","/**\n * GENERATED CODE - DO NOT MODIFY\n */\n\nimport { type ValidationResult } from '@atproto/lexicon'\n\nexport type OmitKey<T, K extends keyof T> = {\n [K2 in keyof T as K2 extends K ? never : K2]: T[K2]\n}\n\nexport type $Typed<V, T extends string = string> = V & { $type: T }\nexport type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>\n\nexport type $Type<Id extends string, Hash extends string> = Hash extends 'main'\n ? Id\n : `${Id}#${Hash}`\n\nfunction isObject<V>(v: V): v is V & object {\n return v != null && typeof v === 'object'\n}\n\nfunction is$type<Id extends string, Hash extends string>(\n $type: unknown,\n id: Id,\n hash: Hash,\n): $type is $Type<Id, Hash> {\n return hash === 'main'\n ? $type === id\n : // $type === `${id}#${hash}`\n typeof $type === 'string' &&\n $type.length === id.length + 1 + hash.length &&\n $type.charCodeAt(id.length) === 35 /* '#' */ &&\n $type.startsWith(id) &&\n $type.endsWith(hash)\n}\n\nexport type $TypedObject<\n V,\n Id extends string,\n Hash extends string,\n> = V extends {\n $type: $Type<Id, Hash>\n}\n ? V\n : V extends { $type?: string }\n ? V extends { $type?: infer T extends $Type<Id, Hash> }\n ? V & { $type: T }\n : never\n : V & { $type: $Type<Id, Hash> }\n\nexport function is$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is $TypedObject<V, Id, Hash> {\n return isObject(v) && '$type' in v && is$type(v.$type, id, hash)\n}\n\nexport function maybe$typed<V, Id extends string, Hash extends string>(\n v: V,\n id: Id,\n hash: Hash,\n): v is V & object & { $type?: $Type<Id, Hash> } {\n return (\n isObject(v) &&\n ('$type' in v ? v.$type === undefined || is$type(v.$type, id, hash) : true)\n )\n}\n\nexport type Validator<R = unknown> = (v: unknown) => ValidationResult<R>\nexport type ValidatorParam<V extends Validator> =\n V extends Validator<infer R> ? R : never\n\n/**\n * Utility function that allows to convert a \"validate*\" utility function into a\n * type predicate.\n */\nexport function asPredicate<V extends Validator>(validate: V) {\n return function <T>(v: T): v is T & ValidatorParam<V> {\n return validate(v).success\n }\n}\n","/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'\nimport type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'app.bsky.actor.profile'\n\nexport interface Main {\n $type: 'app.bsky.actor.profile'\n displayName?: string\n /** Free-form profile description text. */\n description?: string\n /** Small image to be displayed next to posts from account. AKA, 'profile picture' */\n avatar?: BlobRef\n /** Larger horizontal image to display behind profile view. */\n banner?: BlobRef\n labels?: $Typed<ComAtprotoLabelDefs.SelfLabels> | { $type: string }\n joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main\n createdAt?: string\n [k: string]: unknown\n}\n\nconst hashMain = 'main'\n\nexport function isMain<V>(v: V) {\n return is$typed(v, id, hashMain)\n}\n\nexport function validateMain<V>(v: V) {\n return validate<Main & V>(v, id, hashMain, true)\n}\n\nexport {\n type Main as Record,\n isMain as isRecord,\n validateMain as validateRecord,\n}\n","{\n \"trustedIssuers\": [\"https://bsky.social\"]\n}\n"],"mappings":"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","names":["exports","util","objectUtil","exports","exports","exports","__importDefault","exports","__importDefault","path","exports","exports","errorUtil","exports","path","ctx","result","issues","schemas","elements","processed","r","ZodFirstPartyTypeKind","exports","__createBinding","__exportStar","exports","__createBinding","__setModuleDefault","__importStar","__exportStar","exports","isObject","exports","exports","exports","clockid","exports","v","path","d","b","__assign","o","exports","module","require_varint","exports","exports","exports","bytes","exports","module","i","j","exports","bytes","encode","decode","exports","exports","exports","version","bytes","digest","cid","exports","exports","crypto","exports","isObject","exports","exports","Buffer","exports","exports","exports","exports","exports","exports","exports","exports","require_identity","exports","exports","exports","exports","exports","exports","module","string","exports","exports","Buffer","exports","exports","Buffer","exports","exports","exports","exports","exports","exports","value","exports","Buffer","exports","exports","exports","exports","cat","exports","exports","exports","Buffer","exports","exports","exports","require_json","exports","exports","exports","exports","exports","exports","exports","exports","exports","exports","exports","id","service","exports","__importStar","__exportStar","exports","exports","ValidationError","exports","exports","lexicons","path","require_dist","exports","t","r","n","e","i","o","a","u","d","exports","path","exports","validate","__importStar","lexicons","path","exports","validate","lexicons","path","exports","__importStar","lexicons","path","exports","lexicons","path","Lexicons","exports","exports","__exportStar","exports","import_oauth_client_node","import_common","SqliteDb","import_common","isValidHandleSyntax","path","fs","os","crypto","import_common","id","id","is$typed","validate","express","authClientMountPath","searchParams","path","state"]}
|