@marcohefti/request-network-api-client 0.5.0 → 0.5.5

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/errors/request-api.error.ts","../../src/core/http/retry.policy.ts","../../src/validation/schema.registry.ts","../../src/validation/zod.helpers.ts","../../src/core/http/http.types.ts","../../src/core/auth/credential-header.builder.ts","../../src/core/http/adapters/adapter.utils.ts","../../src/core/http/adapters/node-fetch.adapter.ts","../../src/core/http/interceptors/logger.utils.ts","../../src/core/http/interceptors/logging.interceptor.ts","../../src/core/http/interceptors/retry.interceptor.ts","../../src/core/http/validation.config.ts","../../src/core/http/client.factory.ts","../../src/core/http/adapters/browser-fetch.adapter.ts","../../src/domains/client-ids/index.ts","../../src/core/http/operation.helper.ts","../../src/core/http/path.builder.ts","../../src/domains/client-ids/client-ids.facade.ts","../../src/validation/generated/groups/client-ids.schemas.generated.ts","../../src/domains/currencies/index.ts","../../src/validation/generated/groups/currencies.schemas.generated.ts","../../src/domains/currencies/currencies.schemas.ts","../../src/domains/currencies/v1/index.ts","../../src/domains/currencies/v1/currencies.v1.schemas.ts","../../src/domains/currencies/v1/currencies.v1.facade.ts","../../src/domains/currencies/currencies.facade.ts","../../src/domains/pay/index.ts","../../src/domains/pay/v1/index.ts","../../src/domains/pay/v1/pay.v1.facade.ts","../../src/validation/generated/groups/pay.schemas.generated.ts","../../src/domains/pay/pay.facade.ts","../../src/domains/payer/index.ts","../../src/domains/payer/v1/index.ts","../../src/domains/payer/v1/payer.v1.facade.ts","../../src/validation/generated/groups/payer.schemas.generated.ts","../../src/domains/payer/v2/index.ts","../../src/domains/payer/v2/payer.v2.facade.ts","../../src/domains/payer/payer.facade.ts","../../src/domains/payments/index.ts","../../src/validation/generated/groups/v2/payments.schemas.generated.ts","../../src/domains/payments/payments.schemas.ts","../../src/domains/requests/request.helpers.ts","../../src/domains/payments/payments.facade.ts","../../src/domains/payouts/index.ts","../../src/domains/payouts/payouts.facade.ts","../../src/domains/requests/index.ts","../../src/domains/requests/requests.facade.ts","../../src/validation/generated/groups/request.schemas.generated.ts","../../src/validation/overrides/request-status.schema.ts","../../src/validation/overrides/request-payment-routes.schema.ts","../../src/request.client.ts","../../src/core/config/request-environment.config.ts","../../src/domains/requests/v1/index.ts","../../src/domains/requests/v1/requests.v1.facade.ts","../../src/webhooks/index.ts","../../src/webhooks/errors.webhook.ts","../../src/webhooks/headers.webhook.ts","../../src/webhooks/signature.webhook.ts","../../src/webhooks/schemas.webhook.ts","../../src/webhooks/parser.webhook.ts","../../src/webhooks/dispatcher.webhook.ts","../../src/webhooks/testing.webhook.ts","../../src/webhooks/middleware.webhook.ts","../../src/webhooks/events/index.ts","../../src/webhooks/events/base.event.ts","../../src/webhooks/events/payment-confirmed.event.ts","../../src/webhooks/events/payment-failed.event.ts","../../src/webhooks/events/payment-processing.event.ts","../../src/webhooks/events/payment-detail-updated.event.ts","../../src/webhooks/events/compliance-updated.event.ts","../../src/webhooks/events/payment-partial.event.ts","../../src/webhooks/events/payment-refunded.event.ts","../../src/webhooks/events/request-recurring.event.ts"],"names":["ErrorDetailSchema","z","ErrorEnvelopeSchema","CONVERSION_ROUTES_SEGMENT","DESCRIPTION_LIST","DESCRIPTION_CONVERSION_ROUTES","toQuery","v1_exports","OP_CREATE_COMPLIANCE","OP_GET_STATUS","OP_UPDATE_STATUS","OP_CREATE_PAYMENT_DETAILS","OP_GET_PAYMENT_DETAILS","OP_CREATE","OP_PAYMENT_ROUTES","OP_PAYMENT_CALLDATA","OP_REQUEST_STATUS","OP_SEND_PAYMENT_INTENT","KIND_CALLDATA","KIND_PAYMENT_INTENT","isPaymentIntentPayload","isCalldataPayload","normaliseHeaders","Buffer","toBuffer","createHmac","COMPLIANCE_AGREEMENT_STATUSES","COMPLIANCE_KYC_STATUSES","PAYMENT_DETAIL_STATUSES","PAYMENT_FAILED_SUB_STATUSES"],"mappings":"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","file":"index.js","sourcesContent":["export interface RequestErrorSource {\n pointer?: string;\n parameter?: string;\n}\n\nexport interface RequestErrorDetail {\n message: string;\n code?: string;\n field?: string;\n source?: RequestErrorSource;\n meta?: Record<string, unknown>;\n}\n\nexport interface RequestErrorMetadata {\n status: number;\n code: string;\n message: string;\n detail?: unknown;\n errors?: RequestErrorDetail[];\n requestId?: string;\n correlationId?: string;\n retryAfterMs?: number;\n headers?: Record<string, string | undefined>;\n meta?: Record<string, unknown>;\n cause?: unknown;\n}\n\nconst REQUEST_ERROR_NAME = \"RequestApiError\";\n\nexport class RequestApiError extends Error {\n public readonly status: number;\n public readonly code: string;\n public readonly detail?: unknown;\n public readonly errors?: RequestErrorDetail[];\n public readonly requestId?: string;\n public readonly correlationId?: string;\n public readonly retryAfterMs?: number;\n public readonly headers?: Record<string, string | undefined>;\n public readonly meta?: Record<string, unknown>;\n\n constructor(metadata: RequestErrorMetadata) {\n super(metadata.message, { cause: metadata.cause });\n this.name = REQUEST_ERROR_NAME;\n this.status = metadata.status;\n this.code = metadata.code;\n this.detail = metadata.detail;\n this.errors = metadata.errors;\n this.requestId = metadata.requestId;\n this.correlationId = metadata.correlationId;\n this.retryAfterMs = metadata.retryAfterMs;\n this.headers = metadata.headers;\n this.meta = metadata.meta;\n }\n\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n code: this.code,\n detail: this.detail,\n errors: this.errors,\n requestId: this.requestId,\n correlationId: this.correlationId,\n retryAfterMs: this.retryAfterMs,\n headers: this.headers,\n meta: this.meta,\n };\n }\n}\n\nexport const REQUEST_ID_HEADER = \"x-request-id\";\nexport const CORRELATION_ID_HEADER = \"x-correlation-id\";\nexport const RETRY_AFTER_HEADER = \"retry-after\";\n\nexport interface ErrorHeaderLookup {\n get(name: string): string | undefined;\n}\n\nexport type HeaderLike = Record<string, string | undefined> | ErrorHeaderLookup | undefined;\n\nexport function normaliseHeaders(headers: HeaderLike): Record<string, string | undefined> | undefined {\n if (!headers) {\n return undefined;\n }\n\n if (typeof (headers as ErrorHeaderLookup).get === \"function\") {\n const lookup = headers as ErrorHeaderLookup;\n return {\n [REQUEST_ID_HEADER]: lookup.get(REQUEST_ID_HEADER),\n [CORRELATION_ID_HEADER]: lookup.get(CORRELATION_ID_HEADER),\n [RETRY_AFTER_HEADER]: lookup.get(RETRY_AFTER_HEADER),\n };\n }\n\n return {\n [REQUEST_ID_HEADER]: (headers as Record<string, string | undefined>)[REQUEST_ID_HEADER],\n [CORRELATION_ID_HEADER]: (headers as Record<string, string | undefined>)[CORRELATION_ID_HEADER],\n [RETRY_AFTER_HEADER]: (headers as Record<string, string | undefined>)[RETRY_AFTER_HEADER],\n };\n}\n\nexport interface ErrorPayloadLike {\n status?: number;\n code?: string;\n message?: string;\n detail?: unknown;\n errors?: unknown;\n [key: string]: unknown;\n}\n\nexport function parseRetryAfter(headerValue?: string): number | undefined {\n if (!headerValue) {\n return undefined;\n }\n\n const numeric = Number(headerValue);\n if (!Number.isNaN(numeric)) {\n return numeric * 1000;\n }\n\n const parsedDate = Date.parse(headerValue);\n if (Number.isNaN(parsedDate)) {\n return undefined;\n }\n\n const delay = parsedDate - Date.now();\n return delay > 0 ? delay : 0;\n}\n\nexport interface BuildRequestApiErrorOptions {\n payload?: ErrorPayloadLike | null;\n status: number;\n headers?: HeaderLike;\n fallbackMessage?: string;\n meta?: Record<string, unknown>;\n cause?: unknown;\n}\n\nexport function buildRequestApiError(options: BuildRequestApiErrorOptions): RequestApiError {\n const { payload, status, headers, fallbackMessage, meta, cause } = options;\n const normalisedHeaders = normaliseHeaders(headers);\n const retryAfterHeader = normalisedHeaders?.[RETRY_AFTER_HEADER];\n const retryAfterMs = parseRetryAfter(retryAfterHeader);\n\n const code = typeof payload?.code === \"string\" && payload.code.length > 0 ? payload.code : `HTTP_${String(status)}`;\n const message = typeof payload?.message === \"string\" && payload.message.length > 0 ? payload.message : fallbackMessage ?? \"Request Network API error\";\n\n const maybeErrors = Array.isArray(payload?.errors) ? (payload.errors as unknown[]) : undefined;\n const errors = maybeErrors?.filter(Boolean) as RequestErrorDetail[] | undefined;\n\n return new RequestApiError({\n status,\n code,\n message,\n detail: payload?.detail,\n errors,\n requestId: normalisedHeaders?.[REQUEST_ID_HEADER],\n correlationId: normalisedHeaders?.[CORRELATION_ID_HEADER],\n retryAfterMs,\n headers: normalisedHeaders,\n meta,\n cause,\n });\n}\n\nexport function isRequestApiError(error: unknown): error is RequestApiError {\n return error instanceof RequestApiError || (typeof error === \"object\" && error !== null && (error as { name?: string }).name === REQUEST_ERROR_NAME);\n}\n","import { isRequestApiError } from \"../errors/request-api.error\";\n\nexport type RetryJitter = \"none\" | \"full\" | \"half\";\n\nexport interface RetryConfig {\n /**\n * Maximum attempts including the first request.\n * Set to 1 to disable retries.\n */\n maxAttempts: number;\n /**\n * Delay applied to the first retry attempt.\n */\n initialDelayMs: number;\n /**\n * Upper bound for calculated backoff delays.\n */\n maxDelayMs: number;\n /**\n * Multiplicative factor applied on each retry (exponential backoff).\n */\n backoffFactor: number;\n /**\n * Jitter strategy applied to the computed delay.\n */\n jitter: RetryJitter;\n /**\n * Predicate deciding if a retry should occur for the provided status code.\n * When specified, supersedes {@link retryStatusCodes}.\n */\n shouldRetry?: (context: RetryDecisionInput) => boolean;\n /**\n * HTTP status codes that are eligible for retries (when `shouldRetry` is not supplied).\n */\n retryStatusCodes: number[];\n /**\n * Methods considered for retries (enforced by the interceptor). Defaults to idempotent methods.\n */\n allowedMethods?: string[];\n}\n\nexport interface RetryDecisionInput {\n attempt: number;\n response?: RetryResponseLike;\n error?: unknown;\n}\n\nexport interface RetryResponseLike {\n status: number;\n headers?: Record<string, string | undefined>;\n /**\n * Optional retry-after header value for transport adapters that expose parsed metadata.\n */\n retryAfterMs?: number;\n}\n\nexport interface RetryDecision {\n retry: boolean;\n delayMs?: number;\n reason?: string;\n}\n\nexport const DEFAULT_RETRY_CONFIG: RetryConfig = {\n maxAttempts: 3,\n initialDelayMs: 250,\n maxDelayMs: 5_000,\n backoffFactor: 2,\n jitter: \"full\",\n retryStatusCodes: [408, 425, 429, 500, 502, 503, 504],\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"],\n};\n\nexport function shouldRetryRequest(config: RetryConfig, input: RetryDecisionInput): RetryDecision {\n if (config.maxAttempts <= 1) {\n return { retry: false, reason: \"retries-disabled\" };\n }\n\n if (input.attempt >= config.maxAttempts) {\n return { retry: false, reason: \"max-attempts-exceeded\" };\n }\n\n if (config.shouldRetry) {\n const decision = config.shouldRetry(input);\n if (!decision) {\n return { retry: false, reason: \"predicate-declined\" };\n }\n } else {\n const statusFromError = isRequestApiError(input.error) ? input.error.status : undefined;\n const status = input.response?.status ?? statusFromError;\n if (typeof status !== \"number\" || !config.retryStatusCodes.includes(status)) {\n return { retry: false, reason: \"status-not-retriable\" };\n }\n }\n\n const delay = computeRetryDelay(config, input);\n return { retry: true, delayMs: delay, reason: \"retry-scheduled\" };\n}\n\nexport function computeRetryDelay(config: RetryConfig, input: RetryDecisionInput): number {\n const retryAfter = input.response?.retryAfterMs ?? extractRetryAfterFromError(input.error);\n if (retryAfter !== undefined && retryAfter >= 0) {\n return clampDelay(retryAfter, config.maxDelayMs);\n }\n\n const attemptIndex = input.attempt - 1;\n const exponential = config.initialDelayMs * Math.pow(config.backoffFactor, attemptIndex);\n const jittered = applyJitter(exponential, config.jitter);\n return clampDelay(jittered, config.maxDelayMs);\n}\n\ninterface HasRetryAfter {\n retryAfterMs?: unknown;\n}\n\nfunction hasRetryAfter(x: unknown): x is HasRetryAfter {\n return typeof x === \"object\" && x !== null && \"retryAfterMs\" in (x as HasRetryAfter);\n}\n\nfunction extractRetryAfterFromError(err: unknown): number | undefined {\n if (isRequestApiError(err)) {\n return err.retryAfterMs;\n }\n if (hasRetryAfter(err) && typeof err.retryAfterMs === \"number\") {\n return err.retryAfterMs;\n }\n return undefined;\n}\n\nfunction clampDelay(delay: number, maxDelay: number): number {\n if (delay < 0) {\n return 0;\n }\n return delay > maxDelay ? maxDelay : delay;\n}\n\nfunction applyJitter(delay: number, jitter: RetryJitter): number {\n if (delay <= 0) {\n return 0;\n }\n\n switch (jitter) {\n case \"none\": {\n return delay;\n }\n case \"half\": {\n const min = delay / 2;\n return randomInRange(min, delay);\n }\n case \"full\":\n default: {\n return randomInRange(0, delay);\n }\n }\n}\n\nfunction randomInRange(min: number, max: number): number {\n if (min >= max) {\n return min;\n }\n return min + Math.random() * (max - min);\n}\n","import type { ZodTypeAny } from \"zod\";\n\nexport type SchemaKind = \"request\" | \"response\" | \"webhook\";\n\nexport interface SchemaKey {\n operationId: string;\n kind: SchemaKind;\n variant?: string;\n status?: number;\n}\n\nexport interface SchemaEntry<TSchema extends ZodTypeAny = ZodTypeAny> {\n key: SchemaKey;\n schema: TSchema;\n}\n\nfunction serialiseKey(key: SchemaKey): string {\n const variant = key.variant ?? \"default\";\n const status = key.status?.toString() ?? \"any\";\n return `${key.operationId}|${key.kind}|${variant}|${status}`;\n}\n\n/**\n * Lightweight registry that associates OpenAPI operation IDs with validation schemas.\n * Generators can populate this map while domain modules retrieve the schemas at runtime.\n */\nexport class SchemaRegistry {\n private readonly store = new Map<string, SchemaEntry>();\n\n register(entry: SchemaEntry): void {\n const id = serialiseKey(entry.key);\n this.store.set(id, entry);\n }\n\n get(key: SchemaKey): ZodTypeAny | undefined {\n const id = serialiseKey(key);\n return this.store.get(id)?.schema;\n }\n\n /**\n * Removes every registered schema — primarily useful in tests.\n */\n clear(): void {\n this.store.clear();\n }\n}\n\nexport const schemaRegistry = new SchemaRegistry();\n","import { type SafeParseReturnType, type ZodTypeAny } from \"zod\";\n\nimport type { SchemaKey } from \"./schema.registry\";\nimport { schemaRegistry } from \"./schema.registry\";\n\nexport type SchemaOutput<TSchema extends ZodTypeAny> = TSchema[\"_output\"];\n\nexport interface ParseWithSchemaOptions<TSchema extends ZodTypeAny> {\n schema: TSchema;\n value: unknown;\n description?: string;\n}\n\nexport interface ParseRegistryOptions {\n key: SchemaKey;\n value: unknown;\n description?: string;\n skipOnMissingSchema?: boolean;\n}\n\nexport interface ParseResult<T> {\n success: boolean;\n data?: T;\n error?: unknown;\n}\n\nexport class ValidationError extends Error {\n constructor(message: string, readonly cause?: unknown) {\n super(message, { cause });\n this.name = \"ClientValidationError\";\n }\n}\n\nexport function parseWithSchema<TSchema extends ZodTypeAny>(\n options: ParseWithSchemaOptions<TSchema>,\n): ParseResult<SchemaOutput<TSchema>> {\n const { schema, value, description } = options;\n const outcome: SafeParseReturnType<unknown, SchemaOutput<TSchema>> = schema.safeParse(value);\n if (outcome.success) {\n return { success: true, data: outcome.data };\n }\n\n const error = new ValidationError(description ?? \"Validation failed\", outcome.error);\n return { success: false, error };\n}\n\nexport function parseWithRegistry<TSchema extends ZodTypeAny>(options: ParseRegistryOptions): ParseResult<SchemaOutput<TSchema>> {\n const schema = schemaRegistry.get(options.key) as TSchema | undefined;\n if (!schema) {\n if (options.skipOnMissingSchema) {\n return { success: true, data: options.value as SchemaOutput<TSchema> };\n }\n return { success: false, error: new ValidationError(`No schema registered for ${options.key.operationId}`) };\n }\n\n return parseWithSchema({ schema, value: options.value, description: options.description });\n}\n","export type HttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\" | \"HEAD\" | \"OPTIONS\";\n\nimport type { RetryConfig } from \"./retry.policy\";\n\nexport interface RuntimeValidationConfig {\n requests: boolean;\n responses: boolean;\n errors: boolean;\n}\n\nexport type RuntimeValidationOption = boolean | Partial<RuntimeValidationConfig>;\n\nexport type QueryPrimitive = string | number | boolean;\nexport type QueryValue = QueryPrimitive | QueryPrimitive[];\nexport type QueryRecord = Record<string, QueryValue | undefined>;\nexport type QuerySerializerFn = (params: {\n key: string;\n value: QueryValue;\n set: (key: string, value: string) => void;\n append: (key: string, value: string) => void;\n}) => void;\nexport type QuerySerializer = \"comma\" | \"repeat\" | QuerySerializerFn;\nexport type LogLevel = \"silent\" | \"error\" | \"info\" | \"debug\";\n\nexport interface HttpRequest {\n method: HttpMethod;\n url: string;\n headers?: Record<string, string>;\n body?: unknown;\n signal?: AbortSignal;\n timeoutMs?: number;\n meta?: {\n operationId?: string;\n retry?: Partial<RetryConfig>;\n interceptors?: Interceptor[];\n validation?: RuntimeValidationOption;\n [key: string]: unknown;\n };\n}\n\nexport interface HttpResponse {\n status: number;\n ok: boolean;\n headers: Record<string, string>;\n data?: unknown;\n text?: string;\n}\n\nexport interface HttpAdapter {\n send(request: HttpRequest): Promise<HttpResponse>;\n}\n\nexport type NextHandler = (req: HttpRequest) => Promise<HttpResponse>;\nexport type Interceptor = (req: HttpRequest, next: NextHandler) => Promise<HttpResponse>;\n\nexport interface RequestOptions {\n path: string;\n method: HttpMethod;\n query?: QueryRecord;\n querySerializer?: QuerySerializer;\n headers?: Record<string, string>;\n body?: unknown;\n signal?: AbortSignal;\n timeoutMs?: number;\n meta?: HttpRequest[\"meta\"];\n}\n\nexport interface RetryOptions {\n attempt: number;\n}\n\nexport interface Logger {\n (event: string, meta?: Record<string, unknown>): void;\n}\n\nexport interface HttpClientConfig {\n baseUrl: string;\n defaultHeaders?: Record<string, string>;\n adapter: HttpAdapter;\n interceptors?: Interceptor[];\n logger?: Logger;\n querySerializer?: QuerySerializer;\n logLevel?: LogLevel;\n}\n\nexport interface HttpClient {\n request(options: RequestOptions): Promise<{ status: number; headers: Record<string, string>; data: unknown }>; // throws on non-2xx\n get(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n post(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n put(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n patch(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n delete(path: string, init?: Omit<RequestOptions, \"path\" | \"method\"> & { body?: unknown }): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n head(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n options(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n getRuntimeValidationConfig(): RuntimeValidationConfig;\n}\n\nfunction toQueryItems(value: QueryValue): string[] {\n const items = Array.isArray(value) ? value : [value];\n return items.map((item) => String(item));\n}\n\nfunction resolveQuerySerializer(serializer?: QuerySerializer): QuerySerializerFn {\n if (!serializer || serializer === \"comma\") {\n return ({ key, value, set }) => {\n const joined = toQueryItems(value).join(\",\");\n set(key, joined);\n };\n }\n if (serializer === \"repeat\") {\n return ({ key, value, append }) => {\n const items = toQueryItems(value);\n for (const item of items) {\n append(key, item);\n }\n };\n }\n return serializer;\n}\n\nexport function buildUrl(baseUrl: string, path: string, query?: RequestOptions[\"query\"], serializer?: QuerySerializer): string {\n const base = baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n const url = new URL(base + cleanPath);\n\n if (!query) return url.toString();\n\n const serialize = resolveQuerySerializer(serializer);\n const params = url.searchParams;\n\n for (const key of Object.keys(query)) {\n const raw = query[key];\n if (raw === undefined) continue;\n serialize({\n key,\n value: raw,\n set: (k, value) => {\n params.delete(k);\n params.set(k, value);\n },\n append: (k, value) => {\n params.append(k, value);\n },\n });\n }\n\n return url.toString();\n}\n\nexport function composeInterceptors(terminal: NextHandler, interceptors: readonly Interceptor[] = []): NextHandler {\n return interceptors.reduceRight<NextHandler>((next, interceptor) => {\n return (req) => interceptor(req, next);\n }, terminal);\n}\n","export interface CredentialOptions {\n apiKey?: string;\n clientId?: string;\n origin?: string;\n}\n\nexport function buildCredentialHeaders(options: CredentialOptions): Record<string, string> {\n const headers: Record<string, string> = {};\n if (options.apiKey) headers[\"x-api-key\"] = options.apiKey;\n if (options.clientId) headers[\"x-client-id\"] = options.clientId;\n if (options.origin) headers[\"Origin\"] = options.origin;\n return headers;\n}\n\n","import type { HttpRequest } from \"../http.types\";\n\nexport function headersToRecord(headers: Headers): Record<string, string> {\n const out: Record<string, string> = {};\n headers.forEach((value, key) => {\n out[key.toLowerCase()] = value;\n });\n return out;\n}\n\ninterface ResolveSignalOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n}\n\nfunction resolveSignal(options: ResolveSignalOptions): { signal?: AbortSignal; dispose: () => void } {\n const { signal, timeoutMs } = options;\n if (timeoutMs === undefined) {\n return { signal, dispose: () => {} };\n }\n\n const controller = new AbortController();\n let timer: NodeJS.Timeout | undefined;\n\n const abortForTimeout = () => {\n controller.abort(new Error(`Request timed out after ${String(timeoutMs)}ms`));\n };\n\n if (timeoutMs <= 0) {\n abortForTimeout();\n } else {\n timer = setTimeout(abortForTimeout, timeoutMs);\n }\n\n const cleanupTimer = () => {\n if (timer) clearTimeout(timer);\n };\n\n controller.signal.addEventListener(\"abort\", cleanupTimer, { once: true });\n\n let removeAbortListener: (() => void) | undefined;\n if (signal) {\n if (signal.aborted) {\n cleanupTimer();\n controller.abort(signal.reason);\n } else {\n const onAbort = () => {\n cleanupTimer();\n controller.abort(signal.reason);\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeAbortListener = () => { signal.removeEventListener(\"abort\", onAbort); };\n }\n }\n\n const dispose = () => {\n cleanupTimer();\n if (removeAbortListener) {\n removeAbortListener();\n }\n };\n\n return { signal: controller.signal, dispose };\n}\n\nexport function createFetchInit(request: HttpRequest): { init: RequestInit; dispose: () => void } {\n const headers: Record<string, string> = { ...(request.headers ?? {}) };\n const init: RequestInit = {\n method: request.method,\n headers,\n };\n\n if (request.body !== undefined) {\n const body = request.body as unknown;\n const isFormData = typeof FormData !== \"undefined\" && body instanceof FormData;\n const isBlob = typeof Blob !== \"undefined\" && body instanceof Blob;\n const isUint8 = body instanceof Uint8Array;\n const isArrayBuffer = typeof ArrayBuffer !== \"undefined\" && body instanceof ArrayBuffer;\n if (typeof body === \"string\" || isFormData || isBlob || isUint8 || isArrayBuffer) {\n init.body = body as BodyInit;\n } else {\n init.body = JSON.stringify(body);\n headers[\"content-type\"] ??= \"application/json\";\n }\n }\n\n const { signal, dispose } = resolveSignal({ signal: request.signal, timeoutMs: request.timeoutMs });\n if (signal) {\n init.signal = signal;\n }\n\n return { init, dispose };\n}\n","import { createFetchInit, headersToRecord } from \"./adapter.utils\";\nimport { type HttpAdapter, type HttpRequest, type HttpResponse } from \"../http.types\";\n\nexport const nodeFetchAdapter: HttpAdapter = {\n async send(request: HttpRequest): Promise<HttpResponse> {\n const { init, dispose } = createFetchInit(request);\n try {\n const res = await fetch(request.url, init);\n const respHeaders = headersToRecord(res.headers);\n const contentType = respHeaders[\"content-type\"] ?? \"\";\n let data: unknown;\n let text: string | undefined;\n if (res.status !== 204) {\n try {\n if (contentType.includes(\"application/json\")) {\n data = await res.json();\n } else {\n text = await res.text();\n }\n } catch {\n // ignore parse errors; keep data/text undefined\n }\n }\n\n const normalized: HttpResponse = {\n status: res.status,\n ok: res.ok,\n headers: respHeaders,\n data,\n text,\n };\n return normalized;\n } finally {\n dispose();\n }\n },\n};\n","import type { LogLevel } from \"../http.types\";\n\nconst LEVEL_RANK: Record<LogLevel, number> = {\n silent: 0,\n error: 1,\n info: 2,\n debug: 3,\n};\n\nexport function shouldLog(level: LogLevel, threshold: LogLevel): boolean {\n return LEVEL_RANK[level] >= LEVEL_RANK[threshold];\n}\n","import { type Interceptor, type LogLevel } from \"../http.types\";\nimport { shouldLog } from \"./logger.utils\";\n\nexport interface LoggingOptions {\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n level?: LogLevel;\n}\n\nexport function createLoggingInterceptor(options?: LoggingOptions): Interceptor {\n const log = options?.logger;\n const level: LogLevel = options?.level ?? \"info\";\n type LogEvent = \"request:start\" | \"request:response\" | \"request:error\";\n const EVENT_LEVEL: Record<LogEvent, LogLevel> = {\n \"request:start\": \"debug\",\n \"request:response\": \"info\",\n \"request:error\": \"error\",\n };\n\n const emit = (event: LogEvent, meta: Record<string, unknown>) => {\n if (!log) return;\n const threshold = EVENT_LEVEL[event];\n if (!shouldLog(level, threshold)) return;\n log(event, meta);\n };\n\n return async (req, next) => {\n const startedAt = Date.now();\n emit(\"request:start\", { method: req.method, url: req.url, meta: req.meta });\n try {\n const res = await next(req);\n const durationMs = Date.now() - startedAt;\n emit(\"request:response\", { method: req.method, url: req.url, status: res.status, ok: res.ok, durationMs, meta: req.meta });\n return res;\n } catch (error) {\n const durationMs = Date.now() - startedAt;\n emit(\"request:error\", { method: req.method, url: req.url, durationMs, error, meta: req.meta });\n throw error;\n }\n };\n}\n","import { parseRetryAfter } from \"../../errors/request-api.error\";\nimport { type Interceptor, type LogLevel, type NextHandler, type HttpResponse } from \"../http.types\";\nimport { computeRetryDelay, DEFAULT_RETRY_CONFIG, shouldRetryRequest, type RetryConfig } from \"../retry.policy\";\nimport { shouldLog } from \"./logger.utils\";\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface RetryInterceptorOptions {\n config?: Partial<RetryConfig>;\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n logLevel?: LogLevel;\n}\n\nexport function createRetryInterceptor(options?: RetryInterceptorOptions): Interceptor {\n const cfg: RetryConfig = { ...DEFAULT_RETRY_CONFIG, ...(options?.config ?? {}) };\n\n const allowed = new Set((cfg as RetryConfig & { allowedMethods?: string[] }).allowedMethods ?? [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"]);\n const log = options?.logger;\n const level: LogLevel = options?.logLevel ?? \"info\";\n\n const RETRY_EVENT = \"request:retry\" as const;\n const RATE_LIMIT_EVENT = \"rate-limit\" as const;\n const DEFAULT_RETRY_REASON = \"retry-scheduled\";\n\n const emit = (event: typeof RETRY_EVENT | typeof RATE_LIMIT_EVENT, meta: Record<string, unknown>) => {\n const threshold: LogLevel = event === RETRY_EVENT ? \"info\" : \"info\";\n if (!log) return;\n if (!shouldLog(level, threshold)) return;\n log(event, meta);\n };\n\n const parseRetryAfterMs = (headers?: Record<string, string>): number | undefined => {\n if (!headers) return undefined;\n const header = headers[\"retry-after\"] ?? headers[\"Retry-After\"];\n return parseRetryAfter(header);\n };\n\n const scheduleRetry = async (delayMs: number, meta: Record<string, unknown>): Promise<void> => {\n emit(RETRY_EVENT, { ...meta, reason: meta.reason ?? DEFAULT_RETRY_REASON });\n if (delayMs > 0) {\n await sleep(delayMs);\n }\n };\n\n const maybeHandleResponse = async ({\n res,\n attempt,\n context,\n isAllowedMethod,\n }: {\n res: HttpResponse;\n attempt: number;\n context: { method: string; url: string; meta?: Record<string, unknown> };\n isAllowedMethod: boolean;\n }): Promise<boolean> => {\n if (res.ok) {\n return false;\n }\n\n const retryAfterMs = parseRetryAfterMs(res.headers);\n if (res.status === 429) {\n emit(RATE_LIMIT_EVENT, { ...context, status: res.status, attempt, retryAfterMs });\n }\n\n const decision = isAllowedMethod\n ? shouldRetryRequest(cfg, { attempt, response: { status: res.status, headers: res.headers, retryAfterMs } })\n : { retry: false };\n\n if (!decision.retry) {\n return false;\n }\n\n const delay = decision.delayMs ?? computeRetryDelay(cfg, { attempt, response: { status: res.status, headers: res.headers, retryAfterMs } });\n await scheduleRetry(delay, {\n ...context,\n attempt,\n nextAttempt: attempt + 1,\n status: res.status,\n delayMs: delay,\n reason: decision.reason,\n retryAfterMs,\n });\n return true;\n };\n\n const maybeHandleError = async ({\n error,\n attempt,\n context,\n }: {\n error: unknown;\n attempt: number;\n context: { method: string; url: string; meta?: Record<string, unknown> };\n }): Promise<boolean> => {\n const decision = shouldRetryRequest(cfg, { attempt, error });\n if (!decision.retry) {\n return false;\n }\n\n const delay = decision.delayMs ?? computeRetryDelay(cfg, { attempt, error });\n await scheduleRetry(delay, {\n ...context,\n attempt,\n nextAttempt: attempt + 1,\n delayMs: delay,\n reason: decision.reason,\n error,\n });\n return true;\n };\n\n return async function retryInterceptor(req, next: NextHandler): Promise<HttpResponse> {\n const isAllowedMethod = allowed.has(req.method);\n for (let attempt = 1; attempt <= cfg.maxAttempts; attempt++) {\n try {\n const res = await next(req);\n const shouldRetry = await maybeHandleResponse({\n res,\n attempt,\n context: { method: req.method, url: req.url, meta: req.meta },\n isAllowedMethod,\n });\n if (!shouldRetry) {\n return res;\n }\n continue;\n } catch (error) {\n const shouldRetry = await maybeHandleError({\n error,\n attempt,\n context: { method: req.method, url: req.url, meta: req.meta },\n });\n if (shouldRetry) {\n continue;\n }\n throw error;\n }\n }\n // Fallback; should be unreachable due to returns/throws above\n return next(req);\n };\n}\n","import type { RuntimeValidationConfig, RuntimeValidationOption } from \"./http.types\";\n\nconst DEFAULT_RUNTIME_VALIDATION: RuntimeValidationConfig = {\n requests: true,\n responses: true,\n errors: true,\n};\n\nfunction normaliseBoolean(flag: boolean | undefined, fallback: boolean): boolean {\n return typeof flag === \"boolean\" ? flag : fallback;\n}\n\nexport function normaliseRuntimeValidation(option?: RuntimeValidationOption): RuntimeValidationConfig {\n if (typeof option === \"boolean\") {\n return {\n requests: option,\n responses: option,\n errors: option,\n } satisfies RuntimeValidationConfig;\n }\n\n return {\n requests: normaliseBoolean(option?.requests, DEFAULT_RUNTIME_VALIDATION.requests),\n responses: normaliseBoolean(option?.responses, DEFAULT_RUNTIME_VALIDATION.responses),\n errors: normaliseBoolean(option?.errors, DEFAULT_RUNTIME_VALIDATION.errors),\n } satisfies RuntimeValidationConfig;\n}\n\nexport function mergeRuntimeValidation(base: RuntimeValidationConfig, override?: RuntimeValidationOption): RuntimeValidationConfig {\n if (override === undefined) {\n return base;\n }\n\n if (typeof override === \"boolean\") {\n return {\n requests: override,\n responses: override,\n errors: override,\n } satisfies RuntimeValidationConfig;\n }\n\n return {\n requests: normaliseBoolean(override.requests, base.requests),\n responses: normaliseBoolean(override.responses, base.responses),\n errors: normaliseBoolean(override.errors, base.errors),\n } satisfies RuntimeValidationConfig;\n}\n\nexport function cloneRuntimeValidation(config: RuntimeValidationConfig): RuntimeValidationConfig {\n return { ...config };\n}\n","import {\n type HttpAdapter,\n type HttpClient,\n type HttpClientConfig,\n type HttpRequest,\n type HttpResponse,\n type Interceptor,\n type LogLevel,\n type QuerySerializer,\n type RequestOptions,\n type RuntimeValidationConfig,\n type RuntimeValidationOption,\n buildUrl,\n composeInterceptors,\n} from \"./http.types\";\nimport { buildCredentialHeaders, type CredentialOptions } from \"../auth/credential-header.builder\";\nimport { buildRequestApiError } from \"../errors/request-api.error\";\nimport { nodeFetchAdapter } from \"./adapters/node-fetch.adapter\";\nimport { createLoggingInterceptor } from \"./interceptors/logging.interceptor\";\nimport { createRetryInterceptor, type RetryInterceptorOptions } from \"./interceptors/retry.interceptor\";\nimport { cloneRuntimeValidation, mergeRuntimeValidation, normaliseRuntimeValidation } from \"./validation.config\";\nimport type { SchemaKey } from \"../../validation/schema.registry\";\nimport { parseWithRegistry } from \"../../validation/zod.helpers\";\n\nexport interface CreateClientOptions {\n baseUrl?: string;\n apiKey?: string;\n clientId?: string;\n origin?: string;\n headers?: Record<string, string>;\n adapter?: HttpAdapter;\n interceptors?: Interceptor[];\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n retry?: RetryInterceptorOptions;\n querySerializer?: QuerySerializer;\n userAgent?: string;\n sdkInfo?: {\n name: string;\n version?: string;\n };\n logLevel?: LogLevel;\n runtimeValidation?: RuntimeValidationOption;\n}\n\nconst DEFAULT_BASE_URL = \"https://api.request.network\";\n\nfunction buildTelemetryHeaders(userAgent?: string, sdkInfo?: CreateClientOptions[\"sdkInfo\"]): Record<string, string> {\n const headers: Record<string, string> = {};\n if (userAgent) headers[\"user-agent\"] = userAgent;\n if (sdkInfo?.name) headers[\"x-sdk\"] = sdkInfo.version ? `${sdkInfo.name}/${sdkInfo.version}` : sdkInfo.name;\n return headers;\n}\n\nfunction buildHeaders(credentials: CredentialOptions, defaults?: Record<string, string>, extra?: Record<string, string>): Record<string, string> {\n return {\n ...buildCredentialHeaders(credentials),\n ...(defaults ?? {}),\n ...(extra ?? {}),\n };\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n if ((value && typeof value === \"object\") || Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n return undefined;\n}\n\nfunction mapToError(res: HttpResponse, req: HttpRequest, validation: RuntimeValidationConfig): never {\n const operationId = req.meta?.operationId;\n const rawPayload = asRecord(res.data);\n let payload = rawPayload;\n\n if (validation.errors && operationId) {\n const schemaKey: SchemaKey = { operationId, kind: \"response\", status: res.status };\n const parsed = parseWithRegistry({\n key: schemaKey,\n value: rawPayload ?? res.data,\n description: `Error response for ${operationId}`,\n skipOnMissingSchema: true,\n });\n if (!parsed.success) {\n throw parsed.error;\n }\n payload = asRecord(parsed.data);\n }\n\n const error = buildRequestApiError({\n payload,\n status: res.status,\n headers: res.headers,\n fallbackMessage: res.text ?? `HTTP ${String(res.status)}`,\n });\n throw error;\n}\n\nexport function createHttpClient(options: CreateClientOptions = {}): HttpClient {\n const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const adapter = options.adapter ?? nodeFetchAdapter;\n const defaults = { ...buildTelemetryHeaders(options.userAgent, options.sdkInfo), ...(options.headers ?? {}) };\n const creds: CredentialOptions = { apiKey: options.apiKey, clientId: options.clientId, origin: options.origin };\n\n const userInterceptors = options.interceptors ?? [];\n const logLevel: LogLevel = options.logLevel ?? (options.logger ? \"info\" : \"silent\");\n const runtimeValidation = normaliseRuntimeValidation(options.runtimeValidation);\n\n function buildBaseInterceptors(meta?: RequestOptions[\"meta\"]): Interceptor[] {\n const retryCfg = meta?.retry ?? options.retry?.config;\n const retryOptions: RetryInterceptorOptions = {\n ...(options.retry ?? {}),\n logger: options.retry?.logger ?? options.logger,\n logLevel: options.retry?.logLevel ?? logLevel,\n };\n if (retryCfg) {\n retryOptions.config = retryCfg;\n }\n return [createRetryInterceptor(retryOptions), createLoggingInterceptor({ logger: options.logger, level: logLevel })];\n }\n\n const cfg: HttpClientConfig = {\n baseUrl,\n defaultHeaders: buildHeaders(creds, defaults),\n adapter,\n logger: options.logger,\n querySerializer: options.querySerializer,\n logLevel,\n };\n\n async function dispatch(req: HttpRequest): Promise<HttpResponse> {\n // Compose interceptors: per-request -> user-provided -> base (retry, logging)\n const perRequestInterceptors = req.meta?.interceptors ?? [];\n const baseInterceptors = buildBaseInterceptors(req.meta);\n const all = [...perRequestInterceptors, ...userInterceptors, ...baseInterceptors];\n const terminal = (r: HttpRequest) => cfg.adapter.send(r);\n const chain = composeInterceptors(terminal, all);\n return chain(req);\n }\n\n async function request(init: RequestOptions): Promise<{ status: number; headers: Record<string, string>; data: unknown }> {\n const serializer = init.querySerializer ?? cfg.querySerializer;\n const url = buildUrl(cfg.baseUrl, init.path, init.query, serializer);\n const headers = { ...(cfg.defaultHeaders ?? {}), ...(init.headers ?? {}) };\n const req: HttpRequest = {\n method: init.method,\n url,\n headers,\n body: init.body,\n signal: init.signal,\n timeoutMs: init.timeoutMs,\n meta: init.meta,\n };\n const res = await dispatch(req);\n const effectiveValidation = mergeRuntimeValidation(runtimeValidation, req.meta?.validation);\n if (!res.ok) {\n mapToError(res, req, effectiveValidation);\n }\n return { status: res.status, headers: res.headers, data: res.data };\n }\n\n return {\n request,\n get: (path, init) => request({ ...(init ?? {}), path, method: \"GET\" }),\n post: (path, body, init) => request({ ...(init ?? {}), path, method: \"POST\", body }),\n put: (path, body, init) => request({ ...(init ?? {}), path, method: \"PUT\", body }),\n patch: (path, body, init) => request({ ...(init ?? {}), path, method: \"PATCH\", body }),\n delete: (path, init) => {\n const { body, ...rest } = init ?? {};\n return request({ ...rest, path, method: \"DELETE\", body });\n },\n head: (path, init) => request({ ...(init ?? {}), path, method: \"HEAD\" }),\n options: (path, init) => request({ ...(init ?? {}), path, method: \"OPTIONS\" }),\n getRuntimeValidationConfig: () => cloneRuntimeValidation(runtimeValidation),\n } satisfies HttpClient;\n}\n","import { createFetchInit, headersToRecord } from \"./adapter.utils\";\nimport { type HttpAdapter, type HttpRequest, type HttpResponse } from \"../http.types\";\n\nexport const browserFetchAdapter: HttpAdapter = {\n async send(request: HttpRequest): Promise<HttpResponse> {\n const { init, dispose } = createFetchInit(request);\n try {\n const res = await fetch(request.url, init);\n const respHeaders = headersToRecord(res.headers);\n const contentType = respHeaders[\"content-type\"] ?? \"\";\n let data: unknown;\n let text: string | undefined;\n if (res.status !== 204) {\n try {\n if (contentType.includes(\"application/json\")) {\n data = await res.json();\n } else {\n text = await res.text();\n }\n } catch {\n // ignore parse errors\n }\n }\n\n const normalized: HttpResponse = {\n status: res.status,\n ok: res.ok,\n headers: respHeaders,\n data,\n text,\n };\n return normalized;\n } finally {\n dispose();\n }\n },\n};\n","export {\n createClientIdsApi,\n type ClientIdsApi,\n type ClientIdListResponse,\n type ClientIdCreateBody,\n type ClientIdResponse,\n type ClientIdUpdateBody,\n} from \"./client-ids.facade\";\n// Register only client-ids schemas at import time\nimport \"../../validation/generated/groups/client-ids.schemas.generated\";\n\n","import type { HttpClient, HttpMethod, RequestOptions, RuntimeValidationOption } from \"./http.types\";\nimport { mergeRuntimeValidation } from \"./validation.config\";\nimport type { SchemaKey } from \"../../validation/schema.registry\";\nimport { parseWithRegistry } from \"../../validation/zod.helpers\";\n\ntype Query = NonNullable<RequestOptions[\"query\"]>;\n\nexport interface RequestJsonParams {\n operationId: string;\n method: HttpMethod;\n path: string;\n query?: Query;\n body?: unknown;\n schemaKey: SchemaKey;\n requestSchemaKey?: SchemaKey;\n description?: string;\n querySerializer?: RequestOptions[\"querySerializer\"];\n signal?: RequestOptions[\"signal\"];\n timeoutMs?: RequestOptions[\"timeoutMs\"];\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport async function requestJson<T>(http: HttpClient, params: RequestJsonParams): Promise<T> {\n const {\n operationId,\n method,\n path,\n query,\n body,\n schemaKey,\n requestSchemaKey,\n description,\n querySerializer,\n signal,\n timeoutMs,\n validation,\n meta,\n } = params;\n\n const runtimeValidation = mergeRuntimeValidation(http.getRuntimeValidationConfig(), validation);\n\n let requestBody = body;\n if (runtimeValidation.requests && requestSchemaKey && body !== undefined) {\n const parsedRequest = parseWithRegistry({\n key: requestSchemaKey,\n value: body,\n description: `${description ?? operationId} request`,\n skipOnMissingSchema: true,\n });\n if (!parsedRequest.success) {\n throw parsedRequest.error;\n }\n requestBody = parsedRequest.data;\n }\n\n const metaValidation = validation ?? meta?.validation;\n const requestMeta: RequestOptions[\"meta\"] = {\n ...(meta ?? {}),\n operationId,\n validation: metaValidation,\n };\n\n const res = await http.request({\n method,\n path,\n query,\n body: requestBody,\n querySerializer,\n signal,\n timeoutMs,\n meta: requestMeta,\n });\n\n if (!runtimeValidation.responses) {\n return res.data as T;\n }\n\n const parsedResponse = parseWithRegistry({ key: schemaKey, value: res.data, description });\n if (!parsedResponse.success) throw parsedResponse.error;\n return parsedResponse.data as T;\n}\n\nexport interface RequestVoidParams {\n operationId: string;\n method: HttpMethod;\n path: string;\n query?: Query;\n body?: unknown;\n querySerializer?: RequestOptions[\"querySerializer\"];\n signal?: RequestOptions[\"signal\"];\n timeoutMs?: RequestOptions[\"timeoutMs\"];\n requestSchemaKey?: SchemaKey;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport async function requestVoid(http: HttpClient, params: RequestVoidParams): Promise<void> {\n const { operationId, method, path, query, body, querySerializer, signal, timeoutMs, requestSchemaKey, validation, meta } = params;\n\n const runtimeValidation = mergeRuntimeValidation(http.getRuntimeValidationConfig(), validation);\n\n let requestBody = body;\n if (runtimeValidation.requests && requestSchemaKey && body !== undefined) {\n const parsedRequest = parseWithRegistry({\n key: requestSchemaKey,\n value: body,\n description: `${operationId} request`,\n skipOnMissingSchema: true,\n });\n if (!parsedRequest.success) {\n throw parsedRequest.error;\n }\n requestBody = parsedRequest.data;\n }\n\n const metaValidation = validation ?? meta?.validation;\n const requestMeta: RequestOptions[\"meta\"] = {\n ...(meta ?? {}),\n operationId,\n validation: metaValidation,\n };\n\n await http.request({\n method,\n path,\n query,\n body: requestBody,\n querySerializer,\n signal,\n timeoutMs,\n meta: requestMeta,\n });\n}\n","export function buildPath(template: string, params: Record<string, string | number>): string {\n return template.replace(/\\{(.*?)\\}/g, (_, key: string) => encodeURIComponent(String(params[key] ?? \"\")));\n}\n\n","import type { HttpClient } from \"../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../core/http/operation.helper\";\nimport { buildPath } from \"../../core/http/path.builder\";\nimport type { operations } from \"../../generated/openapi-types\";\n\nexport type ClientIdListResponse = operations[\"ClientIdV2Controller_findAll_v2\"][\"responses\"][200][\"content\"][\"application/json\"]; // array\nexport type ClientIdCreateBody = operations[\"ClientIdV2Controller_create_v2\"][\"requestBody\"][\"content\"][\"application/json\"]; // input\nexport type ClientIdResponse = operations[\"ClientIdV2Controller_findOne_v2\"][\"responses\"][200][\"content\"][\"application/json\"]; // single\nexport type ClientIdUpdateBody = operations[\"ClientIdV2Controller_update_v2\"][\"requestBody\"][\"content\"][\"application/json\"]; // input\n\nexport interface ClientIdsApi {\n list(): Promise<ClientIdListResponse>;\n create(body: ClientIdCreateBody): Promise<ClientIdResponse>;\n findOne(id: string): Promise<ClientIdResponse>;\n update(id: string, body: ClientIdUpdateBody): Promise<ClientIdResponse>;\n revoke(id: string): Promise<void>;\n}\n\nexport function createClientIdsApi(http: HttpClient): ClientIdsApi {\n const PATH_BASE = \"/v2/client-ids\" as const;\n return {\n async list() {\n const OP = \"ClientIdV2Controller_findAll_v2\" as const;\n return requestJson<ClientIdListResponse>(http, {\n operationId: OP,\n method: \"GET\",\n path: PATH_BASE,\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"List client IDs\",\n });\n },\n async create(body) {\n const OP = \"ClientIdV2Controller_create_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"POST\",\n path: PATH_BASE,\n body,\n requestSchemaKey: { operationId: OP, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP, kind: \"response\", status: 201 },\n description: \"Create client ID\",\n });\n },\n async findOne(id) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_findOne_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"Get client ID\",\n });\n },\n async update(id, body) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_update_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"PUT\",\n path,\n body,\n requestSchemaKey: { operationId: OP, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"Update client ID\",\n });\n },\n async revoke(id) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_delete_v2\" as const;\n await requestVoid(http, {\n operationId: OP,\n method: \"DELETE\",\n path,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (200)\nexport const ClientIdV2Controller_findAll_v2_200 = z.array(z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional(), \"lastUsedAt\": (z.string().nullable()).optional() }).passthrough());\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_findAll_v2_200 });\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (401)\nexport const ClientIdV2Controller_findAll_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_findAll_v2_401 });\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (429)\nexport const ClientIdV2Controller_findAll_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_findAll_v2_429 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 request (application/json)\nexport const ClientIdV2Controller_create_v2_Request = z.object({ \"label\": z.string(), \"allowedDomains\": z.array(z.string()), \"feePercentage\": (z.string()).optional(), \"feeAddress\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'request', variant: 'application/json' }, schema: ClientIdV2Controller_create_v2_Request });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (201)\nexport const ClientIdV2Controller_create_v2_201 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 201 }, schema: ClientIdV2Controller_create_v2_201 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (400)\nexport const ClientIdV2Controller_create_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 400 }, schema: ClientIdV2Controller_create_v2_400 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (401)\nexport const ClientIdV2Controller_create_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_create_v2_401 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (429)\nexport const ClientIdV2Controller_create_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_create_v2_429 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (200)\nexport const ClientIdV2Controller_findOne_v2_200 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional(), \"updatedAt\": (z.string()).optional(), \"lastUsedAt\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_findOne_v2_200 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (401)\nexport const ClientIdV2Controller_findOne_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_findOne_v2_401 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (404)\nexport const ClientIdV2Controller_findOne_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_findOne_v2_404 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (429)\nexport const ClientIdV2Controller_findOne_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_findOne_v2_429 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 request (application/json)\nexport const ClientIdV2Controller_update_v2_Request = z.object({ \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.enum(['active', 'inactive', 'revoked'])).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'request', variant: 'application/json' }, schema: ClientIdV2Controller_update_v2_Request });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (200)\nexport const ClientIdV2Controller_update_v2_200 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"updatedAt\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_update_v2_200 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (400)\nexport const ClientIdV2Controller_update_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 400 }, schema: ClientIdV2Controller_update_v2_400 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (401)\nexport const ClientIdV2Controller_update_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_update_v2_401 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (404)\nexport const ClientIdV2Controller_update_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_update_v2_404 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (429)\nexport const ClientIdV2Controller_update_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_update_v2_429 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (200)\nexport const ClientIdV2Controller_delete_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_delete_v2_200 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (401)\nexport const ClientIdV2Controller_delete_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_delete_v2_401 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (404)\nexport const ClientIdV2Controller_delete_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_delete_v2_404 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (429)\nexport const ClientIdV2Controller_delete_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_delete_v2_429 });\n","export {\n createCurrenciesApi,\n type CurrenciesApi,\n type ListCurrenciesQuery,\n type GetConversionRoutesQuery,\n type CurrencyRequestOptions,\n} from \"./currencies.facade\";\nexport { type CurrencyToken, type CurrencyList, type ConversionRoutes } from \"./currencies.schemas\";\nexport {\n createCurrenciesV1Api,\n type CurrenciesV1Api,\n type CurrencyV1RequestOptions,\n type GetConversionRoutesV1Query,\n type ListCurrenciesV1Query,\n} from \"./v1\";\n\nimport \"../../validation/generated/groups/currencies.schemas.generated\";\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (200)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 200 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_200 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (400)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 400 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_400 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (404)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 404 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_404 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (429)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 429 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_429 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (200)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 200 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_200 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (404)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 404 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_404 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (429)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 429 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_429 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (200)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 200 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_200 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (400)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 400 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_400 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (404)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 404 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_404 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (429)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 429 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_429 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (200)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 200 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_200 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (404)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 404 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_404 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (429)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 429 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_429 });\n","import { z } from \"zod\";\n\nimport \"../../validation/generated/groups/currencies.schemas.generated\";\nimport { schemaRegistry } from \"../../validation/schema.registry\";\n\nexport const OP_LIST = \"CurrenciesV2Controller_getNetworkTokens_v2\";\nexport const OP_CONVERSION_ROUTES = \"CurrenciesV2Controller_getConversionRoutes_v2\";\n\nexport const CurrencyTokenSchema = z\n .object({\n id: z.string(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n address: z.string().optional(),\n network: z.string().optional(),\n type: z.string().optional(),\n hash: z.string().optional(),\n chainId: z.number().optional(),\n })\n .passthrough();\n\nexport const CurrenciesListSchema = z.array(CurrencyTokenSchema);\nexport type CurrencyToken = z.infer<typeof CurrencyTokenSchema>;\nexport type CurrencyList = z.infer<typeof CurrenciesListSchema>;\n\nexport const ConversionRoutesSchema = z\n .object({\n currencyId: z.string(),\n network: z.string().nullable().optional(),\n conversionRoutes: z.array(CurrencyTokenSchema),\n })\n .passthrough();\n\nexport type ConversionRoutes = z.infer<typeof ConversionRoutesSchema>;\n\nschemaRegistry.register({ key: { operationId: OP_LIST, kind: \"response\", status: 200 }, schema: CurrenciesListSchema });\nschemaRegistry.register({ key: { operationId: OP_CONVERSION_ROUTES, kind: \"response\", status: 200 }, schema: ConversionRoutesSchema });\n","export {\n createCurrenciesV1Api,\n type CurrenciesV1Api,\n type CurrencyV1RequestOptions,\n type GetConversionRoutesV1Query,\n type ListCurrenciesV1Query,\n} from \"./currencies.v1.facade\";\n\nimport \"../../../validation/generated/groups/currencies.schemas.generated\";\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../../../validation/schema.registry\";\nimport {\n ConversionRoutesSchema,\n CurrencyTokenSchema,\n CurrenciesListSchema,\n type ConversionRoutes,\n type CurrencyList,\n} from \"../currencies.schemas\";\n\nexport const OP_LIST_V1 = \"CurrenciesV1Controller_getNetworkTokens_v1\";\nexport const OP_CONVERSION_ROUTES_V1 = \"CurrenciesV1Controller_getConversionRoutes_v1\";\n\nconst DESCRIPTION_LIST = \"Legacy currencies list\";\nconst DESCRIPTION_CONVERSION_ROUTES = \"Legacy conversion routes\";\n\nexport const CurrenciesV1ListSchema = z.union([CurrenciesListSchema, CurrencyTokenSchema]);\n\nexport type LegacyCurrencyList = CurrencyList;\nexport type LegacyConversionRoutes = ConversionRoutes;\n\nschemaRegistry.register({ key: { operationId: OP_LIST_V1, kind: \"response\", status: 200 }, schema: CurrenciesV1ListSchema });\nschemaRegistry.register({\n key: { operationId: OP_CONVERSION_ROUTES_V1, kind: \"response\", status: 200 },\n schema: ConversionRoutesSchema,\n});\n\nexport const DESCRIPTIONS = {\n list: DESCRIPTION_LIST,\n conversionRoutes: DESCRIPTION_CONVERSION_ROUTES,\n} as const;\n","import type { HttpClient, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\nimport { parseWithSchema } from \"../../../validation/zod.helpers\";\nimport { type ConversionRoutes, type CurrencyList, ConversionRoutesSchema } from \"../currencies.schemas\";\nimport {\n CurrenciesV1ListSchema,\n DESCRIPTIONS,\n OP_CONVERSION_ROUTES_V1,\n OP_LIST_V1,\n} from \"./currencies.v1.schemas\";\n\nexport type ListCurrenciesV1Query = operations[typeof OP_LIST_V1][\"parameters\"][\"query\"];\nexport type GetConversionRoutesV1Query = operations[typeof OP_CONVERSION_ROUTES_V1][\"parameters\"][\"query\"];\n\nconst CURRENCIES_V1_PATH = \"/v1/currencies\";\nconst CONVERSION_ROUTES_SEGMENT = \"conversion-routes\";\n\nexport interface CurrencyV1RequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n}\n\nexport interface CurrenciesV1Api {\n list(query?: ListCurrenciesV1Query, options?: CurrencyV1RequestOptions): Promise<CurrencyList>;\n getConversionRoutes(currencyId: string, query?: GetConversionRoutesV1Query, options?: CurrencyV1RequestOptions): Promise<ConversionRoutes>;\n}\n\nfunction toQuery(\n input?: Record<string, unknown>,\n): Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined {\n return input as Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined;\n}\n\nexport function createCurrenciesV1Api(http: HttpClient): CurrenciesV1Api {\n return {\n async list(query, options) {\n const data = await requestJson<unknown>(http, {\n operationId: OP_LIST_V1,\n method: \"GET\",\n path: CURRENCIES_V1_PATH,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_LIST_V1, kind: \"response\", status: 200 },\n description: DESCRIPTIONS.list,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: CurrenciesV1ListSchema,\n value: data,\n description: DESCRIPTIONS.list,\n });\n if (!parsed.success) throw parsed.error;\n const payload = parsed.data;\n const tokens = Array.isArray(payload) ? payload : [payload];\n return tokens as CurrencyList;\n },\n\n async getConversionRoutes(currencyId, query, options) {\n const path = `${CURRENCIES_V1_PATH}/${encodeURIComponent(currencyId)}/${CONVERSION_ROUTES_SEGMENT}`;\n const data = await requestJson<unknown>(http, {\n operationId: OP_CONVERSION_ROUTES_V1,\n method: \"GET\",\n path,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_CONVERSION_ROUTES_V1, kind: \"response\", status: 200 },\n description: DESCRIPTIONS.conversionRoutes,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: ConversionRoutesSchema,\n value: data,\n description: DESCRIPTIONS.conversionRoutes,\n });\n if (!parsed.success) throw parsed.error;\n return parsed.data as ConversionRoutes;\n },\n };\n}\n","import { OP_CONVERSION_ROUTES, OP_LIST, CurrenciesListSchema, ConversionRoutesSchema } from \"./currencies.schemas\";\nimport type { CurrencyList, ConversionRoutes } from \"./currencies.schemas\";\nimport { createCurrenciesV1Api, type CurrenciesV1Api } from \"./v1\";\nimport type { HttpClient, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { parseWithSchema } from \"../../validation/zod.helpers\";\n\nexport type ListCurrenciesQuery = operations[\"CurrenciesV2Controller_getNetworkTokens_v2\"][\"parameters\"][\"query\"];\nexport type GetConversionRoutesQuery = operations[\"CurrenciesV2Controller_getConversionRoutes_v2\"][\"parameters\"][\"query\"];\n\nconst CURRENCIES_PATH = \"/v2/currencies\";\nconst CONVERSION_ROUTES_SEGMENT = \"conversion-routes\";\nconst DESCRIPTION_LIST = \"Currencies list\";\nconst DESCRIPTION_CONVERSION_ROUTES = \"Conversion routes\";\n\nexport interface CurrencyRequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n}\n\nexport interface CurrenciesApi {\n list(query?: ListCurrenciesQuery, options?: CurrencyRequestOptions): Promise<CurrencyList>;\n getConversionRoutes(currencyId: string, query?: GetConversionRoutesQuery, options?: CurrencyRequestOptions): Promise<ConversionRoutes>;\n legacy: CurrenciesV1Api;\n}\n\nexport function createCurrenciesApi(http: HttpClient): CurrenciesApi {\n const legacy = createCurrenciesV1Api(http);\n function toQuery(input?: Record<string, unknown>): Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined {\n return input as Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined;\n }\n\n return {\n legacy,\n async list(query, options) {\n const data = await requestJson<unknown>(http, {\n operationId: OP_LIST,\n method: \"GET\",\n path: CURRENCIES_PATH,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_LIST, kind: \"response\", status: 200 },\n description: DESCRIPTION_LIST,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: CurrenciesListSchema,\n value: data,\n description: DESCRIPTION_LIST,\n });\n if (!parsed.success) throw parsed.error;\n const list = parsed.data as CurrencyList;\n return list;\n },\n async getConversionRoutes(currencyId, query, options) {\n const path = `${CURRENCIES_PATH}/${encodeURIComponent(currencyId)}/${CONVERSION_ROUTES_SEGMENT}`;\n const data = await requestJson<unknown>(http, {\n operationId: OP_CONVERSION_ROUTES,\n method: \"GET\",\n path,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_CONVERSION_ROUTES, kind: \"response\", status: 200 },\n description: DESCRIPTION_CONVERSION_ROUTES,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: ConversionRoutesSchema,\n value: data,\n description: DESCRIPTION_CONVERSION_ROUTES,\n });\n if (!parsed.success) throw parsed.error;\n const routes = parsed.data as ConversionRoutes;\n return routes;\n },\n };\n}\n","export { createPayApi, type PayApi, type PayOperationOptions } from \"./pay.facade\";\nexport { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./v1\";\n\nimport \"../../validation/generated/groups/pay.schemas.generated\";\n","export { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./pay.v1.facade\";\n\nimport \"../../../validation/generated/groups/pay.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_PAY_REQUEST = \"PayV1Controller_payRequest_v1\" as const;\nconst PAY_PATH = \"/v1/pay\";\nconst DESCRIPTION_PAY_REQUEST = \"Legacy pay request\";\n\ntype PayRequestBody = operations[typeof OP_PAY_REQUEST][\"requestBody\"][\"content\"][\"application/json\"];\ntype PayRequestResponse = operations[typeof OP_PAY_REQUEST][\"responses\"][201][\"content\"][\"application/json\"];\n\nexport interface PayV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayV1Api {\n payRequest(body: PayRequestBody, options?: PayV1OperationOptions): Promise<PayRequestResponse>;\n}\n\nexport function createPayV1Api(http: HttpClient): PayV1Api {\n return {\n async payRequest(body, options) {\n return requestJson<PayRequestResponse>(http, {\n operationId: OP_PAY_REQUEST,\n method: \"POST\",\n path: PAY_PATH,\n body,\n requestSchemaKey: { operationId: OP_PAY_REQUEST, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_PAY_REQUEST, kind: \"response\", status: 201 },\n description: DESCRIPTION_PAY_REQUEST,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 request (application/json)\nexport const PayV1Controller_payRequest_v1_Request = z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'request', variant: 'application/json' }, schema: PayV1Controller_payRequest_v1_Request });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (201)\nexport const PayV1Controller_payRequest_v1_201 = z.object({ \"requestId\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 201 }, schema: PayV1Controller_payRequest_v1_201 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (401)\nexport const PayV1Controller_payRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 401 }, schema: PayV1Controller_payRequest_v1_401 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (404)\nexport const PayV1Controller_payRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 404 }, schema: PayV1Controller_payRequest_v1_404 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (429)\nexport const PayV1Controller_payRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 429 }, schema: PayV1Controller_payRequest_v1_429 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 request (application/json)\nexport const PayoutV2Controller_payRequest_v2_Request = z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"feePercentage\": (z.string()).optional(), \"feeAddress\": (z.string()).optional(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']), \"totalPayments\": z.number(), \"payer\": z.string() }).passthrough()).optional(), \"payerWallet\": (z.string()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough()).optional(), \"reference\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_payRequest_v2_Request });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (201)\nexport const PayoutV2Controller_payRequest_v2_201 = z.object({ \"requestId\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_payRequest_v2_201 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (404)\nexport const PayoutV2Controller_payRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_payRequest_v2_404 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (429)\nexport const PayoutV2Controller_payRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_payRequest_v2_429 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 request (application/json)\nexport const PayoutV2Controller_payBatchRequest_v2_Request = z.object({ \"requests\": (z.array(z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string() }).passthrough())).optional(), \"requestIds\": (z.array(z.string())).optional(), \"payer\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_payBatchRequest_v2_Request });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (201)\nexport const PayoutV2Controller_payBatchRequest_v2_201 = z.object({ \"ERC20ApprovalTransactions\": (z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.number() }).passthrough())).optional(), \"ERC20BatchPaymentTransaction\": (z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": z.enum(['BigNumber']), \"hex\": z.string() }).passthrough() }).passthrough()).optional(), \"ETHBatchPaymentTransaction\": (z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": z.enum(['BigNumber']), \"hex\": z.string() }).passthrough() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_payBatchRequest_v2_201 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (400)\nexport const PayoutV2Controller_payBatchRequest_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_payBatchRequest_v2_400 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (429)\nexport const PayoutV2Controller_payBatchRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_payBatchRequest_v2_429 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (200)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 200 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_200 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (404)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_404 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (429)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_429 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 request (application/json)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_Request = z.object({ \"permitSignature\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_Request });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (201)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_201 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_201 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (400)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_400 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (404)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_404 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (429)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_429 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 request (application/json)\nexport const PayoutV2Controller_updateRecurringPayment_v2_Request = z.object({ \"action\": z.enum(['cancel', 'unpause']) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_updateRecurringPayment_v2_Request });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (200)\nexport const PayoutV2Controller_updateRecurringPayment_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 200 }, schema: PayoutV2Controller_updateRecurringPayment_v2_200 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (400)\nexport const PayoutV2Controller_updateRecurringPayment_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_updateRecurringPayment_v2_400 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (404)\nexport const PayoutV2Controller_updateRecurringPayment_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_updateRecurringPayment_v2_404 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (429)\nexport const PayoutV2Controller_updateRecurringPayment_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_updateRecurringPayment_v2_429 });\n","import { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./v1\";\nimport type { HttpClient } from \"../../core/http/http.types\";\n\nexport type PayOperationOptions = PayV1OperationOptions;\n\nexport interface PayApi extends PayV1Api {\n legacy: PayV1Api;\n}\n\nexport { type PayV1Api, type PayV1OperationOptions };\n\nexport function createPayApi(http: HttpClient): PayApi {\n const legacy = createPayV1Api(http);\n return {\n ...legacy,\n legacy,\n };\n}\n","export {\n createPayerApi,\n type PayerApi,\n type PayerOperationOptions,\n} from \"./payer.facade\";\nexport {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./v1\";\nexport {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./v2\";\n\nimport \"../../validation/generated/groups/payer.schemas.generated\";\n","export {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./payer.v1.facade\";\n\nimport \"../../../validation/generated/groups/payer.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_CREATE_COMPLIANCE = \"PayerV1Controller_getComplianceData_v1\" as const;\nconst OP_GET_STATUS = \"PayerV1Controller_getComplianceStatus_v1\" as const;\nconst OP_UPDATE_STATUS = \"PayerV1Controller_updateComplianceStatus_v1\" as const;\nconst OP_CREATE_PAYMENT_DETAILS = \"PayerV1Controller_createPaymentDetails_v1\" as const;\nconst OP_GET_PAYMENT_DETAILS = \"PayerV1Controller_getPaymentDetails_v1\" as const;\n\ntype CreateComplianceBody = operations[typeof OP_CREATE_COMPLIANCE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateComplianceResponse = operations[typeof OP_CREATE_COMPLIANCE][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype ComplianceStatusResponse = operations[typeof OP_GET_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype UpdateComplianceBody = operations[typeof OP_UPDATE_STATUS][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateComplianceResponse = operations[typeof OP_UPDATE_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype CreatePaymentDetailsBody = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePaymentDetailsResponse = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype GetPaymentDetailsResponse = operations[typeof OP_GET_PAYMENT_DETAILS][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayerV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayerV1Api {\n createComplianceData(body: CreateComplianceBody, options?: PayerV1OperationOptions): Promise<CreateComplianceResponse>;\n getComplianceStatus(clientUserId: string, options?: PayerV1OperationOptions): Promise<ComplianceStatusResponse>;\n updateComplianceStatus(\n clientUserId: string,\n body: UpdateComplianceBody,\n options?: PayerV1OperationOptions,\n ): Promise<UpdateComplianceResponse>;\n createPaymentDetails(\n clientUserId: string,\n body: CreatePaymentDetailsBody,\n options?: PayerV1OperationOptions,\n ): Promise<CreatePaymentDetailsResponse>;\n getPaymentDetails(clientUserId: string, options?: PayerV1OperationOptions): Promise<GetPaymentDetailsResponse>;\n}\n\nexport function createPayerV1Api(http: HttpClient): PayerV1Api {\n return {\n async createComplianceData(body, options) {\n return requestJson<CreateComplianceResponse>(http, {\n operationId: OP_CREATE_COMPLIANCE,\n method: \"POST\",\n path: \"/v1/payer\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"response\", status: 200 },\n description: \"Legacy create compliance data\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getComplianceStatus(clientUserId, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<ComplianceStatusResponse>(http, {\n operationId: OP_GET_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy get compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateComplianceStatus(clientUserId, body, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<UpdateComplianceResponse>(http, {\n operationId: OP_UPDATE_STATUS,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_STATUS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy update compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createPaymentDetails(clientUserId, body, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<CreatePaymentDetailsResponse>(http, {\n operationId: OP_CREATE_PAYMENT_DETAILS,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"response\", status: 201 },\n description: \"Legacy create payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentDetails(clientUserId, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<GetPaymentDetailsResponse>(http, {\n operationId: OP_GET_PAYMENT_DETAILS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_PAYMENT_DETAILS, kind: \"response\", status: 200 },\n description: \"Legacy get payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 request (application/json)\nexport const PayerV1Controller_getComplianceData_v1_Request = z.object({ \"clientUserId\": z.string(), \"email\": z.string(), \"firstName\": z.string(), \"lastName\": z.string(), \"beneficiaryType\": z.enum(['individual', 'business']), \"companyName\": (z.string()).optional(), \"dateOfBirth\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": z.string(), \"postcode\": z.string(), \"country\": z.string(), \"nationality\": z.string(), \"phone\": z.string(), \"ssn\": z.string(), \"sourceOfFunds\": (z.string()).optional(), \"businessActivity\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_getComplianceData_v1_Request });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (200)\nexport const PayerV1Controller_getComplianceData_v1_200 = z.object({ \"agreementUrl\": (z.string()).optional(), \"kycUrl\": (z.string()).optional(), \"status\": z.object({ \"agreementStatus\": z.enum(['not_started', 'completed']), \"kycStatus\": z.enum(['not_started', 'completed']) }).passthrough(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getComplianceData_v1_200 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (400)\nexport const PayerV1Controller_getComplianceData_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_getComplianceData_v1_400 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (401)\nexport const PayerV1Controller_getComplianceData_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getComplianceData_v1_401 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (404)\nexport const PayerV1Controller_getComplianceData_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getComplianceData_v1_404 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (429)\nexport const PayerV1Controller_getComplianceData_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getComplianceData_v1_429 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (200)\nexport const PayerV1Controller_getComplianceStatus_v1_200 = z.object({ \"kycStatus\": (z.string()).optional(), \"agreementStatus\": (z.string()).optional(), \"isCompliant\": (z.boolean()).optional(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getComplianceStatus_v1_200 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (401)\nexport const PayerV1Controller_getComplianceStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getComplianceStatus_v1_401 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (404)\nexport const PayerV1Controller_getComplianceStatus_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getComplianceStatus_v1_404 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (429)\nexport const PayerV1Controller_getComplianceStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getComplianceStatus_v1_429 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 request (application/json)\nexport const PayerV1Controller_updateComplianceStatus_v1_Request = z.object({ \"agreementCompleted\": z.boolean() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_updateComplianceStatus_v1_Request });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (200)\nexport const PayerV1Controller_updateComplianceStatus_v1_200 = z.object({ \"success\": (z.boolean()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_updateComplianceStatus_v1_200 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (400)\nexport const PayerV1Controller_updateComplianceStatus_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_updateComplianceStatus_v1_400 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (401)\nexport const PayerV1Controller_updateComplianceStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_updateComplianceStatus_v1_401 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (404)\nexport const PayerV1Controller_updateComplianceStatus_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_updateComplianceStatus_v1_404 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (429)\nexport const PayerV1Controller_updateComplianceStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_updateComplianceStatus_v1_429 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (200)\nexport const PayerV1Controller_getPaymentDetails_v1_200 = z.object({ \"paymentDetails\": (z.array(z.object({ \"id\": (z.string()).optional(), \"userId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"beneficiaryType\": (z.string()).optional(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"status\": (z.string()).optional(), \"rails\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getPaymentDetails_v1_200 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (401)\nexport const PayerV1Controller_getPaymentDetails_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getPaymentDetails_v1_401 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (404)\nexport const PayerV1Controller_getPaymentDetails_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getPaymentDetails_v1_404 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (429)\nexport const PayerV1Controller_getPaymentDetails_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getPaymentDetails_v1_429 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 request (application/json)\nexport const PayerV1Controller_createPaymentDetails_v1_Request = z.object({ \"bankName\": z.string(), \"accountName\": z.string(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"beneficiaryType\": z.enum(['individual', 'business']), \"currency\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": (z.string()).optional(), \"country\": z.string(), \"dateOfBirth\": z.string(), \"postalCode\": z.string(), \"rails\": (z.enum(['local', 'swift', 'wire'])).optional(), \"sortCode\": (z.string()).optional(), \"iban\": (z.string()).optional(), \"swiftBic\": (z.string()).optional(), \"documentNumber\": (z.string()).optional(), \"documentType\": (z.string()).optional(), \"accountType\": (z.enum(['checking', 'savings'])).optional(), \"ribNumber\": (z.string()).optional(), \"bsbNumber\": (z.string()).optional(), \"ncc\": (z.string()).optional(), \"branchCode\": (z.string()).optional(), \"bankCode\": (z.string()).optional(), \"ifsc\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_createPaymentDetails_v1_Request });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (201)\nexport const PayerV1Controller_createPaymentDetails_v1_201 = z.object({ \"payment_detail\": (z.object({ \"id\": (z.string()).optional(), \"clientUserId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"beneficiaryType\": (z.enum(['individual', 'business'])).optional() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 201 }, schema: PayerV1Controller_createPaymentDetails_v1_201 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (400)\nexport const PayerV1Controller_createPaymentDetails_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_createPaymentDetails_v1_400 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (401)\nexport const PayerV1Controller_createPaymentDetails_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_createPaymentDetails_v1_401 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (404)\nexport const PayerV1Controller_createPaymentDetails_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_createPaymentDetails_v1_404 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (429)\nexport const PayerV1Controller_createPaymentDetails_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_createPaymentDetails_v1_429 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 request (application/json)\nexport const PayerV2Controller_getComplianceData_v2_Request = z.object({ \"clientUserId\": z.string(), \"email\": z.string(), \"firstName\": z.string(), \"lastName\": z.string(), \"beneficiaryType\": z.enum(['individual', 'business']), \"companyName\": (z.string()).optional(), \"dateOfBirth\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": z.string(), \"postcode\": z.string(), \"country\": z.string(), \"nationality\": z.string(), \"phone\": z.string(), \"ssn\": z.string(), \"sourceOfFunds\": (z.string()).optional(), \"businessActivity\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_getComplianceData_v2_Request });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (200)\nexport const PayerV2Controller_getComplianceData_v2_200 = z.object({ \"agreementUrl\": (z.string()).optional(), \"kycUrl\": (z.string()).optional(), \"status\": z.object({ \"agreementStatus\": z.enum(['not_started', 'completed']), \"kycStatus\": z.enum(['not_started', 'completed']) }).passthrough(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getComplianceData_v2_200 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (400)\nexport const PayerV2Controller_getComplianceData_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_getComplianceData_v2_400 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (401)\nexport const PayerV2Controller_getComplianceData_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getComplianceData_v2_401 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (404)\nexport const PayerV2Controller_getComplianceData_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getComplianceData_v2_404 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (429)\nexport const PayerV2Controller_getComplianceData_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getComplianceData_v2_429 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (200)\nexport const PayerV2Controller_getComplianceStatus_v2_200 = z.object({ \"kycStatus\": (z.string()).optional(), \"agreementStatus\": (z.string()).optional(), \"isCompliant\": (z.boolean()).optional(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getComplianceStatus_v2_200 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (401)\nexport const PayerV2Controller_getComplianceStatus_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getComplianceStatus_v2_401 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (404)\nexport const PayerV2Controller_getComplianceStatus_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getComplianceStatus_v2_404 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (429)\nexport const PayerV2Controller_getComplianceStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getComplianceStatus_v2_429 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 request (application/json)\nexport const PayerV2Controller_updateComplianceStatus_v2_Request = z.object({ \"agreementCompleted\": z.boolean() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_updateComplianceStatus_v2_Request });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (200)\nexport const PayerV2Controller_updateComplianceStatus_v2_200 = z.object({ \"success\": (z.boolean()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_updateComplianceStatus_v2_200 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (400)\nexport const PayerV2Controller_updateComplianceStatus_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_updateComplianceStatus_v2_400 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (401)\nexport const PayerV2Controller_updateComplianceStatus_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_updateComplianceStatus_v2_401 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (404)\nexport const PayerV2Controller_updateComplianceStatus_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_updateComplianceStatus_v2_404 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (429)\nexport const PayerV2Controller_updateComplianceStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_updateComplianceStatus_v2_429 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (200)\nexport const PayerV2Controller_getPaymentDetails_v2_200 = z.object({ \"paymentDetails\": (z.array(z.object({ \"id\": (z.string()).optional(), \"userId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"beneficiaryType\": (z.string()).optional(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"status\": (z.string()).optional(), \"rails\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getPaymentDetails_v2_200 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (401)\nexport const PayerV2Controller_getPaymentDetails_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getPaymentDetails_v2_401 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (404)\nexport const PayerV2Controller_getPaymentDetails_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getPaymentDetails_v2_404 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (429)\nexport const PayerV2Controller_getPaymentDetails_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getPaymentDetails_v2_429 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 request (application/json)\nexport const PayerV2Controller_createPaymentDetails_v2_Request = z.object({ \"bankName\": z.string(), \"accountName\": z.string(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"beneficiaryType\": z.enum(['individual', 'business']), \"currency\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": (z.string()).optional(), \"country\": z.string(), \"dateOfBirth\": z.string(), \"postalCode\": z.string(), \"rails\": (z.enum(['local', 'swift', 'wire'])).optional(), \"sortCode\": (z.string()).optional(), \"iban\": (z.string()).optional(), \"swiftBic\": (z.string()).optional(), \"documentNumber\": (z.string()).optional(), \"documentType\": (z.string()).optional(), \"accountType\": (z.enum(['checking', 'savings'])).optional(), \"ribNumber\": (z.string()).optional(), \"bsbNumber\": (z.string()).optional(), \"ncc\": (z.string()).optional(), \"branchCode\": (z.string()).optional(), \"bankCode\": (z.string()).optional(), \"ifsc\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_createPaymentDetails_v2_Request });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (201)\nexport const PayerV2Controller_createPaymentDetails_v2_201 = z.object({ \"payment_detail\": (z.object({ \"id\": (z.string()).optional(), \"clientUserId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"beneficiaryType\": (z.enum(['individual', 'business'])).optional() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 201 }, schema: PayerV2Controller_createPaymentDetails_v2_201 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (400)\nexport const PayerV2Controller_createPaymentDetails_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_createPaymentDetails_v2_400 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (401)\nexport const PayerV2Controller_createPaymentDetails_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_createPaymentDetails_v2_401 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (404)\nexport const PayerV2Controller_createPaymentDetails_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_createPaymentDetails_v2_404 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (429)\nexport const PayerV2Controller_createPaymentDetails_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_createPaymentDetails_v2_429 });\n","export {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./payer.v2.facade\";\n\nimport \"../../../validation/generated/groups/payer.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_CREATE_COMPLIANCE = \"PayerV2Controller_getComplianceData_v2\" as const;\nconst OP_GET_STATUS = \"PayerV2Controller_getComplianceStatus_v2\" as const;\nconst OP_UPDATE_STATUS = \"PayerV2Controller_updateComplianceStatus_v2\" as const;\nconst OP_CREATE_PAYMENT_DETAILS = \"PayerV2Controller_createPaymentDetails_v2\" as const;\nconst OP_GET_PAYMENT_DETAILS = \"PayerV2Controller_getPaymentDetails_v2\" as const;\n\ntype CreateComplianceBody = operations[typeof OP_CREATE_COMPLIANCE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateComplianceResponse = operations[typeof OP_CREATE_COMPLIANCE][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype ComplianceStatusResponse = operations[typeof OP_GET_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype UpdateComplianceBody = operations[typeof OP_UPDATE_STATUS][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateComplianceResponse = operations[typeof OP_UPDATE_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype CreatePaymentDetailsBody = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePaymentDetailsResponse = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype GetPaymentDetailsResponse = operations[typeof OP_GET_PAYMENT_DETAILS][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayerV2OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayerV2Api {\n createComplianceData(body: CreateComplianceBody, options?: PayerV2OperationOptions): Promise<CreateComplianceResponse>;\n getComplianceStatus(clientUserId: string, options?: PayerV2OperationOptions): Promise<ComplianceStatusResponse>;\n updateComplianceStatus(\n clientUserId: string,\n body: UpdateComplianceBody,\n options?: PayerV2OperationOptions,\n ): Promise<UpdateComplianceResponse>;\n createPaymentDetails(\n clientUserId: string,\n body: CreatePaymentDetailsBody,\n options?: PayerV2OperationOptions,\n ): Promise<CreatePaymentDetailsResponse>;\n getPaymentDetails(clientUserId: string, options?: PayerV2OperationOptions): Promise<GetPaymentDetailsResponse>;\n}\n\nexport function createPayerV2Api(http: HttpClient): PayerV2Api {\n return {\n async createComplianceData(body, options) {\n return requestJson<CreateComplianceResponse>(http, {\n operationId: OP_CREATE_COMPLIANCE,\n method: \"POST\",\n path: \"/v2/payer\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"response\", status: 200 },\n description: \"Create compliance data\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getComplianceStatus(clientUserId, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<ComplianceStatusResponse>(http, {\n operationId: OP_GET_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_STATUS, kind: \"response\", status: 200 },\n description: \"Get compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateComplianceStatus(clientUserId, body, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<UpdateComplianceResponse>(http, {\n operationId: OP_UPDATE_STATUS,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_STATUS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_STATUS, kind: \"response\", status: 200 },\n description: \"Update compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createPaymentDetails(clientUserId, body, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<CreatePaymentDetailsResponse>(http, {\n operationId: OP_CREATE_PAYMENT_DETAILS,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"response\", status: 201 },\n description: \"Create payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentDetails(clientUserId, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<GetPaymentDetailsResponse>(http, {\n operationId: OP_GET_PAYMENT_DETAILS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_PAYMENT_DETAILS, kind: \"response\", status: 200 },\n description: \"Get payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","import {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./v1\";\nimport {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./v2\";\nimport type { HttpClient } from \"../../core/http/http.types\";\n\nexport type PayerOperationOptions = PayerV2OperationOptions;\n\nexport interface PayerApi extends PayerV2Api {\n legacy: PayerV1Api;\n}\n\nexport { type PayerV1Api, type PayerV2Api, type PayerV1OperationOptions, type PayerV2OperationOptions };\n\nexport function createPayerApi(http: HttpClient): PayerApi {\n const v2 = createPayerV2Api(http);\n const legacy = createPayerV1Api(http);\n return Object.assign({ legacy }, v2);\n}\n","export {\n createPaymentsApi,\n type PaymentsApi,\n type PaymentSearchOptions,\n type PaymentSearchResult,\n type PaymentSearchQuery,\n type PaymentRecord,\n type PaymentSearchPagination,\n} from \"./payments.facade\";\n\nimport \"../../validation/generated/groups/v2/payments.schemas.generated\";\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (200)\nexport const PaymentV2Controller_searchPayments_v2_200 = z.object({ \"payments\": z.array(z.object({ \"id\": z.string(), \"amount\": z.string(), \"sourceNetwork\": z.string(), \"destinationNetwork\": z.string(), \"sourceTxHash\": (z.string().nullable()).optional(), \"destinationTxHash\": (z.string().nullable()).optional(), \"timestamp\": z.string(), \"type\": z.enum(['direct', 'conversion', 'crosschain', 'recurring']), \"conversionRateSource\": (z.string().nullable()).optional(), \"conversionRateDestination\": (z.string().nullable()).optional(), \"convertedAmountSource\": (z.string().nullable()).optional(), \"convertedAmountDestination\": (z.string().nullable()).optional(), \"currency\": z.string(), \"paymentCurrency\": z.string(), \"fees\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough()).nullable()).optional(), \"recurringPaymentId\": (z.string().nullable()).optional(), \"rateProvider\": (z.enum(['lifi', 'chainlink', 'coingecko', 'unknown'])).optional(), \"request\": (z.object({ \"requestId\": (z.string()).optional(), \"paymentReference\": (z.string()).optional(), \"hasBeenPaid\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough().nullable()).optional(), \"reference\": (z.string().nullable()).optional() }).passthrough()).optional() }).passthrough()), \"pagination\": z.object({ \"total\": z.number(), \"limit\": z.number(), \"offset\": z.number(), \"hasMore\": z.boolean() }).passthrough() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 200 }, schema: PaymentV2Controller_searchPayments_v2_200 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (400)\nexport const PaymentV2Controller_searchPayments_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"errors\": (z.array(z.object({ \"field\": (z.string()).optional(), \"message\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 400 }, schema: PaymentV2Controller_searchPayments_v2_400 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (401)\nexport const PaymentV2Controller_searchPayments_v2_401 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 401 }, schema: PaymentV2Controller_searchPayments_v2_401 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (429)\nexport const PaymentV2Controller_searchPayments_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 429 }, schema: PaymentV2Controller_searchPayments_v2_429 });\n","import { z } from \"zod\";\n\nimport \"../../validation/generated/groups/v2/payments.schemas.generated\";\nimport { schemaRegistry } from \"../../validation/schema.registry\";\n\nexport const OP_SEARCH_PAYMENTS = \"PaymentV2Controller_searchPayments_v2\";\n\nconst AddressSchema = z\n .object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().optional(),\n })\n .passthrough();\n\nexport const CustomerInfoSchema = z\n .object({\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n address: AddressSchema.optional(),\n })\n .passthrough();\n\nexport const FeeSchema = z\n .object({\n type: z.enum([\"gas\", \"platform\", \"crosschain\", \"crypto-to-fiat\", \"offramp\"]).optional(),\n stage: z.enum([\"sending\", \"receiving\", \"proxying\", \"refunding\"]).optional(),\n provider: z.string().optional(),\n amount: z.string().optional(),\n amountInUSD: z.string().optional(),\n currency: z.string().optional(),\n receiverAddress: z.string().optional(),\n network: z.string().optional(),\n rateProvider: z.string().optional(),\n })\n .passthrough();\n\nexport const RequestInfoSchema = z\n .object({\n requestId: z.string().optional(),\n paymentReference: z.string().optional(),\n hasBeenPaid: z.boolean().optional(),\n customerInfo: CustomerInfoSchema.nullable().optional(),\n reference: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport const PaymentRecordSchema = z\n .object({\n id: z.string(),\n amount: z.string(),\n sourceNetwork: z.string(),\n destinationNetwork: z.string(),\n sourceTxHash: z.string().nullable().optional(),\n destinationTxHash: z.string().nullable().optional(),\n timestamp: z.string(),\n type: z.enum([\"direct\", \"conversion\", \"crosschain\", \"recurring\"]),\n conversionRateSource: z.string().nullable().optional(),\n conversionRateDestination: z.string().nullable().optional(),\n convertedAmountSource: z.string().nullable().optional(),\n convertedAmountDestination: z.string().nullable().optional(),\n currency: z.string(),\n paymentCurrency: z.string(),\n fees: z.array(FeeSchema).nullable().optional(),\n recurringPaymentId: z.string().nullable().optional(),\n rateProvider: z.enum([\"lifi\", \"chainlink\", \"coingecko\", \"unknown\"]).nullable().optional(),\n request: RequestInfoSchema.optional(),\n })\n .passthrough();\n\nexport const PaginationSchema = z\n .object({\n total: z.number(),\n limit: z.number(),\n offset: z.number(),\n hasMore: z.boolean(),\n })\n .passthrough();\n\nexport const PaymentSearchResponseSchema = z\n .object({\n payments: z.array(PaymentRecordSchema),\n pagination: PaginationSchema,\n })\n .passthrough();\n\nexport type PaymentRecord = z.infer<typeof PaymentRecordSchema>;\nexport type PaymentFee = z.infer<typeof FeeSchema>;\nexport type PaymentSearchResponse = z.infer<typeof PaymentSearchResponseSchema>;\nexport type PaymentSearchPagination = z.infer<typeof PaginationSchema>;\n\nschemaRegistry.register({\n key: { operationId: OP_SEARCH_PAYMENTS, kind: \"response\", status: 200 },\n schema: PaymentSearchResponseSchema,\n});\n","import type { RequestOptions } from \"../../core/http/http.types\";\nimport type { operations } from \"../../generated/openapi-types\";\n\ntype QueryValue = string | number | boolean | (string | number | boolean)[];\n\n/**\n * Builds a query object while stripping out undefined entries so the HTTP helper\n * does not emit spurious `param=undefined` pairs.\n */\nexport function buildRequestQuery(input?: Record<string, unknown>): RequestOptions[\"query\"] | undefined {\n if (!input) return undefined;\n const entries = Object.entries(input).filter(([, value]) => value !== undefined);\n if (entries.length === 0) return undefined;\n return Object.fromEntries(entries) as Record<string, QueryValue | undefined>;\n}\n\ntype LegacyStatusApiResponse =\n operations[\"RequestControllerV1_getRequestStatus_v1\"][\"responses\"][200][\"content\"][\"application/json\"];\ntype StatusApiResponseV2 =\n operations[\"RequestControllerV2_getRequestStatus_v2\"][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface RequestStatusAddress {\n street?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n}\n\nexport interface RequestStatusCustomerInfo {\n firstName?: string;\n lastName?: string;\n email?: string;\n address?: RequestStatusAddress;\n}\n\nexport type RequestStatusKind = \"paid\" | \"pending\" | \"cancelled\" | \"overdue\" | \"unknown\";\n\ninterface RequestStatusBase {\n paymentReference?: string;\n requestId?: string;\n isListening?: boolean;\n txHash: string | null;\n status?: string;\n recurrence?: Record<string, unknown>;\n originalRequestId?: string;\n originalRequestPaymentReference?: string;\n isRecurrenceStopped?: boolean;\n isCryptoToFiatAvailable?: boolean;\n payments?: Array<Record<string, unknown>>;\n customerInfo?: RequestStatusCustomerInfo | null;\n reference?: string | null;\n hasBeenPaid?: boolean;\n}\n\nexport type RequestStatusResult =\n | (RequestStatusBase & { kind: \"paid\"; hasBeenPaid: true })\n | (RequestStatusBase & { kind: \"pending\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"cancelled\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"overdue\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"unknown\"; hasBeenPaid?: boolean });\n\nexport type LegacyRequestStatusResult = Extract<RequestStatusResult, { kind: \"paid\" | \"pending\" }>;\n\nconst STATUS_KIND_MAP: Record<string, RequestStatusKind> = {\n paid: \"paid\",\n completed: \"paid\",\n settled: \"paid\",\n pending: \"pending\",\n processing: \"pending\",\n open: \"pending\",\n awaitingpayment: \"pending\",\n awaiting_payment: \"pending\",\n cancelled: \"cancelled\",\n canceled: \"cancelled\",\n voided: \"cancelled\",\n overdue: \"overdue\",\n expired: \"overdue\",\n};\n\nfunction normalizeReference(value: string | null | undefined): string | null | undefined {\n if (value === undefined) return undefined;\n return value;\n}\n\nfunction normalizeCustomerInfo(value: RequestStatusCustomerInfo | null | undefined): RequestStatusCustomerInfo | null | undefined {\n if (value === undefined) return undefined;\n if (value === null) return null;\n return {\n firstName: value.firstName ?? undefined,\n lastName: value.lastName ?? undefined,\n email: value.email ?? undefined,\n address: value.address\n ? {\n street: value.address.street ?? undefined,\n city: value.address.city ?? undefined,\n state: value.address.state ?? undefined,\n postalCode: value.address.postalCode ?? undefined,\n country: value.address.country ?? undefined,\n }\n : undefined,\n };\n}\n\nfunction normalizePayments(payments: StatusApiResponseV2[\"payments\"]): Array<Record<string, unknown>> | undefined {\n if (!payments) return undefined;\n return payments.map((payment) => ({ ...payment })) as Array<Record<string, unknown>>;\n}\n\nfunction buildStatusBase(\n raw: LegacyStatusApiResponse | StatusApiResponseV2,\n overrides?: Partial<RequestStatusBase>,\n): RequestStatusBase {\n return {\n paymentReference: raw.paymentReference ?? undefined,\n requestId: raw.requestId ?? undefined,\n isListening: \"isListening\" in raw ? raw.isListening ?? undefined : undefined,\n txHash: raw.txHash ?? null,\n hasBeenPaid: raw.hasBeenPaid ?? false,\n status: \"status\" in raw ? (raw).status ?? undefined : undefined,\n recurrence:\n \"recurrence\" in raw ? ((raw).recurrence as Record<string, unknown> | undefined) : undefined,\n originalRequestId: \"originalRequestId\" in raw ? (raw).originalRequestId ?? undefined : undefined,\n originalRequestPaymentReference:\n \"originalRequestPaymentReference\" in raw\n ? (raw).originalRequestPaymentReference ?? undefined\n : undefined,\n isRecurrenceStopped:\n \"isRecurrenceStopped\" in raw ? (raw).isRecurrenceStopped ?? undefined : undefined,\n isCryptoToFiatAvailable:\n \"isCryptoToFiatAvailable\" in raw\n ? (raw).isCryptoToFiatAvailable ?? undefined\n : undefined,\n payments: \"payments\" in raw ? normalizePayments((raw).payments) : undefined,\n customerInfo:\n \"customerInfo\" in raw\n ? normalizeCustomerInfo(\n (raw).customerInfo as RequestStatusCustomerInfo | null | undefined,\n )\n : undefined,\n reference:\n \"reference\" in raw ? normalizeReference((raw).reference ?? null) : undefined,\n ...overrides,\n };\n}\n\nexport function normalizeLegacyStatusResponse(raw: LegacyStatusApiResponse): LegacyRequestStatusResult {\n if (raw.hasBeenPaid) {\n return {\n kind: \"paid\",\n ...buildStatusBase(raw, { hasBeenPaid: true }),\n hasBeenPaid: true,\n };\n }\n\n return {\n kind: \"pending\",\n ...buildStatusBase(raw, { hasBeenPaid: false }),\n hasBeenPaid: false,\n };\n}\n\nexport function normalizeRequestStatusResponse(raw: StatusApiResponseV2): RequestStatusResult {\n const statusKey = raw.status?.trim().toLowerCase();\n const mapped = statusKey ? STATUS_KIND_MAP[statusKey] : undefined;\n const kind: RequestStatusKind = raw.hasBeenPaid\n ? \"paid\"\n : mapped ?? (statusKey ? \"unknown\" : \"pending\");\n\n if (kind === \"paid\") {\n return {\n kind,\n ...buildStatusBase(raw, { hasBeenPaid: true }),\n hasBeenPaid: true,\n };\n }\n\n return {\n kind,\n ...buildStatusBase(raw, { hasBeenPaid: false }),\n hasBeenPaid: false,\n };\n}\n","import {\n OP_SEARCH_PAYMENTS,\n type PaymentSearchPagination,\n type PaymentSearchResponse,\n type PaymentRecord,\n} from \"./payments.schemas\";\nimport type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { buildRequestQuery } from \"../requests/request.helpers\";\n\nexport type PaymentSearchQuery = operations[typeof OP_SEARCH_PAYMENTS][\"parameters\"][\"query\"];\n\nexport interface PaymentSearchOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type PaymentSearchResult = PaymentSearchResponse;\n\nexport interface PaymentsApi {\n search(query: PaymentSearchQuery, options?: PaymentSearchOptions): Promise<PaymentSearchResult>;\n}\n\nexport function createPaymentsApi(http: HttpClient): PaymentsApi {\n return {\n async search(query, options) {\n const requestQuery = buildRequestQuery(query ? { ...query } : undefined);\n return requestJson<PaymentSearchResponse>(http, {\n operationId: OP_SEARCH_PAYMENTS,\n method: \"GET\",\n path: \"/v2/payments\",\n query: requestQuery,\n schemaKey: { operationId: OP_SEARCH_PAYMENTS, kind: \"response\", status: 200 },\n description: \"Search payments\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n\nexport type { PaymentRecord, PaymentSearchPagination };\n","export {\n createPayoutsApi,\n type PayoutsApi,\n type PayoutOperationOptions,\n} from \"./payouts.facade\";\n\nimport \"../../validation/generated/groups/pay.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\n\nconst OP_CREATE = \"PayoutV2Controller_payRequest_v2\" as const;\nconst OP_CREATE_BATCH = \"PayoutV2Controller_payBatchRequest_v2\" as const;\nconst OP_RECURRING_STATUS = \"PayoutV2Controller_getRecurringPaymentStatus_v2\" as const;\nconst OP_SUBMIT_SIGNATURE = \"PayoutV2Controller_submitRecurringPaymentSignature_v2\" as const;\nconst OP_UPDATE_RECURRING = \"PayoutV2Controller_updateRecurringPayment_v2\" as const;\n\ntype CreatePayoutBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePayoutResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype CreateBatchBody = operations[typeof OP_CREATE_BATCH][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateBatchResponse = operations[typeof OP_CREATE_BATCH][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype RecurringStatusResponse = operations[typeof OP_RECURRING_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype SubmitRecurringSignatureBody = operations[typeof OP_SUBMIT_SIGNATURE][\"requestBody\"][\"content\"][\"application/json\"];\ntype SubmitRecurringSignatureResponse = operations[typeof OP_SUBMIT_SIGNATURE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype UpdateRecurringBody = operations[typeof OP_UPDATE_RECURRING][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateRecurringResponse = operations[typeof OP_UPDATE_RECURRING][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayoutOperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayoutsApi {\n create(body: CreatePayoutBody, options?: PayoutOperationOptions): Promise<CreatePayoutResponse>;\n createBatch(body: CreateBatchBody, options?: PayoutOperationOptions): Promise<CreateBatchResponse>;\n getRecurringStatus(recurringId: string, options?: PayoutOperationOptions): Promise<RecurringStatusResponse>;\n submitRecurringSignature(recurringId: string, body: SubmitRecurringSignatureBody, options?: PayoutOperationOptions): Promise<SubmitRecurringSignatureResponse>;\n updateRecurring(recurringId: string, body: UpdateRecurringBody, options?: PayoutOperationOptions): Promise<UpdateRecurringResponse>;\n}\n\nexport function createPayoutsApi(http: HttpClient): PayoutsApi {\n return {\n async create(body, options) {\n return requestJson<CreatePayoutResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v2/payouts\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create payout\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createBatch(body, options) {\n return requestJson<CreateBatchResponse>(http, {\n operationId: OP_CREATE_BATCH,\n method: \"POST\",\n path: \"/v2/payouts/batch\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_BATCH, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_BATCH, kind: \"response\", status: 201 },\n description: \"Create payout batch\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getRecurringStatus(recurringId, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<RecurringStatusResponse>(http, {\n operationId: OP_RECURRING_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_RECURRING_STATUS, kind: \"response\", status: 200 },\n description: \"Get recurring payout status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async submitRecurringSignature(recurringId, body, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<SubmitRecurringSignatureResponse>(http, {\n operationId: OP_SUBMIT_SIGNATURE,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SUBMIT_SIGNATURE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_SUBMIT_SIGNATURE, kind: \"response\", status: 201 },\n description: \"Submit recurring payout signature\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateRecurring(recurringId, body, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<UpdateRecurringResponse>(http, {\n operationId: OP_UPDATE_RECURRING,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_RECURRING, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_RECURRING, kind: \"response\", status: 200 },\n description: \"Update recurring payout\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","export {\n createRequestsApi,\n type RequestsApi,\n type RequestOperationOptions,\n type GetPaymentRoutesOptions,\n type PaymentRoutesResponse,\n type PaymentRoute,\n type GetPaymentCalldataOptions,\n type PaymentCalldataResult,\n type RequestStatusResult,\n} from \"./requests.facade\";\nexport {\n type RequestStatusKind,\n type RequestStatusCustomerInfo,\n type RequestStatusAddress,\n} from \"./request.helpers\";\n\nimport \"../../validation/generated/groups/request.schemas.generated\";\nimport \"../../validation/overrides/request-status.schema\";\nimport \"../../validation/overrides/request-payment-routes.schema\";\n","import { buildRequestQuery, normalizeRequestStatusResponse, type RequestStatusResult } from \"./request.helpers\";\nimport type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { ValidationError } from \"../../validation/zod.helpers\";\n\nconst OP_CREATE = \"RequestControllerV2_createRequest_v2\" as const;\nconst OP_PAYMENT_ROUTES = \"RequestControllerV2_getRequestPaymentRoutes_v2\" as const;\nconst OP_PAYMENT_CALLDATA = \"RequestControllerV2_getPaymentCalldata_v2\" as const;\nconst OP_UPDATE = \"RequestControllerV2_updateRequest_v2\" as const;\nconst OP_SEND_PAYMENT_INTENT = \"RequestControllerV2_sendPaymentIntent_v2\" as const;\nconst OP_REQUEST_STATUS = \"RequestControllerV2_getRequestStatus_v2\" as const;\n\ntype CreateRequestBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateRequestResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\nexport type PaymentRoutesResponse = operations[typeof OP_PAYMENT_ROUTES][\"responses\"][200][\"content\"][\"application/json\"];\nexport type PaymentRoute = PaymentRoutesResponse[\"routes\"][number];\ntype PaymentRoutesQuery = NonNullable<operations[typeof OP_PAYMENT_ROUTES][\"parameters\"][\"query\"]>;\n\ntype PaymentCalldataQuery = NonNullable<operations[typeof OP_PAYMENT_CALLDATA][\"parameters\"][\"query\"]>;\ntype RawPaymentCalldata = operations[typeof OP_PAYMENT_CALLDATA][\"responses\"][200][\"content\"][\"application/json\"];\ntype RequestStatusResponse = operations[typeof OP_REQUEST_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype PaymentIntentPayload = Extract<RawPaymentCalldata, { paymentIntentId: string }>;\ntype CalldataPayload = Extract<RawPaymentCalldata, { transactions: unknown }>;\n\nconst KIND_CALLDATA = \"calldata\" as const;\nconst KIND_PAYMENT_INTENT = \"paymentIntent\" as const;\n\nfunction isPaymentIntentPayload(payload: RawPaymentCalldata): payload is PaymentIntentPayload {\n return \"paymentIntentId\" in payload;\n}\n\nfunction isCalldataPayload(payload: RawPaymentCalldata): payload is CalldataPayload {\n return \"transactions\" in payload;\n}\n\ntype SendPaymentIntentBody = operations[typeof OP_SEND_PAYMENT_INTENT][\"requestBody\"][\"content\"][\"application/json\"];\n\nexport interface RequestOperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type GetPaymentRoutesOptions = RequestOperationOptions & {\n wallet: PaymentRoutesQuery[\"wallet\"];\n} & Partial<Omit<PaymentRoutesQuery, \"wallet\">>;\n\nexport type GetPaymentCalldataOptions = RequestOperationOptions & Partial<PaymentCalldataQuery>;\n\nexport type PaymentCalldataResult =\n | ({ kind: \"calldata\" } & CalldataPayload)\n | ({ kind: \"paymentIntent\" } & PaymentIntentPayload);\nexport type { RequestStatusResult };\n\nexport interface RequestsApi {\n create(body: CreateRequestBody, options?: RequestOperationOptions): Promise<CreateRequestResponse>;\n getPaymentRoutes(requestId: string, options: GetPaymentRoutesOptions): Promise<PaymentRoutesResponse>;\n getPaymentCalldata(requestId: string, options?: GetPaymentCalldataOptions): Promise<PaymentCalldataResult>;\n getRequestStatus(requestId: string, options?: RequestOperationOptions): Promise<RequestStatusResult>;\n update(requestId: string, options?: RequestOperationOptions): Promise<void>;\n sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestOperationOptions): Promise<void>;\n}\n\nexport function createRequestsApi(http: HttpClient): RequestsApi {\n return {\n async create(body: CreateRequestBody, options?: RequestOperationOptions) {\n return requestJson<CreateRequestResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v2/request\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create request\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getRequestStatus(requestId: string, options?: RequestOperationOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}`;\n const raw = await requestJson<RequestStatusResponse>(http, {\n operationId: OP_REQUEST_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_REQUEST_STATUS, kind: \"response\", status: 200 },\n description: \"Request status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n return normalizeRequestStatusResponse(raw);\n },\n\n async getPaymentRoutes(requestId: string, options: GetPaymentRoutesOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}/routes`;\n return requestJson<PaymentRoutesResponse>(http, {\n operationId: OP_PAYMENT_ROUTES,\n method: \"GET\",\n path,\n query: buildRequestQuery({\n wallet: options.wallet,\n amount: options.amount,\n feePercentage: options.feePercentage,\n feeAddress: options.feeAddress,\n }),\n schemaKey: { operationId: OP_PAYMENT_ROUTES, kind: \"response\", status: 200 },\n description: \"Payment routes\",\n signal: options.signal,\n timeoutMs: options.timeoutMs,\n validation: options.validation,\n meta: options.meta,\n });\n },\n\n async getPaymentCalldata(requestId: string, options?: GetPaymentCalldataOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}/pay`;\n const queryInput: Record<string, unknown> = {\n wallet: options?.wallet,\n chain: options?.chain,\n token: options?.token,\n amount: options?.amount,\n clientUserId: options?.clientUserId,\n paymentDetailsId: options?.paymentDetailsId,\n feePercentage: options?.feePercentage,\n feeAddress: options?.feeAddress,\n };\n const raw = await requestJson<RawPaymentCalldata>(http, {\n operationId: OP_PAYMENT_CALLDATA,\n method: \"GET\",\n path,\n query: buildRequestQuery(queryInput),\n schemaKey: { operationId: OP_PAYMENT_CALLDATA, kind: \"response\", status: 200 },\n description: \"Payment calldata\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n if (isCalldataPayload(raw)) {\n return { kind: KIND_CALLDATA, ...raw };\n }\n if (isPaymentIntentPayload(raw)) {\n return { kind: KIND_PAYMENT_INTENT, ...raw };\n }\n\n throw new ValidationError(\"Unexpected payment calldata response\", raw);\n },\n\n async update(requestId: string, options?: RequestOperationOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}`;\n await requestVoid(http, {\n operationId: OP_UPDATE,\n method: \"PATCH\",\n path,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestOperationOptions) {\n const path = `/v2/request/payment-intents/${encodeURIComponent(paymentIntentId)}`;\n await requestVoid(http, {\n operationId: OP_SEND_PAYMENT_INTENT,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SEND_PAYMENT_INTENT, kind: \"request\", variant: \"application/json\" },\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 request (application/json)\nexport const RequestControllerV1_createRequest_v1_Request = z.object({ \"payer\": (z.string()).optional(), \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']) }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'request', variant: 'application/json' }, schema: RequestControllerV1_createRequest_v1_Request });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (201)\nexport const RequestControllerV1_createRequest_v1_201 = z.object({ \"paymentReference\": (z.string()).optional(), \"requestID\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 201 }, schema: RequestControllerV1_createRequest_v1_201 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (400)\nexport const RequestControllerV1_createRequest_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_createRequest_v1_400 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (401)\nexport const RequestControllerV1_createRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_createRequest_v1_401 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (404)\nexport const RequestControllerV1_createRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_createRequest_v1_404 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (429)\nexport const RequestControllerV1_createRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_createRequest_v1_429 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (200)\nexport const RequestControllerV1_getRequestStatus_v1_200 = z.object({ \"hasBeenPaid\": (z.boolean()).optional(), \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional(), \"isListening\": (z.boolean()).optional(), \"txHash\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getRequestStatus_v1_200 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (401)\nexport const RequestControllerV1_getRequestStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getRequestStatus_v1_401 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (404)\nexport const RequestControllerV1_getRequestStatus_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getRequestStatus_v1_404 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (429)\nexport const RequestControllerV1_getRequestStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getRequestStatus_v1_429 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (200)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_200 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (401)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_401 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (404)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_404 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (429)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_429 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (200)\nexport const RequestControllerV1_getPaymentCalldata_v1_200 = z.union([z.object({ \"transactions\": z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": (z.enum(['BigNumber'])).optional(), \"hex\": (z.string()).optional() }).passthrough() }).passthrough()), \"metadata\": z.object({ \"stepsRequired\": z.number(), \"needsApproval\": z.boolean(), \"approvalTransactionIndex\": (z.number().nullable()).optional(), \"hasEnoughBalance\": z.boolean(), \"hasEnoughGas\": z.boolean() }).passthrough() }).passthrough(), z.object({ \"paymentIntentId\": z.string(), \"paymentIntent\": z.string(), \"approvalPermitPayload\": (z.string().nullable()).optional(), \"approvalCalldata\": (z.object({ \"to\": (z.string()).optional(), \"data\": (z.string()).optional(), \"value\": (z.string()).optional() }).passthrough().nullable()).optional(), \"metadata\": z.object({ \"supportsEIP2612\": z.boolean() }).passthrough() }).passthrough()]);\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getPaymentCalldata_v1_200 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (400)\nexport const RequestControllerV1_getPaymentCalldata_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_getPaymentCalldata_v1_400 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (401)\nexport const RequestControllerV1_getPaymentCalldata_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getPaymentCalldata_v1_401 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (404)\nexport const RequestControllerV1_getPaymentCalldata_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getPaymentCalldata_v1_404 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (429)\nexport const RequestControllerV1_getPaymentCalldata_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getPaymentCalldata_v1_429 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (200)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_200 = z.object({ \"routes\": z.array(z.object({ \"id\": z.string(), \"fee\": z.number(), \"feeBreakdown\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding', 'overall'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough())).optional(), \"speed\": z.union([z.string(), z.number()]), \"price_impact\": (z.number()).optional(), \"chain\": z.string(), \"token\": z.string() }).passthrough()) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_200 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (400)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_400 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (401)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_401 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (404)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_404 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (429)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_429 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 request (application/json)\nexport const RequestControllerV1_sendPaymentIntent_v1_Request = z.object({ \"signedPaymentIntent\": z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough(), \"signedApprovalPermit\": (z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'request', variant: 'application/json' }, schema: RequestControllerV1_sendPaymentIntent_v1_Request });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (401)\nexport const RequestControllerV1_sendPaymentIntent_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_sendPaymentIntent_v1_401 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (404)\nexport const RequestControllerV1_sendPaymentIntent_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_sendPaymentIntent_v1_404 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (429)\nexport const RequestControllerV1_sendPaymentIntent_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_sendPaymentIntent_v1_429 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 request (application/json)\nexport const RequestControllerV2_createRequest_v2_Request = z.object({ \"payer\": (z.string()).optional(), \"payee\": (z.string()).optional(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']) }).passthrough()).optional(), \"isCryptoToFiatAvailable\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough()).optional(), \"reference\": (z.string()).optional(), \"originalRequestId\": (z.string()).optional(), \"originalRequestPaymentReference\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'request', variant: 'application/json' }, schema: RequestControllerV2_createRequest_v2_Request });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (201)\nexport const RequestControllerV2_createRequest_v2_201 = z.object({ \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 201 }, schema: RequestControllerV2_createRequest_v2_201 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (400)\nexport const RequestControllerV2_createRequest_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_createRequest_v2_400 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (404)\nexport const RequestControllerV2_createRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_createRequest_v2_404 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (429)\nexport const RequestControllerV2_createRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_createRequest_v2_429 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (200)\nexport const RequestControllerV2_getRequestStatus_v2_200 = z.object({ \"hasBeenPaid\": (z.boolean()).optional(), \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional(), \"isListening\": (z.boolean()).optional(), \"txHash\": (z.string().nullable()).optional(), \"recurrence\": (z.object({ }).passthrough()).optional(), \"originalRequestId\": (z.string()).optional(), \"status\": (z.string()).optional(), \"isCryptoToFiatAvailable\": (z.boolean()).optional(), \"originalRequestPaymentReference\": (z.string()).optional(), \"payments\": (z.array(z.object({ }).passthrough())).optional(), \"isRecurrenceStopped\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough().nullable()).optional(), \"reference\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getRequestStatus_v2_200 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (404)\nexport const RequestControllerV2_getRequestStatus_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getRequestStatus_v2_404 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (429)\nexport const RequestControllerV2_getRequestStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getRequestStatus_v2_429 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (200)\nexport const RequestControllerV2_updateRequest_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_updateRequest_v2_200 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (404)\nexport const RequestControllerV2_updateRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_updateRequest_v2_404 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (429)\nexport const RequestControllerV2_updateRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_updateRequest_v2_429 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (200)\nexport const RequestControllerV2_getPaymentCalldata_v2_200 = z.union([z.object({ \"transactions\": z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": (z.enum(['BigNumber'])).optional(), \"hex\": (z.string()).optional() }).passthrough() }).passthrough()), \"metadata\": z.object({ \"stepsRequired\": z.number(), \"needsApproval\": z.boolean(), \"approvalTransactionIndex\": (z.number().nullable()).optional(), \"hasEnoughBalance\": z.boolean(), \"hasEnoughGas\": z.boolean() }).passthrough() }).passthrough(), z.object({ \"paymentIntentId\": z.string(), \"paymentIntent\": z.string(), \"approvalPermitPayload\": (z.string().nullable()).optional(), \"approvalCalldata\": (z.object({ \"to\": (z.string()).optional(), \"data\": (z.string()).optional(), \"value\": (z.string()).optional() }).passthrough().nullable()).optional(), \"metadata\": z.object({ \"supportsEIP2612\": z.boolean() }).passthrough() }).passthrough()]);\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getPaymentCalldata_v2_200 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (400)\nexport const RequestControllerV2_getPaymentCalldata_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_getPaymentCalldata_v2_400 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (404)\nexport const RequestControllerV2_getPaymentCalldata_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getPaymentCalldata_v2_404 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (429)\nexport const RequestControllerV2_getPaymentCalldata_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getPaymentCalldata_v2_429 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (200)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_200 = z.object({ \"routes\": z.array(z.object({ \"id\": z.string(), \"fee\": z.number(), \"feeBreakdown\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding', 'overall'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough())).optional(), \"speed\": z.union([z.string(), z.number()]), \"price_impact\": (z.number()).optional(), \"chain\": z.string(), \"token\": z.string() }).passthrough()) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_200 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (400)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_400 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (404)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_404 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (429)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_429 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 request (application/json)\nexport const RequestControllerV2_sendPaymentIntent_v2_Request = z.object({ \"signedPaymentIntent\": z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough(), \"signedApprovalPermit\": (z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'request', variant: 'application/json' }, schema: RequestControllerV2_sendPaymentIntent_v2_Request });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (200)\nexport const RequestControllerV2_sendPaymentIntent_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_sendPaymentIntent_v2_200 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (404)\nexport const RequestControllerV2_sendPaymentIntent_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_sendPaymentIntent_v2_404 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (429)\nexport const RequestControllerV2_sendPaymentIntent_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_sendPaymentIntent_v2_429 });\n","import { z } from \"zod\";\n\nimport { RequestControllerV2_getRequestStatus_v2_200 as BaseRequestStatusSchema } from \"../generated/groups/request.schemas.generated\";\nimport { schemaRegistry } from \"../schema.registry\";\n\nconst NullableRequestStatusSchema = z.preprocess((value) => {\n if (!value || typeof value !== \"object\") {\n return value;\n }\n\n const next = { ...value } as Record<string, unknown>;\n\n if (next.recurrence === null) {\n delete next.recurrence;\n }\n\n if (next.originalRequestId === null) {\n next.originalRequestId = undefined;\n }\n\n if (next.originalRequestPaymentReference === null) {\n next.originalRequestPaymentReference = undefined;\n }\n\n return next;\n}, BaseRequestStatusSchema);\n\nschemaRegistry.register({\n key: { operationId: \"RequestControllerV2_getRequestStatus_v2\", kind: \"response\", status: 200 },\n schema: NullableRequestStatusSchema,\n});\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../schema.registry\";\n\nconst FlexibleRoutesSchema = z\n .object({\n routes: z.array(\n z\n .object({\n fee: z.union([z.number(), z.string()]).optional(),\n })\n .passthrough(),\n ),\n })\n .passthrough();\n\nschemaRegistry.register({\n key: { operationId: \"RequestControllerV2_getRequestPaymentRoutes_v2\", kind: \"response\", status: 200 },\n schema: FlexibleRoutesSchema,\n});\n","import { createHttpClient, type CreateClientOptions } from \"./core/http/client.factory\";\nimport type { HttpClient } from \"./core/http/http.types\";\nimport { createClientIdsApi, type ClientIdsApi } from \"./domains/client-ids\";\nimport { createCurrenciesApi, type CurrenciesApi } from \"./domains/currencies\";\nimport { createPayApi, type PayApi } from \"./domains/pay\";\nimport { createPayerApi, type PayerApi } from \"./domains/payer\";\nimport { createPaymentsApi, type PaymentsApi } from \"./domains/payments\";\nimport { createPayoutsApi, type PayoutsApi } from \"./domains/payouts\";\nimport { createRequestsApi, type RequestsApi } from \"./domains/requests\";\n\nexport interface RequestClient {\n /** Low-level HTTP client (useful for custom modules) */\n http: HttpClient;\n /** Currency endpoints */\n currencies: CurrenciesApi;\n /** Client ID endpoints */\n clientIds: ClientIdsApi;\n /** Request & invoice endpoints */\n requests: RequestsApi;\n /** Payout endpoints */\n payouts: PayoutsApi;\n /** Payment search endpoints */\n payments: PaymentsApi;\n /** Payer/compliance endpoints */\n payer: PayerApi;\n /** Legacy pay endpoints */\n pay: PayApi;\n}\n\nexport function createRequestClient(options?: CreateClientOptions): RequestClient {\n const http = createHttpClient(options);\n return {\n http,\n currencies: createCurrenciesApi(http),\n clientIds: createClientIdsApi(http),\n requests: createRequestsApi(http),\n payouts: createPayoutsApi(http),\n payments: createPaymentsApi(http),\n payer: createPayerApi(http),\n pay: createPayApi(http),\n };\n}\n\nexport interface EnvOptions {\n env?: NodeJS.ProcessEnv;\n}\n\nexport function createRequestClientFromEnv(options?: EnvOptions): RequestClient {\n const env = options?.env ?? process.env;\n // Prefer modern variable names; fall back to legacy REQUEST_SDK_* for compatibility\n const baseUrl = env.REQUEST_API_URL ?? env.REQUEST_SDK_BASE_URL;\n const apiKey = env.REQUEST_API_KEY ?? env.REQUEST_SDK_API_KEY;\n const clientId = env.REQUEST_CLIENT_ID ?? env.REQUEST_SDK_CLIENT_ID;\n return createRequestClient({ baseUrl, apiKey, clientId });\n}\n","export const RequestEnvironment = {\n production: \"https://api.request.network\",\n // Legacy placeholder for partner-managed sandboxes; Request does not operate a public staging host.\n staging: \"https://api.stage.request.network\",\n local: \"http://127.0.0.1:8080\",\n} as const;\n\nexport type RequestEnvironmentName = keyof typeof RequestEnvironment;\n","export {\n createRequestsV1Api,\n type RequestsV1Api,\n type RequestV1OperationOptions,\n type GetPaymentRoutesOptions,\n type GetPaymentCalldataOptions,\n type RequestStatusResult,\n type SendPaymentIntentBody,\n} from \"./requests.v1.facade\";\n\nimport \"../../../validation/generated/groups/request.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\nimport { ValidationError } from \"../../../validation/zod.helpers\";\nimport {\n buildRequestQuery,\n normalizeLegacyStatusResponse,\n type LegacyRequestStatusResult,\n} from \"../request.helpers\";\n\nconst OP_CREATE = \"RequestControllerV1_createRequest_v1\" as const;\nconst OP_PAYMENT_ROUTES = \"RequestControllerV1_getRequestPaymentRoutes_v1\" as const;\nconst OP_PAYMENT_CALLDATA = \"RequestControllerV1_getPaymentCalldata_v1\" as const;\nconst OP_REQUEST_STATUS = \"RequestControllerV1_getRequestStatus_v1\" as const;\nconst OP_SEND_PAYMENT_INTENT = \"RequestControllerV1_sendPaymentIntent_v1\" as const;\nconst OP_STOP_RECURRENCE = \"RequestControllerV1_stopRecurrenceRequest_v1\" as const;\n\ntype CreateRequestBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateRequestResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype PaymentRoutesResponse = operations[typeof OP_PAYMENT_ROUTES][\"responses\"][200][\"content\"][\"application/json\"];\ntype PaymentRoutesQuery = operations[typeof OP_PAYMENT_ROUTES][\"parameters\"][\"query\"];\n\ntype PaymentCalldataQuery = NonNullable<operations[typeof OP_PAYMENT_CALLDATA][\"parameters\"][\"query\"]>;\ntype RawPaymentCalldata = operations[typeof OP_PAYMENT_CALLDATA][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype RawStatusResponse = operations[typeof OP_REQUEST_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype PaymentIntentPayload = Extract<RawPaymentCalldata, { paymentIntentId: string }>;\ntype CalldataPayload = Extract<RawPaymentCalldata, { transactions: unknown }>;\n\nconst KIND_CALLDATA = \"calldata\" as const;\nconst KIND_PAYMENT_INTENT = \"paymentIntent\" as const;\n\nfunction isPaymentIntentPayload(payload: RawPaymentCalldata): payload is PaymentIntentPayload {\n return \"paymentIntentId\" in payload;\n}\n\nfunction isCalldataPayload(payload: RawPaymentCalldata): payload is CalldataPayload {\n return \"transactions\" in payload;\n}\n\nexport interface RequestV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type GetPaymentRoutesOptions = RequestV1OperationOptions & {\n wallet: PaymentRoutesQuery[\"wallet\"];\n} & Partial<Omit<PaymentRoutesQuery, \"wallet\">>;\n\nexport type GetPaymentCalldataOptions = RequestV1OperationOptions & Partial<PaymentCalldataQuery>;\n\nexport type RequestStatusResult = LegacyRequestStatusResult;\n\nexport type SendPaymentIntentBody = operations[typeof OP_SEND_PAYMENT_INTENT][\"requestBody\"][\"content\"][\"application/json\"];\n\nexport interface RequestsV1Api {\n create(body: CreateRequestBody, options?: RequestV1OperationOptions): Promise<CreateRequestResponse>;\n getPaymentRoutes(paymentReference: string, options: GetPaymentRoutesOptions): Promise<PaymentRoutesResponse>;\n getPaymentCalldata(paymentReference: string, options?: GetPaymentCalldataOptions): Promise<\n | ({ kind: \"calldata\" } & CalldataPayload)\n | ({ kind: \"paymentIntent\" } & PaymentIntentPayload)\n >;\n getRequestStatus(paymentReference: string, options?: RequestV1OperationOptions): Promise<RequestStatusResult>;\n sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestV1OperationOptions): Promise<void>;\n stopRecurrence(paymentReference: string, options?: RequestV1OperationOptions): Promise<void>;\n}\n\nexport function createRequestsV1Api(http: HttpClient): RequestsV1Api {\n return {\n async create(body, options) {\n return requestJson<CreateRequestResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v1/request\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create legacy request\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentRoutes(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/routes`;\n return requestJson<PaymentRoutesResponse>(http, {\n operationId: OP_PAYMENT_ROUTES,\n method: \"GET\",\n path,\n query: buildRequestQuery({\n wallet: options.wallet,\n amount: options.amount,\n feePercentage: options.feePercentage,\n feeAddress: options.feeAddress,\n }),\n schemaKey: { operationId: OP_PAYMENT_ROUTES, kind: \"response\", status: 200 },\n description: \"Legacy payment routes\",\n signal: options.signal,\n timeoutMs: options.timeoutMs,\n validation: options.validation,\n meta: options.meta,\n });\n },\n\n async getPaymentCalldata(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/pay`;\n const query = buildRequestQuery({\n wallet: options?.wallet,\n chain: options?.chain,\n token: options?.token,\n amount: options?.amount,\n });\n\n const raw = await requestJson<RawPaymentCalldata>(http, {\n operationId: OP_PAYMENT_CALLDATA,\n method: \"GET\",\n path,\n query,\n schemaKey: { operationId: OP_PAYMENT_CALLDATA, kind: \"response\", status: 200 },\n description: \"Legacy payment calldata\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n if (isCalldataPayload(raw)) {\n return { kind: KIND_CALLDATA, ...raw };\n }\n if (isPaymentIntentPayload(raw)) {\n return { kind: KIND_PAYMENT_INTENT, ...raw };\n }\n\n throw new ValidationError(\"Unexpected payment calldata response\", raw);\n },\n\n async getRequestStatus(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}`;\n const rawStatus = await requestJson<RawStatusResponse>(http, {\n operationId: OP_REQUEST_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_REQUEST_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy request status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n return normalizeLegacyStatusResponse(rawStatus);\n },\n\n async sendPaymentIntent(paymentIntentId, body, options) {\n const path = `/v1/request/${encodeURIComponent(paymentIntentId)}/send`;\n await requestVoid(http, {\n operationId: OP_SEND_PAYMENT_INTENT,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SEND_PAYMENT_INTENT, kind: \"request\", variant: \"application/json\" },\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async stopRecurrence(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/stop-recurrence`;\n await requestVoid(http, {\n operationId: OP_STOP_RECURRENCE,\n method: \"PATCH\",\n path,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","export {\n DEFAULT_SIGNATURE_ALGORITHM,\n DEFAULT_SIGNATURE_HEADER,\n verifyWebhookSignature,\n type VerifyWebhookSignatureOptions,\n type VerifyWebhookSignatureResult,\n} from \"./signature.webhook\";\nexport {\n parseWebhookEvent,\n type ParseWebhookEventOptions,\n type ParsedWebhookEvent,\n} from \"./parser.webhook\";\nexport {\n RequestWebhookSignatureError,\n isRequestWebhookSignatureError,\n type WebhookSignatureErrorReason,\n} from \"./errors.webhook\";\nexport {\n WebhookDispatcher,\n createWebhookDispatcher,\n type WebhookDispatchContext,\n type WebhookHandler,\n type InferDispatcherPayload,\n} from \"./dispatcher.webhook\";\nexport {\n createWebhookMiddleware,\n type CreateWebhookMiddlewareOptions,\n type WebhookLogger,\n type WebhookRequest,\n type GetRawBody,\n type ShouldSkipVerification,\n} from \"./middleware.webhook\";\nexport {\n WEBHOOK_EVENT_NAMES,\n getWebhookSchema,\n type WebhookEventName,\n type WebhookPayload,\n type WebhookPayloadMap,\n} from \"./schemas.webhook\";\nexport type { WebhookHeaders, NormalisedHeaders as NormalizedWebhookHeaders } from \"./headers.webhook\";\nexport * as events from \"./events\";\nexport * as testing from \"./testing.webhook\";\n","export type WebhookSignatureErrorReason =\n | \"missing_signature\"\n | \"invalid_format\"\n | \"invalid_signature\"\n | \"tolerance_exceeded\";\n\nexport interface RequestWebhookSignatureErrorOptions {\n readonly headerName: string;\n readonly signature?: string | null;\n readonly timestamp?: number | null;\n readonly reason: WebhookSignatureErrorReason;\n readonly cause?: unknown;\n}\n\n/**\n * Error thrown when webhook signature verification fails.\n * Consumers can narrow on this error to differentiate between auth failures\n * and downstream application exceptions.\n */\nexport class RequestWebhookSignatureError extends Error {\n static readonly code = \"ERR_REQUEST_WEBHOOK_SIGNATURE_VERIFICATION_FAILED\";\n\n readonly code = RequestWebhookSignatureError.code;\n readonly statusCode = 401;\n readonly headerName: string;\n readonly signature?: string | null;\n readonly timestamp?: number | null;\n readonly reason: WebhookSignatureErrorReason;\n\n constructor(message: string, options: RequestWebhookSignatureErrorOptions) {\n const { headerName, signature, timestamp, reason, cause } = options;\n super(message, { cause });\n this.name = \"RequestWebhookSignatureError\";\n this.headerName = headerName;\n this.signature = signature;\n this.timestamp = timestamp ?? null;\n this.reason = reason;\n }\n}\n\nexport function isRequestWebhookSignatureError(error: unknown): error is RequestWebhookSignatureError {\n return error instanceof RequestWebhookSignatureError;\n}\n","export type HeaderValue = string | number | boolean | null | undefined | string[];\n\nexport type HeaderRecord = Record<string, HeaderValue>;\n\nexport type WebhookHeaders = HeaderRecord | Headers;\n\nexport type NormalisedHeaders = Record<string, string>;\n\nfunction coerceHeaderValue(value: HeaderValue): string | undefined {\n if (value == null) return undefined;\n if (Array.isArray(value)) {\n const first = value.find((item) => item.length > 0);\n return first ?? undefined;\n }\n return typeof value === \"string\" ? value : String(value);\n}\n\nfunction isFetchHeaders(input: unknown): input is Headers {\n return typeof Headers !== \"undefined\" && input instanceof Headers;\n}\n\nexport function normaliseHeaders(headers: WebhookHeaders | undefined): NormalisedHeaders {\n const result: NormalisedHeaders = {};\n if (!headers) return result;\n\n if (isFetchHeaders(headers)) {\n headers.forEach((value, key) => {\n result[key.toLowerCase()] = value;\n });\n return result;\n }\n\n for (const [key, value] of Object.entries(headers)) {\n const coerced = coerceHeaderValue(value);\n if (coerced != null) {\n result[key.toLowerCase()] = coerced;\n }\n }\n\n return result;\n}\n\nexport function pickHeader(headers: WebhookHeaders | NormalisedHeaders | undefined, headerName: string): string | undefined {\n if (!headers) return undefined;\n const lower = headerName.toLowerCase();\n\n if (isFetchHeaders(headers)) {\n const value = headers.get(headerName);\n return value ?? undefined;\n }\n\n const record = headers as Record<string, HeaderValue | string>;\n const direct = record[headerName];\n if (typeof direct === \"string\") {\n return direct;\n }\n if (direct != null) {\n const coercedDirect = coerceHeaderValue(direct);\n if (coercedDirect) return coercedDirect;\n }\n\n const fallback = record[lower];\n if (typeof fallback === \"string\") {\n return fallback;\n }\n if (fallback != null) {\n return coerceHeaderValue(fallback);\n }\n return undefined;\n}\n","import { Buffer } from \"node:buffer\";\nimport { createHmac, timingSafeEqual } from \"node:crypto\";\n\nimport { RequestWebhookSignatureError } from \"./errors.webhook\";\nimport { normaliseHeaders, pickHeader, type NormalisedHeaders, type WebhookHeaders } from \"./headers.webhook\";\n\nexport const DEFAULT_SIGNATURE_HEADER = \"x-request-network-signature\";\nexport const DEFAULT_SIGNATURE_ALGORITHM = \"sha256\";\n\nexport interface VerifyWebhookSignatureOptions {\n readonly rawBody: ArrayBuffer | ArrayBufferView | string;\n readonly secret: string | readonly string[];\n readonly headers?: WebhookHeaders;\n readonly signature?: string;\n readonly headerName?: string;\n readonly toleranceMs?: number;\n readonly timestamp?: number;\n readonly timestampHeader?: string;\n readonly now?: () => number;\n}\n\nexport interface VerifyWebhookSignatureResult {\n /**\n * Normalised (lowercase hex) signature taken from the request.\n */\n signature: string;\n /**\n * Secret that successfully matched the signature. Useful for rotation.\n */\n matchedSecret: string;\n /**\n * Parsed timestamp in milliseconds (when provided).\n */\n timestamp: number | null;\n /**\n * Headers used during verification, normalised to lowercase keys.\n */\n headers: NormalisedHeaders;\n}\n\nconst HEX_SIGNATURE_PATTERN = /^[0-9a-f]+$/i;\n\nfunction toBuffer(rawBody: ArrayBuffer | ArrayBufferView | string): Buffer {\n if (typeof rawBody === \"string\") {\n return Buffer.from(rawBody, \"utf8\");\n }\n if (rawBody instanceof ArrayBuffer) {\n return Buffer.from(rawBody);\n }\n return Buffer.from(rawBody.buffer, rawBody.byteOffset, rawBody.byteLength);\n}\n\nfunction stripAlgorithmPrefix(signature: string, headerName: string): string {\n const trimmed = signature.trim();\n const equalityIndex = trimmed.indexOf(\"=\");\n if (equalityIndex === -1) {\n return trimmed;\n }\n const prefix = trimmed.slice(0, equalityIndex).toLowerCase();\n if (prefix !== DEFAULT_SIGNATURE_ALGORITHM) {\n throw new RequestWebhookSignatureError(\"Unsupported signature algorithm\", {\n headerName,\n signature: signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n return trimmed.slice(equalityIndex + 1);\n}\n\nfunction parseSignatureValue(signature: string, headerName: string): { normalisedHex: string; buffer: Buffer } {\n const stripped = stripAlgorithmPrefix(signature, headerName);\n const trimmed = stripped.trim();\n if (!trimmed || !HEX_SIGNATURE_PATTERN.test(trimmed)) {\n throw new RequestWebhookSignatureError(\"Invalid webhook signature format\", {\n headerName,\n signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n\n const lower = trimmed.toLowerCase();\n if (lower.length % 2 !== 0) {\n throw new RequestWebhookSignatureError(\"Invalid webhook signature length\", {\n headerName,\n signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n\n const digest = Buffer.from(lower, \"hex\");\n return { normalisedHex: lower, buffer: digest };\n}\n\nfunction computeHmac(secret: string, body: Buffer): Buffer {\n return createHmac(DEFAULT_SIGNATURE_ALGORITHM, secret).update(body).digest();\n}\n\nfunction isReadonlyStringArray(value: unknown): value is readonly string[] {\n return Array.isArray(value);\n}\n\nfunction toSecretArray(secret: string | readonly string[]): string[] {\n return isReadonlyStringArray(secret) ? [...secret] : [secret];\n}\n\nfunction parseTimestamp(value: string): number | null {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n const numeric = Number(trimmed);\n if (!Number.isFinite(numeric)) {\n return null;\n }\n // Heuristic: seconds vs milliseconds based on magnitude.\n if (numeric > 1e12) {\n return Math.trunc(numeric);\n }\n if (numeric > 1e9) {\n return Math.trunc(numeric);\n }\n return Math.trunc(numeric * 1000);\n }\n\n const parsed = Date.parse(trimmed);\n if (Number.isNaN(parsed)) {\n return null;\n }\n return parsed;\n}\n\nfunction resolveTimestamp(options: VerifyWebhookSignatureOptions, headers: NormalisedHeaders, headerName: string): number | null {\n if (typeof options.timestamp === \"number\") {\n return options.timestamp;\n }\n if (!options.timestampHeader) {\n return null;\n }\n const headerValue = pickHeader(headers, options.timestampHeader);\n if (!headerValue) {\n return null;\n }\n const parsed = parseTimestamp(headerValue);\n if (parsed == null) {\n throw new RequestWebhookSignatureError(\"Invalid webhook timestamp header\", {\n headerName: options.timestampHeader,\n signature: pickHeader(headers, headerName) ?? null,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n return parsed;\n}\n\nexport function verifyWebhookSignature(options: VerifyWebhookSignatureOptions): VerifyWebhookSignatureResult {\n const {\n rawBody,\n secret,\n headers: rawHeaders,\n signature: explicitSignature,\n headerName = DEFAULT_SIGNATURE_HEADER,\n toleranceMs,\n now = () => Date.now(),\n } = options;\n\n const headers = normaliseHeaders(rawHeaders);\n const signatureValue = explicitSignature ?? pickHeader(headers, headerName);\n if (!signatureValue) {\n throw new RequestWebhookSignatureError(`Missing webhook signature header: ${headerName}`, {\n headerName,\n signature: null,\n timestamp: null,\n reason: \"missing_signature\",\n });\n }\n\n const { normalisedHex, buffer: signatureBuffer } = parseSignatureValue(signatureValue, headerName);\n\n const timestamp = resolveTimestamp(options, headers, headerName);\n if (typeof toleranceMs === \"number\" && toleranceMs >= 0 && timestamp != null) {\n const distance = Math.abs(now() - timestamp);\n if (distance > toleranceMs) {\n throw new RequestWebhookSignatureError(\"Webhook signature timestamp outside tolerance\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"tolerance_exceeded\",\n });\n }\n }\n\n const bodyBuffer = toBuffer(rawBody);\n const secrets = toSecretArray(secret);\n if (secrets.length === 0) {\n throw new RequestWebhookSignatureError(\"No webhook secrets configured\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_signature\",\n });\n }\n\n const digests = secrets.map((candidate) => computeHmac(candidate, bodyBuffer));\n const digestLength = digests[0].length;\n\n if (signatureBuffer.length !== digestLength) {\n throw new RequestWebhookSignatureError(\"Webhook signature length mismatch\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_format\",\n });\n }\n\n for (let index = 0; index < digests.length; index += 1) {\n const digest = digests[index];\n if (timingSafeEqual(signatureBuffer, digest)) {\n return {\n signature: normalisedHex,\n matchedSecret: secrets[index],\n timestamp: timestamp ?? null,\n headers,\n };\n }\n }\n\n throw new RequestWebhookSignatureError(\"Invalid webhook signature\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_signature\",\n });\n}\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../validation/schema.registry\";\n\n// The shared contract currently enumerates only `not_started` and `completed`\n// for compliance status values. Legacy webhook payloads have reported a richer\n// set historically, so we keep a superset here until the upstream schema\n// expands.\nconst COMPLIANCE_KYC_STATUSES = [\n \"not_started\",\n \"initiated\",\n \"pending\",\n \"approved\",\n \"rejected\",\n \"failed\",\n \"completed\",\n] as const;\ntype ComplianceKycStatusValues = (typeof COMPLIANCE_KYC_STATUSES)[number];\nconst COMPLIANCE_AGREEMENT_STATUSES = [\n \"not_started\",\n \"pending\",\n \"completed\",\n \"rejected\",\n \"failed\",\n \"signed\",\n] as const;\ntype ComplianceAgreementStatusValues = (typeof COMPLIANCE_AGREEMENT_STATUSES)[number];\n\nconst PAYMENT_FAILED_SUB_STATUSES = [\"failed\", \"bounced\", \"insufficient_funds\"] as const;\ntype PaymentFailedSubStatusValues = (typeof PAYMENT_FAILED_SUB_STATUSES)[number];\n\nconst PAYMENT_PROCESSING_SUB_STATUSES = [\n \"initiated\",\n \"pending_internal_assessment\",\n \"ongoing_checks\",\n \"sending_fiat\",\n \"fiat_sent\",\n \"bounced\",\n \"retry_required\",\n \"processing\",\n] as const;\ntype PaymentProcessingSubStatusValues = (typeof PAYMENT_PROCESSING_SUB_STATUSES)[number];\n\nconst PAYMENT_DETAIL_STATUSES = [\"approved\", \"failed\", \"pending\", \"verified\"] as const;\ntype PaymentDetailStatusValues = (typeof PAYMENT_DETAIL_STATUSES)[number];\n\n// Base webhook schema: require `event` and allow all other fields through\n// without strict typing so manual webhook payloads from the Request API do\n// not get rejected when the upstream shape evolves. Domain code is\n// responsible for narrowing specific fields when needed.\nconst webhookBaseSchema = z\n .object({\n event: z.string(),\n })\n .passthrough();\n\nconst paymentConfirmedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.confirmed\"),\n});\n\nconst paymentFailedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.failed\"),\n subStatus: z.enum(PAYMENT_FAILED_SUB_STATUSES as unknown as [PaymentFailedSubStatusValues, ...PaymentFailedSubStatusValues[]]).optional(),\n failureReason: z.string().optional(),\n retryAfter: z.string().optional(),\n});\n\nconst paymentProcessingSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.processing\"),\n subStatus: z.enum(PAYMENT_PROCESSING_SUB_STATUSES as unknown as [PaymentProcessingSubStatusValues, ...PaymentProcessingSubStatusValues[]]),\n});\n\nconst paymentDetailUpdatedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment_detail.updated\"),\n status: z.enum(PAYMENT_DETAIL_STATUSES as unknown as [PaymentDetailStatusValues, ...PaymentDetailStatusValues[]]),\n paymentDetailsId: z.string().optional(),\n paymentAccountId: z.string().optional(),\n rejectionMessage: z.string().optional(),\n});\n\nconst complianceUpdatedSchema = webhookBaseSchema.extend({\n event: z.literal(\"compliance.updated\"),\n kycStatus: z.enum(COMPLIANCE_KYC_STATUSES as unknown as [ComplianceKycStatusValues, ...ComplianceKycStatusValues[]]).optional(),\n agreementStatus: z.enum(COMPLIANCE_AGREEMENT_STATUSES as unknown as [ComplianceAgreementStatusValues, ...ComplianceAgreementStatusValues[]]).optional(),\n isCompliant: z.boolean().optional(),\n});\n\nconst paymentPartialSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.partial\"),\n});\n\nconst paymentRefundedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.refunded\"),\n refundedTo: z.string(),\n refundAmount: z.string(),\n});\n\nconst requestRecurringSchema = webhookBaseSchema.extend({\n event: z.literal(\"request.recurring\"),\n originalRequestId: z.string(),\n originalRequestPaymentReference: z.string(),\n});\n\nconst webhookEventSchemas = {\n \"payment.confirmed\": paymentConfirmedSchema,\n \"payment.failed\": paymentFailedSchema,\n \"payment.processing\": paymentProcessingSchema,\n \"payment_detail.updated\": paymentDetailUpdatedSchema,\n \"compliance.updated\": complianceUpdatedSchema,\n \"payment.partial\": paymentPartialSchema,\n \"payment.refunded\": paymentRefundedSchema,\n \"request.recurring\": requestRecurringSchema,\n} as const;\n\nexport type WebhookEventName = keyof typeof webhookEventSchemas;\n\nexport type WebhookEventSchema<E extends WebhookEventName = WebhookEventName> = (typeof webhookEventSchemas)[E];\n\nexport type WebhookPayloadMap = {\n [E in WebhookEventName]: z.infer<WebhookEventSchema<E>>;\n};\n\nexport type WebhookPayload<E extends WebhookEventName = WebhookEventName> = WebhookPayloadMap[E];\n\nexport const WEBHOOK_EVENT_NAMES = Object.freeze(Object.keys(webhookEventSchemas) as readonly WebhookEventName[]);\n\nfor (const [eventName, schema] of Object.entries(webhookEventSchemas) as [WebhookEventName, WebhookEventSchema][]) {\n schemaRegistry.register({\n key: { operationId: eventName, kind: \"webhook\" },\n schema,\n });\n}\n\nexport function getWebhookSchema<E extends WebhookEventName>(event: E): WebhookEventSchema<E> | undefined {\n return webhookEventSchemas[event] as WebhookEventSchema<E> | undefined;\n}\n","import { Buffer } from \"node:buffer\";\nimport type { ZodTypeAny } from \"zod\";\n\nimport { normaliseHeaders, pickHeader, type NormalisedHeaders, type WebhookHeaders } from \"./headers.webhook\";\nimport { WEBHOOK_EVENT_NAMES, getWebhookSchema } from \"./schemas.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"./schemas.webhook\";\nimport { DEFAULT_SIGNATURE_HEADER, verifyWebhookSignature, type VerifyWebhookSignatureResult } from \"./signature.webhook\";\nimport { ValidationError, parseWithSchema } from \"../validation/zod.helpers\";\n\nexport interface ParseWebhookEventOptions {\n readonly rawBody: ArrayBuffer | ArrayBufferView | string;\n readonly headers: WebhookHeaders;\n readonly secret: string | readonly string[];\n readonly headerName?: string;\n readonly signature?: string;\n readonly toleranceMs?: number;\n readonly timestampHeader?: string;\n readonly now?: () => number;\n readonly skipSignatureVerification?: boolean;\n}\n\nexport interface ParsedWebhookEvent<E extends WebhookEventName = WebhookEventName> {\n readonly event: E;\n readonly payload: WebhookPayload<E>;\n readonly signature: string | null;\n readonly matchedSecret: string | null;\n readonly timestamp: number | null;\n readonly rawBody: Uint8Array;\n readonly headers: NormalisedHeaders;\n}\n\nfunction ensureBuffer(rawBody: ArrayBuffer | ArrayBufferView | string): Buffer {\n if (typeof rawBody === \"string\") {\n return Buffer.from(rawBody, \"utf8\");\n }\n if (rawBody instanceof ArrayBuffer) {\n return Buffer.from(rawBody);\n }\n return Buffer.from(rawBody.buffer, rawBody.byteOffset, rawBody.byteLength);\n}\n\nfunction normaliseBody(rawBody: ArrayBuffer | ArrayBufferView | string): { buffer: Buffer; view: Uint8Array } {\n const buffer = ensureBuffer(rawBody);\n const view = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n return { buffer, view };\n}\n\nfunction parseJsonBody(buffer: Buffer): unknown {\n try {\n const text = buffer.toString(\"utf8\");\n return JSON.parse(text);\n } catch (error) {\n throw new ValidationError(\"Invalid webhook JSON payload\", error);\n }\n}\n\nfunction resolveEventName(body: unknown): string {\n if (!body || typeof body !== \"object\" || Array.isArray(body)) {\n throw new ValidationError(\"Webhook payload must be a JSON object\");\n }\n const candidate = (body as Record<string, unknown>).event;\n if (typeof candidate !== \"string\" || candidate.length === 0) {\n throw new ValidationError(\"Webhook payload missing `event` field\");\n }\n return candidate;\n}\n\nfunction assertWebhookEventName(name: string): asserts name is WebhookEventName {\n if (!WEBHOOK_EVENT_NAMES.includes(name as WebhookEventName)) {\n throw new ValidationError(`Unknown webhook event: ${name}`);\n }\n}\n\nfunction verifySignatureIfRequired(\n options: ParseWebhookEventOptions,\n buffer: Buffer,\n headers: WebhookHeaders,\n): VerifyWebhookSignatureResult | null {\n if (options.skipSignatureVerification) {\n return null;\n }\n return verifyWebhookSignature({\n rawBody: buffer,\n secret: options.secret,\n headers,\n signature: options.signature,\n headerName: options.headerName,\n toleranceMs: options.toleranceMs,\n timestampHeader: options.timestampHeader,\n now: options.now,\n });\n}\n\nexport function parseWebhookEvent<E extends WebhookEventName = WebhookEventName>(\n options: ParseWebhookEventOptions,\n): ParsedWebhookEvent<E> {\n const { buffer, view } = normaliseBody(options.rawBody);\n const headers = options.skipSignatureVerification ? normaliseHeaders(options.headers) : undefined;\n const verification = verifySignatureIfRequired(options, buffer, options.headers);\n\n const normalisedHeaders = verification?.headers ?? headers ?? normaliseHeaders(options.headers);\n const signature =\n verification?.signature ??\n options.signature ??\n pickHeader(normalisedHeaders, options.headerName ?? DEFAULT_SIGNATURE_HEADER) ??\n null;\n const matchedSecret = verification?.matchedSecret ?? null;\n const timestamp = verification?.timestamp ?? null;\n\n const jsonBody = parseJsonBody(buffer);\n const eventName = resolveEventName(jsonBody);\n assertWebhookEventName(eventName);\n\n const schema = getWebhookSchema(eventName) as ZodTypeAny | undefined;\n if (!schema) {\n throw new ValidationError(`No schema registered for webhook event ${eventName}`);\n }\n\n const parsed = parseWithSchema<ZodTypeAny>({\n schema,\n value: jsonBody,\n description: `Webhook event ${eventName}`,\n });\n if (!parsed.success || !parsed.data) {\n const cause = parsed.error instanceof Error ? parsed.error : new ValidationError(`Invalid payload for webhook event ${eventName}`, parsed.error);\n throw cause;\n }\n\n const typedEventName = eventName as E;\n const payload = parsed.data as WebhookPayload<typeof typedEventName>;\n\n return {\n event: typedEventName,\n payload,\n signature,\n matchedSecret,\n timestamp,\n rawBody: view,\n headers: normalisedHeaders,\n };\n}\n","import type { ParsedWebhookEvent } from \"./parser.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"./schemas.webhook\";\n\nexport type WebhookDispatchContext = Record<string, unknown>;\n\nexport type WebhookHandler<E extends WebhookEventName = WebhookEventName> = (\n event: ParsedWebhookEvent<E>,\n context: WebhookDispatchContext,\n) => void | Promise<void>;\n\nfunction ensureHandlerSet(\n store: Map<WebhookEventName, Set<WebhookHandler>>,\n event: WebhookEventName,\n): Set<WebhookHandler> {\n let set = store.get(event);\n if (!set) {\n set = new Set();\n store.set(event, set);\n }\n return set;\n}\n\nexport class WebhookDispatcher {\n private readonly handlers = new Map<WebhookEventName, Set<WebhookHandler>>();\n\n on<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): () => void {\n const set = ensureHandlerSet(this.handlers, event);\n const wrapped = handler as WebhookHandler;\n set.add(wrapped);\n\n return () => {\n const existing = this.handlers.get(event);\n if (!existing) return;\n existing.delete(wrapped);\n if (existing.size === 0) {\n this.handlers.delete(event);\n }\n };\n }\n\n once<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): () => void {\n const disposeRef: { dispose?: () => void } = {};\n const wrapped: WebhookHandler<E> = async (evt, context) => {\n disposeRef.dispose?.();\n await handler(evt, context);\n };\n const dispose = this.on(event, wrapped);\n disposeRef.dispose = dispose;\n return dispose;\n }\n\n off<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): void {\n const set = this.handlers.get(event);\n if (!set) return;\n set.delete(handler as WebhookHandler);\n if (set.size === 0) {\n this.handlers.delete(event);\n }\n }\n\n clear(): void {\n this.handlers.clear();\n }\n\n handlerCount(event?: WebhookEventName): number {\n if (event) {\n return this.handlers.get(event)?.size ?? 0;\n }\n let total = 0;\n for (const set of this.handlers.values()) {\n total += set.size;\n }\n return total;\n }\n\n async dispatch<E extends WebhookEventName>(\n event: ParsedWebhookEvent<E>,\n context: WebhookDispatchContext = {},\n ): Promise<void> {\n const set = this.handlers.get(event.event);\n if (!set || set.size === 0) {\n return;\n }\n\n const handlers = Array.from(set) as WebhookHandler<E>[];\n for (const handler of handlers) {\n await handler(event, context);\n }\n }\n\n /**\n * Syntactic sugar for strongly typed handler registration that returns the original handler for chaining.\n */\n register<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): WebhookHandler<E> {\n this.on(event, handler);\n return handler;\n }\n}\n\nexport function createWebhookDispatcher(): WebhookDispatcher {\n return new WebhookDispatcher();\n}\n\nexport type InferDispatcherPayload<T extends WebhookEventName> = WebhookPayload<T>;\n","import { Buffer } from \"node:buffer\";\nimport { createHmac } from \"node:crypto\";\n\nimport type { WebhookRequest } from \"./middleware.webhook\";\nimport { DEFAULT_SIGNATURE_ALGORITHM, DEFAULT_SIGNATURE_HEADER } from \"./signature.webhook\";\n\nexport const DEFAULT_TEST_WEBHOOK_SECRET = \"whsec_test_secret\";\n\nlet inMemoryBypass = false;\n\nfunction toBuffer(body: unknown): Buffer {\n if (typeof body === \"string\") {\n return Buffer.from(body, \"utf8\");\n }\n if (body instanceof ArrayBuffer) {\n return Buffer.from(body);\n }\n if (ArrayBuffer.isView(body as ArrayBufferView)) {\n const view = body as ArrayBufferView;\n return Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n }\n return Buffer.from(JSON.stringify(body));\n}\n\nexport function generateTestWebhookSignature(\n rawBody: ArrayBuffer | ArrayBufferView | string | object,\n secret: string = DEFAULT_TEST_WEBHOOK_SECRET,\n): string {\n const buffer = toBuffer(rawBody);\n return createHmac(DEFAULT_SIGNATURE_ALGORITHM, secret).update(buffer).digest(\"hex\");\n}\n\nexport function isWebhookVerificationBypassed(): boolean {\n if (typeof process !== \"undefined\" && process.env.REQUEST_WEBHOOK_DISABLE_VERIFICATION === \"true\") {\n return true;\n }\n return inMemoryBypass;\n}\n\nexport function setWebhookVerificationBypass(enabled: boolean): void {\n inMemoryBypass = enabled;\n}\n\nexport async function withWebhookVerificationDisabled<T>(fn: () => T | Promise<T>): Promise<T> {\n const previous = inMemoryBypass;\n inMemoryBypass = true;\n try {\n return await fn();\n } finally {\n inMemoryBypass = previous;\n }\n}\n\nexport interface CreateMockWebhookRequestOptions {\n payload: unknown;\n secret?: string;\n headerName?: string;\n headers?: Record<string, string>;\n}\n\nexport interface MockWebhookResponse {\n statusCode: number;\n body: unknown;\n headersSent: boolean;\n status(code: number): this;\n json(payload: unknown): this;\n send(payload: unknown): this;\n}\n\nexport function createMockWebhookRequest(options: CreateMockWebhookRequestOptions): WebhookRequest {\n const { payload, secret = DEFAULT_TEST_WEBHOOK_SECRET, headerName = DEFAULT_SIGNATURE_HEADER, headers } = options;\n const rawBody = toBuffer(payload);\n const signature = generateTestWebhookSignature(rawBody, secret);\n const req = {\n headers: {\n ...(headers ?? {}),\n [headerName]: signature,\n },\n rawBody,\n body: rawBody,\n } as unknown as WebhookRequest;\n return req;\n}\n\nexport function createMockWebhookResponse(): MockWebhookResponse {\n return {\n statusCode: 200,\n body: undefined,\n headersSent: false,\n status(code: number) {\n this.statusCode = code;\n return this;\n },\n json(payload: unknown) {\n this.body = payload;\n this.headersSent = true;\n return this;\n },\n send(payload: unknown) {\n this.body = payload;\n this.headersSent = true;\n return this;\n },\n };\n}\n","import type { NextFunction, Request, RequestHandler, Response } from \"express-serve-static-core\";\n\nimport type { WebhookDispatchContext, WebhookDispatcher } from \"./dispatcher.webhook\";\nimport { RequestWebhookSignatureError } from \"./errors.webhook\";\nimport type { ParsedWebhookEvent } from \"./parser.webhook\";\nimport { parseWebhookEvent } from \"./parser.webhook\";\nimport type { WebhookEventName } from \"./schemas.webhook\";\nimport { isWebhookVerificationBypassed } from \"./testing.webhook\";\n\ntype BinaryLike = ArrayBuffer | ArrayBufferView | string;\n\nexport interface WebhookLogger {\n debug?(message: string, context?: Record<string, unknown>): void;\n info?(message: string, context?: Record<string, unknown>): void;\n warn?(message: string, context?: Record<string, unknown>): void;\n error?(message: string, context?: Record<string, unknown>): void;\n}\n\nexport interface BuildDispatchContext {\n (req: Request, res: Response, event: ParsedWebhookEvent): WebhookDispatchContext;\n}\n\nexport type ShouldSkipVerification = (req: Request) => boolean;\n\nexport type GetRawBody = (req: Request) => BinaryLike | null | undefined;\n\ninterface RawBodyCarrier {\n rawBody?: BinaryLike;\n}\n\nexport interface CreateWebhookMiddlewareOptions {\n readonly secret: string | readonly string[];\n readonly headerName?: string;\n readonly timestampHeader?: string;\n readonly toleranceMs?: number;\n readonly dispatcher?: WebhookDispatcher;\n readonly onEvent?: (event: ParsedWebhookEvent, req: Request, res: Response) => void | Promise<void>;\n readonly onError?: (error: unknown, req: Request, res: Response) => void | Promise<void>;\n readonly logger?: WebhookLogger;\n readonly getRawBody?: GetRawBody;\n readonly skipVerification?: ShouldSkipVerification;\n readonly attachProperty?: string;\n readonly buildDispatchContext?: BuildDispatchContext;\n readonly autoNext?: boolean;\n}\n\nconst DEFAULT_ATTACH_PROPERTY = \"webhook\";\n\nfunction isArrayBufferView(value: unknown): value is ArrayBufferView {\n return Boolean(value) && ArrayBuffer.isView(value as ArrayBufferView);\n}\n\nfunction isBinaryLike(value: unknown): value is BinaryLike {\n return typeof value === \"string\" || value instanceof ArrayBuffer || isArrayBufferView(value);\n}\n\nconst defaultGetRawBody: GetRawBody = (req) => {\n const carrier = req as Request & RawBodyCarrier;\n if (isBinaryLike(carrier.rawBody)) {\n return carrier.rawBody;\n }\n if (isBinaryLike(carrier.body)) {\n return carrier.body;\n }\n return null;\n};\n\nconst defaultDispatchContext: BuildDispatchContext = (req, res, event) => ({\n req,\n res,\n event,\n});\n\nasync function handleSuccess(\n parsed: ParsedWebhookEvent,\n req: Request,\n res: Response,\n options: CreateWebhookMiddlewareOptions,\n): Promise<void> {\n const {\n dispatcher,\n onEvent,\n logger,\n attachProperty = DEFAULT_ATTACH_PROPERTY,\n buildDispatchContext = defaultDispatchContext,\n } = options;\n\n Reflect.set(req, attachProperty, parsed);\n\n if (logger?.debug) {\n logger.debug(\"Webhook event verified\", { event: parsed.event, signature: parsed.signature });\n }\n\n if (dispatcher) {\n const context = buildDispatchContext(req, res, parsed);\n await dispatcher.dispatch(parsed, context);\n }\n\n if (onEvent) {\n await onEvent(parsed, req, res);\n }\n}\n\nasync function handleError(\n error: unknown,\n req: Request,\n res: Response,\n options: CreateWebhookMiddlewareOptions,\n): Promise<void> {\n const { logger, onError } = options;\n\n if (error instanceof RequestWebhookSignatureError) {\n logger?.warn?.(\"Webhook signature verification failed\", {\n error,\n header: error.headerName,\n reason: error.reason,\n });\n\n if (!res.headersSent) {\n res.status(error.statusCode).json({\n error: \"invalid_webhook_signature\",\n reason: error.reason,\n });\n }\n return;\n }\n\n logger?.error?.(\"Webhook middleware error\", { error });\n\n if (onError) {\n await onError(error, req, res);\n }\n}\n\nexport function createWebhookMiddleware(options: CreateWebhookMiddlewareOptions): RequestHandler {\n const {\n secret,\n headerName,\n timestampHeader,\n toleranceMs,\n getRawBody = defaultGetRawBody,\n skipVerification,\n autoNext = true,\n } = options;\n\n if (!secret || (Array.isArray(secret) && secret.length === 0)) {\n throw new Error(\"createWebhookMiddleware requires at least one webhook secret\");\n }\n\n const handler = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n const rawBody = getRawBody(req);\n if (!isBinaryLike(rawBody)) {\n const bodyError = new Error(\"Webhook middleware requires the raw request body. Configure express.raw() or supply getRawBody.\");\n await handleError(bodyError, req, res, options);\n if (!res.headersSent && autoNext) {\n next(bodyError);\n }\n return;\n }\n\n const shouldSkip = skipVerification?.(req) ?? isWebhookVerificationBypassed();\n\n try {\n const parsed = parseWebhookEvent({\n rawBody,\n headers: req.headers,\n secret,\n headerName,\n timestampHeader,\n toleranceMs,\n skipSignatureVerification: shouldSkip,\n });\n\n await handleSuccess(parsed, req, res, options);\n if (autoNext) {\n next();\n }\n } catch (error) {\n await handleError(error, req, res, options);\n if (!res.headersSent && autoNext) {\n const err = error instanceof Error ? error : new Error(\"Webhook middleware handler failed\", { cause: error });\n next(err);\n }\n }\n };\n\n return handler as unknown as RequestHandler;\n}\n\nexport type WebhookRequest<E extends WebhookEventName = WebhookEventName> = Request & {\n webhook?: ParsedWebhookEvent<E>;\n};\n","export * from \"./base.event\";\nexport * from \"./payment-confirmed.event\";\nexport * from \"./payment-failed.event\";\nexport * from \"./payment-processing.event\";\nexport * from \"./payment-detail-updated.event\";\nexport * from \"./compliance-updated.event\";\nexport * from \"./payment-partial.event\";\nexport * from \"./payment-refunded.event\";\nexport * from \"./request-recurring.event\";\n","import type { WebhookDispatchContext, WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"../schemas.webhook\";\n\nexport interface WebhookEventHandlerContext<E extends WebhookEventName> {\n event: ParsedWebhookEvent<E>;\n dispatchContext: WebhookDispatchContext;\n}\n\nexport type WebhookEventHandler<E extends WebhookEventName> = (\n payload: WebhookPayload<E>,\n context: WebhookEventHandlerContext<E>,\n) => void | Promise<void>;\n\nexport function registerEventHandler<E extends WebhookEventName>(\n dispatcher: WebhookDispatcher,\n event: E,\n handler: WebhookEventHandler<E>,\n): () => void {\n return dispatcher.on(event, async (parsed, dispatchContext) => {\n await handler(parsed.payload, { event: parsed, dispatchContext });\n });\n}\n\nexport function createEventPredicate<E extends WebhookEventName>(event: E) {\n return (parsed: ParsedWebhookEvent): parsed is ParsedWebhookEvent<E> => parsed.event === event;\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_CONFIRMED_EVENT = \"payment.confirmed\" as const;\n\nexport type PaymentConfirmedEventName = typeof PAYMENT_CONFIRMED_EVENT;\n\nexport type PaymentConfirmedPayload = WebhookPayload<PaymentConfirmedEventName>;\n\nexport type PaymentConfirmedContext = WebhookEventHandlerContext<PaymentConfirmedEventName>;\n\nexport type PaymentConfirmedHandler = WebhookEventHandler<PaymentConfirmedEventName>;\n\nexport const isPaymentConfirmedEvent = createEventPredicate<PaymentConfirmedEventName>(PAYMENT_CONFIRMED_EVENT);\n\nexport function onPaymentConfirmed(dispatcher: WebhookDispatcher, handler: PaymentConfirmedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_CONFIRMED_EVENT, handler);\n}\n\nexport function assertPaymentConfirmedEvent(\n event: ParsedWebhookEvent,\n): asserts event is ParsedWebhookEvent<PaymentConfirmedEventName> {\n if (event.event !== PAYMENT_CONFIRMED_EVENT) {\n throw new TypeError(`Expected payment.confirmed event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_FAILED_EVENT = \"payment.failed\" as const;\n\nexport type PaymentFailedEventName = typeof PAYMENT_FAILED_EVENT;\n\nexport const PAYMENT_FAILED_SUB_STATUSES = Object.freeze([\"failed\", \"bounced\", \"insufficient_funds\"] as const);\n\nexport type PaymentFailedSubStatus = (typeof PAYMENT_FAILED_SUB_STATUSES)[number];\n\nexport type PaymentFailedPayload = WebhookPayload<PaymentFailedEventName>;\n\nexport type PaymentFailedContext = WebhookEventHandlerContext<PaymentFailedEventName>;\n\nexport type PaymentFailedHandler = WebhookEventHandler<PaymentFailedEventName>;\n\nexport const isPaymentFailedEvent = createEventPredicate<PaymentFailedEventName>(PAYMENT_FAILED_EVENT);\n\nexport function onPaymentFailed(dispatcher: WebhookDispatcher, handler: PaymentFailedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_FAILED_EVENT, handler);\n}\n\nexport function assertPaymentFailedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentFailedEventName> {\n if (event.event !== PAYMENT_FAILED_EVENT) {\n throw new TypeError(`Expected payment.failed event. Received ${event.event}.`);\n }\n}\n\nexport function isBouncedFailure(payload: Pick<PaymentFailedPayload, \"subStatus\">): boolean {\n return payload.subStatus === \"bounced\";\n}\n\nexport function isInsufficientFundsFailure(payload: Pick<PaymentFailedPayload, \"subStatus\">): boolean {\n return payload.subStatus === \"insufficient_funds\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_PROCESSING_EVENT = \"payment.processing\" as const;\n\nexport type PaymentProcessingEventName = typeof PAYMENT_PROCESSING_EVENT;\n\nexport const PAYMENT_PROCESSING_STAGES = Object.freeze([\n \"initiated\",\n \"pending_internal_assessment\",\n \"ongoing_checks\",\n \"processing\",\n \"sending_fiat\",\n \"fiat_sent\",\n \"bounced\",\n \"retry_required\",\n] as const);\n\nexport type PaymentProcessingStage = (typeof PAYMENT_PROCESSING_STAGES)[number];\n\nexport type PaymentProcessingPayload = WebhookPayload<PaymentProcessingEventName>;\n\nexport type PaymentProcessingContext = WebhookEventHandlerContext<PaymentProcessingEventName>;\n\nexport type PaymentProcessingHandler = WebhookEventHandler<PaymentProcessingEventName>;\n\nconst TERMINAL_STAGES = new Set<PaymentProcessingStage>([\"fiat_sent\", \"bounced\", \"retry_required\"]);\n\nconst STAGE_LABELS: Record<PaymentProcessingStage, string> = {\n initiated: \"Transfer initiated\",\n pending_internal_assessment: \"Pending internal assessment\",\n ongoing_checks: \"Ongoing compliance checks\",\n processing: \"Processing payment\",\n sending_fiat: \"Sending fiat to recipient\",\n fiat_sent: \"Fiat delivered\",\n bounced: \"Payment bounced\",\n retry_required: \"Retry required\",\n};\n\nexport const isPaymentProcessingEvent = createEventPredicate<PaymentProcessingEventName>(PAYMENT_PROCESSING_EVENT);\n\nexport function onPaymentProcessing(dispatcher: WebhookDispatcher, handler: PaymentProcessingHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_PROCESSING_EVENT, handler);\n}\n\nexport function assertPaymentProcessingEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentProcessingEventName> {\n if (event.event !== PAYMENT_PROCESSING_EVENT) {\n throw new TypeError(`Expected payment.processing event. Received ${event.event}.`);\n }\n}\n\nexport function isProcessingTerminalStatus(stage: PaymentProcessingStage): boolean {\n return TERMINAL_STAGES.has(stage);\n}\n\nexport function processingStageLabel(stage: PaymentProcessingStage): string {\n return STAGE_LABELS[stage];\n}\n\nexport function isRetryRequired(stage: PaymentProcessingStage): boolean {\n return stage === \"retry_required\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_DETAIL_UPDATED_EVENT = \"payment_detail.updated\" as const;\n\nexport type PaymentDetailUpdatedEventName = typeof PAYMENT_DETAIL_UPDATED_EVENT;\n\nexport const PAYMENT_DETAIL_STATUSES = Object.freeze([\"approved\", \"failed\", \"pending\", \"verified\"] as const);\n\nexport type PaymentDetailStatus = (typeof PAYMENT_DETAIL_STATUSES)[number];\n\nexport type PaymentDetailUpdatedPayload = WebhookPayload<PaymentDetailUpdatedEventName>;\n\nexport type PaymentDetailUpdatedContext = WebhookEventHandlerContext<PaymentDetailUpdatedEventName>;\n\nexport type PaymentDetailUpdatedHandler = WebhookEventHandler<PaymentDetailUpdatedEventName>;\n\nexport const isPaymentDetailUpdatedEvent = createEventPredicate<PaymentDetailUpdatedEventName>(PAYMENT_DETAIL_UPDATED_EVENT);\n\nexport function onPaymentDetailUpdated(dispatcher: WebhookDispatcher, handler: PaymentDetailUpdatedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_DETAIL_UPDATED_EVENT, handler);\n}\n\nexport function assertPaymentDetailUpdatedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentDetailUpdatedEventName> {\n if (event.event !== PAYMENT_DETAIL_UPDATED_EVENT) {\n throw new TypeError(`Expected payment_detail.updated event. Received ${event.event}.`);\n }\n}\n\nexport function isPaymentDetailApproved(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"approved\";\n}\n\nexport function isPaymentDetailRejected(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"failed\";\n}\n\nexport function isPaymentDetailPending(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"pending\";\n}\n\nexport function isPaymentDetailVerified(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"verified\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const COMPLIANCE_UPDATED_EVENT = \"compliance.updated\" as const;\n\nexport type ComplianceUpdatedEventName = typeof COMPLIANCE_UPDATED_EVENT;\n\nexport type ComplianceUpdatedPayload = WebhookPayload<ComplianceUpdatedEventName>;\n\nexport type ComplianceUpdatedContext = WebhookEventHandlerContext<ComplianceUpdatedEventName>;\n\nexport type ComplianceUpdatedHandler = WebhookEventHandler<ComplianceUpdatedEventName>;\n\nexport type ComplianceKycStatus = NonNullable<ComplianceUpdatedPayload[\"kycStatus\"]>;\nexport type ComplianceAgreementStatus = NonNullable<ComplianceUpdatedPayload[\"agreementStatus\"]>;\n\nexport const COMPLIANCE_KYC_STATUSES = Object.freeze([\n \"initiated\",\n \"pending\",\n \"approved\",\n \"rejected\",\n \"failed\",\n] as const satisfies readonly ComplianceKycStatus[]);\n\nexport const COMPLIANCE_AGREEMENT_STATUSES = Object.freeze([\n \"not_started\",\n \"pending\",\n \"completed\",\n \"rejected\",\n \"failed\",\n \"signed\",\n] as const satisfies readonly ComplianceAgreementStatus[]);\n\nexport const isComplianceUpdatedEvent = createEventPredicate<ComplianceUpdatedEventName>(COMPLIANCE_UPDATED_EVENT);\n\nexport function onComplianceUpdated(dispatcher: WebhookDispatcher, handler: ComplianceUpdatedHandler): () => void {\n return registerEventHandler(dispatcher, COMPLIANCE_UPDATED_EVENT, handler);\n}\n\nexport function assertComplianceUpdatedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<ComplianceUpdatedEventName> {\n if (event.event !== COMPLIANCE_UPDATED_EVENT) {\n throw new TypeError(`Expected compliance.updated event. Received ${event.event}.`);\n }\n}\n\nexport function isKycComplete(payload: ComplianceUpdatedPayload): boolean {\n return payload.kycStatus === \"approved\";\n}\n\nexport function isAgreementRejected(payload: ComplianceUpdatedPayload): boolean {\n return payload.agreementStatus === \"rejected\" || payload.agreementStatus === \"failed\";\n}\n\nexport function complianceStatusSummary(payload: ComplianceUpdatedPayload): string {\n const parts: string[] = [];\n const kyc = payload.kycStatus ? String(payload.kycStatus).replace(/_/g, \" \") : \"unknown\";\n const agreement = payload.agreementStatus ? String(payload.agreementStatus).replace(/_/g, \" \") : \"unknown\";\n parts.push(`KYC: ${kyc}`);\n parts.push(`Agreement: ${agreement}`);\n if (payload.clientUserId) {\n const clientUserId = JSON.stringify(payload.clientUserId);\n parts.push(`Client user: ${clientUserId}`);\n }\n return parts.join(\" | \");\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_PARTIAL_EVENT = \"payment.partial\" as const;\n\nexport type PaymentPartialEventName = typeof PAYMENT_PARTIAL_EVENT;\n\nexport type PaymentPartialPayload = WebhookPayload<PaymentPartialEventName>;\n\nexport type PaymentPartialContext = WebhookEventHandlerContext<PaymentPartialEventName>;\n\nexport type PaymentPartialHandler = WebhookEventHandler<PaymentPartialEventName>;\n\nexport const isPaymentPartialEvent = createEventPredicate<PaymentPartialEventName>(PAYMENT_PARTIAL_EVENT);\n\nexport function onPaymentPartial(dispatcher: WebhookDispatcher, handler: PaymentPartialHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_PARTIAL_EVENT, handler);\n}\n\nexport function assertPaymentPartialEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentPartialEventName> {\n if (event.event !== PAYMENT_PARTIAL_EVENT) {\n throw new TypeError(`Expected payment.partial event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_REFUNDED_EVENT = \"payment.refunded\" as const;\n\nexport type PaymentRefundedEventName = typeof PAYMENT_REFUNDED_EVENT;\n\nexport type PaymentRefundedPayload = WebhookPayload<PaymentRefundedEventName>;\n\nexport type PaymentRefundedContext = WebhookEventHandlerContext<PaymentRefundedEventName>;\n\nexport type PaymentRefundedHandler = WebhookEventHandler<PaymentRefundedEventName>;\n\nexport const isPaymentRefundedEvent = createEventPredicate<PaymentRefundedEventName>(PAYMENT_REFUNDED_EVENT);\n\nexport function onPaymentRefunded(dispatcher: WebhookDispatcher, handler: PaymentRefundedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_REFUNDED_EVENT, handler);\n}\n\nexport function assertPaymentRefundedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentRefundedEventName> {\n if (event.event !== PAYMENT_REFUNDED_EVENT) {\n throw new TypeError(`Expected payment.refunded event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const REQUEST_RECURRING_EVENT = \"request.recurring\" as const;\n\nexport type RequestRecurringEventName = typeof REQUEST_RECURRING_EVENT;\n\nexport type RequestRecurringPayload = WebhookPayload<RequestRecurringEventName>;\n\nexport type RequestRecurringContext = WebhookEventHandlerContext<RequestRecurringEventName>;\n\nexport type RequestRecurringHandler = WebhookEventHandler<RequestRecurringEventName>;\n\nexport const isRequestRecurringEvent = createEventPredicate<RequestRecurringEventName>(REQUEST_RECURRING_EVENT);\n\nexport function onRequestRecurring(dispatcher: WebhookDispatcher, handler: RequestRecurringHandler): () => void {\n return registerEventHandler(dispatcher, REQUEST_RECURRING_EVENT, handler);\n}\n\nexport function assertRequestRecurringEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<RequestRecurringEventName> {\n if (event.event !== REQUEST_RECURRING_EVENT) {\n throw new TypeError(`Expected request.recurring event. Received ${event.event}.`);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/core/errors/request-api.error.ts","../../src/core/http/retry.policy.ts","../../src/validation/schema.registry.ts","../../src/validation/zod.helpers.ts","../../src/core/http/http.types.ts","../../src/core/auth/credential-header.builder.ts","../../src/core/http/adapters/adapter.utils.ts","../../src/core/http/adapters/node-fetch.adapter.ts","../../src/core/http/interceptors/logger.utils.ts","../../src/core/http/interceptors/logging.interceptor.ts","../../src/core/http/interceptors/retry.interceptor.ts","../../src/core/http/validation.config.ts","../../src/core/http/client.factory.ts","../../src/core/http/adapters/browser-fetch.adapter.ts","../../src/domains/client-ids/index.ts","../../src/core/http/operation.helper.ts","../../src/core/http/path.builder.ts","../../src/domains/client-ids/client-ids.facade.ts","../../src/validation/generated/groups/client-ids.schemas.generated.ts","../../src/domains/currencies/index.ts","../../src/validation/generated/groups/currencies.schemas.generated.ts","../../src/domains/currencies/currencies.schemas.ts","../../src/domains/currencies/v1/index.ts","../../src/domains/currencies/v1/currencies.v1.schemas.ts","../../src/domains/currencies/v1/currencies.v1.facade.ts","../../src/domains/currencies/currencies.facade.ts","../../src/domains/pay/index.ts","../../src/domains/pay/v1/index.ts","../../src/domains/pay/v1/pay.v1.facade.ts","../../src/validation/generated/groups/pay.schemas.generated.ts","../../src/domains/pay/pay.facade.ts","../../src/domains/payer/index.ts","../../src/domains/payer/v1/index.ts","../../src/domains/payer/v1/payer.v1.facade.ts","../../src/validation/generated/groups/payer.schemas.generated.ts","../../src/domains/payer/v2/index.ts","../../src/domains/payer/v2/payer.v2.facade.ts","../../src/domains/payer/payer.facade.ts","../../src/domains/payments/index.ts","../../src/validation/generated/groups/v2/payments.schemas.generated.ts","../../src/domains/payments/payments.schemas.ts","../../src/domains/requests/request.helpers.ts","../../src/domains/payments/payments.facade.ts","../../src/domains/payouts/index.ts","../../src/domains/payouts/payouts.facade.ts","../../src/domains/requests/index.ts","../../src/domains/requests/requests.facade.ts","../../src/validation/generated/groups/request.schemas.generated.ts","../../src/validation/overrides/request-status.schema.ts","../../src/validation/overrides/request-payment-routes.schema.ts","../../src/request.client.ts","../../src/core/config/request-environment.config.ts","../../src/domains/requests/v1/index.ts","../../src/domains/requests/v1/requests.v1.facade.ts","../../src/webhooks/index.ts","../../src/webhooks/errors.webhook.ts","../../src/webhooks/headers.webhook.ts","../../src/webhooks/signature.webhook.ts","../../src/webhooks/schemas.webhook.ts","../../src/webhooks/parser.webhook.ts","../../src/webhooks/dispatcher.webhook.ts","../../src/webhooks/testing.webhook.ts","../../src/webhooks/middleware.webhook.ts","../../src/webhooks/events/index.ts","../../src/webhooks/events/base.event.ts","../../src/webhooks/events/payment-confirmed.event.ts","../../src/webhooks/events/payment-failed.event.ts","../../src/webhooks/events/payment-processing.event.ts","../../src/webhooks/events/payment-detail-updated.event.ts","../../src/webhooks/events/compliance-updated.event.ts","../../src/webhooks/events/payment-partial.event.ts","../../src/webhooks/events/payment-refunded.event.ts","../../src/webhooks/events/request-recurring.event.ts"],"names":["ErrorDetailSchema","z","ErrorEnvelopeSchema","CONVERSION_ROUTES_SEGMENT","DESCRIPTION_LIST","DESCRIPTION_CONVERSION_ROUTES","toQuery","v1_exports","OP_CREATE_COMPLIANCE","OP_GET_STATUS","OP_UPDATE_STATUS","OP_CREATE_PAYMENT_DETAILS","OP_GET_PAYMENT_DETAILS","OP_CREATE","OP_PAYMENT_ROUTES","OP_PAYMENT_CALLDATA","OP_REQUEST_STATUS","OP_SEND_PAYMENT_INTENT","KIND_CALLDATA","KIND_PAYMENT_INTENT","isPaymentIntentPayload","isCalldataPayload","normaliseHeaders","Buffer","toBuffer","createHmac","COMPLIANCE_AGREEMENT_STATUSES","COMPLIANCE_KYC_STATUSES","PAYMENT_DETAIL_STATUSES","PAYMENT_FAILED_SUB_STATUSES"],"mappings":"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","file":"index.js","sourcesContent":["export interface RequestErrorSource {\n pointer?: string;\n parameter?: string;\n}\n\nexport interface RequestErrorDetail {\n message: string;\n code?: string;\n field?: string;\n source?: RequestErrorSource;\n meta?: Record<string, unknown>;\n}\n\nexport interface RequestErrorMetadata {\n status: number;\n code: string;\n message: string;\n detail?: unknown;\n errors?: RequestErrorDetail[];\n requestId?: string;\n correlationId?: string;\n retryAfterMs?: number;\n headers?: Record<string, string | undefined>;\n meta?: Record<string, unknown>;\n cause?: unknown;\n}\n\nconst REQUEST_ERROR_NAME = \"RequestApiError\";\n\nexport class RequestApiError extends Error {\n public readonly status: number;\n public readonly code: string;\n public readonly detail?: unknown;\n public readonly errors?: RequestErrorDetail[];\n public readonly requestId?: string;\n public readonly correlationId?: string;\n public readonly retryAfterMs?: number;\n public readonly headers?: Record<string, string | undefined>;\n public readonly meta?: Record<string, unknown>;\n\n constructor(metadata: RequestErrorMetadata) {\n super(metadata.message, { cause: metadata.cause });\n this.name = REQUEST_ERROR_NAME;\n this.status = metadata.status;\n this.code = metadata.code;\n this.detail = metadata.detail;\n this.errors = metadata.errors;\n this.requestId = metadata.requestId;\n this.correlationId = metadata.correlationId;\n this.retryAfterMs = metadata.retryAfterMs;\n this.headers = metadata.headers;\n this.meta = metadata.meta;\n }\n\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n code: this.code,\n detail: this.detail,\n errors: this.errors,\n requestId: this.requestId,\n correlationId: this.correlationId,\n retryAfterMs: this.retryAfterMs,\n headers: this.headers,\n meta: this.meta,\n };\n }\n}\n\nexport const REQUEST_ID_HEADER = \"x-request-id\";\nexport const CORRELATION_ID_HEADER = \"x-correlation-id\";\nexport const RETRY_AFTER_HEADER = \"retry-after\";\n\nexport interface ErrorHeaderLookup {\n get(name: string): string | undefined;\n}\n\nexport type HeaderLike = Record<string, string | undefined> | ErrorHeaderLookup | undefined;\n\nexport function normaliseHeaders(headers: HeaderLike): Record<string, string | undefined> | undefined {\n if (!headers) {\n return undefined;\n }\n\n if (typeof (headers as ErrorHeaderLookup).get === \"function\") {\n const lookup = headers as ErrorHeaderLookup;\n return {\n [REQUEST_ID_HEADER]: lookup.get(REQUEST_ID_HEADER),\n [CORRELATION_ID_HEADER]: lookup.get(CORRELATION_ID_HEADER),\n [RETRY_AFTER_HEADER]: lookup.get(RETRY_AFTER_HEADER),\n };\n }\n\n return {\n [REQUEST_ID_HEADER]: (headers as Record<string, string | undefined>)[REQUEST_ID_HEADER],\n [CORRELATION_ID_HEADER]: (headers as Record<string, string | undefined>)[CORRELATION_ID_HEADER],\n [RETRY_AFTER_HEADER]: (headers as Record<string, string | undefined>)[RETRY_AFTER_HEADER],\n };\n}\n\nexport interface ErrorPayloadLike {\n status?: number;\n code?: string;\n message?: string;\n detail?: unknown;\n errors?: unknown;\n [key: string]: unknown;\n}\n\nexport function parseRetryAfter(headerValue?: string): number | undefined {\n if (!headerValue) {\n return undefined;\n }\n\n const numeric = Number(headerValue);\n if (!Number.isNaN(numeric)) {\n return numeric * 1000;\n }\n\n const parsedDate = Date.parse(headerValue);\n if (Number.isNaN(parsedDate)) {\n return undefined;\n }\n\n const delay = parsedDate - Date.now();\n return delay > 0 ? delay : 0;\n}\n\nexport interface BuildRequestApiErrorOptions {\n payload?: ErrorPayloadLike | null;\n status: number;\n headers?: HeaderLike;\n fallbackMessage?: string;\n meta?: Record<string, unknown>;\n cause?: unknown;\n}\n\nexport function buildRequestApiError(options: BuildRequestApiErrorOptions): RequestApiError {\n const { payload, status, headers, fallbackMessage, meta, cause } = options;\n const normalisedHeaders = normaliseHeaders(headers);\n const retryAfterHeader = normalisedHeaders?.[RETRY_AFTER_HEADER];\n const retryAfterMs = parseRetryAfter(retryAfterHeader);\n\n const code = typeof payload?.code === \"string\" && payload.code.length > 0 ? payload.code : `HTTP_${String(status)}`;\n const message = typeof payload?.message === \"string\" && payload.message.length > 0 ? payload.message : fallbackMessage ?? \"Request Network API error\";\n\n const maybeErrors = Array.isArray(payload?.errors) ? (payload.errors as unknown[]) : undefined;\n const errors = maybeErrors?.filter(Boolean) as RequestErrorDetail[] | undefined;\n\n return new RequestApiError({\n status,\n code,\n message,\n detail: payload?.detail,\n errors,\n requestId: normalisedHeaders?.[REQUEST_ID_HEADER],\n correlationId: normalisedHeaders?.[CORRELATION_ID_HEADER],\n retryAfterMs,\n headers: normalisedHeaders,\n meta,\n cause,\n });\n}\n\nexport function isRequestApiError(error: unknown): error is RequestApiError {\n return error instanceof RequestApiError || (typeof error === \"object\" && error !== null && (error as { name?: string }).name === REQUEST_ERROR_NAME);\n}\n","import { isRequestApiError } from \"../errors/request-api.error\";\n\nexport type RetryJitter = \"none\" | \"full\" | \"half\";\n\nexport interface RetryConfig {\n /**\n * Maximum attempts including the first request.\n * Set to 1 to disable retries.\n */\n maxAttempts: number;\n /**\n * Delay applied to the first retry attempt.\n */\n initialDelayMs: number;\n /**\n * Upper bound for calculated backoff delays.\n */\n maxDelayMs: number;\n /**\n * Multiplicative factor applied on each retry (exponential backoff).\n */\n backoffFactor: number;\n /**\n * Jitter strategy applied to the computed delay.\n */\n jitter: RetryJitter;\n /**\n * Predicate deciding if a retry should occur for the provided status code.\n * When specified, supersedes {@link retryStatusCodes}.\n */\n shouldRetry?: (context: RetryDecisionInput) => boolean;\n /**\n * HTTP status codes that are eligible for retries (when `shouldRetry` is not supplied).\n */\n retryStatusCodes: number[];\n /**\n * Methods considered for retries (enforced by the interceptor). Defaults to idempotent methods.\n */\n allowedMethods?: string[];\n}\n\nexport interface RetryDecisionInput {\n attempt: number;\n response?: RetryResponseLike;\n error?: unknown;\n}\n\nexport interface RetryResponseLike {\n status: number;\n headers?: Record<string, string | undefined>;\n /**\n * Optional retry-after header value for transport adapters that expose parsed metadata.\n */\n retryAfterMs?: number;\n}\n\nexport interface RetryDecision {\n retry: boolean;\n delayMs?: number;\n reason?: string;\n}\n\nexport const DEFAULT_RETRY_CONFIG: RetryConfig = {\n maxAttempts: 3,\n initialDelayMs: 250,\n maxDelayMs: 5_000,\n backoffFactor: 2,\n jitter: \"full\",\n retryStatusCodes: [408, 425, 429, 500, 502, 503, 504],\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"],\n};\n\nexport function shouldRetryRequest(config: RetryConfig, input: RetryDecisionInput): RetryDecision {\n if (config.maxAttempts <= 1) {\n return { retry: false, reason: \"retries-disabled\" };\n }\n\n if (input.attempt >= config.maxAttempts) {\n return { retry: false, reason: \"max-attempts-exceeded\" };\n }\n\n if (config.shouldRetry) {\n const decision = config.shouldRetry(input);\n if (!decision) {\n return { retry: false, reason: \"predicate-declined\" };\n }\n } else {\n const statusFromError = isRequestApiError(input.error) ? input.error.status : undefined;\n const status = input.response?.status ?? statusFromError;\n if (typeof status !== \"number\" || !config.retryStatusCodes.includes(status)) {\n return { retry: false, reason: \"status-not-retriable\" };\n }\n }\n\n const delay = computeRetryDelay(config, input);\n return { retry: true, delayMs: delay, reason: \"retry-scheduled\" };\n}\n\nexport function computeRetryDelay(config: RetryConfig, input: RetryDecisionInput): number {\n const retryAfter = input.response?.retryAfterMs ?? extractRetryAfterFromError(input.error);\n if (retryAfter !== undefined && retryAfter >= 0) {\n return clampDelay(retryAfter, config.maxDelayMs);\n }\n\n const attemptIndex = input.attempt - 1;\n const exponential = config.initialDelayMs * Math.pow(config.backoffFactor, attemptIndex);\n const jittered = applyJitter(exponential, config.jitter);\n return clampDelay(jittered, config.maxDelayMs);\n}\n\ninterface HasRetryAfter {\n retryAfterMs?: unknown;\n}\n\nfunction hasRetryAfter(x: unknown): x is HasRetryAfter {\n return typeof x === \"object\" && x !== null && \"retryAfterMs\" in (x as HasRetryAfter);\n}\n\nfunction extractRetryAfterFromError(err: unknown): number | undefined {\n if (isRequestApiError(err)) {\n return err.retryAfterMs;\n }\n if (hasRetryAfter(err) && typeof err.retryAfterMs === \"number\") {\n return err.retryAfterMs;\n }\n return undefined;\n}\n\nfunction clampDelay(delay: number, maxDelay: number): number {\n if (delay < 0) {\n return 0;\n }\n return delay > maxDelay ? maxDelay : delay;\n}\n\nfunction applyJitter(delay: number, jitter: RetryJitter): number {\n if (delay <= 0) {\n return 0;\n }\n\n switch (jitter) {\n case \"none\": {\n return delay;\n }\n case \"half\": {\n const min = delay / 2;\n return randomInRange(min, delay);\n }\n case \"full\":\n default: {\n return randomInRange(0, delay);\n }\n }\n}\n\nfunction randomInRange(min: number, max: number): number {\n if (min >= max) {\n return min;\n }\n return min + Math.random() * (max - min);\n}\n","import type { ZodTypeAny } from \"zod\";\n\nexport type SchemaKind = \"request\" | \"response\" | \"webhook\";\n\nexport interface SchemaKey {\n operationId: string;\n kind: SchemaKind;\n variant?: string;\n status?: number;\n}\n\nexport interface SchemaEntry<TSchema extends ZodTypeAny = ZodTypeAny> {\n key: SchemaKey;\n schema: TSchema;\n}\n\nfunction serialiseKey(key: SchemaKey): string {\n const variant = key.variant ?? \"default\";\n const status = key.status?.toString() ?? \"any\";\n return `${key.operationId}|${key.kind}|${variant}|${status}`;\n}\n\n/**\n * Lightweight registry that associates OpenAPI operation IDs with validation schemas.\n * Generators can populate this map while domain modules retrieve the schemas at runtime.\n */\nexport class SchemaRegistry {\n private readonly store = new Map<string, SchemaEntry>();\n\n register(entry: SchemaEntry): void {\n const id = serialiseKey(entry.key);\n this.store.set(id, entry);\n }\n\n get(key: SchemaKey): ZodTypeAny | undefined {\n const id = serialiseKey(key);\n return this.store.get(id)?.schema;\n }\n\n /**\n * Removes every registered schema — primarily useful in tests.\n */\n clear(): void {\n this.store.clear();\n }\n}\n\nexport const schemaRegistry = new SchemaRegistry();\n","import { type SafeParseReturnType, type ZodTypeAny } from \"zod\";\n\nimport type { SchemaKey } from \"./schema.registry\";\nimport { schemaRegistry } from \"./schema.registry\";\n\nexport type SchemaOutput<TSchema extends ZodTypeAny> = TSchema[\"_output\"];\n\nexport interface ParseWithSchemaOptions<TSchema extends ZodTypeAny> {\n schema: TSchema;\n value: unknown;\n description?: string;\n}\n\nexport interface ParseRegistryOptions {\n key: SchemaKey;\n value: unknown;\n description?: string;\n skipOnMissingSchema?: boolean;\n}\n\nexport interface ParseResult<T> {\n success: boolean;\n data?: T;\n error?: unknown;\n}\n\nexport class ValidationError extends Error {\n constructor(message: string, readonly cause?: unknown) {\n super(message, { cause });\n this.name = \"ClientValidationError\";\n }\n}\n\nexport function parseWithSchema<TSchema extends ZodTypeAny>(\n options: ParseWithSchemaOptions<TSchema>,\n): ParseResult<SchemaOutput<TSchema>> {\n const { schema, value, description } = options;\n const outcome: SafeParseReturnType<unknown, SchemaOutput<TSchema>> = schema.safeParse(value);\n if (outcome.success) {\n return { success: true, data: outcome.data };\n }\n\n const error = new ValidationError(description ?? \"Validation failed\", outcome.error);\n return { success: false, error };\n}\n\nexport function parseWithRegistry<TSchema extends ZodTypeAny>(options: ParseRegistryOptions): ParseResult<SchemaOutput<TSchema>> {\n const schema = schemaRegistry.get(options.key) as TSchema | undefined;\n if (!schema) {\n if (options.skipOnMissingSchema) {\n return { success: true, data: options.value as SchemaOutput<TSchema> };\n }\n return { success: false, error: new ValidationError(`No schema registered for ${options.key.operationId}`) };\n }\n\n return parseWithSchema({ schema, value: options.value, description: options.description });\n}\n","export type HttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\" | \"HEAD\" | \"OPTIONS\";\n\nimport type { RetryConfig } from \"./retry.policy\";\n\nexport interface RuntimeValidationConfig {\n requests: boolean;\n responses: boolean;\n errors: boolean;\n}\n\nexport type RuntimeValidationOption = boolean | Partial<RuntimeValidationConfig>;\n\nexport type QueryPrimitive = string | number | boolean;\nexport type QueryValue = QueryPrimitive | QueryPrimitive[];\nexport type QueryRecord = Record<string, QueryValue | undefined>;\nexport type QuerySerializerFn = (params: {\n key: string;\n value: QueryValue;\n set: (key: string, value: string) => void;\n append: (key: string, value: string) => void;\n}) => void;\nexport type QuerySerializer = \"comma\" | \"repeat\" | QuerySerializerFn;\nexport type LogLevel = \"silent\" | \"error\" | \"info\" | \"debug\";\n\nexport interface HttpRequest {\n method: HttpMethod;\n url: string;\n headers?: Record<string, string>;\n body?: unknown;\n signal?: AbortSignal;\n timeoutMs?: number;\n meta?: {\n operationId?: string;\n retry?: Partial<RetryConfig>;\n interceptors?: Interceptor[];\n validation?: RuntimeValidationOption;\n [key: string]: unknown;\n };\n}\n\nexport interface HttpResponse {\n status: number;\n ok: boolean;\n headers: Record<string, string>;\n data?: unknown;\n text?: string;\n}\n\nexport interface HttpAdapter {\n send(request: HttpRequest): Promise<HttpResponse>;\n}\n\nexport type NextHandler = (req: HttpRequest) => Promise<HttpResponse>;\nexport type Interceptor = (req: HttpRequest, next: NextHandler) => Promise<HttpResponse>;\n\nexport interface RequestOptions {\n path: string;\n method: HttpMethod;\n query?: QueryRecord;\n querySerializer?: QuerySerializer;\n headers?: Record<string, string>;\n body?: unknown;\n signal?: AbortSignal;\n timeoutMs?: number;\n meta?: HttpRequest[\"meta\"];\n}\n\nexport interface RetryOptions {\n attempt: number;\n}\n\nexport interface Logger {\n (event: string, meta?: Record<string, unknown>): void;\n}\n\nexport interface HttpClientConfig {\n baseUrl: string;\n defaultHeaders?: Record<string, string>;\n adapter: HttpAdapter;\n interceptors?: Interceptor[];\n logger?: Logger;\n querySerializer?: QuerySerializer;\n logLevel?: LogLevel;\n}\n\nexport interface HttpClient {\n request(options: RequestOptions): Promise<{ status: number; headers: Record<string, string>; data: unknown }>; // throws on non-2xx\n get(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n post(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n put(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n patch(path: string, body?: unknown, init?: Omit<RequestOptions, \"path\" | \"method\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n delete(path: string, init?: Omit<RequestOptions, \"path\" | \"method\"> & { body?: unknown }): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n head(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n options(path: string, init?: Omit<RequestOptions, \"path\" | \"method\" | \"body\">): Promise<{ status: number; headers: Record<string, string>; data: unknown }>;\n getRuntimeValidationConfig(): RuntimeValidationConfig;\n}\n\nfunction toQueryItems(value: QueryValue): string[] {\n const items = Array.isArray(value) ? value : [value];\n return items.map((item) => String(item));\n}\n\nfunction resolveQuerySerializer(serializer?: QuerySerializer): QuerySerializerFn {\n if (!serializer || serializer === \"comma\") {\n return ({ key, value, set }) => {\n const joined = toQueryItems(value).join(\",\");\n set(key, joined);\n };\n }\n if (serializer === \"repeat\") {\n return ({ key, value, append }) => {\n const items = toQueryItems(value);\n for (const item of items) {\n append(key, item);\n }\n };\n }\n return serializer;\n}\n\nexport function buildUrl(baseUrl: string, path: string, query?: RequestOptions[\"query\"], serializer?: QuerySerializer): string {\n const base = baseUrl.endsWith(\"/\") ? baseUrl.slice(0, -1) : baseUrl;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n const url = new URL(base + cleanPath);\n\n if (!query) return url.toString();\n\n const serialize = resolveQuerySerializer(serializer);\n const params = url.searchParams;\n\n for (const key of Object.keys(query)) {\n const raw = query[key];\n if (raw === undefined) continue;\n serialize({\n key,\n value: raw,\n set: (k, value) => {\n params.delete(k);\n params.set(k, value);\n },\n append: (k, value) => {\n params.append(k, value);\n },\n });\n }\n\n return url.toString();\n}\n\nexport function composeInterceptors(terminal: NextHandler, interceptors: readonly Interceptor[] = []): NextHandler {\n return interceptors.reduceRight<NextHandler>((next, interceptor) => {\n return (req) => interceptor(req, next);\n }, terminal);\n}\n","export interface CredentialOptions {\n apiKey?: string;\n clientId?: string;\n origin?: string;\n}\n\nexport function buildCredentialHeaders(options: CredentialOptions): Record<string, string> {\n const headers: Record<string, string> = {};\n if (options.apiKey) headers[\"x-api-key\"] = options.apiKey;\n if (options.clientId) headers[\"x-client-id\"] = options.clientId;\n if (options.origin) headers[\"Origin\"] = options.origin;\n return headers;\n}\n\n","import type { HttpRequest } from \"../http.types\";\n\nexport function headersToRecord(headers: Headers): Record<string, string> {\n const out: Record<string, string> = {};\n headers.forEach((value, key) => {\n out[key.toLowerCase()] = value;\n });\n return out;\n}\n\ninterface ResolveSignalOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n}\n\nfunction resolveSignal(options: ResolveSignalOptions): { signal?: AbortSignal; dispose: () => void } {\n const { signal, timeoutMs } = options;\n if (timeoutMs === undefined) {\n return { signal, dispose: () => {} };\n }\n\n const controller = new AbortController();\n let timer: NodeJS.Timeout | undefined;\n\n const abortForTimeout = () => {\n controller.abort(new Error(`Request timed out after ${String(timeoutMs)}ms`));\n };\n\n if (timeoutMs <= 0) {\n abortForTimeout();\n } else {\n timer = setTimeout(abortForTimeout, timeoutMs);\n }\n\n const cleanupTimer = () => {\n if (timer) clearTimeout(timer);\n };\n\n controller.signal.addEventListener(\"abort\", cleanupTimer, { once: true });\n\n let removeAbortListener: (() => void) | undefined;\n if (signal) {\n if (signal.aborted) {\n cleanupTimer();\n controller.abort(signal.reason);\n } else {\n const onAbort = () => {\n cleanupTimer();\n controller.abort(signal.reason);\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n removeAbortListener = () => { signal.removeEventListener(\"abort\", onAbort); };\n }\n }\n\n const dispose = () => {\n cleanupTimer();\n if (removeAbortListener) {\n removeAbortListener();\n }\n };\n\n return { signal: controller.signal, dispose };\n}\n\nexport function createFetchInit(request: HttpRequest): { init: RequestInit; dispose: () => void } {\n const headers: Record<string, string> = { ...(request.headers ?? {}) };\n const init: RequestInit = {\n method: request.method,\n headers,\n };\n\n if (request.body !== undefined) {\n const body = request.body as unknown;\n const isFormData = typeof FormData !== \"undefined\" && body instanceof FormData;\n const isBlob = typeof Blob !== \"undefined\" && body instanceof Blob;\n const isUint8 = body instanceof Uint8Array;\n const isArrayBuffer = typeof ArrayBuffer !== \"undefined\" && body instanceof ArrayBuffer;\n if (typeof body === \"string\" || isFormData || isBlob || isUint8 || isArrayBuffer) {\n init.body = body as BodyInit;\n } else {\n init.body = JSON.stringify(body);\n headers[\"content-type\"] ??= \"application/json\";\n }\n }\n\n const { signal, dispose } = resolveSignal({ signal: request.signal, timeoutMs: request.timeoutMs });\n if (signal) {\n init.signal = signal;\n }\n\n return { init, dispose };\n}\n","import { createFetchInit, headersToRecord } from \"./adapter.utils\";\nimport { type HttpAdapter, type HttpRequest, type HttpResponse } from \"../http.types\";\n\nexport const nodeFetchAdapter: HttpAdapter = {\n async send(request: HttpRequest): Promise<HttpResponse> {\n const { init, dispose } = createFetchInit(request);\n try {\n const res = await fetch(request.url, init);\n const respHeaders = headersToRecord(res.headers);\n const contentType = respHeaders[\"content-type\"] ?? \"\";\n let data: unknown;\n let text: string | undefined;\n if (res.status !== 204) {\n try {\n if (contentType.includes(\"application/json\")) {\n data = await res.json();\n } else {\n text = await res.text();\n }\n } catch {\n // ignore parse errors; keep data/text undefined\n }\n }\n\n const normalized: HttpResponse = {\n status: res.status,\n ok: res.ok,\n headers: respHeaders,\n data,\n text,\n };\n return normalized;\n } finally {\n dispose();\n }\n },\n};\n","import type { LogLevel } from \"../http.types\";\n\nconst LEVEL_RANK: Record<LogLevel, number> = {\n silent: 0,\n error: 1,\n info: 2,\n debug: 3,\n};\n\nexport function shouldLog(level: LogLevel, threshold: LogLevel): boolean {\n return LEVEL_RANK[level] >= LEVEL_RANK[threshold];\n}\n","import { type Interceptor, type LogLevel } from \"../http.types\";\nimport { shouldLog } from \"./logger.utils\";\n\nexport interface LoggingOptions {\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n level?: LogLevel;\n}\n\nexport function createLoggingInterceptor(options?: LoggingOptions): Interceptor {\n const log = options?.logger;\n const level: LogLevel = options?.level ?? \"info\";\n type LogEvent = \"request:start\" | \"request:response\" | \"request:error\";\n const EVENT_LEVEL: Record<LogEvent, LogLevel> = {\n \"request:start\": \"debug\",\n \"request:response\": \"info\",\n \"request:error\": \"error\",\n };\n\n const emit = (event: LogEvent, meta: Record<string, unknown>) => {\n if (!log) return;\n const threshold = EVENT_LEVEL[event];\n if (!shouldLog(level, threshold)) return;\n log(event, meta);\n };\n\n return async (req, next) => {\n const startedAt = Date.now();\n emit(\"request:start\", { method: req.method, url: req.url, meta: req.meta });\n try {\n const res = await next(req);\n const durationMs = Date.now() - startedAt;\n emit(\"request:response\", { method: req.method, url: req.url, status: res.status, ok: res.ok, durationMs, meta: req.meta });\n return res;\n } catch (error) {\n const durationMs = Date.now() - startedAt;\n emit(\"request:error\", { method: req.method, url: req.url, durationMs, error, meta: req.meta });\n throw error;\n }\n };\n}\n","import { parseRetryAfter } from \"../../errors/request-api.error\";\nimport { type Interceptor, type LogLevel, type NextHandler, type HttpResponse } from \"../http.types\";\nimport { computeRetryDelay, DEFAULT_RETRY_CONFIG, shouldRetryRequest, type RetryConfig } from \"../retry.policy\";\nimport { shouldLog } from \"./logger.utils\";\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport interface RetryInterceptorOptions {\n config?: Partial<RetryConfig>;\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n logLevel?: LogLevel;\n}\n\nexport function createRetryInterceptor(options?: RetryInterceptorOptions): Interceptor {\n const cfg: RetryConfig = { ...DEFAULT_RETRY_CONFIG, ...(options?.config ?? {}) };\n\n const allowed = new Set((cfg as RetryConfig & { allowedMethods?: string[] }).allowedMethods ?? [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"]);\n const log = options?.logger;\n const level: LogLevel = options?.logLevel ?? \"info\";\n\n const RETRY_EVENT = \"request:retry\" as const;\n const RATE_LIMIT_EVENT = \"rate-limit\" as const;\n const DEFAULT_RETRY_REASON = \"retry-scheduled\";\n\n const emit = (event: typeof RETRY_EVENT | typeof RATE_LIMIT_EVENT, meta: Record<string, unknown>) => {\n const threshold: LogLevel = event === RETRY_EVENT ? \"info\" : \"info\";\n if (!log) return;\n if (!shouldLog(level, threshold)) return;\n log(event, meta);\n };\n\n const parseRetryAfterMs = (headers?: Record<string, string>): number | undefined => {\n if (!headers) return undefined;\n const header = headers[\"retry-after\"] ?? headers[\"Retry-After\"];\n return parseRetryAfter(header);\n };\n\n const scheduleRetry = async (delayMs: number, meta: Record<string, unknown>): Promise<void> => {\n emit(RETRY_EVENT, { ...meta, reason: meta.reason ?? DEFAULT_RETRY_REASON });\n if (delayMs > 0) {\n await sleep(delayMs);\n }\n };\n\n const maybeHandleResponse = async ({\n res,\n attempt,\n context,\n isAllowedMethod,\n }: {\n res: HttpResponse;\n attempt: number;\n context: { method: string; url: string; meta?: Record<string, unknown> };\n isAllowedMethod: boolean;\n }): Promise<boolean> => {\n if (res.ok) {\n return false;\n }\n\n const retryAfterMs = parseRetryAfterMs(res.headers);\n if (res.status === 429) {\n emit(RATE_LIMIT_EVENT, { ...context, status: res.status, attempt, retryAfterMs });\n }\n\n const decision = isAllowedMethod\n ? shouldRetryRequest(cfg, { attempt, response: { status: res.status, headers: res.headers, retryAfterMs } })\n : { retry: false };\n\n if (!decision.retry) {\n return false;\n }\n\n const delay = decision.delayMs ?? computeRetryDelay(cfg, { attempt, response: { status: res.status, headers: res.headers, retryAfterMs } });\n await scheduleRetry(delay, {\n ...context,\n attempt,\n nextAttempt: attempt + 1,\n status: res.status,\n delayMs: delay,\n reason: decision.reason,\n retryAfterMs,\n });\n return true;\n };\n\n const maybeHandleError = async ({\n error,\n attempt,\n context,\n }: {\n error: unknown;\n attempt: number;\n context: { method: string; url: string; meta?: Record<string, unknown> };\n }): Promise<boolean> => {\n const decision = shouldRetryRequest(cfg, { attempt, error });\n if (!decision.retry) {\n return false;\n }\n\n const delay = decision.delayMs ?? computeRetryDelay(cfg, { attempt, error });\n await scheduleRetry(delay, {\n ...context,\n attempt,\n nextAttempt: attempt + 1,\n delayMs: delay,\n reason: decision.reason,\n error,\n });\n return true;\n };\n\n return async function retryInterceptor(req, next: NextHandler): Promise<HttpResponse> {\n const isAllowedMethod = allowed.has(req.method);\n for (let attempt = 1; attempt <= cfg.maxAttempts; attempt++) {\n try {\n const res = await next(req);\n const shouldRetry = await maybeHandleResponse({\n res,\n attempt,\n context: { method: req.method, url: req.url, meta: req.meta },\n isAllowedMethod,\n });\n if (!shouldRetry) {\n return res;\n }\n continue;\n } catch (error) {\n const shouldRetry = await maybeHandleError({\n error,\n attempt,\n context: { method: req.method, url: req.url, meta: req.meta },\n });\n if (shouldRetry) {\n continue;\n }\n throw error;\n }\n }\n // Fallback; should be unreachable due to returns/throws above\n return next(req);\n };\n}\n","import type { RuntimeValidationConfig, RuntimeValidationOption } from \"./http.types\";\n\nconst DEFAULT_RUNTIME_VALIDATION: RuntimeValidationConfig = {\n requests: true,\n responses: true,\n errors: true,\n};\n\nfunction normaliseBoolean(flag: boolean | undefined, fallback: boolean): boolean {\n return typeof flag === \"boolean\" ? flag : fallback;\n}\n\nexport function normaliseRuntimeValidation(option?: RuntimeValidationOption): RuntimeValidationConfig {\n if (typeof option === \"boolean\") {\n return {\n requests: option,\n responses: option,\n errors: option,\n } satisfies RuntimeValidationConfig;\n }\n\n return {\n requests: normaliseBoolean(option?.requests, DEFAULT_RUNTIME_VALIDATION.requests),\n responses: normaliseBoolean(option?.responses, DEFAULT_RUNTIME_VALIDATION.responses),\n errors: normaliseBoolean(option?.errors, DEFAULT_RUNTIME_VALIDATION.errors),\n } satisfies RuntimeValidationConfig;\n}\n\nexport function mergeRuntimeValidation(base: RuntimeValidationConfig, override?: RuntimeValidationOption): RuntimeValidationConfig {\n if (override === undefined) {\n return base;\n }\n\n if (typeof override === \"boolean\") {\n return {\n requests: override,\n responses: override,\n errors: override,\n } satisfies RuntimeValidationConfig;\n }\n\n return {\n requests: normaliseBoolean(override.requests, base.requests),\n responses: normaliseBoolean(override.responses, base.responses),\n errors: normaliseBoolean(override.errors, base.errors),\n } satisfies RuntimeValidationConfig;\n}\n\nexport function cloneRuntimeValidation(config: RuntimeValidationConfig): RuntimeValidationConfig {\n return { ...config };\n}\n","import {\n type HttpAdapter,\n type HttpClient,\n type HttpClientConfig,\n type HttpRequest,\n type HttpResponse,\n type Interceptor,\n type LogLevel,\n type QuerySerializer,\n type RequestOptions,\n type RuntimeValidationConfig,\n type RuntimeValidationOption,\n buildUrl,\n composeInterceptors,\n} from \"./http.types\";\nimport { buildCredentialHeaders, type CredentialOptions } from \"../auth/credential-header.builder\";\nimport { buildRequestApiError } from \"../errors/request-api.error\";\nimport { nodeFetchAdapter } from \"./adapters/node-fetch.adapter\";\nimport { createLoggingInterceptor } from \"./interceptors/logging.interceptor\";\nimport { createRetryInterceptor, type RetryInterceptorOptions } from \"./interceptors/retry.interceptor\";\nimport { cloneRuntimeValidation, mergeRuntimeValidation, normaliseRuntimeValidation } from \"./validation.config\";\nimport type { SchemaKey } from \"../../validation/schema.registry\";\nimport { parseWithRegistry } from \"../../validation/zod.helpers\";\n\nexport interface CreateClientOptions {\n baseUrl?: string;\n apiKey?: string;\n clientId?: string;\n origin?: string;\n headers?: Record<string, string>;\n adapter?: HttpAdapter;\n interceptors?: Interceptor[];\n logger?: (event: string, meta?: Record<string, unknown>) => void;\n retry?: RetryInterceptorOptions;\n querySerializer?: QuerySerializer;\n userAgent?: string;\n sdkInfo?: {\n name: string;\n version?: string;\n };\n logLevel?: LogLevel;\n runtimeValidation?: RuntimeValidationOption;\n}\n\nconst DEFAULT_BASE_URL = \"https://api.request.network\";\n\nfunction buildTelemetryHeaders(userAgent?: string, sdkInfo?: CreateClientOptions[\"sdkInfo\"]): Record<string, string> {\n const headers: Record<string, string> = {};\n if (userAgent) headers[\"user-agent\"] = userAgent;\n if (sdkInfo?.name) headers[\"x-sdk\"] = sdkInfo.version ? `${sdkInfo.name}/${sdkInfo.version}` : sdkInfo.name;\n return headers;\n}\n\nfunction buildHeaders(credentials: CredentialOptions, defaults?: Record<string, string>, extra?: Record<string, string>): Record<string, string> {\n return {\n ...buildCredentialHeaders(credentials),\n ...(defaults ?? {}),\n ...(extra ?? {}),\n };\n}\n\nfunction asRecord(value: unknown): Record<string, unknown> | undefined {\n if ((value && typeof value === \"object\") || Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n return undefined;\n}\n\nfunction mapToError(res: HttpResponse, req: HttpRequest, validation: RuntimeValidationConfig): never {\n const operationId = req.meta?.operationId;\n const rawPayload = asRecord(res.data);\n let payload = rawPayload;\n\n if (validation.errors && operationId) {\n const schemaKey: SchemaKey = { operationId, kind: \"response\", status: res.status };\n const parsed = parseWithRegistry({\n key: schemaKey,\n value: rawPayload ?? res.data,\n description: `Error response for ${operationId}`,\n skipOnMissingSchema: true,\n });\n if (!parsed.success) {\n throw parsed.error;\n }\n payload = asRecord(parsed.data);\n }\n\n const error = buildRequestApiError({\n payload,\n status: res.status,\n headers: res.headers,\n fallbackMessage: res.text ?? `HTTP ${String(res.status)}`,\n });\n throw error;\n}\n\nexport function createHttpClient(options: CreateClientOptions = {}): HttpClient {\n const baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;\n const adapter = options.adapter ?? nodeFetchAdapter;\n const defaults = { ...buildTelemetryHeaders(options.userAgent, options.sdkInfo), ...(options.headers ?? {}) };\n const creds: CredentialOptions = { apiKey: options.apiKey, clientId: options.clientId, origin: options.origin };\n\n const userInterceptors = options.interceptors ?? [];\n const logLevel: LogLevel = options.logLevel ?? (options.logger ? \"info\" : \"silent\");\n const runtimeValidation = normaliseRuntimeValidation(options.runtimeValidation);\n\n function buildBaseInterceptors(meta?: RequestOptions[\"meta\"]): Interceptor[] {\n const retryCfg = meta?.retry ?? options.retry?.config;\n const retryOptions: RetryInterceptorOptions = {\n ...(options.retry ?? {}),\n logger: options.retry?.logger ?? options.logger,\n logLevel: options.retry?.logLevel ?? logLevel,\n };\n if (retryCfg) {\n retryOptions.config = retryCfg;\n }\n return [createRetryInterceptor(retryOptions), createLoggingInterceptor({ logger: options.logger, level: logLevel })];\n }\n\n const cfg: HttpClientConfig = {\n baseUrl,\n defaultHeaders: buildHeaders(creds, defaults),\n adapter,\n logger: options.logger,\n querySerializer: options.querySerializer,\n logLevel,\n };\n\n async function dispatch(req: HttpRequest): Promise<HttpResponse> {\n // Compose interceptors: per-request -> user-provided -> base (retry, logging)\n const perRequestInterceptors = req.meta?.interceptors ?? [];\n const baseInterceptors = buildBaseInterceptors(req.meta);\n const all = [...perRequestInterceptors, ...userInterceptors, ...baseInterceptors];\n const terminal = (r: HttpRequest) => cfg.adapter.send(r);\n const chain = composeInterceptors(terminal, all);\n return chain(req);\n }\n\n async function request(init: RequestOptions): Promise<{ status: number; headers: Record<string, string>; data: unknown }> {\n const serializer = init.querySerializer ?? cfg.querySerializer;\n const url = buildUrl(cfg.baseUrl, init.path, init.query, serializer);\n const headers = { ...(cfg.defaultHeaders ?? {}), ...(init.headers ?? {}) };\n const req: HttpRequest = {\n method: init.method,\n url,\n headers,\n body: init.body,\n signal: init.signal,\n timeoutMs: init.timeoutMs,\n meta: init.meta,\n };\n const res = await dispatch(req);\n const effectiveValidation = mergeRuntimeValidation(runtimeValidation, req.meta?.validation);\n if (!res.ok) {\n mapToError(res, req, effectiveValidation);\n }\n return { status: res.status, headers: res.headers, data: res.data };\n }\n\n return {\n request,\n get: (path, init) => request({ ...(init ?? {}), path, method: \"GET\" }),\n post: (path, body, init) => request({ ...(init ?? {}), path, method: \"POST\", body }),\n put: (path, body, init) => request({ ...(init ?? {}), path, method: \"PUT\", body }),\n patch: (path, body, init) => request({ ...(init ?? {}), path, method: \"PATCH\", body }),\n delete: (path, init) => {\n const { body, ...rest } = init ?? {};\n return request({ ...rest, path, method: \"DELETE\", body });\n },\n head: (path, init) => request({ ...(init ?? {}), path, method: \"HEAD\" }),\n options: (path, init) => request({ ...(init ?? {}), path, method: \"OPTIONS\" }),\n getRuntimeValidationConfig: () => cloneRuntimeValidation(runtimeValidation),\n } satisfies HttpClient;\n}\n","import { createFetchInit, headersToRecord } from \"./adapter.utils\";\nimport { type HttpAdapter, type HttpRequest, type HttpResponse } from \"../http.types\";\n\nexport const browserFetchAdapter: HttpAdapter = {\n async send(request: HttpRequest): Promise<HttpResponse> {\n const { init, dispose } = createFetchInit(request);\n try {\n const res = await fetch(request.url, init);\n const respHeaders = headersToRecord(res.headers);\n const contentType = respHeaders[\"content-type\"] ?? \"\";\n let data: unknown;\n let text: string | undefined;\n if (res.status !== 204) {\n try {\n if (contentType.includes(\"application/json\")) {\n data = await res.json();\n } else {\n text = await res.text();\n }\n } catch {\n // ignore parse errors\n }\n }\n\n const normalized: HttpResponse = {\n status: res.status,\n ok: res.ok,\n headers: respHeaders,\n data,\n text,\n };\n return normalized;\n } finally {\n dispose();\n }\n },\n};\n","export {\n createClientIdsApi,\n type ClientIdsApi,\n type ClientIdListResponse,\n type ClientIdCreateBody,\n type ClientIdResponse,\n type ClientIdUpdateBody,\n} from \"./client-ids.facade\";\n// Register only client-ids schemas at import time\nimport \"../../validation/generated/groups/client-ids.schemas.generated\";\n\n","import type { HttpClient, HttpMethod, RequestOptions, RuntimeValidationOption } from \"./http.types\";\nimport { mergeRuntimeValidation } from \"./validation.config\";\nimport type { SchemaKey } from \"../../validation/schema.registry\";\nimport { parseWithRegistry } from \"../../validation/zod.helpers\";\n\ntype Query = NonNullable<RequestOptions[\"query\"]>;\n\nexport interface RequestJsonParams {\n operationId: string;\n method: HttpMethod;\n path: string;\n query?: Query;\n body?: unknown;\n schemaKey: SchemaKey;\n requestSchemaKey?: SchemaKey;\n description?: string;\n querySerializer?: RequestOptions[\"querySerializer\"];\n signal?: RequestOptions[\"signal\"];\n timeoutMs?: RequestOptions[\"timeoutMs\"];\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport async function requestJson<T>(http: HttpClient, params: RequestJsonParams): Promise<T> {\n const {\n operationId,\n method,\n path,\n query,\n body,\n schemaKey,\n requestSchemaKey,\n description,\n querySerializer,\n signal,\n timeoutMs,\n validation,\n meta,\n } = params;\n\n const runtimeValidation = mergeRuntimeValidation(http.getRuntimeValidationConfig(), validation);\n\n let requestBody = body;\n if (runtimeValidation.requests && requestSchemaKey && body !== undefined) {\n const parsedRequest = parseWithRegistry({\n key: requestSchemaKey,\n value: body,\n description: `${description ?? operationId} request`,\n skipOnMissingSchema: true,\n });\n if (!parsedRequest.success) {\n throw parsedRequest.error;\n }\n requestBody = parsedRequest.data;\n }\n\n const metaValidation = validation ?? meta?.validation;\n const requestMeta: RequestOptions[\"meta\"] = {\n ...(meta ?? {}),\n operationId,\n validation: metaValidation,\n };\n\n const res = await http.request({\n method,\n path,\n query,\n body: requestBody,\n querySerializer,\n signal,\n timeoutMs,\n meta: requestMeta,\n });\n\n if (!runtimeValidation.responses) {\n return res.data as T;\n }\n\n const parsedResponse = parseWithRegistry({ key: schemaKey, value: res.data, description });\n if (!parsedResponse.success) throw parsedResponse.error;\n return parsedResponse.data as T;\n}\n\nexport interface RequestVoidParams {\n operationId: string;\n method: HttpMethod;\n path: string;\n query?: Query;\n body?: unknown;\n querySerializer?: RequestOptions[\"querySerializer\"];\n signal?: RequestOptions[\"signal\"];\n timeoutMs?: RequestOptions[\"timeoutMs\"];\n requestSchemaKey?: SchemaKey;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport async function requestVoid(http: HttpClient, params: RequestVoidParams): Promise<void> {\n const { operationId, method, path, query, body, querySerializer, signal, timeoutMs, requestSchemaKey, validation, meta } = params;\n\n const runtimeValidation = mergeRuntimeValidation(http.getRuntimeValidationConfig(), validation);\n\n let requestBody = body;\n if (runtimeValidation.requests && requestSchemaKey && body !== undefined) {\n const parsedRequest = parseWithRegistry({\n key: requestSchemaKey,\n value: body,\n description: `${operationId} request`,\n skipOnMissingSchema: true,\n });\n if (!parsedRequest.success) {\n throw parsedRequest.error;\n }\n requestBody = parsedRequest.data;\n }\n\n const metaValidation = validation ?? meta?.validation;\n const requestMeta: RequestOptions[\"meta\"] = {\n ...(meta ?? {}),\n operationId,\n validation: metaValidation,\n };\n\n await http.request({\n method,\n path,\n query,\n body: requestBody,\n querySerializer,\n signal,\n timeoutMs,\n meta: requestMeta,\n });\n}\n","export function buildPath(template: string, params: Record<string, string | number>): string {\n return template.replace(/\\{(.*?)\\}/g, (_, key: string) => encodeURIComponent(String(params[key] ?? \"\")));\n}\n\n","import type { HttpClient } from \"../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../core/http/operation.helper\";\nimport { buildPath } from \"../../core/http/path.builder\";\nimport type { operations } from \"../../generated/openapi-types\";\n\nexport type ClientIdListResponse = operations[\"ClientIdV2Controller_findAll_v2\"][\"responses\"][200][\"content\"][\"application/json\"]; // array\nexport type ClientIdCreateBody = operations[\"ClientIdV2Controller_create_v2\"][\"requestBody\"][\"content\"][\"application/json\"]; // input\nexport type ClientIdResponse = operations[\"ClientIdV2Controller_findOne_v2\"][\"responses\"][200][\"content\"][\"application/json\"]; // single\nexport type ClientIdUpdateBody = operations[\"ClientIdV2Controller_update_v2\"][\"requestBody\"][\"content\"][\"application/json\"]; // input\n\nexport interface ClientIdsApi {\n list(): Promise<ClientIdListResponse>;\n create(body: ClientIdCreateBody): Promise<ClientIdResponse>;\n findOne(id: string): Promise<ClientIdResponse>;\n update(id: string, body: ClientIdUpdateBody): Promise<ClientIdResponse>;\n revoke(id: string): Promise<void>;\n}\n\nexport function createClientIdsApi(http: HttpClient): ClientIdsApi {\n const PATH_BASE = \"/v2/client-ids\" as const;\n return {\n async list() {\n const OP = \"ClientIdV2Controller_findAll_v2\" as const;\n return requestJson<ClientIdListResponse>(http, {\n operationId: OP,\n method: \"GET\",\n path: PATH_BASE,\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"List client IDs\",\n });\n },\n async create(body) {\n const OP = \"ClientIdV2Controller_create_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"POST\",\n path: PATH_BASE,\n body,\n requestSchemaKey: { operationId: OP, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP, kind: \"response\", status: 201 },\n description: \"Create client ID\",\n });\n },\n async findOne(id) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_findOne_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"Get client ID\",\n });\n },\n async update(id, body) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_update_v2\" as const;\n return requestJson<ClientIdResponse>(http, {\n operationId: OP,\n method: \"PUT\",\n path,\n body,\n requestSchemaKey: { operationId: OP, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP, kind: \"response\", status: 200 },\n description: \"Update client ID\",\n });\n },\n async revoke(id) {\n const path = buildPath(`${PATH_BASE}/{id}`, { id });\n const OP = \"ClientIdV2Controller_delete_v2\" as const;\n await requestVoid(http, {\n operationId: OP,\n method: \"DELETE\",\n path,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (200)\nexport const ClientIdV2Controller_findAll_v2_200 = z.array(z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional(), \"lastUsedAt\": (z.string().nullable()).optional() }).passthrough());\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_findAll_v2_200 });\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (401)\nexport const ClientIdV2Controller_findAll_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_findAll_v2_401 });\n\n// GET /v2/client-ids -> ClientIdV2Controller_findAll_v2 (429)\nexport const ClientIdV2Controller_findAll_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findAll_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_findAll_v2_429 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 request (application/json)\nexport const ClientIdV2Controller_create_v2_Request = z.object({ \"label\": z.string(), \"allowedDomains\": z.array(z.string()), \"feePercentage\": (z.string()).optional(), \"feeAddress\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'request', variant: 'application/json' }, schema: ClientIdV2Controller_create_v2_Request });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (201)\nexport const ClientIdV2Controller_create_v2_201 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 201 }, schema: ClientIdV2Controller_create_v2_201 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (400)\nexport const ClientIdV2Controller_create_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 400 }, schema: ClientIdV2Controller_create_v2_400 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (401)\nexport const ClientIdV2Controller_create_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_create_v2_401 });\n\n// POST /v2/client-ids -> ClientIdV2Controller_create_v2 (429)\nexport const ClientIdV2Controller_create_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_create_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_create_v2_429 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (200)\nexport const ClientIdV2Controller_findOne_v2_200 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"createdAt\": (z.string()).optional(), \"updatedAt\": (z.string()).optional(), \"lastUsedAt\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_findOne_v2_200 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (401)\nexport const ClientIdV2Controller_findOne_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_findOne_v2_401 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (404)\nexport const ClientIdV2Controller_findOne_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_findOne_v2_404 });\n\n// GET /v2/client-ids/{id} -> ClientIdV2Controller_findOne_v2 (429)\nexport const ClientIdV2Controller_findOne_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_findOne_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_findOne_v2_429 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 request (application/json)\nexport const ClientIdV2Controller_update_v2_Request = z.object({ \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.enum(['active', 'inactive', 'revoked'])).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'request', variant: 'application/json' }, schema: ClientIdV2Controller_update_v2_Request });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (200)\nexport const ClientIdV2Controller_update_v2_200 = z.object({ \"id\": (z.string()).optional(), \"clientId\": (z.string()).optional(), \"label\": (z.string()).optional(), \"allowedDomains\": (z.array(z.string())).optional(), \"feePercentage\": (z.string().nullable()).optional(), \"feeAddress\": (z.string().nullable()).optional(), \"status\": (z.string()).optional(), \"updatedAt\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_update_v2_200 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (400)\nexport const ClientIdV2Controller_update_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 400 }, schema: ClientIdV2Controller_update_v2_400 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (401)\nexport const ClientIdV2Controller_update_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_update_v2_401 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (404)\nexport const ClientIdV2Controller_update_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_update_v2_404 });\n\n// PUT /v2/client-ids/{id} -> ClientIdV2Controller_update_v2 (429)\nexport const ClientIdV2Controller_update_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_update_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_update_v2_429 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (200)\nexport const ClientIdV2Controller_delete_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 200 }, schema: ClientIdV2Controller_delete_v2_200 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (401)\nexport const ClientIdV2Controller_delete_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 401 }, schema: ClientIdV2Controller_delete_v2_401 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (404)\nexport const ClientIdV2Controller_delete_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 404 }, schema: ClientIdV2Controller_delete_v2_404 });\n\n// DELETE /v2/client-ids/{id} -> ClientIdV2Controller_delete_v2 (429)\nexport const ClientIdV2Controller_delete_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'ClientIdV2Controller_delete_v2', kind: 'response', status: 429 }, schema: ClientIdV2Controller_delete_v2_429 });\n","export {\n createCurrenciesApi,\n type CurrenciesApi,\n type ListCurrenciesQuery,\n type GetConversionRoutesQuery,\n type CurrencyRequestOptions,\n} from \"./currencies.facade\";\nexport { type CurrencyToken, type CurrencyList, type ConversionRoutes } from \"./currencies.schemas\";\nexport {\n createCurrenciesV1Api,\n type CurrenciesV1Api,\n type CurrencyV1RequestOptions,\n type GetConversionRoutesV1Query,\n type ListCurrenciesV1Query,\n} from \"./v1\";\n\nimport \"../../validation/generated/groups/currencies.schemas.generated\";\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (200)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 200 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_200 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (400)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 400 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_400 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (404)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 404 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_404 });\n\n// GET /v1/currencies -> CurrenciesV1Controller_getNetworkTokens_v1 (429)\nexport const CurrenciesV1Controller_getNetworkTokens_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getNetworkTokens_v1', kind: 'response', status: 429 }, schema: CurrenciesV1Controller_getNetworkTokens_v1_429 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (200)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 200 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_200 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (404)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 404 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_404 });\n\n// GET /v1/currencies/{currencyId}/conversion-routes -> CurrenciesV1Controller_getConversionRoutes_v1 (429)\nexport const CurrenciesV1Controller_getConversionRoutes_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV1Controller_getConversionRoutes_v1', kind: 'response', status: 429 }, schema: CurrenciesV1Controller_getConversionRoutes_v1_429 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (200)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 200 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_200 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (400)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 400 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_400 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (404)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 404 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_404 });\n\n// GET /v2/currencies -> CurrenciesV2Controller_getNetworkTokens_v2 (429)\nexport const CurrenciesV2Controller_getNetworkTokens_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getNetworkTokens_v2', kind: 'response', status: 429 }, schema: CurrenciesV2Controller_getNetworkTokens_v2_429 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (200)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 200 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_200 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (404)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 404 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_404 });\n\n// GET /v2/currencies/{currencyId}/conversion-routes -> CurrenciesV2Controller_getConversionRoutes_v2 (429)\nexport const CurrenciesV2Controller_getConversionRoutes_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'CurrenciesV2Controller_getConversionRoutes_v2', kind: 'response', status: 429 }, schema: CurrenciesV2Controller_getConversionRoutes_v2_429 });\n","import { z } from \"zod\";\n\nimport \"../../validation/generated/groups/currencies.schemas.generated\";\nimport { schemaRegistry } from \"../../validation/schema.registry\";\n\nexport const OP_LIST = \"CurrenciesV2Controller_getNetworkTokens_v2\";\nexport const OP_CONVERSION_ROUTES = \"CurrenciesV2Controller_getConversionRoutes_v2\";\n\nexport const CurrencyTokenSchema = z\n .object({\n id: z.string(),\n name: z.string(),\n symbol: z.string(),\n decimals: z.number(),\n address: z.string().optional(),\n network: z.string().optional(),\n type: z.string().optional(),\n hash: z.string().optional(),\n chainId: z.number().optional(),\n })\n .passthrough();\n\nexport const CurrenciesListSchema = z.array(CurrencyTokenSchema);\nexport type CurrencyToken = z.infer<typeof CurrencyTokenSchema>;\nexport type CurrencyList = z.infer<typeof CurrenciesListSchema>;\n\nexport const ConversionRoutesSchema = z\n .object({\n currencyId: z.string(),\n network: z.string().nullable().optional(),\n conversionRoutes: z.array(CurrencyTokenSchema),\n })\n .passthrough();\n\nexport type ConversionRoutes = z.infer<typeof ConversionRoutesSchema>;\n\nschemaRegistry.register({ key: { operationId: OP_LIST, kind: \"response\", status: 200 }, schema: CurrenciesListSchema });\nschemaRegistry.register({ key: { operationId: OP_CONVERSION_ROUTES, kind: \"response\", status: 200 }, schema: ConversionRoutesSchema });\n","export {\n createCurrenciesV1Api,\n type CurrenciesV1Api,\n type CurrencyV1RequestOptions,\n type GetConversionRoutesV1Query,\n type ListCurrenciesV1Query,\n} from \"./currencies.v1.facade\";\n\nimport \"../../../validation/generated/groups/currencies.schemas.generated\";\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../../../validation/schema.registry\";\nimport {\n ConversionRoutesSchema,\n CurrencyTokenSchema,\n CurrenciesListSchema,\n type ConversionRoutes,\n type CurrencyList,\n} from \"../currencies.schemas\";\n\nexport const OP_LIST_V1 = \"CurrenciesV1Controller_getNetworkTokens_v1\";\nexport const OP_CONVERSION_ROUTES_V1 = \"CurrenciesV1Controller_getConversionRoutes_v1\";\n\nconst DESCRIPTION_LIST = \"Legacy currencies list\";\nconst DESCRIPTION_CONVERSION_ROUTES = \"Legacy conversion routes\";\n\nexport const CurrenciesV1ListSchema = z.union([CurrenciesListSchema, CurrencyTokenSchema]);\n\nexport type LegacyCurrencyList = CurrencyList;\nexport type LegacyConversionRoutes = ConversionRoutes;\n\nschemaRegistry.register({ key: { operationId: OP_LIST_V1, kind: \"response\", status: 200 }, schema: CurrenciesV1ListSchema });\nschemaRegistry.register({\n key: { operationId: OP_CONVERSION_ROUTES_V1, kind: \"response\", status: 200 },\n schema: ConversionRoutesSchema,\n});\n\nexport const DESCRIPTIONS = {\n list: DESCRIPTION_LIST,\n conversionRoutes: DESCRIPTION_CONVERSION_ROUTES,\n} as const;\n","import type { HttpClient, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\nimport { parseWithSchema } from \"../../../validation/zod.helpers\";\nimport { type ConversionRoutes, type CurrencyList, ConversionRoutesSchema } from \"../currencies.schemas\";\nimport {\n CurrenciesV1ListSchema,\n DESCRIPTIONS,\n OP_CONVERSION_ROUTES_V1,\n OP_LIST_V1,\n} from \"./currencies.v1.schemas\";\n\nexport type ListCurrenciesV1Query = operations[typeof OP_LIST_V1][\"parameters\"][\"query\"];\nexport type GetConversionRoutesV1Query = operations[typeof OP_CONVERSION_ROUTES_V1][\"parameters\"][\"query\"];\n\nconst CURRENCIES_V1_PATH = \"/v1/currencies\";\nconst CONVERSION_ROUTES_SEGMENT = \"conversion-routes\";\n\nexport interface CurrencyV1RequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n}\n\nexport interface CurrenciesV1Api {\n list(query?: ListCurrenciesV1Query, options?: CurrencyV1RequestOptions): Promise<CurrencyList>;\n getConversionRoutes(currencyId: string, query?: GetConversionRoutesV1Query, options?: CurrencyV1RequestOptions): Promise<ConversionRoutes>;\n}\n\nfunction toQuery(\n input?: Record<string, unknown>,\n): Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined {\n return input as Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined;\n}\n\nexport function createCurrenciesV1Api(http: HttpClient): CurrenciesV1Api {\n return {\n async list(query, options) {\n const data = await requestJson<unknown>(http, {\n operationId: OP_LIST_V1,\n method: \"GET\",\n path: CURRENCIES_V1_PATH,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_LIST_V1, kind: \"response\", status: 200 },\n description: DESCRIPTIONS.list,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: CurrenciesV1ListSchema,\n value: data,\n description: DESCRIPTIONS.list,\n });\n if (!parsed.success) throw parsed.error;\n const payload = parsed.data;\n const tokens = Array.isArray(payload) ? payload : [payload];\n return tokens as CurrencyList;\n },\n\n async getConversionRoutes(currencyId, query, options) {\n const path = `${CURRENCIES_V1_PATH}/${encodeURIComponent(currencyId)}/${CONVERSION_ROUTES_SEGMENT}`;\n const data = await requestJson<unknown>(http, {\n operationId: OP_CONVERSION_ROUTES_V1,\n method: \"GET\",\n path,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_CONVERSION_ROUTES_V1, kind: \"response\", status: 200 },\n description: DESCRIPTIONS.conversionRoutes,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: ConversionRoutesSchema,\n value: data,\n description: DESCRIPTIONS.conversionRoutes,\n });\n if (!parsed.success) throw parsed.error;\n return parsed.data as ConversionRoutes;\n },\n };\n}\n","import { OP_CONVERSION_ROUTES, OP_LIST, CurrenciesListSchema, ConversionRoutesSchema } from \"./currencies.schemas\";\nimport type { CurrencyList, ConversionRoutes } from \"./currencies.schemas\";\nimport { createCurrenciesV1Api, type CurrenciesV1Api } from \"./v1\";\nimport type { HttpClient, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { parseWithSchema } from \"../../validation/zod.helpers\";\n\nexport type ListCurrenciesQuery = operations[\"CurrenciesV2Controller_getNetworkTokens_v2\"][\"parameters\"][\"query\"];\nexport type GetConversionRoutesQuery = operations[\"CurrenciesV2Controller_getConversionRoutes_v2\"][\"parameters\"][\"query\"];\n\nconst CURRENCIES_PATH = \"/v2/currencies\";\nconst CONVERSION_ROUTES_SEGMENT = \"conversion-routes\";\nconst DESCRIPTION_LIST = \"Currencies list\";\nconst DESCRIPTION_CONVERSION_ROUTES = \"Conversion routes\";\n\nexport interface CurrencyRequestOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n}\n\nexport interface CurrenciesApi {\n list(query?: ListCurrenciesQuery, options?: CurrencyRequestOptions): Promise<CurrencyList>;\n getConversionRoutes(currencyId: string, query?: GetConversionRoutesQuery, options?: CurrencyRequestOptions): Promise<ConversionRoutes>;\n legacy: CurrenciesV1Api;\n}\n\nexport function createCurrenciesApi(http: HttpClient): CurrenciesApi {\n const legacy = createCurrenciesV1Api(http);\n function toQuery(input?: Record<string, unknown>): Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined {\n return input as Record<string, string | number | boolean | (string | number | boolean)[] | undefined> | undefined;\n }\n\n return {\n legacy,\n async list(query, options) {\n const data = await requestJson<unknown>(http, {\n operationId: OP_LIST,\n method: \"GET\",\n path: CURRENCIES_PATH,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_LIST, kind: \"response\", status: 200 },\n description: DESCRIPTION_LIST,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: CurrenciesListSchema,\n value: data,\n description: DESCRIPTION_LIST,\n });\n if (!parsed.success) throw parsed.error;\n const list = parsed.data as CurrencyList;\n return list;\n },\n async getConversionRoutes(currencyId, query, options) {\n const path = `${CURRENCIES_PATH}/${encodeURIComponent(currencyId)}/${CONVERSION_ROUTES_SEGMENT}`;\n const data = await requestJson<unknown>(http, {\n operationId: OP_CONVERSION_ROUTES,\n method: \"GET\",\n path,\n query: toQuery(query ?? undefined),\n schemaKey: { operationId: OP_CONVERSION_ROUTES, kind: \"response\", status: 200 },\n description: DESCRIPTION_CONVERSION_ROUTES,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n });\n\n const parsed = parseWithSchema({\n schema: ConversionRoutesSchema,\n value: data,\n description: DESCRIPTION_CONVERSION_ROUTES,\n });\n if (!parsed.success) throw parsed.error;\n const routes = parsed.data as ConversionRoutes;\n return routes;\n },\n };\n}\n","export { createPayApi, type PayApi, type PayOperationOptions } from \"./pay.facade\";\nexport { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./v1\";\n\nimport \"../../validation/generated/groups/pay.schemas.generated\";\n","export { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./pay.v1.facade\";\n\nimport \"../../../validation/generated/groups/pay.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_PAY_REQUEST = \"PayV1Controller_payRequest_v1\" as const;\nconst PAY_PATH = \"/v1/pay\";\nconst DESCRIPTION_PAY_REQUEST = \"Legacy pay request\";\n\ntype PayRequestBody = operations[typeof OP_PAY_REQUEST][\"requestBody\"][\"content\"][\"application/json\"];\ntype PayRequestResponse = operations[typeof OP_PAY_REQUEST][\"responses\"][201][\"content\"][\"application/json\"];\n\nexport interface PayV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayV1Api {\n payRequest(body: PayRequestBody, options?: PayV1OperationOptions): Promise<PayRequestResponse>;\n}\n\nexport function createPayV1Api(http: HttpClient): PayV1Api {\n return {\n async payRequest(body, options) {\n return requestJson<PayRequestResponse>(http, {\n operationId: OP_PAY_REQUEST,\n method: \"POST\",\n path: PAY_PATH,\n body,\n requestSchemaKey: { operationId: OP_PAY_REQUEST, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_PAY_REQUEST, kind: \"response\", status: 201 },\n description: DESCRIPTION_PAY_REQUEST,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 request (application/json)\nexport const PayV1Controller_payRequest_v1_Request = z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'request', variant: 'application/json' }, schema: PayV1Controller_payRequest_v1_Request });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (201)\nexport const PayV1Controller_payRequest_v1_201 = z.object({ \"requestId\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 201 }, schema: PayV1Controller_payRequest_v1_201 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (401)\nexport const PayV1Controller_payRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 401 }, schema: PayV1Controller_payRequest_v1_401 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (404)\nexport const PayV1Controller_payRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 404 }, schema: PayV1Controller_payRequest_v1_404 });\n\n// POST /v1/pay -> PayV1Controller_payRequest_v1 (429)\nexport const PayV1Controller_payRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayV1Controller_payRequest_v1', kind: 'response', status: 429 }, schema: PayV1Controller_payRequest_v1_429 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 request (application/json)\nexport const PayoutV2Controller_payRequest_v2_Request = z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"feePercentage\": (z.string()).optional(), \"feeAddress\": (z.string()).optional(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']), \"totalPayments\": z.number(), \"payer\": z.string() }).passthrough()).optional(), \"payerWallet\": (z.string()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough()).optional(), \"reference\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_payRequest_v2_Request });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (201)\nexport const PayoutV2Controller_payRequest_v2_201 = z.object({ \"requestId\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_payRequest_v2_201 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (404)\nexport const PayoutV2Controller_payRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_payRequest_v2_404 });\n\n// POST /v2/payouts -> PayoutV2Controller_payRequest_v2 (429)\nexport const PayoutV2Controller_payRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payRequest_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_payRequest_v2_429 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 request (application/json)\nexport const PayoutV2Controller_payBatchRequest_v2_Request = z.object({ \"requests\": (z.array(z.object({ \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string() }).passthrough())).optional(), \"requestIds\": (z.array(z.string())).optional(), \"payer\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_payBatchRequest_v2_Request });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (201)\nexport const PayoutV2Controller_payBatchRequest_v2_201 = z.object({ \"ERC20ApprovalTransactions\": (z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.number() }).passthrough())).optional(), \"ERC20BatchPaymentTransaction\": (z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": z.enum(['BigNumber']), \"hex\": z.string() }).passthrough() }).passthrough()).optional(), \"ETHBatchPaymentTransaction\": (z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": z.enum(['BigNumber']), \"hex\": z.string() }).passthrough() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_payBatchRequest_v2_201 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (400)\nexport const PayoutV2Controller_payBatchRequest_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_payBatchRequest_v2_400 });\n\n// POST /v2/payouts/batch -> PayoutV2Controller_payBatchRequest_v2 (429)\nexport const PayoutV2Controller_payBatchRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_payBatchRequest_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_payBatchRequest_v2_429 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (200)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 200 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_200 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (404)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_404 });\n\n// GET /v2/payouts/recurring/{id} -> PayoutV2Controller_getRecurringPaymentStatus_v2 (429)\nexport const PayoutV2Controller_getRecurringPaymentStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_getRecurringPaymentStatus_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_getRecurringPaymentStatus_v2_429 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 request (application/json)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_Request = z.object({ \"permitSignature\": z.string() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_Request });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (201)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_201 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 201 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_201 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (400)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_400 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (404)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_404 });\n\n// POST /v2/payouts/recurring/{id} -> PayoutV2Controller_submitRecurringPaymentSignature_v2 (429)\nexport const PayoutV2Controller_submitRecurringPaymentSignature_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_submitRecurringPaymentSignature_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_submitRecurringPaymentSignature_v2_429 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 request (application/json)\nexport const PayoutV2Controller_updateRecurringPayment_v2_Request = z.object({ \"action\": z.enum(['cancel', 'unpause']) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'request', variant: 'application/json' }, schema: PayoutV2Controller_updateRecurringPayment_v2_Request });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (200)\nexport const PayoutV2Controller_updateRecurringPayment_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 200 }, schema: PayoutV2Controller_updateRecurringPayment_v2_200 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (400)\nexport const PayoutV2Controller_updateRecurringPayment_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 400 }, schema: PayoutV2Controller_updateRecurringPayment_v2_400 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (404)\nexport const PayoutV2Controller_updateRecurringPayment_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 404 }, schema: PayoutV2Controller_updateRecurringPayment_v2_404 });\n\n// PATCH /v2/payouts/recurring/{id} -> PayoutV2Controller_updateRecurringPayment_v2 (429)\nexport const PayoutV2Controller_updateRecurringPayment_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayoutV2Controller_updateRecurringPayment_v2', kind: 'response', status: 429 }, schema: PayoutV2Controller_updateRecurringPayment_v2_429 });\n","import { createPayV1Api, type PayV1Api, type PayV1OperationOptions } from \"./v1\";\nimport type { HttpClient } from \"../../core/http/http.types\";\n\nexport type PayOperationOptions = PayV1OperationOptions;\n\nexport interface PayApi extends PayV1Api {\n legacy: PayV1Api;\n}\n\nexport { type PayV1Api, type PayV1OperationOptions };\n\nexport function createPayApi(http: HttpClient): PayApi {\n const legacy = createPayV1Api(http);\n return {\n ...legacy,\n legacy,\n };\n}\n","export {\n createPayerApi,\n type PayerApi,\n type PayerOperationOptions,\n} from \"./payer.facade\";\nexport {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./v1\";\nexport {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./v2\";\n\nimport \"../../validation/generated/groups/payer.schemas.generated\";\n","export {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./payer.v1.facade\";\n\nimport \"../../../validation/generated/groups/payer.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_CREATE_COMPLIANCE = \"PayerV1Controller_getComplianceData_v1\" as const;\nconst OP_GET_STATUS = \"PayerV1Controller_getComplianceStatus_v1\" as const;\nconst OP_UPDATE_STATUS = \"PayerV1Controller_updateComplianceStatus_v1\" as const;\nconst OP_CREATE_PAYMENT_DETAILS = \"PayerV1Controller_createPaymentDetails_v1\" as const;\nconst OP_GET_PAYMENT_DETAILS = \"PayerV1Controller_getPaymentDetails_v1\" as const;\n\ntype CreateComplianceBody = operations[typeof OP_CREATE_COMPLIANCE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateComplianceResponse = operations[typeof OP_CREATE_COMPLIANCE][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype ComplianceStatusResponse = operations[typeof OP_GET_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype UpdateComplianceBody = operations[typeof OP_UPDATE_STATUS][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateComplianceResponse = operations[typeof OP_UPDATE_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype CreatePaymentDetailsBody = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePaymentDetailsResponse = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype GetPaymentDetailsResponse = operations[typeof OP_GET_PAYMENT_DETAILS][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayerV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayerV1Api {\n createComplianceData(body: CreateComplianceBody, options?: PayerV1OperationOptions): Promise<CreateComplianceResponse>;\n getComplianceStatus(clientUserId: string, options?: PayerV1OperationOptions): Promise<ComplianceStatusResponse>;\n updateComplianceStatus(\n clientUserId: string,\n body: UpdateComplianceBody,\n options?: PayerV1OperationOptions,\n ): Promise<UpdateComplianceResponse>;\n createPaymentDetails(\n clientUserId: string,\n body: CreatePaymentDetailsBody,\n options?: PayerV1OperationOptions,\n ): Promise<CreatePaymentDetailsResponse>;\n getPaymentDetails(clientUserId: string, options?: PayerV1OperationOptions): Promise<GetPaymentDetailsResponse>;\n}\n\nexport function createPayerV1Api(http: HttpClient): PayerV1Api {\n return {\n async createComplianceData(body, options) {\n return requestJson<CreateComplianceResponse>(http, {\n operationId: OP_CREATE_COMPLIANCE,\n method: \"POST\",\n path: \"/v1/payer\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"response\", status: 200 },\n description: \"Legacy create compliance data\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getComplianceStatus(clientUserId, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<ComplianceStatusResponse>(http, {\n operationId: OP_GET_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy get compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateComplianceStatus(clientUserId, body, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<UpdateComplianceResponse>(http, {\n operationId: OP_UPDATE_STATUS,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_STATUS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy update compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createPaymentDetails(clientUserId, body, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<CreatePaymentDetailsResponse>(http, {\n operationId: OP_CREATE_PAYMENT_DETAILS,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"response\", status: 201 },\n description: \"Legacy create payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentDetails(clientUserId, options) {\n const path = `/v1/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<GetPaymentDetailsResponse>(http, {\n operationId: OP_GET_PAYMENT_DETAILS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_PAYMENT_DETAILS, kind: \"response\", status: 200 },\n description: \"Legacy get payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 request (application/json)\nexport const PayerV1Controller_getComplianceData_v1_Request = z.object({ \"clientUserId\": z.string(), \"email\": z.string(), \"firstName\": z.string(), \"lastName\": z.string(), \"beneficiaryType\": z.enum(['individual', 'business']), \"companyName\": (z.string()).optional(), \"dateOfBirth\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": z.string(), \"postcode\": z.string(), \"country\": z.string(), \"nationality\": z.string(), \"phone\": z.string(), \"ssn\": z.string(), \"sourceOfFunds\": (z.string()).optional(), \"businessActivity\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_getComplianceData_v1_Request });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (200)\nexport const PayerV1Controller_getComplianceData_v1_200 = z.object({ \"agreementUrl\": (z.string()).optional(), \"kycUrl\": (z.string()).optional(), \"status\": z.object({ \"agreementStatus\": z.enum(['not_started', 'completed']), \"kycStatus\": z.enum(['not_started', 'completed']) }).passthrough(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getComplianceData_v1_200 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (400)\nexport const PayerV1Controller_getComplianceData_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_getComplianceData_v1_400 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (401)\nexport const PayerV1Controller_getComplianceData_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getComplianceData_v1_401 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (404)\nexport const PayerV1Controller_getComplianceData_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getComplianceData_v1_404 });\n\n// POST /v1/payer -> PayerV1Controller_getComplianceData_v1 (429)\nexport const PayerV1Controller_getComplianceData_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceData_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getComplianceData_v1_429 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (200)\nexport const PayerV1Controller_getComplianceStatus_v1_200 = z.object({ \"kycStatus\": (z.string()).optional(), \"agreementStatus\": (z.string()).optional(), \"isCompliant\": (z.boolean()).optional(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getComplianceStatus_v1_200 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (401)\nexport const PayerV1Controller_getComplianceStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getComplianceStatus_v1_401 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (404)\nexport const PayerV1Controller_getComplianceStatus_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getComplianceStatus_v1_404 });\n\n// GET /v1/payer/{clientUserId} -> PayerV1Controller_getComplianceStatus_v1 (429)\nexport const PayerV1Controller_getComplianceStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getComplianceStatus_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getComplianceStatus_v1_429 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 request (application/json)\nexport const PayerV1Controller_updateComplianceStatus_v1_Request = z.object({ \"agreementCompleted\": z.boolean() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_updateComplianceStatus_v1_Request });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (200)\nexport const PayerV1Controller_updateComplianceStatus_v1_200 = z.object({ \"success\": (z.boolean()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_updateComplianceStatus_v1_200 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (400)\nexport const PayerV1Controller_updateComplianceStatus_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_updateComplianceStatus_v1_400 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (401)\nexport const PayerV1Controller_updateComplianceStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_updateComplianceStatus_v1_401 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (404)\nexport const PayerV1Controller_updateComplianceStatus_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_updateComplianceStatus_v1_404 });\n\n// PATCH /v1/payer/{clientUserId} -> PayerV1Controller_updateComplianceStatus_v1 (429)\nexport const PayerV1Controller_updateComplianceStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_updateComplianceStatus_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_updateComplianceStatus_v1_429 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (200)\nexport const PayerV1Controller_getPaymentDetails_v1_200 = z.object({ \"paymentDetails\": (z.array(z.object({ \"id\": (z.string()).optional(), \"userId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"beneficiaryType\": (z.string()).optional(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"status\": (z.string()).optional(), \"rails\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 200 }, schema: PayerV1Controller_getPaymentDetails_v1_200 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (401)\nexport const PayerV1Controller_getPaymentDetails_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_getPaymentDetails_v1_401 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (404)\nexport const PayerV1Controller_getPaymentDetails_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_getPaymentDetails_v1_404 });\n\n// GET /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_getPaymentDetails_v1 (429)\nexport const PayerV1Controller_getPaymentDetails_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_getPaymentDetails_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_getPaymentDetails_v1_429 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 request (application/json)\nexport const PayerV1Controller_createPaymentDetails_v1_Request = z.object({ \"bankName\": z.string(), \"accountName\": z.string(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"beneficiaryType\": z.enum(['individual', 'business']), \"currency\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": (z.string()).optional(), \"country\": z.string(), \"dateOfBirth\": z.string(), \"postalCode\": z.string(), \"rails\": (z.enum(['local', 'swift', 'wire'])).optional(), \"sortCode\": (z.string()).optional(), \"iban\": (z.string()).optional(), \"swiftBic\": (z.string()).optional(), \"documentNumber\": (z.string()).optional(), \"documentType\": (z.string()).optional(), \"accountType\": (z.enum(['checking', 'savings'])).optional(), \"ribNumber\": (z.string()).optional(), \"bsbNumber\": (z.string()).optional(), \"ncc\": (z.string()).optional(), \"branchCode\": (z.string()).optional(), \"bankCode\": (z.string()).optional(), \"ifsc\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'request', variant: 'application/json' }, schema: PayerV1Controller_createPaymentDetails_v1_Request });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (201)\nexport const PayerV1Controller_createPaymentDetails_v1_201 = z.object({ \"payment_detail\": (z.object({ \"id\": (z.string()).optional(), \"clientUserId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"beneficiaryType\": (z.enum(['individual', 'business'])).optional() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 201 }, schema: PayerV1Controller_createPaymentDetails_v1_201 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (400)\nexport const PayerV1Controller_createPaymentDetails_v1_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 400 }, schema: PayerV1Controller_createPaymentDetails_v1_400 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (401)\nexport const PayerV1Controller_createPaymentDetails_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 401 }, schema: PayerV1Controller_createPaymentDetails_v1_401 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (404)\nexport const PayerV1Controller_createPaymentDetails_v1_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 404 }, schema: PayerV1Controller_createPaymentDetails_v1_404 });\n\n// POST /v1/payer/{clientUserId}/payment-details -> PayerV1Controller_createPaymentDetails_v1 (429)\nexport const PayerV1Controller_createPaymentDetails_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV1Controller_createPaymentDetails_v1', kind: 'response', status: 429 }, schema: PayerV1Controller_createPaymentDetails_v1_429 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 request (application/json)\nexport const PayerV2Controller_getComplianceData_v2_Request = z.object({ \"clientUserId\": z.string(), \"email\": z.string(), \"firstName\": z.string(), \"lastName\": z.string(), \"beneficiaryType\": z.enum(['individual', 'business']), \"companyName\": (z.string()).optional(), \"dateOfBirth\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": z.string(), \"postcode\": z.string(), \"country\": z.string(), \"nationality\": z.string(), \"phone\": z.string(), \"ssn\": z.string(), \"sourceOfFunds\": (z.string()).optional(), \"businessActivity\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_getComplianceData_v2_Request });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (200)\nexport const PayerV2Controller_getComplianceData_v2_200 = z.object({ \"agreementUrl\": (z.string()).optional(), \"kycUrl\": (z.string()).optional(), \"status\": z.object({ \"agreementStatus\": z.enum(['not_started', 'completed']), \"kycStatus\": z.enum(['not_started', 'completed']) }).passthrough(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getComplianceData_v2_200 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (400)\nexport const PayerV2Controller_getComplianceData_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_getComplianceData_v2_400 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (401)\nexport const PayerV2Controller_getComplianceData_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getComplianceData_v2_401 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (404)\nexport const PayerV2Controller_getComplianceData_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getComplianceData_v2_404 });\n\n// POST /v2/payer -> PayerV2Controller_getComplianceData_v2 (429)\nexport const PayerV2Controller_getComplianceData_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceData_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getComplianceData_v2_429 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (200)\nexport const PayerV2Controller_getComplianceStatus_v2_200 = z.object({ \"kycStatus\": (z.string()).optional(), \"agreementStatus\": (z.string()).optional(), \"isCompliant\": (z.boolean()).optional(), \"userId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getComplianceStatus_v2_200 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (401)\nexport const PayerV2Controller_getComplianceStatus_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getComplianceStatus_v2_401 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (404)\nexport const PayerV2Controller_getComplianceStatus_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getComplianceStatus_v2_404 });\n\n// GET /v2/payer/{clientUserId} -> PayerV2Controller_getComplianceStatus_v2 (429)\nexport const PayerV2Controller_getComplianceStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getComplianceStatus_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getComplianceStatus_v2_429 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 request (application/json)\nexport const PayerV2Controller_updateComplianceStatus_v2_Request = z.object({ \"agreementCompleted\": z.boolean() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_updateComplianceStatus_v2_Request });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (200)\nexport const PayerV2Controller_updateComplianceStatus_v2_200 = z.object({ \"success\": (z.boolean()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_updateComplianceStatus_v2_200 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (400)\nexport const PayerV2Controller_updateComplianceStatus_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_updateComplianceStatus_v2_400 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (401)\nexport const PayerV2Controller_updateComplianceStatus_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_updateComplianceStatus_v2_401 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (404)\nexport const PayerV2Controller_updateComplianceStatus_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_updateComplianceStatus_v2_404 });\n\n// PATCH /v2/payer/{clientUserId} -> PayerV2Controller_updateComplianceStatus_v2 (429)\nexport const PayerV2Controller_updateComplianceStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_updateComplianceStatus_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_updateComplianceStatus_v2_429 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (200)\nexport const PayerV2Controller_getPaymentDetails_v2_200 = z.object({ \"paymentDetails\": (z.array(z.object({ \"id\": (z.string()).optional(), \"userId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"beneficiaryType\": (z.string()).optional(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"status\": (z.string()).optional(), \"rails\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 200 }, schema: PayerV2Controller_getPaymentDetails_v2_200 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (401)\nexport const PayerV2Controller_getPaymentDetails_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_getPaymentDetails_v2_401 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (404)\nexport const PayerV2Controller_getPaymentDetails_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_getPaymentDetails_v2_404 });\n\n// GET /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_getPaymentDetails_v2 (429)\nexport const PayerV2Controller_getPaymentDetails_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_getPaymentDetails_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_getPaymentDetails_v2_429 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 request (application/json)\nexport const PayerV2Controller_createPaymentDetails_v2_Request = z.object({ \"bankName\": z.string(), \"accountName\": z.string(), \"accountNumber\": (z.string()).optional(), \"routingNumber\": (z.string()).optional(), \"beneficiaryType\": z.enum(['individual', 'business']), \"currency\": z.string(), \"addressLine1\": z.string(), \"addressLine2\": (z.string()).optional(), \"city\": z.string(), \"state\": (z.string()).optional(), \"country\": z.string(), \"dateOfBirth\": z.string(), \"postalCode\": z.string(), \"rails\": (z.enum(['local', 'swift', 'wire'])).optional(), \"sortCode\": (z.string()).optional(), \"iban\": (z.string()).optional(), \"swiftBic\": (z.string()).optional(), \"documentNumber\": (z.string()).optional(), \"documentType\": (z.string()).optional(), \"accountType\": (z.enum(['checking', 'savings'])).optional(), \"ribNumber\": (z.string()).optional(), \"bsbNumber\": (z.string()).optional(), \"ncc\": (z.string()).optional(), \"branchCode\": (z.string()).optional(), \"bankCode\": (z.string()).optional(), \"ifsc\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'request', variant: 'application/json' }, schema: PayerV2Controller_createPaymentDetails_v2_Request });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (201)\nexport const PayerV2Controller_createPaymentDetails_v2_201 = z.object({ \"payment_detail\": (z.object({ \"id\": (z.string()).optional(), \"clientUserId\": (z.string()).optional(), \"bankName\": (z.string()).optional(), \"accountName\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"beneficiaryType\": (z.enum(['individual', 'business'])).optional() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 201 }, schema: PayerV2Controller_createPaymentDetails_v2_201 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (400)\nexport const PayerV2Controller_createPaymentDetails_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 400 }, schema: PayerV2Controller_createPaymentDetails_v2_400 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (401)\nexport const PayerV2Controller_createPaymentDetails_v2_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 401 }, schema: PayerV2Controller_createPaymentDetails_v2_401 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (404)\nexport const PayerV2Controller_createPaymentDetails_v2_404 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 404 }, schema: PayerV2Controller_createPaymentDetails_v2_404 });\n\n// POST /v2/payer/{clientUserId}/payment-details -> PayerV2Controller_createPaymentDetails_v2 (429)\nexport const PayerV2Controller_createPaymentDetails_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PayerV2Controller_createPaymentDetails_v2', kind: 'response', status: 429 }, schema: PayerV2Controller_createPaymentDetails_v2_429 });\n","export {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./payer.v2.facade\";\n\nimport \"../../../validation/generated/groups/payer.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\n\nconst OP_CREATE_COMPLIANCE = \"PayerV2Controller_getComplianceData_v2\" as const;\nconst OP_GET_STATUS = \"PayerV2Controller_getComplianceStatus_v2\" as const;\nconst OP_UPDATE_STATUS = \"PayerV2Controller_updateComplianceStatus_v2\" as const;\nconst OP_CREATE_PAYMENT_DETAILS = \"PayerV2Controller_createPaymentDetails_v2\" as const;\nconst OP_GET_PAYMENT_DETAILS = \"PayerV2Controller_getPaymentDetails_v2\" as const;\n\ntype CreateComplianceBody = operations[typeof OP_CREATE_COMPLIANCE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateComplianceResponse = operations[typeof OP_CREATE_COMPLIANCE][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype ComplianceStatusResponse = operations[typeof OP_GET_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype UpdateComplianceBody = operations[typeof OP_UPDATE_STATUS][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateComplianceResponse = operations[typeof OP_UPDATE_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype CreatePaymentDetailsBody = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePaymentDetailsResponse = operations[typeof OP_CREATE_PAYMENT_DETAILS][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype GetPaymentDetailsResponse = operations[typeof OP_GET_PAYMENT_DETAILS][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayerV2OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayerV2Api {\n createComplianceData(body: CreateComplianceBody, options?: PayerV2OperationOptions): Promise<CreateComplianceResponse>;\n getComplianceStatus(clientUserId: string, options?: PayerV2OperationOptions): Promise<ComplianceStatusResponse>;\n updateComplianceStatus(\n clientUserId: string,\n body: UpdateComplianceBody,\n options?: PayerV2OperationOptions,\n ): Promise<UpdateComplianceResponse>;\n createPaymentDetails(\n clientUserId: string,\n body: CreatePaymentDetailsBody,\n options?: PayerV2OperationOptions,\n ): Promise<CreatePaymentDetailsResponse>;\n getPaymentDetails(clientUserId: string, options?: PayerV2OperationOptions): Promise<GetPaymentDetailsResponse>;\n}\n\nexport function createPayerV2Api(http: HttpClient): PayerV2Api {\n return {\n async createComplianceData(body, options) {\n return requestJson<CreateComplianceResponse>(http, {\n operationId: OP_CREATE_COMPLIANCE,\n method: \"POST\",\n path: \"/v2/payer\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_COMPLIANCE, kind: \"response\", status: 200 },\n description: \"Create compliance data\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getComplianceStatus(clientUserId, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<ComplianceStatusResponse>(http, {\n operationId: OP_GET_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_STATUS, kind: \"response\", status: 200 },\n description: \"Get compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateComplianceStatus(clientUserId, body, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}`;\n return requestJson<UpdateComplianceResponse>(http, {\n operationId: OP_UPDATE_STATUS,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_STATUS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_STATUS, kind: \"response\", status: 200 },\n description: \"Update compliance status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createPaymentDetails(clientUserId, body, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<CreatePaymentDetailsResponse>(http, {\n operationId: OP_CREATE_PAYMENT_DETAILS,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_PAYMENT_DETAILS, kind: \"response\", status: 201 },\n description: \"Create payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentDetails(clientUserId, options) {\n const path = `/v2/payer/${encodeURIComponent(clientUserId)}/payment-details`;\n return requestJson<GetPaymentDetailsResponse>(http, {\n operationId: OP_GET_PAYMENT_DETAILS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_GET_PAYMENT_DETAILS, kind: \"response\", status: 200 },\n description: \"Get payment details\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","import {\n createPayerV1Api,\n type PayerV1Api,\n type PayerV1OperationOptions,\n} from \"./v1\";\nimport {\n createPayerV2Api,\n type PayerV2Api,\n type PayerV2OperationOptions,\n} from \"./v2\";\nimport type { HttpClient } from \"../../core/http/http.types\";\n\nexport type PayerOperationOptions = PayerV2OperationOptions;\n\nexport interface PayerApi extends PayerV2Api {\n legacy: PayerV1Api;\n}\n\nexport { type PayerV1Api, type PayerV2Api, type PayerV1OperationOptions, type PayerV2OperationOptions };\n\nexport function createPayerApi(http: HttpClient): PayerApi {\n const v2 = createPayerV2Api(http);\n const legacy = createPayerV1Api(http);\n return Object.assign({ legacy }, v2);\n}\n","export {\n createPaymentsApi,\n type PaymentsApi,\n type PaymentSearchOptions,\n type PaymentSearchResult,\n type PaymentSearchQuery,\n type PaymentRecord,\n type PaymentSearchPagination,\n} from \"./payments.facade\";\n\nimport \"../../validation/generated/groups/v2/payments.schemas.generated\";\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (200)\nexport const PaymentV2Controller_searchPayments_v2_200 = z.object({ \"payments\": z.array(z.object({ \"id\": z.string(), \"amount\": z.string(), \"sourceNetwork\": z.string(), \"destinationNetwork\": z.string(), \"sourceTxHash\": (z.string().nullable()).optional(), \"destinationTxHash\": (z.string().nullable()).optional(), \"timestamp\": z.string(), \"type\": z.enum(['direct', 'conversion', 'crosschain', 'recurring']), \"conversionRateSource\": (z.string().nullable()).optional(), \"conversionRateDestination\": (z.string().nullable()).optional(), \"convertedAmountSource\": (z.string().nullable()).optional(), \"convertedAmountDestination\": (z.string().nullable()).optional(), \"currency\": z.string(), \"paymentCurrency\": z.string(), \"fees\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough()).nullable()).optional(), \"recurringPaymentId\": (z.string().nullable()).optional(), \"rateProvider\": (z.enum(['lifi', 'chainlink', 'coingecko', 'unknown'])).optional(), \"request\": (z.object({ \"requestId\": (z.string()).optional(), \"paymentReference\": (z.string()).optional(), \"hasBeenPaid\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough().nullable()).optional(), \"reference\": (z.string().nullable()).optional() }).passthrough()).optional() }).passthrough()), \"pagination\": z.object({ \"total\": z.number(), \"limit\": z.number(), \"offset\": z.number(), \"hasMore\": z.boolean() }).passthrough() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 200 }, schema: PaymentV2Controller_searchPayments_v2_200 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (400)\nexport const PaymentV2Controller_searchPayments_v2_400 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"errors\": (z.array(z.object({ \"field\": (z.string()).optional(), \"message\": (z.string()).optional() }).passthrough())).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 400 }, schema: PaymentV2Controller_searchPayments_v2_400 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (401)\nexport const PaymentV2Controller_searchPayments_v2_401 = z.object({ \"statusCode\": (z.number()).optional(), \"message\": (z.string()).optional(), \"error\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 401 }, schema: PaymentV2Controller_searchPayments_v2_401 });\n\n// GET /v2/payments -> PaymentV2Controller_searchPayments_v2 (429)\nexport const PaymentV2Controller_searchPayments_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'PaymentV2Controller_searchPayments_v2', kind: 'response', status: 429 }, schema: PaymentV2Controller_searchPayments_v2_429 });\n","import { z } from \"zod\";\n\nimport \"../../validation/generated/groups/v2/payments.schemas.generated\";\nimport { schemaRegistry } from \"../../validation/schema.registry\";\n\nexport const OP_SEARCH_PAYMENTS = \"PaymentV2Controller_searchPayments_v2\";\n\nconst AddressSchema = z\n .object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n postalCode: z.string().optional(),\n country: z.string().optional(),\n })\n .passthrough();\n\nexport const CustomerInfoSchema = z\n .object({\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n address: AddressSchema.optional(),\n })\n .passthrough();\n\nexport const FeeSchema = z\n .object({\n type: z.enum([\"gas\", \"platform\", \"crosschain\", \"crypto-to-fiat\", \"offramp\"]).optional(),\n stage: z.enum([\"sending\", \"receiving\", \"proxying\", \"refunding\"]).optional(),\n provider: z.string().optional(),\n amount: z.string().optional(),\n amountInUSD: z.string().optional(),\n currency: z.string().optional(),\n receiverAddress: z.string().optional(),\n network: z.string().optional(),\n rateProvider: z.string().optional(),\n })\n .passthrough();\n\nexport const RequestInfoSchema = z\n .object({\n requestId: z.string().optional(),\n paymentReference: z.string().optional(),\n hasBeenPaid: z.boolean().optional(),\n customerInfo: CustomerInfoSchema.nullable().optional(),\n reference: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport const PaymentRecordSchema = z\n .object({\n id: z.string(),\n amount: z.string(),\n sourceNetwork: z.string(),\n destinationNetwork: z.string(),\n sourceTxHash: z.string().nullable().optional(),\n destinationTxHash: z.string().nullable().optional(),\n timestamp: z.string(),\n type: z.enum([\"direct\", \"conversion\", \"crosschain\", \"recurring\"]),\n conversionRateSource: z.string().nullable().optional(),\n conversionRateDestination: z.string().nullable().optional(),\n convertedAmountSource: z.string().nullable().optional(),\n convertedAmountDestination: z.string().nullable().optional(),\n currency: z.string(),\n paymentCurrency: z.string(),\n fees: z.array(FeeSchema).nullable().optional(),\n recurringPaymentId: z.string().nullable().optional(),\n rateProvider: z.enum([\"lifi\", \"chainlink\", \"coingecko\", \"unknown\"]).nullable().optional(),\n request: RequestInfoSchema.optional(),\n })\n .passthrough();\n\nexport const PaginationSchema = z\n .object({\n total: z.number(),\n limit: z.number(),\n offset: z.number(),\n hasMore: z.boolean(),\n })\n .passthrough();\n\nexport const PaymentSearchResponseSchema = z\n .object({\n payments: z.array(PaymentRecordSchema),\n pagination: PaginationSchema,\n })\n .passthrough();\n\nexport type PaymentRecord = z.infer<typeof PaymentRecordSchema>;\nexport type PaymentFee = z.infer<typeof FeeSchema>;\nexport type PaymentSearchResponse = z.infer<typeof PaymentSearchResponseSchema>;\nexport type PaymentSearchPagination = z.infer<typeof PaginationSchema>;\n\nschemaRegistry.register({\n key: { operationId: OP_SEARCH_PAYMENTS, kind: \"response\", status: 200 },\n schema: PaymentSearchResponseSchema,\n});\n","import type { RequestOptions } from \"../../core/http/http.types\";\nimport type { operations } from \"../../generated/openapi-types\";\n\ntype QueryValue = string | number | boolean | (string | number | boolean)[];\n\n/**\n * Builds a query object while stripping out undefined entries so the HTTP helper\n * does not emit spurious `param=undefined` pairs.\n */\nexport function buildRequestQuery(input?: Record<string, unknown>): RequestOptions[\"query\"] | undefined {\n if (!input) return undefined;\n const entries = Object.entries(input).filter(([, value]) => value !== undefined);\n if (entries.length === 0) return undefined;\n return Object.fromEntries(entries) as Record<string, QueryValue | undefined>;\n}\n\ntype LegacyStatusApiResponse =\n operations[\"RequestControllerV1_getRequestStatus_v1\"][\"responses\"][200][\"content\"][\"application/json\"];\ntype StatusApiResponseV2 =\n operations[\"RequestControllerV2_getRequestStatus_v2\"][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface RequestStatusAddress {\n street?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n}\n\nexport interface RequestStatusCustomerInfo {\n firstName?: string;\n lastName?: string;\n email?: string;\n address?: RequestStatusAddress;\n}\n\nexport type RequestStatusKind = \"paid\" | \"pending\" | \"cancelled\" | \"overdue\" | \"unknown\";\n\ninterface RequestStatusBase {\n paymentReference?: string;\n requestId?: string;\n isListening?: boolean;\n txHash: string | null;\n status?: string;\n recurrence?: Record<string, unknown>;\n originalRequestId?: string;\n originalRequestPaymentReference?: string;\n isRecurrenceStopped?: boolean;\n isCryptoToFiatAvailable?: boolean;\n payments?: Array<Record<string, unknown>>;\n customerInfo?: RequestStatusCustomerInfo | null;\n reference?: string | null;\n hasBeenPaid?: boolean;\n}\n\nexport type RequestStatusResult =\n | (RequestStatusBase & { kind: \"paid\"; hasBeenPaid: true })\n | (RequestStatusBase & { kind: \"pending\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"cancelled\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"overdue\"; hasBeenPaid?: boolean })\n | (RequestStatusBase & { kind: \"unknown\"; hasBeenPaid?: boolean });\n\nexport type LegacyRequestStatusResult = Extract<RequestStatusResult, { kind: \"paid\" | \"pending\" }>;\n\nconst STATUS_KIND_MAP: Record<string, RequestStatusKind> = {\n paid: \"paid\",\n completed: \"paid\",\n settled: \"paid\",\n pending: \"pending\",\n processing: \"pending\",\n open: \"pending\",\n awaitingpayment: \"pending\",\n awaiting_payment: \"pending\",\n cancelled: \"cancelled\",\n canceled: \"cancelled\",\n voided: \"cancelled\",\n overdue: \"overdue\",\n expired: \"overdue\",\n};\n\nfunction normalizeReference(value: string | null | undefined): string | null | undefined {\n if (value === undefined) return undefined;\n return value;\n}\n\nfunction normalizeCustomerInfo(value: RequestStatusCustomerInfo | null | undefined): RequestStatusCustomerInfo | null | undefined {\n if (value === undefined) return undefined;\n if (value === null) return null;\n return {\n firstName: value.firstName ?? undefined,\n lastName: value.lastName ?? undefined,\n email: value.email ?? undefined,\n address: value.address\n ? {\n street: value.address.street ?? undefined,\n city: value.address.city ?? undefined,\n state: value.address.state ?? undefined,\n postalCode: value.address.postalCode ?? undefined,\n country: value.address.country ?? undefined,\n }\n : undefined,\n };\n}\n\nfunction normalizePayments(payments: StatusApiResponseV2[\"payments\"]): Array<Record<string, unknown>> | undefined {\n if (!payments) return undefined;\n return payments.map((payment) => ({ ...payment })) as Array<Record<string, unknown>>;\n}\n\nfunction buildStatusBase(\n raw: LegacyStatusApiResponse | StatusApiResponseV2,\n overrides?: Partial<RequestStatusBase>,\n): RequestStatusBase {\n return {\n paymentReference: raw.paymentReference ?? undefined,\n requestId: raw.requestId ?? undefined,\n isListening: \"isListening\" in raw ? raw.isListening ?? undefined : undefined,\n txHash: raw.txHash ?? null,\n hasBeenPaid: raw.hasBeenPaid ?? false,\n status: \"status\" in raw ? (raw).status ?? undefined : undefined,\n recurrence:\n \"recurrence\" in raw ? ((raw).recurrence as Record<string, unknown> | undefined) : undefined,\n originalRequestId: \"originalRequestId\" in raw ? (raw).originalRequestId ?? undefined : undefined,\n originalRequestPaymentReference:\n \"originalRequestPaymentReference\" in raw\n ? (raw).originalRequestPaymentReference ?? undefined\n : undefined,\n isRecurrenceStopped:\n \"isRecurrenceStopped\" in raw ? (raw).isRecurrenceStopped ?? undefined : undefined,\n isCryptoToFiatAvailable:\n \"isCryptoToFiatAvailable\" in raw\n ? (raw).isCryptoToFiatAvailable ?? undefined\n : undefined,\n payments: \"payments\" in raw ? normalizePayments((raw).payments) : undefined,\n customerInfo:\n \"customerInfo\" in raw\n ? normalizeCustomerInfo(\n (raw).customerInfo as RequestStatusCustomerInfo | null | undefined,\n )\n : undefined,\n reference:\n \"reference\" in raw ? normalizeReference((raw).reference ?? null) : undefined,\n ...overrides,\n };\n}\n\nexport function normalizeLegacyStatusResponse(raw: LegacyStatusApiResponse): LegacyRequestStatusResult {\n if (raw.hasBeenPaid) {\n return {\n kind: \"paid\",\n ...buildStatusBase(raw, { hasBeenPaid: true }),\n hasBeenPaid: true,\n };\n }\n\n return {\n kind: \"pending\",\n ...buildStatusBase(raw, { hasBeenPaid: false }),\n hasBeenPaid: false,\n };\n}\n\nexport function normalizeRequestStatusResponse(raw: StatusApiResponseV2): RequestStatusResult {\n const statusKey = raw.status?.trim().toLowerCase();\n const mapped = statusKey ? STATUS_KIND_MAP[statusKey] : undefined;\n const kind: RequestStatusKind = raw.hasBeenPaid\n ? \"paid\"\n : mapped ?? (statusKey ? \"unknown\" : \"pending\");\n\n if (kind === \"paid\") {\n return {\n kind,\n ...buildStatusBase(raw, { hasBeenPaid: true }),\n hasBeenPaid: true,\n };\n }\n\n return {\n kind,\n ...buildStatusBase(raw, { hasBeenPaid: false }),\n hasBeenPaid: false,\n };\n}\n","import {\n OP_SEARCH_PAYMENTS,\n type PaymentSearchPagination,\n type PaymentSearchResponse,\n type PaymentRecord,\n} from \"./payments.schemas\";\nimport type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { buildRequestQuery } from \"../requests/request.helpers\";\n\nexport type PaymentSearchQuery = operations[typeof OP_SEARCH_PAYMENTS][\"parameters\"][\"query\"];\n\nexport interface PaymentSearchOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type PaymentSearchResult = PaymentSearchResponse;\n\nexport interface PaymentsApi {\n search(query: PaymentSearchQuery, options?: PaymentSearchOptions): Promise<PaymentSearchResult>;\n}\n\nexport function createPaymentsApi(http: HttpClient): PaymentsApi {\n return {\n async search(query, options) {\n const requestQuery = buildRequestQuery(query ? { ...query } : undefined);\n return requestJson<PaymentSearchResponse>(http, {\n operationId: OP_SEARCH_PAYMENTS,\n method: \"GET\",\n path: \"/v2/payments\",\n query: requestQuery,\n schemaKey: { operationId: OP_SEARCH_PAYMENTS, kind: \"response\", status: 200 },\n description: \"Search payments\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n\nexport type { PaymentRecord, PaymentSearchPagination };\n","export {\n createPayoutsApi,\n type PayoutsApi,\n type PayoutOperationOptions,\n} from \"./payouts.facade\";\n\nimport \"../../validation/generated/groups/pay.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\n\nconst OP_CREATE = \"PayoutV2Controller_payRequest_v2\" as const;\nconst OP_CREATE_BATCH = \"PayoutV2Controller_payBatchRequest_v2\" as const;\nconst OP_RECURRING_STATUS = \"PayoutV2Controller_getRecurringPaymentStatus_v2\" as const;\nconst OP_SUBMIT_SIGNATURE = \"PayoutV2Controller_submitRecurringPaymentSignature_v2\" as const;\nconst OP_UPDATE_RECURRING = \"PayoutV2Controller_updateRecurringPayment_v2\" as const;\n\ntype CreatePayoutBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreatePayoutResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype CreateBatchBody = operations[typeof OP_CREATE_BATCH][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateBatchResponse = operations[typeof OP_CREATE_BATCH][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype RecurringStatusResponse = operations[typeof OP_RECURRING_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype SubmitRecurringSignatureBody = operations[typeof OP_SUBMIT_SIGNATURE][\"requestBody\"][\"content\"][\"application/json\"];\ntype SubmitRecurringSignatureResponse = operations[typeof OP_SUBMIT_SIGNATURE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype UpdateRecurringBody = operations[typeof OP_UPDATE_RECURRING][\"requestBody\"][\"content\"][\"application/json\"];\ntype UpdateRecurringResponse = operations[typeof OP_UPDATE_RECURRING][\"responses\"][200][\"content\"][\"application/json\"];\n\nexport interface PayoutOperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport interface PayoutsApi {\n create(body: CreatePayoutBody, options?: PayoutOperationOptions): Promise<CreatePayoutResponse>;\n createBatch(body: CreateBatchBody, options?: PayoutOperationOptions): Promise<CreateBatchResponse>;\n getRecurringStatus(recurringId: string, options?: PayoutOperationOptions): Promise<RecurringStatusResponse>;\n submitRecurringSignature(recurringId: string, body: SubmitRecurringSignatureBody, options?: PayoutOperationOptions): Promise<SubmitRecurringSignatureResponse>;\n updateRecurring(recurringId: string, body: UpdateRecurringBody, options?: PayoutOperationOptions): Promise<UpdateRecurringResponse>;\n}\n\nexport function createPayoutsApi(http: HttpClient): PayoutsApi {\n return {\n async create(body, options) {\n return requestJson<CreatePayoutResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v2/payouts\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create payout\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async createBatch(body, options) {\n return requestJson<CreateBatchResponse>(http, {\n operationId: OP_CREATE_BATCH,\n method: \"POST\",\n path: \"/v2/payouts/batch\",\n body,\n requestSchemaKey: { operationId: OP_CREATE_BATCH, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE_BATCH, kind: \"response\", status: 201 },\n description: \"Create payout batch\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getRecurringStatus(recurringId, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<RecurringStatusResponse>(http, {\n operationId: OP_RECURRING_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_RECURRING_STATUS, kind: \"response\", status: 200 },\n description: \"Get recurring payout status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async submitRecurringSignature(recurringId, body, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<SubmitRecurringSignatureResponse>(http, {\n operationId: OP_SUBMIT_SIGNATURE,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SUBMIT_SIGNATURE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_SUBMIT_SIGNATURE, kind: \"response\", status: 201 },\n description: \"Submit recurring payout signature\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async updateRecurring(recurringId, body, options) {\n const path = `/v2/payouts/recurring/${encodeURIComponent(recurringId)}`;\n return requestJson<UpdateRecurringResponse>(http, {\n operationId: OP_UPDATE_RECURRING,\n method: \"PATCH\",\n path,\n body,\n requestSchemaKey: { operationId: OP_UPDATE_RECURRING, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_UPDATE_RECURRING, kind: \"response\", status: 200 },\n description: \"Update recurring payout\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","export {\n createRequestsApi,\n type RequestsApi,\n type RequestOperationOptions,\n type GetPaymentRoutesOptions,\n type PaymentRoutesResponse,\n type PaymentRoute,\n type GetPaymentCalldataOptions,\n type PaymentCalldataResult,\n type RequestStatusResult,\n} from \"./requests.facade\";\nexport {\n type RequestStatusKind,\n type RequestStatusCustomerInfo,\n type RequestStatusAddress,\n} from \"./request.helpers\";\n\nimport \"../../validation/generated/groups/request.schemas.generated\";\nimport \"../../validation/overrides/request-status.schema\";\nimport \"../../validation/overrides/request-payment-routes.schema\";\n","import { buildRequestQuery, normalizeRequestStatusResponse, type RequestStatusResult } from \"./request.helpers\";\nimport type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../core/http/operation.helper\";\nimport type { operations } from \"../../generated/openapi-types\";\nimport { ValidationError } from \"../../validation/zod.helpers\";\n\nconst OP_CREATE = \"RequestControllerV2_createRequest_v2\" as const;\nconst OP_PAYMENT_ROUTES = \"RequestControllerV2_getRequestPaymentRoutes_v2\" as const;\nconst OP_PAYMENT_CALLDATA = \"RequestControllerV2_getPaymentCalldata_v2\" as const;\nconst OP_UPDATE = \"RequestControllerV2_updateRequest_v2\" as const;\nconst OP_SEND_PAYMENT_INTENT = \"RequestControllerV2_sendPaymentIntent_v2\" as const;\nconst OP_REQUEST_STATUS = \"RequestControllerV2_getRequestStatus_v2\" as const;\n\ntype CreateRequestBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateRequestResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\nexport type PaymentRoutesResponse = operations[typeof OP_PAYMENT_ROUTES][\"responses\"][200][\"content\"][\"application/json\"];\nexport type PaymentRoute = PaymentRoutesResponse[\"routes\"][number];\ntype PaymentRoutesQuery = NonNullable<operations[typeof OP_PAYMENT_ROUTES][\"parameters\"][\"query\"]>;\n\ntype PaymentCalldataQuery = NonNullable<operations[typeof OP_PAYMENT_CALLDATA][\"parameters\"][\"query\"]>;\ntype RawPaymentCalldata = operations[typeof OP_PAYMENT_CALLDATA][\"responses\"][200][\"content\"][\"application/json\"];\ntype RequestStatusResponse = operations[typeof OP_REQUEST_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype PaymentIntentPayload = Extract<RawPaymentCalldata, { paymentIntentId: string }>;\ntype CalldataPayload = Extract<RawPaymentCalldata, { transactions: unknown }>;\n\nconst KIND_CALLDATA = \"calldata\" as const;\nconst KIND_PAYMENT_INTENT = \"paymentIntent\" as const;\n\nfunction isPaymentIntentPayload(payload: RawPaymentCalldata): payload is PaymentIntentPayload {\n return \"paymentIntentId\" in payload;\n}\n\nfunction isCalldataPayload(payload: RawPaymentCalldata): payload is CalldataPayload {\n return \"transactions\" in payload;\n}\n\ntype SendPaymentIntentBody = operations[typeof OP_SEND_PAYMENT_INTENT][\"requestBody\"][\"content\"][\"application/json\"];\n\nexport interface RequestOperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type GetPaymentRoutesOptions = RequestOperationOptions & {\n wallet: PaymentRoutesQuery[\"wallet\"];\n} & Partial<Omit<PaymentRoutesQuery, \"wallet\">>;\n\nexport type GetPaymentCalldataOptions = RequestOperationOptions & Partial<PaymentCalldataQuery>;\n\nexport type PaymentCalldataResult =\n | ({ kind: \"calldata\" } & CalldataPayload)\n | ({ kind: \"paymentIntent\" } & PaymentIntentPayload);\nexport type { RequestStatusResult };\n\nexport interface RequestsApi {\n create(body: CreateRequestBody, options?: RequestOperationOptions): Promise<CreateRequestResponse>;\n getPaymentRoutes(requestId: string, options: GetPaymentRoutesOptions): Promise<PaymentRoutesResponse>;\n getPaymentCalldata(requestId: string, options?: GetPaymentCalldataOptions): Promise<PaymentCalldataResult>;\n getRequestStatus(requestId: string, options?: RequestOperationOptions): Promise<RequestStatusResult>;\n update(requestId: string, options?: RequestOperationOptions): Promise<void>;\n sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestOperationOptions): Promise<void>;\n}\n\nexport function createRequestsApi(http: HttpClient): RequestsApi {\n return {\n async create(body: CreateRequestBody, options?: RequestOperationOptions) {\n return requestJson<CreateRequestResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v2/request\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create request\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getRequestStatus(requestId: string, options?: RequestOperationOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}`;\n const raw = await requestJson<RequestStatusResponse>(http, {\n operationId: OP_REQUEST_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_REQUEST_STATUS, kind: \"response\", status: 200 },\n description: \"Request status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n return normalizeRequestStatusResponse(raw);\n },\n\n async getPaymentRoutes(requestId: string, options: GetPaymentRoutesOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}/routes`;\n return requestJson<PaymentRoutesResponse>(http, {\n operationId: OP_PAYMENT_ROUTES,\n method: \"GET\",\n path,\n query: buildRequestQuery({\n wallet: options.wallet,\n amount: options.amount,\n feePercentage: options.feePercentage,\n feeAddress: options.feeAddress,\n }),\n schemaKey: { operationId: OP_PAYMENT_ROUTES, kind: \"response\", status: 200 },\n description: \"Payment routes\",\n signal: options.signal,\n timeoutMs: options.timeoutMs,\n validation: options.validation,\n meta: options.meta,\n });\n },\n\n async getPaymentCalldata(requestId: string, options?: GetPaymentCalldataOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}/pay`;\n const queryInput: Record<string, unknown> = {\n wallet: options?.wallet,\n chain: options?.chain,\n token: options?.token,\n amount: options?.amount,\n clientUserId: options?.clientUserId,\n paymentDetailsId: options?.paymentDetailsId,\n feePercentage: options?.feePercentage,\n feeAddress: options?.feeAddress,\n };\n const raw = await requestJson<RawPaymentCalldata>(http, {\n operationId: OP_PAYMENT_CALLDATA,\n method: \"GET\",\n path,\n query: buildRequestQuery(queryInput),\n schemaKey: { operationId: OP_PAYMENT_CALLDATA, kind: \"response\", status: 200 },\n description: \"Payment calldata\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n if (isCalldataPayload(raw)) {\n return { kind: KIND_CALLDATA, ...raw };\n }\n if (isPaymentIntentPayload(raw)) {\n return { kind: KIND_PAYMENT_INTENT, ...raw };\n }\n\n throw new ValidationError(\"Unexpected payment calldata response\", raw);\n },\n\n async update(requestId: string, options?: RequestOperationOptions) {\n const path = `/v2/request/${encodeURIComponent(requestId)}`;\n await requestVoid(http, {\n operationId: OP_UPDATE,\n method: \"PATCH\",\n path,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestOperationOptions) {\n const path = `/v2/request/payment-intents/${encodeURIComponent(paymentIntentId)}`;\n await requestVoid(http, {\n operationId: OP_SEND_PAYMENT_INTENT,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SEND_PAYMENT_INTENT, kind: \"request\", variant: \"application/json\" },\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","// Auto-generated by scripts/generate-zod.mjs. Do not edit.\nimport { z } from 'zod';\n\nimport { schemaRegistry } from '../../schema.registry';\n\nconst ErrorDetailSchema = z\n .object({\n message: z.string(),\n code: z.string().optional(),\n field: z.string().optional(),\n source: z\n .object({\n pointer: z.string().optional(),\n parameter: z.string().optional(),\n })\n .passthrough()\n .optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\nconst ErrorEnvelopeSchema = z\n .object({\n status: z.number().optional(),\n statusCode: z.number().optional(),\n code: z.string().optional(),\n error: z.string().optional(),\n message: z\n .union([\n z.string(),\n z.array(z.union([z.string(), ErrorDetailSchema])),\n ErrorDetailSchema,\n ])\n .optional(),\n detail: z.unknown().optional(),\n errors: z.array(ErrorDetailSchema).optional(),\n requestId: z.string().optional(),\n correlationId: z.string().optional(),\n retryAfter: z.union([z.number(), z.string()]).optional(),\n retryAfterMs: z.number().optional(),\n meta: z.record(z.unknown()).optional(),\n })\n .passthrough();\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 request (application/json)\nexport const RequestControllerV1_createRequest_v1_Request = z.object({ \"payer\": (z.string()).optional(), \"payee\": z.string(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']) }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'request', variant: 'application/json' }, schema: RequestControllerV1_createRequest_v1_Request });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (201)\nexport const RequestControllerV1_createRequest_v1_201 = z.object({ \"paymentReference\": (z.string()).optional(), \"requestID\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 201 }, schema: RequestControllerV1_createRequest_v1_201 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (400)\nexport const RequestControllerV1_createRequest_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_createRequest_v1_400 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (401)\nexport const RequestControllerV1_createRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_createRequest_v1_401 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (404)\nexport const RequestControllerV1_createRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_createRequest_v1_404 });\n\n// POST /v1/request -> RequestControllerV1_createRequest_v1 (429)\nexport const RequestControllerV1_createRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_createRequest_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_createRequest_v1_429 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (200)\nexport const RequestControllerV1_getRequestStatus_v1_200 = z.object({ \"hasBeenPaid\": (z.boolean()).optional(), \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional(), \"isListening\": (z.boolean()).optional(), \"txHash\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getRequestStatus_v1_200 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (401)\nexport const RequestControllerV1_getRequestStatus_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getRequestStatus_v1_401 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (404)\nexport const RequestControllerV1_getRequestStatus_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getRequestStatus_v1_404 });\n\n// GET /v1/request/{paymentReference} -> RequestControllerV1_getRequestStatus_v1 (429)\nexport const RequestControllerV1_getRequestStatus_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestStatus_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getRequestStatus_v1_429 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (200)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_200 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (401)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_401 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (404)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_404 });\n\n// PATCH /v1/request/{paymentReference}/stop-recurrence -> RequestControllerV1_stopRecurrenceRequest_v1 (429)\nexport const RequestControllerV1_stopRecurrenceRequest_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_stopRecurrenceRequest_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_stopRecurrenceRequest_v1_429 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (200)\nexport const RequestControllerV1_getPaymentCalldata_v1_200 = z.union([z.object({ \"transactions\": z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": (z.enum(['BigNumber'])).optional(), \"hex\": (z.string()).optional() }).passthrough() }).passthrough()), \"metadata\": z.object({ \"stepsRequired\": z.number(), \"needsApproval\": z.boolean(), \"approvalTransactionIndex\": (z.number().nullable()).optional(), \"hasEnoughBalance\": z.boolean(), \"hasEnoughGas\": z.boolean() }).passthrough() }).passthrough(), z.object({ \"paymentIntentId\": z.string(), \"paymentIntent\": z.string(), \"approvalPermitPayload\": (z.string().nullable()).optional(), \"approvalCalldata\": (z.object({ \"to\": (z.string()).optional(), \"data\": (z.string()).optional(), \"value\": (z.string()).optional() }).passthrough().nullable()).optional(), \"metadata\": z.object({ \"supportsEIP2612\": z.boolean() }).passthrough() }).passthrough()]);\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getPaymentCalldata_v1_200 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (400)\nexport const RequestControllerV1_getPaymentCalldata_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_getPaymentCalldata_v1_400 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (401)\nexport const RequestControllerV1_getPaymentCalldata_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getPaymentCalldata_v1_401 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (404)\nexport const RequestControllerV1_getPaymentCalldata_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getPaymentCalldata_v1_404 });\n\n// GET /v1/request/{paymentReference}/pay -> RequestControllerV1_getPaymentCalldata_v1 (429)\nexport const RequestControllerV1_getPaymentCalldata_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getPaymentCalldata_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getPaymentCalldata_v1_429 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (200)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_200 = z.object({ \"routes\": z.array(z.object({ \"id\": z.string(), \"fee\": z.number(), \"feeBreakdown\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding', 'overall'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough())).optional(), \"speed\": z.union([z.string(), z.number()]), \"price_impact\": (z.number()).optional(), \"chain\": z.string(), \"token\": z.string() }).passthrough()) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 200 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_200 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (400)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 400 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_400 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (401)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_401 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (404)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_404 });\n\n// GET /v1/request/{paymentReference}/routes -> RequestControllerV1_getRequestPaymentRoutes_v1 (429)\nexport const RequestControllerV1_getRequestPaymentRoutes_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_getRequestPaymentRoutes_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_getRequestPaymentRoutes_v1_429 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 request (application/json)\nexport const RequestControllerV1_sendPaymentIntent_v1_Request = z.object({ \"signedPaymentIntent\": z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough(), \"signedApprovalPermit\": (z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'request', variant: 'application/json' }, schema: RequestControllerV1_sendPaymentIntent_v1_Request });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (401)\nexport const RequestControllerV1_sendPaymentIntent_v1_401 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 401 }, schema: RequestControllerV1_sendPaymentIntent_v1_401 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (404)\nexport const RequestControllerV1_sendPaymentIntent_v1_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 404 }, schema: RequestControllerV1_sendPaymentIntent_v1_404 });\n\n// POST /v1/request/{paymentIntentId}/send -> RequestControllerV1_sendPaymentIntent_v1 (429)\nexport const RequestControllerV1_sendPaymentIntent_v1_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV1_sendPaymentIntent_v1', kind: 'response', status: 429 }, schema: RequestControllerV1_sendPaymentIntent_v1_429 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 request (application/json)\nexport const RequestControllerV2_createRequest_v2_Request = z.object({ \"payer\": (z.string()).optional(), \"payee\": (z.string()).optional(), \"amount\": z.string(), \"invoiceCurrency\": z.string(), \"paymentCurrency\": z.string(), \"recurrence\": (z.object({ \"startDate\": z.string(), \"frequency\": z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'YEARLY']) }).passthrough()).optional(), \"isCryptoToFiatAvailable\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough()).optional(), \"reference\": (z.string()).optional(), \"originalRequestId\": (z.string()).optional(), \"originalRequestPaymentReference\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'request', variant: 'application/json' }, schema: RequestControllerV2_createRequest_v2_Request });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (201)\nexport const RequestControllerV2_createRequest_v2_201 = z.object({ \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 201 }, schema: RequestControllerV2_createRequest_v2_201 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (400)\nexport const RequestControllerV2_createRequest_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_createRequest_v2_400 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (404)\nexport const RequestControllerV2_createRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_createRequest_v2_404 });\n\n// POST /v2/request -> RequestControllerV2_createRequest_v2 (429)\nexport const RequestControllerV2_createRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_createRequest_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_createRequest_v2_429 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (200)\nexport const RequestControllerV2_getRequestStatus_v2_200 = z.object({ \"hasBeenPaid\": (z.boolean()).optional(), \"paymentReference\": (z.string()).optional(), \"requestId\": (z.string()).optional(), \"isListening\": (z.boolean()).optional(), \"txHash\": (z.string().nullable()).optional(), \"recurrence\": (z.object({ }).passthrough()).optional(), \"originalRequestId\": (z.string()).optional(), \"status\": (z.string()).optional(), \"isCryptoToFiatAvailable\": (z.boolean()).optional(), \"originalRequestPaymentReference\": (z.string()).optional(), \"payments\": (z.array(z.object({ }).passthrough())).optional(), \"isRecurrenceStopped\": (z.boolean()).optional(), \"customerInfo\": (z.object({ \"firstName\": (z.string()).optional(), \"lastName\": (z.string()).optional(), \"email\": (z.string()).optional(), \"address\": (z.object({ \"street\": (z.string()).optional(), \"city\": (z.string()).optional(), \"state\": (z.string()).optional(), \"postalCode\": (z.string()).optional(), \"country\": (z.string()).optional() }).passthrough()).optional() }).passthrough().nullable()).optional(), \"reference\": (z.string().nullable()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getRequestStatus_v2_200 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (404)\nexport const RequestControllerV2_getRequestStatus_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getRequestStatus_v2_404 });\n\n// GET /v2/request/{requestId} -> RequestControllerV2_getRequestStatus_v2 (429)\nexport const RequestControllerV2_getRequestStatus_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestStatus_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getRequestStatus_v2_429 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (200)\nexport const RequestControllerV2_updateRequest_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_updateRequest_v2_200 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (404)\nexport const RequestControllerV2_updateRequest_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_updateRequest_v2_404 });\n\n// PATCH /v2/request/{requestId} -> RequestControllerV2_updateRequest_v2 (429)\nexport const RequestControllerV2_updateRequest_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_updateRequest_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_updateRequest_v2_429 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (200)\nexport const RequestControllerV2_getPaymentCalldata_v2_200 = z.union([z.object({ \"transactions\": z.array(z.object({ \"data\": z.string(), \"to\": z.string(), \"value\": z.object({ \"type\": (z.enum(['BigNumber'])).optional(), \"hex\": (z.string()).optional() }).passthrough() }).passthrough()), \"metadata\": z.object({ \"stepsRequired\": z.number(), \"needsApproval\": z.boolean(), \"approvalTransactionIndex\": (z.number().nullable()).optional(), \"hasEnoughBalance\": z.boolean(), \"hasEnoughGas\": z.boolean() }).passthrough() }).passthrough(), z.object({ \"paymentIntentId\": z.string(), \"paymentIntent\": z.string(), \"approvalPermitPayload\": (z.string().nullable()).optional(), \"approvalCalldata\": (z.object({ \"to\": (z.string()).optional(), \"data\": (z.string()).optional(), \"value\": (z.string()).optional() }).passthrough().nullable()).optional(), \"metadata\": z.object({ \"supportsEIP2612\": z.boolean() }).passthrough() }).passthrough()]);\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getPaymentCalldata_v2_200 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (400)\nexport const RequestControllerV2_getPaymentCalldata_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_getPaymentCalldata_v2_400 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (404)\nexport const RequestControllerV2_getPaymentCalldata_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getPaymentCalldata_v2_404 });\n\n// GET /v2/request/{requestId}/pay -> RequestControllerV2_getPaymentCalldata_v2 (429)\nexport const RequestControllerV2_getPaymentCalldata_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getPaymentCalldata_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getPaymentCalldata_v2_429 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (200)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_200 = z.object({ \"routes\": z.array(z.object({ \"id\": z.string(), \"fee\": z.number(), \"feeBreakdown\": (z.array(z.object({ \"type\": (z.enum(['gas', 'platform', 'crosschain', 'crypto-to-fiat', 'offramp'])).optional(), \"stage\": (z.enum(['sending', 'receiving', 'proxying', 'refunding', 'overall'])).optional(), \"provider\": (z.string()).optional(), \"amount\": (z.string()).optional(), \"amountInUSD\": (z.string()).optional(), \"currency\": (z.string()).optional(), \"receiverAddress\": (z.string()).optional(), \"network\": (z.string()).optional(), \"rateProvider\": (z.string()).optional() }).passthrough())).optional(), \"speed\": z.union([z.string(), z.number()]), \"price_impact\": (z.number()).optional(), \"chain\": z.string(), \"token\": z.string() }).passthrough()) }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_200 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (400)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_400 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 400 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_400 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (404)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_404 });\n\n// GET /v2/request/{requestId}/routes -> RequestControllerV2_getRequestPaymentRoutes_v2 (429)\nexport const RequestControllerV2_getRequestPaymentRoutes_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_getRequestPaymentRoutes_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_getRequestPaymentRoutes_v2_429 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 request (application/json)\nexport const RequestControllerV2_sendPaymentIntent_v2_Request = z.object({ \"signedPaymentIntent\": z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough(), \"signedApprovalPermit\": (z.object({ \"signature\": z.string(), \"nonce\": z.string(), \"deadline\": z.string() }).passthrough()).optional() }).passthrough();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'request', variant: 'application/json' }, schema: RequestControllerV2_sendPaymentIntent_v2_Request });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (200)\nexport const RequestControllerV2_sendPaymentIntent_v2_200 = z.unknown();\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 200 }, schema: RequestControllerV2_sendPaymentIntent_v2_200 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (404)\nexport const RequestControllerV2_sendPaymentIntent_v2_404 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 404 }, schema: RequestControllerV2_sendPaymentIntent_v2_404 });\n\n// POST /v2/request/payment-intents/{paymentIntentId} -> RequestControllerV2_sendPaymentIntent_v2 (429)\nexport const RequestControllerV2_sendPaymentIntent_v2_429 = ErrorEnvelopeSchema;\nschemaRegistry.register({ key: { operationId: 'RequestControllerV2_sendPaymentIntent_v2', kind: 'response', status: 429 }, schema: RequestControllerV2_sendPaymentIntent_v2_429 });\n","import { z } from \"zod\";\n\nimport { RequestControllerV2_getRequestStatus_v2_200 as BaseRequestStatusSchema } from \"../generated/groups/request.schemas.generated\";\nimport { schemaRegistry } from \"../schema.registry\";\n\nconst NullableRequestStatusSchema = z.preprocess((value) => {\n if (!value || typeof value !== \"object\") {\n return value;\n }\n\n const next = { ...value } as Record<string, unknown>;\n\n if (next.recurrence === null) {\n delete next.recurrence;\n }\n\n if (next.originalRequestId === null) {\n next.originalRequestId = undefined;\n }\n\n if (next.originalRequestPaymentReference === null) {\n next.originalRequestPaymentReference = undefined;\n }\n\n return next;\n}, BaseRequestStatusSchema);\n\nschemaRegistry.register({\n key: { operationId: \"RequestControllerV2_getRequestStatus_v2\", kind: \"response\", status: 200 },\n schema: NullableRequestStatusSchema,\n});\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../schema.registry\";\n\nconst FlexibleRoutesSchema = z\n .object({\n routes: z.array(\n z\n .object({\n fee: z.union([z.number(), z.string()]).optional(),\n })\n .passthrough(),\n ),\n })\n .passthrough();\n\nschemaRegistry.register({\n key: { operationId: \"RequestControllerV2_getRequestPaymentRoutes_v2\", kind: \"response\", status: 200 },\n schema: FlexibleRoutesSchema,\n});\n","import { createHttpClient, type CreateClientOptions } from \"./core/http/client.factory\";\nimport type { HttpClient } from \"./core/http/http.types\";\nimport { createClientIdsApi, type ClientIdsApi } from \"./domains/client-ids\";\nimport { createCurrenciesApi, type CurrenciesApi } from \"./domains/currencies\";\nimport { createPayApi, type PayApi } from \"./domains/pay\";\nimport { createPayerApi, type PayerApi } from \"./domains/payer\";\nimport { createPaymentsApi, type PaymentsApi } from \"./domains/payments\";\nimport { createPayoutsApi, type PayoutsApi } from \"./domains/payouts\";\nimport { createRequestsApi, type RequestsApi } from \"./domains/requests\";\n\nexport interface RequestClient {\n /** Low-level HTTP client (useful for custom modules) */\n http: HttpClient;\n /** Currency endpoints */\n currencies: CurrenciesApi;\n /** Client ID endpoints */\n clientIds: ClientIdsApi;\n /** Request & invoice endpoints */\n requests: RequestsApi;\n /** Payout endpoints */\n payouts: PayoutsApi;\n /** Payment search endpoints */\n payments: PaymentsApi;\n /** Payer/compliance endpoints */\n payer: PayerApi;\n /** Legacy pay endpoints */\n pay: PayApi;\n}\n\n/**\n * Creates a Request Network API client with typed domain facades.\n *\n * @param options - Client configuration options\n * @param options.baseUrl - API base URL (defaults to production if not provided)\n * @param options.apiKey - API key for server-side authentication\n * @param options.clientId - Client ID for browser/frontend authentication\n * @param options.runtimeValidation - Enable/disable runtime validation (default: true)\n * @param options.logLevel - Logging level: 'silent' | 'error' | 'info' | 'debug' (default: 'error')\n * @param options.logger - Custom logger function\n * @param options.userAgent - Custom user agent string\n * @param options.retry - Retry configuration\n *\n * @returns RequestClient instance with domain APIs\n *\n * @example\n * ```ts\n * import { createRequestClient, RequestEnvironment } from '@marcohefti/request-network-api-client';\n *\n * const client = createRequestClient({\n * baseUrl: RequestEnvironment.production,\n * apiKey: process.env.REQUEST_API_KEY,\n * logLevel: 'info',\n * });\n *\n * const tokens = await client.currencies.list({ network: 'sepolia' });\n * ```\n */\nexport function createRequestClient(options?: CreateClientOptions): RequestClient {\n const http = createHttpClient(options);\n return {\n http,\n currencies: createCurrenciesApi(http),\n clientIds: createClientIdsApi(http),\n requests: createRequestsApi(http),\n payouts: createPayoutsApi(http),\n payments: createPaymentsApi(http),\n payer: createPayerApi(http),\n pay: createPayApi(http),\n };\n}\n\nexport interface EnvOptions {\n env?: NodeJS.ProcessEnv;\n}\n\n/**\n * Creates a Request Network API client from environment variables.\n *\n * Reads configuration from the following environment variables (in order of preference):\n * - `REQUEST_API_URL` (or legacy `REQUEST_SDK_BASE_URL`)\n * - `REQUEST_API_KEY` (or legacy `REQUEST_SDK_API_KEY`)\n * - `REQUEST_CLIENT_ID` (or legacy `REQUEST_SDK_CLIENT_ID`)\n *\n * @param options - Optional environment override\n * @param options.env - Custom environment object (defaults to process.env)\n *\n * @returns RequestClient instance configured from environment\n *\n * @example\n * ```ts\n * import { createRequestClientFromEnv } from '@marcohefti/request-network-api-client';\n *\n * const client = createRequestClientFromEnv();\n * // Reads REQUEST_API_KEY, REQUEST_CLIENT_ID, REQUEST_API_URL from process.env\n *\n * const tokens = await client.currencies.list({ network: 'sepolia' });\n * ```\n */\nexport function createRequestClientFromEnv(options?: EnvOptions): RequestClient {\n const env = options?.env ?? process.env;\n // Prefer modern variable names; fall back to legacy REQUEST_SDK_* for compatibility\n const baseUrl = env.REQUEST_API_URL ?? env.REQUEST_SDK_BASE_URL;\n const apiKey = env.REQUEST_API_KEY ?? env.REQUEST_SDK_API_KEY;\n const clientId = env.REQUEST_CLIENT_ID ?? env.REQUEST_SDK_CLIENT_ID;\n return createRequestClient({ baseUrl, apiKey, clientId });\n}\n","export const RequestEnvironment = {\n production: \"https://api.request.network\",\n // Legacy placeholder for partner-managed sandboxes; Request does not operate a public staging host.\n staging: \"https://api.stage.request.network\",\n local: \"http://127.0.0.1:8080\",\n} as const;\n\nexport type RequestEnvironmentName = keyof typeof RequestEnvironment;\n","export {\n createRequestsV1Api,\n type RequestsV1Api,\n type RequestV1OperationOptions,\n type GetPaymentRoutesOptions,\n type GetPaymentCalldataOptions,\n type RequestStatusResult,\n type SendPaymentIntentBody,\n} from \"./requests.v1.facade\";\n\nimport \"../../../validation/generated/groups/request.schemas.generated\";\n","import type { HttpClient, RequestOptions, RuntimeValidationOption } from \"../../../core/http/http.types\";\nimport { requestJson, requestVoid } from \"../../../core/http/operation.helper\";\nimport type { operations } from \"../../../generated/openapi-types\";\nimport { ValidationError } from \"../../../validation/zod.helpers\";\nimport {\n buildRequestQuery,\n normalizeLegacyStatusResponse,\n type LegacyRequestStatusResult,\n} from \"../request.helpers\";\n\nconst OP_CREATE = \"RequestControllerV1_createRequest_v1\" as const;\nconst OP_PAYMENT_ROUTES = \"RequestControllerV1_getRequestPaymentRoutes_v1\" as const;\nconst OP_PAYMENT_CALLDATA = \"RequestControllerV1_getPaymentCalldata_v1\" as const;\nconst OP_REQUEST_STATUS = \"RequestControllerV1_getRequestStatus_v1\" as const;\nconst OP_SEND_PAYMENT_INTENT = \"RequestControllerV1_sendPaymentIntent_v1\" as const;\nconst OP_STOP_RECURRENCE = \"RequestControllerV1_stopRecurrenceRequest_v1\" as const;\n\ntype CreateRequestBody = operations[typeof OP_CREATE][\"requestBody\"][\"content\"][\"application/json\"];\ntype CreateRequestResponse = operations[typeof OP_CREATE][\"responses\"][201][\"content\"][\"application/json\"];\n\ntype PaymentRoutesResponse = operations[typeof OP_PAYMENT_ROUTES][\"responses\"][200][\"content\"][\"application/json\"];\ntype PaymentRoutesQuery = operations[typeof OP_PAYMENT_ROUTES][\"parameters\"][\"query\"];\n\ntype PaymentCalldataQuery = NonNullable<operations[typeof OP_PAYMENT_CALLDATA][\"parameters\"][\"query\"]>;\ntype RawPaymentCalldata = operations[typeof OP_PAYMENT_CALLDATA][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype RawStatusResponse = operations[typeof OP_REQUEST_STATUS][\"responses\"][200][\"content\"][\"application/json\"];\n\ntype PaymentIntentPayload = Extract<RawPaymentCalldata, { paymentIntentId: string }>;\ntype CalldataPayload = Extract<RawPaymentCalldata, { transactions: unknown }>;\n\nconst KIND_CALLDATA = \"calldata\" as const;\nconst KIND_PAYMENT_INTENT = \"paymentIntent\" as const;\n\nfunction isPaymentIntentPayload(payload: RawPaymentCalldata): payload is PaymentIntentPayload {\n return \"paymentIntentId\" in payload;\n}\n\nfunction isCalldataPayload(payload: RawPaymentCalldata): payload is CalldataPayload {\n return \"transactions\" in payload;\n}\n\nexport interface RequestV1OperationOptions {\n signal?: AbortSignal;\n timeoutMs?: number;\n validation?: RuntimeValidationOption;\n meta?: RequestOptions[\"meta\"];\n}\n\nexport type GetPaymentRoutesOptions = RequestV1OperationOptions & {\n wallet: PaymentRoutesQuery[\"wallet\"];\n} & Partial<Omit<PaymentRoutesQuery, \"wallet\">>;\n\nexport type GetPaymentCalldataOptions = RequestV1OperationOptions & Partial<PaymentCalldataQuery>;\n\nexport type RequestStatusResult = LegacyRequestStatusResult;\n\nexport type SendPaymentIntentBody = operations[typeof OP_SEND_PAYMENT_INTENT][\"requestBody\"][\"content\"][\"application/json\"];\n\nexport interface RequestsV1Api {\n create(body: CreateRequestBody, options?: RequestV1OperationOptions): Promise<CreateRequestResponse>;\n getPaymentRoutes(paymentReference: string, options: GetPaymentRoutesOptions): Promise<PaymentRoutesResponse>;\n getPaymentCalldata(paymentReference: string, options?: GetPaymentCalldataOptions): Promise<\n | ({ kind: \"calldata\" } & CalldataPayload)\n | ({ kind: \"paymentIntent\" } & PaymentIntentPayload)\n >;\n getRequestStatus(paymentReference: string, options?: RequestV1OperationOptions): Promise<RequestStatusResult>;\n sendPaymentIntent(paymentIntentId: string, body: SendPaymentIntentBody, options?: RequestV1OperationOptions): Promise<void>;\n stopRecurrence(paymentReference: string, options?: RequestV1OperationOptions): Promise<void>;\n}\n\nexport function createRequestsV1Api(http: HttpClient): RequestsV1Api {\n return {\n async create(body, options) {\n return requestJson<CreateRequestResponse>(http, {\n operationId: OP_CREATE,\n method: \"POST\",\n path: \"/v1/request\",\n body,\n requestSchemaKey: { operationId: OP_CREATE, kind: \"request\", variant: \"application/json\" },\n schemaKey: { operationId: OP_CREATE, kind: \"response\", status: 201 },\n description: \"Create legacy request\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async getPaymentRoutes(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/routes`;\n return requestJson<PaymentRoutesResponse>(http, {\n operationId: OP_PAYMENT_ROUTES,\n method: \"GET\",\n path,\n query: buildRequestQuery({\n wallet: options.wallet,\n amount: options.amount,\n feePercentage: options.feePercentage,\n feeAddress: options.feeAddress,\n }),\n schemaKey: { operationId: OP_PAYMENT_ROUTES, kind: \"response\", status: 200 },\n description: \"Legacy payment routes\",\n signal: options.signal,\n timeoutMs: options.timeoutMs,\n validation: options.validation,\n meta: options.meta,\n });\n },\n\n async getPaymentCalldata(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/pay`;\n const query = buildRequestQuery({\n wallet: options?.wallet,\n chain: options?.chain,\n token: options?.token,\n amount: options?.amount,\n });\n\n const raw = await requestJson<RawPaymentCalldata>(http, {\n operationId: OP_PAYMENT_CALLDATA,\n method: \"GET\",\n path,\n query,\n schemaKey: { operationId: OP_PAYMENT_CALLDATA, kind: \"response\", status: 200 },\n description: \"Legacy payment calldata\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n if (isCalldataPayload(raw)) {\n return { kind: KIND_CALLDATA, ...raw };\n }\n if (isPaymentIntentPayload(raw)) {\n return { kind: KIND_PAYMENT_INTENT, ...raw };\n }\n\n throw new ValidationError(\"Unexpected payment calldata response\", raw);\n },\n\n async getRequestStatus(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}`;\n const rawStatus = await requestJson<RawStatusResponse>(http, {\n operationId: OP_REQUEST_STATUS,\n method: \"GET\",\n path,\n schemaKey: { operationId: OP_REQUEST_STATUS, kind: \"response\", status: 200 },\n description: \"Legacy request status\",\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n\n return normalizeLegacyStatusResponse(rawStatus);\n },\n\n async sendPaymentIntent(paymentIntentId, body, options) {\n const path = `/v1/request/${encodeURIComponent(paymentIntentId)}/send`;\n await requestVoid(http, {\n operationId: OP_SEND_PAYMENT_INTENT,\n method: \"POST\",\n path,\n body,\n requestSchemaKey: { operationId: OP_SEND_PAYMENT_INTENT, kind: \"request\", variant: \"application/json\" },\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n\n async stopRecurrence(paymentReference, options) {\n const path = `/v1/request/${encodeURIComponent(paymentReference)}/stop-recurrence`;\n await requestVoid(http, {\n operationId: OP_STOP_RECURRENCE,\n method: \"PATCH\",\n path,\n signal: options?.signal,\n timeoutMs: options?.timeoutMs,\n validation: options?.validation,\n meta: options?.meta,\n });\n },\n };\n}\n","export {\n DEFAULT_SIGNATURE_ALGORITHM,\n DEFAULT_SIGNATURE_HEADER,\n verifyWebhookSignature,\n type VerifyWebhookSignatureOptions,\n type VerifyWebhookSignatureResult,\n} from \"./signature.webhook\";\nexport {\n parseWebhookEvent,\n type ParseWebhookEventOptions,\n type ParsedWebhookEvent,\n} from \"./parser.webhook\";\nexport {\n RequestWebhookSignatureError,\n isRequestWebhookSignatureError,\n type WebhookSignatureErrorReason,\n} from \"./errors.webhook\";\nexport {\n WebhookDispatcher,\n createWebhookDispatcher,\n type WebhookDispatchContext,\n type WebhookHandler,\n type InferDispatcherPayload,\n} from \"./dispatcher.webhook\";\nexport {\n createWebhookMiddleware,\n type CreateWebhookMiddlewareOptions,\n type WebhookLogger,\n type WebhookRequest,\n type GetRawBody,\n type ShouldSkipVerification,\n} from \"./middleware.webhook\";\nexport {\n WEBHOOK_EVENT_NAMES,\n getWebhookSchema,\n type WebhookEventName,\n type WebhookPayload,\n type WebhookPayloadMap,\n} from \"./schemas.webhook\";\nexport type { WebhookHeaders, NormalisedHeaders as NormalizedWebhookHeaders } from \"./headers.webhook\";\nexport * as events from \"./events\";\nexport * as testing from \"./testing.webhook\";\n","export type WebhookSignatureErrorReason =\n | \"missing_signature\"\n | \"invalid_format\"\n | \"invalid_signature\"\n | \"tolerance_exceeded\";\n\nexport interface RequestWebhookSignatureErrorOptions {\n readonly headerName: string;\n readonly signature?: string | null;\n readonly timestamp?: number | null;\n readonly reason: WebhookSignatureErrorReason;\n readonly cause?: unknown;\n}\n\n/**\n * Error thrown when webhook signature verification fails.\n * Consumers can narrow on this error to differentiate between auth failures\n * and downstream application exceptions.\n */\nexport class RequestWebhookSignatureError extends Error {\n static readonly code = \"ERR_REQUEST_WEBHOOK_SIGNATURE_VERIFICATION_FAILED\";\n\n readonly code = RequestWebhookSignatureError.code;\n readonly statusCode = 401;\n readonly headerName: string;\n readonly signature?: string | null;\n readonly timestamp?: number | null;\n readonly reason: WebhookSignatureErrorReason;\n\n constructor(message: string, options: RequestWebhookSignatureErrorOptions) {\n const { headerName, signature, timestamp, reason, cause } = options;\n super(message, { cause });\n this.name = \"RequestWebhookSignatureError\";\n this.headerName = headerName;\n this.signature = signature;\n this.timestamp = timestamp ?? null;\n this.reason = reason;\n }\n}\n\nexport function isRequestWebhookSignatureError(error: unknown): error is RequestWebhookSignatureError {\n return error instanceof RequestWebhookSignatureError;\n}\n","export type HeaderValue = string | number | boolean | null | undefined | string[];\n\nexport type HeaderRecord = Record<string, HeaderValue>;\n\nexport type WebhookHeaders = HeaderRecord | Headers;\n\nexport type NormalisedHeaders = Record<string, string>;\n\nfunction coerceHeaderValue(value: HeaderValue): string | undefined {\n if (value == null) return undefined;\n if (Array.isArray(value)) {\n const first = value.find((item) => item.length > 0);\n return first ?? undefined;\n }\n return typeof value === \"string\" ? value : String(value);\n}\n\nfunction isFetchHeaders(input: unknown): input is Headers {\n return typeof Headers !== \"undefined\" && input instanceof Headers;\n}\n\nexport function normaliseHeaders(headers: WebhookHeaders | undefined): NormalisedHeaders {\n const result: NormalisedHeaders = {};\n if (!headers) return result;\n\n if (isFetchHeaders(headers)) {\n headers.forEach((value, key) => {\n result[key.toLowerCase()] = value;\n });\n return result;\n }\n\n for (const [key, value] of Object.entries(headers)) {\n const coerced = coerceHeaderValue(value);\n if (coerced != null) {\n result[key.toLowerCase()] = coerced;\n }\n }\n\n return result;\n}\n\nexport function pickHeader(headers: WebhookHeaders | NormalisedHeaders | undefined, headerName: string): string | undefined {\n if (!headers) return undefined;\n const lower = headerName.toLowerCase();\n\n if (isFetchHeaders(headers)) {\n const value = headers.get(headerName);\n return value ?? undefined;\n }\n\n const record = headers as Record<string, HeaderValue | string>;\n const direct = record[headerName];\n if (typeof direct === \"string\") {\n return direct;\n }\n if (direct != null) {\n const coercedDirect = coerceHeaderValue(direct);\n if (coercedDirect) return coercedDirect;\n }\n\n const fallback = record[lower];\n if (typeof fallback === \"string\") {\n return fallback;\n }\n if (fallback != null) {\n return coerceHeaderValue(fallback);\n }\n return undefined;\n}\n","import { Buffer } from \"node:buffer\";\nimport { createHmac, timingSafeEqual } from \"node:crypto\";\n\nimport { RequestWebhookSignatureError } from \"./errors.webhook\";\nimport { normaliseHeaders, pickHeader, type NormalisedHeaders, type WebhookHeaders } from \"./headers.webhook\";\n\nexport const DEFAULT_SIGNATURE_HEADER = \"x-request-network-signature\";\nexport const DEFAULT_SIGNATURE_ALGORITHM = \"sha256\";\n\nexport interface VerifyWebhookSignatureOptions {\n readonly rawBody: ArrayBuffer | ArrayBufferView | string;\n readonly secret: string | readonly string[];\n readonly headers?: WebhookHeaders;\n readonly signature?: string;\n readonly headerName?: string;\n readonly toleranceMs?: number;\n readonly timestamp?: number;\n readonly timestampHeader?: string;\n readonly now?: () => number;\n}\n\nexport interface VerifyWebhookSignatureResult {\n /**\n * Normalised (lowercase hex) signature taken from the request.\n */\n signature: string;\n /**\n * Secret that successfully matched the signature. Useful for rotation.\n */\n matchedSecret: string;\n /**\n * Parsed timestamp in milliseconds (when provided).\n */\n timestamp: number | null;\n /**\n * Headers used during verification, normalised to lowercase keys.\n */\n headers: NormalisedHeaders;\n}\n\nconst HEX_SIGNATURE_PATTERN = /^[0-9a-f]+$/i;\n\nfunction toBuffer(rawBody: ArrayBuffer | ArrayBufferView | string): Buffer {\n if (typeof rawBody === \"string\") {\n return Buffer.from(rawBody, \"utf8\");\n }\n if (rawBody instanceof ArrayBuffer) {\n return Buffer.from(rawBody);\n }\n return Buffer.from(rawBody.buffer, rawBody.byteOffset, rawBody.byteLength);\n}\n\nfunction stripAlgorithmPrefix(signature: string, headerName: string): string {\n const trimmed = signature.trim();\n const equalityIndex = trimmed.indexOf(\"=\");\n if (equalityIndex === -1) {\n return trimmed;\n }\n const prefix = trimmed.slice(0, equalityIndex).toLowerCase();\n if (prefix !== DEFAULT_SIGNATURE_ALGORITHM) {\n throw new RequestWebhookSignatureError(\"Unsupported signature algorithm\", {\n headerName,\n signature: signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n return trimmed.slice(equalityIndex + 1);\n}\n\nfunction parseSignatureValue(signature: string, headerName: string): { normalisedHex: string; buffer: Buffer } {\n const stripped = stripAlgorithmPrefix(signature, headerName);\n const trimmed = stripped.trim();\n if (!trimmed || !HEX_SIGNATURE_PATTERN.test(trimmed)) {\n throw new RequestWebhookSignatureError(\"Invalid webhook signature format\", {\n headerName,\n signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n\n const lower = trimmed.toLowerCase();\n if (lower.length % 2 !== 0) {\n throw new RequestWebhookSignatureError(\"Invalid webhook signature length\", {\n headerName,\n signature,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n\n const digest = Buffer.from(lower, \"hex\");\n return { normalisedHex: lower, buffer: digest };\n}\n\nfunction computeHmac(secret: string, body: Buffer): Buffer {\n return createHmac(DEFAULT_SIGNATURE_ALGORITHM, secret).update(body).digest();\n}\n\nfunction isReadonlyStringArray(value: unknown): value is readonly string[] {\n return Array.isArray(value);\n}\n\nfunction toSecretArray(secret: string | readonly string[]): string[] {\n return isReadonlyStringArray(secret) ? [...secret] : [secret];\n}\n\nfunction parseTimestamp(value: string): number | null {\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n\n if (/^-?\\d+(\\.\\d+)?$/.test(trimmed)) {\n const numeric = Number(trimmed);\n if (!Number.isFinite(numeric)) {\n return null;\n }\n // Heuristic: seconds vs milliseconds based on magnitude.\n if (numeric > 1e12) {\n return Math.trunc(numeric);\n }\n if (numeric > 1e9) {\n return Math.trunc(numeric);\n }\n return Math.trunc(numeric * 1000);\n }\n\n const parsed = Date.parse(trimmed);\n if (Number.isNaN(parsed)) {\n return null;\n }\n return parsed;\n}\n\nfunction resolveTimestamp(options: VerifyWebhookSignatureOptions, headers: NormalisedHeaders, headerName: string): number | null {\n if (typeof options.timestamp === \"number\") {\n return options.timestamp;\n }\n if (!options.timestampHeader) {\n return null;\n }\n const headerValue = pickHeader(headers, options.timestampHeader);\n if (!headerValue) {\n return null;\n }\n const parsed = parseTimestamp(headerValue);\n if (parsed == null) {\n throw new RequestWebhookSignatureError(\"Invalid webhook timestamp header\", {\n headerName: options.timestampHeader,\n signature: pickHeader(headers, headerName) ?? null,\n timestamp: null,\n reason: \"invalid_format\",\n });\n }\n return parsed;\n}\n\nexport function verifyWebhookSignature(options: VerifyWebhookSignatureOptions): VerifyWebhookSignatureResult {\n const {\n rawBody,\n secret,\n headers: rawHeaders,\n signature: explicitSignature,\n headerName = DEFAULT_SIGNATURE_HEADER,\n toleranceMs,\n now = () => Date.now(),\n } = options;\n\n const headers = normaliseHeaders(rawHeaders);\n const signatureValue = explicitSignature ?? pickHeader(headers, headerName);\n if (!signatureValue) {\n throw new RequestWebhookSignatureError(`Missing webhook signature header: ${headerName}`, {\n headerName,\n signature: null,\n timestamp: null,\n reason: \"missing_signature\",\n });\n }\n\n const { normalisedHex, buffer: signatureBuffer } = parseSignatureValue(signatureValue, headerName);\n\n const timestamp = resolveTimestamp(options, headers, headerName);\n if (typeof toleranceMs === \"number\" && toleranceMs >= 0 && timestamp != null) {\n const distance = Math.abs(now() - timestamp);\n if (distance > toleranceMs) {\n throw new RequestWebhookSignatureError(\"Webhook signature timestamp outside tolerance\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"tolerance_exceeded\",\n });\n }\n }\n\n const bodyBuffer = toBuffer(rawBody);\n const secrets = toSecretArray(secret);\n if (secrets.length === 0) {\n throw new RequestWebhookSignatureError(\"No webhook secrets configured\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_signature\",\n });\n }\n\n const digests = secrets.map((candidate) => computeHmac(candidate, bodyBuffer));\n const digestLength = digests[0].length;\n\n if (signatureBuffer.length !== digestLength) {\n throw new RequestWebhookSignatureError(\"Webhook signature length mismatch\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_format\",\n });\n }\n\n for (let index = 0; index < digests.length; index += 1) {\n const digest = digests[index];\n if (timingSafeEqual(signatureBuffer, digest)) {\n return {\n signature: normalisedHex,\n matchedSecret: secrets[index],\n timestamp: timestamp ?? null,\n headers,\n };\n }\n }\n\n throw new RequestWebhookSignatureError(\"Invalid webhook signature\", {\n headerName,\n signature: normalisedHex,\n timestamp,\n reason: \"invalid_signature\",\n });\n}\n","import { z } from \"zod\";\n\nimport { schemaRegistry } from \"../validation/schema.registry\";\n\n// The shared contract currently enumerates only `not_started` and `completed`\n// for compliance status values. Legacy webhook payloads have reported a richer\n// set historically, so we keep a superset here until the upstream schema\n// expands.\nconst COMPLIANCE_KYC_STATUSES = [\n \"not_started\",\n \"initiated\",\n \"pending\",\n \"approved\",\n \"rejected\",\n \"failed\",\n \"completed\",\n] as const;\ntype ComplianceKycStatusValues = (typeof COMPLIANCE_KYC_STATUSES)[number];\nconst COMPLIANCE_AGREEMENT_STATUSES = [\n \"not_started\",\n \"pending\",\n \"completed\",\n \"rejected\",\n \"failed\",\n \"signed\",\n] as const;\ntype ComplianceAgreementStatusValues = (typeof COMPLIANCE_AGREEMENT_STATUSES)[number];\n\nconst PAYMENT_FAILED_SUB_STATUSES = [\"failed\", \"bounced\", \"insufficient_funds\"] as const;\ntype PaymentFailedSubStatusValues = (typeof PAYMENT_FAILED_SUB_STATUSES)[number];\n\nconst PAYMENT_PROCESSING_SUB_STATUSES = [\n \"initiated\",\n \"pending_internal_assessment\",\n \"ongoing_checks\",\n \"sending_fiat\",\n \"fiat_sent\",\n \"bounced\",\n \"retry_required\",\n \"processing\",\n] as const;\ntype PaymentProcessingSubStatusValues = (typeof PAYMENT_PROCESSING_SUB_STATUSES)[number];\n\nconst PAYMENT_DETAIL_STATUSES = [\"approved\", \"failed\", \"pending\", \"verified\"] as const;\ntype PaymentDetailStatusValues = (typeof PAYMENT_DETAIL_STATUSES)[number];\n\n// Base webhook schema: require `event` and allow all other fields through\n// without strict typing so manual webhook payloads from the Request API do\n// not get rejected when the upstream shape evolves. Domain code is\n// responsible for narrowing specific fields when needed.\nconst webhookBaseSchema = z\n .object({\n event: z.string(),\n })\n .passthrough();\n\nconst paymentConfirmedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.confirmed\"),\n});\n\nconst paymentFailedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.failed\"),\n subStatus: z.enum(PAYMENT_FAILED_SUB_STATUSES as unknown as [PaymentFailedSubStatusValues, ...PaymentFailedSubStatusValues[]]).optional(),\n failureReason: z.string().optional(),\n retryAfter: z.string().optional(),\n});\n\nconst paymentProcessingSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.processing\"),\n subStatus: z.enum(PAYMENT_PROCESSING_SUB_STATUSES as unknown as [PaymentProcessingSubStatusValues, ...PaymentProcessingSubStatusValues[]]),\n});\n\nconst paymentDetailUpdatedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment_detail.updated\"),\n status: z.enum(PAYMENT_DETAIL_STATUSES as unknown as [PaymentDetailStatusValues, ...PaymentDetailStatusValues[]]),\n paymentDetailsId: z.string().optional(),\n paymentAccountId: z.string().optional(),\n rejectionMessage: z.string().optional(),\n});\n\nconst complianceUpdatedSchema = webhookBaseSchema.extend({\n event: z.literal(\"compliance.updated\"),\n kycStatus: z.enum(COMPLIANCE_KYC_STATUSES as unknown as [ComplianceKycStatusValues, ...ComplianceKycStatusValues[]]).optional(),\n agreementStatus: z.enum(COMPLIANCE_AGREEMENT_STATUSES as unknown as [ComplianceAgreementStatusValues, ...ComplianceAgreementStatusValues[]]).optional(),\n isCompliant: z.boolean().optional(),\n});\n\nconst paymentPartialSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.partial\"),\n});\n\nconst paymentRefundedSchema = webhookBaseSchema.extend({\n event: z.literal(\"payment.refunded\"),\n refundedTo: z.string(),\n refundAmount: z.string(),\n});\n\nconst requestRecurringSchema = webhookBaseSchema.extend({\n event: z.literal(\"request.recurring\"),\n originalRequestId: z.string(),\n originalRequestPaymentReference: z.string(),\n});\n\nconst webhookEventSchemas = {\n \"payment.confirmed\": paymentConfirmedSchema,\n \"payment.failed\": paymentFailedSchema,\n \"payment.processing\": paymentProcessingSchema,\n \"payment_detail.updated\": paymentDetailUpdatedSchema,\n \"compliance.updated\": complianceUpdatedSchema,\n \"payment.partial\": paymentPartialSchema,\n \"payment.refunded\": paymentRefundedSchema,\n \"request.recurring\": requestRecurringSchema,\n} as const;\n\nexport type WebhookEventName = keyof typeof webhookEventSchemas;\n\nexport type WebhookEventSchema<E extends WebhookEventName = WebhookEventName> = (typeof webhookEventSchemas)[E];\n\nexport type WebhookPayloadMap = {\n [E in WebhookEventName]: z.infer<WebhookEventSchema<E>>;\n};\n\nexport type WebhookPayload<E extends WebhookEventName = WebhookEventName> = WebhookPayloadMap[E];\n\nexport const WEBHOOK_EVENT_NAMES = Object.freeze(Object.keys(webhookEventSchemas) as readonly WebhookEventName[]);\n\nfor (const [eventName, schema] of Object.entries(webhookEventSchemas) as [WebhookEventName, WebhookEventSchema][]) {\n schemaRegistry.register({\n key: { operationId: eventName, kind: \"webhook\" },\n schema,\n });\n}\n\nexport function getWebhookSchema<E extends WebhookEventName>(event: E): WebhookEventSchema<E> | undefined {\n return webhookEventSchemas[event] as WebhookEventSchema<E> | undefined;\n}\n","import { Buffer } from \"node:buffer\";\nimport type { ZodTypeAny } from \"zod\";\n\nimport { normaliseHeaders, pickHeader, type NormalisedHeaders, type WebhookHeaders } from \"./headers.webhook\";\nimport { WEBHOOK_EVENT_NAMES, getWebhookSchema } from \"./schemas.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"./schemas.webhook\";\nimport { DEFAULT_SIGNATURE_HEADER, verifyWebhookSignature, type VerifyWebhookSignatureResult } from \"./signature.webhook\";\nimport { ValidationError, parseWithSchema } from \"../validation/zod.helpers\";\n\nexport interface ParseWebhookEventOptions {\n readonly rawBody: ArrayBuffer | ArrayBufferView | string;\n readonly headers: WebhookHeaders;\n readonly secret: string | readonly string[];\n readonly headerName?: string;\n readonly signature?: string;\n readonly toleranceMs?: number;\n readonly timestampHeader?: string;\n readonly now?: () => number;\n readonly skipSignatureVerification?: boolean;\n}\n\nexport interface ParsedWebhookEvent<E extends WebhookEventName = WebhookEventName> {\n readonly event: E;\n readonly payload: WebhookPayload<E>;\n readonly signature: string | null;\n readonly matchedSecret: string | null;\n readonly timestamp: number | null;\n readonly rawBody: Uint8Array;\n readonly headers: NormalisedHeaders;\n}\n\nfunction ensureBuffer(rawBody: ArrayBuffer | ArrayBufferView | string): Buffer {\n if (typeof rawBody === \"string\") {\n return Buffer.from(rawBody, \"utf8\");\n }\n if (rawBody instanceof ArrayBuffer) {\n return Buffer.from(rawBody);\n }\n return Buffer.from(rawBody.buffer, rawBody.byteOffset, rawBody.byteLength);\n}\n\nfunction normaliseBody(rawBody: ArrayBuffer | ArrayBufferView | string): { buffer: Buffer; view: Uint8Array } {\n const buffer = ensureBuffer(rawBody);\n const view = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n return { buffer, view };\n}\n\nfunction parseJsonBody(buffer: Buffer): unknown {\n try {\n const text = buffer.toString(\"utf8\");\n return JSON.parse(text);\n } catch (error) {\n throw new ValidationError(\"Invalid webhook JSON payload\", error);\n }\n}\n\nfunction resolveEventName(body: unknown): string {\n if (!body || typeof body !== \"object\" || Array.isArray(body)) {\n throw new ValidationError(\"Webhook payload must be a JSON object\");\n }\n const candidate = (body as Record<string, unknown>).event;\n if (typeof candidate !== \"string\" || candidate.length === 0) {\n throw new ValidationError(\"Webhook payload missing `event` field\");\n }\n return candidate;\n}\n\nfunction assertWebhookEventName(name: string): asserts name is WebhookEventName {\n if (!WEBHOOK_EVENT_NAMES.includes(name as WebhookEventName)) {\n throw new ValidationError(`Unknown webhook event: ${name}`);\n }\n}\n\nfunction verifySignatureIfRequired(\n options: ParseWebhookEventOptions,\n buffer: Buffer,\n headers: WebhookHeaders,\n): VerifyWebhookSignatureResult | null {\n if (options.skipSignatureVerification) {\n return null;\n }\n return verifyWebhookSignature({\n rawBody: buffer,\n secret: options.secret,\n headers,\n signature: options.signature,\n headerName: options.headerName,\n toleranceMs: options.toleranceMs,\n timestampHeader: options.timestampHeader,\n now: options.now,\n });\n}\n\nexport function parseWebhookEvent<E extends WebhookEventName = WebhookEventName>(\n options: ParseWebhookEventOptions,\n): ParsedWebhookEvent<E> {\n const { buffer, view } = normaliseBody(options.rawBody);\n const headers = options.skipSignatureVerification ? normaliseHeaders(options.headers) : undefined;\n const verification = verifySignatureIfRequired(options, buffer, options.headers);\n\n const normalisedHeaders = verification?.headers ?? headers ?? normaliseHeaders(options.headers);\n const signature =\n verification?.signature ??\n options.signature ??\n pickHeader(normalisedHeaders, options.headerName ?? DEFAULT_SIGNATURE_HEADER) ??\n null;\n const matchedSecret = verification?.matchedSecret ?? null;\n const timestamp = verification?.timestamp ?? null;\n\n const jsonBody = parseJsonBody(buffer);\n const eventName = resolveEventName(jsonBody);\n assertWebhookEventName(eventName);\n\n const schema = getWebhookSchema(eventName) as ZodTypeAny | undefined;\n if (!schema) {\n throw new ValidationError(`No schema registered for webhook event ${eventName}`);\n }\n\n const parsed = parseWithSchema<ZodTypeAny>({\n schema,\n value: jsonBody,\n description: `Webhook event ${eventName}`,\n });\n if (!parsed.success || !parsed.data) {\n const cause = parsed.error instanceof Error ? parsed.error : new ValidationError(`Invalid payload for webhook event ${eventName}`, parsed.error);\n throw cause;\n }\n\n const typedEventName = eventName as E;\n const payload = parsed.data as WebhookPayload<typeof typedEventName>;\n\n return {\n event: typedEventName,\n payload,\n signature,\n matchedSecret,\n timestamp,\n rawBody: view,\n headers: normalisedHeaders,\n };\n}\n","import type { ParsedWebhookEvent } from \"./parser.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"./schemas.webhook\";\n\nexport type WebhookDispatchContext = Record<string, unknown>;\n\nexport type WebhookHandler<E extends WebhookEventName = WebhookEventName> = (\n event: ParsedWebhookEvent<E>,\n context: WebhookDispatchContext,\n) => void | Promise<void>;\n\nfunction ensureHandlerSet(\n store: Map<WebhookEventName, Set<WebhookHandler>>,\n event: WebhookEventName,\n): Set<WebhookHandler> {\n let set = store.get(event);\n if (!set) {\n set = new Set();\n store.set(event, set);\n }\n return set;\n}\n\nexport class WebhookDispatcher {\n private readonly handlers = new Map<WebhookEventName, Set<WebhookHandler>>();\n\n on<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): () => void {\n const set = ensureHandlerSet(this.handlers, event);\n const wrapped = handler as WebhookHandler;\n set.add(wrapped);\n\n return () => {\n const existing = this.handlers.get(event);\n if (!existing) return;\n existing.delete(wrapped);\n if (existing.size === 0) {\n this.handlers.delete(event);\n }\n };\n }\n\n once<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): () => void {\n const disposeRef: { dispose?: () => void } = {};\n const wrapped: WebhookHandler<E> = async (evt, context) => {\n disposeRef.dispose?.();\n await handler(evt, context);\n };\n const dispose = this.on(event, wrapped);\n disposeRef.dispose = dispose;\n return dispose;\n }\n\n off<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): void {\n const set = this.handlers.get(event);\n if (!set) return;\n set.delete(handler as WebhookHandler);\n if (set.size === 0) {\n this.handlers.delete(event);\n }\n }\n\n clear(): void {\n this.handlers.clear();\n }\n\n handlerCount(event?: WebhookEventName): number {\n if (event) {\n return this.handlers.get(event)?.size ?? 0;\n }\n let total = 0;\n for (const set of this.handlers.values()) {\n total += set.size;\n }\n return total;\n }\n\n async dispatch<E extends WebhookEventName>(\n event: ParsedWebhookEvent<E>,\n context: WebhookDispatchContext = {},\n ): Promise<void> {\n const set = this.handlers.get(event.event);\n if (!set || set.size === 0) {\n return;\n }\n\n const handlers = Array.from(set) as WebhookHandler<E>[];\n for (const handler of handlers) {\n await handler(event, context);\n }\n }\n\n /**\n * Syntactic sugar for strongly typed handler registration that returns the original handler for chaining.\n */\n register<E extends WebhookEventName>(event: E, handler: WebhookHandler<E>): WebhookHandler<E> {\n this.on(event, handler);\n return handler;\n }\n}\n\nexport function createWebhookDispatcher(): WebhookDispatcher {\n return new WebhookDispatcher();\n}\n\nexport type InferDispatcherPayload<T extends WebhookEventName> = WebhookPayload<T>;\n","import { Buffer } from \"node:buffer\";\nimport { createHmac } from \"node:crypto\";\n\nimport type { WebhookRequest } from \"./middleware.webhook\";\nimport { DEFAULT_SIGNATURE_ALGORITHM, DEFAULT_SIGNATURE_HEADER } from \"./signature.webhook\";\n\nexport const DEFAULT_TEST_WEBHOOK_SECRET = \"whsec_test_secret\";\n\nlet inMemoryBypass = false;\n\nfunction toBuffer(body: unknown): Buffer {\n if (typeof body === \"string\") {\n return Buffer.from(body, \"utf8\");\n }\n if (body instanceof ArrayBuffer) {\n return Buffer.from(body);\n }\n if (ArrayBuffer.isView(body as ArrayBufferView)) {\n const view = body as ArrayBufferView;\n return Buffer.from(view.buffer, view.byteOffset, view.byteLength);\n }\n return Buffer.from(JSON.stringify(body));\n}\n\nexport function generateTestWebhookSignature(\n rawBody: ArrayBuffer | ArrayBufferView | string | object,\n secret: string = DEFAULT_TEST_WEBHOOK_SECRET,\n): string {\n const buffer = toBuffer(rawBody);\n return createHmac(DEFAULT_SIGNATURE_ALGORITHM, secret).update(buffer).digest(\"hex\");\n}\n\nexport function isWebhookVerificationBypassed(): boolean {\n if (typeof process !== \"undefined\" && process.env.REQUEST_WEBHOOK_DISABLE_VERIFICATION === \"true\") {\n return true;\n }\n return inMemoryBypass;\n}\n\nexport function setWebhookVerificationBypass(enabled: boolean): void {\n inMemoryBypass = enabled;\n}\n\nexport async function withWebhookVerificationDisabled<T>(fn: () => T | Promise<T>): Promise<T> {\n const previous = inMemoryBypass;\n inMemoryBypass = true;\n try {\n return await fn();\n } finally {\n inMemoryBypass = previous;\n }\n}\n\nexport interface CreateMockWebhookRequestOptions {\n payload: unknown;\n secret?: string;\n headerName?: string;\n headers?: Record<string, string>;\n}\n\nexport interface MockWebhookResponse {\n statusCode: number;\n body: unknown;\n headersSent: boolean;\n status(code: number): this;\n json(payload: unknown): this;\n send(payload: unknown): this;\n}\n\nexport function createMockWebhookRequest(options: CreateMockWebhookRequestOptions): WebhookRequest {\n const { payload, secret = DEFAULT_TEST_WEBHOOK_SECRET, headerName = DEFAULT_SIGNATURE_HEADER, headers } = options;\n const rawBody = toBuffer(payload);\n const signature = generateTestWebhookSignature(rawBody, secret);\n const req = {\n headers: {\n ...(headers ?? {}),\n [headerName]: signature,\n },\n rawBody,\n body: rawBody,\n } as unknown as WebhookRequest;\n return req;\n}\n\nexport function createMockWebhookResponse(): MockWebhookResponse {\n return {\n statusCode: 200,\n body: undefined,\n headersSent: false,\n status(code: number) {\n this.statusCode = code;\n return this;\n },\n json(payload: unknown) {\n this.body = payload;\n this.headersSent = true;\n return this;\n },\n send(payload: unknown) {\n this.body = payload;\n this.headersSent = true;\n return this;\n },\n };\n}\n","import type { NextFunction, Request, RequestHandler, Response } from \"express-serve-static-core\";\n\nimport type { WebhookDispatchContext, WebhookDispatcher } from \"./dispatcher.webhook\";\nimport { RequestWebhookSignatureError } from \"./errors.webhook\";\nimport type { ParsedWebhookEvent } from \"./parser.webhook\";\nimport { parseWebhookEvent } from \"./parser.webhook\";\nimport type { WebhookEventName } from \"./schemas.webhook\";\nimport { isWebhookVerificationBypassed } from \"./testing.webhook\";\n\ntype BinaryLike = ArrayBuffer | ArrayBufferView | string;\n\nexport interface WebhookLogger {\n debug?(message: string, context?: Record<string, unknown>): void;\n info?(message: string, context?: Record<string, unknown>): void;\n warn?(message: string, context?: Record<string, unknown>): void;\n error?(message: string, context?: Record<string, unknown>): void;\n}\n\nexport interface BuildDispatchContext {\n (req: Request, res: Response, event: ParsedWebhookEvent): WebhookDispatchContext;\n}\n\nexport type ShouldSkipVerification = (req: Request) => boolean;\n\nexport type GetRawBody = (req: Request) => BinaryLike | null | undefined;\n\ninterface RawBodyCarrier {\n rawBody?: BinaryLike;\n}\n\nexport interface CreateWebhookMiddlewareOptions {\n readonly secret: string | readonly string[];\n readonly headerName?: string;\n readonly timestampHeader?: string;\n readonly toleranceMs?: number;\n readonly dispatcher?: WebhookDispatcher;\n readonly onEvent?: (event: ParsedWebhookEvent, req: Request, res: Response) => void | Promise<void>;\n readonly onError?: (error: unknown, req: Request, res: Response) => void | Promise<void>;\n readonly logger?: WebhookLogger;\n readonly getRawBody?: GetRawBody;\n readonly skipVerification?: ShouldSkipVerification;\n readonly attachProperty?: string;\n readonly buildDispatchContext?: BuildDispatchContext;\n readonly autoNext?: boolean;\n}\n\nconst DEFAULT_ATTACH_PROPERTY = \"webhook\";\n\nfunction isArrayBufferView(value: unknown): value is ArrayBufferView {\n return Boolean(value) && ArrayBuffer.isView(value as ArrayBufferView);\n}\n\nfunction isBinaryLike(value: unknown): value is BinaryLike {\n return typeof value === \"string\" || value instanceof ArrayBuffer || isArrayBufferView(value);\n}\n\nconst defaultGetRawBody: GetRawBody = (req) => {\n const carrier = req as Request & RawBodyCarrier;\n if (isBinaryLike(carrier.rawBody)) {\n return carrier.rawBody;\n }\n if (isBinaryLike(carrier.body)) {\n return carrier.body;\n }\n return null;\n};\n\nconst defaultDispatchContext: BuildDispatchContext = (req, res, event) => ({\n req,\n res,\n event,\n});\n\nasync function handleSuccess(\n parsed: ParsedWebhookEvent,\n req: Request,\n res: Response,\n options: CreateWebhookMiddlewareOptions,\n): Promise<void> {\n const {\n dispatcher,\n onEvent,\n logger,\n attachProperty = DEFAULT_ATTACH_PROPERTY,\n buildDispatchContext = defaultDispatchContext,\n } = options;\n\n Reflect.set(req, attachProperty, parsed);\n\n if (logger?.debug) {\n logger.debug(\"Webhook event verified\", { event: parsed.event, signature: parsed.signature });\n }\n\n if (dispatcher) {\n const context = buildDispatchContext(req, res, parsed);\n await dispatcher.dispatch(parsed, context);\n }\n\n if (onEvent) {\n await onEvent(parsed, req, res);\n }\n}\n\nasync function handleError(\n error: unknown,\n req: Request,\n res: Response,\n options: CreateWebhookMiddlewareOptions,\n): Promise<void> {\n const { logger, onError } = options;\n\n if (error instanceof RequestWebhookSignatureError) {\n logger?.warn?.(\"Webhook signature verification failed\", {\n error,\n header: error.headerName,\n reason: error.reason,\n });\n\n if (!res.headersSent) {\n res.status(error.statusCode).json({\n error: \"invalid_webhook_signature\",\n reason: error.reason,\n });\n }\n return;\n }\n\n logger?.error?.(\"Webhook middleware error\", { error });\n\n if (onError) {\n await onError(error, req, res);\n }\n}\n\nexport function createWebhookMiddleware(options: CreateWebhookMiddlewareOptions): RequestHandler {\n const {\n secret,\n headerName,\n timestampHeader,\n toleranceMs,\n getRawBody = defaultGetRawBody,\n skipVerification,\n autoNext = true,\n } = options;\n\n if (!secret || (Array.isArray(secret) && secret.length === 0)) {\n throw new Error(\"createWebhookMiddleware requires at least one webhook secret\");\n }\n\n const handler = async (req: Request, res: Response, next: NextFunction): Promise<void> => {\n const rawBody = getRawBody(req);\n if (!isBinaryLike(rawBody)) {\n const bodyError = new Error(\"Webhook middleware requires the raw request body. Configure express.raw() or supply getRawBody.\");\n await handleError(bodyError, req, res, options);\n if (!res.headersSent && autoNext) {\n next(bodyError);\n }\n return;\n }\n\n const shouldSkip = skipVerification?.(req) ?? isWebhookVerificationBypassed();\n\n try {\n const parsed = parseWebhookEvent({\n rawBody,\n headers: req.headers,\n secret,\n headerName,\n timestampHeader,\n toleranceMs,\n skipSignatureVerification: shouldSkip,\n });\n\n await handleSuccess(parsed, req, res, options);\n if (autoNext) {\n next();\n }\n } catch (error) {\n await handleError(error, req, res, options);\n if (!res.headersSent && autoNext) {\n const err = error instanceof Error ? error : new Error(\"Webhook middleware handler failed\", { cause: error });\n next(err);\n }\n }\n };\n\n return handler as unknown as RequestHandler;\n}\n\nexport type WebhookRequest<E extends WebhookEventName = WebhookEventName> = Request & {\n webhook?: ParsedWebhookEvent<E>;\n};\n","export * from \"./base.event\";\nexport * from \"./payment-confirmed.event\";\nexport * from \"./payment-failed.event\";\nexport * from \"./payment-processing.event\";\nexport * from \"./payment-detail-updated.event\";\nexport * from \"./compliance-updated.event\";\nexport * from \"./payment-partial.event\";\nexport * from \"./payment-refunded.event\";\nexport * from \"./request-recurring.event\";\n","import type { WebhookDispatchContext, WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookEventName, WebhookPayload } from \"../schemas.webhook\";\n\nexport interface WebhookEventHandlerContext<E extends WebhookEventName> {\n event: ParsedWebhookEvent<E>;\n dispatchContext: WebhookDispatchContext;\n}\n\nexport type WebhookEventHandler<E extends WebhookEventName> = (\n payload: WebhookPayload<E>,\n context: WebhookEventHandlerContext<E>,\n) => void | Promise<void>;\n\nexport function registerEventHandler<E extends WebhookEventName>(\n dispatcher: WebhookDispatcher,\n event: E,\n handler: WebhookEventHandler<E>,\n): () => void {\n return dispatcher.on(event, async (parsed, dispatchContext) => {\n await handler(parsed.payload, { event: parsed, dispatchContext });\n });\n}\n\nexport function createEventPredicate<E extends WebhookEventName>(event: E) {\n return (parsed: ParsedWebhookEvent): parsed is ParsedWebhookEvent<E> => parsed.event === event;\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_CONFIRMED_EVENT = \"payment.confirmed\" as const;\n\nexport type PaymentConfirmedEventName = typeof PAYMENT_CONFIRMED_EVENT;\n\nexport type PaymentConfirmedPayload = WebhookPayload<PaymentConfirmedEventName>;\n\nexport type PaymentConfirmedContext = WebhookEventHandlerContext<PaymentConfirmedEventName>;\n\nexport type PaymentConfirmedHandler = WebhookEventHandler<PaymentConfirmedEventName>;\n\nexport const isPaymentConfirmedEvent = createEventPredicate<PaymentConfirmedEventName>(PAYMENT_CONFIRMED_EVENT);\n\nexport function onPaymentConfirmed(dispatcher: WebhookDispatcher, handler: PaymentConfirmedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_CONFIRMED_EVENT, handler);\n}\n\nexport function assertPaymentConfirmedEvent(\n event: ParsedWebhookEvent,\n): asserts event is ParsedWebhookEvent<PaymentConfirmedEventName> {\n if (event.event !== PAYMENT_CONFIRMED_EVENT) {\n throw new TypeError(`Expected payment.confirmed event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_FAILED_EVENT = \"payment.failed\" as const;\n\nexport type PaymentFailedEventName = typeof PAYMENT_FAILED_EVENT;\n\nexport const PAYMENT_FAILED_SUB_STATUSES = Object.freeze([\"failed\", \"bounced\", \"insufficient_funds\"] as const);\n\nexport type PaymentFailedSubStatus = (typeof PAYMENT_FAILED_SUB_STATUSES)[number];\n\nexport type PaymentFailedPayload = WebhookPayload<PaymentFailedEventName>;\n\nexport type PaymentFailedContext = WebhookEventHandlerContext<PaymentFailedEventName>;\n\nexport type PaymentFailedHandler = WebhookEventHandler<PaymentFailedEventName>;\n\nexport const isPaymentFailedEvent = createEventPredicate<PaymentFailedEventName>(PAYMENT_FAILED_EVENT);\n\nexport function onPaymentFailed(dispatcher: WebhookDispatcher, handler: PaymentFailedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_FAILED_EVENT, handler);\n}\n\nexport function assertPaymentFailedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentFailedEventName> {\n if (event.event !== PAYMENT_FAILED_EVENT) {\n throw new TypeError(`Expected payment.failed event. Received ${event.event}.`);\n }\n}\n\nexport function isBouncedFailure(payload: Pick<PaymentFailedPayload, \"subStatus\">): boolean {\n return payload.subStatus === \"bounced\";\n}\n\nexport function isInsufficientFundsFailure(payload: Pick<PaymentFailedPayload, \"subStatus\">): boolean {\n return payload.subStatus === \"insufficient_funds\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_PROCESSING_EVENT = \"payment.processing\" as const;\n\nexport type PaymentProcessingEventName = typeof PAYMENT_PROCESSING_EVENT;\n\nexport const PAYMENT_PROCESSING_STAGES = Object.freeze([\n \"initiated\",\n \"pending_internal_assessment\",\n \"ongoing_checks\",\n \"processing\",\n \"sending_fiat\",\n \"fiat_sent\",\n \"bounced\",\n \"retry_required\",\n] as const);\n\nexport type PaymentProcessingStage = (typeof PAYMENT_PROCESSING_STAGES)[number];\n\nexport type PaymentProcessingPayload = WebhookPayload<PaymentProcessingEventName>;\n\nexport type PaymentProcessingContext = WebhookEventHandlerContext<PaymentProcessingEventName>;\n\nexport type PaymentProcessingHandler = WebhookEventHandler<PaymentProcessingEventName>;\n\nconst TERMINAL_STAGES = new Set<PaymentProcessingStage>([\"fiat_sent\", \"bounced\", \"retry_required\"]);\n\nconst STAGE_LABELS: Record<PaymentProcessingStage, string> = {\n initiated: \"Transfer initiated\",\n pending_internal_assessment: \"Pending internal assessment\",\n ongoing_checks: \"Ongoing compliance checks\",\n processing: \"Processing payment\",\n sending_fiat: \"Sending fiat to recipient\",\n fiat_sent: \"Fiat delivered\",\n bounced: \"Payment bounced\",\n retry_required: \"Retry required\",\n};\n\nexport const isPaymentProcessingEvent = createEventPredicate<PaymentProcessingEventName>(PAYMENT_PROCESSING_EVENT);\n\nexport function onPaymentProcessing(dispatcher: WebhookDispatcher, handler: PaymentProcessingHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_PROCESSING_EVENT, handler);\n}\n\nexport function assertPaymentProcessingEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentProcessingEventName> {\n if (event.event !== PAYMENT_PROCESSING_EVENT) {\n throw new TypeError(`Expected payment.processing event. Received ${event.event}.`);\n }\n}\n\nexport function isProcessingTerminalStatus(stage: PaymentProcessingStage): boolean {\n return TERMINAL_STAGES.has(stage);\n}\n\nexport function processingStageLabel(stage: PaymentProcessingStage): string {\n return STAGE_LABELS[stage];\n}\n\nexport function isRetryRequired(stage: PaymentProcessingStage): boolean {\n return stage === \"retry_required\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_DETAIL_UPDATED_EVENT = \"payment_detail.updated\" as const;\n\nexport type PaymentDetailUpdatedEventName = typeof PAYMENT_DETAIL_UPDATED_EVENT;\n\nexport const PAYMENT_DETAIL_STATUSES = Object.freeze([\"approved\", \"failed\", \"pending\", \"verified\"] as const);\n\nexport type PaymentDetailStatus = (typeof PAYMENT_DETAIL_STATUSES)[number];\n\nexport type PaymentDetailUpdatedPayload = WebhookPayload<PaymentDetailUpdatedEventName>;\n\nexport type PaymentDetailUpdatedContext = WebhookEventHandlerContext<PaymentDetailUpdatedEventName>;\n\nexport type PaymentDetailUpdatedHandler = WebhookEventHandler<PaymentDetailUpdatedEventName>;\n\nexport const isPaymentDetailUpdatedEvent = createEventPredicate<PaymentDetailUpdatedEventName>(PAYMENT_DETAIL_UPDATED_EVENT);\n\nexport function onPaymentDetailUpdated(dispatcher: WebhookDispatcher, handler: PaymentDetailUpdatedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_DETAIL_UPDATED_EVENT, handler);\n}\n\nexport function assertPaymentDetailUpdatedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentDetailUpdatedEventName> {\n if (event.event !== PAYMENT_DETAIL_UPDATED_EVENT) {\n throw new TypeError(`Expected payment_detail.updated event. Received ${event.event}.`);\n }\n}\n\nexport function isPaymentDetailApproved(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"approved\";\n}\n\nexport function isPaymentDetailRejected(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"failed\";\n}\n\nexport function isPaymentDetailPending(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"pending\";\n}\n\nexport function isPaymentDetailVerified(payload: Pick<PaymentDetailUpdatedPayload, \"status\">): boolean {\n return payload.status === \"verified\";\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const COMPLIANCE_UPDATED_EVENT = \"compliance.updated\" as const;\n\nexport type ComplianceUpdatedEventName = typeof COMPLIANCE_UPDATED_EVENT;\n\nexport type ComplianceUpdatedPayload = WebhookPayload<ComplianceUpdatedEventName>;\n\nexport type ComplianceUpdatedContext = WebhookEventHandlerContext<ComplianceUpdatedEventName>;\n\nexport type ComplianceUpdatedHandler = WebhookEventHandler<ComplianceUpdatedEventName>;\n\nexport type ComplianceKycStatus = NonNullable<ComplianceUpdatedPayload[\"kycStatus\"]>;\nexport type ComplianceAgreementStatus = NonNullable<ComplianceUpdatedPayload[\"agreementStatus\"]>;\n\nexport const COMPLIANCE_KYC_STATUSES = Object.freeze([\n \"initiated\",\n \"pending\",\n \"approved\",\n \"rejected\",\n \"failed\",\n] as const satisfies readonly ComplianceKycStatus[]);\n\nexport const COMPLIANCE_AGREEMENT_STATUSES = Object.freeze([\n \"not_started\",\n \"pending\",\n \"completed\",\n \"rejected\",\n \"failed\",\n \"signed\",\n] as const satisfies readonly ComplianceAgreementStatus[]);\n\nexport const isComplianceUpdatedEvent = createEventPredicate<ComplianceUpdatedEventName>(COMPLIANCE_UPDATED_EVENT);\n\nexport function onComplianceUpdated(dispatcher: WebhookDispatcher, handler: ComplianceUpdatedHandler): () => void {\n return registerEventHandler(dispatcher, COMPLIANCE_UPDATED_EVENT, handler);\n}\n\nexport function assertComplianceUpdatedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<ComplianceUpdatedEventName> {\n if (event.event !== COMPLIANCE_UPDATED_EVENT) {\n throw new TypeError(`Expected compliance.updated event. Received ${event.event}.`);\n }\n}\n\nexport function isKycComplete(payload: ComplianceUpdatedPayload): boolean {\n return payload.kycStatus === \"approved\";\n}\n\nexport function isAgreementRejected(payload: ComplianceUpdatedPayload): boolean {\n return payload.agreementStatus === \"rejected\" || payload.agreementStatus === \"failed\";\n}\n\nexport function complianceStatusSummary(payload: ComplianceUpdatedPayload): string {\n const parts: string[] = [];\n const kyc = payload.kycStatus ? payload.kycStatus.replace(/_/g, \" \") : \"unknown\";\n const agreement = payload.agreementStatus ? payload.agreementStatus.replace(/_/g, \" \") : \"unknown\";\n parts.push(`KYC: ${kyc}`);\n parts.push(`Agreement: ${agreement}`);\n if (payload.clientUserId) {\n const clientUserId = JSON.stringify(payload.clientUserId);\n parts.push(`Client user: ${clientUserId}`);\n }\n return parts.join(\" | \");\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_PARTIAL_EVENT = \"payment.partial\" as const;\n\nexport type PaymentPartialEventName = typeof PAYMENT_PARTIAL_EVENT;\n\nexport type PaymentPartialPayload = WebhookPayload<PaymentPartialEventName>;\n\nexport type PaymentPartialContext = WebhookEventHandlerContext<PaymentPartialEventName>;\n\nexport type PaymentPartialHandler = WebhookEventHandler<PaymentPartialEventName>;\n\nexport const isPaymentPartialEvent = createEventPredicate<PaymentPartialEventName>(PAYMENT_PARTIAL_EVENT);\n\nexport function onPaymentPartial(dispatcher: WebhookDispatcher, handler: PaymentPartialHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_PARTIAL_EVENT, handler);\n}\n\nexport function assertPaymentPartialEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentPartialEventName> {\n if (event.event !== PAYMENT_PARTIAL_EVENT) {\n throw new TypeError(`Expected payment.partial event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const PAYMENT_REFUNDED_EVENT = \"payment.refunded\" as const;\n\nexport type PaymentRefundedEventName = typeof PAYMENT_REFUNDED_EVENT;\n\nexport type PaymentRefundedPayload = WebhookPayload<PaymentRefundedEventName>;\n\nexport type PaymentRefundedContext = WebhookEventHandlerContext<PaymentRefundedEventName>;\n\nexport type PaymentRefundedHandler = WebhookEventHandler<PaymentRefundedEventName>;\n\nexport const isPaymentRefundedEvent = createEventPredicate<PaymentRefundedEventName>(PAYMENT_REFUNDED_EVENT);\n\nexport function onPaymentRefunded(dispatcher: WebhookDispatcher, handler: PaymentRefundedHandler): () => void {\n return registerEventHandler(dispatcher, PAYMENT_REFUNDED_EVENT, handler);\n}\n\nexport function assertPaymentRefundedEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<PaymentRefundedEventName> {\n if (event.event !== PAYMENT_REFUNDED_EVENT) {\n throw new TypeError(`Expected payment.refunded event. Received ${event.event}.`);\n }\n}\n","import type { WebhookDispatcher } from \"../dispatcher.webhook\";\nimport type { ParsedWebhookEvent } from \"../parser.webhook\";\nimport type { WebhookPayload } from \"../schemas.webhook\";\nimport { createEventPredicate, registerEventHandler, type WebhookEventHandler, type WebhookEventHandlerContext } from \"./base.event\";\n\nexport const REQUEST_RECURRING_EVENT = \"request.recurring\" as const;\n\nexport type RequestRecurringEventName = typeof REQUEST_RECURRING_EVENT;\n\nexport type RequestRecurringPayload = WebhookPayload<RequestRecurringEventName>;\n\nexport type RequestRecurringContext = WebhookEventHandlerContext<RequestRecurringEventName>;\n\nexport type RequestRecurringHandler = WebhookEventHandler<RequestRecurringEventName>;\n\nexport const isRequestRecurringEvent = createEventPredicate<RequestRecurringEventName>(REQUEST_RECURRING_EVENT);\n\nexport function onRequestRecurring(dispatcher: WebhookDispatcher, handler: RequestRecurringHandler): () => void {\n return registerEventHandler(dispatcher, REQUEST_RECURRING_EVENT, handler);\n}\n\nexport function assertRequestRecurringEvent(event: ParsedWebhookEvent): asserts event is ParsedWebhookEvent<RequestRecurringEventName> {\n if (event.event !== REQUEST_RECURRING_EVENT) {\n throw new TypeError(`Expected request.recurring event. Received ${event.event}.`);\n }\n}\n"]}