@dodopayments/sveltekit 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/@sveltejs/kit/src/exports/internal/index.js","../../../node_modules/esm-env/browser-fallback.js","../../../node_modules/esm-env/dev-fallback.js","../../../node_modules/@sveltejs/kit/src/exports/index.js","../../../node_modules/dodopayments/version.mjs","../../../node_modules/dodopayments/error.mjs","../../../node_modules/dodopayments/_shims/registry.mjs","../../../node_modules/dodopayments/_shims/MultipartBody.mjs","../../../node_modules/dodopayments/_shims/web-runtime.mjs","../../../node_modules/dodopayments/_shims/index.mjs","../../../node_modules/dodopayments/uploads.mjs","../../../node_modules/dodopayments/core.mjs","../../../node_modules/dodopayments/pagination.mjs","../../../node_modules/dodopayments/resource.mjs","../../../node_modules/dodopayments/resources/addons.mjs","../../../node_modules/dodopayments/resources/brands.mjs","../../../node_modules/dodopayments/resources/customers/customer-portal.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/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/webhook-events.mjs","../../../node_modules/dodopayments/index.mjs","../../core/dist/checkout/checkout.js","../src/checkout/checkout.ts","../../../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","../../core/dist/schemas/webhook.js","../../core/dist/webhook/webhook.js","../src/webhooks/webhooks.ts","../src/customer-portal/customer-portal.ts"],"sourcesContent":["export class HttpError {\n\t/**\n\t * @param {number} status\n\t * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\t */\n\tconstructor(status, body) {\n\t\tthis.status = status;\n\t\tif (typeof body === 'string') {\n\t\t\tthis.body = { message: body };\n\t\t} else if (body) {\n\t\t\tthis.body = body;\n\t\t} else {\n\t\t\tthis.body = { message: `Error: ${status}` };\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this.body);\n\t}\n}\n\nexport class Redirect {\n\t/**\n\t * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n\t * @param {string} location\n\t */\n\tconstructor(status, location) {\n\t\tthis.status = status;\n\t\tthis.location = location;\n\t}\n}\n\n/**\n * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.\n * `SvelteKitError` goes through `handleError`.\n * @extends Error\n */\nexport class SvelteKitError extends Error {\n\t/**\n\t * @param {number} status\n\t * @param {string} text\n\t * @param {string} message\n\t */\n\tconstructor(status, text, message) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t\tthis.text = text;\n\t}\n}\n\n/**\n * @template {Record<string, unknown> | undefined} [T=undefined]\n */\nexport class ActionFailure {\n\t/**\n\t * @param {number} status\n\t * @param {T} data\n\t */\n\tconstructor(status, data) {\n\t\tthis.status = status;\n\t\tthis.data = data;\n\t}\n}\n","export default typeof window !== 'undefined';\n","const node_env = globalThis.process?.env?.NODE_ENV;\nexport default node_env && !node_env.toLowerCase().startsWith('prod');\n","import { HttpError, Redirect, ActionFailure } from './internal/index.js';\nimport { BROWSER, DEV } from 'esm-env';\nimport {\n\tadd_data_suffix,\n\tadd_resolution_suffix,\n\thas_data_suffix,\n\thas_resolution_suffix,\n\tstrip_data_suffix,\n\tstrip_resolution_suffix\n} from '../runtime/pathname.js';\n\nexport { VERSION } from '../version.js';\n\n// TODO 3.0: remove these types as they are not used anymore (we can't remove them yet because that would be a breaking change)\n/**\n * @template {number} TNumber\n * @template {any[]} [TArray=[]]\n * @typedef {TNumber extends TArray['length'] ? TArray[number] : LessThan<TNumber, [...TArray, TArray['length']]>} LessThan\n */\n\n/**\n * @template {number} TStart\n * @template {number} TEnd\n * @typedef {Exclude<TEnd | LessThan<TEnd>, LessThan<TStart>>} NumericRange\n */\n\n// Keep the status codes as `number` because restricting to certain numbers makes it unnecessarily hard to use compared to the benefits\n// (we have runtime errors already to check for invalid codes). Also see https://github.com/sveltejs/kit/issues/11780\n\n// we have to repeat the JSDoc because the display for function overloads is broken\n// see https://github.com/microsoft/TypeScript/issues/55056\n\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {App.Error} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {App.Error} body\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body] An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body]\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\nexport function error(status, body) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 400 || status > 599)) {\n\t\tthrow new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);\n\t}\n\n\tthrow new HttpError(status, body);\n}\n\n/**\n * Checks whether this is an error thrown by {@link error}.\n * @template {number} T\n * @param {unknown} e\n * @param {T} [status] The status to filter for.\n * @return {e is (HttpError & { status: T extends undefined ? never : T })}\n */\nexport function isHttpError(e, status) {\n\tif (!(e instanceof HttpError)) return false;\n\treturn !status || e.status === status;\n}\n\n/**\n * Redirect a request. When called during request handling, SvelteKit will return a redirect response.\n * Make sure you're not catching the thrown redirect, which would prevent SvelteKit from handling it.\n *\n * Most common status codes:\n * * `303 See Other`: redirect as a GET request (often used after a form POST request)\n * * `307 Temporary Redirect`: redirect will keep the request method\n * * `308 Permanent Redirect`: redirect will keep the request method, SEO will be transferred to the new page\n *\n * [See all redirect status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages)\n *\n * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | ({} & number)} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages). Must be in the range 300-308.\n * @param {string | URL} location The location to redirect to.\n * @throws {Redirect} This error instructs SvelteKit to redirect to the specified location.\n * @throws {Error} If the provided status is invalid.\n * @return {never}\n */\nexport function redirect(status, location) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 300 || status > 308)) {\n\t\tthrow new Error('Invalid status code');\n\t}\n\n\tthrow new Redirect(\n\t\t// @ts-ignore\n\t\tstatus,\n\t\tlocation.toString()\n\t);\n}\n\n/**\n * Checks whether this is a redirect thrown by {@link redirect}.\n * @param {unknown} e The object to check.\n * @return {e is Redirect}\n */\nexport function isRedirect(e) {\n\treturn e instanceof Redirect;\n}\n\n/**\n * Create a JSON `Response` object from the supplied data.\n * @param {any} data The value that will be serialized as JSON.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. `Content-Type: application/json` and `Content-Length` headers will be added automatically.\n */\nexport function json(data, init) {\n\t// TODO deprecate this in favour of `Response.json` when it's\n\t// more widely supported\n\tconst body = JSON.stringify(data);\n\n\t// we can't just do `text(JSON.stringify(data), init)` because\n\t// it will set a default `content-type` header. duplicated code\n\t// means less duplicated work\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\theaders.set('content-length', encoder.encode(body).byteLength.toString());\n\t}\n\n\tif (!headers.has('content-type')) {\n\t\theaders.set('content-type', 'application/json');\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\nconst encoder = new TextEncoder();\n\n/**\n * Create a `Response` object from the supplied body.\n * @param {string} body The value that will be used as-is.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. A `Content-Length` header will be added automatically.\n */\nexport function text(body, init) {\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\tconst encoded = encoder.encode(body);\n\t\theaders.set('content-length', encoded.byteLength.toString());\n\t\treturn new Response(encoded, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @overload\n * @param {number} status\n * @returns {import('./public.js').ActionFailure<undefined>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @template {Record<string, unknown> | undefined} [T=undefined]\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {T} data Data associated with the failure (e.g. validation errors)\n * @overload\n * @param {number} status\n * @param {T} data\n * @returns {import('./public.js').ActionFailure<T>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status\n * @param {any} [data]\n * @returns {import('./public.js').ActionFailure<any>}\n */\nexport function fail(status, data) {\n\t// @ts-expect-error unique symbol missing\n\treturn new ActionFailure(status, data);\n}\n\n/**\n * Checks whether this is an action failure thrown by {@link fail}.\n * @param {unknown} e The object to check.\n * @return {e is import('./public.js').ActionFailure}\n */\nexport function isActionFailure(e) {\n\treturn e instanceof ActionFailure;\n}\n\n/**\n * Strips possible SvelteKit-internal suffixes and trailing slashes from the URL pathname.\n * Returns the normalized URL as well as a method for adding the potential suffix back\n * based on a new pathname (possibly including search) or URL.\n * ```js\n * import { normalizeUrl } from '@sveltejs/kit';\n *\n * const { url, denormalize } = normalizeUrl('/blog/post/__data.json');\n * console.log(url.pathname); // /blog/post\n * console.log(denormalize('/blog/post/a')); // /blog/post/a/__data.json\n * ```\n * @param {URL | string} url\n * @returns {{ url: URL, wasNormalized: boolean, denormalize: (url?: string | URL) => URL }}\n * @since 2.18.0\n */\nexport function normalizeUrl(url) {\n\turl = new URL(url, 'http://internal');\n\n\tconst is_route_resolution = has_resolution_suffix(url.pathname);\n\tconst is_data_request = has_data_suffix(url.pathname);\n\tconst has_trailing_slash = url.pathname !== '/' && url.pathname.endsWith('/');\n\n\tif (is_route_resolution) {\n\t\turl.pathname = strip_resolution_suffix(url.pathname);\n\t} else if (is_data_request) {\n\t\turl.pathname = strip_data_suffix(url.pathname);\n\t} else if (has_trailing_slash) {\n\t\turl.pathname = url.pathname.slice(0, -1);\n\t}\n\n\treturn {\n\t\turl,\n\t\twasNormalized: is_data_request || is_route_resolution || has_trailing_slash,\n\t\tdenormalize: (new_url = url) => {\n\t\t\tnew_url = new URL(new_url, url);\n\t\t\tif (is_route_resolution) {\n\t\t\t\tnew_url.pathname = add_resolution_suffix(new_url.pathname);\n\t\t\t} else if (is_data_request) {\n\t\t\t\tnew_url.pathname = add_data_suffix(new_url.pathname);\n\t\t\t} else if (has_trailing_slash && !new_url.pathname.endsWith('/')) {\n\t\t\t\tnew_url.pathname += '/';\n\t\t\t}\n\t\t\treturn new_url;\n\t\t}\n\t};\n}\n","export const VERSION = '1.42.0'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"./core.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","export let auto = false;\nexport let kind = undefined;\nexport let fetch = undefined;\nexport let Request = undefined;\nexport let Response = undefined;\nexport let Headers = undefined;\nexport let FormData = undefined;\nexport let Blob = undefined;\nexport let File = undefined;\nexport let ReadableStream = undefined;\nexport let getMultipartRequestOptions = undefined;\nexport let getDefaultAgent = undefined;\nexport let fileFromPath = undefined;\nexport let isFsReadStream = undefined;\nexport function setShims(shims, options = { auto: false }) {\n if (auto) {\n throw new Error(`you must \\`import 'dodopayments/shims/${shims.kind}'\\` before importing anything else from dodopayments`);\n }\n if (kind) {\n throw new Error(`can't \\`import 'dodopayments/shims/${shims.kind}'\\` after \\`import 'dodopayments/shims/${kind}'\\``);\n }\n auto = options.auto;\n kind = shims.kind;\n fetch = shims.fetch;\n Request = shims.Request;\n Response = shims.Response;\n Headers = shims.Headers;\n FormData = shims.FormData;\n Blob = shims.Blob;\n File = shims.File;\n ReadableStream = shims.ReadableStream;\n getMultipartRequestOptions = shims.getMultipartRequestOptions;\n getDefaultAgent = shims.getDefaultAgent;\n fileFromPath = shims.fileFromPath;\n isFsReadStream = shims.isFsReadStream;\n}\n//# sourceMappingURL=registry.mjs.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nexport class MultipartBody {\n constructor(body) {\n this.body = body;\n }\n get [Symbol.toStringTag]() {\n return 'MultipartBody';\n }\n}\n//# sourceMappingURL=MultipartBody.mjs.map","import { MultipartBody } from \"./MultipartBody.mjs\";\nexport function getRuntime({ manuallyImported } = {}) {\n const recommendation = manuallyImported ?\n `You may need to use polyfills`\n : `Add one of these imports before your first \\`import … from 'dodopayments'\\`:\n- \\`import 'dodopayments/shims/node'\\` (if you're running on Node)\n- \\`import 'dodopayments/shims/web'\\` (otherwise)\n`;\n let _fetch, _Request, _Response, _Headers;\n try {\n // @ts-ignore\n _fetch = fetch;\n // @ts-ignore\n _Request = Request;\n // @ts-ignore\n _Response = Response;\n // @ts-ignore\n _Headers = Headers;\n }\n catch (error) {\n throw new Error(`this environment is missing the following Web Fetch API type: ${error.message}. ${recommendation}`);\n }\n return {\n kind: 'web',\n fetch: _fetch,\n Request: _Request,\n Response: _Response,\n Headers: _Headers,\n FormData: \n // @ts-ignore\n typeof FormData !== 'undefined' ? FormData : (class FormData {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${recommendation}`);\n }\n }),\n Blob: typeof Blob !== 'undefined' ? Blob : (class Blob {\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${recommendation}`);\n }\n }),\n File: \n // @ts-ignore\n typeof File !== 'undefined' ? File : (class File {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${recommendation}`);\n }\n }),\n ReadableStream: \n // @ts-ignore\n typeof ReadableStream !== 'undefined' ? ReadableStream : (class ReadableStream {\n // @ts-ignore\n constructor() {\n throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${recommendation}`);\n }\n }),\n getMultipartRequestOptions: async (\n // @ts-ignore\n form, opts) => ({\n ...opts,\n body: new MultipartBody(form),\n }),\n getDefaultAgent: (url) => undefined,\n fileFromPath: () => {\n throw new Error('The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/dodopayments/dodopayments-node#file-uploads');\n },\n isFsReadStream: (value) => false,\n };\n}\n//# sourceMappingURL=web-runtime.mjs.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nimport * as shims from './registry.mjs';\nimport * as auto from 'dodopayments/_shims/auto/runtime';\nexport const init = () => {\n if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });\n};\nexport * from './registry.mjs';\n\ninit();\n","import { FormData, File, getMultipartRequestOptions, isFsReadStream, } from \"./_shims/index.mjs\";\nexport { fileFromPath } from \"./_shims/index.mjs\";\nexport const isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\nexport const isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\n/**\n * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check\n * adds the arrayBuffer() method type because it is available and used at runtime\n */\nexport const 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';\nexport const isUploadable = (value) => {\n return isFileLike(value) || isResponseLike(value) || isFsReadStream(value);\n};\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}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\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 // 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 return value;\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop() ?? 'unknown_file');\n // we need to convert the `Blob` into an array buffer because the `Blob` class\n // that `node-fetch` defines is incompatible with the web standard which results\n // in `new File` interpreting it as a string instead of binary data.\n const data = isBlobLike(blob) ? [(await blob.arrayBuffer())] : [blob];\n return new File(data, name, options);\n }\n const bits = await getBytes(value);\n name || (name = getName(value) ?? 'unknown_file');\n if (!options?.type) {\n const type = bits[0]?.type;\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return new File(bits, 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(await value.arrayBuffer());\n }\n else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(chunk); // TODO, consider validating?\n }\n }\n else {\n throw new Error(`Unexpected data type: ${typeof value}; constructor: ${value?.constructor\n ?.name}; props: ${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n const props = Object.getOwnPropertyNames(value);\n return `[${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\nfunction getName(value) {\n return (getStringFromMaybeBuffer(value.name) ||\n getStringFromMaybeBuffer(value.filename) ||\n // For fs.ReadStream\n getStringFromMaybeBuffer(value.path)?.split(/[\\\\/]/).pop());\n}\nconst getStringFromMaybeBuffer = (x) => {\n if (typeof x === 'string')\n return x;\n if (typeof Buffer !== 'undefined' && x instanceof Buffer)\n return String(x);\n return undefined;\n};\nconst isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\nexport const isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';\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) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n const form = await createForm(opts.body);\n return getMultipartRequestOptions(form, opts);\n};\nexport const multipartFormRequestOptions = async (opts) => {\n const form = await createForm(opts.body);\n return getMultipartRequestOptions(form, opts);\n};\nexport const createForm = async (body) => {\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\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 (isUploadable(value)) {\n const file = await toFile(value);\n form.append(key, file);\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","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _APIClient_baseURLOverridden, _AbstractPage_client;\nimport { VERSION } from \"./version.mjs\";\nimport { DodoPaymentsError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, } from \"./error.mjs\";\nimport { kind as shimsKind, getDefaultAgent, fetch, init, } from \"./_shims/index.mjs\";\n// try running side effects outside of _shims/index to workaround https://github.com/vercel/next.js/issues/76881\ninit();\nimport { isBlobLike, isMultipartBody } from \"./uploads.mjs\";\nexport { maybeMultipartFormRequestOptions, multipartFormRequestOptions, createForm, } from \"./uploads.mjs\";\nasync function defaultParseResponse(props) {\n const { response } = props;\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 debug('response', response.status, response.url, response.headers, json);\n return json;\n }\n const text = await response.text();\n debug('response', response.status, response.url, response.headers, text);\n // TODO handle blob, arraybuffer, other content types, etc.\n return text;\n}\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(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 }\n _thenUnwrap(transform) {\n return new APIPromise(this.responsePromise, async (props) => transform(await this.parseResponse(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\"` if you can,\n * or add one of these imports before your first `import … from 'dodopayments'`:\n * - `import 'dodopayments/shims/node'` (if you're running on Node)\n * - `import 'dodopayments/shims/web'` (otherwise)\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 *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'dodopayments'`:\n * - `import 'dodopayments/shims/node'` (if you're running on Node)\n * - `import 'dodopayments/shims/web'` (otherwise)\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(this.parseResponse);\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}\nexport class APIClient {\n constructor({ baseURL, baseURLOverridden, maxRetries = 2, timeout = 60000, // 1 minute\n httpAgent, fetch: overriddenFetch, }) {\n _APIClient_baseURLOverridden.set(this, void 0);\n this.baseURL = baseURL;\n __classPrivateFieldSet(this, _APIClient_baseURLOverridden, baseURLOverridden, \"f\");\n this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);\n this.timeout = validatePositiveInteger('timeout', timeout);\n this.httpAgent = httpAgent;\n this.fetch = overriddenFetch ?? fetch;\n }\n authHeaders(opts) {\n return {};\n }\n /**\n * Override this to add your own default headers, for example:\n *\n * {\n * ...super.defaultHeaders(),\n * Authorization: 'Bearer 123',\n * }\n */\n defaultHeaders(opts) {\n return {\n Accept: 'application/json',\n ...(['head', 'get'].includes(opts.method) ? {} : { 'Content-Type': 'application/json' }),\n 'User-Agent': this.getUserAgent(),\n ...getPlatformHeaders(),\n ...this.authHeaders(opts),\n };\n }\n /**\n * Override this to add your own headers validation:\n */\n validateHeaders(headers, customHeaders) { }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\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(async (opts) => {\n const body = opts && isBlobLike(opts?.body) ? new DataView(await opts.body.arrayBuffer())\n : opts?.body instanceof DataView ? opts.body\n : opts?.body instanceof ArrayBuffer ? new DataView(opts.body)\n : opts && ArrayBuffer.isView(opts?.body) ? new DataView(opts.body.buffer)\n : opts?.body;\n return { method, path, ...opts, body };\n }));\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n calculateContentLength(body) {\n if (typeof body === 'string') {\n if (typeof Buffer !== 'undefined') {\n return Buffer.byteLength(body, 'utf8').toString();\n }\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder();\n const encoded = encoder.encode(body);\n return encoded.length.toString();\n }\n }\n else if (ArrayBuffer.isView(body)) {\n return body.byteLength.toString();\n }\n return null;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL, headers: headers = {} } = options;\n const body = ArrayBuffer.isView(options.body) || (options.__binaryRequest && typeof options.body === 'string') ?\n options.body\n : isMultipartBody(options.body) ? options.body.body\n : options.body ? JSON.stringify(options.body, null, 2)\n : null;\n const contentLength = this.calculateContentLength(body);\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 httpAgent = options.httpAgent ?? this.httpAgent ?? getDefaultAgent(url);\n const minAgentTimeout = options.timeout + 1000;\n if (typeof httpAgent?.options?.timeout === 'number' &&\n minAgentTimeout > (httpAgent.options.timeout ?? 0)) {\n // Allow any given request to bump our agent active socket timeout.\n // This may seem strange, but leaking active sockets should be rare and not particularly problematic,\n // and without mutating agent we would need to create more of them.\n // This tradeoff optimizes for performance.\n httpAgent.options.timeout = minAgentTimeout;\n }\n if (this.idempotencyHeader && method !== 'get') {\n if (!inputOptions.idempotencyKey)\n inputOptions.idempotencyKey = this.defaultIdempotencyKey();\n headers[this.idempotencyHeader] = inputOptions.idempotencyKey;\n }\n const reqHeaders = this.buildHeaders({ options, headers, contentLength, retryCount });\n const req = {\n method,\n ...(body && { body: body }),\n headers: reqHeaders,\n ...(httpAgent && { agent: httpAgent }),\n // @ts-ignore node-fetch uses a custom AbortSignal type that is\n // not compatible with standard web types\n signal: options.signal ?? null,\n };\n return { req, url, timeout: options.timeout };\n }\n buildHeaders({ options, headers, contentLength, retryCount, }) {\n const reqHeaders = {};\n if (contentLength) {\n reqHeaders['content-length'] = contentLength;\n }\n const defaultHeaders = this.defaultHeaders(options);\n applyHeadersMut(reqHeaders, defaultHeaders);\n applyHeadersMut(reqHeaders, headers);\n // let builtin fetch set the Content-Type for multipart bodies\n if (isMultipartBody(options.body) && shimsKind !== 'node') {\n delete reqHeaders['content-type'];\n }\n // Don't set theses headers if they were already set or removed through default headers or by the caller.\n // We check `defaultHeaders` and `headers`, which can contain nulls, instead of `reqHeaders` to account\n // for the removal case.\n if (getHeader(defaultHeaders, 'x-stainless-retry-count') === undefined &&\n getHeader(headers, 'x-stainless-retry-count') === undefined) {\n reqHeaders['x-stainless-retry-count'] = String(retryCount);\n }\n if (getHeader(defaultHeaders, 'x-stainless-timeout') === undefined &&\n getHeader(headers, 'x-stainless-timeout') === undefined &&\n options.timeout) {\n reqHeaders['x-stainless-timeout'] = String(Math.trunc(options.timeout / 1000));\n }\n this.validateHeaders(reqHeaders, headers);\n return reqHeaders;\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 parseHeaders(headers) {\n return (!headers ? {}\n : Symbol.iterator in headers ?\n Object.fromEntries(Array.from(headers).map((header) => [...header]))\n : { ...headers });\n }\n makeStatusError(status, error, message, headers) {\n return APIError.generate(status, error, message, headers);\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this.makeRequest(options, remainingRetries));\n }\n async makeRequest(optionsInput, retriesRemaining) {\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 debug('request', url, options, req.headers);\n if (options.signal?.aborted) {\n throw new APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n if (response instanceof Error) {\n if (options.signal?.aborted) {\n throw new APIUserAbortError();\n }\n if (retriesRemaining) {\n return this.retryRequest(options, retriesRemaining);\n }\n if (response.name === 'AbortError') {\n throw new APIConnectionTimeoutError();\n }\n throw new APIConnectionError({ cause: response });\n }\n const responseHeaders = createResponseHeaders(response.headers);\n if (!response.ok) {\n if (retriesRemaining && this.shouldRetry(response)) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders);\n return this.retryRequest(options, retriesRemaining, responseHeaders);\n }\n const errText = await response.text().catch((e) => castToError(e).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders, errMessage);\n const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);\n throw err;\n }\n return { response, options, controller };\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null);\n return new PagePromise(this, request, Page);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _APIClient_baseURLOverridden, \"f\") && 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 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 async fetchWithTimeout(url, init, ms, controller) {\n const { signal, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const fetchOptions = {\n signal: controller.signal,\n ...options,\n };\n if (fetchOptions.method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n }));\n }\n 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, 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?.['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?.['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);\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 getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n}\n_APIClient_baseURLOverridden = new WeakMap();\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.nextPageInfo() != null;\n }\n async getNextPage() {\n const nextInfo = this.nextPageInfo();\n if (!nextInfo) {\n throw new DodoPaymentsError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n const nextOptions = { ...this.options };\n if ('params' in nextInfo && typeof nextOptions.query === 'object') {\n nextOptions.query = { ...nextOptions.query, ...nextInfo.params };\n }\n else if ('url' in nextInfo) {\n const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];\n for (const [key, value] of params) {\n nextInfo.url.searchParams.set(key, value);\n }\n nextOptions.query = undefined;\n nextOptions.path = nextInfo.url.toString();\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\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(request, async (props) => new Page(client, props.response, await defaultParseResponse(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 const createResponseHeaders = (headers) => {\n return new Proxy(Object.fromEntries(\n // @ts-ignore\n headers.entries()), {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n });\n};\n// This is required so that we can determine if a given object matches the RequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys = {\n method: true,\n path: true,\n query: true,\n body: true,\n headers: true,\n defaultBaseURL: true,\n maxRetries: true,\n stream: true,\n timeout: true,\n httpAgent: true,\n signal: true,\n idempotencyKey: true,\n __binaryRequest: true,\n __binaryResponse: true,\n};\nexport const isRequestOptions = (obj) => {\n return (typeof obj === 'object' &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k)));\n};\nconst getPlatformProperties = () => {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\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': process.version,\n };\n }\n // Check if Node.js\n if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(process.platform),\n 'X-Stainless-Arch': normalizeArch(process.arch),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': process.version,\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;\nconst getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nconst isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst 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 castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\nexport const ensurePresent = (value) => {\n if (value == null)\n throw new DodoPaymentsError(`Expected a value to be given but received ${value} instead.`);\n return value;\n};\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 process !== 'undefined') {\n return process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof Deno !== 'undefined') {\n return Deno.env?.get?.(env)?.trim();\n }\n return undefined;\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 === undefined) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value === undefined) {\n return undefined;\n }\n return coerceBoolean(value);\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}\n/**\n * Copies headers from \"newHeaders\" onto \"targetHeaders\",\n * using lower-case for all properties,\n * ignoring any keys with undefined values,\n * and deleting any keys with null values.\n */\nfunction applyHeadersMut(targetHeaders, newHeaders) {\n for (const k in newHeaders) {\n if (!hasOwn(newHeaders, k))\n continue;\n const lowerKey = k.toLowerCase();\n if (!lowerKey)\n continue;\n const val = newHeaders[k];\n if (val === null) {\n delete targetHeaders[lowerKey];\n }\n else if (val !== undefined) {\n targetHeaders[lowerKey] = val;\n }\n }\n}\nexport function debug(action, ...args) {\n if (typeof process !== 'undefined' && process?.env?.['DEBUG'] === 'true') {\n console.log(`DodoPayments:DEBUG:${action}`, ...args);\n }\n}\n/**\n * https://stackoverflow.com/a/2117523\n */\nconst uuid4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\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};\nexport const isHeadersProtocol = (headers) => {\n return typeof headers?.get === 'function';\n};\nexport const getRequiredHeader = (headers, header) => {\n const foundHeader = getHeader(headers, header);\n if (foundHeader === undefined) {\n throw new Error(`Could not find ${header} header`);\n }\n return foundHeader;\n};\nexport const getHeader = (headers, header) => {\n const lowerCasedHeader = header.toLowerCase();\n if (isHeadersProtocol(headers)) {\n // to deal with the case where the header looks like Stainless-Event-Id\n const intercapsHeader = header[0]?.toUpperCase() +\n header.substring(1).replace(/([^\\w])(\\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());\n for (const key of [header, lowerCasedHeader, header.toUpperCase(), intercapsHeader]) {\n const value = headers.get(key);\n if (value) {\n return value;\n }\n }\n }\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === lowerCasedHeader) {\n if (Array.isArray(value)) {\n if (value.length <= 1)\n return value[0];\n console.warn(`Received ${value.length} entries for the ${header} header, using the first entry.`);\n return value[0];\n }\n return value;\n }\n }\n return undefined;\n};\n/**\n * Encodes a string to Base64 format.\n */\nexport const toBase64 = (str) => {\n if (!str)\n return '';\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str).toString('base64');\n }\n if (typeof btoa !== 'undefined') {\n return btoa(str);\n }\n throw new DodoPaymentsError('Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\n//# sourceMappingURL=core.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { AbstractPage } from \"./core.mjs\";\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 // @deprecated Please use `nextPageInfo()` instead\n nextPageParams() {\n const info = this.nextPageInfo();\n if (!info)\n return null;\n if ('params' in info)\n return info.params;\n const params = Object.fromEntries(info.url.searchParams);\n if (!Object.keys(params).length)\n return null;\n return params;\n }\n nextPageInfo() {\n const query = this.options.query;\n const currentPage = query?.page_number ?? 1;\n return { params: { page_number: currentPage + 1 } };\n }\n}\n//# sourceMappingURL=pagination.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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/addons/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/addons/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/addons', AddonResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n updateImages(id, options) {\n return this._client.put(`/addons/${id}/images`, options);\n }\n}\nexport class AddonResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nAddons.AddonResponsesDefaultPageNumberPagination = AddonResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=addons.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.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(`/brands/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/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(`/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 \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nexport class CustomerPortal extends APIResource {\n create(customerId, params = {}, options) {\n if (isRequestOptions(params)) {\n return this.create(customerId, {}, params);\n }\n const { send_email } = params;\n return this._client.post(`/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 \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nimport * as CustomerPortalAPI from \"./customer-portal.mjs\";\nimport { CustomerPortal } from \"./customer-portal.mjs\";\nimport { DefaultPageNumberPagination } from \"../../pagination.mjs\";\nexport class Customers extends APIResource {\n constructor() {\n super(...arguments);\n this.customerPortal = new CustomerPortalAPI.CustomerPortal(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(`/customers/${customerId}`, options);\n }\n update(customerId, body, options) {\n return this._client.patch(`/customers/${customerId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/customers', CustomersDefaultPageNumberPagination, { query, ...options });\n }\n}\nexport class CustomersDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nCustomers.CustomersDefaultPageNumberPagination = CustomersDefaultPageNumberPagination;\nCustomers.CustomerPortal = CustomerPortal;\n//# sourceMappingURL=customers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/discounts/${discountId}`, options);\n }\n /**\n * PATCH /discounts/{discount_id}\n */\n update(discountId, body, options) {\n return this._client.patch(`/discounts/${discountId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/discounts', DiscountsDefaultPageNumberPagination, { query, ...options });\n }\n /**\n * DELETE /discounts/{discount_id}\n */\n delete(discountId, options) {\n return this._client.delete(`/discounts/${discountId}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n}\nexport class DiscountsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nDiscounts.DiscountsDefaultPageNumberPagination = DiscountsDefaultPageNumberPagination;\n//# sourceMappingURL=discounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.mjs\";\nexport class Disputes extends APIResource {\n retrieve(disputeId, options) {\n return this._client.get(`/disputes/${disputeId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/disputes', DisputeListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class DisputeListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nDisputes.DisputeListResponsesDefaultPageNumberPagination = DisputeListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=disputes.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nexport class Payments extends APIResource {\n retrieve(paymentId, options) {\n return this._client.get(`/invoices/payments/${paymentId}`, {\n ...options,\n headers: { 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 \"../../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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/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(`/license_key_instances/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/license_key_instances', LicenseKeyInstancesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class LicenseKeyInstancesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nLicenseKeyInstances.LicenseKeyInstancesDefaultPageNumberPagination =\n LicenseKeyInstancesDefaultPageNumberPagination;\n//# sourceMappingURL=license-key-instances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/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(`/license_keys/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/license_keys', LicenseKeysDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class LicenseKeysDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nLicenseKeys.LicenseKeysDefaultPageNumberPagination = LicenseKeysDefaultPageNumberPagination;\n//# sourceMappingURL=license-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nexport class Licenses extends APIResource {\n /**\n * @example\n * ```ts\n * const licenseKeyInstance = 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: { 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 \"../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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/payments/${paymentId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/payments', PaymentListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n retrieveLineItems(paymentId, options) {\n return this._client.get(`/payments/${paymentId}/line-items`, options);\n }\n}\nexport class PaymentListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nPayments.PaymentListResponsesDefaultPageNumberPagination = PaymentListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.mjs\";\nexport class Payouts extends APIResource {\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/payouts', PayoutListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class PayoutListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nPayouts.PayoutListResponsesDefaultPageNumberPagination = PayoutListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=payouts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nexport class Images extends APIResource {\n update(id, params = {}, options) {\n if (isRequestOptions(params)) {\n return this.update(id, {}, params);\n }\n const { force_update } = params;\n return this._client.put(`/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 \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nimport * as ImagesAPI from \"./images.mjs\";\nimport { Images } from \"./images.mjs\";\nimport { DefaultPageNumberPagination } from \"../../pagination.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(`/products/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/products/${id}`, {\n body,\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/products', ProductListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n delete(id, options) {\n return this._client.delete(`/products/${id}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n unarchive(id, options) {\n return this._client.post(`/products/${id}/unarchive`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n updateFiles(id, body, options) {\n return this._client.put(`/products/${id}/files`, { body, ...options });\n }\n}\nexport class ProductListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nProducts.ProductListResponsesDefaultPageNumberPagination = ProductListResponsesDefaultPageNumberPagination;\nProducts.Images = Images;\n//# sourceMappingURL=products.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/refunds/${refundId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/refunds', RefundsDefaultPageNumberPagination, { query, ...options });\n }\n}\nexport class RefundsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nRefunds.RefundsDefaultPageNumberPagination = RefundsDefaultPageNumberPagination;\n//# sourceMappingURL=refunds.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/subscriptions/${subscriptionId}`, options);\n }\n update(subscriptionId, body, options) {\n return this._client.patch(`/subscriptions/${subscriptionId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/subscriptions', SubscriptionListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n changePlan(subscriptionId, body, options) {\n return this._client.post(`/subscriptions/${subscriptionId}/change-plan`, {\n body,\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n charge(subscriptionId, body, options) {\n return this._client.post(`/subscriptions/${subscriptionId}/charge`, { body, ...options });\n }\n}\nexport class SubscriptionListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nSubscriptions.SubscriptionListResponsesDefaultPageNumberPagination =\n SubscriptionListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=subscriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.mjs\";\nexport class WebhookEvents extends APIResource {\n /**\n * @deprecated\n */\n retrieve(webhookEventId, options) {\n return this._client.get(`/webhook_events/${webhookEventId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/webhook_events', WebhookEventsDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class WebhookEventsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nWebhookEvents.WebhookEventsDefaultPageNumberPagination = WebhookEventsDefaultPageNumberPagination;\n//# sourceMappingURL=webhook-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _DodoPayments_instances, _a, _DodoPayments_baseURLOverridden;\nimport * as Core from \"./core.mjs\";\nimport * as Errors from \"./error.mjs\";\nimport * as Pagination from \"./pagination.mjs\";\nimport * as Uploads from \"./uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { AddonResponsesDefaultPageNumberPagination, Addons, } from \"./resources/addons.mjs\";\nimport { Brands, } from \"./resources/brands.mjs\";\nimport { Discounts, DiscountsDefaultPageNumberPagination, } from \"./resources/discounts.mjs\";\nimport { DisputeListResponsesDefaultPageNumberPagination, Disputes, } from \"./resources/disputes.mjs\";\nimport { LicenseKeyInstances, LicenseKeyInstancesDefaultPageNumberPagination, } from \"./resources/license-key-instances.mjs\";\nimport { LicenseKeys, LicenseKeysDefaultPageNumberPagination, } from \"./resources/license-keys.mjs\";\nimport { Licenses, } from \"./resources/licenses.mjs\";\nimport { Misc, } from \"./resources/misc.mjs\";\nimport { PaymentListResponsesDefaultPageNumberPagination, Payments, } from \"./resources/payments.mjs\";\nimport { PayoutListResponsesDefaultPageNumberPagination, Payouts, } from \"./resources/payouts.mjs\";\nimport { Refunds, RefundsDefaultPageNumberPagination, } from \"./resources/refunds.mjs\";\nimport { SubscriptionListResponsesDefaultPageNumberPagination, Subscriptions, } from \"./resources/subscriptions.mjs\";\nimport { WebhookEvents, WebhookEventsDefaultPageNumberPagination, } from \"./resources/webhook-events.mjs\";\nimport { Customers, CustomersDefaultPageNumberPagination, } from \"./resources/customers/customers.mjs\";\nimport { Invoices } from \"./resources/invoices/invoices.mjs\";\nimport { ProductListResponsesDefaultPageNumberPagination, Products, } from \"./resources/products/products.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 extends Core.APIClient {\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 {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 {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.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 {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n */\n constructor({ baseURL = Core.readEnv('DODO_PAYMENTS_BASE_URL'), bearerToken = Core.readEnv('DODO_PAYMENTS_API_KEY'), ...opts } = {}) {\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 ...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 super({\n baseURL: options.baseURL || environments[options.environment || 'live_mode'],\n baseURLOverridden: baseURL ? baseURL !== environments[options.environment || 'live_mode'] : false,\n timeout: options.timeout ?? 60000 /* 1 minute */,\n httpAgent: options.httpAgent,\n maxRetries: options.maxRetries,\n fetch: options.fetch,\n });\n _DodoPayments_instances.add(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.webhookEvents = new API.WebhookEvents(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._options = options;\n this.bearerToken = bearerToken;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n defaultHeaders(opts) {\n return {\n ...super.defaultHeaders(opts),\n ...this._options.defaultHeaders,\n };\n }\n authHeaders(opts) {\n return { Authorization: `Bearer ${this.bearerToken}` };\n }\n}\n_a = DodoPayments, _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.fileFromPath = Uploads.fileFromPath;\nDodoPayments.Payments = Payments;\nDodoPayments.PaymentListResponsesDefaultPageNumberPagination =\n PaymentListResponsesDefaultPageNumberPagination;\nDodoPayments.Subscriptions = Subscriptions;\nDodoPayments.SubscriptionListResponsesDefaultPageNumberPagination =\n SubscriptionListResponsesDefaultPageNumberPagination;\nDodoPayments.Invoices = Invoices;\nDodoPayments.Licenses = Licenses;\nDodoPayments.LicenseKeys = LicenseKeys;\nDodoPayments.LicenseKeysDefaultPageNumberPagination = LicenseKeysDefaultPageNumberPagination;\nDodoPayments.LicenseKeyInstances = LicenseKeyInstances;\nDodoPayments.LicenseKeyInstancesDefaultPageNumberPagination = LicenseKeyInstancesDefaultPageNumberPagination;\nDodoPayments.Customers = Customers;\nDodoPayments.CustomersDefaultPageNumberPagination = CustomersDefaultPageNumberPagination;\nDodoPayments.Refunds = Refunds;\nDodoPayments.RefundsDefaultPageNumberPagination = RefundsDefaultPageNumberPagination;\nDodoPayments.Disputes = Disputes;\nDodoPayments.DisputeListResponsesDefaultPageNumberPagination =\n DisputeListResponsesDefaultPageNumberPagination;\nDodoPayments.Payouts = Payouts;\nDodoPayments.PayoutListResponsesDefaultPageNumberPagination = PayoutListResponsesDefaultPageNumberPagination;\nDodoPayments.WebhookEvents = WebhookEvents;\nDodoPayments.WebhookEventsDefaultPageNumberPagination = WebhookEventsDefaultPageNumberPagination;\nDodoPayments.Products = Products;\nDodoPayments.ProductListResponsesDefaultPageNumberPagination =\n ProductListResponsesDefaultPageNumberPagination;\nDodoPayments.Misc = Misc;\nDodoPayments.Discounts = Discounts;\nDodoPayments.DiscountsDefaultPageNumberPagination = DiscountsDefaultPageNumberPagination;\nDodoPayments.Addons = Addons;\nDodoPayments.AddonResponsesDefaultPageNumberPagination = AddonResponsesDefaultPageNumberPagination;\nDodoPayments.Brands = Brands;\nexport { toFile, fileFromPath } from \"./uploads.mjs\";\nexport { DodoPaymentsError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } from \"./error.mjs\";\nexport default DodoPayments;\n//# sourceMappingURL=index.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { z } from \"zod\";\nimport DodoPayments from \"dodopayments\";\nexport var 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());\n// Add Zod schema for dynamic checkout body\nexport var dynamicCheckoutBodySchema = z\n .object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z\n .array(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\n .array(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})\n .catchall(z.unknown());\nexport var buildCheckoutUrl = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {\n var inputData, parseResult, success, data, error, _c, productId, quantity_1, fullName, firstName, lastName, email, country, addressLine, city, state, zipCode, disableFullName, disableFirstName, disableLastName, disableEmail, disableCountry, disableAddressLine, disableCity, disableState, disableZipCode, paymentCurrency, showCurrencySelector, paymentAmount, showDiscounts, dodopayments_1, err_1, url, _i, _d, _e, key, value, dyn, product_id, product_cart, quantity, billing, customer, addons, metadata, allowed_payment_method_types, billing_currency, discount_code, on_demand, bodyReturnUrl, show_saved_payment_methods, tax_id, trial_period_days, dodopayments, isSubscription, productIdToFetch, product, err_2, subscriptionPayload, subscription, err_3, cart, paymentPayload, payment, err_4;\n var queryParams = _b.queryParams, body = _b.body, returnUrl = _b.returnUrl, bearerToken = _b.bearerToken, environment = _b.environment, _f = _b.type, type = _f === void 0 ? \"static\" : _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n inputData = type === \"dynamic\" ? body : queryParams;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n }\n else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n success = parseResult.success, data = parseResult.data, error = parseResult.error;\n if (!success) {\n throw new Error(\"Invalid \".concat(type === \"dynamic\" ? \"body\" : \"query parameters\", \".\\n \").concat(error.message));\n }\n if (!(type !== \"dynamic\")) return [3 /*break*/, 5];\n _c = data, productId = _c.productId, quantity_1 = _c.quantity, fullName = _c.fullName, firstName = _c.firstName, lastName = _c.lastName, email = _c.email, country = _c.country, addressLine = _c.addressLine, city = _c.city, state = _c.state, zipCode = _c.zipCode, disableFullName = _c.disableFullName, disableFirstName = _c.disableFirstName, disableLastName = _c.disableLastName, disableEmail = _c.disableEmail, disableCountry = _c.disableCountry, disableAddressLine = _c.disableAddressLine, disableCity = _c.disableCity, disableState = _c.disableState, disableZipCode = _c.disableZipCode, paymentCurrency = _c.paymentCurrency, showCurrencySelector = _c.showCurrencySelector, paymentAmount = _c.paymentAmount, showDiscounts = _c.showDiscounts;\n dodopayments_1 = new DodoPayments({\n bearerToken: bearerToken,\n environment: environment,\n });\n // Check that the product exists for this merchant\n if (!productId)\n throw new Error(\"Missing required field: productId\");\n _g.label = 1;\n case 1:\n _g.trys.push([1, 3, , 4]);\n return [4 /*yield*/, dodopayments_1.products.retrieve(productId)];\n case 2:\n _g.sent();\n return [3 /*break*/, 4];\n case 3:\n err_1 = _g.sent();\n console.error(err_1);\n throw new Error(\"Product not found\");\n case 4:\n url = new URL(\"\".concat(environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\", \"/buy/\").concat(productId));\n url.searchParams.set(\"quantity\", quantity_1 ? String(quantity_1) : \"1\");\n if (returnUrl)\n url.searchParams.set(\"redirect_url\", returnUrl);\n // Customer/billing fields\n if (fullName)\n url.searchParams.set(\"fullName\", String(fullName));\n if (firstName)\n url.searchParams.set(\"firstName\", String(firstName));\n if (lastName)\n url.searchParams.set(\"lastName\", String(lastName));\n if (email)\n url.searchParams.set(\"email\", String(email));\n if (country)\n url.searchParams.set(\"country\", String(country));\n if (addressLine)\n url.searchParams.set(\"addressLine\", String(addressLine));\n if (city)\n url.searchParams.set(\"city\", String(city));\n if (state)\n url.searchParams.set(\"state\", String(state));\n if (zipCode)\n url.searchParams.set(\"zipCode\", String(zipCode));\n // Disable flags (must be set to 'true' to disable)\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\")\n 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\")\n url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\")\n url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n // Advanced controls\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\"showCurrencySelector\", String(showCurrencySelector));\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n // Metadata: add all query params starting with metadata_\n for (_i = 0, _d = Object.entries(queryParams || {}); _i < _d.length; _i++) {\n _e = _d[_i], key = _e[0], value = _e[1];\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return [2 /*return*/, url.toString()];\n case 5:\n dyn = data;\n product_id = dyn.product_id, product_cart = dyn.product_cart, quantity = dyn.quantity, billing = dyn.billing, customer = dyn.customer, addons = dyn.addons, metadata = dyn.metadata, allowed_payment_method_types = dyn.allowed_payment_method_types, billing_currency = dyn.billing_currency, discount_code = dyn.discount_code, on_demand = dyn.on_demand, bodyReturnUrl = dyn.return_url, show_saved_payment_methods = dyn.show_saved_payment_methods, tax_id = dyn.tax_id, trial_period_days = dyn.trial_period_days;\n dodopayments = new DodoPayments({\n bearerToken: bearerToken,\n environment: environment,\n });\n isSubscription = false;\n 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(\"Missing required field: product_id or product_cart[0].product_id\");\n _g.label = 6;\n case 6:\n _g.trys.push([6, 8, , 9]);\n return [4 /*yield*/, dodopayments.products.retrieve(productIdToFetch)];\n case 7:\n product = _g.sent();\n return [3 /*break*/, 9];\n case 8:\n err_2 = _g.sent();\n console.error(err_2);\n throw new Error(\"Product not found\");\n case 9:\n isSubscription = Boolean(product.is_recurring);\n // Required field validation\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing)\n throw new Error(\"Missing required field: billing\");\n if (!customer)\n throw new Error(\"Missing required field: customer\");\n if (!isSubscription) return [3 /*break*/, 14];\n subscriptionPayload = {\n billing: billing,\n customer: customer,\n product_id: product_id,\n quantity: quantity ? Number(quantity) : 1,\n };\n if (metadata)\n subscriptionPayload.metadata = metadata;\n if (discount_code)\n subscriptionPayload.discount_code = discount_code;\n if (addons)\n subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types =\n allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand)\n subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n // Use bodyReturnUrl if present, otherwise use top-level returnUrl\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n }\n else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods =\n show_saved_payment_methods;\n if (tax_id)\n subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n subscription = void 0;\n _g.label = 10;\n case 10:\n _g.trys.push([10, 12, , 13]);\n return [4 /*yield*/, dodopayments.subscriptions.create(subscriptionPayload)];\n case 11:\n subscription =\n _g.sent();\n return [3 /*break*/, 13];\n case 12:\n err_3 = _g.sent();\n console.error(\"Error when creating subscription\", err_3);\n throw new Error(err_3 instanceof Error ? err_3.message : String(err_3));\n case 13:\n if (!subscription || !subscription.payment_link) {\n throw new Error(\"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\");\n }\n return [2 /*return*/, subscription.payment_link];\n case 14:\n cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id: 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 paymentPayload = {\n billing: billing,\n customer: customer,\n product_cart: cart,\n };\n if (metadata)\n paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types =\n allowed_payment_method_types;\n if (billing_currency)\n paymentPayload.billing_currency = billing_currency;\n if (discount_code)\n paymentPayload.discount_code = discount_code;\n // Use bodyReturnUrl if present, otherwise use top-level returnUrl\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n }\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)\n paymentPayload.tax_id = tax_id;\n payment = void 0;\n _g.label = 15;\n case 15:\n _g.trys.push([15, 17, , 18]);\n return [4 /*yield*/, dodopayments.payments.create(paymentPayload)];\n case 16:\n payment = _g.sent();\n return [3 /*break*/, 18];\n case 17:\n err_4 = _g.sent();\n console.error(\"Error when creating payment link\", err_4);\n throw new Error(err_4 instanceof Error ? err_4.message : String(err_4));\n case 18:\n if (!payment || !payment.payment_link) {\n throw new Error(\"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\");\n }\n return [2 /*return*/, payment.payment_link];\n }\n });\n}); };\n","import { error, type RequestHandler } from \"@sveltejs/kit\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\nimport {\n buildCheckoutUrl,\n type CheckoutHandlerConfig,\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n} from \"@dodopayments/core/checkout\";\n\nexport const Checkout = (config: CheckoutHandlerConfig) => {\n const getHandler: RequestHandler = async (event: RequestEvent) => {\n const searchParams = event.url.searchParams;\n const queryParams = Object.fromEntries(searchParams);\n\n if (!queryParams.productId) {\n throw error(400, \"Please provide productId query parameter\");\n }\n\n const {\n success,\n data,\n error: zodError,\n } = checkoutQuerySchema.safeParse(queryParams);\n\n if (!success) {\n if (zodError.errors.some((e: any) => e.path.toString() === \"productId\")) {\n throw error(400, \"Please provide productId query parameter\");\n }\n throw error(400, `Invalid query parameters.\\n ${zodError.message}`);\n }\n\n let urlStr = \"\";\n try {\n urlStr = await buildCheckoutUrl({ queryParams: data, ...config });\n } catch (err: any) {\n throw error(400, err.message);\n }\n\n return new Response(null, {\n status: 302,\n headers: { Location: urlStr },\n });\n };\n\n const postHandler: RequestHandler = async (event: RequestEvent) => {\n let body: any;\n try {\n body = await event.request.json();\n } catch (e) {\n throw error(400, \"Invalid JSON body\");\n }\n\n const {\n success,\n data,\n error: zodError,\n } = dynamicCheckoutBodySchema.safeParse(body);\n\n if (!success) {\n throw error(400, `Invalid request body.\\n ${zodError.message}`);\n }\n\n let urlStr = \"\";\n try {\n urlStr = await buildCheckoutUrl({ body: data, ...config });\n } catch (err: any) {\n throw error(400, err.message);\n }\n\n return new Response(null, {\n status: 302,\n headers: { Location: urlStr },\n });\n };\n\n // SvelteKit expects named exports for HTTP verbs\n return {\n GET: getHandler,\n POST: postHandler,\n };\n};\n","\"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","import { z } from \"zod\";\nexport var 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(function (d) { return 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\n .array(z.object({\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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\n .array(z.object({\n product_id: z.string(),\n quantity: z.number(),\n }))\n .nullable(),\n refunds: z\n .array(z.object({\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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\n .string()\n .transform(function (d) { return new Date(d); })\n .nullable(),\n});\nexport var SubscriptionSchema = z.object({\n payload_type: z.literal(\"Subscription\"),\n addons: z\n .array(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\n .string()\n .transform(function (d) { return new Date(d); })\n .nullable(),\n created_at: z.string().transform(function (d) { return 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\n .string()\n .transform(function (d) { return new Date(d); })\n .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\n .string()\n .transform(function (d) { return new Date(d); })\n .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});\nexport var RefundSchema = z.object({\n payload_type: z.literal(\"Refund\"),\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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});\nexport var DisputeSchema = z.object({\n payload_type: z.literal(\"Dispute\"),\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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});\nexport var 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(function (d) { return new Date(d); }),\n customer_id: z.string(),\n expires_at: z\n .string()\n .transform(function (d) { return new Date(d); })\n .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});\nexport var PaymentSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.succeeded\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentProcessingPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.processing\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var RefundSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.succeeded\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: RefundSchema,\n});\nexport var RefundFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: RefundSchema,\n});\nexport var DisputeOpenedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.opened\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.expired\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeAcceptedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.accepted\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeChallengedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.challenged\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeWonPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.won\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeLostPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.lost\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var SubscriptionActivePayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.active\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionOnHoldPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.on_hold\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionRenewedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.renewed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionPausedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.paused\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionPlanChangedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.plan_changed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.expired\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var LicenseKeyCreatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"license_key.created\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: LicenseKeySchema,\n});\nexport var 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 LicenseKeyCreatedPayloadSchema,\n]);\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { WebhookPayloadSchema, } from \"../schemas/webhook\";\nimport { Webhook as StandardWebhook, WebhookVerificationError, } from \"standardwebhooks\";\nexport var handleWebhookPayload = function (payload, config) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!config.onPayload) return [3 /*break*/, 2];\n return [4 /*yield*/, config.onPayload(payload)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n if (!(payload.type === \"payment.succeeded\" && config.onPaymentSucceeded)) return [3 /*break*/, 4];\n return [4 /*yield*/, config.onPaymentSucceeded(payload)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n if (!(payload.type === \"payment.failed\" && config.onPaymentFailed)) return [3 /*break*/, 6];\n return [4 /*yield*/, config.onPaymentFailed(payload)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(payload.type === \"payment.processing\" && config.onPaymentProcessing)) return [3 /*break*/, 8];\n return [4 /*yield*/, config.onPaymentProcessing(payload)];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n if (!(payload.type === \"payment.cancelled\" && config.onPaymentCancelled)) return [3 /*break*/, 10];\n return [4 /*yield*/, config.onPaymentCancelled(payload)];\n case 9:\n _a.sent();\n _a.label = 10;\n case 10:\n if (!(payload.type === \"refund.succeeded\" && config.onRefundSucceeded)) return [3 /*break*/, 12];\n return [4 /*yield*/, config.onRefundSucceeded(payload)];\n case 11:\n _a.sent();\n _a.label = 12;\n case 12:\n if (!(payload.type === \"refund.failed\" && config.onRefundFailed)) return [3 /*break*/, 14];\n return [4 /*yield*/, config.onRefundFailed(payload)];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14:\n if (!(payload.type === \"dispute.opened\" && config.onDisputeOpened)) return [3 /*break*/, 16];\n return [4 /*yield*/, config.onDisputeOpened(payload)];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16:\n if (!(payload.type === \"dispute.expired\" && config.onDisputeExpired)) return [3 /*break*/, 18];\n return [4 /*yield*/, config.onDisputeExpired(payload)];\n case 17:\n _a.sent();\n _a.label = 18;\n case 18:\n if (!(payload.type === \"dispute.accepted\" && config.onDisputeAccepted)) return [3 /*break*/, 20];\n return [4 /*yield*/, config.onDisputeAccepted(payload)];\n case 19:\n _a.sent();\n _a.label = 20;\n case 20:\n if (!(payload.type === \"dispute.cancelled\" && config.onDisputeCancelled)) return [3 /*break*/, 22];\n return [4 /*yield*/, config.onDisputeCancelled(payload)];\n case 21:\n _a.sent();\n _a.label = 22;\n case 22:\n if (!(payload.type === \"dispute.challenged\" && config.onDisputeChallenged)) return [3 /*break*/, 24];\n return [4 /*yield*/, config.onDisputeChallenged(payload)];\n case 23:\n _a.sent();\n _a.label = 24;\n case 24:\n if (!(payload.type === \"dispute.won\" && config.onDisputeWon)) return [3 /*break*/, 26];\n return [4 /*yield*/, config.onDisputeWon(payload)];\n case 25:\n _a.sent();\n _a.label = 26;\n case 26:\n if (!(payload.type === \"dispute.lost\" && config.onDisputeLost)) return [3 /*break*/, 28];\n return [4 /*yield*/, config.onDisputeLost(payload)];\n case 27:\n _a.sent();\n _a.label = 28;\n case 28:\n if (!(payload.type === \"subscription.active\" && config.onSubscriptionActive)) return [3 /*break*/, 30];\n return [4 /*yield*/, config.onSubscriptionActive(payload)];\n case 29:\n _a.sent();\n _a.label = 30;\n case 30:\n if (!(payload.type === \"subscription.on_hold\" && config.onSubscriptionOnHold)) return [3 /*break*/, 32];\n return [4 /*yield*/, config.onSubscriptionOnHold(payload)];\n case 31:\n _a.sent();\n _a.label = 32;\n case 32:\n if (!(payload.type === \"subscription.renewed\" && config.onSubscriptionRenewed)) return [3 /*break*/, 34];\n return [4 /*yield*/, config.onSubscriptionRenewed(payload)];\n case 33:\n _a.sent();\n _a.label = 34;\n case 34:\n if (!(payload.type === \"subscription.paused\" && config.onSubscriptionPaused)) return [3 /*break*/, 36];\n return [4 /*yield*/, config.onSubscriptionPaused(payload)];\n case 35:\n _a.sent();\n _a.label = 36;\n case 36:\n if (!(payload.type === \"subscription.plan_changed\" &&\n config.onSubscriptionPlanChanged)) return [3 /*break*/, 38];\n return [4 /*yield*/, config.onSubscriptionPlanChanged(payload)];\n case 37:\n _a.sent();\n _a.label = 38;\n case 38:\n if (!(payload.type === \"subscription.cancelled\" &&\n config.onSubscriptionCancelled)) return [3 /*break*/, 40];\n return [4 /*yield*/, config.onSubscriptionCancelled(payload)];\n case 39:\n _a.sent();\n _a.label = 40;\n case 40:\n if (!(payload.type === \"subscription.failed\" && config.onSubscriptionFailed)) return [3 /*break*/, 42];\n return [4 /*yield*/, config.onSubscriptionFailed(payload)];\n case 41:\n _a.sent();\n _a.label = 42;\n case 42:\n if (!(payload.type === \"subscription.expired\" && config.onSubscriptionExpired)) return [3 /*break*/, 44];\n return [4 /*yield*/, config.onSubscriptionExpired(payload)];\n case 43:\n _a.sent();\n _a.label = 44;\n case 44:\n if (!(payload.type === \"license_key.created\" && config.onLicenseKeyCreated)) return [3 /*break*/, 46];\n return [4 /*yield*/, config.onLicenseKeyCreated(payload)];\n case 45:\n _a.sent();\n _a.label = 46;\n case 46: return [2 /*return*/];\n }\n });\n}); };\nexport var verifyWebhookPayload = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {\n var standardWebhook, _c, success, payload, error;\n var webhookKey = _b.webhookKey, headers = _b.headers, body = _b.body;\n return __generator(this, function (_d) {\n standardWebhook = new StandardWebhook(webhookKey);\n try {\n standardWebhook.verify(body, headers);\n }\n catch (e) {\n if (e instanceof WebhookVerificationError) {\n throw new Error(e.message);\n }\n throw e;\n }\n _c = WebhookPayloadSchema.safeParse(JSON.parse(body)), success = _c.success, payload = _c.data, error = _c.error;\n if (!success) {\n throw new Error(error.message);\n }\n return [2 /*return*/, payload];\n });\n}); };\n","import {\n Webhook as StandardWebhook,\n WebhookVerificationError,\n} from \"standardwebhooks\";\nimport {\n type WebhookHandlerConfig,\n handleWebhookPayload,\n} from \"@dodopayments/core/webhook\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\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 (event: RequestEvent) => {\n if (event.request.method !== \"POST\") {\n return new Response(\"Method not allowed. Use POST\", { status: 405 });\n }\n\n const headers = {\n \"webhook-id\": event.request.headers.get(\"webhook-id\") ?? \"\",\n \"webhook-timestamp\": event.request.headers.get(\"webhook-timestamp\") ?? \"\",\n \"webhook-signature\": event.request.headers.get(\"webhook-signature\") ?? \"\",\n };\n\n const rawBody = await event.request.text();\n\n try {\n standardWebhook.verify(rawBody, headers);\n } catch (err) {\n if (err instanceof WebhookVerificationError) {\n return new Response(err.message, { status: 401 });\n }\n\n return new Response(\"Error while verifying webhook\", {\n status: 500,\n });\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 new Response(`Error parsing webhook payload: ${error.message}`, {\n status: 400,\n });\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 new Response(null, { status: 200 });\n };\n};\n","import { redirect, error, type RequestHandler } from \"@sveltejs/kit\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\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: RequestHandler = async (event: RequestEvent) => {\n const searchParams = event.url.searchParams;\n const customerId = searchParams.get(\"customer_id\");\n const params: { send_email?: boolean } = { send_email: false };\n const sendEmail = searchParams.get(\"send_email\");\n if (sendEmail === \"true\") {\n params.send_email = true;\n }\n if (!customerId) {\n throw error(400, \"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 new Response(null, {\n status: 302,\n headers: { Location: session.link },\n });\n } catch (err: any) {\n console.error(\"Error creating customer portal session:\", err);\n throw error(\n 500,\n `Failed to create customer portal session: ${err.message}`,\n );\n }\n };\n\n // SvelteKit expects named exports for HTTP verbs\n return {\n GET: getHandler,\n };\n};\n"],"names":["fetch","File","shims.kind","shims.setShims","auto.getRuntime","this","shimsKind","CustomerPortalAPI.CustomerPortal","CustomerPortal","PaymentsAPI.Payments","Payments","ImagesAPI.Images","Core.APIClient","Core.readEnv","Errors.DodoPaymentsError","API.Payments","API.Subscriptions","API.Invoices","API.Licenses","API.LicenseKeys","API.LicenseKeyInstances","API.Customers","API.Refunds","API.Disputes","API.Payouts","API.WebhookEvents","API.Products","API.Misc","API.Discounts","API.Addons","API.Brands","Errors.APIError","Errors.APIConnectionError","Errors.APIConnectionTimeoutError","Errors.APIUserAbortError","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Uploads.toFile","Uploads.fileFromPath","__awaiter","__generator","base64","require$$0","require$$1","require$$2","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,36,37,38,39]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/@sveltejs/kit/src/exports/internal/index.js","../../../node_modules/esm-env/browser-fallback.js","../../../node_modules/esm-env/dev-fallback.js","../../../node_modules/@sveltejs/kit/src/exports/index.js","../../core/node_modules/dodopayments/internal/tslib.mjs","../../core/node_modules/dodopayments/internal/utils/uuid.mjs","../../core/node_modules/dodopayments/internal/errors.mjs","../../core/node_modules/dodopayments/core/error.mjs","../../core/node_modules/dodopayments/internal/utils/values.mjs","../../core/node_modules/dodopayments/internal/utils/sleep.mjs","../../core/node_modules/dodopayments/version.mjs","../../core/node_modules/dodopayments/internal/detect-platform.mjs","../../core/node_modules/dodopayments/internal/shims.mjs","../../core/node_modules/dodopayments/internal/request-options.mjs","../../core/node_modules/dodopayments/internal/utils/log.mjs","../../core/node_modules/dodopayments/internal/parse.mjs","../../core/node_modules/dodopayments/core/api-promise.mjs","../../core/node_modules/dodopayments/core/pagination.mjs","../../core/node_modules/dodopayments/internal/uploads.mjs","../../core/node_modules/dodopayments/internal/to-file.mjs","../../core/node_modules/dodopayments/core/resource.mjs","../../core/node_modules/dodopayments/internal/utils/path.mjs","../../core/node_modules/dodopayments/resources/addons.mjs","../../core/node_modules/dodopayments/resources/brands.mjs","../../core/node_modules/dodopayments/resources/checkout-sessions.mjs","../../core/node_modules/dodopayments/resources/customers/customer-portal.mjs","../../core/node_modules/dodopayments/resources/customers/wallets/ledger-entries.mjs","../../core/node_modules/dodopayments/resources/customers/wallets/wallets.mjs","../../core/node_modules/dodopayments/resources/customers/customers.mjs","../../core/node_modules/dodopayments/internal/headers.mjs","../../core/node_modules/dodopayments/resources/discounts.mjs","../../core/node_modules/dodopayments/resources/disputes.mjs","../../core/node_modules/dodopayments/resources/invoices/payments.mjs","../../core/node_modules/dodopayments/resources/invoices/invoices.mjs","../../core/node_modules/dodopayments/resources/license-key-instances.mjs","../../core/node_modules/dodopayments/resources/license-keys.mjs","../../core/node_modules/dodopayments/resources/licenses.mjs","../../core/node_modules/dodopayments/resources/meters.mjs","../../core/node_modules/dodopayments/resources/misc.mjs","../../core/node_modules/dodopayments/resources/payments.mjs","../../core/node_modules/dodopayments/resources/payouts.mjs","../../core/node_modules/dodopayments/resources/products/images.mjs","../../core/node_modules/dodopayments/resources/products/products.mjs","../../core/node_modules/dodopayments/resources/refunds.mjs","../../core/node_modules/dodopayments/resources/subscriptions.mjs","../../core/node_modules/dodopayments/resources/usage-events.mjs","../../core/node_modules/dodopayments/resources/webhook-events.mjs","../../core/node_modules/dodopayments/resources/webhooks/headers.mjs","../../core/node_modules/dodopayments/resources/webhooks/webhooks.mjs","../../core/node_modules/dodopayments/internal/utils/env.mjs","../../core/node_modules/dodopayments/client.mjs","../../core/dist/checkout/checkout.js","../src/checkout/checkout.ts","../../../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","../../core/dist/schemas/webhook.js","../../core/dist/webhook/webhook.js","../src/webhooks/webhooks.ts","../../../node_modules/dodopayments/version.mjs","../../../node_modules/dodopayments/error.mjs","../../../node_modules/dodopayments/_shims/registry.mjs","../../../node_modules/dodopayments/_shims/MultipartBody.mjs","../../../node_modules/dodopayments/_shims/web-runtime.mjs","../../../node_modules/dodopayments/_shims/index.mjs","../../../node_modules/dodopayments/uploads.mjs","../../../node_modules/dodopayments/core.mjs","../../../node_modules/dodopayments/pagination.mjs","../../../node_modules/dodopayments/resource.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/resources/discounts.mjs","../../../node_modules/dodopayments/resources/disputes.mjs","../../../node_modules/dodopayments/resources/usage-events.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/webhooks/headers.mjs","../../../node_modules/dodopayments/resources/webhooks/webhooks.mjs","../../../node_modules/dodopayments/resources/webhook-events.mjs","../../../node_modules/dodopayments/index.mjs","../src/customer-portal/customer-portal.ts"],"sourcesContent":["export class HttpError {\n\t/**\n\t * @param {number} status\n\t * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\t */\n\tconstructor(status, body) {\n\t\tthis.status = status;\n\t\tif (typeof body === 'string') {\n\t\t\tthis.body = { message: body };\n\t\t} else if (body) {\n\t\t\tthis.body = body;\n\t\t} else {\n\t\t\tthis.body = { message: `Error: ${status}` };\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this.body);\n\t}\n}\n\nexport class Redirect {\n\t/**\n\t * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n\t * @param {string} location\n\t */\n\tconstructor(status, location) {\n\t\tthis.status = status;\n\t\tthis.location = location;\n\t}\n}\n\n/**\n * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.\n * `SvelteKitError` goes through `handleError`.\n * @extends Error\n */\nexport class SvelteKitError extends Error {\n\t/**\n\t * @param {number} status\n\t * @param {string} text\n\t * @param {string} message\n\t */\n\tconstructor(status, text, message) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t\tthis.text = text;\n\t}\n}\n\n/**\n * @template {Record<string, unknown> | undefined} [T=undefined]\n */\nexport class ActionFailure {\n\t/**\n\t * @param {number} status\n\t * @param {T} data\n\t */\n\tconstructor(status, data) {\n\t\tthis.status = status;\n\t\tthis.data = data;\n\t}\n}\n","export default typeof window !== 'undefined';\n","const node_env = globalThis.process?.env?.NODE_ENV;\nexport default node_env && !node_env.toLowerCase().startsWith('prod');\n","import { HttpError, Redirect, ActionFailure } from './internal/index.js';\nimport { BROWSER, DEV } from 'esm-env';\nimport {\n\tadd_data_suffix,\n\tadd_resolution_suffix,\n\thas_data_suffix,\n\thas_resolution_suffix,\n\tstrip_data_suffix,\n\tstrip_resolution_suffix\n} from '../runtime/pathname.js';\n\nexport { VERSION } from '../version.js';\n\n// TODO 3.0: remove these types as they are not used anymore (we can't remove them yet because that would be a breaking change)\n/**\n * @template {number} TNumber\n * @template {any[]} [TArray=[]]\n * @typedef {TNumber extends TArray['length'] ? TArray[number] : LessThan<TNumber, [...TArray, TArray['length']]>} LessThan\n */\n\n/**\n * @template {number} TStart\n * @template {number} TEnd\n * @typedef {Exclude<TEnd | LessThan<TEnd>, LessThan<TStart>>} NumericRange\n */\n\n// Keep the status codes as `number` because restricting to certain numbers makes it unnecessarily hard to use compared to the benefits\n// (we have runtime errors already to check for invalid codes). Also see https://github.com/sveltejs/kit/issues/11780\n\n// we have to repeat the JSDoc because the display for function overloads is broken\n// see https://github.com/microsoft/TypeScript/issues/55056\n\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {App.Error} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {App.Error} body\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body] An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body]\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\nexport function error(status, body) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 400 || status > 599)) {\n\t\tthrow new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);\n\t}\n\n\tthrow new HttpError(status, body);\n}\n\n/**\n * Checks whether this is an error thrown by {@link error}.\n * @template {number} T\n * @param {unknown} e\n * @param {T} [status] The status to filter for.\n * @return {e is (HttpError & { status: T extends undefined ? never : T })}\n */\nexport function isHttpError(e, status) {\n\tif (!(e instanceof HttpError)) return false;\n\treturn !status || e.status === status;\n}\n\n/**\n * Redirect a request. When called during request handling, SvelteKit will return a redirect response.\n * Make sure you're not catching the thrown redirect, which would prevent SvelteKit from handling it.\n *\n * Most common status codes:\n * * `303 See Other`: redirect as a GET request (often used after a form POST request)\n * * `307 Temporary Redirect`: redirect will keep the request method\n * * `308 Permanent Redirect`: redirect will keep the request method, SEO will be transferred to the new page\n *\n * [See all redirect status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages)\n *\n * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | ({} & number)} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages). Must be in the range 300-308.\n * @param {string | URL} location The location to redirect to.\n * @throws {Redirect} This error instructs SvelteKit to redirect to the specified location.\n * @throws {Error} If the provided status is invalid.\n * @return {never}\n */\nexport function redirect(status, location) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 300 || status > 308)) {\n\t\tthrow new Error('Invalid status code');\n\t}\n\n\tthrow new Redirect(\n\t\t// @ts-ignore\n\t\tstatus,\n\t\tlocation.toString()\n\t);\n}\n\n/**\n * Checks whether this is a redirect thrown by {@link redirect}.\n * @param {unknown} e The object to check.\n * @return {e is Redirect}\n */\nexport function isRedirect(e) {\n\treturn e instanceof Redirect;\n}\n\n/**\n * Create a JSON `Response` object from the supplied data.\n * @param {any} data The value that will be serialized as JSON.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. `Content-Type: application/json` and `Content-Length` headers will be added automatically.\n */\nexport function json(data, init) {\n\t// TODO deprecate this in favour of `Response.json` when it's\n\t// more widely supported\n\tconst body = JSON.stringify(data);\n\n\t// we can't just do `text(JSON.stringify(data), init)` because\n\t// it will set a default `content-type` header. duplicated code\n\t// means less duplicated work\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\theaders.set('content-length', encoder.encode(body).byteLength.toString());\n\t}\n\n\tif (!headers.has('content-type')) {\n\t\theaders.set('content-type', 'application/json');\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\nconst encoder = new TextEncoder();\n\n/**\n * Create a `Response` object from the supplied body.\n * @param {string} body The value that will be used as-is.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. A `Content-Length` header will be added automatically.\n */\nexport function text(body, init) {\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\tconst encoded = encoder.encode(body);\n\t\theaders.set('content-length', encoded.byteLength.toString());\n\t\treturn new Response(encoded, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @overload\n * @param {number} status\n * @returns {import('./public.js').ActionFailure<undefined>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @template {Record<string, unknown> | undefined} [T=undefined]\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {T} data Data associated with the failure (e.g. validation errors)\n * @overload\n * @param {number} status\n * @param {T} data\n * @returns {import('./public.js').ActionFailure<T>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status\n * @param {any} [data]\n * @returns {import('./public.js').ActionFailure<any>}\n */\nexport function fail(status, data) {\n\t// @ts-expect-error unique symbol missing\n\treturn new ActionFailure(status, data);\n}\n\n/**\n * Checks whether this is an action failure thrown by {@link fail}.\n * @param {unknown} e The object to check.\n * @return {e is import('./public.js').ActionFailure}\n */\nexport function isActionFailure(e) {\n\treturn e instanceof ActionFailure;\n}\n\n/**\n * Strips possible SvelteKit-internal suffixes and trailing slashes from the URL pathname.\n * Returns the normalized URL as well as a method for adding the potential suffix back\n * based on a new pathname (possibly including search) or URL.\n * ```js\n * import { normalizeUrl } from '@sveltejs/kit';\n *\n * const { url, denormalize } = normalizeUrl('/blog/post/__data.json');\n * console.log(url.pathname); // /blog/post\n * console.log(denormalize('/blog/post/a')); // /blog/post/a/__data.json\n * ```\n * @param {URL | string} url\n * @returns {{ url: URL, wasNormalized: boolean, denormalize: (url?: string | URL) => URL }}\n * @since 2.18.0\n */\nexport function normalizeUrl(url) {\n\turl = new URL(url, 'http://internal');\n\n\tconst is_route_resolution = has_resolution_suffix(url.pathname);\n\tconst is_data_request = has_data_suffix(url.pathname);\n\tconst has_trailing_slash = url.pathname !== '/' && url.pathname.endsWith('/');\n\n\tif (is_route_resolution) {\n\t\turl.pathname = strip_resolution_suffix(url.pathname);\n\t} else if (is_data_request) {\n\t\turl.pathname = strip_data_suffix(url.pathname);\n\t} else if (has_trailing_slash) {\n\t\turl.pathname = url.pathname.slice(0, -1);\n\t}\n\n\treturn {\n\t\turl,\n\t\twasNormalized: is_data_request || is_route_resolution || has_trailing_slash,\n\t\tdenormalize: (new_url = url) => {\n\t\t\tnew_url = new URL(new_url, url);\n\t\t\tif (is_route_resolution) {\n\t\t\t\tnew_url.pathname = add_resolution_suffix(new_url.pathname);\n\t\t\t} else if (is_data_request) {\n\t\t\t\tnew_url.pathname = add_data_suffix(new_url.pathname);\n\t\t\t} else if (has_trailing_slash && !new_url.pathname.endsWith('/')) {\n\t\t\t\tnew_url.pathname += '/';\n\t\t\t}\n\t\t\treturn new_url;\n\t\t}\n\t};\n}\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.0.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 { 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}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\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\";\nexport class CheckoutSessions extends APIResource {\n create(body, options) {\n return this._client.post('/checkouts', { 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 { 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","// 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 { 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}\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 {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'), ...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.webhookEvents = new API.WebhookEvents(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.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 ...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 }\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 ...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.WebhookEvents = WebhookEvents;\nDodoPayments.Products = Products;\nDodoPayments.Misc = Misc;\nDodoPayments.Discounts = Discounts;\nDodoPayments.Addons = Addons;\nDodoPayments.Brands = Brands;\nDodoPayments.Webhooks = Webhooks;\nDodoPayments.UsageEvents = UsageEvents;\nDodoPayments.Meters = Meters;\n//# sourceMappingURL=client.mjs.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { z } from \"zod\";\nimport DodoPayments from \"dodopayments\";\nexport var checkoutQuerySchema = z\n .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})\n .catchall(z.unknown());\n// Add Zod schema for dynamic checkout body\nexport var dynamicCheckoutBodySchema = z\n .object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z\n .array(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\n .array(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})\n .catchall(z.unknown());\n// ========================================\n// CHECKOUT SESSIONS SCHEMAS & TYPES\n// ========================================\n// Product cart item schema for checkout sessions\nexport var 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});\n// Customer information schema for checkout sessions\nexport var checkoutSessionCustomerSchema = z\n .object({\n email: z.string().email().optional(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional(),\n})\n .optional();\n// Billing address schema for checkout sessions\nexport var checkoutSessionBillingAddressSchema = z\n .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})\n .optional();\n// Payment method types enum based on Dodo Payments documentation\nexport var paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"google_pay\",\n \"amazon_pay\",\n \"klarna\",\n \"affirm\",\n \"afterpay_clearpay\",\n \"sepa\",\n \"ach\",\n]);\n// Customization options schema\nexport var checkoutSessionCustomizationSchema = z\n .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})\n .optional();\n// Feature flags schema\nexport var checkoutSessionFeatureFlagsSchema = z\n .object({\n allow_currency_selection: 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})\n .optional();\n// Subscription data schema\nexport var checkoutSessionSubscriptionDataSchema = z\n .object({\n trial_period_days: z.number().int().nonnegative().optional(),\n})\n .optional();\n// Main checkout session payload schema\nexport var checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z\n .array(checkoutSessionProductCartItemSchema)\n .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\n .string()\n .length(3, \"Currency must be a 3-letter ISO code\")\n .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});\n// Checkout session response schema\nexport var checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\"),\n});\n/**\n * Creates a new Dodo Payments Checkout Session using the modern /checkouts endpoint.\n * This function provides a clean, type-safe interface to the Checkout Sessions API.\n *\n * @param payload - The checkout session data, validated against CheckoutSessionPayloadSchema\n * @param config - Dodo Payments client configuration (bearerToken, environment)\n * @returns Promise<CheckoutSessionResponse> - The checkout session with session_id and checkout_url\n *\n * @throws {Error} When payload validation fails or API request fails\n *\n * @example\n * ```typescript\n * const session = await createCheckoutSession({\n * product_cart: [{ product_id: 'prod_123', quantity: 1 }],\n * customer: { email: 'customer@example.com' },\n * return_url: 'https://yoursite.com/success'\n * }, {\n * bearerToken: process.env.DODO_PAYMENTS_API_KEY,\n * environment: 'test_mode'\n * });\n *\n * ```\n */\nexport var createCheckoutSession = function (payload, config) { return __awaiter(void 0, void 0, void 0, function () {\n var validation, dodopayments, sdkPayload, session, responseValidation, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\"Invalid checkout session payload: \".concat(validation.error.issues\n .map(function (issue) { return \"\".concat(issue.path.join(\".\"), \": \").concat(issue.message); })\n .join(\", \")));\n }\n dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment,\n });\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n sdkPayload = __assign(__assign({}, validation.data), (validation.data.billing_address && {\n billing_address: __assign(__assign({}, validation.data.billing_address), { country: validation.data.billing_address.country }),\n }));\n return [4 /*yield*/, dodopayments.checkoutSessions.create(sdkPayload)];\n case 2:\n session = _a.sent();\n responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\"Invalid checkout session response from API: \".concat(responseValidation.error.issues\n .map(function (issue) { return \"\".concat(issue.path.join(\".\"), \": \").concat(issue.message); })\n .join(\", \")));\n }\n return [2 /*return*/, responseValidation.data];\n case 3:\n error_1 = _a.sent();\n if (error_1 instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error_1.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken,\n },\n });\n // Re-throw with a more user-friendly message\n throw new Error(\"Failed to create checkout session: \".concat(error_1.message));\n }\n // Handle non-Error objects\n console.error(\"Unknown error creating checkout session:\", error_1);\n throw new Error(\"Failed to create checkout session due to an unknown error\");\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexport var buildCheckoutUrl = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {\n var session, inputData, parseResult, success, data, error, _c, productId, quantity_1, fullName, firstName, lastName, email, country, addressLine, city, state, zipCode, disableFullName, disableFirstName, disableLastName, disableEmail, disableCountry, disableAddressLine, disableCity, disableState, disableZipCode, paymentCurrency, showCurrencySelector, paymentAmount, showDiscounts, dodopayments_1, err_1, url, _i, _d, _e, key, value, dyn, product_id, product_cart, quantity, billing, customer, addons, metadata, allowed_payment_method_types, billing_currency, discount_code, on_demand, bodyReturnUrl, show_saved_payment_methods, tax_id, trial_period_days, dodopayments, isSubscription, productIdToFetch, product, err_2, subscriptionPayload, subscription, err_3, cart, paymentPayload, payment, err_4;\n var queryParams = _b.queryParams, body = _b.body, sessionPayload = _b.sessionPayload, returnUrl = _b.returnUrl, bearerToken = _b.bearerToken, environment = _b.environment, _f = _b.type, type = _f === void 0 ? \"static\" : _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n if (!(type === \"session\")) return [3 /*break*/, 2];\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n return [4 /*yield*/, createCheckoutSession(sessionPayload, {\n bearerToken: bearerToken,\n environment: environment,\n })];\n case 1:\n session = _g.sent();\n return [2 /*return*/, session.checkout_url];\n case 2:\n inputData = type === \"dynamic\" ? body : queryParams;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n }\n else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n success = parseResult.success, data = parseResult.data, error = parseResult.error;\n if (!success) {\n throw new Error(\"Invalid \".concat(type === \"dynamic\" ? \"body\" : \"query parameters\", \".\\n \").concat(error.message));\n }\n if (!(type !== \"dynamic\")) return [3 /*break*/, 7];\n _c = data, productId = _c.productId, quantity_1 = _c.quantity, fullName = _c.fullName, firstName = _c.firstName, lastName = _c.lastName, email = _c.email, country = _c.country, addressLine = _c.addressLine, city = _c.city, state = _c.state, zipCode = _c.zipCode, disableFullName = _c.disableFullName, disableFirstName = _c.disableFirstName, disableLastName = _c.disableLastName, disableEmail = _c.disableEmail, disableCountry = _c.disableCountry, disableAddressLine = _c.disableAddressLine, disableCity = _c.disableCity, disableState = _c.disableState, disableZipCode = _c.disableZipCode, paymentCurrency = _c.paymentCurrency, showCurrencySelector = _c.showCurrencySelector, paymentAmount = _c.paymentAmount, showDiscounts = _c.showDiscounts;\n dodopayments_1 = new DodoPayments({\n bearerToken: bearerToken,\n environment: environment,\n });\n // Check that the product exists for this merchant\n if (!productId)\n throw new Error(\"Missing required field: productId\");\n _g.label = 3;\n case 3:\n _g.trys.push([3, 5, , 6]);\n return [4 /*yield*/, dodopayments_1.products.retrieve(productId)];\n case 4:\n _g.sent();\n return [3 /*break*/, 6];\n case 5:\n err_1 = _g.sent();\n console.error(err_1);\n throw new Error(\"Product not found\");\n case 6:\n url = new URL(\"\".concat(environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\", \"/buy/\").concat(productId));\n url.searchParams.set(\"quantity\", quantity_1 ? String(quantity_1) : \"1\");\n if (returnUrl)\n url.searchParams.set(\"redirect_url\", returnUrl);\n // Customer/billing fields\n if (fullName)\n url.searchParams.set(\"fullName\", String(fullName));\n if (firstName)\n url.searchParams.set(\"firstName\", String(firstName));\n if (lastName)\n url.searchParams.set(\"lastName\", String(lastName));\n if (email)\n url.searchParams.set(\"email\", String(email));\n if (country)\n url.searchParams.set(\"country\", String(country));\n if (addressLine)\n url.searchParams.set(\"addressLine\", String(addressLine));\n if (city)\n url.searchParams.set(\"city\", String(city));\n if (state)\n url.searchParams.set(\"state\", String(state));\n if (zipCode)\n url.searchParams.set(\"zipCode\", String(zipCode));\n // Disable flags (must be set to 'true' to disable)\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\")\n 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\")\n url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\")\n url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n // Advanced controls\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\"showCurrencySelector\", String(showCurrencySelector));\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n // Metadata: add all query params starting with metadata_\n for (_i = 0, _d = Object.entries(queryParams || {}); _i < _d.length; _i++) {\n _e = _d[_i], key = _e[0], value = _e[1];\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return [2 /*return*/, url.toString()];\n case 7:\n dyn = data;\n product_id = dyn.product_id, product_cart = dyn.product_cart, quantity = dyn.quantity, billing = dyn.billing, customer = dyn.customer, addons = dyn.addons, metadata = dyn.metadata, allowed_payment_method_types = dyn.allowed_payment_method_types, billing_currency = dyn.billing_currency, discount_code = dyn.discount_code, on_demand = dyn.on_demand, bodyReturnUrl = dyn.return_url, show_saved_payment_methods = dyn.show_saved_payment_methods, tax_id = dyn.tax_id, trial_period_days = dyn.trial_period_days;\n dodopayments = new DodoPayments({\n bearerToken: bearerToken,\n environment: environment,\n });\n isSubscription = false;\n 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(\"Missing required field: product_id or product_cart[0].product_id\");\n _g.label = 8;\n case 8:\n _g.trys.push([8, 10, , 11]);\n return [4 /*yield*/, dodopayments.products.retrieve(productIdToFetch)];\n case 9:\n product = _g.sent();\n return [3 /*break*/, 11];\n case 10:\n err_2 = _g.sent();\n console.error(err_2);\n throw new Error(\"Product not found\");\n case 11:\n isSubscription = Boolean(product.is_recurring);\n // Required field validation\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing)\n throw new Error(\"Missing required field: billing\");\n if (!customer)\n throw new Error(\"Missing required field: customer\");\n if (!isSubscription) return [3 /*break*/, 16];\n subscriptionPayload = {\n billing: billing,\n customer: customer,\n product_id: product_id,\n quantity: quantity ? Number(quantity) : 1,\n };\n if (metadata)\n subscriptionPayload.metadata = metadata;\n if (discount_code)\n subscriptionPayload.discount_code = discount_code;\n if (addons)\n subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types =\n allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand)\n subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n // Use bodyReturnUrl if present, otherwise use top-level returnUrl\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n }\n else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods =\n show_saved_payment_methods;\n if (tax_id)\n subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n subscription = void 0;\n _g.label = 12;\n case 12:\n _g.trys.push([12, 14, , 15]);\n return [4 /*yield*/, dodopayments.subscriptions.create(subscriptionPayload)];\n case 13:\n subscription =\n _g.sent();\n return [3 /*break*/, 15];\n case 14:\n err_3 = _g.sent();\n console.error(\"Error when creating subscription\", err_3);\n throw new Error(err_3 instanceof Error ? err_3.message : String(err_3));\n case 15:\n if (!subscription || !subscription.payment_link) {\n throw new Error(\"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\");\n }\n return [2 /*return*/, subscription.payment_link];\n case 16:\n cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id: 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 paymentPayload = {\n billing: billing,\n customer: customer,\n product_cart: cart,\n };\n if (metadata)\n paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types =\n allowed_payment_method_types;\n if (billing_currency)\n paymentPayload.billing_currency = billing_currency;\n if (discount_code)\n paymentPayload.discount_code = discount_code;\n // Use bodyReturnUrl if present, otherwise use top-level returnUrl\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n }\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)\n paymentPayload.tax_id = tax_id;\n payment = void 0;\n _g.label = 17;\n case 17:\n _g.trys.push([17, 19, , 20]);\n return [4 /*yield*/, dodopayments.payments.create(paymentPayload)];\n case 18:\n payment = _g.sent();\n return [3 /*break*/, 20];\n case 19:\n err_4 = _g.sent();\n console.error(\"Error when creating payment link\", err_4);\n throw new Error(err_4 instanceof Error ? err_4.message : String(err_4));\n case 20:\n if (!payment || !payment.payment_link) {\n throw new Error(\"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\");\n }\n return [2 /*return*/, payment.payment_link];\n }\n });\n}); };\n","import { error, type RequestHandler } from \"@sveltejs/kit\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\nimport {\n buildCheckoutUrl,\n type CheckoutHandlerConfig,\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionPayloadSchema,\n} from \"@dodopayments/core/checkout\";\n\nexport const Checkout = (config: CheckoutHandlerConfig) => {\n const getHandler: RequestHandler = async (event: RequestEvent) => {\n const searchParams = event.url.searchParams;\n const queryParams = Object.fromEntries(searchParams);\n\n if (!queryParams.productId) {\n throw error(400, \"Please provide productId query parameter\");\n }\n\n const {\n success,\n data,\n error: zodError,\n } = checkoutQuerySchema.safeParse(queryParams);\n\n if (!success) {\n if (zodError.errors.some((e: any) => e.path.toString() === \"productId\")) {\n throw error(400, \"Please provide productId query parameter\");\n }\n throw error(400, `Invalid query parameters.\\n ${zodError.message}`);\n }\n\n let urlStr = \"\";\n try {\n urlStr = await buildCheckoutUrl({ queryParams: data, ...config });\n } catch (err: any) {\n throw error(400, err.message);\n }\n\n return Response.json({ checkout_url: urlStr });\n };\n\n const postHandler: RequestHandler = async (event: RequestEvent) => {\n let body: any;\n try {\n body = await event.request.json();\n } catch (e) {\n throw error(400, \"Invalid JSON body\");\n }\n\n if (config.type === \"dynamic\") {\n // Handle dynamic checkout\n const {\n success,\n data,\n error: zodError,\n } = dynamicCheckoutBodySchema.safeParse(body);\n\n if (!success) {\n throw error(400, `Invalid request body.\\n ${zodError.message}`);\n }\n\n let urlStr = \"\";\n try {\n urlStr = await buildCheckoutUrl({\n body: data,\n ...config,\n type: \"dynamic\",\n });\n } catch (err: any) {\n throw error(400, err.message);\n }\n\n return Response.json({ checkout_url: urlStr });\n } else {\n // Handle checkout session\n const {\n success,\n data,\n error: zodError,\n } = checkoutSessionPayloadSchema.safeParse(body);\n\n if (!success) {\n throw error(\n 400,\n `Invalid checkout session payload.\\n ${zodError.message}`,\n );\n }\n\n let urlStr = \"\";\n try {\n urlStr = await buildCheckoutUrl({\n sessionPayload: data,\n ...config,\n type: \"session\",\n });\n } catch (err: any) {\n throw error(400, err.message);\n }\n\n return Response.json({ checkout_url: urlStr });\n }\n };\n\n // SvelteKit expects named exports for HTTP verbs\n return {\n GET: getHandler,\n POST: postHandler,\n };\n};\n","\"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","import { z } from \"zod\";\nexport var 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(function (d) { return 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\n .array(z.object({\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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\n .array(z.object({\n product_id: z.string(),\n quantity: z.number(),\n }))\n .nullable(),\n refunds: z\n .array(z.object({\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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\n .string()\n .transform(function (d) { return new Date(d); })\n .nullable(),\n});\nexport var SubscriptionSchema = z.object({\n payload_type: z.literal(\"Subscription\"),\n addons: z\n .array(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\n .string()\n .transform(function (d) { return new Date(d); })\n .nullable(),\n created_at: z.string().transform(function (d) { return 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\n .string()\n .transform(function (d) { return new Date(d); })\n .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\n .string()\n .transform(function (d) { return new Date(d); })\n .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});\nexport var RefundSchema = z.object({\n payload_type: z.literal(\"Refund\"),\n amount: z.number(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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});\nexport var DisputeSchema = z.object({\n payload_type: z.literal(\"Dispute\"),\n amount: z.string(),\n business_id: z.string(),\n created_at: z.string().transform(function (d) { return 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});\nexport var 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(function (d) { return new Date(d); }),\n customer_id: z.string(),\n expires_at: z\n .string()\n .transform(function (d) { return new Date(d); })\n .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});\nexport var PaymentSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.succeeded\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentProcessingPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.processing\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var PaymentCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"payment.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: PaymentSchema,\n});\nexport var RefundSucceededPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.succeeded\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: RefundSchema,\n});\nexport var RefundFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"refund.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: RefundSchema,\n});\nexport var DisputeOpenedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.opened\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.expired\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeAcceptedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.accepted\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeChallengedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.challenged\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeWonPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.won\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var DisputeLostPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"dispute.lost\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: DisputeSchema,\n});\nexport var SubscriptionActivePayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.active\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionOnHoldPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.on_hold\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionRenewedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.renewed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionPausedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.paused\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionPlanChangedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.plan_changed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionCancelledPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.cancelled\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionFailedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.failed\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var SubscriptionExpiredPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"subscription.expired\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: SubscriptionSchema,\n});\nexport var LicenseKeyCreatedPayloadSchema = z.object({\n business_id: z.string(),\n type: z.literal(\"license_key.created\"),\n timestamp: z.string().transform(function (d) { return new Date(d); }),\n data: LicenseKeySchema,\n});\nexport var 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 LicenseKeyCreatedPayloadSchema,\n]);\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { WebhookPayloadSchema, } from \"../schemas/webhook\";\nimport { Webhook as StandardWebhook, WebhookVerificationError, } from \"standardwebhooks\";\nexport var handleWebhookPayload = function (payload, config) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!config.onPayload) return [3 /*break*/, 2];\n return [4 /*yield*/, config.onPayload(payload)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n if (!(payload.type === \"payment.succeeded\" && config.onPaymentSucceeded)) return [3 /*break*/, 4];\n return [4 /*yield*/, config.onPaymentSucceeded(payload)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n if (!(payload.type === \"payment.failed\" && config.onPaymentFailed)) return [3 /*break*/, 6];\n return [4 /*yield*/, config.onPaymentFailed(payload)];\n case 5:\n _a.sent();\n _a.label = 6;\n case 6:\n if (!(payload.type === \"payment.processing\" && config.onPaymentProcessing)) return [3 /*break*/, 8];\n return [4 /*yield*/, config.onPaymentProcessing(payload)];\n case 7:\n _a.sent();\n _a.label = 8;\n case 8:\n if (!(payload.type === \"payment.cancelled\" && config.onPaymentCancelled)) return [3 /*break*/, 10];\n return [4 /*yield*/, config.onPaymentCancelled(payload)];\n case 9:\n _a.sent();\n _a.label = 10;\n case 10:\n if (!(payload.type === \"refund.succeeded\" && config.onRefundSucceeded)) return [3 /*break*/, 12];\n return [4 /*yield*/, config.onRefundSucceeded(payload)];\n case 11:\n _a.sent();\n _a.label = 12;\n case 12:\n if (!(payload.type === \"refund.failed\" && config.onRefundFailed)) return [3 /*break*/, 14];\n return [4 /*yield*/, config.onRefundFailed(payload)];\n case 13:\n _a.sent();\n _a.label = 14;\n case 14:\n if (!(payload.type === \"dispute.opened\" && config.onDisputeOpened)) return [3 /*break*/, 16];\n return [4 /*yield*/, config.onDisputeOpened(payload)];\n case 15:\n _a.sent();\n _a.label = 16;\n case 16:\n if (!(payload.type === \"dispute.expired\" && config.onDisputeExpired)) return [3 /*break*/, 18];\n return [4 /*yield*/, config.onDisputeExpired(payload)];\n case 17:\n _a.sent();\n _a.label = 18;\n case 18:\n if (!(payload.type === \"dispute.accepted\" && config.onDisputeAccepted)) return [3 /*break*/, 20];\n return [4 /*yield*/, config.onDisputeAccepted(payload)];\n case 19:\n _a.sent();\n _a.label = 20;\n case 20:\n if (!(payload.type === \"dispute.cancelled\" && config.onDisputeCancelled)) return [3 /*break*/, 22];\n return [4 /*yield*/, config.onDisputeCancelled(payload)];\n case 21:\n _a.sent();\n _a.label = 22;\n case 22:\n if (!(payload.type === \"dispute.challenged\" && config.onDisputeChallenged)) return [3 /*break*/, 24];\n return [4 /*yield*/, config.onDisputeChallenged(payload)];\n case 23:\n _a.sent();\n _a.label = 24;\n case 24:\n if (!(payload.type === \"dispute.won\" && config.onDisputeWon)) return [3 /*break*/, 26];\n return [4 /*yield*/, config.onDisputeWon(payload)];\n case 25:\n _a.sent();\n _a.label = 26;\n case 26:\n if (!(payload.type === \"dispute.lost\" && config.onDisputeLost)) return [3 /*break*/, 28];\n return [4 /*yield*/, config.onDisputeLost(payload)];\n case 27:\n _a.sent();\n _a.label = 28;\n case 28:\n if (!(payload.type === \"subscription.active\" && config.onSubscriptionActive)) return [3 /*break*/, 30];\n return [4 /*yield*/, config.onSubscriptionActive(payload)];\n case 29:\n _a.sent();\n _a.label = 30;\n case 30:\n if (!(payload.type === \"subscription.on_hold\" && config.onSubscriptionOnHold)) return [3 /*break*/, 32];\n return [4 /*yield*/, config.onSubscriptionOnHold(payload)];\n case 31:\n _a.sent();\n _a.label = 32;\n case 32:\n if (!(payload.type === \"subscription.renewed\" && config.onSubscriptionRenewed)) return [3 /*break*/, 34];\n return [4 /*yield*/, config.onSubscriptionRenewed(payload)];\n case 33:\n _a.sent();\n _a.label = 34;\n case 34:\n if (!(payload.type === \"subscription.paused\" && config.onSubscriptionPaused)) return [3 /*break*/, 36];\n return [4 /*yield*/, config.onSubscriptionPaused(payload)];\n case 35:\n _a.sent();\n _a.label = 36;\n case 36:\n if (!(payload.type === \"subscription.plan_changed\" &&\n config.onSubscriptionPlanChanged)) return [3 /*break*/, 38];\n return [4 /*yield*/, config.onSubscriptionPlanChanged(payload)];\n case 37:\n _a.sent();\n _a.label = 38;\n case 38:\n if (!(payload.type === \"subscription.cancelled\" &&\n config.onSubscriptionCancelled)) return [3 /*break*/, 40];\n return [4 /*yield*/, config.onSubscriptionCancelled(payload)];\n case 39:\n _a.sent();\n _a.label = 40;\n case 40:\n if (!(payload.type === \"subscription.failed\" && config.onSubscriptionFailed)) return [3 /*break*/, 42];\n return [4 /*yield*/, config.onSubscriptionFailed(payload)];\n case 41:\n _a.sent();\n _a.label = 42;\n case 42:\n if (!(payload.type === \"subscription.expired\" && config.onSubscriptionExpired)) return [3 /*break*/, 44];\n return [4 /*yield*/, config.onSubscriptionExpired(payload)];\n case 43:\n _a.sent();\n _a.label = 44;\n case 44:\n if (!(payload.type === \"license_key.created\" && config.onLicenseKeyCreated)) return [3 /*break*/, 46];\n return [4 /*yield*/, config.onLicenseKeyCreated(payload)];\n case 45:\n _a.sent();\n _a.label = 46;\n case 46: return [2 /*return*/];\n }\n });\n}); };\nexport var verifyWebhookPayload = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {\n var standardWebhook, _c, success, payload, error;\n var webhookKey = _b.webhookKey, headers = _b.headers, body = _b.body;\n return __generator(this, function (_d) {\n standardWebhook = new StandardWebhook(webhookKey);\n try {\n standardWebhook.verify(body, headers);\n }\n catch (e) {\n if (e instanceof WebhookVerificationError) {\n throw new Error(e.message);\n }\n throw e;\n }\n _c = WebhookPayloadSchema.safeParse(JSON.parse(body)), success = _c.success, payload = _c.data, error = _c.error;\n if (!success) {\n throw new Error(error.message);\n }\n return [2 /*return*/, payload];\n });\n}); };\n","import {\n Webhook as StandardWebhook,\n WebhookVerificationError,\n} from \"standardwebhooks\";\nimport {\n type WebhookHandlerConfig,\n handleWebhookPayload,\n} from \"@dodopayments/core/webhook\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\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 (event: RequestEvent) => {\n if (event.request.method !== \"POST\") {\n return new Response(\"Method not allowed. Use POST\", { status: 405 });\n }\n\n const headers = {\n \"webhook-id\": event.request.headers.get(\"webhook-id\") ?? \"\",\n \"webhook-timestamp\": event.request.headers.get(\"webhook-timestamp\") ?? \"\",\n \"webhook-signature\": event.request.headers.get(\"webhook-signature\") ?? \"\",\n };\n\n const rawBody = await event.request.text();\n\n try {\n standardWebhook.verify(rawBody, headers);\n } catch (err) {\n if (err instanceof WebhookVerificationError) {\n return new Response(err.message, { status: 401 });\n }\n\n return new Response(\"Error while verifying webhook\", {\n status: 500,\n });\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 new Response(`Error parsing webhook payload: ${error.message}`, {\n status: 400,\n });\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 new Response(null, { status: 200 });\n };\n};\n","export const VERSION = '1.53.2'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"./core.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","export let auto = false;\nexport let kind = undefined;\nexport let fetch = undefined;\nexport let Request = undefined;\nexport let Response = undefined;\nexport let Headers = undefined;\nexport let FormData = undefined;\nexport let Blob = undefined;\nexport let File = undefined;\nexport let ReadableStream = undefined;\nexport let getMultipartRequestOptions = undefined;\nexport let getDefaultAgent = undefined;\nexport let fileFromPath = undefined;\nexport let isFsReadStream = undefined;\nexport function setShims(shims, options = { auto: false }) {\n if (auto) {\n throw new Error(`you must \\`import 'dodopayments/shims/${shims.kind}'\\` before importing anything else from dodopayments`);\n }\n if (kind) {\n throw new Error(`can't \\`import 'dodopayments/shims/${shims.kind}'\\` after \\`import 'dodopayments/shims/${kind}'\\``);\n }\n auto = options.auto;\n kind = shims.kind;\n fetch = shims.fetch;\n Request = shims.Request;\n Response = shims.Response;\n Headers = shims.Headers;\n FormData = shims.FormData;\n Blob = shims.Blob;\n File = shims.File;\n ReadableStream = shims.ReadableStream;\n getMultipartRequestOptions = shims.getMultipartRequestOptions;\n getDefaultAgent = shims.getDefaultAgent;\n fileFromPath = shims.fileFromPath;\n isFsReadStream = shims.isFsReadStream;\n}\n//# sourceMappingURL=registry.mjs.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nexport class MultipartBody {\n constructor(body) {\n this.body = body;\n }\n get [Symbol.toStringTag]() {\n return 'MultipartBody';\n }\n}\n//# sourceMappingURL=MultipartBody.mjs.map","import { MultipartBody } from \"./MultipartBody.mjs\";\nexport function getRuntime({ manuallyImported } = {}) {\n const recommendation = manuallyImported ?\n `You may need to use polyfills`\n : `Add one of these imports before your first \\`import … from 'dodopayments'\\`:\n- \\`import 'dodopayments/shims/node'\\` (if you're running on Node)\n- \\`import 'dodopayments/shims/web'\\` (otherwise)\n`;\n let _fetch, _Request, _Response, _Headers;\n try {\n // @ts-ignore\n _fetch = fetch;\n // @ts-ignore\n _Request = Request;\n // @ts-ignore\n _Response = Response;\n // @ts-ignore\n _Headers = Headers;\n }\n catch (error) {\n throw new Error(`this environment is missing the following Web Fetch API type: ${error.message}. ${recommendation}`);\n }\n return {\n kind: 'web',\n fetch: _fetch,\n Request: _Request,\n Response: _Response,\n Headers: _Headers,\n FormData: \n // @ts-ignore\n typeof FormData !== 'undefined' ? FormData : (class FormData {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'FormData' is undefined. ${recommendation}`);\n }\n }),\n Blob: typeof Blob !== 'undefined' ? Blob : (class Blob {\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'Blob' is undefined. ${recommendation}`);\n }\n }),\n File: \n // @ts-ignore\n typeof File !== 'undefined' ? File : (class File {\n // @ts-ignore\n constructor() {\n throw new Error(`file uploads aren't supported in this environment yet as 'File' is undefined. ${recommendation}`);\n }\n }),\n ReadableStream: \n // @ts-ignore\n typeof ReadableStream !== 'undefined' ? ReadableStream : (class ReadableStream {\n // @ts-ignore\n constructor() {\n throw new Error(`streaming isn't supported in this environment yet as 'ReadableStream' is undefined. ${recommendation}`);\n }\n }),\n getMultipartRequestOptions: async (\n // @ts-ignore\n form, opts) => ({\n ...opts,\n body: new MultipartBody(form),\n }),\n getDefaultAgent: (url) => undefined,\n fileFromPath: () => {\n throw new Error('The `fileFromPath` function is only supported in Node. See the README for more details: https://www.github.com/dodopayments/dodopayments-node#file-uploads');\n },\n isFsReadStream: (value) => false,\n };\n}\n//# sourceMappingURL=web-runtime.mjs.map","/**\n * Disclaimer: modules in _shims aren't intended to be imported by SDK users.\n */\nimport * as shims from './registry.mjs';\nimport * as auto from 'dodopayments/_shims/auto/runtime';\nexport const init = () => {\n if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });\n};\nexport * from './registry.mjs';\n\ninit();\n","import { FormData, File, getMultipartRequestOptions, isFsReadStream, } from \"./_shims/index.mjs\";\nexport { fileFromPath } from \"./_shims/index.mjs\";\nexport const isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\nexport const isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\n/**\n * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check\n * adds the arrayBuffer() method type because it is available and used at runtime\n */\nexport const 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';\nexport const isUploadable = (value) => {\n return isFileLike(value) || isResponseLike(value) || isFsReadStream(value);\n};\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}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s\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 // 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 return value;\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop() ?? 'unknown_file');\n // we need to convert the `Blob` into an array buffer because the `Blob` class\n // that `node-fetch` defines is incompatible with the web standard which results\n // in `new File` interpreting it as a string instead of binary data.\n const data = isBlobLike(blob) ? [(await blob.arrayBuffer())] : [blob];\n return new File(data, name, options);\n }\n const bits = await getBytes(value);\n name || (name = getName(value) ?? 'unknown_file');\n if (!options?.type) {\n const type = bits[0]?.type;\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return new File(bits, 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(await value.arrayBuffer());\n }\n else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(chunk); // TODO, consider validating?\n }\n }\n else {\n throw new Error(`Unexpected data type: ${typeof value}; constructor: ${value?.constructor\n ?.name}; props: ${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n const props = Object.getOwnPropertyNames(value);\n return `[${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\nfunction getName(value) {\n return (getStringFromMaybeBuffer(value.name) ||\n getStringFromMaybeBuffer(value.filename) ||\n // For fs.ReadStream\n getStringFromMaybeBuffer(value.path)?.split(/[\\\\/]/).pop());\n}\nconst getStringFromMaybeBuffer = (x) => {\n if (typeof x === 'string')\n return x;\n if (typeof Buffer !== 'undefined' && x instanceof Buffer)\n return String(x);\n return undefined;\n};\nconst isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\nexport const isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';\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) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n const form = await createForm(opts.body);\n return getMultipartRequestOptions(form, opts);\n};\nexport const multipartFormRequestOptions = async (opts) => {\n const form = await createForm(opts.body);\n return getMultipartRequestOptions(form, opts);\n};\nexport const createForm = async (body) => {\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\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 (isUploadable(value)) {\n const file = await toFile(value);\n form.append(key, file);\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","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _APIClient_baseURLOverridden, _AbstractPage_client;\nimport { VERSION } from \"./version.mjs\";\nimport { DodoPaymentsError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, } from \"./error.mjs\";\nimport { kind as shimsKind, getDefaultAgent, fetch, init, } from \"./_shims/index.mjs\";\n// try running side effects outside of _shims/index to workaround https://github.com/vercel/next.js/issues/76881\ninit();\nimport { isBlobLike, isMultipartBody } from \"./uploads.mjs\";\nexport { maybeMultipartFormRequestOptions, multipartFormRequestOptions, createForm, } from \"./uploads.mjs\";\nasync function defaultParseResponse(props) {\n const { response } = props;\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 debug('response', response.status, response.url, response.headers, json);\n return json;\n }\n const text = await response.text();\n debug('response', response.status, response.url, response.headers, text);\n // TODO handle blob, arraybuffer, other content types, etc.\n return text;\n}\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(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 }\n _thenUnwrap(transform) {\n return new APIPromise(this.responsePromise, async (props) => transform(await this.parseResponse(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\"` if you can,\n * or add one of these imports before your first `import … from 'dodopayments'`:\n * - `import 'dodopayments/shims/node'` (if you're running on Node)\n * - `import 'dodopayments/shims/web'` (otherwise)\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 *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` if you can,\n * or add one of these imports before your first `import … from 'dodopayments'`:\n * - `import 'dodopayments/shims/node'` (if you're running on Node)\n * - `import 'dodopayments/shims/web'` (otherwise)\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(this.parseResponse);\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}\nexport class APIClient {\n constructor({ baseURL, baseURLOverridden, maxRetries = 2, timeout = 60000, // 1 minute\n httpAgent, fetch: overriddenFetch, }) {\n _APIClient_baseURLOverridden.set(this, void 0);\n this.baseURL = baseURL;\n __classPrivateFieldSet(this, _APIClient_baseURLOverridden, baseURLOverridden, \"f\");\n this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);\n this.timeout = validatePositiveInteger('timeout', timeout);\n this.httpAgent = httpAgent;\n this.fetch = overriddenFetch ?? fetch;\n }\n authHeaders(opts) {\n return {};\n }\n /**\n * Override this to add your own default headers, for example:\n *\n * {\n * ...super.defaultHeaders(),\n * Authorization: 'Bearer 123',\n * }\n */\n defaultHeaders(opts) {\n return {\n Accept: 'application/json',\n ...(['head', 'get'].includes(opts.method) ? {} : { 'Content-Type': 'application/json' }),\n 'User-Agent': this.getUserAgent(),\n ...getPlatformHeaders(),\n ...this.authHeaders(opts),\n };\n }\n /**\n * Override this to add your own headers validation:\n */\n validateHeaders(headers, customHeaders) { }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\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(async (opts) => {\n const body = opts && isBlobLike(opts?.body) ? new DataView(await opts.body.arrayBuffer())\n : opts?.body instanceof DataView ? opts.body\n : opts?.body instanceof ArrayBuffer ? new DataView(opts.body)\n : opts && ArrayBuffer.isView(opts?.body) ? new DataView(opts.body.buffer)\n : opts?.body;\n return { method, path, ...opts, body };\n }));\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n calculateContentLength(body) {\n if (typeof body === 'string') {\n if (typeof Buffer !== 'undefined') {\n return Buffer.byteLength(body, 'utf8').toString();\n }\n if (typeof TextEncoder !== 'undefined') {\n const encoder = new TextEncoder();\n const encoded = encoder.encode(body);\n return encoded.length.toString();\n }\n }\n else if (ArrayBuffer.isView(body)) {\n return body.byteLength.toString();\n }\n return null;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL, headers: headers = {} } = options;\n const body = ArrayBuffer.isView(options.body) || (options.__binaryRequest && typeof options.body === 'string') ?\n options.body\n : isMultipartBody(options.body) ? options.body.body\n : options.body ? JSON.stringify(options.body, null, 2)\n : null;\n const contentLength = this.calculateContentLength(body);\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 httpAgent = options.httpAgent ?? this.httpAgent ?? getDefaultAgent(url);\n const minAgentTimeout = options.timeout + 1000;\n if (typeof httpAgent?.options?.timeout === 'number' &&\n minAgentTimeout > (httpAgent.options.timeout ?? 0)) {\n // Allow any given request to bump our agent active socket timeout.\n // This may seem strange, but leaking active sockets should be rare and not particularly problematic,\n // and without mutating agent we would need to create more of them.\n // This tradeoff optimizes for performance.\n httpAgent.options.timeout = minAgentTimeout;\n }\n if (this.idempotencyHeader && method !== 'get') {\n if (!inputOptions.idempotencyKey)\n inputOptions.idempotencyKey = this.defaultIdempotencyKey();\n headers[this.idempotencyHeader] = inputOptions.idempotencyKey;\n }\n const reqHeaders = this.buildHeaders({ options, headers, contentLength, retryCount });\n const req = {\n method,\n ...(body && { body: body }),\n headers: reqHeaders,\n ...(httpAgent && { agent: httpAgent }),\n // @ts-ignore node-fetch uses a custom AbortSignal type that is\n // not compatible with standard web types\n signal: options.signal ?? null,\n };\n return { req, url, timeout: options.timeout };\n }\n buildHeaders({ options, headers, contentLength, retryCount, }) {\n const reqHeaders = {};\n if (contentLength) {\n reqHeaders['content-length'] = contentLength;\n }\n const defaultHeaders = this.defaultHeaders(options);\n applyHeadersMut(reqHeaders, defaultHeaders);\n applyHeadersMut(reqHeaders, headers);\n // let builtin fetch set the Content-Type for multipart bodies\n if (isMultipartBody(options.body) && shimsKind !== 'node') {\n delete reqHeaders['content-type'];\n }\n // Don't set theses headers if they were already set or removed through default headers or by the caller.\n // We check `defaultHeaders` and `headers`, which can contain nulls, instead of `reqHeaders` to account\n // for the removal case.\n if (getHeader(defaultHeaders, 'x-stainless-retry-count') === undefined &&\n getHeader(headers, 'x-stainless-retry-count') === undefined) {\n reqHeaders['x-stainless-retry-count'] = String(retryCount);\n }\n if (getHeader(defaultHeaders, 'x-stainless-timeout') === undefined &&\n getHeader(headers, 'x-stainless-timeout') === undefined &&\n options.timeout) {\n reqHeaders['x-stainless-timeout'] = String(Math.trunc(options.timeout / 1000));\n }\n this.validateHeaders(reqHeaders, headers);\n return reqHeaders;\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 parseHeaders(headers) {\n return (!headers ? {}\n : Symbol.iterator in headers ?\n Object.fromEntries(Array.from(headers).map((header) => [...header]))\n : { ...headers });\n }\n makeStatusError(status, error, message, headers) {\n return APIError.generate(status, error, message, headers);\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this.makeRequest(options, remainingRetries));\n }\n async makeRequest(optionsInput, retriesRemaining) {\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 debug('request', url, options, req.headers);\n if (options.signal?.aborted) {\n throw new APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n if (response instanceof Error) {\n if (options.signal?.aborted) {\n throw new APIUserAbortError();\n }\n if (retriesRemaining) {\n return this.retryRequest(options, retriesRemaining);\n }\n if (response.name === 'AbortError') {\n throw new APIConnectionTimeoutError();\n }\n throw new APIConnectionError({ cause: response });\n }\n const responseHeaders = createResponseHeaders(response.headers);\n if (!response.ok) {\n if (retriesRemaining && this.shouldRetry(response)) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders);\n return this.retryRequest(options, retriesRemaining, responseHeaders);\n }\n const errText = await response.text().catch((e) => castToError(e).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`;\n debug(`response (error; ${retryMessage})`, response.status, url, responseHeaders, errMessage);\n const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);\n throw err;\n }\n return { response, options, controller };\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null);\n return new PagePromise(this, request, Page);\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _APIClient_baseURLOverridden, \"f\") && 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 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 async fetchWithTimeout(url, init, ms, controller) {\n const { signal, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const fetchOptions = {\n signal: controller.signal,\n ...options,\n };\n if (fetchOptions.method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = fetchOptions.method.toUpperCase();\n }\n return (\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n this.fetch.call(undefined, url, fetchOptions).finally(() => {\n clearTimeout(timeout);\n }));\n }\n 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, 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?.['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?.['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);\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 getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n}\n_APIClient_baseURLOverridden = new WeakMap();\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.nextPageInfo() != null;\n }\n async getNextPage() {\n const nextInfo = this.nextPageInfo();\n if (!nextInfo) {\n throw new DodoPaymentsError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n const nextOptions = { ...this.options };\n if ('params' in nextInfo && typeof nextOptions.query === 'object') {\n nextOptions.query = { ...nextOptions.query, ...nextInfo.params };\n }\n else if ('url' in nextInfo) {\n const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];\n for (const [key, value] of params) {\n nextInfo.url.searchParams.set(key, value);\n }\n nextOptions.query = undefined;\n nextOptions.path = nextInfo.url.toString();\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\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(request, async (props) => new Page(client, props.response, await defaultParseResponse(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 const createResponseHeaders = (headers) => {\n return new Proxy(Object.fromEntries(\n // @ts-ignore\n headers.entries()), {\n get(target, name) {\n const key = name.toString();\n return target[key.toLowerCase()] || target[key];\n },\n });\n};\n// This is required so that we can determine if a given object matches the RequestOptions\n// type at runtime. While this requires duplication, it is enforced by the TypeScript\n// compiler such that any missing / extraneous keys will cause an error.\nconst requestOptionsKeys = {\n method: true,\n path: true,\n query: true,\n body: true,\n headers: true,\n defaultBaseURL: true,\n maxRetries: true,\n stream: true,\n timeout: true,\n httpAgent: true,\n signal: true,\n idempotencyKey: true,\n __binaryRequest: true,\n __binaryResponse: true,\n};\nexport const isRequestOptions = (obj) => {\n return (typeof obj === 'object' &&\n obj !== null &&\n !isEmptyObj(obj) &&\n Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k)));\n};\nconst getPlatformProperties = () => {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\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': process.version,\n };\n }\n // Check if Node.js\n if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(process.platform),\n 'X-Stainless-Arch': normalizeArch(process.arch),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': process.version,\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;\nconst getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nconst isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\nconst 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 castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\nexport const ensurePresent = (value) => {\n if (value == null)\n throw new DodoPaymentsError(`Expected a value to be given but received ${value} instead.`);\n return value;\n};\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 process !== 'undefined') {\n return process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof Deno !== 'undefined') {\n return Deno.env?.get?.(env)?.trim();\n }\n return undefined;\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};\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}\n/**\n * Copies headers from \"newHeaders\" onto \"targetHeaders\",\n * using lower-case for all properties,\n * ignoring any keys with undefined values,\n * and deleting any keys with null values.\n */\nfunction applyHeadersMut(targetHeaders, newHeaders) {\n for (const k in newHeaders) {\n if (!hasOwn(newHeaders, k))\n continue;\n const lowerKey = k.toLowerCase();\n if (!lowerKey)\n continue;\n const val = newHeaders[k];\n if (val === null) {\n delete targetHeaders[lowerKey];\n }\n else if (val !== undefined) {\n targetHeaders[lowerKey] = val;\n }\n }\n}\nexport function debug(action, ...args) {\n if (typeof process !== 'undefined' && process?.env?.['DEBUG'] === 'true') {\n console.log(`DodoPayments:DEBUG:${action}`, ...args);\n }\n}\n/**\n * https://stackoverflow.com/a/2117523\n */\nconst uuid4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n};\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};\nexport const isHeadersProtocol = (headers) => {\n return typeof headers?.get === 'function';\n};\nexport const getRequiredHeader = (headers, header) => {\n const foundHeader = getHeader(headers, header);\n if (foundHeader === undefined) {\n throw new Error(`Could not find ${header} header`);\n }\n return foundHeader;\n};\nexport const getHeader = (headers, header) => {\n const lowerCasedHeader = header.toLowerCase();\n if (isHeadersProtocol(headers)) {\n // to deal with the case where the header looks like Stainless-Event-Id\n const intercapsHeader = header[0]?.toUpperCase() +\n header.substring(1).replace(/([^\\w])(\\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());\n for (const key of [header, lowerCasedHeader, header.toUpperCase(), intercapsHeader]) {\n const value = headers.get(key);\n if (value) {\n return value;\n }\n }\n }\n for (const [key, value] of Object.entries(headers)) {\n if (key.toLowerCase() === lowerCasedHeader) {\n if (Array.isArray(value)) {\n if (value.length <= 1)\n return value[0];\n console.warn(`Received ${value.length} entries for the ${header} header, using the first entry.`);\n return value[0];\n }\n return value;\n }\n }\n return undefined;\n};\n/**\n * Encodes a string to Base64 format.\n */\nexport const toBase64 = (str) => {\n if (!str)\n return '';\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(str).toString('base64');\n }\n if (typeof btoa !== 'undefined') {\n return btoa(str);\n }\n throw new DodoPaymentsError('Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\n//# sourceMappingURL=core.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { AbstractPage } from \"./core.mjs\";\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 // @deprecated Please use `nextPageInfo()` instead\n nextPageParams() {\n const info = this.nextPageInfo();\n if (!info)\n return null;\n if ('params' in info)\n return info.params;\n const params = Object.fromEntries(info.url.searchParams);\n if (!Object.keys(params).length)\n return null;\n return params;\n }\n nextPageInfo() {\n const query = this.options.query;\n const currentPage = query?.page_number ?? 1;\n return { params: { page_number: currentPage + 1 } };\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 // @deprecated Please use `nextPageInfo()` instead\n nextPageParams() {\n const info = this.nextPageInfo();\n if (!info)\n return null;\n if ('params' in info)\n return info.params;\n const params = Object.fromEntries(info.url.searchParams);\n if (!Object.keys(params).length)\n return null;\n return params;\n }\n nextPageInfo() {\n const cursor = this.iterator;\n if (!cursor) {\n return null;\n }\n return {\n params: {\n iterator: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.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","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/addons/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/addons/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/addons', AddonResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n updateImages(id, options) {\n return this._client.put(`/addons/${id}/images`, options);\n }\n}\nexport class AddonResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nAddons.AddonResponsesDefaultPageNumberPagination = AddonResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=addons.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.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(`/brands/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/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(`/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 \"../resource.mjs\";\nexport class CheckoutSessions extends APIResource {\n create(body, options) {\n return this._client.post('/checkouts', { 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 \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nexport class CustomerPortal extends APIResource {\n create(customerId, params = {}, options) {\n if (isRequestOptions(params)) {\n return this.create(customerId, {}, params);\n }\n const { send_email } = params;\n return this._client.post(`/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 \"../../../resource.mjs\";\nimport { isRequestOptions } from \"../../../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../../../pagination.mjs\";\nexport class LedgerEntries extends APIResource {\n create(customerId, body, options) {\n return this._client.post(`/customers/${customerId}/wallets/ledger-entries`, { body, ...options });\n }\n list(customerId, query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list(customerId, {}, query);\n }\n return this._client.getAPIList(`/customers/${customerId}/wallets/ledger-entries`, CustomerWalletTransactionsDefaultPageNumberPagination, { query, ...options });\n }\n}\nexport class CustomerWalletTransactionsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nLedgerEntries.CustomerWalletTransactionsDefaultPageNumberPagination =\n CustomerWalletTransactionsDefaultPageNumberPagination;\n//# sourceMappingURL=ledger-entries.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../resource.mjs\";\nimport * as LedgerEntriesAPI from \"./ledger-entries.mjs\";\nimport { CustomerWalletTransactionsDefaultPageNumberPagination, LedgerEntries, } from \"./ledger-entries.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(`/customers/${customerId}/wallets`, options);\n }\n}\nWallets.LedgerEntries = LedgerEntries;\nWallets.CustomerWalletTransactionsDefaultPageNumberPagination =\n CustomerWalletTransactionsDefaultPageNumberPagination;\n//# sourceMappingURL=wallets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.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 \"../../pagination.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(`/customers/${customerId}`, options);\n }\n update(customerId, body, options) {\n return this._client.patch(`/customers/${customerId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/customers', CustomersDefaultPageNumberPagination, { query, ...options });\n }\n}\nexport class CustomersDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nCustomers.CustomersDefaultPageNumberPagination = CustomersDefaultPageNumberPagination;\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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/discounts/${discountId}`, options);\n }\n /**\n * PATCH /discounts/{discount_id}\n */\n update(discountId, body, options) {\n return this._client.patch(`/discounts/${discountId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/discounts', DiscountsDefaultPageNumberPagination, { query, ...options });\n }\n /**\n * DELETE /discounts/{discount_id}\n */\n delete(discountId, options) {\n return this._client.delete(`/discounts/${discountId}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n}\nexport class DiscountsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nDiscounts.DiscountsDefaultPageNumberPagination = DiscountsDefaultPageNumberPagination;\n//# sourceMappingURL=discounts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.mjs\";\nexport class Disputes extends APIResource {\n retrieve(disputeId, options) {\n return this._client.get(`/disputes/${disputeId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/disputes', DisputeListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class DisputeListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nDisputes.DisputeListResponsesDefaultPageNumberPagination = DisputeListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=disputes.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/events/${eventId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/events', EventsDefaultPageNumberPagination, { 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}\nexport class EventsDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nUsageEvents.EventsDefaultPageNumberPagination = EventsDefaultPageNumberPagination;\n//# sourceMappingURL=usage-events.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nexport class Payments extends APIResource {\n retrieve(paymentId, options) {\n return this._client.get(`/invoices/payments/${paymentId}`, {\n ...options,\n headers: { Accept: 'application/pdf', ...options?.headers },\n __binaryResponse: true,\n });\n }\n retrieveRefund(refundId, options) {\n return this._client.get(`/invoices/refunds/${refundId}`, {\n ...options,\n headers: { 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 \"../../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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/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(`/license_key_instances/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/license_key_instances', LicenseKeyInstancesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class LicenseKeyInstancesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nLicenseKeyInstances.LicenseKeyInstancesDefaultPageNumberPagination =\n LicenseKeyInstancesDefaultPageNumberPagination;\n//# sourceMappingURL=license-key-instances.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/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(`/license_keys/${id}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/license_keys', LicenseKeysDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class LicenseKeysDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nLicenseKeys.LicenseKeysDefaultPageNumberPagination = LicenseKeysDefaultPageNumberPagination;\n//# sourceMappingURL=license-keys.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.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: { 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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/meters/${id}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/meters', MetersDefaultPageNumberPagination, { query, ...options });\n }\n archive(id, options) {\n return this._client.delete(`/meters/${id}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n unarchive(id, options) {\n return this._client.post(`/meters/${id}/unarchive`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n}\nexport class MetersDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nMeters.MetersDefaultPageNumberPagination = MetersDefaultPageNumberPagination;\n//# sourceMappingURL=meters.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../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 \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/payments/${paymentId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/payments', PaymentListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n retrieveLineItems(paymentId, options) {\n return this._client.get(`/payments/${paymentId}/line-items`, options);\n }\n}\nexport class PaymentListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nPayments.PaymentListResponsesDefaultPageNumberPagination = PaymentListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=payments.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.mjs\";\nexport class Payouts extends APIResource {\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/payouts', PayoutListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class PayoutListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nPayouts.PayoutListResponsesDefaultPageNumberPagination = PayoutListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=payouts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nexport class Images extends APIResource {\n update(id, params = {}, options) {\n if (isRequestOptions(params)) {\n return this.update(id, {}, params);\n }\n const { force_update } = params;\n return this._client.put(`/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 \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nimport * as ImagesAPI from \"./images.mjs\";\nimport { Images } from \"./images.mjs\";\nimport { DefaultPageNumberPagination } from \"../../pagination.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(`/products/${id}`, options);\n }\n update(id, body, options) {\n return this._client.patch(`/products/${id}`, {\n body,\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/products', ProductListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n archive(id, options) {\n return this._client.delete(`/products/${id}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n unarchive(id, options) {\n return this._client.post(`/products/${id}/unarchive`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n updateFiles(id, body, options) {\n return this._client.put(`/products/${id}/files`, { body, ...options });\n }\n}\nexport class ProductListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nProducts.ProductListResponsesDefaultPageNumberPagination = ProductListResponsesDefaultPageNumberPagination;\nProducts.Images = Images;\n//# sourceMappingURL=products.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/refunds/${refundId}`, options);\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/refunds', RefundListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n}\nexport class RefundListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nRefunds.RefundListResponsesDefaultPageNumberPagination = RefundListResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=refunds.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../resource.mjs\";\nimport { isRequestOptions } from \"../core.mjs\";\nimport { DefaultPageNumberPagination } from \"../pagination.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(`/subscriptions/${subscriptionId}`, options);\n }\n update(subscriptionId, body, options) {\n return this._client.patch(`/subscriptions/${subscriptionId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/subscriptions', SubscriptionListResponsesDefaultPageNumberPagination, {\n query,\n ...options,\n });\n }\n changePlan(subscriptionId, body, options) {\n return this._client.post(`/subscriptions/${subscriptionId}/change-plan`, {\n body,\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n charge(subscriptionId, body, options) {\n return this._client.post(`/subscriptions/${subscriptionId}/charge`, { body, ...options });\n }\n retrieveUsageHistory(subscriptionId, query = {}, options) {\n if (isRequestOptions(query)) {\n return this.retrieveUsageHistory(subscriptionId, {}, query);\n }\n return this._client.getAPIList(`/subscriptions/${subscriptionId}/usage-history`, SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination, { query, ...options });\n }\n}\nexport class SubscriptionListResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nexport class SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination extends DefaultPageNumberPagination {\n}\nSubscriptions.SubscriptionListResponsesDefaultPageNumberPagination =\n SubscriptionListResponsesDefaultPageNumberPagination;\nSubscriptions.SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination =\n SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination;\n//# sourceMappingURL=subscriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nexport class Headers extends APIResource {\n /**\n * Get a webhook by id\n */\n retrieve(webhookId, options) {\n return this._client.get(`/webhooks/${webhookId}/headers`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookId, body, options) {\n return this._client.patch(`/webhooks/${webhookId}/headers`, {\n body,\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n}\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../resource.mjs\";\nimport { isRequestOptions } from \"../../core.mjs\";\nimport * as HeadersAPI from \"./headers.mjs\";\nimport { Headers } from \"./headers.mjs\";\nimport { CursorPagePagination } from \"../../pagination.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(`/webhooks/${webhookId}`, options);\n }\n /**\n * Patch a webhook by id\n */\n update(webhookId, body, options) {\n return this._client.patch(`/webhooks/${webhookId}`, { body, ...options });\n }\n list(query = {}, options) {\n if (isRequestOptions(query)) {\n return this.list({}, query);\n }\n return this._client.getAPIList('/webhooks', WebhookDetailsCursorPagePagination, { query, ...options });\n }\n /**\n * Delete a webhook by id\n */\n delete(webhookId, options) {\n return this._client.delete(`/webhooks/${webhookId}`, {\n ...options,\n headers: { Accept: '*/*', ...options?.headers },\n });\n }\n /**\n * Get webhook secret by id\n */\n retrieveSecret(webhookId, options) {\n return this._client.get(`/webhooks/${webhookId}/secret`, options);\n }\n}\nexport class WebhookDetailsCursorPagePagination extends CursorPagePagination {\n}\nWebhooks.WebhookDetailsCursorPagePagination = WebhookDetailsCursorPagePagination;\nWebhooks.Headers = Headers;\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../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.\nvar _DodoPayments_instances, _a, _DodoPayments_baseURLOverridden;\nimport * as Core from \"./core.mjs\";\nimport * as Errors from \"./error.mjs\";\nimport * as Pagination from \"./pagination.mjs\";\nimport * as Uploads from \"./uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { AddonResponsesDefaultPageNumberPagination, Addons, } from \"./resources/addons.mjs\";\nimport { Brands, } from \"./resources/brands.mjs\";\nimport { CheckoutSessions, } from \"./resources/checkout-sessions.mjs\";\nimport { Discounts, DiscountsDefaultPageNumberPagination, } from \"./resources/discounts.mjs\";\nimport { DisputeListResponsesDefaultPageNumberPagination, Disputes, } from \"./resources/disputes.mjs\";\nimport { LicenseKeyInstances, LicenseKeyInstancesDefaultPageNumberPagination, } from \"./resources/license-key-instances.mjs\";\nimport { LicenseKeys, LicenseKeysDefaultPageNumberPagination, } from \"./resources/license-keys.mjs\";\nimport { Licenses, } from \"./resources/licenses.mjs\";\nimport { Meters, MetersDefaultPageNumberPagination, } from \"./resources/meters.mjs\";\nimport { Misc, } from \"./resources/misc.mjs\";\nimport { PaymentListResponsesDefaultPageNumberPagination, Payments, } from \"./resources/payments.mjs\";\nimport { PayoutListResponsesDefaultPageNumberPagination, Payouts, } from \"./resources/payouts.mjs\";\nimport { RefundListResponsesDefaultPageNumberPagination, Refunds, } from \"./resources/refunds.mjs\";\nimport { SubscriptionListResponsesDefaultPageNumberPagination, SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination, Subscriptions, } from \"./resources/subscriptions.mjs\";\nimport { EventsDefaultPageNumberPagination, UsageEvents, } from \"./resources/usage-events.mjs\";\nimport { WebhookEvents } from \"./resources/webhook-events.mjs\";\nimport { Customers, CustomersDefaultPageNumberPagination, } from \"./resources/customers/customers.mjs\";\nimport { Invoices } from \"./resources/invoices/invoices.mjs\";\nimport { ProductListResponsesDefaultPageNumberPagination, Products, } from \"./resources/products/products.mjs\";\nimport { WebhookDetailsCursorPagePagination, Webhooks, } from \"./resources/webhooks/webhooks.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 extends Core.APIClient {\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 {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 {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.\n * @param {Core.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 {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.\n */\n constructor({ baseURL = Core.readEnv('DODO_PAYMENTS_BASE_URL'), bearerToken = Core.readEnv('DODO_PAYMENTS_API_KEY'), ...opts } = {}) {\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 ...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 super({\n baseURL: options.baseURL || environments[options.environment || 'live_mode'],\n baseURLOverridden: baseURL ? baseURL !== environments[options.environment || 'live_mode'] : false,\n timeout: options.timeout ?? 60000 /* 1 minute */,\n httpAgent: options.httpAgent,\n maxRetries: options.maxRetries,\n fetch: options.fetch,\n });\n _DodoPayments_instances.add(this);\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.webhookEvents = new API.WebhookEvents(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.usageEvents = new API.UsageEvents(this);\n this.meters = new API.Meters(this);\n this._options = options;\n this.bearerToken = bearerToken;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n defaultHeaders(opts) {\n return {\n ...super.defaultHeaders(opts),\n ...this._options.defaultHeaders,\n };\n }\n authHeaders(opts) {\n return { Authorization: `Bearer ${this.bearerToken}` };\n }\n}\n_a = DodoPayments, _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.fileFromPath = Uploads.fileFromPath;\nDodoPayments.CheckoutSessions = CheckoutSessions;\nDodoPayments.Payments = Payments;\nDodoPayments.PaymentListResponsesDefaultPageNumberPagination =\n PaymentListResponsesDefaultPageNumberPagination;\nDodoPayments.Subscriptions = Subscriptions;\nDodoPayments.SubscriptionListResponsesDefaultPageNumberPagination =\n SubscriptionListResponsesDefaultPageNumberPagination;\nDodoPayments.SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination =\n SubscriptionRetrieveUsageHistoryResponsesDefaultPageNumberPagination;\nDodoPayments.Invoices = Invoices;\nDodoPayments.Licenses = Licenses;\nDodoPayments.LicenseKeys = LicenseKeys;\nDodoPayments.LicenseKeysDefaultPageNumberPagination = LicenseKeysDefaultPageNumberPagination;\nDodoPayments.LicenseKeyInstances = LicenseKeyInstances;\nDodoPayments.LicenseKeyInstancesDefaultPageNumberPagination = LicenseKeyInstancesDefaultPageNumberPagination;\nDodoPayments.Customers = Customers;\nDodoPayments.CustomersDefaultPageNumberPagination = CustomersDefaultPageNumberPagination;\nDodoPayments.Refunds = Refunds;\nDodoPayments.RefundListResponsesDefaultPageNumberPagination = RefundListResponsesDefaultPageNumberPagination;\nDodoPayments.Disputes = Disputes;\nDodoPayments.DisputeListResponsesDefaultPageNumberPagination =\n DisputeListResponsesDefaultPageNumberPagination;\nDodoPayments.Payouts = Payouts;\nDodoPayments.PayoutListResponsesDefaultPageNumberPagination = PayoutListResponsesDefaultPageNumberPagination;\nDodoPayments.WebhookEvents = WebhookEvents;\nDodoPayments.Products = Products;\nDodoPayments.ProductListResponsesDefaultPageNumberPagination =\n ProductListResponsesDefaultPageNumberPagination;\nDodoPayments.Misc = Misc;\nDodoPayments.Discounts = Discounts;\nDodoPayments.DiscountsDefaultPageNumberPagination = DiscountsDefaultPageNumberPagination;\nDodoPayments.Addons = Addons;\nDodoPayments.AddonResponsesDefaultPageNumberPagination = AddonResponsesDefaultPageNumberPagination;\nDodoPayments.Brands = Brands;\nDodoPayments.Webhooks = Webhooks;\nDodoPayments.WebhookDetailsCursorPagePagination = WebhookDetailsCursorPagePagination;\nDodoPayments.UsageEvents = UsageEvents;\nDodoPayments.EventsDefaultPageNumberPagination = EventsDefaultPageNumberPagination;\nDodoPayments.Meters = Meters;\nDodoPayments.MetersDefaultPageNumberPagination = MetersDefaultPageNumberPagination;\nexport { toFile, fileFromPath } from \"./uploads.mjs\";\nexport { DodoPaymentsError, APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, NotFoundError, ConflictError, RateLimitError, BadRequestError, AuthenticationError, InternalServerError, PermissionDeniedError, UnprocessableEntityError, } from \"./error.mjs\";\nexport default DodoPayments;\n//# sourceMappingURL=index.mjs.map","import { redirect, error, type RequestHandler } from \"@sveltejs/kit\";\nimport type { RequestEvent } from \"@sveltejs/kit\";\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: RequestHandler = async (event: RequestEvent) => {\n const searchParams = event.url.searchParams;\n const customerId = searchParams.get(\"customer_id\");\n const params: { send_email?: boolean } = { send_email: false };\n const sendEmail = searchParams.get(\"send_email\");\n if (sendEmail === \"true\") {\n params.send_email = true;\n }\n if (!customerId) {\n throw error(400, \"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 new Response(null, {\n status: 302,\n headers: { Location: session.link },\n });\n } catch (err: any) {\n console.error(\"Error creating customer portal session:\", err);\n throw error(\n 500,\n `Failed to create customer portal session: ${err.message}`,\n );\n }\n };\n\n // SvelteKit expects named exports for HTTP verbs\n return {\n GET: getHandler,\n };\n};\n"],"names":["__classPrivateFieldSet","__classPrivateFieldGet","uuid4","castToError","DodoPaymentsError","APIConnectionError","BadRequestError","AuthenticationError","PermissionDeniedError","NotFoundError","ConflictError","UnprocessableEntityError","RateLimitError","InternalServerError","APIError","startsWithSchemeRegexp","isAbsoluteURL","isEmptyObj","hasOwn","validatePositiveInteger","safeJSON","sleep","VERSION","getPlatformProperties","normalizePlatform","normalizeArch","getBrowserInfo","_platformHeaders","getPlatformHeaders","defaultParseResponse","_AbstractPage_client","APIPromise","AbstractPage","getName","isBlobLike","isFileLike","isResponseLike","toFile","getBytes","propsForError","APIResource","DefaultPageNumberPagination","LedgerEntriesAPI.LedgerEntries","Wallets","LedgerEntries","CustomerPortalAPI.CustomerPortal","WalletsAPI.Wallets","Customers","CustomerPortal","PaymentsAPI.Payments","Invoices","Payments","ImagesAPI.Images","Products","Images","HeadersAPI.Headers","CursorPagePagination","Webhooks","Headers","readEnv","_DodoPayments_instances","_a","environments","API.CheckoutSessions","API.Payments","API.Subscriptions","API.Invoices","API.Licenses","API.LicenseKeys","API.LicenseKeyInstances","API.Customers","API.Refunds","API.Disputes","API.Payouts","API.WebhookEvents","API.Products","API.Misc","API.Discounts","API.Addons","API.Brands","API.Webhooks","API.UsageEvents","API.Meters","Errors.DodoPaymentsError","Shims.getDefaultFetch","Opts.FallbackEncoder","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","DodoPayments","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Uploads.toFile","CheckoutSessions","Subscriptions","Licenses","LicenseKeys","LicenseKeyInstances","Refunds","Disputes","Payouts","WebhookEvents","Misc","Discounts","Addons","Brands","UsageEvents","Meters","this","__awaiter","__generator","base64","require$$0","require$$1","require$$2","StandardWebhook","WebhookVerificationError","fetch","File","shims.kind","shims.setShims","auto.getRuntime","shimsKind","Core.APIClient","Core.readEnv","Uploads.fileFromPath"],"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,53,54,55,56,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96]}