@dodopayments/fastify 0.2.5 → 0.2.6

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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/zod/v3/helpers/util.js","../../../node_modules/zod/v3/ZodError.js","../../../node_modules/zod/v3/locales/en.js","../../../node_modules/zod/v3/errors.js","../../../node_modules/zod/v3/helpers/parseUtil.js","../../../node_modules/zod/v3/helpers/errorUtil.js","../../../node_modules/zod/v3/types.js","../../../node_modules/dodopayments/internal/tslib.mjs","../../../node_modules/dodopayments/internal/utils/uuid.mjs","../../../node_modules/dodopayments/internal/errors.mjs","../../../node_modules/dodopayments/core/error.mjs","../../../node_modules/dodopayments/internal/utils/values.mjs","../../../node_modules/dodopayments/internal/utils/sleep.mjs","../../../node_modules/dodopayments/version.mjs","../../../node_modules/dodopayments/internal/detect-platform.mjs","../../../node_modules/dodopayments/internal/shims.mjs","../../../node_modules/dodopayments/internal/request-options.mjs","../../../node_modules/dodopayments/internal/utils/log.mjs","../../../node_modules/dodopayments/internal/parse.mjs","../../../node_modules/dodopayments/core/api-promise.mjs","../../../node_modules/dodopayments/core/pagination.mjs","../../../node_modules/dodopayments/internal/uploads.mjs","../../../node_modules/dodopayments/internal/to-file.mjs","../../../node_modules/dodopayments/core/resource.mjs","../../../node_modules/dodopayments/internal/utils/path.mjs","../../../node_modules/dodopayments/resources/addons.mjs","../../../node_modules/dodopayments/resources/brands.mjs","../../../node_modules/dodopayments/resources/checkout-sessions.mjs","../../../node_modules/dodopayments/resources/customers/customer-portal.mjs","../../../node_modules/dodopayments/resources/customers/wallets/ledger-entries.mjs","../../../node_modules/dodopayments/resources/customers/wallets/wallets.mjs","../../../node_modules/dodopayments/resources/customers/customers.mjs","../../../node_modules/dodopayments/internal/headers.mjs","../../../node_modules/dodopayments/resources/discounts.mjs","../../../node_modules/dodopayments/resources/disputes.mjs","../../../node_modules/dodopayments/resources/invoices/payments.mjs","../../../node_modules/dodopayments/resources/invoices/invoices.mjs","../../../node_modules/dodopayments/resources/license-key-instances.mjs","../../../node_modules/dodopayments/resources/license-keys.mjs","../../../node_modules/dodopayments/resources/licenses.mjs","../../../node_modules/dodopayments/resources/meters.mjs","../../../node_modules/dodopayments/resources/misc.mjs","../../../node_modules/dodopayments/resources/payments.mjs","../../../node_modules/dodopayments/resources/payouts.mjs","../../../node_modules/dodopayments/resources/products/images.mjs","../../../node_modules/dodopayments/resources/products/products.mjs","../../../node_modules/dodopayments/resources/refunds.mjs","../../../node_modules/dodopayments/resources/subscriptions.mjs","../../../node_modules/dodopayments/resources/usage-events.mjs","../../../node_modules/dodopayments/resources/webhook-events.mjs","../../../node_modules/dodopayments/resources/webhooks/headers.mjs","../../../node_modules/standardwebhooks/dist/timing_safe_equal.js","../../../node_modules/@stablelib/base64/lib/base64.js","../../../node_modules/fast-sha256/sha256.js","../../../node_modules/standardwebhooks/dist/index.js","../../../node_modules/dodopayments/resources/webhooks/webhooks.mjs","../../../node_modules/dodopayments/internal/utils/env.mjs","../../../node_modules/dodopayments/client.mjs","../../core/dist/chunk-BVTJMX2W.js","../../core/dist/chunk-7D4SUZUM.js","../src/checkout/checkout.ts","../../core/dist/chunk-JOR4TAXM.js","../../core/dist/chunk-65ICCAWN.js","../../core/dist/chunk-RVDSIWI4.js","../src/webhooks/webhooks.ts","../src/customer-portal/customer-portal.ts"],"sourcesContent":["export var 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 || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const 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]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = 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]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class 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.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}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case 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.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 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 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 ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const 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};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = 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 === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class 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 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 INVALID;\n if (value.status === \"aborted\")\n return 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}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var 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 || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\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 (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(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}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: 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 ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: 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 (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: 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: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return 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) => 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: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (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: 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}\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\nexport function 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}\nexport class 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 !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n validation: \"email\",\n code: 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 addIssueToContext(ctx, {\n validation: \"emoji\",\n code: 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 addIssueToContext(ctx, {\n validation: \"uuid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cuid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: 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 addIssueToContext(ctx, {\n validation: \"ulid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"url\",\n code: 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 addIssueToContext(ctx, {\n validation: \"regex\",\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n validation: \"duration\",\n code: 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 addIssueToContext(ctx, {\n validation: \"ip\",\n code: 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 addIssueToContext(ctx, {\n validation: \"jwt\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cidr\",\n code: 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 addIssueToContext(ctx, {\n validation: \"base64\",\n code: 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 addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n 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: ZodIssueCode.invalid_string,\n ...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.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...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.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...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.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.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...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.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(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}\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}\nexport class 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 !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n 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.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, 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.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.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: 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.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: 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.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}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, 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.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.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: 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.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: 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}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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.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.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: 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}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class 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 OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return 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 addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 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 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.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\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}\nexport class 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.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return 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 addIssueToContext(ctx, {\n code: 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 ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n 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.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.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.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.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.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.objectKeys(this.shape));\n }\n}\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};\nexport class 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(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return 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(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\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.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};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return 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}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = 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 === ZodParsedType.array && bType === 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 === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || 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}\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[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: 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 ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return 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}\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};\nexport class 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 !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return 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 ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return 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}\nexport class 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 !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return 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 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 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}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 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.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: 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}\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};\nexport class 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 !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: 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 OK(async function (...args) {\n const error = new 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 OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new 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([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}\nexport class 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}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\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}\nexport class 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 addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return 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 addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return 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}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class 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 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 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 INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return 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 INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return 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 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 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 (!isValid(base))\n return 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 (!isValid(base))\n return 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.assertNever(effect);\n }\n}\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};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === 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}\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};\nexport class 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 (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(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(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\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};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class 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}\nexport class 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 INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return 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 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}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\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}\nexport function 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}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var 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 || (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);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const 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};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n 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}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n 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}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class DodoPaymentsError extends Error {\n}\nexport class APIError extends DodoPaymentsError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.error = error;\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse;\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { DodoPaymentsError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new DodoPaymentsError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new DodoPaymentsError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new DodoPaymentsError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '2.4.6'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new DodoPayments({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n return json;\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data and the raw `Response` instance.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { DodoPaymentsError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new DodoPaymentsError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\nexport class DefaultPageNumberPagination extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.items = body.items || [];\n }\n getPaginatedItems() {\n return this.items ?? [];\n }\n nextPageRequestOptions() {\n const query = this.options.query;\n const currentPage = query?.page_number ?? 1;\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page_number: currentPage + 1,\n },\n };\n }\n}\nexport class CursorPagePagination extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.iterator = body.iterator || '';\n this.done = body.done || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.done === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.iterator;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n iterator: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { DodoPaymentsError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new DodoPaymentsError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Addons extends APIResource {\n create(body, options) {\n return this._client.post('/addons', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/addons/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/addons/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/addons', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n updateImages(id, options) {\n return this._client.put(path `/addons/${id}/images`, options);\n }\n}\n//# sourceMappingURL=addons.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Brands extends APIResource {\n create(body, options) {\n return this._client.post('/brands', { body, ...options });\n }\n /**\n * Thin handler just calls `get_brand` and wraps in `Json(...)`\n */\n retrieve(id, options) {\n return this._client.get(path `/brands/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/brands/${id}`, { body, ...options });\n }\n list(options) {\n return this._client.get('/brands', options);\n }\n updateImages(id, options) {\n return this._client.put(path `/brands/${id}/images`, options);\n }\n}\n//# sourceMappingURL=brands.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class CheckoutSessions extends APIResource {\n create(body, options) {\n return this._client.post('/checkouts', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/checkouts/${id}`, options);\n }\n}\n//# sourceMappingURL=checkout-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class CustomerPortal extends APIResource {\n create(customerID, params = {}, options) {\n const { send_email } = params ?? {};\n return this._client.post(path `/customers/${customerID}/customer-portal/session`, {\n query: { send_email },\n ...options,\n });\n }\n}\n//# sourceMappingURL=customer-portal.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class LedgerEntries extends APIResource {\n create(customerID, body, options) {\n return this._client.post(path `/customers/${customerID}/wallets/ledger-entries`, { body, ...options });\n }\n list(customerID, query = {}, options) {\n return this._client.getAPIList(path `/customers/${customerID}/wallets/ledger-entries`, (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=ledger-entries.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as LedgerEntriesAPI from \"./ledger-entries.mjs\";\nimport { LedgerEntries, } from \"./ledger-entries.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Wallets extends APIResource {\n constructor() {\n super(...arguments);\n this.ledgerEntries = new LedgerEntriesAPI.LedgerEntries(this._client);\n }\n list(customerID, options) {\n return this._client.get(path `/customers/${customerID}/wallets`, options);\n }\n}\nWallets.LedgerEntries = LedgerEntries;\n//# sourceMappingURL=wallets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CustomerPortalAPI from \"./customer-portal.mjs\";\nimport { CustomerPortal } from \"./customer-portal.mjs\";\nimport * as WalletsAPI from \"./wallets/wallets.mjs\";\nimport { Wallets } from \"./wallets/wallets.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Customers extends APIResource {\n constructor() {\n super(...arguments);\n this.customerPortal = new CustomerPortalAPI.CustomerPortal(this._client);\n this.wallets = new WalletsAPI.Wallets(this._client);\n }\n create(body, options) {\n return this._client.post('/customers', { body, ...options });\n }\n retrieve(customerID, options) {\n return this._client.get(path `/customers/${customerID}`, options);\n }\n update(customerID, body, options) {\n return this._client.patch(path `/customers/${customerID}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/customers', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\nCustomers.CustomerPortal = CustomerPortal;\nCustomers.Wallets = Wallets;\n//# sourceMappingURL=customers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Discounts extends APIResource {\n /**\n * POST /discounts If `code` is omitted or empty, a random 16-char uppercase code\n * is generated.\n */\n create(body, options) {\n return this._client.post('/discounts', { body, ...options });\n }\n /**\n * GET /discounts/{discount_id}\n */\n retrieve(discountID, options) {\n return this._client.get(path `/discounts/${discountID}`, options);\n }\n /**\n * PATCH /discounts/{discount_id}\n */\n update(discountID, body, options) {\n return this._client.patch(path `/discounts/${discountID}`, { body, ...options });\n }\n /**\n * GET /discounts\n */\n list(query = {}, options) {\n return this._client.getAPIList('/discounts', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n /**\n * DELETE /discounts/{discount_id}\n */\n delete(discountID, options) {\n return this._client.delete(path `/discounts/${discountID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=discounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Disputes extends APIResource {\n retrieve(disputeID, options) {\n return this._client.get(path `/disputes/${disputeID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/disputes', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=disputes.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Payments extends APIResource {\n retrieve(paymentID, options) {\n return this._client.get(path `/invoices/payments/${paymentID}`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/pdf' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n retrieveRefund(refundID, options) {\n return this._client.get(path `/invoices/refunds/${refundID}`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/pdf' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PaymentsAPI from \"./payments.mjs\";\nimport { Payments } from \"./payments.mjs\";\nexport class Invoices extends APIResource {\n constructor() {\n super(...arguments);\n this.payments = new PaymentsAPI.Payments(this._client);\n }\n}\nInvoices.Payments = Payments;\n//# sourceMappingURL=invoices.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class LicenseKeyInstances extends APIResource {\n /**\n * @example\n * ```ts\n * const licenseKeyInstance =\n * await client.licenseKeyInstances.retrieve('lki_123');\n * ```\n */\n retrieve(id, options) {\n return this._client.get(path `/license_key_instances/${id}`, options);\n }\n /**\n * @example\n * ```ts\n * const licenseKeyInstance =\n * await client.licenseKeyInstances.update('lki_123', {\n * name: 'name',\n * });\n * ```\n */\n update(id, body, options) {\n return this._client.patch(path `/license_key_instances/${id}`, { body, ...options });\n }\n /**\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const licenseKeyInstance of client.licenseKeyInstances.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/license_key_instances', (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=license-key-instances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class LicenseKeys extends APIResource {\n /**\n * @example\n * ```ts\n * const licenseKey = await client.licenseKeys.retrieve(\n * 'lic_123',\n * );\n * ```\n */\n retrieve(id, options) {\n return this._client.get(path `/license_keys/${id}`, options);\n }\n /**\n * @example\n * ```ts\n * const licenseKey = await client.licenseKeys.update(\n * 'lic_123',\n * );\n * ```\n */\n update(id, body, options) {\n return this._client.patch(path `/license_keys/${id}`, { body, ...options });\n }\n /**\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const licenseKey of client.licenseKeys.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/license_keys', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=license-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Licenses extends APIResource {\n /**\n * @example\n * ```ts\n * const response = await client.licenses.activate({\n * license_key: 'license_key',\n * name: 'name',\n * });\n * ```\n */\n activate(body, options) {\n return this._client.post('/licenses/activate', { body, ...options });\n }\n /**\n * @example\n * ```ts\n * await client.licenses.deactivate({\n * license_key: 'license_key',\n * license_key_instance_id: 'license_key_instance_id',\n * });\n * ```\n */\n deactivate(body, options) {\n return this._client.post('/licenses/deactivate', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * @example\n * ```ts\n * const response = await client.licenses.validate({\n * license_key: '2b1f8e2d-c41e-4e8f-b2d3-d9fd61c38f43',\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/licenses/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=licenses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Meters extends APIResource {\n create(body, options) {\n return this._client.post('/meters', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/meters/${id}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/meters', (DefaultPageNumberPagination), { query, ...options });\n }\n archive(id, options) {\n return this._client.delete(path `/meters/${id}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n unarchive(id, options) {\n return this._client.post(path `/meters/${id}/unarchive`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=meters.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Misc extends APIResource {\n listSupportedCountries(options) {\n return this._client.get('/checkout/supported_countries', options);\n }\n}\n//# sourceMappingURL=misc.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Payments extends APIResource {\n create(body, options) {\n return this._client.post('/payments', { body, ...options });\n }\n retrieve(paymentID, options) {\n return this._client.get(path `/payments/${paymentID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/payments', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n retrieveLineItems(paymentID, options) {\n return this._client.get(path `/payments/${paymentID}/line-items`, options);\n }\n}\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nexport class Payouts extends APIResource {\n list(query = {}, options) {\n return this._client.getAPIList('/payouts', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=payouts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Images extends APIResource {\n update(id, params = {}, options) {\n const { force_update } = params ?? {};\n return this._client.put(path `/products/${id}/images`, { query: { force_update }, ...options });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ImagesAPI from \"./images.mjs\";\nimport { Images } from \"./images.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Products extends APIResource {\n constructor() {\n super(...arguments);\n this.images = new ImagesAPI.Images(this._client);\n }\n create(body, options) {\n return this._client.post('/products', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/products/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/products/${id}`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/products', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n archive(id, options) {\n return this._client.delete(path `/products/${id}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n unarchive(id, options) {\n return this._client.post(path `/products/${id}/unarchive`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n updateFiles(id, body, options) {\n return this._client.put(path `/products/${id}/files`, { body, ...options });\n }\n}\nProducts.Images = Images;\n//# sourceMappingURL=products.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Refunds extends APIResource {\n create(body, options) {\n return this._client.post('/refunds', { body, ...options });\n }\n retrieve(refundID, options) {\n return this._client.get(path `/refunds/${refundID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/refunds', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=refunds.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Subscriptions extends APIResource {\n create(body, options) {\n return this._client.post('/subscriptions', { body, ...options });\n }\n retrieve(subscriptionID, options) {\n return this._client.get(path `/subscriptions/${subscriptionID}`, options);\n }\n update(subscriptionID, body, options) {\n return this._client.patch(path `/subscriptions/${subscriptionID}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/subscriptions', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n changePlan(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/change-plan`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n charge(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/charge`, { body, ...options });\n }\n /**\n * Get detailed usage history for a subscription that includes usage-based billing\n * (metered components). This endpoint provides insights into customer usage\n * patterns and billing calculations over time.\n *\n * ## What You'll Get:\n *\n * - **Billing periods**: Each item represents a billing cycle with start and end\n * dates\n * - **Meter usage**: Detailed breakdown of usage for each meter configured on the\n * subscription\n * - **Usage calculations**: Total units consumed, free threshold units, and\n * chargeable units\n * - **Historical tracking**: Complete audit trail of usage-based charges\n *\n * ## Use Cases:\n *\n * - **Customer support**: Investigate billing questions and usage discrepancies\n * - **Usage analytics**: Analyze customer consumption patterns over time\n * - **Billing transparency**: Provide customers with detailed usage breakdowns\n * - **Revenue optimization**: Identify usage trends to optimize pricing strategies\n *\n * ## Filtering Options:\n *\n * - **Date range filtering**: Get usage history for specific time periods\n * - **Meter-specific filtering**: Focus on usage for a particular meter\n * - **Pagination**: Navigate through large usage histories efficiently\n *\n * ## Important Notes:\n *\n * - Only returns data for subscriptions with usage-based (metered) components\n * - Usage history is organized by billing periods (subscription cycles)\n * - Free threshold units are calculated and displayed separately from chargeable\n * units\n * - Historical data is preserved even if meter configurations change\n *\n * ## Example Query Patterns:\n *\n * - Get last 3 months:\n * `?start_date=2024-01-01T00:00:00Z&end_date=2024-03-31T23:59:59Z`\n * - Filter by meter: `?meter_id=mtr_api_requests`\n * - Paginate results: `?page_size=20&page_number=1`\n * - Recent usage: `?start_date=2024-03-01T00:00:00Z` (from March 1st to now)\n */\n retrieveUsageHistory(subscriptionID, query = {}, options) {\n return this._client.getAPIList(path `/subscriptions/${subscriptionID}/usage-history`, (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=subscriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class UsageEvents extends APIResource {\n /**\n * Fetch detailed information about a single event using its unique event ID. This\n * endpoint is useful for:\n *\n * - Debugging specific event ingestion issues\n * - Retrieving event details for customer support\n * - Validating that events were processed correctly\n * - Getting the complete metadata for an event\n *\n * ## Event ID Format:\n *\n * The event ID should be the same value that was provided during event ingestion\n * via the `/events/ingest` endpoint. Event IDs are case-sensitive and must match\n * exactly.\n *\n * ## Response Details:\n *\n * The response includes all event data including:\n *\n * - Complete metadata key-value pairs\n * - Original timestamp (preserved from ingestion)\n * - Customer and business association\n * - Event name and processing information\n *\n * ## Example Usage:\n *\n * ```text\n * GET /events/api_call_12345\n * ```\n */\n retrieve(eventID, options) {\n return this._client.get(path `/events/${eventID}`, options);\n }\n /**\n * Fetch events from your account with powerful filtering capabilities. This\n * endpoint is ideal for:\n *\n * - Debugging event ingestion issues\n * - Analyzing customer usage patterns\n * - Building custom analytics dashboards\n * - Auditing billing-related events\n *\n * ## Filtering Options:\n *\n * - **Customer filtering**: Filter by specific customer ID\n * - **Event name filtering**: Filter by event type/name\n * - **Meter-based filtering**: Use a meter ID to apply the meter's event name and\n * filter criteria automatically\n * - **Time range filtering**: Filter events within a specific date range\n * - **Pagination**: Navigate through large result sets\n *\n * ## Meter Integration:\n *\n * When using `meter_id`, the endpoint automatically applies:\n *\n * - The meter's configured `event_name` filter\n * - The meter's custom filter criteria (if any)\n * - If you also provide `event_name`, it must match the meter's event name\n *\n * ## Example Queries:\n *\n * - Get all events for a customer: `?customer_id=cus_abc123`\n * - Get API request events: `?event_name=api_request`\n * - Get events from last 24 hours:\n * `?start=2024-01-14T10:30:00Z&end=2024-01-15T10:30:00Z`\n * - Get events with meter filtering: `?meter_id=mtr_xyz789`\n * - Paginate results: `?page_size=50&page_number=2`\n */\n list(query = {}, options) {\n return this._client.getAPIList('/events', (DefaultPageNumberPagination), { query, ...options });\n }\n /**\n * This endpoint allows you to ingest custom events that can be used for:\n *\n * - Usage-based billing and metering\n * - Analytics and reporting\n * - Customer behavior tracking\n *\n * ## Important Notes:\n *\n * - **Duplicate Prevention**:\n * - Duplicate `event_id` values within the same request are rejected (entire\n * request fails)\n * - Subsequent requests with existing `event_id` values are ignored (idempotent\n * behavior)\n * - **Rate Limiting**: Maximum 1000 events per request\n * - **Time Validation**: Events with timestamps older than 1 hour or more than 5\n * minutes in the future will be rejected\n * - **Metadata Limits**: Maximum 50 key-value pairs per event, keys max 100 chars,\n * values max 500 chars\n *\n * ## Example Usage:\n *\n * ```json\n * {\n * \"events\": [\n * {\n * \"event_id\": \"api_call_12345\",\n * \"customer_id\": \"cus_abc123\",\n * \"event_name\": \"api_request\",\n * \"timestamp\": \"2024-01-15T10:30:00Z\",\n * \"metadata\": {\n * \"endpoint\": \"/api/v1/users\",\n * \"method\": \"GET\",\n * \"tokens_used\": \"150\"\n * }\n * }\n * ]\n * }\n * ```\n */\n ingest(body, options) {\n return this._client.post('/events/ingest', { body, ...options });\n }\n}\n//# sourceMappingURL=usage-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class WebhookEvents extends APIResource {\n}\n//# sourceMappingURL=webhook-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Headers extends APIResource {\n /**\n * Get a webhook by id\n */\n retrieve(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}/headers`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookID, body, options) {\n return this._client.patch(path `/webhooks/${webhookID}/headers`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=headers.mjs.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timingSafeEqual = void 0;\nfunction assert(expr, msg = \"\") {\n if (!expr) {\n throw new Error(msg);\n }\n}\nfunction timingSafeEqual(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n if (!(a instanceof DataView)) {\n a = new DataView(ArrayBuffer.isView(a) ? a.buffer : a);\n }\n if (!(b instanceof DataView)) {\n b = new DataView(ArrayBuffer.isView(b) ? b.buffer : b);\n }\n assert(a instanceof DataView);\n assert(b instanceof DataView);\n const length = a.byteLength;\n let out = 0;\n let i = -1;\n while (++i < length) {\n out |= a.getUint8(i) ^ b.getUint8(i);\n }\n return out === 0;\n}\nexports.timingSafeEqual = timingSafeEqual;\n//# sourceMappingURL=timing_safe_equal.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n//# sourceMappingURL=base64.js.map","(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Webhook = exports.WebhookVerificationError = void 0;\nconst timing_safe_equal_1 = require(\"./timing_safe_equal\");\nconst base64 = require(\"@stablelib/base64\");\nconst sha256 = require(\"fast-sha256\");\nconst WEBHOOK_TOLERANCE_IN_SECONDS = 5 * 60;\nclass ExtendableError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, ExtendableError.prototype);\n this.name = \"ExtendableError\";\n this.stack = new Error(message).stack;\n }\n}\nclass WebhookVerificationError extends ExtendableError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, WebhookVerificationError.prototype);\n this.name = \"WebhookVerificationError\";\n }\n}\nexports.WebhookVerificationError = WebhookVerificationError;\nclass Webhook {\n constructor(secret, options) {\n if (!secret) {\n throw new Error(\"Secret can't be empty.\");\n }\n if ((options === null || options === void 0 ? void 0 : options.format) === \"raw\") {\n if (secret instanceof Uint8Array) {\n this.key = secret;\n }\n else {\n this.key = Uint8Array.from(secret, (c) => c.charCodeAt(0));\n }\n }\n else {\n if (typeof secret !== \"string\") {\n throw new Error(\"Expected secret to be of type string\");\n }\n if (secret.startsWith(Webhook.prefix)) {\n secret = secret.substring(Webhook.prefix.length);\n }\n this.key = base64.decode(secret);\n }\n }\n verify(payload, headers_) {\n const headers = {};\n for (const key of Object.keys(headers_)) {\n headers[key.toLowerCase()] = headers_[key];\n }\n const msgId = headers[\"webhook-id\"];\n const msgSignature = headers[\"webhook-signature\"];\n const msgTimestamp = headers[\"webhook-timestamp\"];\n if (!msgSignature || !msgId || !msgTimestamp) {\n throw new WebhookVerificationError(\"Missing required headers\");\n }\n const timestamp = this.verifyTimestamp(msgTimestamp);\n const computedSignature = this.sign(msgId, timestamp, payload);\n const expectedSignature = computedSignature.split(\",\")[1];\n const passedSignatures = msgSignature.split(\" \");\n const encoder = new globalThis.TextEncoder();\n for (const versionedSignature of passedSignatures) {\n const [version, signature] = versionedSignature.split(\",\");\n if (version !== \"v1\") {\n continue;\n }\n if ((0, timing_safe_equal_1.timingSafeEqual)(encoder.encode(signature), encoder.encode(expectedSignature))) {\n return JSON.parse(payload.toString());\n }\n }\n throw new WebhookVerificationError(\"No matching signature found\");\n }\n sign(msgId, timestamp, payload) {\n if (typeof payload === \"string\") {\n }\n else if (payload.constructor.name === \"Buffer\") {\n payload = payload.toString();\n }\n else {\n throw new Error(\"Expected payload to be of type string or Buffer.\");\n }\n const encoder = new TextEncoder();\n const timestampNumber = Math.floor(timestamp.getTime() / 1000);\n const toSign = encoder.encode(`${msgId}.${timestampNumber}.${payload}`);\n const expectedSignature = base64.encode(sha256.hmac(this.key, toSign));\n return `v1,${expectedSignature}`;\n }\n verifyTimestamp(timestampHeader) {\n const now = Math.floor(Date.now() / 1000);\n const timestamp = parseInt(timestampHeader, 10);\n if (isNaN(timestamp)) {\n throw new WebhookVerificationError(\"Invalid Signature Headers\");\n }\n if (now - timestamp > WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too old\");\n }\n if (timestamp > now + WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too new\");\n }\n return new Date(timestamp * 1000);\n }\n}\nexports.Webhook = Webhook;\nWebhook.prefix = \"whsec_\";\n//# sourceMappingURL=index.js.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as HeadersAPI from \"./headers.mjs\";\nimport { Headers } from \"./headers.mjs\";\nimport { Webhook } from 'standardwebhooks';\nimport { CursorPagePagination } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n this.headers = new HeadersAPI.Headers(this._client);\n }\n /**\n * Create a new webhook\n */\n create(body, options) {\n return this._client.post('/webhooks', { body, ...options });\n }\n /**\n * Get a webhook by id\n */\n retrieve(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookID, body, options) {\n return this._client.patch(path `/webhooks/${webhookID}`, { body, ...options });\n }\n /**\n * List all webhooks\n */\n list(query = {}, options) {\n return this._client.getAPIList('/webhooks', (CursorPagePagination), { query, ...options });\n }\n /**\n * Delete a webhook by id\n */\n delete(webhookID, options) {\n return this._client.delete(path `/webhooks/${webhookID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Get webhook secret by id\n */\n retrieveSecret(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}/secret`, options);\n }\n unsafeUnwrap(body) {\n return JSON.parse(body);\n }\n unwrap(body, { headers, key }) {\n if (headers !== undefined) {\n const keyStr = key === undefined ? this._client.webhookKey : key;\n if (keyStr === null)\n throw new Error('Webhook key must not be null in order to unwrap');\n const wh = new Webhook(keyStr);\n wh.verify(body, headers);\n }\n return JSON.parse(body);\n }\n}\nWebhooks.Headers = Headers;\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _DodoPayments_instances, _a, _DodoPayments_encoder, _DodoPayments_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Addons, } from \"./resources/addons.mjs\";\nimport { Brands, } from \"./resources/brands.mjs\";\nimport { CheckoutSessions, } from \"./resources/checkout-sessions.mjs\";\nimport { Discounts, } from \"./resources/discounts.mjs\";\nimport { Disputes, } from \"./resources/disputes.mjs\";\nimport { LicenseKeyInstances, } from \"./resources/license-key-instances.mjs\";\nimport { LicenseKeys, } from \"./resources/license-keys.mjs\";\nimport { Licenses, } from \"./resources/licenses.mjs\";\nimport { Meters, } from \"./resources/meters.mjs\";\nimport { Misc, } from \"./resources/misc.mjs\";\nimport { Payments, } from \"./resources/payments.mjs\";\nimport { Payouts, } from \"./resources/payouts.mjs\";\nimport { Refunds, } from \"./resources/refunds.mjs\";\nimport { Subscriptions, } from \"./resources/subscriptions.mjs\";\nimport { UsageEvents, } from \"./resources/usage-events.mjs\";\nimport { WebhookEvents } from \"./resources/webhook-events.mjs\";\nimport { Customers, } from \"./resources/customers/customers.mjs\";\nimport { Invoices } from \"./resources/invoices/invoices.mjs\";\nimport { Products, } from \"./resources/products/products.mjs\";\nimport { Webhooks, } from \"./resources/webhooks/webhooks.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\nconst environments = {\n live_mode: 'https://live.dodopayments.com',\n test_mode: 'https://test.dodopayments.com',\n};\n/**\n * API Client for interfacing with the Dodo Payments API.\n */\nexport class DodoPayments {\n /**\n * API Client for interfacing with the Dodo Payments API.\n *\n * @param {string | undefined} [opts.bearerToken=process.env['DODO_PAYMENTS_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.webhookKey=process.env['DODO_PAYMENTS_WEBHOOK_KEY'] ?? null]\n * @param {Environment} [opts.environment=live_mode] - Specifies the environment URL to use for the API.\n * @param {string} [opts.baseURL=process.env['DODO_PAYMENTS_BASE_URL'] ?? https://live.dodopayments.com] - Override the default base URL for the API.\n * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n */\n constructor({ baseURL = readEnv('DODO_PAYMENTS_BASE_URL'), bearerToken = readEnv('DODO_PAYMENTS_API_KEY'), webhookKey = readEnv('DODO_PAYMENTS_WEBHOOK_KEY') ?? null, ...opts } = {}) {\n _DodoPayments_instances.add(this);\n _DodoPayments_encoder.set(this, void 0);\n this.checkoutSessions = new API.CheckoutSessions(this);\n this.payments = new API.Payments(this);\n this.subscriptions = new API.Subscriptions(this);\n this.invoices = new API.Invoices(this);\n this.licenses = new API.Licenses(this);\n this.licenseKeys = new API.LicenseKeys(this);\n this.licenseKeyInstances = new API.LicenseKeyInstances(this);\n this.customers = new API.Customers(this);\n this.refunds = new API.Refunds(this);\n this.disputes = new API.Disputes(this);\n this.payouts = new API.Payouts(this);\n this.products = new API.Products(this);\n this.misc = new API.Misc(this);\n this.discounts = new API.Discounts(this);\n this.addons = new API.Addons(this);\n this.brands = new API.Brands(this);\n this.webhooks = new API.Webhooks(this);\n this.webhookEvents = new API.WebhookEvents(this);\n this.usageEvents = new API.UsageEvents(this);\n this.meters = new API.Meters(this);\n if (bearerToken === undefined) {\n throw new Errors.DodoPaymentsError(\"The DODO_PAYMENTS_API_KEY environment variable is missing or empty; either provide it, or instantiate the DodoPayments client with an bearerToken option, like new DodoPayments({ bearerToken: 'My Bearer Token' }).\");\n }\n const options = {\n bearerToken,\n webhookKey,\n ...opts,\n baseURL,\n environment: opts.environment ?? 'live_mode',\n };\n if (baseURL && opts.environment) {\n throw new Errors.DodoPaymentsError('Ambiguous URL; The `baseURL` option (or DODO_PAYMENTS_BASE_URL env var) and the `environment` option are given. If you want to use the environment you must pass baseURL: null');\n }\n this.baseURL = options.baseURL || environments[options.environment || 'live_mode'];\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 1 minute */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('DODO_PAYMENTS_LOG'), \"process.env['DODO_PAYMENTS_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _DodoPayments_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.bearerToken = bearerToken;\n this.webhookKey = webhookKey;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n environment: options.environment ? options.environment : undefined,\n baseURL: options.environment ? undefined : this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n bearerToken: this.bearerToken,\n webhookKey: this.webhookKey,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.bearerToken}` }]);\n }\n /**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\n stringifyQuery(query) {\n return Object.entries(query)\n .filter(([_, value]) => typeof value !== 'undefined')\n .map(([key, value]) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n if (value === null) {\n return `${encodeURIComponent(key)}=`;\n }\n throw new Errors.DodoPaymentsError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);\n })\n .join('&');\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _DodoPayments_instances, \"m\", _DodoPayments_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const responseInfo = `[${requestLogID}${retryLogStr}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else {\n return __classPrivateFieldGet(this, _DodoPayments_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = DodoPayments, _DodoPayments_encoder = new WeakMap(), _DodoPayments_instances = new WeakSet(), _DodoPayments_baseURLOverridden = function _DodoPayments_baseURLOverridden() {\n return this.baseURL !== environments[this._options.environment || 'live_mode'];\n};\nDodoPayments.DodoPayments = _a;\nDodoPayments.DEFAULT_TIMEOUT = 60000; // 1 minute\nDodoPayments.DodoPaymentsError = Errors.DodoPaymentsError;\nDodoPayments.APIError = Errors.APIError;\nDodoPayments.APIConnectionError = Errors.APIConnectionError;\nDodoPayments.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nDodoPayments.APIUserAbortError = Errors.APIUserAbortError;\nDodoPayments.NotFoundError = Errors.NotFoundError;\nDodoPayments.ConflictError = Errors.ConflictError;\nDodoPayments.RateLimitError = Errors.RateLimitError;\nDodoPayments.BadRequestError = Errors.BadRequestError;\nDodoPayments.AuthenticationError = Errors.AuthenticationError;\nDodoPayments.InternalServerError = Errors.InternalServerError;\nDodoPayments.PermissionDeniedError = Errors.PermissionDeniedError;\nDodoPayments.UnprocessableEntityError = Errors.UnprocessableEntityError;\nDodoPayments.toFile = Uploads.toFile;\nDodoPayments.CheckoutSessions = CheckoutSessions;\nDodoPayments.Payments = Payments;\nDodoPayments.Subscriptions = Subscriptions;\nDodoPayments.Invoices = Invoices;\nDodoPayments.Licenses = Licenses;\nDodoPayments.LicenseKeys = LicenseKeys;\nDodoPayments.LicenseKeyInstances = LicenseKeyInstances;\nDodoPayments.Customers = Customers;\nDodoPayments.Refunds = Refunds;\nDodoPayments.Disputes = Disputes;\nDodoPayments.Payouts = Payouts;\nDodoPayments.Products = Products;\nDodoPayments.Misc = Misc;\nDodoPayments.Discounts = Discounts;\nDodoPayments.Addons = Addons;\nDodoPayments.Brands = Brands;\nDodoPayments.Webhooks = Webhooks;\nDodoPayments.WebhookEvents = WebhookEvents;\nDodoPayments.UsageEvents = UsageEvents;\nDodoPayments.Meters = Meters;\n//# sourceMappingURL=client.mjs.map","// src/checkout/checkout.ts\nimport { z } from \"zod/v3\";\nimport DodoPayments from \"dodopayments\";\nvar checkoutQuerySchema = z.object({\n productId: z.string(),\n quantity: z.string().optional(),\n // Customer fields\n fullName: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n country: z.string().optional(),\n addressLine: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n zipCode: z.string().optional(),\n // Disable flags\n disableFullName: z.string().optional(),\n disableFirstName: z.string().optional(),\n disableLastName: z.string().optional(),\n disableEmail: z.string().optional(),\n disableCountry: z.string().optional(),\n disableAddressLine: z.string().optional(),\n disableCity: z.string().optional(),\n disableState: z.string().optional(),\n disableZipCode: z.string().optional(),\n // Advanced controls\n paymentCurrency: z.string().optional(),\n showCurrencySelector: z.string().optional(),\n paymentAmount: z.string().optional(),\n showDiscounts: z.string().optional()\n // Metadata (allow any key starting with metadata_)\n // We'll handle metadata separately in the handler\n}).catchall(z.unknown());\nvar dynamicCheckoutBodySchema = z.object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n // Common fields\n billing: z.object({\n city: z.string(),\n country: z.string(),\n state: z.string(),\n street: z.string(),\n zipcode: z.string()\n }),\n customer: z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional()\n }),\n discount_id: z.string().optional(),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n currency: z.string().optional()\n // Allow any additional fields (for future compatibility)\n}).catchall(z.unknown());\nvar checkoutSessionProductCartItemSchema = z.object({\n product_id: z.string().min(1, \"Product ID is required\"),\n quantity: z.number().int().positive(\"Quantity must be a positive integer\"),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number().int().nonnegative()\n })\n ).optional(),\n amount: z.number().int().nonnegative(\n \"Amount must be a non-negative integer (for pay-what-you-want products)\"\n ).optional()\n});\nvar checkoutSessionCustomerSchema = z.union([\n z.object({\n email: z.string().email(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional()\n }),\n z.object({\n customer_id: z.string()\n })\n]).optional();\nvar checkoutSessionBillingAddressSchema = z.object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().length(2, \"Country must be a 2-letter ISO code\"),\n zipcode: z.string().optional()\n}).optional();\nvar paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"cashapp\",\n \"google_pay\",\n \"multibanco\",\n \"bancontact_card\",\n \"eps\",\n \"ideal\",\n \"przelewy24\",\n \"paypal\",\n \"affirm\",\n \"klarna\",\n \"sepa\",\n \"ach\",\n \"amazon_pay\",\n \"afterpay_clearpay\"\n]);\nvar checkoutSessionCustomizationSchema = z.object({\n theme: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n show_order_details: z.boolean().optional(),\n show_on_demand_tag: z.boolean().optional(),\n force_language: z.string().optional()\n}).optional();\nvar checkoutSessionFeatureFlagsSchema = z.object({\n allow_currency_selection: z.boolean().optional(),\n allow_customer_editing_city: z.boolean().optional(),\n allow_customer_editing_country: z.boolean().optional(),\n allow_customer_editing_email: z.boolean().optional(),\n allow_customer_editing_name: z.boolean().optional(),\n allow_customer_editing_state: z.boolean().optional(),\n allow_customer_editing_street: z.boolean().optional(),\n allow_customer_editing_zipcode: z.boolean().optional(),\n allow_discount_code: z.boolean().optional(),\n allow_phone_number_collection: z.boolean().optional(),\n allow_tax_id: z.boolean().optional(),\n always_create_new_customer: z.boolean().optional()\n}).optional();\nvar checkoutSessionOnDemandSchema = z.object({\n mandate_only: z.boolean(),\n product_price: z.number().int().optional(),\n product_currency: z.string().length(3).optional(),\n product_description: z.string().optional(),\n adaptive_currency_fees_inclusive: z.boolean().optional()\n}).optional();\nvar checkoutSessionSubscriptionDataSchema = z.object({\n trial_period_days: z.number().int().nonnegative().optional(),\n on_demand: checkoutSessionOnDemandSchema\n}).optional();\nvar checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z.array(checkoutSessionProductCartItemSchema).min(1, \"At least one product is required\"),\n // Optional fields\n customer: checkoutSessionCustomerSchema,\n billing_address: checkoutSessionBillingAddressSchema,\n return_url: z.string().url().optional(),\n allowed_payment_method_types: z.array(paymentMethodTypeSchema).optional(),\n billing_currency: z.string().length(3, \"Currency must be a 3-letter ISO code\").optional(),\n show_saved_payment_methods: z.boolean().optional(),\n confirm: z.boolean().optional(),\n discount_code: z.string().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n customization: checkoutSessionCustomizationSchema,\n feature_flags: checkoutSessionFeatureFlagsSchema,\n subscription_data: checkoutSessionSubscriptionDataSchema,\n force_3ds: z.boolean().optional()\n});\nvar checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\")\n});\nvar createCheckoutSession = async (payload, config) => {\n const validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\n `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n const dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment\n });\n try {\n const sdkPayload = {\n ...validation.data,\n ...validation.data.billing_address && {\n billing_address: {\n ...validation.data.billing_address,\n country: validation.data.billing_address.country\n }\n }\n };\n const session = await dodopayments.checkoutSessions.create(\n sdkPayload\n );\n const responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\n `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n return responseValidation.data;\n } catch (error) {\n if (error instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken\n }\n });\n throw new Error(`Failed to create checkout session: ${error.message}`);\n }\n console.error(\"Unknown error creating checkout session:\", error);\n throw new Error(\n \"Failed to create checkout session due to an unknown error\"\n );\n }\n};\nvar buildCheckoutUrl = async ({\n queryParams,\n body,\n sessionPayload,\n returnUrl,\n bearerToken,\n environment,\n type = \"static\"\n}) => {\n if (type === \"session\") {\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n const finalPayload = {\n ...sessionPayload,\n return_url: sessionPayload.return_url ?? returnUrl\n };\n const session = await createCheckoutSession(finalPayload, {\n bearerToken,\n environment\n });\n return session.checkout_url;\n }\n const inputData = type === \"dynamic\" ? body : queryParams;\n let parseResult;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n } else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n const { success, data, error } = parseResult;\n if (!success) {\n throw new Error(\n `Invalid ${type === \"dynamic\" ? \"body\" : \"query parameters\"}.\n ${error.message}`\n );\n }\n if (type !== \"dynamic\") {\n const {\n productId,\n quantity: quantity2,\n fullName,\n firstName,\n lastName,\n email,\n country,\n addressLine,\n city,\n state,\n zipCode,\n disableFullName,\n disableFirstName,\n disableLastName,\n disableEmail,\n disableCountry,\n disableAddressLine,\n disableCity,\n disableState,\n disableZipCode,\n paymentCurrency,\n showCurrencySelector,\n paymentAmount,\n showDiscounts\n // metadata handled below\n } = data;\n const dodopayments2 = new DodoPayments({\n bearerToken,\n environment\n });\n if (!productId) throw new Error(\"Missing required field: productId\");\n try {\n await dodopayments2.products.retrieve(productId);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n const url = new URL(\n `${environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\"}/buy/${productId}`\n );\n url.searchParams.set(\"quantity\", quantity2 ? String(quantity2) : \"1\");\n if (returnUrl) url.searchParams.set(\"redirect_url\", returnUrl);\n if (fullName) url.searchParams.set(\"fullName\", String(fullName));\n if (firstName) url.searchParams.set(\"firstName\", String(firstName));\n if (lastName) url.searchParams.set(\"lastName\", String(lastName));\n if (email) url.searchParams.set(\"email\", String(email));\n if (country) url.searchParams.set(\"country\", String(country));\n if (addressLine) url.searchParams.set(\"addressLine\", String(addressLine));\n if (city) url.searchParams.set(\"city\", String(city));\n if (state) url.searchParams.set(\"state\", String(state));\n if (zipCode) url.searchParams.set(\"zipCode\", String(zipCode));\n if (disableFullName === \"true\")\n url.searchParams.set(\"disableFullName\", \"true\");\n if (disableFirstName === \"true\")\n url.searchParams.set(\"disableFirstName\", \"true\");\n if (disableLastName === \"true\")\n url.searchParams.set(\"disableLastName\", \"true\");\n if (disableEmail === \"true\") url.searchParams.set(\"disableEmail\", \"true\");\n if (disableCountry === \"true\")\n url.searchParams.set(\"disableCountry\", \"true\");\n if (disableAddressLine === \"true\")\n url.searchParams.set(\"disableAddressLine\", \"true\");\n if (disableCity === \"true\") url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\") url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\n \"showCurrencySelector\",\n String(showCurrencySelector)\n );\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n const dyn = data;\n const {\n product_id,\n product_cart,\n quantity,\n billing,\n customer,\n addons,\n metadata,\n allowed_payment_method_types,\n billing_currency,\n discount_code,\n on_demand,\n return_url: bodyReturnUrl,\n show_saved_payment_methods,\n tax_id,\n trial_period_days\n } = dyn;\n const dodopayments = new DodoPayments({\n bearerToken,\n environment\n });\n let isSubscription = false;\n let productIdToFetch = product_id;\n if (!product_id && product_cart && product_cart.length > 0) {\n productIdToFetch = product_cart[0].product_id;\n }\n if (!productIdToFetch)\n throw new Error(\n \"Missing required field: product_id or product_cart[0].product_id\"\n );\n let product;\n try {\n product = await dodopayments.products.retrieve(productIdToFetch);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n isSubscription = Boolean(product.is_recurring);\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing) throw new Error(\"Missing required field: billing\");\n if (!customer) throw new Error(\"Missing required field: customer\");\n if (isSubscription) {\n const subscriptionPayload = {\n billing,\n customer,\n product_id,\n quantity: quantity ? Number(quantity) : 1\n };\n if (metadata) subscriptionPayload.metadata = metadata;\n if (discount_code) subscriptionPayload.discount_code = discount_code;\n if (addons) subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand) subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n let subscription;\n try {\n subscription = await dodopayments.subscriptions.create(subscriptionPayload);\n } catch (err) {\n console.error(\"Error when creating subscription\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!subscription || !subscription.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\"\n );\n }\n return subscription.payment_link;\n } else {\n let cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id, quantity: quantity ? Number(quantity) : 1 }\n ];\n }\n if (!cart || cart.length === 0)\n throw new Error(\"Missing required field: product_cart or product_id\");\n const paymentPayload = {\n billing,\n customer,\n product_cart: cart\n };\n if (metadata) paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency) paymentPayload.billing_currency = billing_currency;\n if (discount_code) paymentPayload.discount_code = discount_code;\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n paymentPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n paymentPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) paymentPayload.tax_id = tax_id;\n let payment;\n try {\n payment = await dodopayments.payments.create(paymentPayload);\n } catch (err) {\n console.error(\"Error when creating payment link\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!payment || !payment.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\"\n );\n }\n return payment.payment_link;\n }\n};\n\nexport {\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionProductCartItemSchema,\n checkoutSessionCustomerSchema,\n checkoutSessionBillingAddressSchema,\n paymentMethodTypeSchema,\n checkoutSessionCustomizationSchema,\n checkoutSessionFeatureFlagsSchema,\n checkoutSessionOnDemandSchema,\n checkoutSessionSubscriptionDataSchema,\n checkoutSessionPayloadSchema,\n checkoutSessionResponseSchema,\n createCheckoutSession,\n buildCheckoutUrl\n};\n//# sourceMappingURL=chunk-BVTJMX2W.js.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\nexport {\n __require,\n __commonJS,\n __toESM\n};\n//# sourceMappingURL=chunk-7D4SUZUM.js.map","import { FastifyRequest, FastifyReply } from \"fastify\";\nimport {\n buildCheckoutUrl,\n CheckoutHandlerConfig,\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionPayloadSchema,\n} from \"@dodopayments/core/checkout\";\n\nexport const Checkout = (config: CheckoutHandlerConfig) => {\n // GET handler for static checkout\n const getHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n const queryParams = request.query as Record<string, string>;\n\n if (!queryParams.productId) {\n return reply.status(400).send(\"Please provide productId query parameter\");\n }\n\n const { success, data, error } = checkoutQuerySchema.safeParse(queryParams);\n\n if (!success) {\n if (error.errors.some((e: any) => e.path.toString() === \"productId\")) {\n return reply\n .status(400)\n .send(\"Please provide productId query parameter\");\n }\n return reply\n .status(400)\n .send(`Invalid query parameters.\\n ${error.message}`);\n }\n\n let url = \"\";\n\n try {\n url = await buildCheckoutUrl({ queryParams: data, ...config });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n };\n\n // POST handler for dynamic checkout and checkout sessions\n const postHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n const body = request.body as any;\n\n if (config.type === \"dynamic\") {\n // Handle dynamic checkout\n const { success, data, error } =\n dynamicCheckoutBodySchema.safeParse(body);\n\n if (!success) {\n return reply\n .status(400)\n .send(`Invalid request body.\\n ${error.message}`);\n }\n\n let url = \"\";\n try {\n url = await buildCheckoutUrl({\n body: data,\n ...config,\n type: \"dynamic\",\n });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n } else {\n // Handle checkout session\n const { success, data, error } =\n checkoutSessionPayloadSchema.safeParse(body);\n\n if (!success) {\n return reply\n .status(400)\n .send(`Invalid checkout session payload.\\n ${error.message}`);\n }\n\n let url = \"\";\n try {\n url = await buildCheckoutUrl({\n sessionPayload: data,\n ...config,\n type: \"session\",\n });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n }\n };\n\n return {\n getHandler,\n postHandler,\n };\n};\n","// src/schemas/webhook.ts\nimport { z } from \"zod/v3\";\nvar PaymentSchema = z.object({\n payload_type: z.literal(\"Payment\"),\n billing: z.object({\n city: z.string().nullable(),\n country: z.string().nullable(),\n state: z.string().nullable(),\n street: z.string().nullable(),\n zipcode: z.string().nullable()\n }),\n brand_id: z.string(),\n business_id: z.string(),\n card_issuing_country: z.string().nullable(),\n card_last_four: z.string().nullable(),\n card_network: z.string().nullable(),\n card_type: z.string().nullable(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n name: z.string().nullable()\n }),\n digital_products_delivered: z.boolean(),\n discount_id: z.string().nullable(),\n disputes: z.array(\n z.object({\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n dispute_id: z.string(),\n dispute_stage: z.enum([\n \"pre_dispute\",\n \"dispute_opened\",\n \"dispute_won\",\n \"dispute_lost\"\n ]),\n dispute_status: z.enum([\n \"dispute_opened\",\n \"dispute_won\",\n \"dispute_lost\",\n \"dispute_accepted\",\n \"dispute_cancelled\",\n \"dispute_challenged\"\n ]),\n payment_id: z.string(),\n remarks: z.string().nullable()\n })\n ).nullable(),\n error_code: z.string().nullable(),\n error_message: z.string().nullable(),\n metadata: z.record(z.any()).nullable(),\n payment_id: z.string(),\n payment_link: z.string().nullable(),\n payment_method: z.string().nullable(),\n payment_method_type: z.string().nullable(),\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).nullable(),\n refunds: z.array(\n z.object({\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n is_partial: z.boolean(),\n payment_id: z.string(),\n reason: z.string().nullable(),\n refund_id: z.string(),\n status: z.enum([\"succeeded\", \"failed\", \"pending\"])\n })\n ).nullable(),\n settlement_amount: z.number(),\n settlement_currency: z.string(),\n settlement_tax: z.number().nullable(),\n status: z.enum([\"succeeded\", \"failed\", \"pending\", \"processing\", \"cancelled\"]),\n subscription_id: z.string().nullable(),\n tax: z.number().nullable(),\n total_amount: z.number(),\n updated_at: z.string().transform((d) => new Date(d)).nullable()\n});\nvar SubscriptionSchema = z.object({\n payload_type: z.literal(\"Subscription\"),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).nullable(),\n billing: z.object({\n city: z.string().nullable(),\n country: z.string().nullable(),\n state: z.string().nullable(),\n street: z.string().nullable(),\n zipcode: z.string().nullable()\n }),\n cancel_at_next_billing_date: z.boolean(),\n cancelled_at: z.string().transform((d) => new Date(d)).nullable(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n name: z.string().nullable()\n }),\n discount_id: z.string().nullable(),\n metadata: z.record(z.any()).nullable(),\n next_billing_date: z.string().transform((d) => new Date(d)).nullable(),\n on_demand: z.boolean(),\n payment_frequency_count: z.number(),\n payment_frequency_interval: z.enum([\"Day\", \"Week\", \"Month\", \"Year\"]),\n previous_billing_date: z.string().transform((d) => new Date(d)).nullable(),\n product_id: z.string(),\n quantity: z.number(),\n recurring_pre_tax_amount: z.number(),\n status: z.enum([\n \"pending\",\n \"active\",\n \"on_hold\",\n \"paused\",\n \"cancelled\",\n \"expired\",\n \"failed\"\n ]),\n subscription_id: z.string(),\n subscription_period_count: z.number(),\n subscription_period_interval: z.enum([\"Day\", \"Week\", \"Month\", \"Year\"]),\n tax_inclusive: z.boolean(),\n trial_period_days: z.number()\n});\nvar RefundSchema = z.object({\n payload_type: z.literal(\"Refund\"),\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n is_partial: z.boolean(),\n payment_id: z.string(),\n reason: z.string().nullable(),\n refund_id: z.string(),\n status: z.enum([\"succeeded\", \"failed\", \"pending\"])\n});\nvar DisputeSchema = z.object({\n payload_type: z.literal(\"Dispute\"),\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n dispute_id: z.string(),\n dispute_stage: z.enum([\n \"pre_dispute\",\n \"dispute_opened\",\n \"dispute_won\",\n \"dispute_lost\"\n ]),\n dispute_status: z.enum([\n \"dispute_opened\",\n \"dispute_won\",\n \"dispute_lost\",\n \"dispute_accepted\",\n \"dispute_cancelled\",\n \"dispute_challenged\"\n ]),\n payment_id: z.string(),\n remarks: z.string().nullable()\n});\nvar LicenseKeySchema = z.object({\n payload_type: z.literal(\"LicenseKey\"),\n activations_limit: z.number(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n customer_id: z.string(),\n expires_at: z.string().transform((d) => new Date(d)).nullable(),\n id: z.string(),\n instances_count: z.number(),\n key: z.string(),\n payment_id: z.string(),\n product_id: z.string(),\n status: z.enum([\"active\", \"inactive\", \"expired\"]),\n subscription_id: z.string().nullable()\n});\nvar PaymentSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.succeeded\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentProcessingPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.processing\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar RefundSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.succeeded\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: RefundSchema\n});\nvar RefundFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: RefundSchema\n});\nvar DisputeOpenedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.opened\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.expired\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeAcceptedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.accepted\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeChallengedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.challenged\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeWonPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.won\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeLostPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.lost\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar SubscriptionActivePayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.active\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionOnHoldPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.on_hold\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionRenewedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.renewed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionPausedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.paused\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionPlanChangedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.plan_changed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.expired\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionUpdatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.updated\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar LicenseKeyCreatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"license_key.created\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: LicenseKeySchema\n});\nvar WebhookPayloadSchema = z.discriminatedUnion(\"type\", [\n PaymentSucceededPayloadSchema,\n PaymentFailedPayloadSchema,\n PaymentProcessingPayloadSchema,\n PaymentCancelledPayloadSchema,\n RefundSucceededPayloadSchema,\n RefundFailedPayloadSchema,\n DisputeOpenedPayloadSchema,\n DisputeExpiredPayloadSchema,\n DisputeAcceptedPayloadSchema,\n DisputeCancelledPayloadSchema,\n DisputeChallengedPayloadSchema,\n DisputeWonPayloadSchema,\n DisputeLostPayloadSchema,\n SubscriptionActivePayloadSchema,\n SubscriptionOnHoldPayloadSchema,\n SubscriptionRenewedPayloadSchema,\n SubscriptionPausedPayloadSchema,\n SubscriptionPlanChangedPayloadSchema,\n SubscriptionCancelledPayloadSchema,\n SubscriptionFailedPayloadSchema,\n SubscriptionExpiredPayloadSchema,\n SubscriptionUpdatedPayloadSchema,\n LicenseKeyCreatedPayloadSchema\n]);\n\nexport {\n PaymentSchema,\n SubscriptionSchema,\n RefundSchema,\n DisputeSchema,\n LicenseKeySchema,\n PaymentSucceededPayloadSchema,\n PaymentFailedPayloadSchema,\n PaymentProcessingPayloadSchema,\n PaymentCancelledPayloadSchema,\n RefundSucceededPayloadSchema,\n RefundFailedPayloadSchema,\n DisputeOpenedPayloadSchema,\n DisputeExpiredPayloadSchema,\n DisputeAcceptedPayloadSchema,\n DisputeCancelledPayloadSchema,\n DisputeChallengedPayloadSchema,\n DisputeWonPayloadSchema,\n DisputeLostPayloadSchema,\n SubscriptionActivePayloadSchema,\n SubscriptionOnHoldPayloadSchema,\n SubscriptionRenewedPayloadSchema,\n SubscriptionPausedPayloadSchema,\n SubscriptionPlanChangedPayloadSchema,\n SubscriptionCancelledPayloadSchema,\n SubscriptionFailedPayloadSchema,\n SubscriptionExpiredPayloadSchema,\n SubscriptionUpdatedPayloadSchema,\n LicenseKeyCreatedPayloadSchema,\n WebhookPayloadSchema\n};\n//# sourceMappingURL=chunk-JOR4TAXM.js.map","import {\n timingSafeEqual\n} from \"./chunk-B5Z4XRMO.js\";\nimport {\n __commonJS,\n __toESM\n} from \"./chunk-7D4SUZUM.js\";\n\n// ../../node_modules/@stablelib/base64/lib/base64.js\nvar require_base64 = __commonJS({\n \"../../node_modules/@stablelib/base64/lib/base64.js\"(exports) {\n \"use strict\";\n var __extends = exports && exports.__extends || /* @__PURE__ */ function() {\n var extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {\n d2.__proto__ = b2;\n } || function(d2, b2) {\n for (var p in b2) if (b2.hasOwnProperty(p)) d2[p] = b2[p];\n };\n return extendStatics(d, b);\n };\n return function(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var INVALID_BYTE = 256;\n var Coder = (\n /** @class */\n function() {\n function Coder2(_paddingCharacter) {\n if (_paddingCharacter === void 0) {\n _paddingCharacter = \"=\";\n }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder2.prototype.encodedLength = function(length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder2.prototype.encode = function(data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = data[i] << 16 | data[i + 1] << 8 | data[i + 2];\n out += this._encodeByte(c >>> 3 * 6 & 63);\n out += this._encodeByte(c >>> 2 * 6 & 63);\n out += this._encodeByte(c >>> 1 * 6 & 63);\n out += this._encodeByte(c >>> 0 * 6 & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = data[i] << 16 | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte(c >>> 3 * 6 & 63);\n out += this._encodeByte(c >>> 2 * 6 & 63);\n if (left === 2) {\n out += this._encodeByte(c >>> 1 * 6 & 63);\n } else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder2.prototype.maxDecodedLength = function(length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder2.prototype.decodedLength = function(s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder2.prototype.decode = function(s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = v0 << 2 | v1 >>> 4;\n out[op++] = v1 << 4 | v2 >>> 2;\n out[op++] = v2 << 6 | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = v0 << 2 | v1 >>> 4;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = v1 << 4 | v2 >>> 2;\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = v2 << 6 | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n Coder2.prototype._encodeByte = function(b) {\n var result = b;\n result += 65;\n result += 25 - b >>> 8 & 0 - 65 - 26 + 97;\n result += 51 - b >>> 8 & 26 - 97 - 52 + 48;\n result += 61 - b >>> 8 & 52 - 48 - 62 + 43;\n result += 62 - b >>> 8 & 62 - 43 - 63 + 47;\n return String.fromCharCode(result);\n };\n Coder2.prototype._decodeChar = function(c) {\n var result = INVALID_BYTE;\n result += (42 - c & c - 44) >>> 8 & -INVALID_BYTE + c - 43 + 62;\n result += (46 - c & c - 48) >>> 8 & -INVALID_BYTE + c - 47 + 63;\n result += (47 - c & c - 58) >>> 8 & -INVALID_BYTE + c - 48 + 52;\n result += (64 - c & c - 91) >>> 8 & -INVALID_BYTE + c - 65 + 0;\n result += (96 - c & c - 123) >>> 8 & -INVALID_BYTE + c - 97 + 26;\n return result;\n };\n Coder2.prototype._getPaddingLength = function(s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder2;\n }()\n );\n exports.Coder = Coder;\n var stdCoder = new Coder();\n function encode2(data) {\n return stdCoder.encode(data);\n }\n exports.encode = encode2;\n function decode2(s) {\n return stdCoder.decode(s);\n }\n exports.decode = decode2;\n var URLSafeCoder = (\n /** @class */\n function(_super) {\n __extends(URLSafeCoder2, _super);\n function URLSafeCoder2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n URLSafeCoder2.prototype._encodeByte = function(b) {\n var result = b;\n result += 65;\n result += 25 - b >>> 8 & 0 - 65 - 26 + 97;\n result += 51 - b >>> 8 & 26 - 97 - 52 + 48;\n result += 61 - b >>> 8 & 52 - 48 - 62 + 45;\n result += 62 - b >>> 8 & 62 - 45 - 63 + 95;\n return String.fromCharCode(result);\n };\n URLSafeCoder2.prototype._decodeChar = function(c) {\n var result = INVALID_BYTE;\n result += (44 - c & c - 46) >>> 8 & -INVALID_BYTE + c - 45 + 62;\n result += (94 - c & c - 96) >>> 8 & -INVALID_BYTE + c - 95 + 63;\n result += (47 - c & c - 58) >>> 8 & -INVALID_BYTE + c - 48 + 52;\n result += (64 - c & c - 91) >>> 8 & -INVALID_BYTE + c - 65 + 0;\n result += (96 - c & c - 123) >>> 8 & -INVALID_BYTE + c - 97 + 26;\n return result;\n };\n return URLSafeCoder2;\n }(Coder)\n );\n exports.URLSafeCoder = URLSafeCoder;\n var urlSafeCoder = new URLSafeCoder();\n function encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n }\n exports.encodeURLSafe = encodeURLSafe;\n function decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n }\n exports.decodeURLSafe = decodeURLSafe;\n exports.encodedLength = function(length) {\n return stdCoder.encodedLength(length);\n };\n exports.maxDecodedLength = function(length) {\n return stdCoder.maxDecodedLength(length);\n };\n exports.decodedLength = function(s) {\n return stdCoder.decodedLength(s);\n };\n }\n});\n\n// ../../node_modules/fast-sha256/sha256.js\nvar require_sha256 = __commonJS({\n \"../../node_modules/fast-sha256/sha256.js\"(exports, module) {\n \"use strict\";\n (function(root, factory) {\n var exports2 = {};\n factory(exports2);\n var sha2562 = exports2[\"default\"];\n for (var k in exports2) {\n sha2562[k] = exports2[k];\n }\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = sha2562;\n } else if (typeof define === \"function\" && define.amd) {\n define(function() {\n return sha2562;\n });\n } else {\n root.sha256 = sha2562;\n }\n })(exports, function(exports2) {\n \"use strict\";\n exports2.__esModule = true;\n exports2.digestLength = 32;\n exports2.blockSize = 64;\n var K = new Uint32Array([\n 1116352408,\n 1899447441,\n 3049323471,\n 3921009573,\n 961987163,\n 1508970993,\n 2453635748,\n 2870763221,\n 3624381080,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n 2162078206,\n 2614888103,\n 3248222580,\n 3835390401,\n 4022224774,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n 2554220882,\n 2821834349,\n 2952996808,\n 3210313671,\n 3336571891,\n 3584528711,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n 2177026350,\n 2456956037,\n 2730485921,\n 2820302411,\n 3259730800,\n 3345764771,\n 3516065817,\n 3600352804,\n 4094571909,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n 2227730452,\n 2361852424,\n 2428436474,\n 2756734187,\n 3204031479,\n 3329325298\n ]);\n function hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (p[j] & 255) << 24 | (p[j + 1] & 255) << 16 | (p[j + 2] & 255) << 8 | p[j + 3] & 255;\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << 32 - 17) ^ (u >>> 19 | u << 32 - 19) ^ u >>> 10;\n u = w[i - 15];\n t2 = (u >>> 7 | u << 32 - 7) ^ (u >>> 18 | u << 32 - 18) ^ u >>> 3;\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((e >>> 6 | e << 32 - 6) ^ (e >>> 11 | e << 32 - 11) ^ (e >>> 25 | e << 32 - 25)) + (e & f ^ ~e & g) | 0) + (h + (K[i] + w[i] | 0) | 0) | 0;\n t2 = ((a >>> 2 | a << 32 - 2) ^ (a >>> 13 | a << 32 - 13) ^ (a >>> 22 | a << 32 - 22)) + (a & b ^ a & c ^ b & c) | 0;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n }\n var Hash = (\n /** @class */\n function() {\n function Hash2() {\n this.digestLength = exports2.digestLength;\n this.blockSize = exports2.blockSize;\n this.state = new Int32Array(8);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(128);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n this.reset();\n }\n Hash2.prototype.reset = function() {\n this.state[0] = 1779033703;\n this.state[1] = 3144134277;\n this.state[2] = 1013904242;\n this.state[3] = 2773480762;\n this.state[4] = 1359893119;\n this.state[5] = 2600822924;\n this.state[6] = 528734635;\n this.state[7] = 1541459225;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n Hash2.prototype.clean = function() {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n Hash2.prototype.update = function(data, dataLength) {\n if (dataLength === void 0) {\n dataLength = data.length;\n }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n Hash2.prototype.finish = function(out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = bytesHashed / 536870912 | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = bytesHashed % 64 < 56 ? 64 : 128;\n this.buffer[left] = 128;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = bitLenHi >>> 24 & 255;\n this.buffer[padLength - 7] = bitLenHi >>> 16 & 255;\n this.buffer[padLength - 6] = bitLenHi >>> 8 & 255;\n this.buffer[padLength - 5] = bitLenHi >>> 0 & 255;\n this.buffer[padLength - 4] = bitLenLo >>> 24 & 255;\n this.buffer[padLength - 3] = bitLenLo >>> 16 & 255;\n this.buffer[padLength - 2] = bitLenLo >>> 8 & 255;\n this.buffer[padLength - 1] = bitLenLo >>> 0 & 255;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = this.state[i] >>> 24 & 255;\n out[i * 4 + 1] = this.state[i] >>> 16 & 255;\n out[i * 4 + 2] = this.state[i] >>> 8 & 255;\n out[i * 4 + 3] = this.state[i] >>> 0 & 255;\n }\n return this;\n };\n Hash2.prototype.digest = function() {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n Hash2.prototype._saveState = function(out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n Hash2.prototype._restoreState = function(from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash2;\n }()\n );\n exports2.Hash = Hash;\n var HMAC = (\n /** @class */\n function() {\n function HMAC2(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n new Hash().update(key).finish(pad).clean();\n } else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 54;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 54 ^ 92;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n HMAC2.prototype.reset = function() {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n HMAC2.prototype.clean = function() {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n HMAC2.prototype.update = function(data) {\n this.inner.update(data);\n return this;\n };\n HMAC2.prototype.finish = function(out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n } else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n HMAC2.prototype.digest = function() {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC2;\n }()\n );\n exports2.HMAC = HMAC;\n function hash(data) {\n var h = new Hash().update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n }\n exports2.hash = hash;\n exports2[\"default\"] = hash;\n function hmac2(key, data) {\n var h = new HMAC(key).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n }\n exports2.hmac = hmac2;\n function fillBuffer(buffer, hmac3, info, counter) {\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n hmac3.reset();\n if (num > 1) {\n hmac3.update(buffer);\n }\n if (info) {\n hmac3.update(info);\n }\n hmac3.update(counter);\n hmac3.finish(buffer);\n counter[0]++;\n }\n var hkdfSalt = new Uint8Array(exports2.digestLength);\n function hkdf(key, salt, info, length) {\n if (salt === void 0) {\n salt = hkdfSalt;\n }\n if (length === void 0) {\n length = 32;\n }\n var counter = new Uint8Array([1]);\n var okm = hmac2(salt, key);\n var hmac_ = new HMAC(okm);\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n }\n exports2.hkdf = hkdf;\n function pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = c >>> 24 & 255;\n ctr[1] = c >>> 16 & 255;\n ctr[2] = c >>> 8 & 255;\n ctr[3] = c >>> 0 & 255;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n }\n exports2.pbkdf2 = pbkdf2;\n });\n }\n});\n\n// src/webhook/vendor/standardwebhook.ts\nvar base64 = __toESM(require_base64(), 1);\nvar sha256 = __toESM(require_sha256(), 1);\nvar WEBHOOK_TOLERANCE_IN_SECONDS = 5 * 60;\nvar ExtendableError = class _ExtendableError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _ExtendableError.prototype);\n this.name = \"ExtendableError\";\n this.stack = new Error(message).stack;\n }\n};\nvar WebhookVerificationError = class _WebhookVerificationError extends ExtendableError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _WebhookVerificationError.prototype);\n this.name = \"WebhookVerificationError\";\n }\n};\nvar Webhook = class _Webhook {\n static prefix = \"whsec_\";\n key;\n constructor(secret, options) {\n if (!secret) {\n throw new Error(\"Secret can't be empty.\");\n }\n if ((options == null ? void 0 : options.format) === \"raw\") {\n if (secret instanceof Uint8Array) {\n this.key = secret;\n } else {\n this.key = Uint8Array.from(secret, (c) => c.charCodeAt(0));\n }\n } else {\n if (typeof secret !== \"string\") {\n throw new Error(\"Expected secret to be of type string\");\n }\n if (secret.startsWith(_Webhook.prefix)) {\n secret = secret.substring(_Webhook.prefix.length);\n }\n this.key = base64.decode(secret);\n }\n }\n verify(payload, headers_) {\n const headers = {};\n for (const key of Object.keys(headers_)) {\n headers[key.toLowerCase()] = headers_[key];\n }\n const msgId = headers[\"webhook-id\"];\n const msgSignature = headers[\"webhook-signature\"];\n const msgTimestamp = headers[\"webhook-timestamp\"];\n if (!msgSignature || !msgId || !msgTimestamp) {\n throw new WebhookVerificationError(\"Missing required headers\");\n }\n const timestamp = this.verifyTimestamp(msgTimestamp);\n const computedSignature = this.sign(msgId, timestamp, payload);\n const expectedSignature = computedSignature.split(\",\")[1];\n const passedSignatures = msgSignature.split(\" \");\n const encoder = new globalThis.TextEncoder();\n for (const versionedSignature of passedSignatures) {\n const [version, signature] = versionedSignature.split(\",\");\n if (version !== \"v1\") {\n continue;\n }\n if (timingSafeEqual(\n encoder.encode(signature),\n encoder.encode(expectedSignature)\n )) {\n return JSON.parse(payload.toString());\n }\n }\n throw new WebhookVerificationError(\"No matching signature found\");\n }\n sign(msgId, timestamp, payload) {\n if (typeof payload === \"string\") {\n } else if (payload.constructor.name === \"Buffer\") {\n payload = payload.toString();\n } else {\n throw new Error(\"Expected payload to be of type string or Buffer.\");\n }\n const encoder = new TextEncoder();\n const timestampNumber = Math.floor(timestamp.getTime() / 1e3);\n const toSign = encoder.encode(`${msgId}.${timestampNumber}.${payload}`);\n const expectedSignature = base64.encode(sha256.hmac(this.key, toSign));\n return `v1,${expectedSignature}`;\n }\n verifyTimestamp(timestampHeader) {\n const now = Math.floor(Date.now() / 1e3);\n const timestamp = parseInt(timestampHeader, 10);\n if (isNaN(timestamp)) {\n throw new WebhookVerificationError(\"Invalid Signature Headers\");\n }\n if (now - timestamp > WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too old\");\n }\n if (timestamp > now + WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too new\");\n }\n return new Date(timestamp * 1e3);\n }\n};\n\nexport {\n WebhookVerificationError,\n Webhook\n};\n/**\n * The MIT License\n *\n * Copyright (c) 2023 Svix (https://www.svix.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * @fileoverview Server-only webhook verification implementation.\n * @description Vendored from standardwebhooks package to avoid bundling issues.\n * Uses Node.js crypto module - DO NOT import in client/browser code.\n * @license MIT\n * @internal\n */\n//# sourceMappingURL=chunk-65ICCAWN.js.map","import {\n WebhookPayloadSchema\n} from \"./chunk-JOR4TAXM.js\";\nimport {\n Webhook,\n WebhookVerificationError\n} from \"./chunk-65ICCAWN.js\";\n\n// src/webhook/webhook.ts\nasync function handleWebhookPayload(payload, config, context) {\n const callHandler = (handler, payload2) => {\n if (!handler) return;\n if (context !== void 0) {\n return handler(context, payload2);\n }\n return handler(payload2);\n };\n if (config.onPayload) {\n await callHandler(config.onPayload, payload);\n }\n if (payload.type === \"payment.succeeded\") {\n await callHandler(config.onPaymentSucceeded, payload);\n }\n if (payload.type === \"payment.failed\") {\n await callHandler(config.onPaymentFailed, payload);\n }\n if (payload.type === \"payment.processing\") {\n await callHandler(config.onPaymentProcessing, payload);\n }\n if (payload.type === \"payment.cancelled\") {\n await callHandler(config.onPaymentCancelled, payload);\n }\n if (payload.type === \"refund.succeeded\") {\n await callHandler(config.onRefundSucceeded, payload);\n }\n if (payload.type === \"refund.failed\") {\n await callHandler(config.onRefundFailed, payload);\n }\n if (payload.type === \"dispute.opened\") {\n await callHandler(config.onDisputeOpened, payload);\n }\n if (payload.type === \"dispute.expired\") {\n await callHandler(config.onDisputeExpired, payload);\n }\n if (payload.type === \"dispute.accepted\") {\n await callHandler(config.onDisputeAccepted, payload);\n }\n if (payload.type === \"dispute.cancelled\") {\n await callHandler(config.onDisputeCancelled, payload);\n }\n if (payload.type === \"dispute.challenged\") {\n await callHandler(config.onDisputeChallenged, payload);\n }\n if (payload.type === \"dispute.won\") {\n await callHandler(config.onDisputeWon, payload);\n }\n if (payload.type === \"dispute.lost\") {\n await callHandler(config.onDisputeLost, payload);\n }\n if (payload.type === \"subscription.active\") {\n await callHandler(config.onSubscriptionActive, payload);\n }\n if (payload.type === \"subscription.on_hold\") {\n await callHandler(config.onSubscriptionOnHold, payload);\n }\n if (payload.type === \"subscription.renewed\") {\n await callHandler(config.onSubscriptionRenewed, payload);\n }\n if (payload.type === \"subscription.paused\") {\n await callHandler(config.onSubscriptionPaused, payload);\n }\n if (payload.type === \"subscription.plan_changed\") {\n await callHandler(config.onSubscriptionPlanChanged, payload);\n }\n if (payload.type === \"subscription.cancelled\") {\n await callHandler(config.onSubscriptionCancelled, payload);\n }\n if (payload.type === \"subscription.failed\") {\n await callHandler(config.onSubscriptionFailed, payload);\n }\n if (payload.type === \"subscription.expired\") {\n await callHandler(config.onSubscriptionExpired, payload);\n }\n if (payload.type === \"subscription.updated\") {\n await callHandler(config.onSubscriptionUpdated, payload);\n }\n if (payload.type === \"license_key.created\") {\n await callHandler(config.onLicenseKeyCreated, payload);\n }\n}\nvar verifyWebhookPayload = async ({\n webhookKey,\n headers,\n body\n}) => {\n const standardWebhook = new Webhook(webhookKey);\n try {\n standardWebhook.verify(body, headers);\n } catch (e) {\n if (e instanceof WebhookVerificationError) {\n throw new Error(e.message);\n }\n throw e;\n }\n const {\n success,\n data: payload,\n error\n } = WebhookPayloadSchema.safeParse(JSON.parse(body));\n if (!success) {\n throw new Error(error.message);\n }\n return payload;\n};\n\nexport {\n handleWebhookPayload,\n verifyWebhookPayload\n};\n//# sourceMappingURL=chunk-RVDSIWI4.js.map","import {\n Webhook as StandardWebhook,\n WebhookVerificationError,\n} from \"standardwebhooks\";\nimport {\n type WebhookHandlerConfig,\n handleWebhookPayload,\n} from \"@dodopayments/core/webhook\";\nimport { FastifyRequest, FastifyReply } from \"fastify\";\nimport { WebhookPayloadSchema } from \"@dodopayments/core/schemas\";\n\nexport const Webhooks = ({\n webhookKey,\n ...eventHandlers\n}: WebhookHandlerConfig) => {\n const standardWebhook = new StandardWebhook(webhookKey);\n\n return async (req: FastifyRequest, reply: FastifyReply) => {\n if (req.method !== \"POST\") {\n return reply.status(405).send(\"Method not allowed. Use POST\");\n }\n\n const headers = {\n \"webhook-id\": Array.isArray(req.headers[\"webhook-id\"])\n ? (req.headers[\"webhook-id\"][0] ?? \"\")\n : (req.headers[\"webhook-id\"] ?? \"\"),\n \"webhook-timestamp\": Array.isArray(req.headers[\"webhook-timestamp\"])\n ? (req.headers[\"webhook-timestamp\"][0] ?? \"\")\n : (req.headers[\"webhook-timestamp\"] ?? \"\"),\n \"webhook-signature\": Array.isArray(req.headers[\"webhook-signature\"])\n ? (req.headers[\"webhook-signature\"][0] ?? \"\")\n : (req.headers[\"webhook-signature\"] ?? \"\"),\n };\n\n const rawBody = req.body as string;\n\n try {\n standardWebhook.verify(rawBody, headers);\n } catch (err) {\n if (err instanceof WebhookVerificationError) {\n return reply.status(401).send(err.message);\n }\n\n return reply.status(500).send(\"Error while verifying webhook\");\n }\n\n const {\n success,\n data: payload,\n error,\n } = WebhookPayloadSchema.safeParse(JSON.parse(rawBody));\n\n if (!success) {\n console.error(\"Error parsing webhook payload\", error.issues);\n return reply\n .status(400)\n .send(`Error parsing webhook payload: ${error.message}`);\n }\n\n // do not catch errors here, let them bubble up to the user\n // as they will originate from the handlers passed by the user\n await handleWebhookPayload(payload, {\n webhookKey,\n ...eventHandlers,\n });\n\n return reply.status(200).send();\n };\n};\n","import { FastifyRequest, FastifyReply } from \"fastify\";\nimport DodoPayments, { ClientOptions } from \"dodopayments\";\n\nexport type CustomerPortalConfig = Pick<\n ClientOptions,\n \"environment\" | \"bearerToken\"\n>;\n\nexport const CustomerPortal = ({\n bearerToken,\n environment,\n}: CustomerPortalConfig) => {\n const getHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n // Extract customerId from query parameters\n const { customer_id: customerId, send_email } = request.query as Record<\n string,\n string\n >;\n\n const params = {\n send_email: false,\n };\n const sendEmail = Boolean(send_email);\n if (sendEmail) {\n params.send_email = sendEmail;\n }\n\n if (!customerId) {\n return reply.status(400).send(\"Missing customerId in query parameters\");\n }\n\n const dodopayments = new DodoPayments({\n bearerToken,\n environment,\n });\n\n try {\n const session = await dodopayments.customers.customerPortal.create(\n customerId,\n params,\n );\n return reply.redirect(session.link);\n } catch (error: any) {\n console.error(\"Error creating customer portal session:\", error);\n return reply\n .status(500)\n .send(`Failed to create customer portal session: ${error.message}`);\n }\n };\n\n return getHandler;\n};\n"],"names":["defaultErrorMap","LedgerEntriesAPI.LedgerEntries","CustomerPortalAPI.CustomerPortal","WalletsAPI.Wallets","CustomerPortal","PaymentsAPI.Payments","Payments","ImagesAPI.Images","this","base64","require$$0","require$$1","require$$2","HeadersAPI.Headers","Webhook","Webhooks","Headers","API.CheckoutSessions","API.Payments","API.Subscriptions","API.Invoices","API.Licenses","API.LicenseKeys","API.LicenseKeyInstances","API.Customers","API.Refunds","API.Disputes","API.Payouts","API.Products","API.Misc","API.Discounts","API.Addons","API.Brands","API.Webhooks","API.WebhookEvents","API.UsageEvents","API.Meters","Errors.DodoPaymentsError","Shims.getDefaultFetch","Opts.FallbackEncoder","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Uploads.toFile","z.object","z.string","z.unknown","z.number","z.array","z.record","z.union","z.enum","z.boolean","z.literal","z.any","z.discriminatedUnion","StandardWebhook","WebhookVerificationError"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/zod/v3/helpers/util.js","../../../node_modules/zod/v3/ZodError.js","../../../node_modules/zod/v3/locales/en.js","../../../node_modules/zod/v3/errors.js","../../../node_modules/zod/v3/helpers/parseUtil.js","../../../node_modules/zod/v3/helpers/errorUtil.js","../../../node_modules/zod/v3/types.js","../../../node_modules/dodopayments/internal/tslib.mjs","../../../node_modules/dodopayments/internal/utils/uuid.mjs","../../../node_modules/dodopayments/internal/errors.mjs","../../../node_modules/dodopayments/core/error.mjs","../../../node_modules/dodopayments/internal/utils/values.mjs","../../../node_modules/dodopayments/internal/utils/sleep.mjs","../../../node_modules/dodopayments/version.mjs","../../../node_modules/dodopayments/internal/detect-platform.mjs","../../../node_modules/dodopayments/internal/shims.mjs","../../../node_modules/dodopayments/internal/request-options.mjs","../../../node_modules/dodopayments/internal/utils/query.mjs","../../../node_modules/dodopayments/internal/utils/log.mjs","../../../node_modules/dodopayments/internal/parse.mjs","../../../node_modules/dodopayments/core/api-promise.mjs","../../../node_modules/dodopayments/core/pagination.mjs","../../../node_modules/dodopayments/internal/uploads.mjs","../../../node_modules/dodopayments/internal/to-file.mjs","../../../node_modules/dodopayments/core/resource.mjs","../../../node_modules/dodopayments/internal/utils/path.mjs","../../../node_modules/dodopayments/resources/addons.mjs","../../../node_modules/dodopayments/resources/balances.mjs","../../../node_modules/dodopayments/resources/brands.mjs","../../../node_modules/dodopayments/resources/checkout-sessions.mjs","../../../node_modules/dodopayments/resources/credit-entitlements/balances.mjs","../../../node_modules/dodopayments/internal/headers.mjs","../../../node_modules/dodopayments/resources/credit-entitlements/credit-entitlements.mjs","../../../node_modules/dodopayments/resources/customers/customer-portal.mjs","../../../node_modules/dodopayments/resources/customers/wallets/ledger-entries.mjs","../../../node_modules/dodopayments/resources/customers/wallets/wallets.mjs","../../../node_modules/dodopayments/resources/customers/customers.mjs","../../../node_modules/dodopayments/resources/discounts.mjs","../../../node_modules/dodopayments/resources/disputes.mjs","../../../node_modules/dodopayments/resources/invoices/payments.mjs","../../../node_modules/dodopayments/resources/invoices/invoices.mjs","../../../node_modules/dodopayments/resources/license-key-instances.mjs","../../../node_modules/dodopayments/resources/license-keys.mjs","../../../node_modules/dodopayments/resources/licenses.mjs","../../../node_modules/dodopayments/resources/meters.mjs","../../../node_modules/dodopayments/resources/misc.mjs","../../../node_modules/dodopayments/resources/payments.mjs","../../../node_modules/dodopayments/resources/payouts.mjs","../../../node_modules/dodopayments/resources/products/images.mjs","../../../node_modules/dodopayments/resources/products/short-links.mjs","../../../node_modules/dodopayments/resources/products/products.mjs","../../../node_modules/dodopayments/resources/refunds.mjs","../../../node_modules/dodopayments/resources/subscriptions.mjs","../../../node_modules/dodopayments/resources/usage-events.mjs","../../../node_modules/dodopayments/resources/webhook-events.mjs","../../../node_modules/dodopayments/resources/webhooks/headers.mjs","../../../node_modules/standardwebhooks/dist/timing_safe_equal.js","../../../node_modules/@stablelib/base64/lib/base64.js","../../../node_modules/fast-sha256/sha256.js","../../../node_modules/standardwebhooks/dist/index.js","../../../node_modules/dodopayments/resources/webhooks/webhooks.mjs","../../../node_modules/dodopayments/internal/utils/env.mjs","../../../node_modules/dodopayments/client.mjs","../../core/dist/chunk-BVTJMX2W.js","../../core/dist/chunk-7D4SUZUM.js","../src/checkout/checkout.ts","../../core/dist/chunk-K5TVDIGL.js","../../core/dist/chunk-65ICCAWN.js","../../core/dist/chunk-XO2PMWB2.js","../src/webhooks/webhooks.ts","../src/customer-portal/customer-portal.ts"],"sourcesContent":["export var 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 || (util = {}));\nexport var objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nexport const 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]);\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n","import { util } from \"./helpers/util.js\";\nexport const ZodIssueCode = 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]);\nexport const quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nexport class 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.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}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n","import { ZodIssueCode } from \"../ZodError.js\";\nimport { util, ZodParsedType } from \"../helpers/util.js\";\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case 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.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 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 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 ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nexport default errorMap;\n","import defaultErrorMap from \"./locales/en.js\";\nlet overrideErrorMap = defaultErrorMap;\nexport { defaultErrorMap };\nexport function setErrorMap(map) {\n overrideErrorMap = map;\n}\nexport function getErrorMap() {\n return overrideErrorMap;\n}\n","import { getErrorMap } from \"../errors.js\";\nimport defaultErrorMap from \"../locales/en.js\";\nexport const 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};\nexport const EMPTY_PATH = [];\nexport function addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = 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 === defaultErrorMap ? undefined : defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nexport class 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 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 INVALID;\n if (value.status === \"aborted\")\n return 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}\nexport const INVALID = Object.freeze({\n status: \"aborted\",\n});\nexport const DIRTY = (value) => ({ status: \"dirty\", value });\nexport const OK = (value) => ({ status: \"valid\", value });\nexport const isAborted = (x) => x.status === \"aborted\";\nexport const isDirty = (x) => x.status === \"dirty\";\nexport const isValid = (x) => x.status === \"valid\";\nexport const isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n","export var 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 || (errorUtil = {}));\n","import { ZodError, ZodIssueCode, } from \"./ZodError.js\";\nimport { defaultErrorMap, getErrorMap } from \"./errors.js\";\nimport { errorUtil } from \"./helpers/errorUtil.js\";\nimport { DIRTY, INVALID, OK, ParseStatus, addIssueToContext, isAborted, isAsync, isDirty, isValid, makeIssue, } from \"./helpers/parseUtil.js\";\nimport { util, ZodParsedType, getParsedType } from \"./helpers/util.js\";\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 (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(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}\nexport class ZodType {\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: 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 ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: 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 (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: 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: getParsedType(data),\n };\n if (!this[\"~standard\"].async) {\n try {\n const result = this._parseSync({ data, path: [], parent: ctx });\n return 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) => 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: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (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: 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}\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\nexport function 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}\nexport class 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 !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n validation: \"email\",\n code: 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 addIssueToContext(ctx, {\n validation: \"emoji\",\n code: 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 addIssueToContext(ctx, {\n validation: \"uuid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cuid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: 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 addIssueToContext(ctx, {\n validation: \"ulid\",\n code: 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 addIssueToContext(ctx, {\n validation: \"url\",\n code: 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 addIssueToContext(ctx, {\n validation: \"regex\",\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n validation: \"duration\",\n code: 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 addIssueToContext(ctx, {\n validation: \"ip\",\n code: 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 addIssueToContext(ctx, {\n validation: \"jwt\",\n code: 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 addIssueToContext(ctx, {\n validation: \"cidr\",\n code: 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 addIssueToContext(ctx, {\n validation: \"base64\",\n code: 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 addIssueToContext(ctx, {\n validation: \"base64url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n 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: ZodIssueCode.invalid_string,\n ...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.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...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.errToObj(message),\n });\n }\n jwt(options) {\n return this._addCheck({ kind: \"jwt\", ...errorUtil.errToObj(options) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n cidr(options) {\n return this._addCheck({ kind: \"cidr\", ...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.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.errToObj(options?.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...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.errToObj(options?.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * Equivalent to `.min(1)`\n */\n nonempty(message) {\n return this.min(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}\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}\nexport class 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 !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n 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.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, 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.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.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: 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.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: 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.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}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.bigint) {\n return this._getInvalidInput(input);\n }\n let ctx = undefined;\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _getInvalidInput(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, 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.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.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: 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.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: 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}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: params?.coerce ?? false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: params?.coerce || false,\n ...processCreateParams(params),\n });\n};\nexport class 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 !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (Number.isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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.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.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: 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}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: params?.coerce || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nexport class ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nexport class ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nexport class ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nexport class 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 OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nexport class ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nexport class ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nexport class ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nexport class ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return 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 addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : 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 addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 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 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.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\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}\nexport class 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.objectKeys(shape);\n this._cached = { shape, keys };\n return this._cached;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return 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 addIssueToContext(ctx, {\n code: 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 ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n 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.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.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.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.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.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.objectKeys(this.shape));\n }\n}\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};\nexport class 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(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return 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(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\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.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};\nexport class ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return 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}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = 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 === ZodParsedType.array && bType === 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 === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nexport class ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || 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}\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[]];\nexport class ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: 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 ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return 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}\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};\nexport class 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 !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return 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 ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return 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}\nexport class 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 !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return 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 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 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}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nexport class ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: 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 addIssueToContext(ctx, {\n code: 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 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.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: 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}\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};\nexport class 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 !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), defaultErrorMap].filter((x) => !!x),\n issueData: {\n code: 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 OK(async function (...args) {\n const error = new 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 OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new 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([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}\nexport class 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}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nexport class ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\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}\nexport class 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 addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return 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 addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return 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}\nZodEnum.create = createZodEnum;\nexport class ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!this._cache) {\n this._cache = new Set(util.getValidEnumValues(this._def.values));\n }\n if (!this._cache.has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nexport class ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nexport class 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 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 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 INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return 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 INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return 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 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 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 (!isValid(base))\n return 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 (!isValid(base))\n return 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.assertNever(effect);\n }\n}\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};\nexport { ZodEffects as ZodTransformer };\nexport class ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nexport class ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nexport class ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === 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}\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};\nexport class 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 (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(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(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\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};\nexport class ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nexport const BRAND = Symbol(\"zod_brand\");\nexport class 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}\nexport class 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 INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return 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 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}\nexport class ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\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}\nexport function 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}\nexport { ZodType as Schema, ZodType as ZodSchema };\nexport const late = {\n object: ZodObject.lazycreate,\n};\nexport var 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 || (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);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nexport const 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};\nexport { anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, dateType as date, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, instanceOfType as instanceof, intersectionType as intersection, lazyType as lazy, literalType as literal, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, recordType as record, setType as set, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, };\nexport const NEVER = INVALID;\n","function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n 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}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n 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}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class DodoPaymentsError extends Error {\n}\nexport class APIError extends DodoPaymentsError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.error = error;\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse;\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { DodoPaymentsError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new DodoPaymentsError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new DodoPaymentsError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new DodoPaymentsError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new DodoPaymentsError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '2.23.2'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new DodoPayments({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { DodoPaymentsError } from \"../../core/error.mjs\";\n/**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\nexport function stringifyQuery(query) {\n return Object.entries(query)\n .filter(([_, value]) => typeof value !== 'undefined')\n .map(([key, value]) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;\n }\n if (value === null) {\n return `${encodeURIComponent(key)}=`;\n }\n throw new DodoPaymentsError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);\n })\n .join('&');\n}\n//# sourceMappingURL=query.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const contentLength = response.headers.get('content-length');\n if (contentLength === '0') {\n // if there is no content we can't do anything\n return undefined;\n }\n const json = await response.json();\n return json;\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => transform(await this.parseResponse(client, props), props));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data and the raw `Response` instance.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { DodoPaymentsError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new DodoPaymentsError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\nexport class DefaultPageNumberPagination extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.items = body.items || [];\n }\n getPaginatedItems() {\n return this.items ?? [];\n }\n nextPageRequestOptions() {\n const query = this.options.query;\n const currentPage = query?.page_number ?? 1;\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n page_number: currentPage + 1,\n },\n };\n }\n}\nexport class CursorPagePagination extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.iterator = body.iterator || '';\n this.done = body.done || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.done === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.iterator;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n iterator: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { DodoPaymentsError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new DodoPaymentsError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Addons extends APIResource {\n create(body, options) {\n return this._client.post('/addons', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/addons/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/addons/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/addons', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n updateImages(id, options) {\n return this._client.put(path `/addons/${id}/images`, options);\n }\n}\n//# sourceMappingURL=addons.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nexport class Balances extends APIResource {\n retrieveLedger(query = {}, options) {\n return this._client.getAPIList('/balances/ledger', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=balances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Brands extends APIResource {\n create(body, options) {\n return this._client.post('/brands', { body, ...options });\n }\n /**\n * Thin handler just calls `get_brand` and wraps in `Json(...)`\n */\n retrieve(id, options) {\n return this._client.get(path `/brands/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/brands/${id}`, { body, ...options });\n }\n list(options) {\n return this._client.get('/brands', options);\n }\n updateImages(id, options) {\n return this._client.put(path `/brands/${id}/images`, options);\n }\n}\n//# sourceMappingURL=brands.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class CheckoutSessions extends APIResource {\n create(body, options) {\n return this._client.post('/checkouts', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/checkouts/${id}`, options);\n }\n preview(body, options) {\n return this._client.post('/checkouts/preview', { body, ...options });\n }\n}\n//# sourceMappingURL=checkout-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Balances extends APIResource {\n /**\n * Returns the credit balance details for a specific customer and credit\n * entitlement.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Path Parameters\n *\n * - `credit_entitlement_id` - The unique identifier of the credit entitlement\n * - `customer_id` - The unique identifier of the customer\n *\n * # Responses\n *\n * - `200 OK` - Returns the customer's balance\n * - `404 Not Found` - Credit entitlement or customer balance not found\n * - `500 Internal Server Error` - Database or server error\n */\n retrieve(customerID, params, options) {\n const { credit_entitlement_id } = params;\n return this._client.get(path `/credit-entitlements/${credit_entitlement_id}/balances/${customerID}`, options);\n }\n /**\n * Returns a paginated list of customer credit balances for the given credit\n * entitlement.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Path Parameters\n *\n * - `credit_entitlement_id` - The unique identifier of the credit entitlement\n *\n * # Query Parameters\n *\n * - `page_size` - Number of items per page (default: 10, max: 100)\n * - `page_number` - Zero-based page number (default: 0)\n * - `customer_id` - Optional filter by specific customer\n *\n * # Responses\n *\n * - `200 OK` - Returns list of customer balances\n * - `404 Not Found` - Credit entitlement not found\n * - `500 Internal Server Error` - Database or server error\n */\n list(creditEntitlementID, query = {}, options) {\n return this._client.getAPIList(path `/credit-entitlements/${creditEntitlementID}/balances`, (DefaultPageNumberPagination), { query, ...options });\n }\n /**\n * For credit entries, a new grant is created. For debit entries, credits are\n * deducted from existing grants using FIFO (oldest first).\n *\n * # Authentication\n *\n * Requires an API key with `Editor` role.\n *\n * # Path Parameters\n *\n * - `credit_entitlement_id` - The unique identifier of the credit entitlement\n * - `customer_id` - The unique identifier of the customer\n *\n * # Request Body\n *\n * - `entry_type` - \"credit\" or \"debit\"\n * - `amount` - Amount to credit or debit\n * - `reason` - Optional human-readable reason\n * - `expires_at` - Optional expiration for credited amount (only for credit type)\n * - `idempotency_key` - Optional key to prevent duplicate entries\n *\n * # Responses\n *\n * - `201 Created` - Ledger entry created successfully\n * - `400 Bad Request` - Invalid request (e.g., debit with insufficient balance)\n * - `404 Not Found` - Credit entitlement or customer not found\n * - `409 Conflict` - Idempotency key already exists\n * - `500 Internal Server Error` - Database or server error\n */\n createLedgerEntry(customerID, params, options) {\n const { credit_entitlement_id, ...body } = params;\n return this._client.post(path `/credit-entitlements/${credit_entitlement_id}/balances/${customerID}/ledger-entries`, { body, ...options });\n }\n /**\n * Returns a paginated list of credit grants with optional filtering by status.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Path Parameters\n *\n * - `credit_entitlement_id` - The unique identifier of the credit entitlement\n * - `customer_id` - The unique identifier of the customer\n *\n * # Query Parameters\n *\n * - `page_size` - Number of items per page (default: 10, max: 100)\n * - `page_number` - Zero-based page number (default: 0)\n * - `status` - Filter by status: active, expired, depleted\n *\n * # Responses\n *\n * - `200 OK` - Returns list of grants\n * - `404 Not Found` - Credit entitlement not found\n * - `500 Internal Server Error` - Database or server error\n */\n listGrants(customerID, params, options) {\n const { credit_entitlement_id, ...query } = params;\n return this._client.getAPIList(path `/credit-entitlements/${credit_entitlement_id}/balances/${customerID}/grants`, (DefaultPageNumberPagination), { query, ...options });\n }\n /**\n * Returns a paginated list of credit transaction history with optional filtering.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Path Parameters\n *\n * - `credit_entitlement_id` - The unique identifier of the credit entitlement\n * - `customer_id` - The unique identifier of the customer\n *\n * # Query Parameters\n *\n * - `page_size` - Number of items per page (default: 10, max: 100)\n * - `page_number` - Zero-based page number (default: 0)\n * - `transaction_type` - Filter by transaction type\n * - `start_date` - Filter entries from this date\n * - `end_date` - Filter entries until this date\n *\n * # Responses\n *\n * - `200 OK` - Returns list of ledger entries\n * - `404 Not Found` - Credit entitlement not found\n * - `500 Internal Server Error` - Database or server error\n */\n listLedger(customerID, params, options) {\n const { credit_entitlement_id, ...query } = params;\n return this._client.getAPIList(path `/credit-entitlements/${credit_entitlement_id}/balances/${customerID}/ledger`, (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=balances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as BalancesAPI from \"./balances.mjs\";\nimport { Balances, } from \"./balances.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class CreditEntitlements extends APIResource {\n constructor() {\n super(...arguments);\n this.balances = new BalancesAPI.Balances(this._client);\n }\n /**\n * Credit entitlements define reusable credit templates that can be attached to\n * products. Each entitlement defines how credits behave in terms of expiration,\n * rollover, and overage.\n *\n * # Authentication\n *\n * Requires an API key with `Editor` role.\n *\n * # Request Body\n *\n * - `name` - Human-readable name of the credit entitlement (1-255 characters,\n * required)\n * - `description` - Optional description (max 1000 characters)\n * - `precision` - Decimal precision for credit amounts (0-10 decimal places)\n * - `unit` - Unit of measurement for the credit (e.g., \"API Calls\", \"Tokens\",\n * \"Credits\")\n * - `expires_after_days` - Number of days after which credits expire (optional)\n * - `rollover_enabled` - Whether unused credits can rollover to the next period\n * - `rollover_percentage` - Percentage of unused credits that rollover (0-100)\n * - `rollover_timeframe_count` - Count of timeframe periods for rollover limit\n * - `rollover_timeframe_interval` - Interval type (day, week, month, year)\n * - `max_rollover_count` - Maximum number of times credits can be rolled over\n * - `overage_enabled` - Whether overage charges apply when credits run out\n * (requires price_per_unit)\n * - `overage_limit` - Maximum overage units allowed (optional)\n * - `currency` - Currency for pricing (required if price_per_unit is set)\n * - `price_per_unit` - Price per credit unit (decimal)\n *\n * # Responses\n *\n * - `201 Created` - Credit entitlement created successfully, returns the full\n * entitlement object\n * - `422 Unprocessable Entity` - Invalid request parameters or validation failure\n * - `500 Internal Server Error` - Database or server error\n *\n * # Business Logic\n *\n * - A unique ID with prefix `cde_` is automatically generated for the entitlement\n * - Created and updated timestamps are automatically set\n * - Currency is required when price_per_unit is set\n * - price_per_unit is required when overage_enabled is true\n * - rollover_timeframe_count and rollover_timeframe_interval must both be set or\n * both be null\n */\n create(body, options) {\n return this._client.post('/credit-entitlements', { body, ...options });\n }\n /**\n * Returns the full details of a single credit entitlement including all\n * configuration settings for expiration, rollover, and overage policies.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Path Parameters\n *\n * - `id` - The unique identifier of the credit entitlement (format: `cde_...`)\n *\n * # Responses\n *\n * - `200 OK` - Returns the full credit entitlement object\n * - `404 Not Found` - Credit entitlement does not exist or does not belong to the\n * authenticated business\n * - `500 Internal Server Error` - Database or server error\n *\n * # Business Logic\n *\n * - Only non-deleted credit entitlements can be retrieved through this endpoint\n * - The entitlement must belong to the authenticated business (business_id check)\n * - Deleted entitlements return a 404 error and must be retrieved via the list\n * endpoint with `deleted=true`\n */\n retrieve(id, options) {\n return this._client.get(path `/credit-entitlements/${id}`, options);\n }\n /**\n * Allows partial updates to a credit entitlement's configuration. Only the fields\n * provided in the request body will be updated; all other fields remain unchanged.\n * This endpoint supports nullable fields using the double option pattern.\n *\n * # Authentication\n *\n * Requires an API key with `Editor` role.\n *\n * # Path Parameters\n *\n * - `id` - The unique identifier of the credit entitlement to update (format:\n * `cde_...`)\n *\n * # Request Body (all fields optional)\n *\n * - `name` - Human-readable name of the credit entitlement (1-255 characters)\n * - `description` - Optional description (max 1000 characters)\n * - `unit` - Unit of measurement for the credit (1-50 characters)\n *\n * Note: `precision` cannot be modified after creation as it would invalidate\n * existing grants.\n *\n * - `expires_after_days` - Number of days after which credits expire (use `null`\n * to remove expiration)\n * - `rollover_enabled` - Whether unused credits can rollover to the next period\n * - `rollover_percentage` - Percentage of unused credits that rollover (0-100,\n * nullable)\n * - `rollover_timeframe_count` - Count of timeframe periods for rollover limit\n * (nullable)\n * - `rollover_timeframe_interval` - Interval type (day, week, month, year,\n * nullable)\n * - `max_rollover_count` - Maximum number of times credits can be rolled over\n * (nullable)\n * - `overage_enabled` - Whether overage charges apply when credits run out\n * - `overage_limit` - Maximum overage units allowed (nullable)\n * - `currency` - Currency for pricing (nullable)\n * - `price_per_unit` - Price per credit unit (decimal, nullable)\n *\n * # Responses\n *\n * - `200 OK` - Credit entitlement updated successfully\n * - `404 Not Found` - Credit entitlement does not exist or does not belong to the\n * authenticated business\n * - `422 Unprocessable Entity` - Invalid request parameters or validation failure\n * - `500 Internal Server Error` - Database or server error\n *\n * # Business Logic\n *\n * - Only non-deleted credit entitlements can be updated\n * - Fields set to `null` explicitly will clear the database value (using double\n * option pattern)\n * - The `updated_at` timestamp is automatically updated on successful modification\n * - Changes take effect immediately but do not retroactively affect existing\n * credit grants\n * - The merged state is validated: currency required with price, rollover\n * timeframe fields together, price required for overage\n */\n update(id, body, options) {\n return this._client.patch(path `/credit-entitlements/${id}`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Returns a paginated list of credit entitlements, allowing filtering of deleted\n * entitlements. By default, only non-deleted entitlements are returned.\n *\n * # Authentication\n *\n * Requires an API key with `Viewer` role or higher.\n *\n * # Query Parameters\n *\n * - `page_size` - Number of items per page (default: 10, max: 100)\n * - `page_number` - Zero-based page number (default: 0)\n * - `deleted` - Boolean flag to list deleted entitlements instead of active ones\n * (default: false)\n *\n * # Responses\n *\n * - `200 OK` - Returns a list of credit entitlements wrapped in a response object\n * - `422 Unprocessable Entity` - Invalid query parameters (e.g., page_size > 100)\n * - `500 Internal Server Error` - Database or server error\n *\n * # Business Logic\n *\n * - Results are ordered by creation date in descending order (newest first)\n * - Only entitlements belonging to the authenticated business are returned\n * - The `deleted` parameter controls visibility of soft-deleted entitlements\n * - Pagination uses offset-based pagination (offset = page_number \\* page_size)\n */\n list(query = {}, options) {\n return this._client.getAPIList('/credit-entitlements', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n delete(id, options) {\n return this._client.delete(path `/credit-entitlements/${id}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Undeletes a soft-deleted credit entitlement by clearing `deleted_at`, making it\n * available again through standard list and get endpoints.\n *\n * # Authentication\n *\n * Requires an API key with `Editor` role.\n *\n * # Path Parameters\n *\n * - `id` - The unique identifier of the credit entitlement to restore (format:\n * `cde_...`)\n *\n * # Responses\n *\n * - `200 OK` - Credit entitlement restored successfully\n * - `500 Internal Server Error` - Database error, entitlement not found, or\n * entitlement is not deleted\n *\n * # Business Logic\n *\n * - Only deleted credit entitlements can be restored\n * - The query filters for `deleted_at IS NOT NULL`, so non-deleted entitlements\n * will result in 0 rows affected\n * - If no rows are affected (entitlement doesn't exist, doesn't belong to\n * business, or is not deleted), returns 500\n * - The `updated_at` timestamp is automatically updated on successful restoration\n * - Once restored, the entitlement becomes immediately available in the standard\n * list and get endpoints\n * - All configuration settings are preserved during delete/restore operations\n *\n * # Error Handling\n *\n * This endpoint returns 500 Internal Server Error in several cases:\n *\n * - The credit entitlement does not exist\n * - The credit entitlement belongs to a different business\n * - The credit entitlement is not currently deleted (already active)\n *\n * Callers should verify the entitlement exists and is deleted before calling this\n * endpoint.\n */\n undelete(id, options) {\n return this._client.post(path `/credit-entitlements/${id}/undelete`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nCreditEntitlements.Balances = Balances;\n//# sourceMappingURL=credit-entitlements.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class CustomerPortal extends APIResource {\n create(customerID, params = {}, options) {\n const { send_email } = params ?? {};\n return this._client.post(path `/customers/${customerID}/customer-portal/session`, {\n query: { send_email },\n ...options,\n });\n }\n}\n//# sourceMappingURL=customer-portal.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class LedgerEntries extends APIResource {\n create(customerID, body, options) {\n return this._client.post(path `/customers/${customerID}/wallets/ledger-entries`, { body, ...options });\n }\n list(customerID, query = {}, options) {\n return this._client.getAPIList(path `/customers/${customerID}/wallets/ledger-entries`, (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=ledger-entries.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as LedgerEntriesAPI from \"./ledger-entries.mjs\";\nimport { LedgerEntries, } from \"./ledger-entries.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Wallets extends APIResource {\n constructor() {\n super(...arguments);\n this.ledgerEntries = new LedgerEntriesAPI.LedgerEntries(this._client);\n }\n list(customerID, options) {\n return this._client.get(path `/customers/${customerID}/wallets`, options);\n }\n}\nWallets.LedgerEntries = LedgerEntries;\n//# sourceMappingURL=wallets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CustomerPortalAPI from \"./customer-portal.mjs\";\nimport { CustomerPortal } from \"./customer-portal.mjs\";\nimport * as WalletsAPI from \"./wallets/wallets.mjs\";\nimport { Wallets } from \"./wallets/wallets.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Customers extends APIResource {\n constructor() {\n super(...arguments);\n this.customerPortal = new CustomerPortalAPI.CustomerPortal(this._client);\n this.wallets = new WalletsAPI.Wallets(this._client);\n }\n create(body, options) {\n return this._client.post('/customers', { body, ...options });\n }\n retrieve(customerID, options) {\n return this._client.get(path `/customers/${customerID}`, options);\n }\n update(customerID, body, options) {\n return this._client.patch(path `/customers/${customerID}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/customers', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n /**\n * List all credit entitlements for a customer with their current balances\n */\n listCreditEntitlements(customerID, options) {\n return this._client.get(path `/customers/${customerID}/credit-entitlements`, options);\n }\n retrievePaymentMethods(customerID, options) {\n return this._client.get(path `/customers/${customerID}/payment-methods`, options);\n }\n}\nCustomers.CustomerPortal = CustomerPortal;\nCustomers.Wallets = Wallets;\n//# sourceMappingURL=customers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Discounts extends APIResource {\n /**\n * POST /discounts If `code` is omitted or empty, a random 16-char uppercase code\n * is generated.\n */\n create(body, options) {\n return this._client.post('/discounts', { body, ...options });\n }\n /**\n * GET /discounts/{discount_id}\n */\n retrieve(discountID, options) {\n return this._client.get(path `/discounts/${discountID}`, options);\n }\n /**\n * PATCH /discounts/{discount_id}\n */\n update(discountID, body, options) {\n return this._client.patch(path `/discounts/${discountID}`, { body, ...options });\n }\n /**\n * GET /discounts\n */\n list(query = {}, options) {\n return this._client.getAPIList('/discounts', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n /**\n * DELETE /discounts/{discount_id}\n */\n delete(discountID, options) {\n return this._client.delete(path `/discounts/${discountID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Validate and fetch a discount by its code name (e.g., \"SAVE20\"). This allows\n * real-time validation directly against the API using the human-readable discount\n * code instead of requiring the internal discount_id.\n */\n retrieveByCode(code, options) {\n return this._client.get(path `/discounts/code/${code}`, options);\n }\n}\n//# sourceMappingURL=discounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Disputes extends APIResource {\n retrieve(disputeID, options) {\n return this._client.get(path `/disputes/${disputeID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/disputes', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=disputes.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Payments extends APIResource {\n retrieve(paymentID, options) {\n return this._client.get(path `/invoices/payments/${paymentID}`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/pdf' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n retrieveRefund(refundID, options) {\n return this._client.get(path `/invoices/refunds/${refundID}`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/pdf' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PaymentsAPI from \"./payments.mjs\";\nimport { Payments } from \"./payments.mjs\";\nexport class Invoices extends APIResource {\n constructor() {\n super(...arguments);\n this.payments = new PaymentsAPI.Payments(this._client);\n }\n}\nInvoices.Payments = Payments;\n//# sourceMappingURL=invoices.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class LicenseKeyInstances extends APIResource {\n /**\n * @example\n * ```ts\n * const licenseKeyInstance =\n * await client.licenseKeyInstances.retrieve('lki_123');\n * ```\n */\n retrieve(id, options) {\n return this._client.get(path `/license_key_instances/${id}`, options);\n }\n /**\n * @example\n * ```ts\n * const licenseKeyInstance =\n * await client.licenseKeyInstances.update('lki_123', {\n * name: 'name',\n * });\n * ```\n */\n update(id, body, options) {\n return this._client.patch(path `/license_key_instances/${id}`, { body, ...options });\n }\n /**\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const licenseKeyInstance of client.licenseKeyInstances.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/license_key_instances', (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=license-key-instances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class LicenseKeys extends APIResource {\n /**\n * @example\n * ```ts\n * const licenseKey = await client.licenseKeys.retrieve(\n * 'lic_123',\n * );\n * ```\n */\n retrieve(id, options) {\n return this._client.get(path `/license_keys/${id}`, options);\n }\n /**\n * @example\n * ```ts\n * const licenseKey = await client.licenseKeys.update(\n * 'lic_123',\n * );\n * ```\n */\n update(id, body, options) {\n return this._client.patch(path `/license_keys/${id}`, { body, ...options });\n }\n /**\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const licenseKey of client.licenseKeys.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/license_keys', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=license-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Licenses extends APIResource {\n /**\n * @example\n * ```ts\n * const response = await client.licenses.activate({\n * license_key: 'license_key',\n * name: 'name',\n * });\n * ```\n */\n activate(body, options) {\n return this._client.post('/licenses/activate', { body, ...options });\n }\n /**\n * @example\n * ```ts\n * await client.licenses.deactivate({\n * license_key: 'license_key',\n * license_key_instance_id: 'license_key_instance_id',\n * });\n * ```\n */\n deactivate(body, options) {\n return this._client.post('/licenses/deactivate', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * @example\n * ```ts\n * const response = await client.licenses.validate({\n * license_key: '2b1f8e2d-c41e-4e8f-b2d3-d9fd61c38f43',\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/licenses/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=licenses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Meters extends APIResource {\n create(body, options) {\n return this._client.post('/meters', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/meters/${id}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/meters', (DefaultPageNumberPagination), { query, ...options });\n }\n archive(id, options) {\n return this._client.delete(path `/meters/${id}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n unarchive(id, options) {\n return this._client.post(path `/meters/${id}/unarchive`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=meters.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Misc extends APIResource {\n listSupportedCountries(options) {\n return this._client.get('/checkout/supported_countries', options);\n }\n}\n//# sourceMappingURL=misc.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Payments extends APIResource {\n /**\n * @deprecated\n */\n create(body, options) {\n return this._client.post('/payments', { body, ...options });\n }\n retrieve(paymentID, options) {\n return this._client.get(path `/payments/${paymentID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/payments', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n retrieveLineItems(paymentID, options) {\n return this._client.get(path `/payments/${paymentID}/line-items`, options);\n }\n}\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nexport class Payouts extends APIResource {\n list(query = {}, options) {\n return this._client.getAPIList('/payouts', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=payouts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Images extends APIResource {\n update(id, params = {}, options) {\n const { force_update } = params ?? {};\n return this._client.put(path `/products/${id}/images`, { query: { force_update }, ...options });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class ShortLinks extends APIResource {\n /**\n * Gives a Short Checkout URL with custom slug for a product. Uses a Static\n * Checkout URL under the hood.\n */\n create(id, body, options) {\n return this._client.post(path `/products/${id}/short_links`, { body, ...options });\n }\n /**\n * Lists all short links created by the business.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/products/short_links', (DefaultPageNumberPagination), { query, ...options });\n }\n}\n//# sourceMappingURL=short-links.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ImagesAPI from \"./images.mjs\";\nimport { Images } from \"./images.mjs\";\nimport * as ShortLinksAPI from \"./short-links.mjs\";\nimport { ShortLinks, } from \"./short-links.mjs\";\nimport { DefaultPageNumberPagination, } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Products extends APIResource {\n constructor() {\n super(...arguments);\n this.images = new ImagesAPI.Images(this._client);\n this.shortLinks = new ShortLinksAPI.ShortLinks(this._client);\n }\n create(body, options) {\n return this._client.post('/products', { body, ...options });\n }\n retrieve(id, options) {\n return this._client.get(path `/products/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(path `/products/${id}`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/products', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n archive(id, options) {\n return this._client.delete(path `/products/${id}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n unarchive(id, options) {\n return this._client.post(path `/products/${id}/unarchive`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n updateFiles(id, body, options) {\n return this._client.put(path `/products/${id}/files`, { body, ...options });\n }\n}\nProducts.Images = Images;\nProducts.ShortLinks = ShortLinks;\n//# sourceMappingURL=products.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Refunds extends APIResource {\n create(body, options) {\n return this._client.post('/refunds', { body, ...options });\n }\n retrieve(refundID, options) {\n return this._client.get(path `/refunds/${refundID}`, options);\n }\n list(query = {}, options) {\n return this._client.getAPIList('/refunds', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n}\n//# sourceMappingURL=refunds.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Subscriptions extends APIResource {\n /**\n * @deprecated\n */\n create(body, options) {\n return this._client.post('/subscriptions', { body, ...options });\n }\n retrieve(subscriptionID, options) {\n return this._client.get(path `/subscriptions/${subscriptionID}`, options);\n }\n update(subscriptionID, body, options) {\n return this._client.patch(path `/subscriptions/${subscriptionID}`, { body, ...options });\n }\n list(query = {}, options) {\n return this._client.getAPIList('/subscriptions', (DefaultPageNumberPagination), {\n query,\n ...options,\n });\n }\n changePlan(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/change-plan`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n charge(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/charge`, { body, ...options });\n }\n previewChangePlan(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/change-plan/preview`, {\n body,\n ...options,\n });\n }\n retrieveCreditUsage(subscriptionID, options) {\n return this._client.get(path `/subscriptions/${subscriptionID}/credit-usage`, options);\n }\n /**\n * Get detailed usage history for a subscription that includes usage-based billing\n * (metered components). This endpoint provides insights into customer usage\n * patterns and billing calculations over time.\n *\n * ## What You'll Get:\n *\n * - **Billing periods**: Each item represents a billing cycle with start and end\n * dates\n * - **Meter usage**: Detailed breakdown of usage for each meter configured on the\n * subscription\n * - **Usage calculations**: Total units consumed, free threshold units, and\n * chargeable units\n * - **Historical tracking**: Complete audit trail of usage-based charges\n *\n * ## Use Cases:\n *\n * - **Customer support**: Investigate billing questions and usage discrepancies\n * - **Usage analytics**: Analyze customer consumption patterns over time\n * - **Billing transparency**: Provide customers with detailed usage breakdowns\n * - **Revenue optimization**: Identify usage trends to optimize pricing strategies\n *\n * ## Filtering Options:\n *\n * - **Date range filtering**: Get usage history for specific time periods\n * - **Meter-specific filtering**: Focus on usage for a particular meter\n * - **Pagination**: Navigate through large usage histories efficiently\n *\n * ## Important Notes:\n *\n * - Only returns data for subscriptions with usage-based (metered) components\n * - Usage history is organized by billing periods (subscription cycles)\n * - Free threshold units are calculated and displayed separately from chargeable\n * units\n * - Historical data is preserved even if meter configurations change\n *\n * ## Example Query Patterns:\n *\n * - Get last 3 months:\n * `?start_date=2024-01-01T00:00:00Z&end_date=2024-03-31T23:59:59Z`\n * - Filter by meter: `?meter_id=mtr_api_requests`\n * - Paginate results: `?page_size=20&page_number=1`\n * - Recent usage: `?start_date=2024-03-01T00:00:00Z` (from March 1st to now)\n */\n retrieveUsageHistory(subscriptionID, query = {}, options) {\n return this._client.getAPIList(path `/subscriptions/${subscriptionID}/usage-history`, (DefaultPageNumberPagination), { query, ...options });\n }\n updatePaymentMethod(subscriptionID, body, options) {\n return this._client.post(path `/subscriptions/${subscriptionID}/update-payment-method`, {\n body,\n ...options,\n });\n }\n}\n//# sourceMappingURL=subscriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { DefaultPageNumberPagination, } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class UsageEvents extends APIResource {\n /**\n * Fetch detailed information about a single event using its unique event ID. This\n * endpoint is useful for:\n *\n * - Debugging specific event ingestion issues\n * - Retrieving event details for customer support\n * - Validating that events were processed correctly\n * - Getting the complete metadata for an event\n *\n * ## Event ID Format:\n *\n * The event ID should be the same value that was provided during event ingestion\n * via the `/events/ingest` endpoint. Event IDs are case-sensitive and must match\n * exactly.\n *\n * ## Response Details:\n *\n * The response includes all event data including:\n *\n * - Complete metadata key-value pairs\n * - Original timestamp (preserved from ingestion)\n * - Customer and business association\n * - Event name and processing information\n *\n * ## Example Usage:\n *\n * ```text\n * GET /events/api_call_12345\n * ```\n */\n retrieve(eventID, options) {\n return this._client.get(path `/events/${eventID}`, options);\n }\n /**\n * Fetch events from your account with powerful filtering capabilities. This\n * endpoint is ideal for:\n *\n * - Debugging event ingestion issues\n * - Analyzing customer usage patterns\n * - Building custom analytics dashboards\n * - Auditing billing-related events\n *\n * ## Filtering Options:\n *\n * - **Customer filtering**: Filter by specific customer ID\n * - **Event name filtering**: Filter by event type/name\n * - **Meter-based filtering**: Use a meter ID to apply the meter's event name and\n * filter criteria automatically\n * - **Time range filtering**: Filter events within a specific date range\n * - **Pagination**: Navigate through large result sets\n *\n * ## Meter Integration:\n *\n * When using `meter_id`, the endpoint automatically applies:\n *\n * - The meter's configured `event_name` filter\n * - The meter's custom filter criteria (if any)\n * - If you also provide `event_name`, it must match the meter's event name\n *\n * ## Example Queries:\n *\n * - Get all events for a customer: `?customer_id=cus_abc123`\n * - Get API request events: `?event_name=api_request`\n * - Get events from last 24 hours:\n * `?start=2024-01-14T10:30:00Z&end=2024-01-15T10:30:00Z`\n * - Get events with meter filtering: `?meter_id=mtr_xyz789`\n * - Paginate results: `?page_size=50&page_number=2`\n */\n list(query = {}, options) {\n return this._client.getAPIList('/events', (DefaultPageNumberPagination), { query, ...options });\n }\n /**\n * This endpoint allows you to ingest custom events that can be used for:\n *\n * - Usage-based billing and metering\n * - Analytics and reporting\n * - Customer behavior tracking\n *\n * ## Important Notes:\n *\n * - **Duplicate Prevention**:\n * - Duplicate `event_id` values within the same request are rejected (entire\n * request fails)\n * - Subsequent requests with existing `event_id` values are ignored (idempotent\n * behavior)\n * - **Rate Limiting**: Maximum 1000 events per request\n * - **Time Validation**: Events with timestamps older than 1 hour or more than 5\n * minutes in the future will be rejected\n * - **Metadata Limits**: Maximum 50 key-value pairs per event, keys max 100 chars,\n * values max 500 chars\n *\n * ## Example Usage:\n *\n * ```json\n * {\n * \"events\": [\n * {\n * \"event_id\": \"api_call_12345\",\n * \"customer_id\": \"cus_abc123\",\n * \"event_name\": \"api_request\",\n * \"timestamp\": \"2024-01-15T10:30:00Z\",\n * \"metadata\": {\n * \"endpoint\": \"/api/v1/users\",\n * \"method\": \"GET\",\n * \"tokens_used\": \"150\"\n * }\n * }\n * ]\n * }\n * ```\n */\n ingest(body, options) {\n return this._client.post('/events/ingest', { body, ...options });\n }\n}\n//# sourceMappingURL=usage-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class WebhookEvents extends APIResource {\n}\n//# sourceMappingURL=webhook-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Headers extends APIResource {\n /**\n * Get a webhook by id\n */\n retrieve(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}/headers`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookID, body, options) {\n return this._client.patch(path `/webhooks/${webhookID}/headers`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=headers.mjs.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.timingSafeEqual = void 0;\nfunction assert(expr, msg = \"\") {\n if (!expr) {\n throw new Error(msg);\n }\n}\nfunction timingSafeEqual(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n if (!(a instanceof DataView)) {\n a = new DataView(ArrayBuffer.isView(a) ? a.buffer : a);\n }\n if (!(b instanceof DataView)) {\n b = new DataView(ArrayBuffer.isView(b) ? b.buffer : b);\n }\n assert(a instanceof DataView);\n assert(b instanceof DataView);\n const length = a.byteLength;\n let out = 0;\n let i = -1;\n while (++i < length) {\n out |= a.getUint8(i) ^ b.getUint8(i);\n }\n return out === 0;\n}\nexports.timingSafeEqual = timingSafeEqual;\n//# sourceMappingURL=timing_safe_equal.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n//# sourceMappingURL=base64.js.map","(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Webhook = exports.WebhookVerificationError = void 0;\nconst timing_safe_equal_1 = require(\"./timing_safe_equal\");\nconst base64 = require(\"@stablelib/base64\");\nconst sha256 = require(\"fast-sha256\");\nconst WEBHOOK_TOLERANCE_IN_SECONDS = 5 * 60;\nclass ExtendableError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, ExtendableError.prototype);\n this.name = \"ExtendableError\";\n this.stack = new Error(message).stack;\n }\n}\nclass WebhookVerificationError extends ExtendableError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, WebhookVerificationError.prototype);\n this.name = \"WebhookVerificationError\";\n }\n}\nexports.WebhookVerificationError = WebhookVerificationError;\nclass Webhook {\n constructor(secret, options) {\n if (!secret) {\n throw new Error(\"Secret can't be empty.\");\n }\n if ((options === null || options === void 0 ? void 0 : options.format) === \"raw\") {\n if (secret instanceof Uint8Array) {\n this.key = secret;\n }\n else {\n this.key = Uint8Array.from(secret, (c) => c.charCodeAt(0));\n }\n }\n else {\n if (typeof secret !== \"string\") {\n throw new Error(\"Expected secret to be of type string\");\n }\n if (secret.startsWith(Webhook.prefix)) {\n secret = secret.substring(Webhook.prefix.length);\n }\n this.key = base64.decode(secret);\n }\n }\n verify(payload, headers_) {\n const headers = {};\n for (const key of Object.keys(headers_)) {\n headers[key.toLowerCase()] = headers_[key];\n }\n const msgId = headers[\"webhook-id\"];\n const msgSignature = headers[\"webhook-signature\"];\n const msgTimestamp = headers[\"webhook-timestamp\"];\n if (!msgSignature || !msgId || !msgTimestamp) {\n throw new WebhookVerificationError(\"Missing required headers\");\n }\n const timestamp = this.verifyTimestamp(msgTimestamp);\n const computedSignature = this.sign(msgId, timestamp, payload);\n const expectedSignature = computedSignature.split(\",\")[1];\n const passedSignatures = msgSignature.split(\" \");\n const encoder = new globalThis.TextEncoder();\n for (const versionedSignature of passedSignatures) {\n const [version, signature] = versionedSignature.split(\",\");\n if (version !== \"v1\") {\n continue;\n }\n if ((0, timing_safe_equal_1.timingSafeEqual)(encoder.encode(signature), encoder.encode(expectedSignature))) {\n return JSON.parse(payload.toString());\n }\n }\n throw new WebhookVerificationError(\"No matching signature found\");\n }\n sign(msgId, timestamp, payload) {\n if (typeof payload === \"string\") {\n }\n else if (payload.constructor.name === \"Buffer\") {\n payload = payload.toString();\n }\n else {\n throw new Error(\"Expected payload to be of type string or Buffer.\");\n }\n const encoder = new TextEncoder();\n const timestampNumber = Math.floor(timestamp.getTime() / 1000);\n const toSign = encoder.encode(`${msgId}.${timestampNumber}.${payload}`);\n const expectedSignature = base64.encode(sha256.hmac(this.key, toSign));\n return `v1,${expectedSignature}`;\n }\n verifyTimestamp(timestampHeader) {\n const now = Math.floor(Date.now() / 1000);\n const timestamp = parseInt(timestampHeader, 10);\n if (isNaN(timestamp)) {\n throw new WebhookVerificationError(\"Invalid Signature Headers\");\n }\n if (now - timestamp > WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too old\");\n }\n if (timestamp > now + WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too new\");\n }\n return new Date(timestamp * 1000);\n }\n}\nexports.Webhook = Webhook;\nWebhook.prefix = \"whsec_\";\n//# sourceMappingURL=index.js.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as HeadersAPI from \"./headers.mjs\";\nimport { Headers } from \"./headers.mjs\";\nimport { Webhook } from 'standardwebhooks';\nimport { CursorPagePagination } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n this.headers = new HeadersAPI.Headers(this._client);\n }\n /**\n * Create a new webhook\n */\n create(body, options) {\n return this._client.post('/webhooks', { body, ...options });\n }\n /**\n * Get a webhook by id\n */\n retrieve(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookID, body, options) {\n return this._client.patch(path `/webhooks/${webhookID}`, { body, ...options });\n }\n /**\n * List all webhooks\n */\n list(query = {}, options) {\n return this._client.getAPIList('/webhooks', (CursorPagePagination), { query, ...options });\n }\n /**\n * Delete a webhook by id\n */\n delete(webhookID, options) {\n return this._client.delete(path `/webhooks/${webhookID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Get webhook secret by id\n */\n retrieveSecret(webhookID, options) {\n return this._client.get(path `/webhooks/${webhookID}/secret`, options);\n }\n unsafeUnwrap(body) {\n return JSON.parse(body);\n }\n unwrap(body, { headers, key }) {\n if (headers !== undefined) {\n const keyStr = key === undefined ? this._client.webhookKey : key;\n if (keyStr === null)\n throw new Error('Webhook key must not be null in order to unwrap');\n const wh = new Webhook(keyStr);\n wh.verify(body, headers);\n }\n return JSON.parse(body);\n }\n}\nWebhooks.Headers = Headers;\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _DodoPayments_instances, _a, _DodoPayments_encoder, _DodoPayments_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport { stringifyQuery } from \"./internal/utils/query.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Addons, } from \"./resources/addons.mjs\";\nimport { Balances, } from \"./resources/balances.mjs\";\nimport { Brands, } from \"./resources/brands.mjs\";\nimport { CheckoutSessions, } from \"./resources/checkout-sessions.mjs\";\nimport { Discounts, } from \"./resources/discounts.mjs\";\nimport { Disputes, } from \"./resources/disputes.mjs\";\nimport { LicenseKeyInstances, } from \"./resources/license-key-instances.mjs\";\nimport { LicenseKeys, } from \"./resources/license-keys.mjs\";\nimport { Licenses, } from \"./resources/licenses.mjs\";\nimport { Meters, } from \"./resources/meters.mjs\";\nimport { Misc, } from \"./resources/misc.mjs\";\nimport { Payments, } from \"./resources/payments.mjs\";\nimport { Payouts, } from \"./resources/payouts.mjs\";\nimport { Refunds } from \"./resources/refunds.mjs\";\nimport { Subscriptions, } from \"./resources/subscriptions.mjs\";\nimport { UsageEvents, } from \"./resources/usage-events.mjs\";\nimport { WebhookEvents } from \"./resources/webhook-events.mjs\";\nimport { CreditEntitlements, } from \"./resources/credit-entitlements/credit-entitlements.mjs\";\nimport { Customers, } from \"./resources/customers/customers.mjs\";\nimport { Invoices } from \"./resources/invoices/invoices.mjs\";\nimport { Products, } from \"./resources/products/products.mjs\";\nimport { Webhooks, } from \"./resources/webhooks/webhooks.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\nconst environments = {\n live_mode: 'https://live.dodopayments.com',\n test_mode: 'https://test.dodopayments.com',\n};\n/**\n * API Client for interfacing with the Dodo Payments API.\n */\nexport class DodoPayments {\n /**\n * API Client for interfacing with the Dodo Payments API.\n *\n * @param {string | undefined} [opts.bearerToken=process.env['DODO_PAYMENTS_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.webhookKey=process.env['DODO_PAYMENTS_WEBHOOK_KEY'] ?? null]\n * @param {Environment} [opts.environment=live_mode] - Specifies the environment URL to use for the API.\n * @param {string} [opts.baseURL=process.env['DODO_PAYMENTS_BASE_URL'] ?? https://live.dodopayments.com] - Override the default base URL for the API.\n * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n */\n constructor({ baseURL = readEnv('DODO_PAYMENTS_BASE_URL'), bearerToken = readEnv('DODO_PAYMENTS_API_KEY'), webhookKey = readEnv('DODO_PAYMENTS_WEBHOOK_KEY') ?? null, ...opts } = {}) {\n _DodoPayments_instances.add(this);\n _DodoPayments_encoder.set(this, void 0);\n this.checkoutSessions = new API.CheckoutSessions(this);\n this.payments = new API.Payments(this);\n this.subscriptions = new API.Subscriptions(this);\n this.invoices = new API.Invoices(this);\n this.licenses = new API.Licenses(this);\n this.licenseKeys = new API.LicenseKeys(this);\n this.licenseKeyInstances = new API.LicenseKeyInstances(this);\n this.customers = new API.Customers(this);\n this.refunds = new API.Refunds(this);\n this.disputes = new API.Disputes(this);\n this.payouts = new API.Payouts(this);\n this.products = new API.Products(this);\n this.misc = new API.Misc(this);\n this.discounts = new API.Discounts(this);\n this.addons = new API.Addons(this);\n this.brands = new API.Brands(this);\n this.webhooks = new API.Webhooks(this);\n this.webhookEvents = new API.WebhookEvents(this);\n this.usageEvents = new API.UsageEvents(this);\n this.meters = new API.Meters(this);\n this.balances = new API.Balances(this);\n this.creditEntitlements = new API.CreditEntitlements(this);\n if (bearerToken === undefined) {\n throw new Errors.DodoPaymentsError(\"The DODO_PAYMENTS_API_KEY environment variable is missing or empty; either provide it, or instantiate the DodoPayments client with an bearerToken option, like new DodoPayments({ bearerToken: 'My Bearer Token' }).\");\n }\n const options = {\n bearerToken,\n webhookKey,\n ...opts,\n baseURL,\n environment: opts.environment ?? 'live_mode',\n };\n if (baseURL && opts.environment) {\n throw new Errors.DodoPaymentsError('Ambiguous URL; The `baseURL` option (or DODO_PAYMENTS_BASE_URL env var) and the `environment` option are given. If you want to use the environment you must pass baseURL: null');\n }\n this.baseURL = options.baseURL || environments[options.environment || 'live_mode'];\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 1 minute */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('DODO_PAYMENTS_LOG'), \"process.env['DODO_PAYMENTS_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _DodoPayments_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.bearerToken = bearerToken;\n this.webhookKey = webhookKey;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n environment: options.environment ? options.environment : undefined,\n baseURL: options.environment ? undefined : this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n bearerToken: this.bearerToken,\n webhookKey: this.webhookKey,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.bearerToken}` }]);\n }\n /**\n * Basic re-implementation of `qs.stringify` for primitive types.\n */\n stringifyQuery(query) {\n return stringifyQuery(query);\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _DodoPayments_instances, \"m\", _DodoPayments_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) { }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const responseInfo = `[${requestLogID}${retryLogStr}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, opts && 'then' in opts ?\n opts.then((opts) => ({ method: 'get', path, ...opts }))\n : { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n const abort = this._makeAbort(controller);\n if (signal)\n signal.addEventListener('abort', abort, { once: true });\n const timeout = setTimeout(abort, ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time, just do what it\n // says, but otherwise calculate a default\n if (timeoutMillis === undefined) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n _makeAbort(controller) {\n // note: we can't just inline this method inside `fetchWithTimeout()` because then the closure\n // would capture all request options, and cause a memory leak.\n return () => controller.abort();\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else if (typeof body === 'object' &&\n headers.values.get('content-type') === 'application/x-www-form-urlencoded') {\n return {\n bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },\n body: this.stringifyQuery(body),\n };\n }\n else {\n return __classPrivateFieldGet(this, _DodoPayments_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = DodoPayments, _DodoPayments_encoder = new WeakMap(), _DodoPayments_instances = new WeakSet(), _DodoPayments_baseURLOverridden = function _DodoPayments_baseURLOverridden() {\n return this.baseURL !== environments[this._options.environment || 'live_mode'];\n};\nDodoPayments.DodoPayments = _a;\nDodoPayments.DEFAULT_TIMEOUT = 60000; // 1 minute\nDodoPayments.DodoPaymentsError = Errors.DodoPaymentsError;\nDodoPayments.APIError = Errors.APIError;\nDodoPayments.APIConnectionError = Errors.APIConnectionError;\nDodoPayments.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nDodoPayments.APIUserAbortError = Errors.APIUserAbortError;\nDodoPayments.NotFoundError = Errors.NotFoundError;\nDodoPayments.ConflictError = Errors.ConflictError;\nDodoPayments.RateLimitError = Errors.RateLimitError;\nDodoPayments.BadRequestError = Errors.BadRequestError;\nDodoPayments.AuthenticationError = Errors.AuthenticationError;\nDodoPayments.InternalServerError = Errors.InternalServerError;\nDodoPayments.PermissionDeniedError = Errors.PermissionDeniedError;\nDodoPayments.UnprocessableEntityError = Errors.UnprocessableEntityError;\nDodoPayments.toFile = Uploads.toFile;\nDodoPayments.CheckoutSessions = CheckoutSessions;\nDodoPayments.Payments = Payments;\nDodoPayments.Subscriptions = Subscriptions;\nDodoPayments.Invoices = Invoices;\nDodoPayments.Licenses = Licenses;\nDodoPayments.LicenseKeys = LicenseKeys;\nDodoPayments.LicenseKeyInstances = LicenseKeyInstances;\nDodoPayments.Customers = Customers;\nDodoPayments.Refunds = Refunds;\nDodoPayments.Disputes = Disputes;\nDodoPayments.Payouts = Payouts;\nDodoPayments.Products = Products;\nDodoPayments.Misc = Misc;\nDodoPayments.Discounts = Discounts;\nDodoPayments.Addons = Addons;\nDodoPayments.Brands = Brands;\nDodoPayments.Webhooks = Webhooks;\nDodoPayments.WebhookEvents = WebhookEvents;\nDodoPayments.UsageEvents = UsageEvents;\nDodoPayments.Meters = Meters;\nDodoPayments.Balances = Balances;\nDodoPayments.CreditEntitlements = CreditEntitlements;\n//# sourceMappingURL=client.mjs.map","// src/checkout/checkout.ts\nimport { z } from \"zod/v3\";\nimport DodoPayments from \"dodopayments\";\nvar checkoutQuerySchema = z.object({\n productId: z.string(),\n quantity: z.string().optional(),\n // Customer fields\n fullName: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n country: z.string().optional(),\n addressLine: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n zipCode: z.string().optional(),\n // Disable flags\n disableFullName: z.string().optional(),\n disableFirstName: z.string().optional(),\n disableLastName: z.string().optional(),\n disableEmail: z.string().optional(),\n disableCountry: z.string().optional(),\n disableAddressLine: z.string().optional(),\n disableCity: z.string().optional(),\n disableState: z.string().optional(),\n disableZipCode: z.string().optional(),\n // Advanced controls\n paymentCurrency: z.string().optional(),\n showCurrencySelector: z.string().optional(),\n paymentAmount: z.string().optional(),\n showDiscounts: z.string().optional()\n // Metadata (allow any key starting with metadata_)\n // We'll handle metadata separately in the handler\n}).catchall(z.unknown());\nvar dynamicCheckoutBodySchema = z.object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n // Common fields\n billing: z.object({\n city: z.string(),\n country: z.string(),\n state: z.string(),\n street: z.string(),\n zipcode: z.string()\n }),\n customer: z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional()\n }),\n discount_id: z.string().optional(),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n currency: z.string().optional()\n // Allow any additional fields (for future compatibility)\n}).catchall(z.unknown());\nvar checkoutSessionProductCartItemSchema = z.object({\n product_id: z.string().min(1, \"Product ID is required\"),\n quantity: z.number().int().positive(\"Quantity must be a positive integer\"),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number().int().nonnegative()\n })\n ).optional(),\n amount: z.number().int().nonnegative(\n \"Amount must be a non-negative integer (for pay-what-you-want products)\"\n ).optional()\n});\nvar checkoutSessionCustomerSchema = z.union([\n z.object({\n email: z.string().email(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional()\n }),\n z.object({\n customer_id: z.string()\n })\n]).optional();\nvar checkoutSessionBillingAddressSchema = z.object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().length(2, \"Country must be a 2-letter ISO code\"),\n zipcode: z.string().optional()\n}).optional();\nvar paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"cashapp\",\n \"google_pay\",\n \"multibanco\",\n \"bancontact_card\",\n \"eps\",\n \"ideal\",\n \"przelewy24\",\n \"paypal\",\n \"affirm\",\n \"klarna\",\n \"sepa\",\n \"ach\",\n \"amazon_pay\",\n \"afterpay_clearpay\"\n]);\nvar checkoutSessionCustomizationSchema = z.object({\n theme: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n show_order_details: z.boolean().optional(),\n show_on_demand_tag: z.boolean().optional(),\n force_language: z.string().optional()\n}).optional();\nvar checkoutSessionFeatureFlagsSchema = z.object({\n allow_currency_selection: z.boolean().optional(),\n allow_customer_editing_city: z.boolean().optional(),\n allow_customer_editing_country: z.boolean().optional(),\n allow_customer_editing_email: z.boolean().optional(),\n allow_customer_editing_name: z.boolean().optional(),\n allow_customer_editing_state: z.boolean().optional(),\n allow_customer_editing_street: z.boolean().optional(),\n allow_customer_editing_zipcode: z.boolean().optional(),\n allow_discount_code: z.boolean().optional(),\n allow_phone_number_collection: z.boolean().optional(),\n allow_tax_id: z.boolean().optional(),\n always_create_new_customer: z.boolean().optional()\n}).optional();\nvar checkoutSessionOnDemandSchema = z.object({\n mandate_only: z.boolean(),\n product_price: z.number().int().optional(),\n product_currency: z.string().length(3).optional(),\n product_description: z.string().optional(),\n adaptive_currency_fees_inclusive: z.boolean().optional()\n}).optional();\nvar checkoutSessionSubscriptionDataSchema = z.object({\n trial_period_days: z.number().int().nonnegative().optional(),\n on_demand: checkoutSessionOnDemandSchema\n}).optional();\nvar checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z.array(checkoutSessionProductCartItemSchema).min(1, \"At least one product is required\"),\n // Optional fields\n customer: checkoutSessionCustomerSchema,\n billing_address: checkoutSessionBillingAddressSchema,\n return_url: z.string().url().optional(),\n allowed_payment_method_types: z.array(paymentMethodTypeSchema).optional(),\n billing_currency: z.string().length(3, \"Currency must be a 3-letter ISO code\").optional(),\n show_saved_payment_methods: z.boolean().optional(),\n confirm: z.boolean().optional(),\n discount_code: z.string().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n customization: checkoutSessionCustomizationSchema,\n feature_flags: checkoutSessionFeatureFlagsSchema,\n subscription_data: checkoutSessionSubscriptionDataSchema,\n force_3ds: z.boolean().optional()\n});\nvar checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\")\n});\nvar createCheckoutSession = async (payload, config) => {\n const validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\n `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n const dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment\n });\n try {\n const sdkPayload = {\n ...validation.data,\n ...validation.data.billing_address && {\n billing_address: {\n ...validation.data.billing_address,\n country: validation.data.billing_address.country\n }\n }\n };\n const session = await dodopayments.checkoutSessions.create(\n sdkPayload\n );\n const responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\n `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n return responseValidation.data;\n } catch (error) {\n if (error instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken\n }\n });\n throw new Error(`Failed to create checkout session: ${error.message}`);\n }\n console.error(\"Unknown error creating checkout session:\", error);\n throw new Error(\n \"Failed to create checkout session due to an unknown error\"\n );\n }\n};\nvar buildCheckoutUrl = async ({\n queryParams,\n body,\n sessionPayload,\n returnUrl,\n bearerToken,\n environment,\n type = \"static\"\n}) => {\n if (type === \"session\") {\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n const finalPayload = {\n ...sessionPayload,\n return_url: sessionPayload.return_url ?? returnUrl\n };\n const session = await createCheckoutSession(finalPayload, {\n bearerToken,\n environment\n });\n return session.checkout_url;\n }\n const inputData = type === \"dynamic\" ? body : queryParams;\n let parseResult;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n } else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n const { success, data, error } = parseResult;\n if (!success) {\n throw new Error(\n `Invalid ${type === \"dynamic\" ? \"body\" : \"query parameters\"}.\n ${error.message}`\n );\n }\n if (type !== \"dynamic\") {\n const {\n productId,\n quantity: quantity2,\n fullName,\n firstName,\n lastName,\n email,\n country,\n addressLine,\n city,\n state,\n zipCode,\n disableFullName,\n disableFirstName,\n disableLastName,\n disableEmail,\n disableCountry,\n disableAddressLine,\n disableCity,\n disableState,\n disableZipCode,\n paymentCurrency,\n showCurrencySelector,\n paymentAmount,\n showDiscounts\n // metadata handled below\n } = data;\n const dodopayments2 = new DodoPayments({\n bearerToken,\n environment\n });\n if (!productId) throw new Error(\"Missing required field: productId\");\n try {\n await dodopayments2.products.retrieve(productId);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n const url = new URL(\n `${environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\"}/buy/${productId}`\n );\n url.searchParams.set(\"quantity\", quantity2 ? String(quantity2) : \"1\");\n if (returnUrl) url.searchParams.set(\"redirect_url\", returnUrl);\n if (fullName) url.searchParams.set(\"fullName\", String(fullName));\n if (firstName) url.searchParams.set(\"firstName\", String(firstName));\n if (lastName) url.searchParams.set(\"lastName\", String(lastName));\n if (email) url.searchParams.set(\"email\", String(email));\n if (country) url.searchParams.set(\"country\", String(country));\n if (addressLine) url.searchParams.set(\"addressLine\", String(addressLine));\n if (city) url.searchParams.set(\"city\", String(city));\n if (state) url.searchParams.set(\"state\", String(state));\n if (zipCode) url.searchParams.set(\"zipCode\", String(zipCode));\n if (disableFullName === \"true\")\n url.searchParams.set(\"disableFullName\", \"true\");\n if (disableFirstName === \"true\")\n url.searchParams.set(\"disableFirstName\", \"true\");\n if (disableLastName === \"true\")\n url.searchParams.set(\"disableLastName\", \"true\");\n if (disableEmail === \"true\") url.searchParams.set(\"disableEmail\", \"true\");\n if (disableCountry === \"true\")\n url.searchParams.set(\"disableCountry\", \"true\");\n if (disableAddressLine === \"true\")\n url.searchParams.set(\"disableAddressLine\", \"true\");\n if (disableCity === \"true\") url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\") url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\n \"showCurrencySelector\",\n String(showCurrencySelector)\n );\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n const dyn = data;\n const {\n product_id,\n product_cart,\n quantity,\n billing,\n customer,\n addons,\n metadata,\n allowed_payment_method_types,\n billing_currency,\n discount_code,\n on_demand,\n return_url: bodyReturnUrl,\n show_saved_payment_methods,\n tax_id,\n trial_period_days\n } = dyn;\n const dodopayments = new DodoPayments({\n bearerToken,\n environment\n });\n let isSubscription = false;\n let productIdToFetch = product_id;\n if (!product_id && product_cart && product_cart.length > 0) {\n productIdToFetch = product_cart[0].product_id;\n }\n if (!productIdToFetch)\n throw new Error(\n \"Missing required field: product_id or product_cart[0].product_id\"\n );\n let product;\n try {\n product = await dodopayments.products.retrieve(productIdToFetch);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n isSubscription = Boolean(product.is_recurring);\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing) throw new Error(\"Missing required field: billing\");\n if (!customer) throw new Error(\"Missing required field: customer\");\n if (isSubscription) {\n const subscriptionPayload = {\n billing,\n customer,\n product_id,\n quantity: quantity ? Number(quantity) : 1\n };\n if (metadata) subscriptionPayload.metadata = metadata;\n if (discount_code) subscriptionPayload.discount_code = discount_code;\n if (addons) subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand) subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n let subscription;\n try {\n subscription = await dodopayments.subscriptions.create(subscriptionPayload);\n } catch (err) {\n console.error(\"Error when creating subscription\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!subscription || !subscription.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\"\n );\n }\n return subscription.payment_link;\n } else {\n let cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id, quantity: quantity ? Number(quantity) : 1 }\n ];\n }\n if (!cart || cart.length === 0)\n throw new Error(\"Missing required field: product_cart or product_id\");\n const paymentPayload = {\n billing,\n customer,\n product_cart: cart\n };\n if (metadata) paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency) paymentPayload.billing_currency = billing_currency;\n if (discount_code) paymentPayload.discount_code = discount_code;\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n paymentPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n paymentPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) paymentPayload.tax_id = tax_id;\n let payment;\n try {\n payment = await dodopayments.payments.create(paymentPayload);\n } catch (err) {\n console.error(\"Error when creating payment link\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!payment || !payment.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\"\n );\n }\n return payment.payment_link;\n }\n};\n\nexport {\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionProductCartItemSchema,\n checkoutSessionCustomerSchema,\n checkoutSessionBillingAddressSchema,\n paymentMethodTypeSchema,\n checkoutSessionCustomizationSchema,\n checkoutSessionFeatureFlagsSchema,\n checkoutSessionOnDemandSchema,\n checkoutSessionSubscriptionDataSchema,\n checkoutSessionPayloadSchema,\n checkoutSessionResponseSchema,\n createCheckoutSession,\n buildCheckoutUrl\n};\n//# sourceMappingURL=chunk-BVTJMX2W.js.map","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\nexport {\n __require,\n __commonJS,\n __toESM\n};\n//# sourceMappingURL=chunk-7D4SUZUM.js.map","import { FastifyRequest, FastifyReply } from \"fastify\";\nimport {\n buildCheckoutUrl,\n CheckoutHandlerConfig,\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionPayloadSchema,\n} from \"@dodopayments/core/checkout\";\n\nexport const Checkout = (config: CheckoutHandlerConfig) => {\n // GET handler for static checkout\n const getHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n const queryParams = request.query as Record<string, string>;\n\n if (!queryParams.productId) {\n return reply.status(400).send(\"Please provide productId query parameter\");\n }\n\n const { success, data, error } = checkoutQuerySchema.safeParse(queryParams);\n\n if (!success) {\n if (error.errors.some((e: any) => e.path.toString() === \"productId\")) {\n return reply\n .status(400)\n .send(\"Please provide productId query parameter\");\n }\n return reply\n .status(400)\n .send(`Invalid query parameters.\\n ${error.message}`);\n }\n\n let url = \"\";\n\n try {\n url = await buildCheckoutUrl({ queryParams: data, ...config });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n };\n\n // POST handler for dynamic checkout and checkout sessions\n const postHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n const body = request.body as any;\n\n if (config.type === \"dynamic\") {\n // Handle dynamic checkout\n const { success, data, error } =\n dynamicCheckoutBodySchema.safeParse(body);\n\n if (!success) {\n return reply\n .status(400)\n .send(`Invalid request body.\\n ${error.message}`);\n }\n\n let url = \"\";\n try {\n url = await buildCheckoutUrl({\n body: data,\n ...config,\n type: \"dynamic\",\n });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n } else {\n // Handle checkout session\n const { success, data, error } =\n checkoutSessionPayloadSchema.safeParse(body);\n\n if (!success) {\n return reply\n .status(400)\n .send(`Invalid checkout session payload.\\n ${error.message}`);\n }\n\n let url = \"\";\n try {\n url = await buildCheckoutUrl({\n sessionPayload: data,\n ...config,\n type: \"session\",\n });\n } catch (error: any) {\n return reply.status(400).send(error.message);\n }\n\n return reply.send({ checkout_url: url });\n }\n };\n\n return {\n getHandler,\n postHandler,\n };\n};\n","// src/schemas/webhook.ts\nimport { z } from \"zod/v3\";\nvar PaymentSchema = z.object({\n payload_type: z.literal(\"Payment\"),\n billing: z.object({\n city: z.string().nullable(),\n country: z.string(),\n state: z.string().nullable(),\n street: z.string().nullable(),\n zipcode: z.string().nullable()\n }),\n brand_id: z.string(),\n business_id: z.string(),\n card_holder_name: z.string().nullable(),\n card_issuing_country: z.string().nullable(),\n card_last_four: z.string().nullable(),\n card_network: z.string().nullable(),\n card_type: z.string().nullable(),\n checkout_session_id: z.string().nullable(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n custom_field_responses: z.array(\n z.object({\n key: z.string(),\n value: z.string()\n })\n ).nullable(),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n metadata: z.record(z.any()),\n name: z.string(),\n phone_number: z.string().nullable()\n }),\n digital_products_delivered: z.boolean(),\n discount_id: z.string().nullable(),\n disputes: z.array(\n z.object({\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n dispute_id: z.string(),\n dispute_stage: z.enum([\"pre_dispute\", \"dispute\", \"pre_arbitration\"]),\n dispute_status: z.enum([\n \"dispute_opened\",\n \"dispute_expired\",\n \"dispute_accepted\",\n \"dispute_cancelled\",\n \"dispute_challenged\",\n \"dispute_won\",\n \"dispute_lost\"\n ]),\n payment_id: z.string(),\n remarks: z.string().nullable()\n })\n ).default([]),\n error_code: z.string().nullable(),\n error_message: z.string().nullable(),\n invoice_id: z.string().nullable(),\n invoice_url: z.string().nullable(),\n metadata: z.record(z.any()),\n payment_id: z.string(),\n payment_link: z.string().nullable(),\n payment_method: z.string().nullable(),\n payment_method_type: z.string().nullable(),\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).nullable(),\n refunds: z.array(\n z.object({\n amount: z.number().nullable(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string().nullable(),\n is_partial: z.boolean(),\n payment_id: z.string(),\n reason: z.string().nullable(),\n refund_id: z.string(),\n status: z.enum([\"succeeded\", \"failed\", \"pending\", \"review\"])\n })\n ),\n refund_status: z.enum([\"partial\", \"full\"]).nullable(),\n settlement_amount: z.number(),\n settlement_currency: z.string(),\n settlement_tax: z.number().nullable(),\n status: z.enum([\n \"succeeded\",\n \"failed\",\n \"cancelled\",\n \"processing\",\n \"requires_customer_action\",\n \"requires_merchant_action\",\n \"requires_payment_method\",\n \"requires_confirmation\",\n \"requires_capture\",\n \"partially_captured\",\n \"partially_captured_and_capturable\"\n ]).nullable(),\n subscription_id: z.string().nullable(),\n tax: z.number().nullable(),\n total_amount: z.number(),\n updated_at: z.string().transform((d) => new Date(d)).nullable()\n});\nvar SubscriptionSchema = z.object({\n payload_type: z.literal(\"Subscription\"),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ),\n billing: z.object({\n city: z.string().nullable(),\n country: z.string(),\n state: z.string().nullable(),\n street: z.string().nullable(),\n zipcode: z.string().nullable()\n }),\n cancel_at_next_billing_date: z.boolean(),\n cancelled_at: z.string().transform((d) => new Date(d)).nullable(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n metadata: z.record(z.any()),\n name: z.string(),\n phone_number: z.string().nullable()\n }),\n custom_field_responses: z.array(\n z.object({\n key: z.string(),\n value: z.string()\n })\n ).nullable(),\n discount_cycles_remaining: z.number().nullable(),\n discount_id: z.string().nullable(),\n expires_at: z.string().transform((d) => new Date(d)).nullable(),\n credit_entitlement_cart: z.array(\n z.object({\n credit_entitlement_id: z.string(),\n credit_entitlement_name: z.string(),\n credits_amount: z.string(),\n overage_balance: z.string(),\n overage_behavior: z.enum([\n \"forgive_at_reset\",\n \"invoice_at_billing\",\n \"carry_deficit\",\n \"carry_deficit_auto_repay\"\n ]),\n overage_enabled: z.boolean(),\n product_id: z.string(),\n remaining_balance: z.string(),\n rollover_enabled: z.boolean(),\n unit: z.string(),\n expires_after_days: z.number().nullable(),\n low_balance_threshold_percent: z.number().nullable(),\n max_rollover_count: z.number().nullable(),\n overage_limit: z.string().nullable(),\n rollover_percentage: z.number().nullable(),\n rollover_timeframe_count: z.number().nullable(),\n rollover_timeframe_interval: z.enum([\"Day\", \"Week\", \"Month\", \"Year\"]).nullable()\n })\n ),\n meter_credit_entitlement_cart: z.array(\n z.object({\n credit_entitlement_id: z.string(),\n meter_id: z.string(),\n meter_name: z.string(),\n meter_units_per_credit: z.string(),\n product_id: z.string()\n })\n ),\n meters: z.array(\n z.object({\n currency: z.string(),\n description: z.string().nullable(),\n free_threshold: z.number(),\n measurement_unit: z.string(),\n meter_id: z.string(),\n name: z.string(),\n price_per_unit: z.string().nullable()\n })\n ),\n metadata: z.record(z.any()),\n next_billing_date: z.string().transform((d) => new Date(d)),\n on_demand: z.boolean(),\n payment_frequency_count: z.number(),\n payment_frequency_interval: z.enum([\"Day\", \"Week\", \"Month\", \"Year\"]),\n payment_method_id: z.string().nullable(),\n previous_billing_date: z.string().transform((d) => new Date(d)),\n product_id: z.string(),\n quantity: z.number(),\n recurring_pre_tax_amount: z.number(),\n status: z.enum([\n \"pending\",\n \"active\",\n \"on_hold\",\n \"cancelled\",\n \"expired\",\n \"failed\"\n ]),\n subscription_id: z.string(),\n subscription_period_count: z.number(),\n subscription_period_interval: z.enum([\"Day\", \"Week\", \"Month\", \"Year\"]),\n tax_id: z.string().nullable(),\n tax_inclusive: z.boolean(),\n trial_period_days: z.number()\n});\nvar RefundSchema = z.object({\n payload_type: z.literal(\"Refund\"),\n amount: z.number().nullable(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n metadata: z.record(z.any()),\n name: z.string(),\n phone_number: z.string().nullable()\n }),\n currency: z.string().nullable(),\n is_partial: z.boolean(),\n metadata: z.record(z.any()),\n payment_id: z.string(),\n reason: z.string().nullable(),\n refund_id: z.string(),\n status: z.enum([\"succeeded\", \"failed\", \"pending\", \"review\"])\n});\nvar DisputeSchema = z.object({\n payload_type: z.literal(\"Dispute\"),\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n currency: z.string(),\n customer: z.object({\n customer_id: z.string(),\n email: z.string(),\n metadata: z.record(z.any()),\n name: z.string(),\n phone_number: z.string().nullable()\n }),\n dispute_id: z.string(),\n dispute_stage: z.enum([\"pre_dispute\", \"dispute\", \"pre_arbitration\"]),\n dispute_status: z.enum([\n \"dispute_opened\",\n \"dispute_expired\",\n \"dispute_accepted\",\n \"dispute_cancelled\",\n \"dispute_challenged\",\n \"dispute_won\",\n \"dispute_lost\"\n ]),\n payment_id: z.string(),\n reason: z.string().nullable(),\n remarks: z.string().nullable()\n});\nvar LicenseKeySchema = z.object({\n payload_type: z.literal(\"LicenseKey\"),\n activations_limit: z.number().nullable(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n customer_id: z.string(),\n expires_at: z.string().transform((d) => new Date(d)).nullable(),\n id: z.string(),\n instances_count: z.number(),\n key: z.string(),\n payment_id: z.string(),\n product_id: z.string(),\n status: z.enum([\"active\", \"expired\", \"disabled\"]),\n subscription_id: z.string().nullable()\n});\nvar PaymentSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.succeeded\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentProcessingPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.processing\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar PaymentCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: PaymentSchema\n});\nvar RefundSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.succeeded\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: RefundSchema\n});\nvar RefundFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: RefundSchema\n});\nvar DisputeOpenedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.opened\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.expired\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeAcceptedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.accepted\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeChallengedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.challenged\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeWonPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.won\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar DisputeLostPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.lost\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: DisputeSchema\n});\nvar SubscriptionActivePayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.active\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionOnHoldPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.on_hold\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionRenewedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.renewed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionPlanChangedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.plan_changed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.cancelled\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.failed\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.expired\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar SubscriptionUpdatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.updated\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: SubscriptionSchema\n});\nvar LicenseKeyCreatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"license_key.created\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: LicenseKeySchema\n});\nvar CreditLedgerEntrySchema = z.object({\n payload_type: z.literal(\"CreditLedgerEntry\"),\n id: z.string(),\n amount: z.string(),\n balance_after: z.string(),\n balance_before: z.string(),\n business_id: z.string(),\n created_at: z.string().transform((d) => new Date(d)),\n credit_entitlement_id: z.string(),\n customer_id: z.string(),\n is_credit: z.boolean(),\n overage_after: z.string(),\n overage_before: z.string(),\n transaction_type: z.enum([\n \"credit_added\",\n \"credit_deducted\",\n \"credit_expired\",\n \"credit_rolled_over\",\n \"rollover_forfeited\",\n \"overage_charged\",\n \"auto_top_up\",\n \"manual_adjustment\",\n \"refund\"\n ]),\n description: z.string().nullable(),\n grant_id: z.string().nullable(),\n reference_id: z.string().nullable(),\n reference_type: z.string().nullable()\n});\nvar CreditBalanceLowSchema = z.object({\n payload_type: z.literal(\"CreditBalanceLow\"),\n customer_id: z.string(),\n subscription_id: z.string(),\n credit_entitlement_id: z.string(),\n credit_entitlement_name: z.string(),\n available_balance: z.string(),\n subscription_credits_amount: z.string(),\n threshold_percent: z.number(),\n threshold_amount: z.string()\n});\nvar CreditAddedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.added\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditDeductedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.deducted\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.expired\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditRolledOverPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.rolled_over\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditRolloverForfeitedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.rollover_forfeited\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditOverageChargedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.overage_charged\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditManualAdjustmentPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.manual_adjustment\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditLedgerEntrySchema\n});\nvar CreditBalanceLowPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"credit.balance_low\"),\n timestamp: z.string().transform((d) => new Date(d)),\n data: CreditBalanceLowSchema\n});\nvar WebhookPayloadSchema = z.discriminatedUnion(\"type\", [\n PaymentSucceededPayloadSchema,\n PaymentFailedPayloadSchema,\n PaymentProcessingPayloadSchema,\n PaymentCancelledPayloadSchema,\n RefundSucceededPayloadSchema,\n RefundFailedPayloadSchema,\n DisputeOpenedPayloadSchema,\n DisputeExpiredPayloadSchema,\n DisputeAcceptedPayloadSchema,\n DisputeCancelledPayloadSchema,\n DisputeChallengedPayloadSchema,\n DisputeWonPayloadSchema,\n DisputeLostPayloadSchema,\n SubscriptionActivePayloadSchema,\n SubscriptionOnHoldPayloadSchema,\n SubscriptionRenewedPayloadSchema,\n SubscriptionPlanChangedPayloadSchema,\n SubscriptionCancelledPayloadSchema,\n SubscriptionFailedPayloadSchema,\n SubscriptionExpiredPayloadSchema,\n SubscriptionUpdatedPayloadSchema,\n LicenseKeyCreatedPayloadSchema,\n CreditAddedPayloadSchema,\n CreditDeductedPayloadSchema,\n CreditExpiredPayloadSchema,\n CreditRolledOverPayloadSchema,\n CreditRolloverForfeitedPayloadSchema,\n CreditOverageChargedPayloadSchema,\n CreditManualAdjustmentPayloadSchema,\n CreditBalanceLowPayloadSchema\n]);\n\nexport {\n PaymentSchema,\n SubscriptionSchema,\n RefundSchema,\n DisputeSchema,\n LicenseKeySchema,\n PaymentSucceededPayloadSchema,\n PaymentFailedPayloadSchema,\n PaymentProcessingPayloadSchema,\n PaymentCancelledPayloadSchema,\n RefundSucceededPayloadSchema,\n RefundFailedPayloadSchema,\n DisputeOpenedPayloadSchema,\n DisputeExpiredPayloadSchema,\n DisputeAcceptedPayloadSchema,\n DisputeCancelledPayloadSchema,\n DisputeChallengedPayloadSchema,\n DisputeWonPayloadSchema,\n DisputeLostPayloadSchema,\n SubscriptionActivePayloadSchema,\n SubscriptionOnHoldPayloadSchema,\n SubscriptionRenewedPayloadSchema,\n SubscriptionPlanChangedPayloadSchema,\n SubscriptionCancelledPayloadSchema,\n SubscriptionFailedPayloadSchema,\n SubscriptionExpiredPayloadSchema,\n SubscriptionUpdatedPayloadSchema,\n LicenseKeyCreatedPayloadSchema,\n CreditLedgerEntrySchema,\n CreditBalanceLowSchema,\n CreditAddedPayloadSchema,\n CreditDeductedPayloadSchema,\n CreditExpiredPayloadSchema,\n CreditRolledOverPayloadSchema,\n CreditRolloverForfeitedPayloadSchema,\n CreditOverageChargedPayloadSchema,\n CreditManualAdjustmentPayloadSchema,\n CreditBalanceLowPayloadSchema,\n WebhookPayloadSchema\n};\n//# sourceMappingURL=chunk-K5TVDIGL.js.map","import {\n timingSafeEqual\n} from \"./chunk-B5Z4XRMO.js\";\nimport {\n __commonJS,\n __toESM\n} from \"./chunk-7D4SUZUM.js\";\n\n// ../../node_modules/@stablelib/base64/lib/base64.js\nvar require_base64 = __commonJS({\n \"../../node_modules/@stablelib/base64/lib/base64.js\"(exports) {\n \"use strict\";\n var __extends = exports && exports.__extends || /* @__PURE__ */ function() {\n var extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {\n d2.__proto__ = b2;\n } || function(d2, b2) {\n for (var p in b2) if (b2.hasOwnProperty(p)) d2[p] = b2[p];\n };\n return extendStatics(d, b);\n };\n return function(d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n }();\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var INVALID_BYTE = 256;\n var Coder = (\n /** @class */\n function() {\n function Coder2(_paddingCharacter) {\n if (_paddingCharacter === void 0) {\n _paddingCharacter = \"=\";\n }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder2.prototype.encodedLength = function(length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder2.prototype.encode = function(data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = data[i] << 16 | data[i + 1] << 8 | data[i + 2];\n out += this._encodeByte(c >>> 3 * 6 & 63);\n out += this._encodeByte(c >>> 2 * 6 & 63);\n out += this._encodeByte(c >>> 1 * 6 & 63);\n out += this._encodeByte(c >>> 0 * 6 & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = data[i] << 16 | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte(c >>> 3 * 6 & 63);\n out += this._encodeByte(c >>> 2 * 6 & 63);\n if (left === 2) {\n out += this._encodeByte(c >>> 1 * 6 & 63);\n } else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder2.prototype.maxDecodedLength = function(length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder2.prototype.decodedLength = function(s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder2.prototype.decode = function(s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = v0 << 2 | v1 >>> 4;\n out[op++] = v1 << 4 | v2 >>> 2;\n out[op++] = v2 << 6 | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = v0 << 2 | v1 >>> 4;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = v1 << 4 | v2 >>> 2;\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = v2 << 6 | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n Coder2.prototype._encodeByte = function(b) {\n var result = b;\n result += 65;\n result += 25 - b >>> 8 & 0 - 65 - 26 + 97;\n result += 51 - b >>> 8 & 26 - 97 - 52 + 48;\n result += 61 - b >>> 8 & 52 - 48 - 62 + 43;\n result += 62 - b >>> 8 & 62 - 43 - 63 + 47;\n return String.fromCharCode(result);\n };\n Coder2.prototype._decodeChar = function(c) {\n var result = INVALID_BYTE;\n result += (42 - c & c - 44) >>> 8 & -INVALID_BYTE + c - 43 + 62;\n result += (46 - c & c - 48) >>> 8 & -INVALID_BYTE + c - 47 + 63;\n result += (47 - c & c - 58) >>> 8 & -INVALID_BYTE + c - 48 + 52;\n result += (64 - c & c - 91) >>> 8 & -INVALID_BYTE + c - 65 + 0;\n result += (96 - c & c - 123) >>> 8 & -INVALID_BYTE + c - 97 + 26;\n return result;\n };\n Coder2.prototype._getPaddingLength = function(s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder2;\n }()\n );\n exports.Coder = Coder;\n var stdCoder = new Coder();\n function encode2(data) {\n return stdCoder.encode(data);\n }\n exports.encode = encode2;\n function decode2(s) {\n return stdCoder.decode(s);\n }\n exports.decode = decode2;\n var URLSafeCoder = (\n /** @class */\n function(_super) {\n __extends(URLSafeCoder2, _super);\n function URLSafeCoder2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n URLSafeCoder2.prototype._encodeByte = function(b) {\n var result = b;\n result += 65;\n result += 25 - b >>> 8 & 0 - 65 - 26 + 97;\n result += 51 - b >>> 8 & 26 - 97 - 52 + 48;\n result += 61 - b >>> 8 & 52 - 48 - 62 + 45;\n result += 62 - b >>> 8 & 62 - 45 - 63 + 95;\n return String.fromCharCode(result);\n };\n URLSafeCoder2.prototype._decodeChar = function(c) {\n var result = INVALID_BYTE;\n result += (44 - c & c - 46) >>> 8 & -INVALID_BYTE + c - 45 + 62;\n result += (94 - c & c - 96) >>> 8 & -INVALID_BYTE + c - 95 + 63;\n result += (47 - c & c - 58) >>> 8 & -INVALID_BYTE + c - 48 + 52;\n result += (64 - c & c - 91) >>> 8 & -INVALID_BYTE + c - 65 + 0;\n result += (96 - c & c - 123) >>> 8 & -INVALID_BYTE + c - 97 + 26;\n return result;\n };\n return URLSafeCoder2;\n }(Coder)\n );\n exports.URLSafeCoder = URLSafeCoder;\n var urlSafeCoder = new URLSafeCoder();\n function encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n }\n exports.encodeURLSafe = encodeURLSafe;\n function decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n }\n exports.decodeURLSafe = decodeURLSafe;\n exports.encodedLength = function(length) {\n return stdCoder.encodedLength(length);\n };\n exports.maxDecodedLength = function(length) {\n return stdCoder.maxDecodedLength(length);\n };\n exports.decodedLength = function(s) {\n return stdCoder.decodedLength(s);\n };\n }\n});\n\n// ../../node_modules/fast-sha256/sha256.js\nvar require_sha256 = __commonJS({\n \"../../node_modules/fast-sha256/sha256.js\"(exports, module) {\n \"use strict\";\n (function(root, factory) {\n var exports2 = {};\n factory(exports2);\n var sha2562 = exports2[\"default\"];\n for (var k in exports2) {\n sha2562[k] = exports2[k];\n }\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = sha2562;\n } else if (typeof define === \"function\" && define.amd) {\n define(function() {\n return sha2562;\n });\n } else {\n root.sha256 = sha2562;\n }\n })(exports, function(exports2) {\n \"use strict\";\n exports2.__esModule = true;\n exports2.digestLength = 32;\n exports2.blockSize = 64;\n var K = new Uint32Array([\n 1116352408,\n 1899447441,\n 3049323471,\n 3921009573,\n 961987163,\n 1508970993,\n 2453635748,\n 2870763221,\n 3624381080,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n 2162078206,\n 2614888103,\n 3248222580,\n 3835390401,\n 4022224774,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n 2554220882,\n 2821834349,\n 2952996808,\n 3210313671,\n 3336571891,\n 3584528711,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n 2177026350,\n 2456956037,\n 2730485921,\n 2820302411,\n 3259730800,\n 3345764771,\n 3516065817,\n 3600352804,\n 4094571909,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n 2227730452,\n 2361852424,\n 2428436474,\n 2756734187,\n 3204031479,\n 3329325298\n ]);\n function hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (p[j] & 255) << 24 | (p[j + 1] & 255) << 16 | (p[j + 2] & 255) << 8 | p[j + 3] & 255;\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << 32 - 17) ^ (u >>> 19 | u << 32 - 19) ^ u >>> 10;\n u = w[i - 15];\n t2 = (u >>> 7 | u << 32 - 7) ^ (u >>> 18 | u << 32 - 18) ^ u >>> 3;\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((e >>> 6 | e << 32 - 6) ^ (e >>> 11 | e << 32 - 11) ^ (e >>> 25 | e << 32 - 25)) + (e & f ^ ~e & g) | 0) + (h + (K[i] + w[i] | 0) | 0) | 0;\n t2 = ((a >>> 2 | a << 32 - 2) ^ (a >>> 13 | a << 32 - 13) ^ (a >>> 22 | a << 32 - 22)) + (a & b ^ a & c ^ b & c) | 0;\n h = g;\n g = f;\n f = e;\n e = d + t1 | 0;\n d = c;\n c = b;\n b = a;\n a = t1 + t2 | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n }\n var Hash = (\n /** @class */\n function() {\n function Hash2() {\n this.digestLength = exports2.digestLength;\n this.blockSize = exports2.blockSize;\n this.state = new Int32Array(8);\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(128);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n this.reset();\n }\n Hash2.prototype.reset = function() {\n this.state[0] = 1779033703;\n this.state[1] = 3144134277;\n this.state[2] = 1013904242;\n this.state[3] = 2773480762;\n this.state[4] = 1359893119;\n this.state[5] = 2600822924;\n this.state[6] = 528734635;\n this.state[7] = 1541459225;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n Hash2.prototype.clean = function() {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n Hash2.prototype.update = function(data, dataLength) {\n if (dataLength === void 0) {\n dataLength = data.length;\n }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n Hash2.prototype.finish = function(out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = bytesHashed / 536870912 | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = bytesHashed % 64 < 56 ? 64 : 128;\n this.buffer[left] = 128;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = bitLenHi >>> 24 & 255;\n this.buffer[padLength - 7] = bitLenHi >>> 16 & 255;\n this.buffer[padLength - 6] = bitLenHi >>> 8 & 255;\n this.buffer[padLength - 5] = bitLenHi >>> 0 & 255;\n this.buffer[padLength - 4] = bitLenLo >>> 24 & 255;\n this.buffer[padLength - 3] = bitLenLo >>> 16 & 255;\n this.buffer[padLength - 2] = bitLenLo >>> 8 & 255;\n this.buffer[padLength - 1] = bitLenLo >>> 0 & 255;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = this.state[i] >>> 24 & 255;\n out[i * 4 + 1] = this.state[i] >>> 16 & 255;\n out[i * 4 + 2] = this.state[i] >>> 8 & 255;\n out[i * 4 + 3] = this.state[i] >>> 0 & 255;\n }\n return this;\n };\n Hash2.prototype.digest = function() {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n Hash2.prototype._saveState = function(out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n Hash2.prototype._restoreState = function(from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash2;\n }()\n );\n exports2.Hash = Hash;\n var HMAC = (\n /** @class */\n function() {\n function HMAC2(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n new Hash().update(key).finish(pad).clean();\n } else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 54;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 54 ^ 92;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n HMAC2.prototype.reset = function() {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n HMAC2.prototype.clean = function() {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n HMAC2.prototype.update = function(data) {\n this.inner.update(data);\n return this;\n };\n HMAC2.prototype.finish = function(out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n } else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n HMAC2.prototype.digest = function() {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC2;\n }()\n );\n exports2.HMAC = HMAC;\n function hash(data) {\n var h = new Hash().update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n }\n exports2.hash = hash;\n exports2[\"default\"] = hash;\n function hmac2(key, data) {\n var h = new HMAC(key).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n }\n exports2.hmac = hmac2;\n function fillBuffer(buffer, hmac3, info, counter) {\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n hmac3.reset();\n if (num > 1) {\n hmac3.update(buffer);\n }\n if (info) {\n hmac3.update(info);\n }\n hmac3.update(counter);\n hmac3.finish(buffer);\n counter[0]++;\n }\n var hkdfSalt = new Uint8Array(exports2.digestLength);\n function hkdf(key, salt, info, length) {\n if (salt === void 0) {\n salt = hkdfSalt;\n }\n if (length === void 0) {\n length = 32;\n }\n var counter = new Uint8Array([1]);\n var okm = hmac2(salt, key);\n var hmac_ = new HMAC(okm);\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n }\n exports2.hkdf = hkdf;\n function pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = c >>> 24 & 255;\n ctr[1] = c >>> 16 & 255;\n ctr[2] = c >>> 8 & 255;\n ctr[3] = c >>> 0 & 255;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n }\n exports2.pbkdf2 = pbkdf2;\n });\n }\n});\n\n// src/webhook/vendor/standardwebhook.ts\nvar base64 = __toESM(require_base64(), 1);\nvar sha256 = __toESM(require_sha256(), 1);\nvar WEBHOOK_TOLERANCE_IN_SECONDS = 5 * 60;\nvar ExtendableError = class _ExtendableError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _ExtendableError.prototype);\n this.name = \"ExtendableError\";\n this.stack = new Error(message).stack;\n }\n};\nvar WebhookVerificationError = class _WebhookVerificationError extends ExtendableError {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, _WebhookVerificationError.prototype);\n this.name = \"WebhookVerificationError\";\n }\n};\nvar Webhook = class _Webhook {\n static prefix = \"whsec_\";\n key;\n constructor(secret, options) {\n if (!secret) {\n throw new Error(\"Secret can't be empty.\");\n }\n if ((options == null ? void 0 : options.format) === \"raw\") {\n if (secret instanceof Uint8Array) {\n this.key = secret;\n } else {\n this.key = Uint8Array.from(secret, (c) => c.charCodeAt(0));\n }\n } else {\n if (typeof secret !== \"string\") {\n throw new Error(\"Expected secret to be of type string\");\n }\n if (secret.startsWith(_Webhook.prefix)) {\n secret = secret.substring(_Webhook.prefix.length);\n }\n this.key = base64.decode(secret);\n }\n }\n verify(payload, headers_) {\n const headers = {};\n for (const key of Object.keys(headers_)) {\n headers[key.toLowerCase()] = headers_[key];\n }\n const msgId = headers[\"webhook-id\"];\n const msgSignature = headers[\"webhook-signature\"];\n const msgTimestamp = headers[\"webhook-timestamp\"];\n if (!msgSignature || !msgId || !msgTimestamp) {\n throw new WebhookVerificationError(\"Missing required headers\");\n }\n const timestamp = this.verifyTimestamp(msgTimestamp);\n const computedSignature = this.sign(msgId, timestamp, payload);\n const expectedSignature = computedSignature.split(\",\")[1];\n const passedSignatures = msgSignature.split(\" \");\n const encoder = new globalThis.TextEncoder();\n for (const versionedSignature of passedSignatures) {\n const [version, signature] = versionedSignature.split(\",\");\n if (version !== \"v1\") {\n continue;\n }\n if (timingSafeEqual(\n encoder.encode(signature),\n encoder.encode(expectedSignature)\n )) {\n return JSON.parse(payload.toString());\n }\n }\n throw new WebhookVerificationError(\"No matching signature found\");\n }\n sign(msgId, timestamp, payload) {\n if (typeof payload === \"string\") {\n } else if (payload.constructor.name === \"Buffer\") {\n payload = payload.toString();\n } else {\n throw new Error(\"Expected payload to be of type string or Buffer.\");\n }\n const encoder = new TextEncoder();\n const timestampNumber = Math.floor(timestamp.getTime() / 1e3);\n const toSign = encoder.encode(`${msgId}.${timestampNumber}.${payload}`);\n const expectedSignature = base64.encode(sha256.hmac(this.key, toSign));\n return `v1,${expectedSignature}`;\n }\n verifyTimestamp(timestampHeader) {\n const now = Math.floor(Date.now() / 1e3);\n const timestamp = parseInt(timestampHeader, 10);\n if (isNaN(timestamp)) {\n throw new WebhookVerificationError(\"Invalid Signature Headers\");\n }\n if (now - timestamp > WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too old\");\n }\n if (timestamp > now + WEBHOOK_TOLERANCE_IN_SECONDS) {\n throw new WebhookVerificationError(\"Message timestamp too new\");\n }\n return new Date(timestamp * 1e3);\n }\n};\n\nexport {\n WebhookVerificationError,\n Webhook\n};\n/**\n * The MIT License\n *\n * Copyright (c) 2023 Svix (https://www.svix.com)\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n * @fileoverview Server-only webhook verification implementation.\n * @description Vendored from standardwebhooks package to avoid bundling issues.\n * Uses Node.js crypto module - DO NOT import in client/browser code.\n * @license MIT\n * @internal\n */\n//# sourceMappingURL=chunk-65ICCAWN.js.map","import {\n WebhookPayloadSchema\n} from \"./chunk-K5TVDIGL.js\";\nimport {\n Webhook,\n WebhookVerificationError\n} from \"./chunk-65ICCAWN.js\";\n\n// src/webhook/webhook.ts\nasync function handleWebhookPayload(payload, config, context) {\n const callHandler = (handler, payload2) => {\n if (!handler) return;\n if (context !== void 0) {\n return handler(context, payload2);\n }\n return handler(payload2);\n };\n if (config.onPayload) {\n await callHandler(config.onPayload, payload);\n }\n if (payload.type === \"payment.succeeded\") {\n await callHandler(config.onPaymentSucceeded, payload);\n }\n if (payload.type === \"payment.failed\") {\n await callHandler(config.onPaymentFailed, payload);\n }\n if (payload.type === \"payment.processing\") {\n await callHandler(config.onPaymentProcessing, payload);\n }\n if (payload.type === \"payment.cancelled\") {\n await callHandler(config.onPaymentCancelled, payload);\n }\n if (payload.type === \"refund.succeeded\") {\n await callHandler(config.onRefundSucceeded, payload);\n }\n if (payload.type === \"refund.failed\") {\n await callHandler(config.onRefundFailed, payload);\n }\n if (payload.type === \"dispute.opened\") {\n await callHandler(config.onDisputeOpened, payload);\n }\n if (payload.type === \"dispute.expired\") {\n await callHandler(config.onDisputeExpired, payload);\n }\n if (payload.type === \"dispute.accepted\") {\n await callHandler(config.onDisputeAccepted, payload);\n }\n if (payload.type === \"dispute.cancelled\") {\n await callHandler(config.onDisputeCancelled, payload);\n }\n if (payload.type === \"dispute.challenged\") {\n await callHandler(config.onDisputeChallenged, payload);\n }\n if (payload.type === \"dispute.won\") {\n await callHandler(config.onDisputeWon, payload);\n }\n if (payload.type === \"dispute.lost\") {\n await callHandler(config.onDisputeLost, payload);\n }\n if (payload.type === \"subscription.active\") {\n await callHandler(config.onSubscriptionActive, payload);\n }\n if (payload.type === \"subscription.on_hold\") {\n await callHandler(config.onSubscriptionOnHold, payload);\n }\n if (payload.type === \"subscription.renewed\") {\n await callHandler(config.onSubscriptionRenewed, payload);\n }\n if (payload.type === \"subscription.plan_changed\") {\n await callHandler(config.onSubscriptionPlanChanged, payload);\n }\n if (payload.type === \"subscription.cancelled\") {\n await callHandler(config.onSubscriptionCancelled, payload);\n }\n if (payload.type === \"subscription.failed\") {\n await callHandler(config.onSubscriptionFailed, payload);\n }\n if (payload.type === \"subscription.expired\") {\n await callHandler(config.onSubscriptionExpired, payload);\n }\n if (payload.type === \"subscription.updated\") {\n await callHandler(config.onSubscriptionUpdated, payload);\n }\n if (payload.type === \"license_key.created\") {\n await callHandler(config.onLicenseKeyCreated, payload);\n }\n if (payload.type === \"credit.added\") {\n await callHandler(config.onCreditAdded, payload);\n }\n if (payload.type === \"credit.deducted\") {\n await callHandler(config.onCreditDeducted, payload);\n }\n if (payload.type === \"credit.expired\") {\n await callHandler(config.onCreditExpired, payload);\n }\n if (payload.type === \"credit.rolled_over\") {\n await callHandler(config.onCreditRolledOver, payload);\n }\n if (payload.type === \"credit.rollover_forfeited\") {\n await callHandler(config.onCreditRolloverForfeited, payload);\n }\n if (payload.type === \"credit.overage_charged\") {\n await callHandler(config.onCreditOverageCharged, payload);\n }\n if (payload.type === \"credit.manual_adjustment\") {\n await callHandler(config.onCreditManualAdjustment, payload);\n }\n if (payload.type === \"credit.balance_low\") {\n await callHandler(config.onCreditBalanceLow, payload);\n }\n}\nvar verifyWebhookPayload = async ({\n webhookKey,\n headers,\n body\n}) => {\n const standardWebhook = new Webhook(webhookKey);\n try {\n standardWebhook.verify(body, headers);\n } catch (e) {\n if (e instanceof WebhookVerificationError) {\n throw new Error(e.message);\n }\n throw e;\n }\n const {\n success,\n data: payload,\n error\n } = WebhookPayloadSchema.safeParse(JSON.parse(body));\n if (!success) {\n throw new Error(error.message);\n }\n return payload;\n};\n\nexport {\n handleWebhookPayload,\n verifyWebhookPayload\n};\n//# sourceMappingURL=chunk-XO2PMWB2.js.map","import {\n Webhook as StandardWebhook,\n WebhookVerificationError,\n} from \"standardwebhooks\";\nimport {\n type WebhookHandlerConfig,\n handleWebhookPayload,\n} from \"@dodopayments/core/webhook\";\nimport { FastifyRequest, FastifyReply } from \"fastify\";\nimport { WebhookPayloadSchema } from \"@dodopayments/core/schemas\";\n\nexport const Webhooks = ({\n webhookKey,\n ...eventHandlers\n}: WebhookHandlerConfig) => {\n const standardWebhook = new StandardWebhook(webhookKey);\n\n return async (req: FastifyRequest, reply: FastifyReply) => {\n if (req.method !== \"POST\") {\n return reply.status(405).send(\"Method not allowed. Use POST\");\n }\n\n const headers = {\n \"webhook-id\": Array.isArray(req.headers[\"webhook-id\"])\n ? (req.headers[\"webhook-id\"][0] ?? \"\")\n : (req.headers[\"webhook-id\"] ?? \"\"),\n \"webhook-timestamp\": Array.isArray(req.headers[\"webhook-timestamp\"])\n ? (req.headers[\"webhook-timestamp\"][0] ?? \"\")\n : (req.headers[\"webhook-timestamp\"] ?? \"\"),\n \"webhook-signature\": Array.isArray(req.headers[\"webhook-signature\"])\n ? (req.headers[\"webhook-signature\"][0] ?? \"\")\n : (req.headers[\"webhook-signature\"] ?? \"\"),\n };\n\n const rawBody = req.body as string;\n\n try {\n standardWebhook.verify(rawBody, headers);\n } catch (err) {\n if (err instanceof WebhookVerificationError) {\n return reply.status(401).send(err.message);\n }\n\n return reply.status(500).send(\"Error while verifying webhook\");\n }\n\n const {\n success,\n data: payload,\n error,\n } = WebhookPayloadSchema.safeParse(JSON.parse(rawBody));\n\n if (!success) {\n console.error(\"Error parsing webhook payload\", error.issues);\n return reply\n .status(400)\n .send(`Error parsing webhook payload: ${error.message}`);\n }\n\n // do not catch errors here, let them bubble up to the user\n // as they will originate from the handlers passed by the user\n await handleWebhookPayload(payload, {\n webhookKey,\n ...eventHandlers,\n });\n\n return reply.status(200).send();\n };\n};\n","import { FastifyRequest, FastifyReply } from \"fastify\";\nimport DodoPayments, { ClientOptions } from \"dodopayments\";\n\nexport type CustomerPortalConfig = Pick<\n ClientOptions,\n \"environment\" | \"bearerToken\"\n>;\n\nexport const CustomerPortal = ({\n bearerToken,\n environment,\n}: CustomerPortalConfig) => {\n const getHandler = async (request: FastifyRequest, reply: FastifyReply) => {\n // Extract customerId from query parameters\n const { customer_id: customerId, send_email } = request.query as Record<\n string,\n string | string[]\n >;\n\n // Normalize customer_id to string (handle array case)\n const customerIdValue: string | undefined = customerId\n ? Array.isArray(customerId)\n ? customerId[0]\n : customerId\n : undefined;\n\n const params: { send_email?: boolean } = {};\n if (send_email !== undefined) {\n // Normalize to string (handle array case)\n const sendEmailValue = Array.isArray(send_email) ? send_email[0] : send_email;\n params.send_email = sendEmailValue === \"true\";\n }\n\n if (!customerIdValue) {\n return reply.status(400).send(\"Missing customerId in query parameters\");\n }\n\n const dodopayments = new DodoPayments({\n bearerToken,\n environment,\n });\n\n try {\n const session = await dodopayments.customers.customerPortal.create(\n customerIdValue,\n params,\n );\n return reply.redirect(session.link);\n } catch (error: any) {\n console.error(\"Error creating customer portal session:\", error);\n return reply\n .status(500)\n .send(`Failed to create customer portal session: ${error.message}`);\n }\n };\n\n return getHandler;\n};\n"],"names":["defaultErrorMap","BalancesAPI.Balances","LedgerEntriesAPI.LedgerEntries","CustomerPortalAPI.CustomerPortal","WalletsAPI.Wallets","CustomerPortal","PaymentsAPI.Payments","Payments","ImagesAPI.Images","ShortLinksAPI.ShortLinks","this","base64","require$$0","require$$1","require$$2","HeadersAPI.Headers","Webhook","Webhooks","Headers","API.CheckoutSessions","API.Payments","API.Subscriptions","API.Invoices","API.Licenses","API.LicenseKeys","API.LicenseKeyInstances","API.Customers","API.Refunds","API.Disputes","API.Payouts","API.Products","API.Misc","API.Discounts","API.Addons","API.Brands","API.Webhooks","API.WebhookEvents","API.UsageEvents","API.Meters","API.Balances","API.CreditEntitlements","Errors.DodoPaymentsError","Shims.getDefaultFetch","Opts.FallbackEncoder","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Uploads.toFile","Balances","z.object","z.string","z.unknown","z.number","z.array","z.record","z.union","z.enum","z.boolean","z.literal","z.any","z.discriminatedUnion","StandardWebhook","WebhookVerificationError"],"mappings":"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YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,EAAE,CAAC,4BAA4B,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE;AAC9F,CAAC;;ACnED;AAOO,MAAM,kBAAkB,SAAS,WAAW,CAAC;AACpD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,QAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62]}