@omni-commerce/sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/BaseClient.ts","../src/version.ts","../src/environments.ts","../src/errors/OmniError.ts","../src/errors/OmniTimeoutError.ts","../src/errors/status.ts","../src/core/supplier.ts","../src/core/query.ts","../src/core/http-response-promise.ts","../src/core/fetcher.ts","../src/core/path.ts","../src/jobs.ts","../src/generated/resources.ts","../src/Client.ts","../src/webhooks.ts","../src/api/index.ts"],"names":["text"],"mappings":"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","file":"index.js","sourcesContent":["import { OmniEnvironment } from \"./environments\";\nimport type { Supplier } from \"./core/supplier\";\n\nexport type FetchLike = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<Response>;\n\nexport interface BaseClientOptions {\n /**\n * API host. Defaults to production (`https://omnicommerce.sg`).\n * Pass `OmniEnvironment.Local` for `http://localhost:3000`.\n */\n environment?: Supplier<OmniEnvironment | string>;\n /** Explicit API origin. Overrides `environment` when set. */\n baseUrl?: Supplier<string>;\n /**\n * Organization API key (`omni_sk_...`) or OAuth access token.\n * Defaults to `process.env.OMNI_API_KEY`.\n */\n apiKey?: Supplier<string>;\n /** Extra headers sent on every request. */\n headers?: Record<\n string,\n string | Supplier<string | null | undefined> | null | undefined\n >;\n /** Default timeout in seconds. Defaults to 60. */\n timeoutInSeconds?: number;\n /** Retry count for 408/429/5xx and network failures. Defaults to 2. */\n maxRetries?: number;\n /** Custom fetch implementation. */\n fetch?: FetchLike;\n}\n\nexport interface BaseRequestOptions {\n timeoutInSeconds?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n queryParams?: Record<string, unknown>;\n headers?: Record<string, string | undefined>;\n}\n\nexport type NormalizedClientOptions = {\n environment?: Supplier<OmniEnvironment | string>;\n baseUrl?: Supplier<string>;\n apiKey?: Supplier<string>;\n headers?: BaseClientOptions[\"headers\"];\n timeoutInSeconds: number;\n maxRetries: number;\n fetch: FetchLike;\n};\n\nexport function normalizeClientOptions(\n options: BaseClientOptions = {},\n): NormalizedClientOptions {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (typeof fetchImpl !== \"function\") {\n throw new Error(\n \"No fetch implementation found. Pass `fetch` in OmniClient options.\",\n );\n }\n return {\n environment: options.environment,\n baseUrl: options.baseUrl,\n apiKey: options.apiKey,\n headers: options.headers,\n timeoutInSeconds: options.timeoutInSeconds ?? 60,\n maxRetries: options.maxRetries ?? 2,\n fetch: fetchImpl,\n };\n}\n","export const SDK_VERSION = \"0.2.0\";\nexport const SDK_USER_AGENT = `omnicommerce-js/${SDK_VERSION}`;\n","export const OmniEnvironment = {\n Production: \"https://omnicommerce.sg\",\n Local: \"http://localhost:3000\",\n} as const;\n\nexport type OmniEnvironment =\n (typeof OmniEnvironment)[keyof typeof OmniEnvironment];\n","import type { RawResponse } from \"../core/http-response-promise\";\n\nexport class OmniError extends Error {\n readonly statusCode?: number;\n readonly body?: unknown;\n readonly rawResponse?: RawResponse;\n\n constructor({\n message,\n statusCode,\n body,\n rawResponse,\n }: {\n message?: string;\n statusCode?: number;\n body?: unknown;\n rawResponse?: RawResponse;\n }) {\n super(message ?? defaultErrorMessage(statusCode, body));\n this.name = \"OmniError\";\n this.statusCode = statusCode;\n this.body = body;\n this.rawResponse = rawResponse;\n }\n}\n\nfunction defaultErrorMessage(statusCode?: number, body?: unknown): string {\n const fromBody = extractErrorMessage(body);\n if (fromBody) return fromBody;\n if (statusCode) return `Omni API error (${statusCode})`;\n return \"Omni API error\";\n}\n\nexport function extractErrorMessage(body: unknown): string | undefined {\n if (typeof body === \"string\" && body.trim()) return body;\n if (!body || typeof body !== \"object\") return undefined;\n const record = body as Record<string, unknown>;\n for (const key of [\"error\", \"message\", \"detail\"]) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n","export class OmniTimeoutError extends Error {\n constructor(message = \"Request timed out\") {\n super(message);\n this.name = \"OmniTimeoutError\";\n }\n}\n","import type { RawResponse } from \"../core/http-response-promise\";\nimport { OmniError } from \"./OmniError\";\n\nexport class BadRequestError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Bad request\", statusCode: 400, body, rawResponse });\n this.name = \"BadRequestError\";\n }\n}\n\nexport class UnauthorizedError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Unauthorized\", statusCode: 401, body, rawResponse });\n this.name = \"UnauthorizedError\";\n }\n}\n\nexport class ForbiddenError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Forbidden\", statusCode: 403, body, rawResponse });\n this.name = \"ForbiddenError\";\n }\n}\n\nexport class NotFoundError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Not found\", statusCode: 404, body, rawResponse });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class UnprocessableEntityError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Unprocessable entity\",\n statusCode: 422,\n body,\n rawResponse,\n });\n this.name = \"UnprocessableEntityError\";\n }\n}\n\nexport class TooManyRequestsError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Too many requests\",\n statusCode: 429,\n body,\n rawResponse,\n });\n this.name = \"TooManyRequestsError\";\n }\n}\n\nexport class InternalServerError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Internal server error\",\n statusCode: 500,\n body,\n rawResponse,\n });\n this.name = \"InternalServerError\";\n }\n}\n\nexport class BadGatewayError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Bad gateway\", statusCode: 502, body, rawResponse });\n this.name = \"BadGatewayError\";\n }\n}\n\nexport class ServiceUnavailableError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Service unavailable\",\n statusCode: 503,\n body,\n rawResponse,\n });\n this.name = \"ServiceUnavailableError\";\n }\n}\n\nexport function errorFromStatus(\n statusCode: number,\n body: unknown,\n rawResponse: RawResponse,\n): OmniError {\n switch (statusCode) {\n case 400:\n return new BadRequestError(body, rawResponse);\n case 401:\n return new UnauthorizedError(body, rawResponse);\n case 403:\n return new ForbiddenError(body, rawResponse);\n case 404:\n return new NotFoundError(body, rawResponse);\n case 422:\n return new UnprocessableEntityError(body, rawResponse);\n case 429:\n return new TooManyRequestsError(body, rawResponse);\n case 500:\n return new InternalServerError(body, rawResponse);\n case 502:\n return new BadGatewayError(body, rawResponse);\n case 503:\n return new ServiceUnavailableError(body, rawResponse);\n default:\n return new OmniError({ statusCode, body, rawResponse });\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport async function getSupplierValue<T>(\n value: Supplier<T> | undefined,\n): Promise<T | undefined> {\n if (value === undefined) return undefined;\n if (typeof value === \"function\") {\n return await (value as () => T | Promise<T>)();\n }\n return value;\n}\n","const isPlainObject = (value: unknown): value is Record<string, unknown> =>\n Boolean(value) && Object.getPrototypeOf(value) === Object.prototype;\n\nexport function toQueryString(\n query: Record<string, unknown> | undefined,\n): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n appendQueryParam(params, key, value);\n }\n return params.toString();\n}\n\nfunction appendQueryParam(\n params: URLSearchParams,\n key: string,\n value: unknown,\n): void {\n if (value === undefined || value === null) return;\n if (Array.isArray(value)) {\n for (const item of value) appendQueryParam(params, key, item);\n return;\n }\n if (typeof value === \"boolean\" || typeof value === \"number\") {\n params.append(key, String(value));\n return;\n }\n if (typeof value === \"string\") {\n params.append(key, value);\n return;\n }\n if (isPlainObject(value) || Array.isArray(value)) {\n params.append(key, JSON.stringify(value));\n return;\n }\n params.append(key, String(value));\n}\n\nexport function joinUrl(baseUrl: string, path: string, query?: string): string {\n const trimmedBase = baseUrl.replace(/\\/+$/, \"\");\n const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`;\n const url = `${trimmedBase}${normalizedPath}`;\n return query ? `${url}?${query}` : url;\n}\n","export type RawResponse = {\n status: number;\n headers: Headers;\n url: string;\n};\n\nexport type WithRawResponse<T> = {\n data: T;\n rawResponse: RawResponse;\n};\n\nexport class HttpResponsePromise<T> extends Promise<T> {\n readonly #response: Promise<WithRawResponse<T>>;\n\n private constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: unknown) => void,\n ) => void,\n response: Promise<WithRawResponse<T>>,\n ) {\n super(executor);\n this.#response = response;\n }\n\n static from<T>(\n response: Promise<WithRawResponse<T>>,\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>((resolve, reject) => {\n void response.then((result) => resolve(result.data), reject);\n }, response);\n }\n\n withRawResponse(): Promise<WithRawResponse<T>> {\n return this.#response;\n }\n}\n\nexport function toRawResponse(response: Response): RawResponse {\n return {\n status: response.status,\n headers: response.headers,\n url: response.url,\n };\n}\n","import { SDK_USER_AGENT } from \"../version\";\nimport { OmniEnvironment } from \"../environments\";\nimport {\n type NormalizedClientOptions,\n type BaseRequestOptions,\n} from \"../BaseClient\";\nimport { errorFromStatus, OmniError } from \"../errors\";\nimport { OmniTimeoutError } from \"../errors/OmniTimeoutError\";\nimport { getSupplierValue } from \"./supplier\";\nimport { joinUrl, toQueryString } from \"./query\";\nimport {\n HttpResponsePromise,\n toRawResponse,\n type RawResponse,\n} from \"./http-response-promise\";\n\nconst IDEMPOTENT_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"]);\n\nexport type OmniRequestInit = {\n method: string;\n path: string;\n query?: Record<string, unknown>;\n body?: unknown;\n headers?: Record<string, string | undefined>;\n timeoutInSeconds?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n queryParams?: Record<string, unknown>;\n};\n\nexport class OmniHttp {\n constructor(private readonly options: NormalizedClientOptions) {}\n\n request<T>(init: OmniRequestInit): HttpResponsePromise<T> {\n return HttpResponsePromise.from(this.requestWithRaw<T>(init));\n }\n\n async requestWithRaw<T>(\n init: OmniRequestInit,\n ): Promise<{ data: T; rawResponse: RawResponse }> {\n const url = await this.buildUrl(init);\n const headers = await this.buildHeaders(init);\n const serialized = serializeBody(init.body, headers);\n const timeoutMs =\n (init.timeoutInSeconds ?? this.options.timeoutInSeconds) * 1000;\n const maxRetries = init.maxRetries ?? this.options.maxRetries;\n const fetchImpl = this.options.fetch;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), timeoutMs);\n const onAbort = () => controller.abort();\n init.abortSignal?.addEventListener(\"abort\", onAbort, { once: true });\n try {\n const response = await fetchImpl(url, {\n method: init.method,\n headers,\n body: serialized.body,\n signal: controller.signal,\n });\n const rawResponse = toRawResponse(response);\n if (response.ok) {\n const data = (await parseSuccessBody(response)) as T;\n return { data, rawResponse };\n }\n const errorBody = await parseErrorBody(response);\n if (attempt < maxRetries && shouldRetry(init.method, response.status)) {\n await sleep(\n retryDelayMs(attempt, response.headers.get(\"retry-after\")),\n );\n continue;\n }\n throw errorFromStatus(response.status, errorBody, rawResponse);\n } catch (error) {\n lastError = error;\n if (error instanceof OmniError) throw error;\n const aborted =\n error instanceof Error &&\n (error.name === \"AbortError\" || error.name === \"TimeoutError\");\n if (aborted && init.abortSignal?.aborted) {\n throw error;\n }\n if (aborted) {\n lastError = new OmniTimeoutError(\n `Request timed out after ${timeoutMs}ms`,\n );\n }\n if (attempt >= maxRetries || !shouldRetry(init.method, undefined)) {\n throw lastError;\n }\n await sleep(retryDelayMs(attempt, null));\n } finally {\n clearTimeout(timeout);\n init.abortSignal?.removeEventListener(\"abort\", onAbort);\n }\n }\n throw lastError;\n }\n\n private async buildUrl(init: OmniRequestInit): Promise<string> {\n const baseUrl =\n (await getSupplierValue(this.options.baseUrl)) ??\n (await getSupplierValue(this.options.environment)) ??\n OmniEnvironment.Production;\n const query = toQueryString({\n ...init.query,\n ...init.queryParams,\n });\n return joinUrl(baseUrl, init.path, query);\n }\n\n private async buildHeaders(\n init: OmniRequestInit,\n ): Promise<Record<string, string>> {\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n \"User-Agent\": SDK_USER_AGENT,\n };\n const apiKey =\n (await getSupplierValue(this.options.apiKey)) ?? readEnvApiKey();\n if (apiKey) {\n headers.Authorization = `Bearer ${apiKey}`;\n }\n if (this.options.headers) {\n for (const [key, value] of Object.entries(this.options.headers)) {\n const resolved = await getSupplierValue(value ?? undefined);\n if (resolved) headers[key] = resolved;\n }\n }\n if (init.headers) {\n for (const [key, value] of Object.entries(init.headers)) {\n if (value) headers[key] = value;\n }\n }\n return headers;\n }\n}\n\nexport function mergeRequestOptions(\n requestOptions?: BaseRequestOptions,\n): Pick<\n OmniRequestInit,\n \"timeoutInSeconds\" | \"maxRetries\" | \"abortSignal\" | \"queryParams\" | \"headers\"\n> {\n return {\n timeoutInSeconds: requestOptions?.timeoutInSeconds,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n queryParams: requestOptions?.queryParams,\n headers: requestOptions?.headers,\n };\n}\n\nfunction readEnvApiKey(): string | undefined {\n if (typeof process === \"undefined\" || !process.env) return undefined;\n const value = process.env.OMNI_API_KEY;\n return value && value.trim() ? value : undefined;\n}\n\nfunction serializeBody(\n body: unknown,\n headers: Record<string, string>,\n): { body?: BodyInit } {\n if (body === undefined || body === null) return {};\n if (typeof FormData !== \"undefined\" && body instanceof FormData) {\n return { body };\n }\n if (\n typeof URLSearchParams !== \"undefined\" &&\n body instanceof URLSearchParams\n ) {\n if (!headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/x-www-form-urlencoded\";\n }\n return { body };\n }\n if (typeof Blob !== \"undefined\" && body instanceof Blob) {\n return { body };\n }\n if (typeof body === \"string\") {\n if (!headers[\"Content-Type\"]) headers[\"Content-Type\"] = \"application/json\";\n return { body };\n }\n if (!headers[\"Content-Type\"]) headers[\"Content-Type\"] = \"application/json\";\n return { body: JSON.stringify(body) };\n}\n\nasync function parseSuccessBody(response: Response): Promise<unknown> {\n if (response.status === 204) return undefined;\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n const text = await response.text();\n if (!text) return undefined;\n return JSON.parse(text);\n }\n if (contentType.includes(\"text/\")) {\n return response.text();\n }\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nasync function parseErrorBody(response: Response): Promise<unknown> {\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nfunction shouldRetry(method: string, status: number | undefined): boolean {\n if (status === 408 || status === 429) return true;\n const idempotent = IDEMPOTENT_METHODS.has(method.toUpperCase());\n if (status !== undefined) {\n return idempotent && status >= 500;\n }\n return idempotent;\n}\n\nfunction retryDelayMs(attempt: number, retryAfter: string | null): number {\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return Math.min(seconds * 1000, 30_000);\n }\n }\n const base = Math.min(500 * 2 ** attempt, 8_000);\n return base + Math.random() * base * 0.2;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export function encodePathParam(name: string, value: unknown): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new Error(`Missing required path parameter: ${name}`);\n }\n return encodeURIComponent(value);\n}\n","import type { OmniHttp } from \"./core/fetcher\";\nimport { OmniError } from \"./errors\";\nimport type { BaseRequestOptions } from \"./BaseClient\";\n\nconst SUCCESS_STATUSES = new Set([\n \"completed\",\n \"complete\",\n \"succeeded\",\n \"success\",\n]);\nconst FAILURE_STATUSES = new Set([\"failed\", \"error\"]);\nconst CANCELLED_STATUSES = new Set([\"cancelled\", \"canceled\"]);\nconst TERMINAL_STATUSES = new Set([\n ...SUCCESS_STATUSES,\n ...FAILURE_STATUSES,\n ...CANCELLED_STATUSES,\n]);\n\nexport type WaitForJobRequest = {\n jobId: string;\n organizationId?: string;\n};\n\nexport type WaitForJobOptions = BaseRequestOptions & {\n intervalMs?: number;\n timeoutInSeconds?: number;\n};\n\nexport class JobFailedError extends OmniError {\n readonly jobStatus: string;\n constructor(jobStatus: string, body: unknown) {\n super({\n message: `Job ended with status \"${jobStatus}\"`,\n body,\n });\n this.name = \"JobFailedError\";\n this.jobStatus = jobStatus;\n }\n}\n\nexport function readJobStatus(payload: unknown): string | undefined {\n if (!payload || typeof payload !== \"object\") return undefined;\n const record = payload as Record<string, unknown>;\n const nested = record.data;\n if (nested && typeof nested === \"object\") {\n const nestedStatus = (nested as Record<string, unknown>).status;\n if (typeof nestedStatus === \"string\" && nestedStatus.trim()) {\n return nestedStatus;\n }\n }\n if (typeof record.status === \"string\" && record.status.trim()) {\n return record.status;\n }\n return undefined;\n}\n\nexport async function waitForJob(\n http: OmniHttp,\n request: WaitForJobRequest,\n options?: WaitForJobOptions,\n): Promise<unknown> {\n const intervalMs = options?.intervalMs ?? 2000;\n const timeoutMs = (options?.timeoutInSeconds ?? 300) * 1000;\n const started = Date.now();\n\n while (true) {\n const result = await http.requestWithRaw<unknown>({\n method: \"GET\",\n path: `/api/v1/jobs/${encodeURIComponent(request.jobId)}`,\n query: request.organizationId\n ? { organizationId: request.organizationId }\n : undefined,\n timeoutInSeconds: options?.timeoutInSeconds,\n maxRetries: options?.maxRetries,\n abortSignal: options?.abortSignal,\n queryParams: options?.queryParams,\n headers: options?.headers,\n });\n const status = readJobStatus(result.data)?.toLowerCase();\n if (status && TERMINAL_STATUSES.has(status)) {\n if (SUCCESS_STATUSES.has(status)) return result.data;\n throw new JobFailedError(status, result.data);\n }\n if (Date.now() - started + intervalMs > timeoutMs) {\n throw new OmniError({\n message: `Timed out waiting for job ${request.jobId}`,\n body: result.data,\n });\n }\n await new Promise((resolve) => setTimeout(resolve, intervalMs));\n }\n}\n","/**\n * Auto-generated from docs/openapi.json. Do not edit.\n *\n * Resource methods take one request object and use\n * `get`/`list`/`create`-style names.\n */\n\nimport type { BaseRequestOptions } from \"../BaseClient\";\nimport { mergeRequestOptions, type OmniHttp } from \"../core/fetcher\";\nimport type { HttpResponsePromise } from \"../core/http-response-promise\";\nimport { encodePathParam } from \"../core/path\";\nimport type {\n OperationBody,\n OperationPath,\n OperationQuery,\n SuccessData,\n} from \"../types\";\nimport {\n waitForJob,\n type WaitForJobOptions,\n type WaitForJobRequest,\n} from \"../jobs\";\nimport type { operations } from \"./openapi\";\n\nexport class AgentsGeneralClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Invoke the Omni agent\n *\n * Run the general Omni agent and wait until it completes, pauses for approval, or fails. Requires `agents:invoke`.\n\nA waiting call can take several minutes; raise the client timeout. Send `decisions` with the same `thread_id` to approve or reject a paused run. Omit `config.enabled_tools` to use the organization's agent tools. Attach images on the latest user message as `{ type: \"image\", url }` HTTP(S) URLs.\n *\n * `POST /api/v1/agents/general/invoke`\n */\n invoke(\n request: OperationBody<operations[\"post_v1_agents_general_invoke\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_agents_general_invoke\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/agents/general/invoke\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Start an Omni agent run\n *\n * Queue the general Omni agent and return immediately with the run in `queued` state. Poll the URL in the `Location` header (`GET /api/v1/agents/general/runs/{runId}`), honoring `Retry-After`. Requires `agents:invoke`. The request body matches invoke.\n *\n * `POST /api/v1/agents/general/runs`\n */\n start(\n request: OperationBody<operations[\"post_v1_agents_general_runs\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_agents_general_runs\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/agents/general/runs\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get an Omni agent run\n *\n * Read a queued, running, completed, paused, or failed Omni agent run. Requires `agents:invoke`.\n *\n * `GET /api/v1/agents/general/runs/{runId}`\n */\n getRun(\n request: OperationPath<operations[\"get_v1_agents_general_runs_by_runid\"]> &\n OperationQuery<operations[\"get_v1_agents_general_runs_by_runid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_agents_general_runs_by_runid\"]>\n > {\n const { runId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/agents/general/runs/${encodePathParam(\"runId\", runId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class AgentsClient {\n readonly general: AgentsGeneralClient;\n constructor(protected readonly _http: OmniHttp) {\n this.general = new AgentsGeneralClient(this._http);\n }\n}\n\nexport class AopClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get AOP configuration\n *\n * Retrieve prompt, agent, structured inputs/output, and notification settings. Requires `aops:read`.\n *\n * `GET /api/v1/aop/{aopId}/config`\n */\n getConfig(\n request: OperationPath<operations[\"get_v1_aop_by_aopid_config\"]> &\n OperationQuery<operations[\"get_v1_aop_by_aopid_config\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_aop_by_aopid_config\"]>\n > {\n const { aopId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/config`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Overwrite AOP configuration\n *\n * Updates AOP configuration. Omitted fields keep their current values. Send `user_notification_configs: null` to clear notification overrides. Requires `aops:write`.\n *\n * `PUT /api/v1/aop/{aopId}/config`\n */\n updateConfig(\n request: OperationPath<operations[\"put_v1_aop_by_aopid_config\"]> &\n OperationBody<operations[\"put_v1_aop_by_aopid_config\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_aop_by_aopid_config\"]>\n > {\n const { aopId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/config`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Execute an AOP\n *\n * Start an AOP run and return immediately with a `thread_id`. Poll `GET /api/v1/threads/{thread_id}/status`. Requires `aops:write`.\n *\n * `POST /api/v1/aop/{aopId}/execute`\n */\n execute(\n request: OperationPath<operations[\"post_v1_aop_by_aopid_execute\"]> &\n OperationBody<operations[\"post_v1_aop_by_aopid_execute\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_aop_by_aopid_execute\"]>\n > {\n const { aopId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/execute`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create AOP\n *\n * Create an organization-scoped AOP. Use `[[ placeholder ]]` in the prompt for user inputs supplied at execution time. Requires `aops:write`.\n *\n * `POST /api/v1/aop/create`\n */\n create(\n request: OperationBody<operations[\"post_v1_aop_create\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_aop_create\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/aop/create\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Retry a failed AOP execution\n *\n * Looks up a failed AOP thread, then enqueues a new run. Requires `aops:write`.\n *\n * `POST /api/v1/aop/retry`\n */\n retry(\n request: OperationBody<operations[\"post_v1_aop_retry\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_aop_retry\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/aop/retry\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ApiClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * API Root\n *\n * Public API discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.\n *\n * `GET /api`\n */\n root(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_root\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * API v1 Root\n *\n * Public API v1 discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.\n *\n * `GET /api/v1`\n */\n v1(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CampaignsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Campaigns\n *\n * List campaigns for the authenticated organization. `stage=all` is the workspace working set: draft and running. Requires `promotions:read`.\n *\n * `GET /api/v1/campaigns`\n */\n list(\n request: OperationQuery<operations[\"get_v1_campaigns\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_campaigns\"]>> {\n const { organizationId, q, stage, offset, limit } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/campaigns\",\n query: { organizationId, q, stage, offset, limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Campaign\n *\n * Create a draft campaign. `ownerId` and `approverId` must be members of the organization, and every store must already be connected. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns`\n */\n create(\n request: OperationBody<operations[\"post_v1_campaigns\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Campaign\n *\n * Read one campaign, including its plan, executions, audit, schedule, and progress. Requires `promotions:read`.\n *\n * `GET /api/v1/campaigns/{campaignId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_campaigns_by_campaignid\"]> &\n OperationQuery<operations[\"get_v1_campaigns_by_campaignid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_campaigns_by_campaignid\"]>\n > {\n const { campaignId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Campaign\n *\n * Replace a draft or approved plan, or propose one change to a running plan. Send `expectedRevision` from the last read. Requires `promotions:write`.\n *\n * `PUT /api/v1/campaigns/{campaignId}`\n */\n replace(\n request: OperationPath<operations[\"put_v1_campaigns_by_campaignid\"]> &\n OperationBody<operations[\"put_v1_campaigns_by_campaignid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_campaigns_by_campaignid\"]>\n > {\n const { campaignId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Act on Campaign\n *\n * Approve, start, end, resume, retry, or decide a proposed live change. Approve, run, resume, and approving a change must be called by the named approver. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/{campaignId}/actions`\n */\n actions(\n request: OperationPath<\n operations[\"post_v1_campaigns_by_campaignid_actions\"]\n > &\n OperationBody<operations[\"post_v1_campaigns_by_campaignid_actions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_campaigns_by_campaignid_actions\"]>\n > {\n const { campaignId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}/actions`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Archive Campaigns\n *\n * Archive campaigns, or restore archived campaigns by id or by the current archived list filters. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/archive`\n */\n archive(\n request: OperationBody<operations[\"post_v1_campaigns_archive\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns_archive\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns/archive\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Campaigns\n *\n * Permanently delete archived campaigns by explicit id or by archived list filters. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/delete`\n */\n delete(\n request: OperationBody<operations[\"post_v1_campaigns_delete\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns_delete\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns/delete\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Campaign Options\n *\n * List the organization members and connected stores a campaign plan can name. Use a member `id` for `ownerId` and `approverId`. Requires `promotions:write`.\n *\n * `GET /api/v1/campaigns/options`\n */\n getOptions(\n request: OperationQuery<operations[\"get_v1_campaigns_options\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_campaigns_options\"]>> {\n const { organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/campaigns/options\",\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CatalogClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Export Catalog Items\n *\n * Cursor-page the authenticated organization's product and variant catalog for pricing systems. Requires `catalog:read`.\n\nEach item includes product-family identity, SKU/UPC, cost, current, sale, compare-at, MAP, and MSRP prices, inventory, active promotion context, and exact marketplace identifiers. Set `format=csv` for a flat catalog-intake CSV shape.\n *\n * `GET /api/v1/catalog/items`\n */\n listItems(\n request: OperationQuery<operations[\"get_v1_catalog_items\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_catalog_items\"]>> {\n const { organizationId, updatedSince, cursor, limit, format } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/catalog/items\",\n query: { organizationId, updatedSince, cursor, limit, format },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CheckoutSessionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create Agentic Checkout Session\n *\n * Create a merchant-fulfilled checkout session, reserve inventory, and return rail-specific payment requirements. Requires an OAuth client token with `checkout:write`.\n *\n * `POST /api/v1/checkout-sessions`\n */\n create(\n request: OperationBody<operations[\"post_v1_checkout_sessions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_checkout_sessions\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/checkout-sessions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Agentic Checkout Session\n *\n * Fetch the current checkout session, cart items, totals, payment requirements, and linked order when completed.\n *\n * `GET /api/v1/checkout-sessions/{sessionId}`\n */\n get(\n request: OperationPath<\n operations[\"get_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"get_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Agentic Checkout Session\n *\n * Update cart/contact fields, recompute totals, and refresh inventory reservations before payment. Requires `checkout:write`.\n *\n * `PATCH /api/v1/checkout-sessions/{sessionId}`\n */\n update(\n request: OperationPath<\n operations[\"patch_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"patch_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"patch_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Replace Agentic Checkout Session Fields\n *\n * UCP-compatible update method for cart/contact fields. The current implementation applies provided fields and leaves omitted fields unchanged. Requires `checkout:write`.\n *\n * `PUT /api/v1/checkout-sessions/{sessionId}`\n */\n replace(\n request: OperationPath<\n operations[\"put_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"put_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"put_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel Agentic Checkout Session\n *\n * Cancel a ready-for-payment checkout session and release reserved inventory. This operation is exposed for UCP REST clients and requires `checkout:write`.\n *\n * `POST /api/v1/checkout-sessions/{sessionId}/cancel`\n */\n cancel(\n request: OperationPath<\n operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n OperationQuery<\n operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n Record<string, unknown>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/cancel`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Complete Agentic Checkout Session\n *\n * Settle the selected rail and create a native `agentic` order. Settlement failures return 402 and leave the session in `ready_for_payment`.\n *\n * `POST /api/v1/checkout-sessions/{sessionId}/complete`\n */\n complete(\n request: OperationPath<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationQuery<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationBody<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/complete`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CompareClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Compare Public Products\n *\n * Compare 2 to 10 public products side-by-side across price, ACO readiness, marketplace coverage, and inventory.\n *\n * `GET /api/v1/compare`\n */\n get(\n request: OperationQuery<operations[\"get_v1_compare\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_compare\"]>> {\n const { products, language } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/compare\",\n query: { products, language },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class DirectoryClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Public Merchants\n *\n * Discover merchants with public products available through OmniCommerce's public agent APIs.\n *\n * `GET /api/v1/directory`\n */\n list(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_directory\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/directory\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class EvaluateClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Evaluate SKU Readiness\n *\n * Score a persisted product or inline SKU payload for agentic commerce readiness, engine eligibility, and recommended fixes.\n *\n * `POST /api/v1/evaluate`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_evaluate\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/evaluate\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class FeedClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Merchant LLM Feed\n *\n * Return a plain-text, LLM-optimized merchant feed keyed by website domain.\n *\n * `GET /api/v1/feed/{domain}/llms.txt`\n */\n getLlmsTxt(\n request: OperationPath<operations[\"get_v1_feed_by_domain_llms_txt\"]> &\n OperationQuery<operations[\"get_v1_feed_by_domain_llms_txt\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_feed_by_domain_llms_txt\"]>\n > {\n const { domain, limit } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/feed/${encodePathParam(\"domain\", domain)}/llms.txt`,\n query: { limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ImagesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Generate Ghost Mannequin Image\n *\n * Remove the visible mannequin from a product photo and return the generated image URL. The source image must be an HTTP(S) URL; data URIs are rejected. Authenticate with an OmniCommerce API key that has the `catalog:enrich` scope.\n *\n * `POST /api/v1/images/ghost-mannequin`\n */\n ghostMannequin(\n request: OperationBody<operations[\"post_v1_images_ghost_mannequin\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_images_ghost_mannequin\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/images/ghost-mannequin\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class JobsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Developer Job Status\n *\n * Fetch shared async status for developer-platform operations, including product workflow jobs, bulk CSV import jobs, Look generation jobs, import jobs, enrichment jobs, and sync jobs.\n *\n * `GET /api/v1/jobs/{jobId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_jobs_by_jobid\"]> &\n OperationQuery<operations[\"get_v1_jobs_by_jobid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_jobs_by_jobid\"]>> {\n const { jobId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/jobs/${encodePathParam(\"jobId\", jobId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel Developer Job\n *\n * Request cancellation for a running or pending developer job.\n\nSupported jobs:\n\n- Product workflows returned by `POST /api/v1/products`\n\n- Bulk CSV imports returned by `POST /api/v1/products/bulk-import`\n\n- Look generation returned by `POST /api/v1/looks`\n\nCompleted or failed jobs cannot be cancelled and are returned with their current terminal status.\n *\n * `POST /api/v1/jobs/{jobId}/cancel`\n */\n cancel(\n request: OperationPath<operations[\"post_v1_jobs_by_jobid_cancel\"]> &\n OperationBody<operations[\"post_v1_jobs_by_jobid_cancel\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_jobs_by_jobid_cancel\"]>\n > {\n const { jobId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/jobs/${encodePathParam(\"jobId\", jobId)}/cancel`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Poll `GET /api/v1/jobs/{jobId}` until the nested job status is terminal.\n */\n wait(\n request: WaitForJobRequest,\n requestOptions?: WaitForJobOptions,\n ): Promise<unknown> {\n return waitForJob(this._http, request, requestOptions);\n }\n}\n\nexport class LooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Looks\n *\n * List AI-styled product Looks for the authenticated organization, newest first. Use query parameters for search, status filtering, and pagination.\n *\n * `GET /api/v1/looks`\n */\n list(\n request: OperationQuery<operations[\"get_v1_looks\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_looks\"]>> {\n const { q, status, limit, offset } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/looks\",\n query: { q, status, limit, offset },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Look\n *\n * Create a Look from existing catalog products and queue AI image generation for a fast preview. The response is asynchronous: poll `GET /api/v1/jobs/{jobId}?organizationId={organizationId}` until the `look_...` job completes, then fetch the generated Look with `GET /api/v1/looks/{lookId}`.\n *\n * `POST /api/v1/looks`\n */\n create(\n request: OperationBody<operations[\"post_v1_looks\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_looks\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/looks\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Look\n *\n * Fetch a single Look by ID, including the generated hero image URL and the shoppable product cards used in the Look.\n *\n * `GET /api/v1/looks/{lookId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_looks_by_lookid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_looks_by_lookid\"]>> {\n const { lookId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/looks/${encodePathParam(\"lookId\", lookId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MarketplacesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Connected Marketplaces\n *\n * List connected marketplace stores for the authenticated organization. Results are scoped to the API key organization unless `organizationId` is supplied for session-authenticated calls.\n *\n * `GET /api/v1/marketplaces/connected`\n */\n listConnected(\n request: OperationQuery<operations[\"get_v1_marketplaces_connected\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_marketplaces_connected\"]>\n > {\n const { organizationId, marketplace, country } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/marketplaces/connected\",\n query: { organizationId, marketplace, country },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MerchantsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Public Merchant Manifest\n *\n * Return machine-readable capability and endpoint metadata for a single public merchant.\n *\n * `GET /api/v1/merchants/{merchantId}/manifest`\n */\n getManifest(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_manifest\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_manifest\"]>\n > {\n const { merchantId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/manifest`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * List Public Merchant Products\n *\n * Browse a single merchant's public product feed with optional marketplace and localization filters.\n *\n * `GET /api/v1/merchants/{merchantId}/products`\n */\n listProducts(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_products\"]\n > &\n OperationQuery<operations[\"get_v1_merchants_by_merchantid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_products\"]>\n > {\n const { merchantId, platform, country, language, limit, offset } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/products`,\n query: { platform, country, language, limit, offset },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Search Within Public Merchant Catalog\n *\n * Search within a single merchant's public product feed using the same filter model as the cross-merchant search API.\n *\n * `GET /api/v1/merchants/{merchantId}/search`\n */\n search(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_search\"]\n > &\n OperationQuery<operations[\"get_v1_merchants_by_merchantid_search\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_search\"]>\n > {\n const {\n merchantId,\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/search`,\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MonitorClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Run AI Shelf Share Monitor\n *\n * Queue AI Shelf Share replay/monitoring for a product, query, or organization catalog.\n *\n * `POST /api/v1/monitor`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_monitor\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/monitor\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OauthClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Revoke Access Token\n *\n * Revoke an OAuth bearer access token using client_secret_post authentication.\n *\n * `POST /api/v1/oauth/revoke`\n */\n revoke(\n request: OperationBody<operations[\"post_v1_oauth_revoke\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_oauth_revoke\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/oauth/revoke\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Access Token\n *\n * Exchange client credentials for an access token using OAuth 2.0 client_credentials grant. Tokens are valid for 1 hour.\n *\n * `POST /api/v1/oauth/token`\n */\n token(\n request: OperationBody<operations[\"post_v1_oauth_token\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_oauth_token\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/oauth/token\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OrdersClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Orders\n *\n * List orders for the authenticated organization using the same filters, sorting, and pagination semantics as the workspace Orders listing page. Requires `orders:read`.\n *\n * `GET /api/v1/orders`\n */\n list(\n request: OperationQuery<operations[\"get_v1_orders\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_orders\"]>> {\n const {\n organizationId,\n q,\n status,\n marketplace,\n country,\n store,\n bundleType,\n sortBy,\n dateFrom,\n dateTo,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/orders\",\n query: {\n organizationId,\n q,\n status,\n marketplace,\n country,\n store,\n bundleType,\n sortBy,\n dateFrom,\n dateTo,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Order\n *\n * Create a native `agentic` order with line items. This operation uses the same upsert path as agentic checkout completion.\n\n### Authentication\n\nRequires `orders:write`.\n\n### Upsert behavior\n\n- Reusing an `externalOrderId` updates the existing order instead of creating a duplicate.\n- For one-row-per-SKU integrations, use the marketplace order ID as `externalOrderId` and the row ID as `items[].externalOrderItemId`.\n- When `totalAmount` is omitted, OmniCommerce recomputes it from all order lines after the upsert.\n\n### Pricing and catalog defaults\n\n- Each line can provide `price`, `unitPrice`, `paidPrice`, and `costPrice`.\n- When `productId` is provided, missing price or currency values may resolve from the product catalog.\n- An explicit `costPrice` updates `product_data.costPrice` and is snaps\n *\n * `POST /api/v1/orders`\n */\n create(\n request: OperationBody<operations[\"post_v1_orders\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_orders\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/orders\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Order\n *\n * Get one order by its OmniCommerce UUID for the authenticated organization.\n\n### Authentication\n\nRequires `orders:read`.\n\n### Response\n\nThe organization-scoped detail includes:\n\n- Line items and normalized status\n- Buyer and contact fields\n- Shipping and billing addresses\n- Return context\n- Finance breakdown\n- Settlement projection, when available\n\nOrders outside the authenticated organization are not exposed and return `404 Not Found`.\n *\n * `GET /api/v1/orders/{orderId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_orders_by_orderid\"]> &\n OperationQuery<operations[\"get_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_orders_by_orderid\"]>> {\n const { orderId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Order\n *\n * Update a native **agentic** order.\n\n### Authentication\n\nRequires `orders:write`.\n\n### Supported changes\n\n- External order identifiers, status, currency, and country\n- `totalAmount`, `shippingFee`, and `discountAmount`\n- Metadata and `orderCreatedAt`\n- Line identifiers, prices, COGS, currency, status, and quantity\n\n### Line upserts\n\n- A matching `externalOrderItemId` updates the existing line.\n- A new `externalOrderItemId` with `productName` and `quantity` appends a line.\n- When lines change and `totalAmount` is omitted, OmniCommerce recomputes the total from all lines.\n\n### Country resolution\n\nWhen `country` is omitted and the stored country is empty, OmniCommerce may derive it from an unambiguous resulting order currency.\n\n### Restrictions and events\n\nMarketplace-owned orders from Shopee,\n *\n * `PATCH /api/v1/orders/{orderId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_orders_by_orderid\"]> &\n OperationBody<operations[\"patch_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_orders_by_orderid\"]>\n > {\n const { orderId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OrganizationsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create Organization\n *\n * Create a new organization for the signed-in user. This endpoint uses first-party session authentication because API keys are scoped to an existing organization.\n *\n * `POST /api/v1/organizations`\n */\n create(\n request: OperationBody<operations[\"post_v1_organizations\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_organizations\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/organizations\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class PriceBooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Price Book Rules\n *\n * List marketplace price book rules for the authenticated organization. A rule applies either a buyer formula or a markup percent to the catalog price at publish time, by platform and optional store/country. Requires `price_books:read`.\n *\n * `GET /api/v1/price-books`\n */\n list(\n request: OperationQuery<operations[\"get_v1_price_books\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_price_books\"]>> {\n const { organizationId, platform, enabledOnly } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/price-books\",\n query: { organizationId, platform, enabledOnly },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Price Book Rule\n *\n * Create a marketplace price book rule for a platform (optional store and country). Does not change Omni product prices. Requires `price_books:write`.\n\n`expression` is the buyer formula and replaces markup percent. `price` in that formula is the catalog price, not cost price. Without an expression, `marginValue` is the markup percent.\n *\n * `POST /api/v1/price-books`\n */\n create(\n request: OperationBody<operations[\"post_v1_price_books\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_price_books\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/price-books\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Price Book Rule\n *\n * Delete a marketplace price book rule by ID. Requires `price_books:write`.\n *\n * `DELETE /api/v1/price-books/{ruleId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"delete_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Price Book Rule\n *\n * Fetch one marketplace price book rule by ID. Requires `price_books:read`.\n *\n * `GET /api/v1/price-books/{ruleId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"get_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Price Book Rule\n *\n * Update store, country, markup, buyer formula, rounding, currency, or enabled flag for a price book rule. Platform cannot be changed; create a new rule instead. Requires `price_books:write`.\n *\n * `PATCH /api/v1/price-books/{ruleId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"patch_v1_price_books_by_ruleid\"]> &\n OperationBody<operations[\"patch_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Preview Channel List Price\n *\n * Compute channel list price from a canonical list price using matching enabled rules (or a forced ruleId). Requires `price_books:read`.\n *\n * `POST /api/v1/price-books/preview`\n */\n preview(\n request: OperationBody<operations[\"post_v1_price_books_preview\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_price_books_preview\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/price-books/preview\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ProductCategoriesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Recommend Marketplace Product Categories\n *\n * Suggest best-fit marketplace categories and category attribute values for a persisted product using semantic taxonomy search. Authenticate with an OmniCommerce API key as `Authorization: Bearer omni_sk_...`.\n *\n * `POST /api/v1/manage-product-category/recommend`\n */\n recommend(\n request: OperationBody<\n operations[\"post_v1_manage_product_category_recommend\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_manage_product_category_recommend\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/manage-product-category/recommend\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ProductsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Products\n *\n * List products for the authenticated organization with optional filters and pagination. Authenticate with an API key or OAuth bearer token. The organization is taken from that credential; do not send `organizationId`.\n\nRows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.\n *\n * `GET /api/v1/products`\n */\n list(\n request: OperationQuery<operations[\"get_v1_products\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_products\"]>> {\n const {\n status,\n marketplace,\n country,\n q,\n sku,\n minPrice,\n maxPrice,\n sortBy,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/products\",\n query: {\n status,\n marketplace,\n country,\n q,\n sku,\n minPrice,\n maxPrice,\n sortBy,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Product\n *\n * Queue a single-product create workflow for the authenticated organization. Product enrichment is disabled by default; set `workflow.enrich` to `true` to enable it.\n\n### Request behavior\n\n- `product` contains developer-supplied fields. Unknown fields are preserved as enrichment context.\n- SKU is the unique product upsert identifier.\n- Externally hosted HTTP(S) images are copied to managed R2 storage.\n- `targetMarketplaces` and `targetCountries` are optional; enrichment can run without publishing targets.\n\n### Asynchronous result\n\nThe API returns a job ID. Poll `GET /api/v1/jobs/{jobId}` for completion. Product creation, image ingestion, enrichment, and taxonomy assignment run in the same product workflow job. ACO generation runs separately when enabled; poll `result.geoJobId` for its comple\n *\n * `POST /api/v1/products`\n */\n create(\n request: OperationBody<operations[\"post_v1_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Product\n *\n * Soft-delete a product by ID. The product will be marked as deleted but not permanently removed. Call again on a deleted product to permanently delete it. Supports API key Bearer token authentication.\n *\n * `DELETE /api/v1/products/{productId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_products_by_productid\"]>\n > {\n const { productId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Product\n *\n * Retrieve a single product by ID for the authenticated organization.\n\nAuthenticate with an API key using Bearer token authentication.\n\nWhen available, the response includes generated Agentic Commerce Optimization (ACO) data:\n\n- Profile metadata and FAQs\n- Localization content and cultural notes\n- Intent queries and signals\n- Sources and claims\n *\n * `GET /api/v1/products/{productId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_products_by_productid\"]>\n > {\n const { productId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product\n *\n * Update an existing product by ID. Only provided fields will be updated. Supports API key Bearer token authentication.\n *\n * `PATCH /api/v1/products/{productId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_products_by_productid\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Cost\n *\n * Set catalog cost for one simple product or variant UUID. Cost is Omni-only and never syncs to marketplaces. Prefer `POST /api/v1/products/cost` for Windmill or other bulk jobs.\n\nRequires `catalog:write`. When `costPriceCurrency` differs from the product selling currency and `costPriceFxRate` is omitted, Omni stores an FX quote on the product.\n *\n * `PATCH /api/v1/products/{productId}/cost`\n */\n updateCost(\n request: OperationPath<operations[\"patch_v1_products_by_productid_cost\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid_cost\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_cost\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/cost`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delist Product\n *\n * Queue delist for one product on the marketplaces you name. `marketplaces` accepts one or more of shopee, lazada, tiktok, shopify, whatsapp, zalora, amazon, and ebay. Each named marketplace must already have a listing; other channels are left untouched. Omit `marketplaces` to delist every existing listing. This does not delete the OmniCommerce product.\n\nPoll GET /api/v1/jobs/{jobId} until data.status is succeeded, partial, or failed. Accepted means the job was queued, not that the marketplace has removed the listing.\n *\n * `POST /api/v1/products/{productId}/delist`\n */\n delist(\n request: OperationPath<operations[\"post_v1_products_by_productid_delist\"]> &\n OperationBody<operations[\"post_v1_products_by_productid_delist\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_by_productid_delist\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/delist`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Inventory\n *\n * Update canonical on-hand inventory for a simple product or variant UUID. Multi-variant parent products must be updated through their variant IDs. A successful quantity change emits `product.inventory.changed` to matching developer webhook subscriptions.\n\n### Authorization\n\nRequires an API credential with `catalog:write`. OmniCommerce derives `organizationId` from that credential; the request body cannot select or override an organization. ERP-managed and multi-source inventory keeps its existing ownership protections.\n\n### Marketplace sync\n\nThe update is Omni-only by default. Set `syncToMarketplaces` to `true` to create one durable inventory outbox job per marketplace account. Omit `targets` to sync every enabled, published account for the product, or provide exact `{ platform, accountId }\n *\n * `PATCH /api/v1/products/{productId}/inventory`\n */\n updateInventory(\n request: OperationPath<\n operations[\"patch_v1_products_by_productid_inventory\"]\n > &\n OperationBody<operations[\"patch_v1_products_by_productid_inventory\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_inventory\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/inventory`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Price\n *\n * Update the canonical catalog price for a simple product or variant UUID. Multi-variant parent products must be updated through their variant IDs. A successful change emits `product.price.changed` to matching developer webhook subscriptions.\n\n### Authorization\n\nRequires an API credential with `catalog:write`. OmniCommerce derives `organizationId` from that credential; the request body cannot select or override an organization.\n\n### Marketplace sync\n\nThe update is Omni-only by default. Set `syncToMarketplaces` to `true` to queue durable marketplace work. Omit `targets` to sync every enabled, published account for the product, or provide exact `{ platform, accountId }` targets. Every explicit target is validated before the catalog changes. The response contains pollable job IDs and immediate\n *\n * `PATCH /api/v1/products/{productId}/price`\n */\n updatePrice(\n request: OperationPath<operations[\"patch_v1_products_by_productid_price\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid_price\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_price\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/price`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Publish Product\n *\n * Queue marketplace publish jobs for a product by productId. OmniCommerce publishes to the marketplaces already enabled on the product and uses the product's store selection or a single/default connected store.\n *\n * `POST /api/v1/products/{productId}/publish`\n */\n publish(\n request: OperationPath<\n operations[\"post_v1_products_by_productid_publish\"]\n > &\n OperationBody<operations[\"post_v1_products_by_productid_publish\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_by_productid_publish\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/publish`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Bulk Import Products from JSON or CSV\n *\n * Queue a bulk product import for the authenticated organization.\n\n### Input options\n\n- Upload a CSV (2 MiB) or JSON products file (8 MiB) using `multipart/form-data`.\n- Send JSON with a `products` array of 1–1,000 flat product objects (8 MiB request maximum).\n- Send JSON with inline `csvText`.\n- Send JSON referencing a stored `documentId`.\n\n### Asynchronous result\n\nThe API creates import rows, then queues draft creation and AI Review through Inngest. Completed import jobs expose `reviewBatchIds`, `reviewUrls`, and `reviewWarnings`; generated changes require Review approval. Poll the returned `bulk_...` job with `GET /api/v1/jobs/{jobId}`.\n\nCancel an in-flight import with `POST /api/v1/jobs/{jobId}/cancel`.\n *\n * `POST /api/v1/products/bulk-import`\n */\n bulkImport(\n request: OperationBody<operations[\"post_v1_products_bulk_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_bulk_import\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/bulk-import\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Batch Update Product Cost\n *\n * Set catalog cost price and currency for one or more products. Cost is Omni-only and never syncs to marketplaces.\n\nEach update targets `productId` or `sku` (Omni `products.sku`). Provide `costPrice` with `costPriceCurrency` when the source amount is not in the product selling currency. If `costPriceFxRate` is omitted and the currencies differ, Omni quotes FX via the canonical FX service and stores the rate on the product.\n\n### Authorization\n\nRequires `catalog:write`. `organizationId` comes from the credential; the body cannot select an organization.\n\n### Limits\n\n`updates` is required, 1–200 items. Duplicate product IDs fail after the first occurrence. `costPrice: null` clears cost and FX.\n *\n * `POST /api/v1/products/cost`\n */\n updateCosts(\n request: OperationBody<operations[\"post_v1_products_cost\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products_cost\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/cost\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Queue Product Enrichment\n *\n * Requires catalog:enrich. Queue content enrichment for 1–1,000 existing Omni product IDs across all supported marketplaces. Returns 202 after queue submission without awaiting AI completion or publishing.\n\n### Enrichment options\n\nFields, instructions and auto-apply settings use the canonical enrichment service. Exclude name from selectedFields to preserve titles. Weight and dimensions are always included; image and taxonomy workflows are not queued here.\n\nautoApplyHighConfidence defaults to false. When enabled, the supplied threshold (0.62–1) or organization threshold applies; low-confidence or blocked proposals remain in Review. AI usage is billed to the authenticated organization. Open links.review to inspect results.\n *\n * `POST /api/v1/products/enrich`\n */\n enrich(\n request: OperationBody<operations[\"post_v1_products_enrich\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products_enrich\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/enrich\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class PromotionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Promotions\n *\n * List central promotions for the authenticated organization with filters and offset pagination matching the workspace Promotions listing. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions`\n */\n list(\n request: OperationQuery<operations[\"get_v1_promotions\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_promotions\"]>> {\n const {\n organizationId,\n q,\n status,\n marketplace,\n store,\n sortBy,\n sortDir,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/promotions\",\n query: {\n organizationId,\n q,\n status,\n marketplace,\n store,\n sortBy,\n sortDir,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Promotion\n *\n * Create a central promotion targeting connected stores. Requires `promotions:write`. Fixed-amount discounts resolve currency from the selected store countries.\n *\n * `POST /api/v1/promotions`\n */\n create(\n request: OperationBody<operations[\"post_v1_promotions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_promotions\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/promotions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Promotion\n *\n * Delete a promotion by ID. Requires `promotions:write`.\n *\n * `DELETE /api/v1/promotions/{promotionId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"delete_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Promotion\n *\n * Fetch one promotion by ID, including effective status. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions/{promotionId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"get_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Promotion\n *\n * Update promotion fields (name, discount, schedule, status, stores). Requires `promotions:write`.\n *\n * `PATCH /api/v1/promotions/{promotionId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"patch_v1_promotions_by_promotionid\"]> &\n OperationBody<operations[\"patch_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Unassign Products from Promotion\n *\n * Remove product assignments and queue marketplace teardown. Requires `promotions:write`.\n *\n * `DELETE /api/v1/promotions/{promotionId}/products`\n */\n removeProducts(\n request: OperationPath<\n operations[\"delete_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<\n operations[\"delete_v1_promotions_by_promotionid_products\"]\n > &\n OperationBody<operations[\"delete_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * List Promotion Assignments\n *\n * List products assigned to a promotion. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions/{promotionId}/products`\n */\n listProducts(\n request: OperationPath<\n operations[\"get_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<operations[\"get_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Assign Products to Promotion\n *\n * Assign one or more products to a promotion. Creates pending marketplace sync rows; call sync after assign. Requires `promotions:write`.\n *\n * `POST /api/v1/promotions/{promotionId}/products`\n */\n addProducts(\n request: OperationPath<\n operations[\"post_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<operations[\"post_v1_promotions_by_promotionid_products\"]> &\n OperationBody<operations[\"post_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Sync Promotion to Marketplaces\n *\n * Queue marketplace push for assigned products (Shopee promotion, Lazada Store Flash Sale/voucher/Flexicombo, TikTok activity, or Shopify discount). Requires `promotions:write`.\n *\n * `POST /api/v1/promotions/{promotionId}/sync`\n */\n sync(\n request: OperationPath<\n operations[\"post_v1_promotions_by_promotionid_sync\"]\n > &\n OperationQuery<operations[\"post_v1_promotions_by_promotionid_sync\"]> &\n OperationBody<operations[\"post_v1_promotions_by_promotionid_sync\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_promotions_by_promotionid_sync\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/sync`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ReturnsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Returns\n *\n * List normalized, PII-free marketplace returns with SKU-level lines. Requires `returns:read`. Use updatedSince and cursor for bootstrap/recovery alongside return webhooks.\n *\n * `GET /api/v1/returns`\n */\n list(\n request: OperationQuery<operations[\"get_v1_returns\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_returns\"]>> {\n const {\n organizationId,\n marketplace,\n accountId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/returns\",\n query: {\n organizationId,\n marketplace,\n accountId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Return\n *\n * Get one normalized, PII-free return by OmniCommerce UUID. Requires `returns:read`; another organization's return returns 404.\n *\n * `GET /api/v1/returns/{returnId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_returns_by_returnid\"]> &\n OperationQuery<operations[\"get_v1_returns_by_returnid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_returns_by_returnid\"]>\n > {\n const { returnId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/returns/${encodePathParam(\"returnId\", returnId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SearchClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Search Public Merchant Products\n *\n * Search across all public merchants and products with optional merchant, pricing, stock, marketplace, and localization filters.\n *\n * `GET /api/v1/search`\n */\n list(\n request: OperationQuery<operations[\"get_v1_search\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_search\"]>> {\n const {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/search\",\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Search Public Merchant Products\n *\n * Search across all public merchants and products with optional merchant, pricing, stock, marketplace, and localization filters.\n *\n * `POST /api/v1/search`\n */\n query(\n request: OperationQuery<operations[\"post_v1_search\"]> &\n Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_search\"]>> {\n const {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n ...body\n } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/search\",\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SettlementsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Settlements\n *\n * List the latest normalized order-settlement snapshots created by finance ingestion. Requires `settlements:read`. Use updatedSince and cursor for recovery; money remains partitioned by currency.\n *\n * `GET /api/v1/settlements`\n */\n list(\n request: OperationQuery<operations[\"get_v1_settlements\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_settlements\"]>> {\n const {\n organizationId,\n marketplace,\n accountId,\n orderId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/settlements\",\n query: {\n organizationId,\n marketplace,\n accountId,\n orderId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Apply Settlements\n *\n * Apply marketplace-agnostic settlement lines to existing orders.\n\n### Authentication\n\nRequires `orders:write`.\n\n### What this endpoint does\n\n- Stores every submitted line as marketplace financial evidence.\n- Projects **settled** rows into the order finance ledger.\n- Keeps pending, reversed, and voided rows as evidence only, removing any earlier developer API ledger projection for the same `sourceEventKey`.\n- Recomputes Payment received when a marketplace-specific formula exists. Zalora is currently supported.\n\n### Order matching\n\nOrders are matched by organization, marketplace platform, and exact `externalOrderId`. Include `externalOrderItemId` when an order has multiple lines.\n\n- `accountId` is an exact store match, never a wildcard.\n- `marketplace=zalora` can match Zalora Seller Center or\n *\n * `POST /api/v1/settlements`\n */\n create(\n request: OperationBody<operations[\"post_v1_settlements\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_settlements\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/settlements\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Settlement\n *\n * Get the latest normalized settlement snapshot by stable settlement ID. Requires `settlements:read`.\n *\n * `GET /api/v1/settlements/{settlementId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_settlements_by_settlementid\"]> &\n OperationQuery<operations[\"get_v1_settlements_by_settlementid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_settlements_by_settlementid\"]>\n > {\n const { settlementId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/settlements/${encodePathParam(\"settlementId\", settlementId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SyncClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Sync Product Commercial Fields\n *\n * Update price, sale price, or stock quantity in OmniCommerce and queue marketplace sync workers where applicable.\n *\n * `POST /api/v1/sync`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_sync\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/sync\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ThreadsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Thread Status\n *\n * Poll an AOP execution started by `POST /api/v1/aop/{aopId}/execute`. Requires `aops:read`. Status values are `running`, `completed`, or `failed`.\n *\n * `GET /api/v1/threads/{thread_id}/status`\n */\n getStatus(\n request: OperationPath<operations[\"get_v1_threads_by_thread_id_status\"]> &\n OperationQuery<operations[\"get_v1_threads_by_thread_id_status\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_threads_by_thread_id_status\"]>\n > {\n const {\n thread_id: threadId,\n include_messages,\n organizationId,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/threads/${encodePathParam(\"thread_id\", threadId)}/status`,\n query: { include_messages, organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpCheckoutSessionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create UCP Checkout Session\n *\n * Create a UCP shopping checkout session against the authenticated organization. The facade translates UCP line items to native agentic checkout sessions, reserves inventory, and returns a UCP checkout resource. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions`\n */\n create(\n request: OperationBody<operations[\"post_ucp_v1_checkout_sessions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_ucp_v1_checkout_sessions\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/ucp/v1/checkout-sessions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get UCP Checkout Session\n *\n * Fetch the current UCP checkout resource for a native agentic checkout session. Requires `UCP-Agent` and bearer authentication.\n *\n * `GET /ucp/v1/checkout-sessions/{sessionId}`\n */\n get(\n request: OperationPath<\n operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update UCP Checkout Session\n *\n * Update UCP cart, buyer, fulfillment, or payment rail fields. Provided fields are applied to the native checkout session and inventory reservations are refreshed when line items change. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `PATCH /ucp/v1/checkout-sessions/{sessionId}`\n */\n update(\n request: OperationPath<\n operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<\n operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationBody<operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Replace UCP Checkout Session Fields\n *\n * UCP-compatible update method. Current behavior matches PATCH: provided fields are applied and omitted fields remain unchanged. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `PUT /ucp/v1/checkout-sessions/{sessionId}`\n */\n replace(\n request: OperationPath<\n operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel UCP Checkout Session\n *\n * Cancel a ready-for-payment UCP checkout session and release reserved inventory. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions/{sessionId}/cancel`\n */\n cancel(\n request: OperationPath<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n OperationQuery<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n Record<string, unknown>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/cancel`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Complete UCP Checkout Session\n *\n * Settle the selected rail and create a native `agentic` order. Settlement failures return HTTP 402 with the checkout still ready for payment. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions/{sessionId}/complete`\n */\n complete(\n request: OperationPath<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationQuery<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationBody<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n >\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/complete`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpOrdersClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get UCP Order\n *\n * Fetch the native OmniCommerce order created by a completed UCP checkout session. Only `agentic` orders are exposed through this facade.\n *\n * `GET /ucp/v1/orders/{orderId}`\n */\n get(\n request: OperationPath<operations[\"get_ucp_v1_orders_by_orderid\"]> &\n OperationQuery<operations[\"get_ucp_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_ucp_v1_orders_by_orderid\"]>\n > {\n const { orderId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/ucp/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpClient {\n readonly checkoutSessions: UcpCheckoutSessionsClient;\n readonly orders: UcpOrdersClient;\n constructor(protected readonly _http: OmniHttp) {\n this.checkoutSessions = new UcpCheckoutSessionsClient(this._http);\n this.orders = new UcpOrdersClient(this._http);\n }\n}\n\nexport class WebhookEventsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Webhook Events\n *\n * Pull immutable webhook events for recovery or scheduled reconciliation. Requires `webhooks:manage`. Results are organization-scoped and ordered oldest first; continue with the opaque cursor. This is the pull fallback for a receiver that missed push deliveries.\n *\n * `GET /api/v1/webhook-events`\n */\n list(\n request: OperationQuery<operations[\"get_v1_webhook_events\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_webhook_events\"]>> {\n const { organizationId, eventType, occurredSince, cursor, limit } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/webhook-events\",\n query: { organizationId, eventType, occurredSince, cursor, limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class WebhooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Developer Webhooks\n *\n * List configured developer webhook subscriptions for the authenticated organization.\n *\n * `GET /api/v1/webhooks`\n */\n list(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_webhooks\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/webhooks\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Developer Webhook\n *\n * Create a developer webhook subscription for the authenticated organization. The signing secret is returned only once.\n *\n * `POST /api/v1/webhooks`\n */\n create(\n request: OperationBody<operations[\"post_v1_webhooks\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_webhooks\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/webhooks\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ZaloraClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Selected Zalora Import Status\n *\n * Requires catalog:read. Follow the unchanged links.job URL returned by POST. Reads current state once without waiting.\n\n### Completion\n\ndata.status is pending, running, success, or error; data.terminal and data.success identify completion. data.productIds contains mapped Omni IDs for the supplied product sets. Failed imports remain explicit, including missingExternalIds. The top-level completed status describes this status request, not the import.\n\nKeep the original target IDs: the status lookup resolves those targets and does not prove that a modified selection was part of this job.\n *\n * `GET /api/v1/zalora/import`\n */\n getImport(\n request: OperationQuery<operations[\"get_v1_zalora_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_zalora_import\"]>> {\n const { organizationId, jobId, storeId, productSetIds } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/zalora/import\",\n query: { organizationId, jobId, storeId, productSetIds },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Import Selected Zalora Products\n *\n * Requires catalog:write. Queue an exact import of 1–25 Zalora productSetIds from a connected store. Omit storeId only when one store or one default store is unambiguous.\n\nReturns 202 with links.job for optional status checks and retrieval of Omni product IDs. Only one import may run per store at a time. This endpoint does not invoke an AOP, enrich products, or publish listings.\n *\n * `POST /api/v1/zalora/import`\n */\n importProducts(\n request: OperationBody<operations[\"post_v1_zalora_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_zalora_import\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/zalora/import\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OmniGeneratedClient {\n readonly agents: AgentsClient;\n readonly aop: AopClient;\n readonly api: ApiClient;\n readonly campaigns: CampaignsClient;\n readonly catalog: CatalogClient;\n readonly checkoutSessions: CheckoutSessionsClient;\n readonly compare: CompareClient;\n readonly directory: DirectoryClient;\n readonly evaluate: EvaluateClient;\n readonly feed: FeedClient;\n readonly images: ImagesClient;\n readonly jobs: JobsClient;\n readonly looks: LooksClient;\n readonly marketplaces: MarketplacesClient;\n readonly merchants: MerchantsClient;\n readonly monitor: MonitorClient;\n readonly oauth: OauthClient;\n readonly orders: OrdersClient;\n readonly organizations: OrganizationsClient;\n readonly priceBooks: PriceBooksClient;\n readonly productCategories: ProductCategoriesClient;\n readonly products: ProductsClient;\n readonly promotions: PromotionsClient;\n readonly returns: ReturnsClient;\n readonly search: SearchClient;\n readonly settlements: SettlementsClient;\n readonly sync: SyncClient;\n readonly threads: ThreadsClient;\n readonly ucp: UcpClient;\n readonly webhookEvents: WebhookEventsClient;\n readonly webhooks: WebhooksClient;\n readonly zalora: ZaloraClient;\n constructor(protected readonly _http: OmniHttp) {\n this.agents = new AgentsClient(this._http);\n this.aop = new AopClient(this._http);\n this.api = new ApiClient(this._http);\n this.campaigns = new CampaignsClient(this._http);\n this.catalog = new CatalogClient(this._http);\n this.checkoutSessions = new CheckoutSessionsClient(this._http);\n this.compare = new CompareClient(this._http);\n this.directory = new DirectoryClient(this._http);\n this.evaluate = new EvaluateClient(this._http);\n this.feed = new FeedClient(this._http);\n this.images = new ImagesClient(this._http);\n this.jobs = new JobsClient(this._http);\n this.looks = new LooksClient(this._http);\n this.marketplaces = new MarketplacesClient(this._http);\n this.merchants = new MerchantsClient(this._http);\n this.monitor = new MonitorClient(this._http);\n this.oauth = new OauthClient(this._http);\n this.orders = new OrdersClient(this._http);\n this.organizations = new OrganizationsClient(this._http);\n this.priceBooks = new PriceBooksClient(this._http);\n this.productCategories = new ProductCategoriesClient(this._http);\n this.products = new ProductsClient(this._http);\n this.promotions = new PromotionsClient(this._http);\n this.returns = new ReturnsClient(this._http);\n this.search = new SearchClient(this._http);\n this.settlements = new SettlementsClient(this._http);\n this.sync = new SyncClient(this._http);\n this.threads = new ThreadsClient(this._http);\n this.ucp = new UcpClient(this._http);\n this.webhookEvents = new WebhookEventsClient(this._http);\n this.webhooks = new WebhooksClient(this._http);\n this.zalora = new ZaloraClient(this._http);\n }\n}\n\nexport type OmniResources = {\n agents: AgentsClient;\n aop: AopClient;\n api: ApiClient;\n campaigns: CampaignsClient;\n catalog: CatalogClient;\n checkoutSessions: CheckoutSessionsClient;\n compare: CompareClient;\n directory: DirectoryClient;\n evaluate: EvaluateClient;\n feed: FeedClient;\n images: ImagesClient;\n jobs: JobsClient;\n looks: LooksClient;\n marketplaces: MarketplacesClient;\n merchants: MerchantsClient;\n monitor: MonitorClient;\n oauth: OauthClient;\n orders: OrdersClient;\n organizations: OrganizationsClient;\n priceBooks: PriceBooksClient;\n productCategories: ProductCategoriesClient;\n products: ProductsClient;\n promotions: PromotionsClient;\n returns: ReturnsClient;\n search: SearchClient;\n settlements: SettlementsClient;\n sync: SyncClient;\n threads: ThreadsClient;\n ucp: UcpClient;\n webhookEvents: WebhookEventsClient;\n webhooks: WebhooksClient;\n zalora: ZaloraClient;\n};\n","import {\n normalizeClientOptions,\n type BaseClientOptions,\n type BaseRequestOptions,\n} from \"./BaseClient\";\nimport { OmniHttp, type OmniRequestInit } from \"./core/fetcher\";\nimport type { HttpResponsePromise } from \"./core/http-response-promise\";\nimport { OmniGeneratedClient } from \"./generated/resources\";\n\nexport declare namespace OmniClient {\n type Options = BaseClientOptions;\n type RequestOptions = BaseRequestOptions;\n}\n\nexport class OmniClient extends OmniGeneratedClient {\n constructor(options: OmniClient.Options = {}) {\n super(new OmniHttp(normalizeClientOptions(options)));\n }\n\n request<T>(init: OmniRequestInit): HttpResponsePromise<T> {\n return this._http.request(init);\n }\n}\n","const encoder = new TextEncoder();\n\nexport const WEBHOOK_SIGNATURE_HEADER = \"x-omni-signature\";\nexport const WEBHOOK_TIMESTAMP_HEADER = \"x-omni-timestamp\";\nexport const WEBHOOK_EVENT_ID_HEADER = \"x-omni-event-id\";\nexport const WEBHOOK_EVENT_TYPE_HEADER = \"x-omni-event-type\";\n\nexport type WebhookHeaders = {\n \"x-omni-signature\"?: string | null;\n \"x-omni-timestamp\"?: string | null;\n \"x-omni-event-id\"?: string | null;\n \"x-omni-event-type\"?: string | null;\n} & Record<string, string | string[] | null | undefined>;\n\nexport type ConstructedWebhookEvent = {\n eventId?: string;\n eventType?: string;\n timestamp: number;\n payload: unknown;\n rawBody: string;\n};\n\nfunction headerValue(\n headers: WebhookHeaders | Headers,\n name: string,\n): string | undefined {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers) {\n return headers.get(name) ?? headers.get(name.toLowerCase()) ?? undefined;\n }\n const record = headers as WebhookHeaders;\n const direct = record[name] ?? record[name.toLowerCase()];\n if (Array.isArray(direct)) return direct[0];\n return direct ?? undefined;\n}\n\nfunction toHex(bytes: ArrayBuffer): string {\n return [...new Uint8Array(bytes)]\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nfunction timingSafeEqual(left: string, right: string): boolean {\n if (left.length !== right.length) return false;\n let mismatch = 0;\n for (let i = 0; i < left.length; i++) {\n mismatch |= left.charCodeAt(i) ^ right.charCodeAt(i);\n }\n return mismatch === 0;\n}\n\nexport async function signWebhookPayload(input: {\n secret: string;\n timestamp: number;\n payload: string;\n}): Promise<string> {\n const key = await crypto.subtle.importKey(\n \"raw\",\n encoder.encode(input.secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"],\n );\n const signature = await crypto.subtle.sign(\n \"HMAC\",\n key,\n encoder.encode(`${input.timestamp}.${input.payload}`),\n );\n return toHex(signature);\n}\n\nexport async function verifyWebhookSignature(input: {\n secret: string;\n timestamp: number;\n payload: string;\n signature: string;\n}): Promise<boolean> {\n const expected = await signWebhookPayload(input);\n return timingSafeEqual(expected.toLowerCase(), input.signature.toLowerCase());\n}\n\nexport async function constructEvent(\n payload: string | Uint8Array,\n headers: WebhookHeaders | Headers,\n secret: string,\n options?: { toleranceInSeconds?: number },\n): Promise<ConstructedWebhookEvent> {\n const rawBody =\n typeof payload === \"string\" ? payload : new TextDecoder().decode(payload);\n const signature = headerValue(headers, WEBHOOK_SIGNATURE_HEADER);\n const timestampRaw = headerValue(headers, WEBHOOK_TIMESTAMP_HEADER);\n if (!signature || !timestampRaw) {\n throw new Error(\n \"Webhook signature verification failed: missing X-Omni-Signature or X-Omni-Timestamp.\",\n );\n }\n const timestamp = Number(timestampRaw);\n if (!Number.isFinite(timestamp)) {\n throw new Error(\n \"Webhook signature verification failed: invalid timestamp.\",\n );\n }\n const tolerance = options?.toleranceInSeconds ?? 300;\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - timestamp) > tolerance) {\n throw new Error(\n \"Webhook signature verification failed: timestamp outside tolerance.\",\n );\n }\n const valid = await verifyWebhookSignature({\n secret,\n timestamp,\n payload: rawBody,\n signature,\n });\n if (!valid) {\n throw new Error(\n \"Webhook signature verification failed: invalid signature.\",\n );\n }\n let parsed: unknown = rawBody;\n try {\n parsed = JSON.parse(rawBody);\n } catch {\n throw new Error(\"Webhook signature verification failed: body is not JSON.\");\n }\n return {\n eventId: headerValue(headers, WEBHOOK_EVENT_ID_HEADER),\n eventType: headerValue(headers, WEBHOOK_EVENT_TYPE_HEADER),\n timestamp,\n payload: parsed,\n rawBody,\n };\n}\n","export type {\n FlattenedRequest,\n OperationBody,\n OperationPath,\n OperationQuery,\n SuccessData,\n} from \"../types\";\nexport type { operations, paths, components } from \"../generated/openapi\";\nexport {\n OmniGeneratedClient,\n type OmniResources,\n} from \"../generated/resources\";\nexport type {\n LookCreatedWebhookEvent,\n LookDeletedWebhookEvent,\n OrderCreatedWebhookEvent,\n OrderDeletedWebhookEvent,\n OrderStatusChangedWebhookEvent,\n OrderUpdatedWebhookEvent,\n ProductCreatedWebhookEvent,\n ProductDeletedWebhookEvent,\n ProductEnrichmentCompletedWebhookEvent,\n ProductEnrichmentStartedWebhookEvent,\n ProductInventoryChangedWebhookEvent,\n ProductPriceChangedWebhookEvent,\n ProductUpdatedWebhookEvent,\n ReturnCreatedWebhookEvent,\n ReturnStatusChangedWebhookEvent,\n ReturnUpdatedWebhookEvent,\n SettlementCreatedWebhookEvent,\n SettlementStatusChangedWebhookEvent,\n SettlementUpdatedWebhookEvent,\n} from \"./webhook-events\";\n"]}
1
+ {"version":3,"sources":["../src/BaseClient.ts","../src/version.ts","../src/environments.ts","../src/errors/OmniError.ts","../src/errors/OmniTimeoutError.ts","../src/errors/status.ts","../src/core/supplier.ts","../src/core/query.ts","../src/core/http-response-promise.ts","../src/core/fetcher.ts","../src/core/path.ts","../src/jobs.ts","../src/generated/resources.ts","../src/Client.ts","../src/webhooks.ts","../src/api/index.ts"],"names":["text"],"mappings":";;;;;;;AAoDO,SAAS,sBAAA,CACd,OAAA,GAA6B,EAAC,EACL;AACzB,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,KAAA,IAAS,UAAA,CAAW,KAAA;AAC9C,EAAA,IAAI,OAAO,cAAc,UAAA,EAAY;AACnC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,aAAa,OAAA,CAAQ,WAAA;AAAA,IACrB,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,gBAAA,EAAkB,QAAQ,gBAAA,IAAoB,EAAA;AAAA,IAC9C,UAAA,EAAY,QAAQ,UAAA,IAAc,CAAA;AAAA,IAClC,KAAA,EAAO;AAAA,GACT;AACF;;;ACtEO,IAAM,WAAA,GAAc;AACpB,IAAM,cAAA,GAAiB,mBAAmB,WAAW,CAAA,CAAA;;;ACDrD,IAAM,eAAA,GAAkB;AAAA,EAC7B,UAAA,EAAY,yBAAA;AAAA,EACZ,KAAA,EAAO;AACT;;;ACDO,IAAM,SAAA,GAAN,cAAwB,KAAA,CAAM;AAAA,EAC1B,UAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA;AAAA,EAET,WAAA,CAAY;AAAA,IACV,OAAA;AAAA,IACA,UAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,GACF,EAKG;AACD,IAAA,KAAA,CAAM,OAAA,IAAW,mBAAA,CAAoB,UAAA,EAAY,IAAI,CAAC,CAAA;AACtD,IAAA,IAAA,CAAK,IAAA,GAAO,WAAA;AACZ,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAClB,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AAAA,EACrB;AACF;AAEA,SAAS,mBAAA,CAAoB,YAAqB,IAAA,EAAwB;AACxE,EAAA,MAAM,QAAA,GAAW,oBAAoB,IAAI,CAAA;AACzC,EAAA,IAAI,UAAU,OAAO,QAAA;AACrB,EAAA,IAAI,UAAA,EAAY,OAAO,CAAA,gBAAA,EAAmB,UAAU,CAAA,CAAA,CAAA;AACpD,EAAA,OAAO,gBAAA;AACT;AAEO,SAAS,oBAAoB,IAAA,EAAmC;AACrE,EAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,CAAK,IAAA,IAAQ,OAAO,IAAA;AACpD,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,UAAU,OAAO,MAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,IAAA;AACf,EAAA,KAAA,MAAW,GAAA,IAAO,CAAC,OAAA,EAAS,SAAA,EAAW,QAAQ,CAAA,EAAG;AAChD,IAAA,MAAM,KAAA,GAAQ,OAAO,GAAG,CAAA;AACxB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,IAAQ,OAAO,KAAA;AAAA,EACxD;AACA,EAAA,OAAO,MAAA;AACT;;;AC1CO,IAAM,gBAAA,GAAN,cAA+B,KAAA,CAAM;AAAA,EAC1C,WAAA,CAAY,UAAU,mBAAA,EAAqB;AACzC,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AAAA,EACd;AACF;;;ACFO,IAAM,eAAA,GAAN,cAA8B,SAAA,CAAU;AAAA,EAC7C,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM,EAAE,OAAA,EAAS,aAAA,EAAe,YAAY,GAAA,EAAK,IAAA,EAAM,aAAa,CAAA;AACpE,IAAA,IAAA,CAAK,IAAA,GAAO,iBAAA;AAAA,EACd;AACF;AAEO,IAAM,iBAAA,GAAN,cAAgC,SAAA,CAAU;AAAA,EAC/C,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM,EAAE,OAAA,EAAS,cAAA,EAAgB,YAAY,GAAA,EAAK,IAAA,EAAM,aAAa,CAAA;AACrE,IAAA,IAAA,CAAK,IAAA,GAAO,mBAAA;AAAA,EACd;AACF;AAEO,IAAM,cAAA,GAAN,cAA6B,SAAA,CAAU;AAAA,EAC5C,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM,EAAE,OAAA,EAAS,WAAA,EAAa,YAAY,GAAA,EAAK,IAAA,EAAM,aAAa,CAAA;AAClE,IAAA,IAAA,CAAK,IAAA,GAAO,gBAAA;AAAA,EACd;AACF;AAEO,IAAM,aAAA,GAAN,cAA4B,SAAA,CAAU;AAAA,EAC3C,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM,EAAE,OAAA,EAAS,WAAA,EAAa,YAAY,GAAA,EAAK,IAAA,EAAM,aAAa,CAAA;AAClE,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AAAA,EACd;AACF;AAEO,IAAM,wBAAA,GAAN,cAAuC,SAAA,CAAU;AAAA,EACtD,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS,sBAAA;AAAA,MACT,UAAA,EAAY,GAAA;AAAA,MACZ,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,IAAA,GAAO,0BAAA;AAAA,EACd;AACF;AAEO,IAAM,oBAAA,GAAN,cAAmC,SAAA,CAAU;AAAA,EAClD,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS,mBAAA;AAAA,MACT,UAAA,EAAY,GAAA;AAAA,MACZ,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,IAAA,GAAO,sBAAA;AAAA,EACd;AACF;AAEO,IAAM,mBAAA,GAAN,cAAkC,SAAA,CAAU;AAAA,EACjD,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS,uBAAA;AAAA,MACT,UAAA,EAAY,GAAA;AAAA,MACZ,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,IAAA,GAAO,qBAAA;AAAA,EACd;AACF;AAEO,IAAM,eAAA,GAAN,cAA8B,SAAA,CAAU;AAAA,EAC7C,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM,EAAE,OAAA,EAAS,aAAA,EAAe,YAAY,GAAA,EAAK,IAAA,EAAM,aAAa,CAAA;AACpE,IAAA,IAAA,CAAK,IAAA,GAAO,iBAAA;AAAA,EACd;AACF;AAEO,IAAM,uBAAA,GAAN,cAAsC,SAAA,CAAU;AAAA,EACrD,WAAA,CAAY,MAAgB,WAAA,EAA2B;AACrD,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS,qBAAA;AAAA,MACT,UAAA,EAAY,GAAA;AAAA,MACZ,IAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AACF;AAEO,SAAS,eAAA,CACd,UAAA,EACA,IAAA,EACA,WAAA,EACW;AACX,EAAA,QAAQ,UAAA;AAAY,IAClB,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,eAAA,CAAgB,IAAA,EAAM,WAAW,CAAA;AAAA,IAC9C,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,iBAAA,CAAkB,IAAA,EAAM,WAAW,CAAA;AAAA,IAChD,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,cAAA,CAAe,IAAA,EAAM,WAAW,CAAA;AAAA,IAC7C,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,aAAA,CAAc,IAAA,EAAM,WAAW,CAAA;AAAA,IAC5C,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,wBAAA,CAAyB,IAAA,EAAM,WAAW,CAAA;AAAA,IACvD,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,oBAAA,CAAqB,IAAA,EAAM,WAAW,CAAA;AAAA,IACnD,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,mBAAA,CAAoB,IAAA,EAAM,WAAW,CAAA;AAAA,IAClD,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,eAAA,CAAgB,IAAA,EAAM,WAAW,CAAA;AAAA,IAC9C,KAAK,GAAA;AACH,MAAA,OAAO,IAAI,uBAAA,CAAwB,IAAA,EAAM,WAAW,CAAA;AAAA,IACtD;AACE,MAAA,OAAO,IAAI,SAAA,CAAU,EAAE,UAAA,EAAY,IAAA,EAAM,aAAa,CAAA;AAAA;AAE5D;;;AC/GA,eAAsB,iBACpB,KAAA,EACwB;AACxB,EAAA,IAAI,KAAA,KAAU,QAAW,OAAO,MAAA;AAChC,EAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,IAAA,OAAO,MAAO,KAAA,EAA+B;AAAA,EAC/C;AACA,EAAA,OAAO,KAAA;AACT;;;ACVA,IAAM,aAAA,GAAgB,CAAC,KAAA,KACrB,OAAA,CAAQ,KAAK,KAAK,MAAA,CAAO,cAAA,CAAe,KAAK,CAAA,KAAM,MAAA,CAAO,SAAA;AAErD,SAAS,cACd,KAAA,EACQ;AACR,EAAA,IAAI,CAAC,OAAO,OAAO,EAAA;AACnB,EAAA,MAAM,MAAA,GAAS,IAAI,eAAA,EAAgB;AACnC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,IAAA,gBAAA,CAAiB,MAAA,EAAQ,KAAK,KAAK,CAAA;AAAA,EACrC;AACA,EAAA,OAAO,OAAO,QAAA,EAAS;AACzB;AAEA,SAAS,gBAAA,CACP,MAAA,EACA,GAAA,EACA,KAAA,EACM;AACN,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AAC3C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,KAAA,MAAW,IAAA,IAAQ,KAAA,EAAO,gBAAA,CAAiB,MAAA,EAAQ,KAAK,IAAI,CAAA;AAC5D,IAAA;AAAA,EACF;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,SAAA,IAAa,OAAO,UAAU,QAAA,EAAU;AAC3D,IAAA,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAChC,IAAA;AAAA,EACF;AACA,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAA,CAAO,MAAA,CAAO,KAAK,KAAK,CAAA;AACxB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,cAAc,KAAK,CAAA,IAAK,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,IAAA,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AACxC,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAClC;AAEO,SAAS,OAAA,CAAQ,OAAA,EAAiB,IAAA,EAAc,KAAA,EAAwB;AAC7E,EAAA,MAAM,WAAA,GAAc,OAAA,CAAQ,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AAC9C,EAAA,MAAM,iBAAiB,IAAA,CAAK,UAAA,CAAW,GAAG,CAAA,GAAI,IAAA,GAAO,IAAI,IAAI,CAAA,CAAA;AAC7D,EAAA,MAAM,GAAA,GAAM,CAAA,EAAG,WAAW,CAAA,EAAG,cAAc,CAAA,CAAA;AAC3C,EAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,GAAK,GAAA;AACrC;;;ACjCO,IAAM,mBAAA,GAAN,MAAM,oBAAA,SAA+B,OAAA,CAAW;AAAA,EAC5C,SAAA;AAAA,EAED,WAAA,CACN,UAIA,QAAA,EACA;AACA,IAAA,KAAA,CAAM,QAAQ,CAAA;AACd,IAAA,IAAA,CAAK,SAAA,GAAY,QAAA;AAAA,EACnB;AAAA,EAEA,OAAO,KACL,QAAA,EACwB;AACxB,IAAA,OAAO,IAAI,oBAAA,CAAuB,CAAC,OAAA,EAAS,MAAA,KAAW;AACrD,MAAA,KAAK,QAAA,CAAS,KAAK,CAAC,MAAA,KAAW,QAAQ,MAAA,CAAO,IAAI,GAAG,MAAM,CAAA;AAAA,IAC7D,GAAG,QAAQ,CAAA;AAAA,EACb;AAAA,EAEA,eAAA,GAA+C;AAC7C,IAAA,OAAO,IAAA,CAAK,SAAA;AAAA,EACd;AACF;AAEO,SAAS,cAAc,QAAA,EAAiC;AAC7D,EAAA,OAAO;AAAA,IACL,QAAQ,QAAA,CAAS,MAAA;AAAA,IACjB,SAAS,QAAA,CAAS,OAAA;AAAA,IAClB,KAAK,QAAA,CAAS;AAAA,GAChB;AACF;;;AC5BA,IAAM,kBAAA,uBAAyB,GAAA,CAAI,CAAC,OAAO,MAAA,EAAQ,SAAA,EAAW,KAAA,EAAO,QAAQ,CAAC,CAAA;AAcvE,IAAM,WAAN,MAAe;AAAA,EACpB,YAA6B,OAAA,EAAkC;AAAlC,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA,EAAmC;AAAA,EAAnC,OAAA;AAAA,EAE7B,QAAW,IAAA,EAA+C;AACxD,IAAA,OAAO,mBAAA,CAAoB,IAAA,CAAK,IAAA,CAAK,cAAA,CAAkB,IAAI,CAAC,CAAA;AAAA,EAC9D;AAAA,EAEA,MAAM,eACJ,IAAA,EACgD;AAChD,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA;AACpC,IAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,YAAA,CAAa,IAAI,CAAA;AAC5C,IAAA,MAAM,UAAA,GAAa,aAAA,CAAc,IAAA,CAAK,IAAA,EAAM,OAAO,CAAA;AACnD,IAAA,MAAM,SAAA,GAAA,CACH,IAAA,CAAK,gBAAA,IAAoB,IAAA,CAAK,QAAQ,gBAAA,IAAoB,GAAA;AAC7D,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,UAAA,IAAc,IAAA,CAAK,OAAA,CAAQ,UAAA;AACnD,IAAA,MAAM,SAAA,GAAY,KAAK,OAAA,CAAQ,KAAA;AAE/B,IAAA,IAAI,SAAA;AACJ,IAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,IAAW,UAAA,EAAY,OAAA,EAAA,EAAW;AACtD,MAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,MAAA,MAAM,UAAU,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,SAAS,CAAA;AAC9D,MAAA,MAAM,OAAA,GAAU,MAAM,UAAA,CAAW,KAAA,EAAM;AACvC,MAAA,IAAA,CAAK,aAAa,gBAAA,CAAiB,OAAA,EAAS,SAAS,EAAE,IAAA,EAAM,MAAM,CAAA;AACnE,MAAA,IAAI;AACF,QAAA,MAAM,QAAA,GAAW,MAAM,SAAA,CAAU,GAAA,EAAK;AAAA,UACpC,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,OAAA;AAAA,UACA,MAAM,UAAA,CAAW,IAAA;AAAA,UACjB,QAAQ,UAAA,CAAW;AAAA,SACpB,CAAA;AACD,QAAA,MAAM,WAAA,GAAc,cAAc,QAAQ,CAAA;AAC1C,QAAA,IAAI,SAAS,EAAA,EAAI;AACf,UAAA,MAAM,IAAA,GAAQ,MAAM,gBAAA,CAAiB,QAAQ,CAAA;AAC7C,UAAA,OAAO,EAAE,MAAM,WAAA,EAAY;AAAA,QAC7B;AACA,QAAA,MAAM,SAAA,GAAY,MAAM,cAAA,CAAe,QAAQ,CAAA;AAC/C,QAAA,IAAI,UAAU,UAAA,IAAc,WAAA,CAAY,KAAK,MAAA,EAAQ,QAAA,CAAS,MAAM,CAAA,EAAG;AACrE,UAAA,MAAM,KAAA;AAAA,YACJ,aAAa,OAAA,EAAS,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAC;AAAA,WAC3D;AACA,UAAA;AAAA,QACF;AACA,QAAA,MAAM,eAAA,CAAgB,QAAA,CAAS,MAAA,EAAQ,SAAA,EAAW,WAAW,CAAA;AAAA,MAC/D,SAAS,KAAA,EAAO;AACd,QAAA,SAAA,GAAY,KAAA;AACZ,QAAA,IAAI,KAAA,YAAiB,WAAW,MAAM,KAAA;AACtC,QAAA,MAAM,UACJ,KAAA,YAAiB,KAAA,KAChB,MAAM,IAAA,KAAS,YAAA,IAAgB,MAAM,IAAA,KAAS,cAAA,CAAA;AACjD,QAAA,IAAI,OAAA,IAAW,IAAA,CAAK,WAAA,EAAa,OAAA,EAAS;AACxC,UAAA,MAAM,KAAA;AAAA,QACR;AACA,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,SAAA,GAAY,IAAI,gBAAA;AAAA,YACd,2BAA2B,SAAS,CAAA,EAAA;AAAA,WACtC;AAAA,QACF;AACA,QAAA,IAAI,WAAW,UAAA,IAAc,CAAC,YAAY,IAAA,CAAK,MAAA,EAAQ,MAAS,CAAA,EAAG;AACjE,UAAA,MAAM,SAAA;AAAA,QACR;AACA,QAAA,MAAM,KAAA,CAAM,YAAA,CAAa,OAAA,EAAS,IAAI,CAAC,CAAA;AAAA,MACzC,CAAA,SAAE;AACA,QAAA,YAAA,CAAa,OAAO,CAAA;AACpB,QAAA,IAAA,CAAK,WAAA,EAAa,mBAAA,CAAoB,OAAA,EAAS,OAAO,CAAA;AAAA,MACxD;AAAA,IACF;AACA,IAAA,MAAM,SAAA;AAAA,EACR;AAAA,EAEA,MAAc,SAAS,IAAA,EAAwC;AAC7D,IAAA,MAAM,OAAA,GACH,MAAM,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,OAAO,CAAA,IAC3C,MAAM,gBAAA,CAAiB,IAAA,CAAK,OAAA,CAAQ,WAAW,KAChD,eAAA,CAAgB,UAAA;AAClB,IAAA,MAAM,QAAQ,aAAA,CAAc;AAAA,MAC1B,GAAG,IAAA,CAAK,KAAA;AAAA,MACR,GAAG,IAAA,CAAK;AAAA,KACT,CAAA;AACD,IAAA,OAAO,OAAA,CAAQ,OAAA,EAAS,IAAA,CAAK,IAAA,EAAM,KAAK,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAc,aACZ,IAAA,EACiC;AACjC,IAAA,MAAM,OAAA,GAAkC;AAAA,MACtC,MAAA,EAAQ,kBAAA;AAAA,MACR,YAAA,EAAc;AAAA,KAChB;AACA,IAAA,MAAM,SACH,MAAM,gBAAA,CAAiB,KAAK,OAAA,CAAQ,MAAM,KAAM,aAAA,EAAc;AACjE,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,OAAA,CAAQ,aAAA,GAAgB,UAAU,MAAM,CAAA,CAAA;AAAA,IAC1C;AACA,IAAA,IAAI,IAAA,CAAK,QAAQ,OAAA,EAAS;AACxB,MAAA,KAAA,MAAW,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,OAAO,CAAA,EAAG;AAC/D,QAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,CAAiB,KAAA,IAAS,MAAS,CAAA;AAC1D,QAAA,IAAI,QAAA,EAAU,OAAA,CAAQ,GAAG,CAAA,GAAI,QAAA;AAAA,MAC/B;AAAA,IACF;AACA,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,KAAA,MAAW,CAAC,KAAK,KAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,EAAG;AACvD,QAAA,IAAI,KAAA,EAAO,OAAA,CAAQ,GAAG,CAAA,GAAI,KAAA;AAAA,MAC5B;AAAA,IACF;AACA,IAAA,OAAO,OAAA;AAAA,EACT;AACF,CAAA;AAEO,SAAS,oBACd,cAAA,EAIA;AACA,EAAA,OAAO;AAAA,IACL,kBAAkB,cAAA,EAAgB,gBAAA;AAAA,IAClC,YAAY,cAAA,EAAgB,UAAA;AAAA,IAC5B,aAAa,cAAA,EAAgB,WAAA;AAAA,IAC7B,aAAa,cAAA,EAAgB,WAAA;AAAA,IAC7B,SAAS,cAAA,EAAgB;AAAA,GAC3B;AACF;AAEA,SAAS,aAAA,GAAoC;AAC3C,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,CAAC,OAAA,CAAQ,KAAK,OAAO,MAAA;AAC3D,EAAA,MAAM,KAAA,GAAQ,QAAQ,GAAA,CAAI,YAAA;AAC1B,EAAA,OAAO,KAAA,IAAS,KAAA,CAAM,IAAA,EAAK,GAAI,KAAA,GAAQ,MAAA;AACzC;AAEA,SAAS,aAAA,CACP,MACA,OAAA,EACqB;AACrB,EAAA,IAAI,IAAA,KAAS,MAAA,IAAa,IAAA,KAAS,IAAA,SAAa,EAAC;AACjD,EAAA,IAAI,OAAO,QAAA,KAAa,WAAA,IAAe,IAAA,YAAgB,QAAA,EAAU;AAC/D,IAAA,OAAO,EAAE,IAAA,EAAK;AAAA,EAChB;AACA,EAAA,IACE,OAAO,eAAA,KAAoB,WAAA,IAC3B,IAAA,YAAgB,eAAA,EAChB;AACA,IAAA,IAAI,CAAC,OAAA,CAAQ,cAAc,CAAA,EAAG;AAC5B,MAAA,OAAA,CAAQ,cAAc,CAAA,GAAI,mCAAA;AAAA,IAC5B;AACA,IAAA,OAAO,EAAE,IAAA,EAAK;AAAA,EAChB;AACA,EAAA,IAAI,OAAO,IAAA,KAAS,WAAA,IAAe,IAAA,YAAgB,IAAA,EAAM;AACvD,IAAA,OAAO,EAAE,IAAA,EAAK;AAAA,EAChB;AACA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,IAAI,CAAC,OAAA,CAAQ,cAAc,CAAA,EAAG,OAAA,CAAQ,cAAc,CAAA,GAAI,kBAAA;AACxD,IAAA,OAAO,EAAE,IAAA,EAAK;AAAA,EAChB;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,cAAc,CAAA,EAAG,OAAA,CAAQ,cAAc,CAAA,GAAI,kBAAA;AACxD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,EAAE;AACtC;AAEA,eAAe,iBAAiB,QAAA,EAAsC;AACpE,EAAA,IAAI,QAAA,CAAS,MAAA,KAAW,GAAA,EAAK,OAAO,MAAA;AACpC,EAAA,MAAM,WAAA,GAAc,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,IAAK,EAAA;AAC5D,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,kBAAkB,CAAA,EAAG;AAC5C,IAAA,MAAMA,KAAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,IAAA,IAAI,CAACA,OAAM,OAAO,MAAA;AAClB,IAAA,OAAO,IAAA,CAAK,MAAMA,KAAI,CAAA;AAAA,EACxB;AACA,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,OAAO,CAAA,EAAG;AACjC,IAAA,OAAO,SAAS,IAAA,EAAK;AAAA,EACvB;AACA,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,eAAe,eAAe,QAAA,EAAsC;AAClE,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAEA,SAAS,WAAA,CAAY,QAAgB,MAAA,EAAqC;AACxE,EAAA,IAAI,MAAA,KAAW,GAAA,IAAO,MAAA,KAAW,GAAA,EAAK,OAAO,IAAA;AAC7C,EAAA,MAAM,UAAA,GAAa,kBAAA,CAAmB,GAAA,CAAI,MAAA,CAAO,aAAa,CAAA;AAC9D,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,cAAc,MAAA,IAAU,GAAA;AAAA,EACjC;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,YAAA,CAAa,SAAiB,UAAA,EAAmC;AACxE,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,OAAA,GAAU,OAAO,UAAU,CAAA;AACjC,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA,IAAK,WAAW,CAAA,EAAG;AAC5C,MAAA,OAAO,IAAA,CAAK,GAAA,CAAI,OAAA,GAAU,GAAA,EAAM,GAAM,CAAA;AAAA,IACxC;AAAA,EACF;AACA,EAAA,MAAM,OAAO,IAAA,CAAK,GAAA,CAAI,GAAA,GAAM,CAAA,IAAK,SAAS,GAAK,CAAA;AAC/C,EAAA,OAAO,IAAA,GAAO,IAAA,CAAK,MAAA,EAAO,GAAI,IAAA,GAAO,GAAA;AACvC;AAEA,SAAS,MAAM,EAAA,EAA2B;AACxC,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AACzD;;;AChPO,SAAS,eAAA,CAAgB,MAAc,KAAA,EAAwB;AACpE,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,OAAW,EAAA,EAAI;AACpD,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,iCAAA,EAAoC,IAAI,CAAA,CAAE,CAAA;AAAA,EAC5D;AACA,EAAA,OAAO,mBAAmB,KAAK,CAAA;AACjC;;;ACDA,IAAM,gBAAA,uBAAuB,GAAA,CAAI;AAAA,EAC/B,WAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,mCAAmB,IAAI,GAAA,CAAI,CAAC,QAAA,EAAU,OAAO,CAAC,CAAA;AACpD,IAAM,qCAAqB,IAAI,GAAA,CAAI,CAAC,WAAA,EAAa,UAAU,CAAC,CAAA;AAC5D,IAAM,iBAAA,uBAAwB,GAAA,CAAI;AAAA,EAChC,GAAG,gBAAA;AAAA,EACH,GAAG,gBAAA;AAAA,EACH,GAAG;AACL,CAAC,CAAA;AAYM,IAAM,cAAA,GAAN,cAA6B,SAAA,CAAU;AAAA,EACnC,SAAA;AAAA,EACT,WAAA,CAAY,WAAmB,IAAA,EAAe;AAC5C,IAAA,KAAA,CAAM;AAAA,MACJ,OAAA,EAAS,0BAA0B,SAAS,CAAA,CAAA,CAAA;AAAA,MAC5C;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,IAAA,GAAO,gBAAA;AACZ,IAAA,IAAA,CAAK,SAAA,GAAY,SAAA;AAAA,EACnB;AACF;AAEO,SAAS,cAAc,OAAA,EAAsC;AAClE,EAAA,IAAI,CAAC,OAAA,IAAW,OAAO,OAAA,KAAY,UAAU,OAAO,MAAA;AACpD,EAAA,MAAM,MAAA,GAAS,OAAA;AACf,EAAA,MAAM,SAAS,MAAA,CAAO,IAAA;AACtB,EAAA,IAAI,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AACxC,IAAA,MAAM,eAAgB,MAAA,CAAmC,MAAA;AACzD,IAAA,IAAI,OAAO,YAAA,KAAiB,QAAA,IAAY,YAAA,CAAa,MAAK,EAAG;AAC3D,MAAA,OAAO,YAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,IAAI,OAAO,MAAA,CAAO,MAAA,KAAW,YAAY,MAAA,CAAO,MAAA,CAAO,MAAK,EAAG;AAC7D,IAAA,OAAO,MAAA,CAAO,MAAA;AAAA,EAChB;AACA,EAAA,OAAO,MAAA;AACT;AAEA,eAAsB,UAAA,CACpB,IAAA,EACA,OAAA,EACA,OAAA,EACkB;AAClB,EAAA,MAAM,UAAA,GAAa,SAAS,UAAA,IAAc,GAAA;AAC1C,EAAA,MAAM,SAAA,GAAA,CAAa,OAAA,EAAS,gBAAA,IAAoB,GAAA,IAAO,GAAA;AACvD,EAAA,MAAM,OAAA,GAAU,KAAK,GAAA,EAAI;AAEzB,EAAA,OAAO,IAAA,EAAM;AACX,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,cAAA,CAAwB;AAAA,MAChD,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,aAAA,EAAgB,kBAAA,CAAmB,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,MACvD,OAAO,OAAA,CAAQ,cAAA,GACX,EAAE,cAAA,EAAgB,OAAA,CAAQ,gBAAe,GACzC,MAAA;AAAA,MACJ,kBAAkB,OAAA,EAAS,gBAAA;AAAA,MAC3B,YAAY,OAAA,EAAS,UAAA;AAAA,MACrB,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,SAAS,OAAA,EAAS;AAAA,KACnB,CAAA;AACD,IAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,IAAI,GAAG,WAAA,EAAY;AACvD,IAAA,IAAI,MAAA,IAAU,iBAAA,CAAkB,GAAA,CAAI,MAAM,CAAA,EAAG;AAC3C,MAAA,IAAI,gBAAA,CAAiB,GAAA,CAAI,MAAM,CAAA,SAAU,MAAA,CAAO,IAAA;AAChD,MAAA,MAAM,IAAI,cAAA,CAAe,MAAA,EAAQ,MAAA,CAAO,IAAI,CAAA;AAAA,IAC9C;AACA,IAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,OAAA,GAAU,aAAa,SAAA,EAAW;AACjD,MAAA,MAAM,IAAI,SAAA,CAAU;AAAA,QAClB,OAAA,EAAS,CAAA,0BAAA,EAA6B,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,QACnD,MAAM,MAAA,CAAO;AAAA,OACd,CAAA;AAAA,IACH;AACA,IAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,UAAU,CAAC,CAAA;AAAA,EAChE;AACF;;;ACnEO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/B,MAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,+BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,6BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,KAAA,EAAO,cAAA,EAAe,GAAI,WAAW,EAAC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,4BAAA,EAA+B,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,CAAA;AAAA,MACpE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,eAAN,MAAmB;AAAA,EAExB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAC7B,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,mBAAA,CAAoB,IAAA,CAAK,KAAK,CAAA;AAAA,EACnD;AAAA,EAF+B,KAAA;AAAA,EADtB,OAAA;AAIX,CAAA;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/B,QAAA,CACE,OAAA,GAAgE,EAAC,EACjE,cAAA,EACwE;AACxE,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,IAAA;AAAA,MACA,EAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,yBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,IAAA;AAAA,QACA,EAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,YAAN,MAAgB;AAAA,EACrB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,SAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,KAAA,EAAO,cAAA,EAAe,GAAI,WAAW,EAAC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,YAAA,EAAe,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,MACpD,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,KAAA,EAAO,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACvC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,YAAA,EAAe,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,MACpD,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,KAAA,EAAO,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACvC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,YAAA,EAAe,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,QAAA,CAAA;AAAA,MACpD,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EACoE;AACpE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,oBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA,CACE,SACA,cAAA,EACmE;AACnE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,mBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,YAAN,MAAgB;AAAA,EACrB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,KACE,cAAA,EAC0D;AAC1D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,MAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GACE,cAAA,EACwD;AACxD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,SAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAA0D,EAAC,EAC3D,cAAA,EACkE;AAClE,IAAA,MAAM,EAAE,gBAAgB,CAAA,EAAG,KAAA,EAAO,QAAQ,KAAA,EAAM,GAAI,WAAW,EAAC;AAChE,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,mBAAA;AAAA,MACN,OAAO,EAAE,cAAA,EAAgB,CAAA,EAAG,KAAA,EAAO,QAAQ,KAAA,EAAM;AAAA,MACjD,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EACmE;AACnE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,mBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,UAAA,EAAY,cAAA,EAAe,GAAI,WAAW,EAAC;AACnD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,CAAA;AAAA,MACpE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC5C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,CAAA;AAAA,MACpE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,UAAA,EAAY,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC5C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,QAAA,CAAA;AAAA,MACpE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SACA,cAAA,EAC2E;AAC3E,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,2BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EAC0E;AAC1E,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,0BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAA,CACE,OAAA,GAAkE,EAAC,EACnE,cAAA,EAC0E;AAC1E,IAAA,MAAM,EAAE,cAAA,EAAe,GAAI,OAAA,IAAW,EAAC;AACvC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,2BAAA;AAAA,MACN,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/B,SAAA,CACE,OAAA,GAA8D,EAAC,EAC/D,cAAA,EACsE;AACtE,IAAA,MAAM,EAAE,gBAAgB,YAAA,EAAc,MAAA,EAAQ,OAAO,MAAA,EAAO,GAC1D,WAAW,EAAC;AACd,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,uBAAA;AAAA,MACN,OAAO,EAAE,cAAA,EAAgB,YAAA,EAAc,MAAA,EAAQ,OAAO,MAAA,EAAO;AAAA,MAC7D,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,yBAAN,MAA6B;AAAA,EAClC,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,MAAA,CACE,SACA,cAAA,EAC2E;AAC3E,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,2BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAe,GAAI,WAAW,EAAC;AAClD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAOA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,OAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAA,CACE,SASA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,SAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,SACA,cAAA,EACgE;AAChE,IAAA,MAAM,EAAE,QAAA,EAAU,QAAA,EAAS,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,iBAAA;AAAA,MACN,KAAA,EAAO,EAAE,QAAA,EAAU,QAAA,EAAS;AAAA,MAC5B,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,KACE,cAAA,EACkE;AAClE,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,mBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,OAAA,GAAmC,EAAC,EACpC,cAAA,EACkE;AAClE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,kBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,UAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,KAAA,EAAM,GAAI,WAAW,EAAC;AACtC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,aAAA,EAAgB,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAC,CAAA,SAAA,CAAA;AAAA,MACvD,KAAA,EAAO,EAAE,KAAA,EAAM;AAAA,MACf,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,cAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,gCAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,SAEA,cAAA,EACsE;AACtE,IAAA,MAAM,EAAE,KAAA,EAAO,cAAA,EAAe,GAAI,WAAW,EAAC;AAC9C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,aAAA,EAAgB,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,CAAA;AAAA,MACrD,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,KAAA,EAAO,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACvC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,aAAA,EAAgB,eAAA,CAAgB,OAAA,EAAS,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,MACrD,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA,CACE,SACA,cAAA,EACkB;AAClB,IAAA,OAAO,UAAA,CAAW,IAAA,CAAK,KAAA,EAAO,OAAA,EAAS,cAAc,CAAA;AAAA,EACvD;AACF,CAAA;AAEO,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAAsD,EAAC,EACvD,cAAA,EAC8D;AAC9D,IAAA,MAAM,EAAE,CAAA,EAAG,MAAA,EAAQ,OAAO,MAAA,EAAO,GAAI,WAAW,EAAC;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,eAAA;AAAA,MACN,KAAA,EAAO,EAAE,CAAA,EAAG,MAAA,EAAQ,OAAO,MAAA,EAAO;AAAA,MAClC,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EAC+D;AAC/D,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,eAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SACA,cAAA,EACwE;AACxE,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,OAAA,IAAW,EAAC;AAC/B,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,cAAA,EAAiB,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAAA,MACxD,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,aAAA,CACE,OAAA,GAAuE,EAAC,EACxE,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,cAAA,EAAgB,WAAA,EAAa,OAAA,EAAQ,GAAI,WAAW,EAAC;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,gCAAA;AAAA,MACN,KAAA,EAAO,EAAE,cAAA,EAAgB,WAAA,EAAa,OAAA,EAAQ;AAAA,MAC9C,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,WAAA,CACE,SAGA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,UAAA,EAAW,GAAI,OAAA,IAAW,EAAC;AACnC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,SAAA,CAAA;AAAA,MACpE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,YAAY,QAAA,EAAU,OAAA,EAAS,UAAU,KAAA,EAAO,MAAA,EAAO,GAC7D,OAAA,IAAW,EAAC;AACd,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,SAAA,CAAA;AAAA,MACpE,OAAO,EAAE,QAAA,EAAU,OAAA,EAAS,QAAA,EAAU,OAAO,MAAA,EAAO;AAAA,MACpD,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM;AAAA,MACJ,UAAA;AAAA,MACA,CAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,kBAAA,EAAqB,eAAA,CAAgB,YAAA,EAAc,UAAU,CAAC,CAAA,OAAA,CAAA;AAAA,MACpE,KAAA,EAAO;AAAA,QACL,CAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,OAAA,GAAmC,EAAC,EACpC,cAAA,EACiE;AACjE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,iBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,cAAN,MAAkB;AAAA,EACvB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,MAAA,CACE,SACA,cAAA,EACsE;AACtE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,sBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA,CACE,SACA,cAAA,EACqE;AACrE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAAuD,EAAC,EACxD,cAAA,EAC+D;AAC/D,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,gBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,CAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA,UAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyBA,MAAA,CACE,SACA,cAAA,EACgE;AAChE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,gBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0BA,GAAA,CACE,SAEA,cAAA,EAC0E;AAC1E,IAAA,MAAM,EAAE,OAAA,EAAS,cAAA,EAAe,GAAI,WAAW,EAAC;AAChD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkCA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACzC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,gBAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,OAAA,EAAS,cAAA,EAAgB,MAAA,EAAO,GAAI,WAAW,EAAC;AACxD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,eAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,EAAE,cAAA,EAAgB,MAAA,EAAO;AAAA,MAChC,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,WAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,OAAA,EAAS,cAAA,EAAe,GAAI,WAAW,EAAC;AAChD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,QAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,WAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,OAAA,EAAS,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACzC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,QAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,MAAA,CACE,SACA,cAAA,EACuE;AACvE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,uBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAA4D,EAAC,EAC7D,cAAA,EACoE;AACpE,IAAA,MAAM,EAAE,cAAA,EAAgB,QAAA,EAAU,WAAA,EAAY,GAAI,WAAW,EAAC;AAC9D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,EAAE,cAAA,EAAgB,QAAA,EAAU,WAAA,EAAY;AAAA,MAC/C,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA,CACE,SACA,cAAA,EACqE;AACrE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,cAAA,EAAe,GAAI,WAAW,EAAC;AAC/C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAM,CAAA,oBAAA,EAAuB,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,cAAA,EAAe,GAAI,WAAW,EAAC;AAC/C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,oBAAA,EAAuB,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAGA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,MAAA,EAAQ,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AACxD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,oBAAA,EAAuB,eAAA,CAAgB,QAAA,EAAU,MAAM,CAAC,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,6BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,0BAAN,MAA8B;AAAA,EACnC,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,SAAA,CACE,SAGA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,2CAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa/B,IAAA,CACE,OAAA,GAAyD,EAAC,EAC1D,cAAA,EACiE;AACjE,IAAA,MAAM;AAAA,MACJ,MAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,CAAA;AAAA,MACA,GAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,kBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,MAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,MAAA,CACE,SACA,cAAA,EACkE;AAClE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,kBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,OAAA,IAAW,EAAC;AAClC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,GAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,OAAA,IAAW,EAAC;AAClC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,KAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,OAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,eAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,UAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,WAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAe,GAAI,WAAW,EAAC;AAClD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,SAAA,CAAA;AAAA,MACjE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,WAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,MAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3C,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,iBAAA,EAAoB,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,QAAA,CAAA;AAAA,MACjE,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBA,UAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,8BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,WAAA,CACE,SACA,cAAA,EACuE;AACvE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,uBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAA,CACE,SACA,cAAA,EACyE;AACzE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,yBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAA2D,EAAC,EAC5D,cAAA,EACmE;AACnE,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,oBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,CAAA;AAAA,QACA,MAAA;AAAA,QACA,WAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EACoE;AACpE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,oBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAe,GAAI,WAAW,EAAC;AACpD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAe,GAAI,WAAW,EAAC;AACpD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAGA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,cAAA,CACE,SAOA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,SAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAe,GAAI,WAAW,EAAC;AACpD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,SAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,WAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,SAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC7D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,mBAAA,EAAsB,eAAA,CAAgB,aAAA,EAAe,WAAW,CAAC,CAAA,KAAA,CAAA;AAAA,MACvE,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAAwD,EAAC,EACzD,cAAA,EACgE;AAChE,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,iBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,QAAA,EAAU,cAAA,EAAe,GAAI,WAAW,EAAC;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,gBAAA,EAAmB,eAAA,CAAgB,UAAA,EAAY,QAAQ,CAAC,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/B,IAAA,CACE,OAAA,GAAwD,EAAC,EACzD,cAAA,EACgE;AAChE,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,CAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,iBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,CAAA;AAAA,QACA,WAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,MAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,QAAA,EAAU,cAAA,EAAe,GAAI,WAAW,EAAC;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,gBAAA,EAAmB,eAAA,CAAgB,UAAA,EAAY,QAAQ,CAAC,CAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,UAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,QAAA,EAAU,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC1D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,gBAAA,EAAmB,eAAA,CAAgB,UAAA,EAAY,QAAQ,CAAC,CAAA,YAAA,CAAA;AAAA,MAC9D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,OAAA,CACE,SACA,cAAA,EACyE;AACzE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,yBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAAuD,EAAC,EACxD,cAAA,EAC+D;AAC/D,IAAA,MAAM;AAAA,MACJ,CAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,gBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,CAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAA,CACE,OAAA,GAC4B,EAAC,EAC7B,cAAA,EACgE;AAChE,IAAA,MAAM;AAAA,MACJ,CAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,gBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,CAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAA;AAAA,QACA,IAAA;AAAA,QACA,QAAA;AAAA,QACA,OAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAA4D,EAAC,EAC7D,cAAA,EACoE;AACpE,IAAA,MAAM;AAAA,MACJ,cAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO;AAAA,QACL,cAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,OAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA,MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BA,MAAA,CACE,SACA,cAAA,EACqE;AACrE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,WAAW,EAAC;AACrD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,oBAAA,EAAuB,eAAA,CAAgB,cAAA,EAAgB,YAAY,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,OAAA,GAAmC,EAAC,EACpC,cAAA,EAC8D;AAC9D,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,cAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,SAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM;AAAA,MACJ,SAAA,EAAW,QAAA;AAAA,MACX,gBAAA;AAAA,MACA;AAAA,KACF,GAAI,WAAW,EAAC;AAChB,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,gBAAA,EAAmB,eAAA,CAAgB,WAAA,EAAa,QAAQ,CAAC,CAAA,OAAA,CAAA;AAAA,MAC/D,KAAA,EAAO,EAAE,gBAAA,EAAkB,cAAA,EAAe;AAAA,MAC1C,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,4BAAN,MAAgC;AAAA,EACrC,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,MAAA,CACE,SACA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,2BAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,GAAA,CACE,SAIA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAe,GAAI,WAAW,EAAC;AAClD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAOA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,OAAA,CACE,SAKA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SAOA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,OAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAA,CACE,SASA,cAAA,EAKA;AACA,IAAA,MAAM,EAAE,SAAA,EAAW,cAAA,EAAgB,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAC3D,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,CAAA,0BAAA,EAA6B,eAAA,CAAgB,WAAA,EAAa,SAAS,CAAC,CAAA,SAAA,CAAA;AAAA,MAC1E,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,GAAA,CACE,SAEA,cAAA,EAGA;AACA,IAAA,MAAM,EAAE,OAAA,EAAS,cAAA,EAAe,GAAI,WAAW,EAAC;AAChD,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,CAAA,eAAA,EAAkB,eAAA,CAAgB,SAAA,EAAW,OAAO,CAAC,CAAA,CAAA;AAAA,MAC3D,KAAA,EAAO,EAAE,cAAA,EAAe;AAAA,MACxB,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,YAAN,MAAgB;AAAA,EAGrB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAC7B,IAAA,IAAA,CAAK,gBAAA,GAAmB,IAAI,yBAAA,CAA0B,IAAA,CAAK,KAAK,CAAA;AAChE,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAAA,EAC9C;AAAA,EAH+B,KAAA;AAAA,EAFtB,gBAAA;AAAA,EACA,MAAA;AAKX,CAAA;AAEO,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,IAAA,CACE,OAAA,GAA+D,EAAC,EAChE,cAAA,EACuE;AACvE,IAAA,MAAM,EAAE,gBAAgB,SAAA,EAAW,aAAA,EAAe,QAAQ,KAAA,EAAM,GAC9D,WAAW,EAAC;AACd,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,wBAAA;AAAA,MACN,OAAO,EAAE,cAAA,EAAgB,SAAA,EAAW,aAAA,EAAe,QAAQ,KAAA,EAAM;AAAA,MACjE,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS/B,KACE,cAAA,EACiE;AACjE,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,kBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA,CACE,SACA,cAAA,EACkE;AAClE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,kBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,eAAN,MAAmB;AAAA,EACxB,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAAA,EAAkB;AAAA,EAAlB,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAe/B,SAAA,CACE,SACA,cAAA,EACsE;AACtE,IAAA,MAAM,EAAE,cAAA,EAAgB,KAAA,EAAO,SAAS,aAAA,EAAc,GAAI,WAAW,EAAC;AACtE,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAM,uBAAA;AAAA,MACN,KAAA,EAAO,EAAE,cAAA,EAAgB,KAAA,EAAO,SAAS,aAAA,EAAc;AAAA,MACvD,IAAA,EAAM,MAAA;AAAA,MACN,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,cAAA,CACE,SACA,cAAA,EACuE;AACvE,IAAA,MAAM,EAAE,GAAG,IAAA,EAAK,GAAI,WAAW,EAAC;AAChC,IAAA,OAAO,IAAA,CAAK,MAAM,OAAA,CAAQ;AAAA,MACxB,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,uBAAA;AAAA,MACN,KAAA,EAAO,MAAA;AAAA,MACP,IAAA;AAAA,MACA,GAAG,oBAAoB,cAAc;AAAA,KACtC,CAAA;AAAA,EACH;AACF,CAAA;AAEO,IAAM,sBAAN,MAA0B;AAAA,EAmC/B,YAA+B,KAAA,EAAiB;AAAjB,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AAC7B,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAC/C,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,SAAA,CAAU,IAAA,CAAK,KAAK,CAAA;AACnC,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,SAAA,CAAU,IAAA,CAAK,KAAK,CAAA;AACnC,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAC/C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,gBAAA,GAAmB,IAAI,sBAAA,CAAuB,IAAA,CAAK,KAAK,CAAA;AAC7D,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAC/C,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA;AAC7C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA;AACrC,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA;AACrC,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA;AACvC,IAAA,IAAA,CAAK,YAAA,GAAe,IAAI,kBAAA,CAAmB,IAAA,CAAK,KAAK,CAAA;AACrD,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,eAAA,CAAgB,IAAA,CAAK,KAAK,CAAA;AAC/C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,WAAA,CAAY,IAAA,CAAK,KAAK,CAAA;AACvC,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,mBAAA,CAAoB,IAAA,CAAK,KAAK,CAAA;AACvD,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,gBAAA,CAAiB,IAAA,CAAK,KAAK,CAAA;AACjD,IAAA,IAAA,CAAK,iBAAA,GAAoB,IAAI,uBAAA,CAAwB,IAAA,CAAK,KAAK,CAAA;AAC/D,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA;AAC7C,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,gBAAA,CAAiB,IAAA,CAAK,KAAK,CAAA;AACjD,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,WAAA,GAAc,IAAI,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA;AACnD,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,UAAA,CAAW,IAAA,CAAK,KAAK,CAAA;AACrC,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,aAAA,CAAc,IAAA,CAAK,KAAK,CAAA;AAC3C,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,SAAA,CAAU,IAAA,CAAK,KAAK,CAAA;AACnC,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,mBAAA,CAAoB,IAAA,CAAK,KAAK,CAAA;AACvD,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,cAAA,CAAe,IAAA,CAAK,KAAK,CAAA;AAC7C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AAAA,EAC3C;AAAA,EAnC+B,KAAA;AAAA,EAlCtB,MAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAqCX,CAAA;;;ACxkGO,IAAM,UAAA,GAAN,cAAyB,mBAAA,CAAoB;AAAA,EAClD,WAAA,CAAY,OAAA,GAA8B,EAAC,EAAG;AAC5C,IAAA,KAAA,CAAM,IAAI,QAAA,CAAS,sBAAA,CAAuB,OAAO,CAAC,CAAC,CAAA;AAAA,EACrD;AAAA,EAEA,QAAW,IAAA,EAA+C;AACxD,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,EAChC;AACF;;;ACtBA,IAAM,OAAA,GAAU,IAAI,WAAA,EAAY;AAEzB,IAAM,wBAAA,GAA2B;AACjC,IAAM,wBAAA,GAA2B;AACjC,IAAM,uBAAA,GAA0B;AAChC,IAAM,yBAAA,GAA4B;AAiBzC,SAAS,WAAA,CACP,SACA,IAAA,EACoB;AACpB,EAAA,IAAI,OAAO,OAAA,KAAY,WAAA,IAAe,OAAA,YAAmB,OAAA,EAAS;AAChE,IAAA,OAAO,OAAA,CAAQ,IAAI,IAAI,CAAA,IAAK,QAAQ,GAAA,CAAI,IAAA,CAAK,WAAA,EAAa,CAAA,IAAK,MAAA;AAAA,EACjE;AACA,EAAA,MAAM,MAAA,GAAS,OAAA;AACf,EAAA,MAAM,SAAS,MAAA,CAAO,IAAI,KAAK,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA;AACxD,EAAA,IAAI,MAAM,OAAA,CAAQ,MAAM,CAAA,EAAG,OAAO,OAAO,CAAC,CAAA;AAC1C,EAAA,OAAO,MAAA,IAAU,MAAA;AACnB;AAEA,SAAS,MAAM,KAAA,EAA4B;AACzC,EAAA,OAAO,CAAC,GAAG,IAAI,UAAA,CAAW,KAAK,CAAC,CAAA,CAC7B,IAAI,CAAC,IAAA,KAAS,KAAK,QAAA,CAAS,EAAE,EAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAChD,KAAK,EAAE,CAAA;AACZ;AAEA,SAAS,eAAA,CAAgB,MAAc,KAAA,EAAwB;AAC7D,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,KAAA,CAAM,MAAA,EAAQ,OAAO,KAAA;AACzC,EAAA,IAAI,QAAA,GAAW,CAAA;AACf,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,QAAA,IAAY,KAAK,UAAA,CAAW,CAAC,CAAA,GAAI,KAAA,CAAM,WAAW,CAAC,CAAA;AAAA,EACrD;AACA,EAAA,OAAO,QAAA,KAAa,CAAA;AACtB;AAEA,eAAsB,mBAAmB,KAAA,EAIrB;AAClB,EAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,MAAA,CAAO,SAAA;AAAA,IAC9B,KAAA;AAAA,IACA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA;AAAA,IAC3B,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAU;AAAA,IAChC,KAAA;AAAA,IACA,CAAC,MAAM;AAAA,GACT;AACA,EAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,MAAA,CAAO,IAAA;AAAA,IACpC,MAAA;AAAA,IACA,GAAA;AAAA,IACA,OAAA,CAAQ,OAAO,CAAA,EAAG,KAAA,CAAM,SAAS,CAAA,CAAA,EAAI,KAAA,CAAM,OAAO,CAAA,CAAE;AAAA,GACtD;AACA,EAAA,OAAO,MAAM,SAAS,CAAA;AACxB;AAEA,eAAsB,uBAAuB,KAAA,EAKxB;AACnB,EAAA,MAAM,QAAA,GAAW,MAAM,kBAAA,CAAmB,KAAK,CAAA;AAC/C,EAAA,OAAO,gBAAgB,QAAA,CAAS,WAAA,IAAe,KAAA,CAAM,SAAA,CAAU,aAAa,CAAA;AAC9E;AAEA,eAAsB,cAAA,CACpB,OAAA,EACA,OAAA,EACA,MAAA,EACA,OAAA,EACkC;AAClC,EAAA,MAAM,OAAA,GACJ,OAAO,OAAA,KAAY,QAAA,GAAW,UAAU,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,OAAO,CAAA;AAC1E,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,OAAA,EAAS,wBAAwB,CAAA;AAC/D,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,OAAA,EAAS,wBAAwB,CAAA;AAClE,EAAA,IAAI,CAAC,SAAA,IAAa,CAAC,YAAA,EAAc;AAC/B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,OAAO,YAAY,CAAA;AACrC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,SAAA,GAAY,SAAS,kBAAA,IAAsB,GAAA;AACjD,EAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AACxC,EAAA,IAAI,IAAA,CAAK,GAAA,CAAI,GAAA,GAAM,SAAS,IAAI,SAAA,EAAW;AACzC,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,MAAM,KAAA,GAAQ,MAAM,sBAAA,CAAuB;AAAA,IACzC,MAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA,EAAS,OAAA;AAAA,IACT;AAAA,GACD,CAAA;AACD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAA,GAAkB,OAAA;AACtB,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,IAAA,CAAK,MAAM,OAAO,CAAA;AAAA,EAC7B,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAI,MAAM,0DAA0D,CAAA;AAAA,EAC5E;AACA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,WAAA,CAAY,OAAA,EAAS,uBAAuB,CAAA;AAAA,IACrD,SAAA,EAAW,WAAA,CAAY,OAAA,EAAS,yBAAyB,CAAA;AAAA,IACzD,SAAA;AAAA,IACA,OAAA,EAAS,MAAA;AAAA,IACT;AAAA,GACF;AACF;;;ACpIA,IAAA,WAAA,GAAA;AAAA,QAAA,CAAA,WAAA,EAAA;AAAA,EAAA,mBAAA,EAAA,MAAA;AAAA,CAAA,CAAA","file":"index.js","sourcesContent":["import { OmniEnvironment } from \"./environments\";\nimport type { Supplier } from \"./core/supplier\";\n\nexport type FetchLike = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<Response>;\n\nexport interface BaseClientOptions {\n /**\n * API host. Defaults to production (`https://omnicommerce.sg`).\n * Pass `OmniEnvironment.Local` for `http://localhost:3000`.\n */\n environment?: Supplier<OmniEnvironment | string>;\n /** Explicit API origin. Overrides `environment` when set. */\n baseUrl?: Supplier<string>;\n /**\n * Organization API key (`omni_sk_...`) or OAuth access token.\n * Defaults to `process.env.OMNI_API_KEY`.\n */\n apiKey?: Supplier<string>;\n /** Extra headers sent on every request. */\n headers?: Record<\n string,\n string | Supplier<string | null | undefined> | null | undefined\n >;\n /** Default timeout in seconds. Defaults to 60. */\n timeoutInSeconds?: number;\n /** Retry count for 408/429/5xx and network failures. Defaults to 2. */\n maxRetries?: number;\n /** Custom fetch implementation. */\n fetch?: FetchLike;\n}\n\nexport interface BaseRequestOptions {\n timeoutInSeconds?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n queryParams?: Record<string, unknown>;\n headers?: Record<string, string | undefined>;\n}\n\nexport type NormalizedClientOptions = {\n environment?: Supplier<OmniEnvironment | string>;\n baseUrl?: Supplier<string>;\n apiKey?: Supplier<string>;\n headers?: BaseClientOptions[\"headers\"];\n timeoutInSeconds: number;\n maxRetries: number;\n fetch: FetchLike;\n};\n\nexport function normalizeClientOptions(\n options: BaseClientOptions = {},\n): NormalizedClientOptions {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (typeof fetchImpl !== \"function\") {\n throw new Error(\n \"No fetch implementation found. Pass `fetch` in OmniClient options.\",\n );\n }\n return {\n environment: options.environment,\n baseUrl: options.baseUrl,\n apiKey: options.apiKey,\n headers: options.headers,\n timeoutInSeconds: options.timeoutInSeconds ?? 60,\n maxRetries: options.maxRetries ?? 2,\n fetch: fetchImpl,\n };\n}\n","export const SDK_VERSION = \"0.3.0\";\nexport const SDK_USER_AGENT = `omnicommerce-js/${SDK_VERSION}`;\n","export const OmniEnvironment = {\n Production: \"https://omnicommerce.sg\",\n Local: \"http://localhost:3000\",\n} as const;\n\nexport type OmniEnvironment =\n (typeof OmniEnvironment)[keyof typeof OmniEnvironment];\n","import type { RawResponse } from \"../core/http-response-promise\";\n\nexport class OmniError extends Error {\n readonly statusCode?: number;\n readonly body?: unknown;\n readonly rawResponse?: RawResponse;\n\n constructor({\n message,\n statusCode,\n body,\n rawResponse,\n }: {\n message?: string;\n statusCode?: number;\n body?: unknown;\n rawResponse?: RawResponse;\n }) {\n super(message ?? defaultErrorMessage(statusCode, body));\n this.name = \"OmniError\";\n this.statusCode = statusCode;\n this.body = body;\n this.rawResponse = rawResponse;\n }\n}\n\nfunction defaultErrorMessage(statusCode?: number, body?: unknown): string {\n const fromBody = extractErrorMessage(body);\n if (fromBody) return fromBody;\n if (statusCode) return `Omni API error (${statusCode})`;\n return \"Omni API error\";\n}\n\nexport function extractErrorMessage(body: unknown): string | undefined {\n if (typeof body === \"string\" && body.trim()) return body;\n if (!body || typeof body !== \"object\") return undefined;\n const record = body as Record<string, unknown>;\n for (const key of [\"error\", \"message\", \"detail\"]) {\n const value = record[key];\n if (typeof value === \"string\" && value.trim()) return value;\n }\n return undefined;\n}\n","export class OmniTimeoutError extends Error {\n constructor(message = \"Request timed out\") {\n super(message);\n this.name = \"OmniTimeoutError\";\n }\n}\n","import type { RawResponse } from \"../core/http-response-promise\";\nimport { OmniError } from \"./OmniError\";\n\nexport class BadRequestError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Bad request\", statusCode: 400, body, rawResponse });\n this.name = \"BadRequestError\";\n }\n}\n\nexport class UnauthorizedError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Unauthorized\", statusCode: 401, body, rawResponse });\n this.name = \"UnauthorizedError\";\n }\n}\n\nexport class ForbiddenError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Forbidden\", statusCode: 403, body, rawResponse });\n this.name = \"ForbiddenError\";\n }\n}\n\nexport class NotFoundError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Not found\", statusCode: 404, body, rawResponse });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class UnprocessableEntityError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Unprocessable entity\",\n statusCode: 422,\n body,\n rawResponse,\n });\n this.name = \"UnprocessableEntityError\";\n }\n}\n\nexport class TooManyRequestsError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Too many requests\",\n statusCode: 429,\n body,\n rawResponse,\n });\n this.name = \"TooManyRequestsError\";\n }\n}\n\nexport class InternalServerError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Internal server error\",\n statusCode: 500,\n body,\n rawResponse,\n });\n this.name = \"InternalServerError\";\n }\n}\n\nexport class BadGatewayError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({ message: \"Bad gateway\", statusCode: 502, body, rawResponse });\n this.name = \"BadGatewayError\";\n }\n}\n\nexport class ServiceUnavailableError extends OmniError {\n constructor(body?: unknown, rawResponse?: RawResponse) {\n super({\n message: \"Service unavailable\",\n statusCode: 503,\n body,\n rawResponse,\n });\n this.name = \"ServiceUnavailableError\";\n }\n}\n\nexport function errorFromStatus(\n statusCode: number,\n body: unknown,\n rawResponse: RawResponse,\n): OmniError {\n switch (statusCode) {\n case 400:\n return new BadRequestError(body, rawResponse);\n case 401:\n return new UnauthorizedError(body, rawResponse);\n case 403:\n return new ForbiddenError(body, rawResponse);\n case 404:\n return new NotFoundError(body, rawResponse);\n case 422:\n return new UnprocessableEntityError(body, rawResponse);\n case 429:\n return new TooManyRequestsError(body, rawResponse);\n case 500:\n return new InternalServerError(body, rawResponse);\n case 502:\n return new BadGatewayError(body, rawResponse);\n case 503:\n return new ServiceUnavailableError(body, rawResponse);\n default:\n return new OmniError({ statusCode, body, rawResponse });\n }\n}\n","export type Supplier<T> = T | Promise<T> | (() => T | Promise<T>);\n\nexport async function getSupplierValue<T>(\n value: Supplier<T> | undefined,\n): Promise<T | undefined> {\n if (value === undefined) return undefined;\n if (typeof value === \"function\") {\n return await (value as () => T | Promise<T>)();\n }\n return value;\n}\n","const isPlainObject = (value: unknown): value is Record<string, unknown> =>\n Boolean(value) && Object.getPrototypeOf(value) === Object.prototype;\n\nexport function toQueryString(\n query: Record<string, unknown> | undefined,\n): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n appendQueryParam(params, key, value);\n }\n return params.toString();\n}\n\nfunction appendQueryParam(\n params: URLSearchParams,\n key: string,\n value: unknown,\n): void {\n if (value === undefined || value === null) return;\n if (Array.isArray(value)) {\n for (const item of value) appendQueryParam(params, key, item);\n return;\n }\n if (typeof value === \"boolean\" || typeof value === \"number\") {\n params.append(key, String(value));\n return;\n }\n if (typeof value === \"string\") {\n params.append(key, value);\n return;\n }\n if (isPlainObject(value) || Array.isArray(value)) {\n params.append(key, JSON.stringify(value));\n return;\n }\n params.append(key, String(value));\n}\n\nexport function joinUrl(baseUrl: string, path: string, query?: string): string {\n const trimmedBase = baseUrl.replace(/\\/+$/, \"\");\n const normalizedPath = path.startsWith(\"/\") ? path : `/${path}`;\n const url = `${trimmedBase}${normalizedPath}`;\n return query ? `${url}?${query}` : url;\n}\n","export type RawResponse = {\n status: number;\n headers: Headers;\n url: string;\n};\n\nexport type WithRawResponse<T> = {\n data: T;\n rawResponse: RawResponse;\n};\n\nexport class HttpResponsePromise<T> extends Promise<T> {\n readonly #response: Promise<WithRawResponse<T>>;\n\n private constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: unknown) => void,\n ) => void,\n response: Promise<WithRawResponse<T>>,\n ) {\n super(executor);\n this.#response = response;\n }\n\n static from<T>(\n response: Promise<WithRawResponse<T>>,\n ): HttpResponsePromise<T> {\n return new HttpResponsePromise<T>((resolve, reject) => {\n void response.then((result) => resolve(result.data), reject);\n }, response);\n }\n\n withRawResponse(): Promise<WithRawResponse<T>> {\n return this.#response;\n }\n}\n\nexport function toRawResponse(response: Response): RawResponse {\n return {\n status: response.status,\n headers: response.headers,\n url: response.url,\n };\n}\n","import { SDK_USER_AGENT } from \"../version\";\nimport { OmniEnvironment } from \"../environments\";\nimport {\n type NormalizedClientOptions,\n type BaseRequestOptions,\n} from \"../BaseClient\";\nimport { errorFromStatus, OmniError } from \"../errors\";\nimport { OmniTimeoutError } from \"../errors/OmniTimeoutError\";\nimport { getSupplierValue } from \"./supplier\";\nimport { joinUrl, toQueryString } from \"./query\";\nimport {\n HttpResponsePromise,\n toRawResponse,\n type RawResponse,\n} from \"./http-response-promise\";\n\nconst IDEMPOTENT_METHODS = new Set([\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"DELETE\"]);\n\nexport type OmniRequestInit = {\n method: string;\n path: string;\n query?: Record<string, unknown>;\n body?: unknown;\n headers?: Record<string, string | undefined>;\n timeoutInSeconds?: number;\n maxRetries?: number;\n abortSignal?: AbortSignal;\n queryParams?: Record<string, unknown>;\n};\n\nexport class OmniHttp {\n constructor(private readonly options: NormalizedClientOptions) {}\n\n request<T>(init: OmniRequestInit): HttpResponsePromise<T> {\n return HttpResponsePromise.from(this.requestWithRaw<T>(init));\n }\n\n async requestWithRaw<T>(\n init: OmniRequestInit,\n ): Promise<{ data: T; rawResponse: RawResponse }> {\n const url = await this.buildUrl(init);\n const headers = await this.buildHeaders(init);\n const serialized = serializeBody(init.body, headers);\n const timeoutMs =\n (init.timeoutInSeconds ?? this.options.timeoutInSeconds) * 1000;\n const maxRetries = init.maxRetries ?? this.options.maxRetries;\n const fetchImpl = this.options.fetch;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), timeoutMs);\n const onAbort = () => controller.abort();\n init.abortSignal?.addEventListener(\"abort\", onAbort, { once: true });\n try {\n const response = await fetchImpl(url, {\n method: init.method,\n headers,\n body: serialized.body,\n signal: controller.signal,\n });\n const rawResponse = toRawResponse(response);\n if (response.ok) {\n const data = (await parseSuccessBody(response)) as T;\n return { data, rawResponse };\n }\n const errorBody = await parseErrorBody(response);\n if (attempt < maxRetries && shouldRetry(init.method, response.status)) {\n await sleep(\n retryDelayMs(attempt, response.headers.get(\"retry-after\")),\n );\n continue;\n }\n throw errorFromStatus(response.status, errorBody, rawResponse);\n } catch (error) {\n lastError = error;\n if (error instanceof OmniError) throw error;\n const aborted =\n error instanceof Error &&\n (error.name === \"AbortError\" || error.name === \"TimeoutError\");\n if (aborted && init.abortSignal?.aborted) {\n throw error;\n }\n if (aborted) {\n lastError = new OmniTimeoutError(\n `Request timed out after ${timeoutMs}ms`,\n );\n }\n if (attempt >= maxRetries || !shouldRetry(init.method, undefined)) {\n throw lastError;\n }\n await sleep(retryDelayMs(attempt, null));\n } finally {\n clearTimeout(timeout);\n init.abortSignal?.removeEventListener(\"abort\", onAbort);\n }\n }\n throw lastError;\n }\n\n private async buildUrl(init: OmniRequestInit): Promise<string> {\n const baseUrl =\n (await getSupplierValue(this.options.baseUrl)) ??\n (await getSupplierValue(this.options.environment)) ??\n OmniEnvironment.Production;\n const query = toQueryString({\n ...init.query,\n ...init.queryParams,\n });\n return joinUrl(baseUrl, init.path, query);\n }\n\n private async buildHeaders(\n init: OmniRequestInit,\n ): Promise<Record<string, string>> {\n const headers: Record<string, string> = {\n Accept: \"application/json\",\n \"User-Agent\": SDK_USER_AGENT,\n };\n const apiKey =\n (await getSupplierValue(this.options.apiKey)) ?? readEnvApiKey();\n if (apiKey) {\n headers.Authorization = `Bearer ${apiKey}`;\n }\n if (this.options.headers) {\n for (const [key, value] of Object.entries(this.options.headers)) {\n const resolved = await getSupplierValue(value ?? undefined);\n if (resolved) headers[key] = resolved;\n }\n }\n if (init.headers) {\n for (const [key, value] of Object.entries(init.headers)) {\n if (value) headers[key] = value;\n }\n }\n return headers;\n }\n}\n\nexport function mergeRequestOptions(\n requestOptions?: BaseRequestOptions,\n): Pick<\n OmniRequestInit,\n \"timeoutInSeconds\" | \"maxRetries\" | \"abortSignal\" | \"queryParams\" | \"headers\"\n> {\n return {\n timeoutInSeconds: requestOptions?.timeoutInSeconds,\n maxRetries: requestOptions?.maxRetries,\n abortSignal: requestOptions?.abortSignal,\n queryParams: requestOptions?.queryParams,\n headers: requestOptions?.headers,\n };\n}\n\nfunction readEnvApiKey(): string | undefined {\n if (typeof process === \"undefined\" || !process.env) return undefined;\n const value = process.env.OMNI_API_KEY;\n return value && value.trim() ? value : undefined;\n}\n\nfunction serializeBody(\n body: unknown,\n headers: Record<string, string>,\n): { body?: BodyInit } {\n if (body === undefined || body === null) return {};\n if (typeof FormData !== \"undefined\" && body instanceof FormData) {\n return { body };\n }\n if (\n typeof URLSearchParams !== \"undefined\" &&\n body instanceof URLSearchParams\n ) {\n if (!headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/x-www-form-urlencoded\";\n }\n return { body };\n }\n if (typeof Blob !== \"undefined\" && body instanceof Blob) {\n return { body };\n }\n if (typeof body === \"string\") {\n if (!headers[\"Content-Type\"]) headers[\"Content-Type\"] = \"application/json\";\n return { body };\n }\n if (!headers[\"Content-Type\"]) headers[\"Content-Type\"] = \"application/json\";\n return { body: JSON.stringify(body) };\n}\n\nasync function parseSuccessBody(response: Response): Promise<unknown> {\n if (response.status === 204) return undefined;\n const contentType = response.headers.get(\"content-type\") ?? \"\";\n if (contentType.includes(\"application/json\")) {\n const text = await response.text();\n if (!text) return undefined;\n return JSON.parse(text);\n }\n if (contentType.includes(\"text/\")) {\n return response.text();\n }\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nasync function parseErrorBody(response: Response): Promise<unknown> {\n const text = await response.text();\n if (!text) return undefined;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\nfunction shouldRetry(method: string, status: number | undefined): boolean {\n if (status === 408 || status === 429) return true;\n const idempotent = IDEMPOTENT_METHODS.has(method.toUpperCase());\n if (status !== undefined) {\n return idempotent && status >= 500;\n }\n return idempotent;\n}\n\nfunction retryDelayMs(attempt: number, retryAfter: string | null): number {\n if (retryAfter) {\n const seconds = Number(retryAfter);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return Math.min(seconds * 1000, 30_000);\n }\n }\n const base = Math.min(500 * 2 ** attempt, 8_000);\n return base + Math.random() * base * 0.2;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export function encodePathParam(name: string, value: unknown): string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new Error(`Missing required path parameter: ${name}`);\n }\n return encodeURIComponent(value);\n}\n","import type { OmniHttp } from \"./core/fetcher\";\nimport { OmniError } from \"./errors\";\nimport type { BaseRequestOptions } from \"./BaseClient\";\n\nconst SUCCESS_STATUSES = new Set([\n \"completed\",\n \"complete\",\n \"succeeded\",\n \"success\",\n]);\nconst FAILURE_STATUSES = new Set([\"failed\", \"error\"]);\nconst CANCELLED_STATUSES = new Set([\"cancelled\", \"canceled\"]);\nconst TERMINAL_STATUSES = new Set([\n ...SUCCESS_STATUSES,\n ...FAILURE_STATUSES,\n ...CANCELLED_STATUSES,\n]);\n\nexport type WaitForJobRequest = {\n jobId: string;\n organizationId?: string;\n};\n\nexport type WaitForJobOptions = BaseRequestOptions & {\n intervalMs?: number;\n timeoutInSeconds?: number;\n};\n\nexport class JobFailedError extends OmniError {\n readonly jobStatus: string;\n constructor(jobStatus: string, body: unknown) {\n super({\n message: `Job ended with status \"${jobStatus}\"`,\n body,\n });\n this.name = \"JobFailedError\";\n this.jobStatus = jobStatus;\n }\n}\n\nexport function readJobStatus(payload: unknown): string | undefined {\n if (!payload || typeof payload !== \"object\") return undefined;\n const record = payload as Record<string, unknown>;\n const nested = record.data;\n if (nested && typeof nested === \"object\") {\n const nestedStatus = (nested as Record<string, unknown>).status;\n if (typeof nestedStatus === \"string\" && nestedStatus.trim()) {\n return nestedStatus;\n }\n }\n if (typeof record.status === \"string\" && record.status.trim()) {\n return record.status;\n }\n return undefined;\n}\n\nexport async function waitForJob(\n http: OmniHttp,\n request: WaitForJobRequest,\n options?: WaitForJobOptions,\n): Promise<unknown> {\n const intervalMs = options?.intervalMs ?? 2000;\n const timeoutMs = (options?.timeoutInSeconds ?? 300) * 1000;\n const started = Date.now();\n\n while (true) {\n const result = await http.requestWithRaw<unknown>({\n method: \"GET\",\n path: `/api/v1/jobs/${encodeURIComponent(request.jobId)}`,\n query: request.organizationId\n ? { organizationId: request.organizationId }\n : undefined,\n timeoutInSeconds: options?.timeoutInSeconds,\n maxRetries: options?.maxRetries,\n abortSignal: options?.abortSignal,\n queryParams: options?.queryParams,\n headers: options?.headers,\n });\n const status = readJobStatus(result.data)?.toLowerCase();\n if (status && TERMINAL_STATUSES.has(status)) {\n if (SUCCESS_STATUSES.has(status)) return result.data;\n throw new JobFailedError(status, result.data);\n }\n if (Date.now() - started + intervalMs > timeoutMs) {\n throw new OmniError({\n message: `Timed out waiting for job ${request.jobId}`,\n body: result.data,\n });\n }\n await new Promise((resolve) => setTimeout(resolve, intervalMs));\n }\n}\n","/**\n * Auto-generated from docs/openapi.json. Do not edit.\n *\n * Resource methods take one request object and use\n * `get`/`list`/`create`-style names.\n */\n\nimport type { BaseRequestOptions } from \"../BaseClient\";\nimport { mergeRequestOptions, type OmniHttp } from \"../core/fetcher\";\nimport type { HttpResponsePromise } from \"../core/http-response-promise\";\nimport { encodePathParam } from \"../core/path\";\nimport type {\n OperationBody,\n OperationPath,\n OperationQuery,\n SuccessData,\n} from \"../types\";\nimport {\n waitForJob,\n type WaitForJobOptions,\n type WaitForJobRequest,\n} from \"../jobs\";\nimport type { operations } from \"./openapi\";\n\nexport class AgentsGeneralClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Invoke the Omni agent\n *\n * Run the general Omni agent and wait until it completes, pauses for approval, or fails. Requires `agents:invoke`.\n\nA waiting call can take several minutes; raise the client timeout. Send `decisions` with the same `thread_id` to approve or reject a paused run. Omit `config.enabled_tools` to use the organization's agent tools. Attach images on the latest user message as `{ type: \"image\", url }` HTTP(S) URLs.\n *\n * `POST /api/v1/agents/general/invoke`\n */\n invoke(\n request: OperationBody<operations[\"post_v1_agents_general_invoke\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_agents_general_invoke\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/agents/general/invoke\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Start an Omni agent run\n *\n * Queue the general Omni agent and return immediately with the run in `queued` state. Poll the URL in the `Location` header (`GET /api/v1/agents/general/runs/{runId}`), honoring `Retry-After`. Requires `agents:invoke`. The request body matches invoke.\n *\n * `POST /api/v1/agents/general/runs`\n */\n start(\n request: OperationBody<operations[\"post_v1_agents_general_runs\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_agents_general_runs\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/agents/general/runs\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get an Omni agent run\n *\n * Read a queued, running, completed, paused, or failed Omni agent run. Requires `agents:invoke`.\n *\n * `GET /api/v1/agents/general/runs/{runId}`\n */\n getRun(\n request: OperationPath<operations[\"get_v1_agents_general_runs_by_runid\"]> &\n OperationQuery<operations[\"get_v1_agents_general_runs_by_runid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_agents_general_runs_by_runid\"]>\n > {\n const { runId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/agents/general/runs/${encodePathParam(\"runId\", runId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class AgentsClient {\n readonly general: AgentsGeneralClient;\n constructor(protected readonly _http: OmniHttp) {\n this.general = new AgentsGeneralClient(this._http);\n }\n}\n\nexport class AnalyticsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Sales Analytics\n *\n * Sales KPIs for a date range with the change against the previous period of equal length, a daily trend, sales by order status and by marketplace, and the top products by net sales. Matches the Orders analysis page. Requires `analytics:read`.\n\nAmounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.\n *\n * `GET /api/v1/analytics/sales`\n */\n getSales(\n request: OperationQuery<operations[\"get_v1_analytics_sales\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_analytics_sales\"]>> {\n const {\n organizationId,\n from,\n to,\n marketplace,\n country,\n store,\n currency,\n timeZone,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/analytics/sales\",\n query: {\n organizationId,\n from,\n to,\n marketplace,\n country,\n store,\n currency,\n timeZone,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class AopClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get AOP configuration\n *\n * Retrieve prompt, agent, structured inputs/output, and notification settings. Requires `aops:read`.\n *\n * `GET /api/v1/aop/{aopId}/config`\n */\n getConfig(\n request: OperationPath<operations[\"get_v1_aop_by_aopid_config\"]> &\n OperationQuery<operations[\"get_v1_aop_by_aopid_config\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_aop_by_aopid_config\"]>\n > {\n const { aopId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/config`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Overwrite AOP configuration\n *\n * Updates AOP configuration. Omitted fields keep their current values. Send `user_notification_configs: null` to clear notification overrides. Requires `aops:write`.\n *\n * `PUT /api/v1/aop/{aopId}/config`\n */\n updateConfig(\n request: OperationPath<operations[\"put_v1_aop_by_aopid_config\"]> &\n OperationBody<operations[\"put_v1_aop_by_aopid_config\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_aop_by_aopid_config\"]>\n > {\n const { aopId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/config`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Execute an AOP\n *\n * Start an AOP run and return immediately with a `thread_id`. Poll `GET /api/v1/threads/{thread_id}/status`. Requires `aops:write`.\n *\n * `POST /api/v1/aop/{aopId}/execute`\n */\n execute(\n request: OperationPath<operations[\"post_v1_aop_by_aopid_execute\"]> &\n OperationBody<operations[\"post_v1_aop_by_aopid_execute\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_aop_by_aopid_execute\"]>\n > {\n const { aopId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/aop/${encodePathParam(\"aopId\", aopId)}/execute`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create AOP\n *\n * Create an organization-scoped AOP. Use `[[ placeholder ]]` in the prompt for user inputs supplied at execution time. Requires `aops:write`.\n *\n * `POST /api/v1/aop/create`\n */\n create(\n request: OperationBody<operations[\"post_v1_aop_create\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_aop_create\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/aop/create\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Retry a failed AOP execution\n *\n * Looks up a failed AOP thread, then enqueues a new run. Requires `aops:write`.\n *\n * `POST /api/v1/aop/retry`\n */\n retry(\n request: OperationBody<operations[\"post_v1_aop_retry\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_aop_retry\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/aop/retry\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ApiClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * API Root\n *\n * Public API discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.\n *\n * `GET /api`\n */\n root(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_root\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * API v1 Root\n *\n * Public API v1 discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.\n *\n * `GET /api/v1`\n */\n v1(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CampaignsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Campaigns\n *\n * List campaigns for the authenticated organization. `stage=all` is the workspace working set: draft and running. Requires `promotions:read`.\n *\n * `GET /api/v1/campaigns`\n */\n list(\n request: OperationQuery<operations[\"get_v1_campaigns\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_campaigns\"]>> {\n const { organizationId, q, stage, offset, limit } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/campaigns\",\n query: { organizationId, q, stage, offset, limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Campaign\n *\n * Create a draft campaign. `ownerId` and `approverId` must be members of the organization, and every store must already be connected. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns`\n */\n create(\n request: OperationBody<operations[\"post_v1_campaigns\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Campaign\n *\n * Read one campaign, including its plan, executions, audit, schedule, and progress. Requires `promotions:read`.\n *\n * `GET /api/v1/campaigns/{campaignId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_campaigns_by_campaignid\"]> &\n OperationQuery<operations[\"get_v1_campaigns_by_campaignid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_campaigns_by_campaignid\"]>\n > {\n const { campaignId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Campaign\n *\n * Replace a draft or approved plan, or propose one change to a running plan. Send `expectedRevision` from the last read. Requires `promotions:write`.\n *\n * `PUT /api/v1/campaigns/{campaignId}`\n */\n replace(\n request: OperationPath<operations[\"put_v1_campaigns_by_campaignid\"]> &\n OperationBody<operations[\"put_v1_campaigns_by_campaignid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_campaigns_by_campaignid\"]>\n > {\n const { campaignId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Act on Campaign\n *\n * Approve, start, end, resume, retry, or decide a proposed live change. Approve, run, resume, and approving a change must be called by the named approver. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/{campaignId}/actions`\n */\n actions(\n request: OperationPath<\n operations[\"post_v1_campaigns_by_campaignid_actions\"]\n > &\n OperationBody<operations[\"post_v1_campaigns_by_campaignid_actions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_campaigns_by_campaignid_actions\"]>\n > {\n const { campaignId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/campaigns/${encodePathParam(\"campaignId\", campaignId)}/actions`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Archive Campaigns\n *\n * Archive campaigns, or restore archived campaigns by id or by the current archived list filters. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/archive`\n */\n archive(\n request: OperationBody<operations[\"post_v1_campaigns_archive\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns_archive\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns/archive\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Campaigns\n *\n * Permanently delete archived campaigns by explicit id or by archived list filters. Requires `promotions:write`.\n *\n * `POST /api/v1/campaigns/delete`\n */\n delete(\n request: OperationBody<operations[\"post_v1_campaigns_delete\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_campaigns_delete\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/campaigns/delete\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Campaign Options\n *\n * List the organization members and connected stores a campaign plan can name. Use a member `id` for `ownerId` and `approverId`. Requires `promotions:write`.\n *\n * `GET /api/v1/campaigns/options`\n */\n getOptions(\n request: OperationQuery<operations[\"get_v1_campaigns_options\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_campaigns_options\"]>> {\n const { organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/campaigns/options\",\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CatalogClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Export Catalog Items\n *\n * Cursor-page the authenticated organization's product and variant catalog for pricing systems. Requires `catalog:read`.\n\nEach item includes product-family identity, SKU/UPC, cost, current, sale, compare-at, MAP, and MSRP prices, inventory, active promotion context, and exact marketplace identifiers. Set `format=csv` for a flat catalog-intake CSV shape.\n *\n * `GET /api/v1/catalog/items`\n */\n listItems(\n request: OperationQuery<operations[\"get_v1_catalog_items\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_catalog_items\"]>> {\n const { organizationId, updatedSince, cursor, limit, format } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/catalog/items\",\n query: { organizationId, updatedSince, cursor, limit, format },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CheckoutSessionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create Agentic Checkout Session\n *\n * Create a merchant-fulfilled checkout session, reserve inventory, and return rail-specific payment requirements. Requires an OAuth client token with `checkout:write`.\n *\n * `POST /api/v1/checkout-sessions`\n */\n create(\n request: OperationBody<operations[\"post_v1_checkout_sessions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_checkout_sessions\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/checkout-sessions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Agentic Checkout Session\n *\n * Fetch the current checkout session, cart items, totals, payment requirements, and linked order when completed.\n *\n * `GET /api/v1/checkout-sessions/{sessionId}`\n */\n get(\n request: OperationPath<\n operations[\"get_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"get_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Agentic Checkout Session\n *\n * Update cart/contact fields, recompute totals, and refresh inventory reservations before payment. Requires `checkout:write`.\n *\n * `PATCH /api/v1/checkout-sessions/{sessionId}`\n */\n update(\n request: OperationPath<\n operations[\"patch_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"patch_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"patch_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Replace Agentic Checkout Session Fields\n *\n * UCP-compatible update method for cart/contact fields. The current implementation applies provided fields and leaves omitted fields unchanged. Requires `checkout:write`.\n *\n * `PUT /api/v1/checkout-sessions/{sessionId}`\n */\n replace(\n request: OperationPath<\n operations[\"put_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"put_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"put_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel Agentic Checkout Session\n *\n * Cancel a ready-for-payment checkout session and release reserved inventory. This operation is exposed for UCP REST clients and requires `checkout:write`.\n *\n * `POST /api/v1/checkout-sessions/{sessionId}/cancel`\n */\n cancel(\n request: OperationPath<\n operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n OperationQuery<\n operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n Record<string, unknown>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_checkout_sessions_by_sessionid_cancel\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/cancel`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Complete Agentic Checkout Session\n *\n * Settle the selected rail and create a native `agentic` order. Settlement failures return 402 and leave the session in `ready_for_payment`.\n *\n * `POST /api/v1/checkout-sessions/{sessionId}/complete`\n */\n complete(\n request: OperationPath<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationQuery<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationBody<\n operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_checkout_sessions_by_sessionid_complete\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/complete`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class CompareClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Compare Public Products\n *\n * Compare 2 to 10 public products side-by-side across price, ACO readiness, marketplace coverage, and inventory.\n *\n * `GET /api/v1/compare`\n */\n get(\n request: OperationQuery<operations[\"get_v1_compare\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_compare\"]>> {\n const { products, language } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/compare\",\n query: { products, language },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class DirectoryClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Public Merchants\n *\n * Discover merchants with public products available through OmniCommerce's public agent APIs.\n *\n * `GET /api/v1/directory`\n */\n list(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_directory\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/directory\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class EvaluateClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Evaluate SKU Readiness\n *\n * Score a persisted product or inline SKU payload for agentic commerce readiness, engine eligibility, and recommended fixes.\n *\n * `POST /api/v1/evaluate`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_evaluate\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/evaluate\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class FeedClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Merchant LLM Feed\n *\n * Return a plain-text, LLM-optimized merchant feed keyed by website domain.\n *\n * `GET /api/v1/feed/{domain}/llms.txt`\n */\n getLlmsTxt(\n request: OperationPath<operations[\"get_v1_feed_by_domain_llms_txt\"]> &\n OperationQuery<operations[\"get_v1_feed_by_domain_llms_txt\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_feed_by_domain_llms_txt\"]>\n > {\n const { domain, limit } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/feed/${encodePathParam(\"domain\", domain)}/llms.txt`,\n query: { limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ImagesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Generate Ghost Mannequin Image\n *\n * Remove the visible mannequin from a product photo and return the generated image URL. The source image must be an HTTP(S) URL; data URIs are rejected. Authenticate with an OmniCommerce API key that has the `catalog:enrich` scope.\n *\n * `POST /api/v1/images/ghost-mannequin`\n */\n ghostMannequin(\n request: OperationBody<operations[\"post_v1_images_ghost_mannequin\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_images_ghost_mannequin\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/images/ghost-mannequin\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class JobsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Developer Job Status\n *\n * Fetch shared async status for developer-platform operations, including product workflow jobs, bulk CSV import jobs, Look generation jobs, import jobs, enrichment jobs, and sync jobs.\n *\n * `GET /api/v1/jobs/{jobId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_jobs_by_jobid\"]> &\n OperationQuery<operations[\"get_v1_jobs_by_jobid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_jobs_by_jobid\"]>> {\n const { jobId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/jobs/${encodePathParam(\"jobId\", jobId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel Developer Job\n *\n * Request cancellation for a running or pending developer job.\n\nSupported jobs:\n\n- Product workflows returned by `POST /api/v1/products`\n\n- Bulk CSV imports returned by `POST /api/v1/products/bulk-import`\n\n- Look generation returned by `POST /api/v1/looks`\n\nCompleted or failed jobs cannot be cancelled and are returned with their current terminal status.\n *\n * `POST /api/v1/jobs/{jobId}/cancel`\n */\n cancel(\n request: OperationPath<operations[\"post_v1_jobs_by_jobid_cancel\"]> &\n OperationBody<operations[\"post_v1_jobs_by_jobid_cancel\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_jobs_by_jobid_cancel\"]>\n > {\n const { jobId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/jobs/${encodePathParam(\"jobId\", jobId)}/cancel`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Poll `GET /api/v1/jobs/{jobId}` until the nested job status is terminal.\n */\n wait(\n request: WaitForJobRequest,\n requestOptions?: WaitForJobOptions,\n ): Promise<unknown> {\n return waitForJob(this._http, request, requestOptions);\n }\n}\n\nexport class LooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Looks\n *\n * List AI-styled product Looks for the authenticated organization, newest first. Use query parameters for search, status filtering, and pagination.\n *\n * `GET /api/v1/looks`\n */\n list(\n request: OperationQuery<operations[\"get_v1_looks\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_looks\"]>> {\n const { q, status, limit, offset } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/looks\",\n query: { q, status, limit, offset },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Look\n *\n * Create a Look from existing catalog products and queue AI image generation for a fast preview. The response is asynchronous: poll `GET /api/v1/jobs/{jobId}?organizationId={organizationId}` until the `look_...` job completes, then fetch the generated Look with `GET /api/v1/looks/{lookId}`.\n *\n * `POST /api/v1/looks`\n */\n create(\n request: OperationBody<operations[\"post_v1_looks\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_looks\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/looks\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Look\n *\n * Fetch a single Look by ID, including the generated hero image URL and the shoppable product cards used in the Look.\n *\n * `GET /api/v1/looks/{lookId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_looks_by_lookid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_looks_by_lookid\"]>> {\n const { lookId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/looks/${encodePathParam(\"lookId\", lookId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MarketplacesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Connected Marketplaces\n *\n * List connected marketplace stores for the authenticated organization. Results are scoped to the API key organization unless `organizationId` is supplied for session-authenticated calls.\n *\n * `GET /api/v1/marketplaces/connected`\n */\n listConnected(\n request: OperationQuery<operations[\"get_v1_marketplaces_connected\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_marketplaces_connected\"]>\n > {\n const { organizationId, marketplace, country } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/marketplaces/connected\",\n query: { organizationId, marketplace, country },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MerchantsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Public Merchant Manifest\n *\n * Return machine-readable capability and endpoint metadata for a single public merchant.\n *\n * `GET /api/v1/merchants/{merchantId}/manifest`\n */\n getManifest(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_manifest\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_manifest\"]>\n > {\n const { merchantId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/manifest`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * List Public Merchant Products\n *\n * Browse a single merchant's public product feed with optional marketplace and localization filters.\n *\n * `GET /api/v1/merchants/{merchantId}/products`\n */\n listProducts(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_products\"]\n > &\n OperationQuery<operations[\"get_v1_merchants_by_merchantid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_products\"]>\n > {\n const { merchantId, platform, country, language, limit, offset } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/products`,\n query: { platform, country, language, limit, offset },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Search Within Public Merchant Catalog\n *\n * Search within a single merchant's public product feed using the same filter model as the cross-merchant search API.\n *\n * `GET /api/v1/merchants/{merchantId}/search`\n */\n search(\n request: OperationPath<\n operations[\"get_v1_merchants_by_merchantid_search\"]\n > &\n OperationQuery<operations[\"get_v1_merchants_by_merchantid_search\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_merchants_by_merchantid_search\"]>\n > {\n const {\n merchantId,\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/merchants/${encodePathParam(\"merchantId\", merchantId)}/search`,\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class MonitorClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Run AI Shelf Share Monitor\n *\n * Queue AI Shelf Share replay/monitoring for a product, query, or organization catalog.\n *\n * `POST /api/v1/monitor`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_monitor\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/monitor\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OauthClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Revoke Access Token\n *\n * Revoke an OAuth bearer access token using client_secret_post authentication.\n *\n * `POST /api/v1/oauth/revoke`\n */\n revoke(\n request: OperationBody<operations[\"post_v1_oauth_revoke\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_oauth_revoke\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/oauth/revoke\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Access Token\n *\n * Exchange client credentials for an access token using OAuth 2.0 client_credentials grant. Tokens are valid for 1 hour.\n *\n * `POST /api/v1/oauth/token`\n */\n token(\n request: OperationBody<operations[\"post_v1_oauth_token\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_oauth_token\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/oauth/token\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OrdersClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Orders\n *\n * List orders for the authenticated organization using the same filters, sorting, and pagination semantics as the workspace Orders listing page. Requires `orders:read`.\n *\n * `GET /api/v1/orders`\n */\n list(\n request: OperationQuery<operations[\"get_v1_orders\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_orders\"]>> {\n const {\n organizationId,\n q,\n status,\n marketplace,\n country,\n store,\n bundleType,\n sortBy,\n dateFrom,\n dateTo,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/orders\",\n query: {\n organizationId,\n q,\n status,\n marketplace,\n country,\n store,\n bundleType,\n sortBy,\n dateFrom,\n dateTo,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Order\n *\n * Create a native `agentic` order with line items. This operation uses the same upsert path as agentic checkout completion.\n\n### Authentication\n\nRequires `orders:write`.\n\n### Upsert behavior\n\n- Reusing an `externalOrderId` updates the existing order instead of creating a duplicate.\n- For one-row-per-SKU integrations, use the marketplace order ID as `externalOrderId` and the row ID as `items[].externalOrderItemId`.\n- When `totalAmount` is omitted, OmniCommerce recomputes it from all order lines after the upsert.\n\n### Pricing and catalog defaults\n\n- Each line can provide `price`, `unitPrice`, `paidPrice`, and `costPrice`.\n- When `productId` is provided, missing price or currency values may resolve from the product catalog.\n- An explicit `costPrice` updates `product_data.costPrice` and is snaps\n *\n * `POST /api/v1/orders`\n */\n create(\n request: OperationBody<operations[\"post_v1_orders\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_orders\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/orders\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Order\n *\n * Get one order by its OmniCommerce UUID for the authenticated organization.\n\n### Authentication\n\nRequires `orders:read`.\n\n### Response\n\nThe organization-scoped detail includes:\n\n- Line items and normalized status\n- Buyer and contact fields\n- Shipping and billing addresses\n- Return context\n- Finance breakdown\n- Settlement projection, when available\n\nOrders outside the authenticated organization are not exposed and return `404 Not Found`.\n *\n * `GET /api/v1/orders/{orderId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_orders_by_orderid\"]> &\n OperationQuery<operations[\"get_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_orders_by_orderid\"]>> {\n const { orderId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Order\n *\n * Update a native **agentic** order.\n\n### Authentication\n\nRequires `orders:write`.\n\n### Supported changes\n\n- External order identifiers, status, currency, and country\n- `totalAmount`, `shippingFee`, and `discountAmount`\n- Metadata and `orderCreatedAt`\n- Line identifiers, prices, COGS, currency, status, and quantity\n\n### Line upserts\n\n- A matching `externalOrderItemId` updates the existing line.\n- A new `externalOrderItemId` with `productName` and `quantity` appends a line.\n- When lines change and `totalAmount` is omitted, OmniCommerce recomputes the total from all lines.\n\n### Country resolution\n\nWhen `country` is omitted and the stored country is empty, OmniCommerce may derive it from an unambiguous resulting order currency.\n\n### Restrictions and events\n\nMarketplace-owned orders from Shopee,\n *\n * `PATCH /api/v1/orders/{orderId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_orders_by_orderid\"]> &\n OperationBody<operations[\"patch_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_orders_by_orderid\"]>\n > {\n const { orderId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Order Action Options\n *\n * Ask the marketplace which choices an action needs, such as pickup or drop-off for `ship`. Requires `orders:write`.\n\nSend the chosen choice's `payload` with `POST /api/v1/orders/{orderId}/actions`.\n *\n * `GET /api/v1/orders/{orderId}/action-options`\n */\n getActionOptions(\n request: OperationPath<\n operations[\"get_v1_orders_by_orderid_action_options\"]\n > &\n OperationQuery<operations[\"get_v1_orders_by_orderid_action_options\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_orders_by_orderid_action_options\"]>\n > {\n const { orderId, organizationId, action } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}/action-options`,\n query: { organizationId, action },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * List Order Actions\n *\n * The order's 20 most recent action jobs, newest first, plus its latest successful label job. Requires `orders:read`.\n\nPoll this after queueing an action. A succeeded `labels` job lists its label files in `labels`.\n *\n * `GET /api/v1/orders/{orderId}/actions`\n */\n listActions(\n request: OperationPath<operations[\"get_v1_orders_by_orderid_actions\"]> &\n OperationQuery<operations[\"get_v1_orders_by_orderid_actions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_orders_by_orderid_actions\"]>\n > {\n const { orderId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}/actions`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Queue Order Action\n *\n * Ship, cancel, generate shipping labels for, or update tracking on a marketplace order. Requires `orders:write`.\n\nThe marketplace call runs in the background: the response is `202` with `jobId`; poll `GET /api/v1/orders/{orderId}/actions`. A repeated `idempotencyKey` returns `200` with the original job.\n *\n * `POST /api/v1/orders/{orderId}/actions`\n */\n queueAction(\n request: OperationPath<operations[\"post_v1_orders_by_orderid_actions\"]> &\n OperationBody<operations[\"post_v1_orders_by_orderid_actions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_orders_by_orderid_actions\"]>\n > {\n const { orderId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/orders/${encodePathParam(\"orderId\", orderId)}/actions`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OrganizationsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create Organization\n *\n * Create a new organization for the signed-in user. This endpoint uses first-party session authentication because API keys are scoped to an existing organization.\n *\n * `POST /api/v1/organizations`\n */\n create(\n request: OperationBody<operations[\"post_v1_organizations\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_organizations\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/organizations\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class PriceBooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Price Book Rules\n *\n * List marketplace price book rules for the authenticated organization. A rule applies either a buyer formula or a markup percent to the catalog price at publish time, by platform and optional store/country. Requires `price_books:read`.\n *\n * `GET /api/v1/price-books`\n */\n list(\n request: OperationQuery<operations[\"get_v1_price_books\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_price_books\"]>> {\n const { organizationId, platform, enabledOnly } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/price-books\",\n query: { organizationId, platform, enabledOnly },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Price Book Rule\n *\n * Create a marketplace price book rule for a platform (optional store and country). Does not change Omni product prices. Requires `price_books:write`.\n\n`expression` is the buyer formula and replaces markup percent. `price` in that formula is the catalog price, not cost price. Without an expression, `marginValue` is the markup percent.\n *\n * `POST /api/v1/price-books`\n */\n create(\n request: OperationBody<operations[\"post_v1_price_books\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_price_books\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/price-books\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Price Book Rule\n *\n * Delete a marketplace price book rule by ID. Requires `price_books:write`.\n *\n * `DELETE /api/v1/price-books/{ruleId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"delete_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Price Book Rule\n *\n * Fetch one marketplace price book rule by ID. Requires `price_books:read`.\n *\n * `GET /api/v1/price-books/{ruleId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"get_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Price Book Rule\n *\n * Update store, country, markup, buyer formula, rounding, currency, or enabled flag for a price book rule. Platform cannot be changed; create a new rule instead. Requires `price_books:write`.\n *\n * `PATCH /api/v1/price-books/{ruleId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_price_books_by_ruleid\"]> &\n OperationQuery<operations[\"patch_v1_price_books_by_ruleid\"]> &\n OperationBody<operations[\"patch_v1_price_books_by_ruleid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_price_books_by_ruleid\"]>\n > {\n const { ruleId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/price-books/${encodePathParam(\"ruleId\", ruleId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Preview Channel List Price\n *\n * Compute channel list price from a canonical list price using matching enabled rules (or a forced ruleId). Requires `price_books:read`.\n *\n * `POST /api/v1/price-books/preview`\n */\n preview(\n request: OperationBody<operations[\"post_v1_price_books_preview\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_price_books_preview\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/price-books/preview\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ProductCategoriesClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Recommend Marketplace Product Categories\n *\n * Suggest best-fit marketplace categories and category attribute values for a persisted product using semantic taxonomy search. Authenticate with an OmniCommerce API key as `Authorization: Bearer omni_sk_...`.\n *\n * `POST /api/v1/manage-product-category/recommend`\n */\n recommend(\n request: OperationBody<\n operations[\"post_v1_manage_product_category_recommend\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_manage_product_category_recommend\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/manage-product-category/recommend\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ProductsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Products\n *\n * List products for the authenticated organization with optional filters and pagination. Authenticate with an API key or OAuth bearer token. The organization is taken from that credential; do not send `organizationId`.\n\n### Stock and variants\n\nRows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. A row with `variantCount` above 0 has variants; fetch them from `GET /api/v1/products/{productId}`. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.\n *\n * `GET /api/v1/products`\n */\n list(\n request: OperationQuery<operations[\"get_v1_products\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_products\"]>> {\n const {\n status,\n marketplace,\n country,\n q,\n sku,\n minPrice,\n maxPrice,\n sortBy,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/products\",\n query: {\n status,\n marketplace,\n country,\n q,\n sku,\n minPrice,\n maxPrice,\n sortBy,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Product\n *\n * Queue a single-product create workflow for the authenticated organization. Product enrichment is disabled by default; set `workflow.enrich` to `true` to enable it.\n\n### Request behavior\n\n- `product` contains developer-supplied fields. Unknown fields are preserved as enrichment context.\n- SKU is the unique product upsert identifier.\n- Externally hosted HTTP(S) images are copied to managed R2 storage.\n- `targetMarketplaces` and `targetCountries` are optional; enrichment can run without publishing targets.\n\n### Asynchronous result\n\nThe API returns a job ID. Poll `GET /api/v1/jobs/{jobId}` for completion. Product creation, image ingestion, enrichment, and taxonomy assignment run in the same product workflow job. ACO generation runs separately when enabled; poll `result.geoJobId` for its comple\n *\n * `POST /api/v1/products`\n */\n create(\n request: OperationBody<operations[\"post_v1_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Product\n *\n * Soft-delete a product by ID. The product will be marked as deleted but not permanently removed. Call again on a deleted product to permanently delete it. Supports API key Bearer token authentication.\n *\n * `DELETE /api/v1/products/{productId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_products_by_productid\"]>\n > {\n const { productId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Product\n *\n * Retrieve a single product by ID for the authenticated organization.\n\nAuthenticate with an API key using Bearer token authentication.\n\nWhen available, the response includes generated Agentic Commerce Optimization (ACO) data:\n\n- Profile metadata and FAQs\n- Localization content and cultural notes\n- Intent queries and signals\n- Sources and claims\n\nA parent product returns its variants in `variants`, with each variant's option values, price, stock, image, and marketplace listings.\n *\n * `GET /api/v1/products/{productId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_products_by_productid\"]>\n > {\n const { productId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product\n *\n * Update an existing product by ID. Only provided fields will be updated. Supports API key Bearer token authentication.\n *\n * `PATCH /api/v1/products/{productId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_products_by_productid\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Cost\n *\n * Set catalog cost for one simple product or variant UUID. Cost is Omni-only and never syncs to marketplaces. Prefer `POST /api/v1/products/cost` for Windmill or other bulk jobs.\n\nRequires `catalog:write`. When `costPriceCurrency` differs from the product selling currency and `costPriceFxRate` is omitted, Omni stores an FX quote on the product.\n *\n * `PATCH /api/v1/products/{productId}/cost`\n */\n updateCost(\n request: OperationPath<operations[\"patch_v1_products_by_productid_cost\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid_cost\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_cost\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/cost`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delist Product\n *\n * Queue delist for one product on the marketplaces you name. `marketplaces` accepts one or more of shopee, lazada, tiktok, shopify, whatsapp, zalora, amazon, and ebay. Each named marketplace must already have a listing; other channels are left untouched. Omit `marketplaces` to delist every existing listing. This does not delete the OmniCommerce product.\n\nPoll GET /api/v1/jobs/{jobId} until data.status is succeeded, partial, or failed. Accepted means the job was queued, not that the marketplace has removed the listing.\n *\n * `POST /api/v1/products/{productId}/delist`\n */\n delist(\n request: OperationPath<operations[\"post_v1_products_by_productid_delist\"]> &\n OperationBody<operations[\"post_v1_products_by_productid_delist\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_by_productid_delist\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/delist`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Inventory\n *\n * Update canonical on-hand inventory for a simple product or variant UUID. Multi-variant parent products must be updated through their variant IDs. A successful quantity change emits `product.inventory.changed` to matching developer webhook subscriptions.\n\n### Authorization\n\nRequires an API credential with `catalog:write`. OmniCommerce derives `organizationId` from that credential; the request body cannot select or override an organization. ERP-managed and multi-source inventory keeps its existing ownership protections.\n\n### Marketplace sync\n\nThe update is Omni-only by default. Set `syncToMarketplaces` to `true` to create one durable inventory outbox job per marketplace account. Omit `targets` to sync every enabled, published account for the product, or provide exact `{ platform, accountId }\n *\n * `PATCH /api/v1/products/{productId}/inventory`\n */\n updateInventory(\n request: OperationPath<\n operations[\"patch_v1_products_by_productid_inventory\"]\n > &\n OperationBody<operations[\"patch_v1_products_by_productid_inventory\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_inventory\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/inventory`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Product Listings\n *\n * Where a product is listed: each marketplace's store, live or delisted state, item id, buyer-facing URL, and the latest publish attempt with any rejection details. Requires `catalog:read`.\n\nPoll after `POST /api/v1/products/{productId}/publish`.\n *\n * `GET /api/v1/products/{productId}/listings`\n */\n getListings(\n request: OperationPath<\n operations[\"get_v1_products_by_productid_listings\"]\n > &\n OperationQuery<operations[\"get_v1_products_by_productid_listings\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_products_by_productid_listings\"]>\n > {\n const { productId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/listings`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Product Price\n *\n * Update the canonical catalog price for a simple product or variant UUID. Multi-variant parent products must be updated through their variant IDs. A successful change emits `product.price.changed` to matching developer webhook subscriptions.\n\n### Authorization\n\nRequires an API credential with `catalog:write`. OmniCommerce derives `organizationId` from that credential; the request body cannot select or override an organization.\n\n### Marketplace sync\n\nThe update is Omni-only by default. Set `syncToMarketplaces` to `true` to queue durable marketplace work. Omit `targets` to sync every enabled, published account for the product, or provide exact `{ platform, accountId }` targets. Every explicit target is validated before the catalog changes. The response contains pollable job IDs and immediate\n *\n * `PATCH /api/v1/products/{productId}/price`\n */\n updatePrice(\n request: OperationPath<operations[\"patch_v1_products_by_productid_price\"]> &\n OperationBody<operations[\"patch_v1_products_by_productid_price\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_products_by_productid_price\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/price`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Publish Product\n *\n * Queue marketplace publish jobs for a product by productId. OmniCommerce publishes to the marketplaces already enabled on the product and uses the product's store selection or a single/default connected store.\n *\n * `POST /api/v1/products/{productId}/publish`\n */\n publish(\n request: OperationPath<\n operations[\"post_v1_products_by_productid_publish\"]\n > &\n OperationBody<operations[\"post_v1_products_by_productid_publish\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_by_productid_publish\"]>\n > {\n const { productId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/products/${encodePathParam(\"productId\", productId)}/publish`,\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Bulk Import Products from JSON or CSV\n *\n * Queue a bulk product import for the authenticated organization.\n\n### Input options\n\n- Upload a CSV (2 MiB) or JSON products file (8 MiB) using `multipart/form-data`.\n- Send JSON with a `products` array of 1–1,000 flat product objects (8 MiB request maximum).\n- Send JSON with inline `csvText`.\n- Send JSON referencing a stored `documentId`.\n\n### Asynchronous result\n\nThe API creates import rows, then queues draft creation and AI Review through Inngest. Completed import jobs expose `reviewBatchIds`, `reviewUrls`, and `reviewWarnings`; generated changes require Review approval. Poll the returned `bulk_...` job with `GET /api/v1/jobs/{jobId}`.\n\nCancel an in-flight import with `POST /api/v1/jobs/{jobId}/cancel`.\n *\n * `POST /api/v1/products/bulk-import`\n */\n bulkImport(\n request: OperationBody<operations[\"post_v1_products_bulk_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_products_bulk_import\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/bulk-import\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Batch Update Product Cost\n *\n * Set catalog cost price and currency for one or more products. Cost is Omni-only and never syncs to marketplaces.\n\nEach update targets `productId` or `sku` (Omni `products.sku`). Provide `costPrice` with `costPriceCurrency` when the source amount is not in the product selling currency. If `costPriceFxRate` is omitted and the currencies differ, Omni quotes FX via the canonical FX service and stores the rate on the product.\n\n### Authorization\n\nRequires `catalog:write`. `organizationId` comes from the credential; the body cannot select an organization.\n\n### Limits\n\n`updates` is required, 1–200 items. Duplicate product IDs fail after the first occurrence. `costPrice: null` clears cost and FX.\n *\n * `POST /api/v1/products/cost`\n */\n updateCosts(\n request: OperationBody<operations[\"post_v1_products_cost\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products_cost\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/cost\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Queue Product Enrichment\n *\n * Requires catalog:enrich. Queue content enrichment for 1–1,000 existing Omni product IDs across all supported marketplaces. Returns 202 after queue submission without awaiting AI completion or publishing.\n\n### Enrichment options\n\nFields, instructions and auto-apply settings use the canonical enrichment service. Exclude name from selectedFields to preserve titles. Weight and dimensions are always included; image and taxonomy workflows are not queued here.\n\nautoApplyHighConfidence defaults to false. When enabled, the supplied threshold (0.62–1) or organization threshold applies; low-confidence or blocked proposals remain in Review. AI usage is billed to the authenticated organization. Open links.review to inspect results.\n *\n * `POST /api/v1/products/enrich`\n */\n enrich(\n request: OperationBody<operations[\"post_v1_products_enrich\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_products_enrich\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/products/enrich\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class PromotionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Promotions\n *\n * List central promotions for the authenticated organization with filters and offset pagination matching the workspace Promotions listing. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions`\n */\n list(\n request: OperationQuery<operations[\"get_v1_promotions\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_promotions\"]>> {\n const {\n organizationId,\n q,\n status,\n marketplace,\n store,\n sortBy,\n sortDir,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/promotions\",\n query: {\n organizationId,\n q,\n status,\n marketplace,\n store,\n sortBy,\n sortDir,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Promotion\n *\n * Create a central promotion targeting connected stores. Requires `promotions:write`. Fixed-amount discounts resolve currency from the selected store countries.\n *\n * `POST /api/v1/promotions`\n */\n create(\n request: OperationBody<operations[\"post_v1_promotions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_promotions\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/promotions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Delete Promotion\n *\n * Delete a promotion by ID. Requires `promotions:write`.\n *\n * `DELETE /api/v1/promotions/{promotionId}`\n */\n delete(\n request: OperationPath<operations[\"delete_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"delete_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Promotion\n *\n * Fetch one promotion by ID, including effective status. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions/{promotionId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"get_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update Promotion\n *\n * Update promotion fields (name, discount, schedule, status, stores). Requires `promotions:write`.\n *\n * `PATCH /api/v1/promotions/{promotionId}`\n */\n update(\n request: OperationPath<operations[\"patch_v1_promotions_by_promotionid\"]> &\n OperationQuery<operations[\"patch_v1_promotions_by_promotionid\"]> &\n OperationBody<operations[\"patch_v1_promotions_by_promotionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_v1_promotions_by_promotionid\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Unassign Products from Promotion\n *\n * Remove product assignments and queue marketplace teardown. Requires `promotions:write`.\n *\n * `DELETE /api/v1/promotions/{promotionId}/products`\n */\n removeProducts(\n request: OperationPath<\n operations[\"delete_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<\n operations[\"delete_v1_promotions_by_promotionid_products\"]\n > &\n OperationBody<operations[\"delete_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"delete_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"DELETE\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * List Promotion Assignments\n *\n * List products assigned to a promotion. Requires `promotions:read`.\n *\n * `GET /api/v1/promotions/{promotionId}/products`\n */\n listProducts(\n request: OperationPath<\n operations[\"get_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<operations[\"get_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Assign Products to Promotion\n *\n * Assign one or more products to a promotion. Creates pending marketplace sync rows; call sync after assign. Requires `promotions:write`.\n *\n * `POST /api/v1/promotions/{promotionId}/products`\n */\n addProducts(\n request: OperationPath<\n operations[\"post_v1_promotions_by_promotionid_products\"]\n > &\n OperationQuery<operations[\"post_v1_promotions_by_promotionid_products\"]> &\n OperationBody<operations[\"post_v1_promotions_by_promotionid_products\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_promotions_by_promotionid_products\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/products`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Sync Promotion to Marketplaces\n *\n * Queue marketplace push for assigned products (Shopee promotion, Lazada Store Flash Sale/voucher/Flexicombo, TikTok activity, or Shopify discount). Requires `promotions:write`.\n *\n * `POST /api/v1/promotions/{promotionId}/sync`\n */\n sync(\n request: OperationPath<\n operations[\"post_v1_promotions_by_promotionid_sync\"]\n > &\n OperationQuery<operations[\"post_v1_promotions_by_promotionid_sync\"]> &\n OperationBody<operations[\"post_v1_promotions_by_promotionid_sync\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_promotions_by_promotionid_sync\"]>\n > {\n const { promotionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/promotions/${encodePathParam(\"promotionId\", promotionId)}/sync`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ReturnsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Returns\n *\n * List normalized, PII-free marketplace returns with SKU-level lines. Requires `returns:read`. Use updatedSince and cursor for bootstrap/recovery alongside return webhooks.\n *\n * `GET /api/v1/returns`\n */\n list(\n request: OperationQuery<operations[\"get_v1_returns\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_returns\"]>> {\n const {\n organizationId,\n marketplace,\n accountId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/returns\",\n query: {\n organizationId,\n marketplace,\n accountId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Return\n *\n * Get one normalized, PII-free return by OmniCommerce UUID. Requires `returns:read`; another organization's return returns 404.\n *\n * `GET /api/v1/returns/{returnId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_returns_by_returnid\"]> &\n OperationQuery<operations[\"get_v1_returns_by_returnid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_returns_by_returnid\"]>\n > {\n const { returnId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/returns/${encodePathParam(\"returnId\", returnId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ReviewsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Reviews\n *\n * List marketplace product reviews, newest first unless `sortBy` says otherwise. Requires `reviews:read`.\n\nUse `priority=unreplied` for a reply queue. `replyRestriction` is null when a reply will be accepted.\n *\n * `GET /api/v1/reviews`\n */\n list(\n request: OperationQuery<operations[\"get_v1_reviews\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_reviews\"]>> {\n const {\n organizationId,\n q,\n marketplace,\n status,\n priority,\n store,\n productId,\n sortBy,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/reviews\",\n query: {\n organizationId,\n q,\n marketplace,\n status,\n priority,\n store,\n productId,\n sortBy,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Review\n *\n * Read one review by its OmniCommerce UUID. Requires `reviews:read`.\n *\n * `GET /api/v1/reviews/{reviewId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_reviews_by_reviewid\"]> &\n OperationQuery<operations[\"get_v1_reviews_by_reviewid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_reviews_by_reviewid\"]>\n > {\n const { reviewId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/reviews/${encodePathParam(\"reviewId\", reviewId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Draft Review Reply\n *\n * Draft a reply with AI from the review, the product, recent replies, and the brand kit. Uses AI credits. Requires `reviews:write`.\n\nNothing is posted; send the text with `POST /api/v1/reviews/actions`.\n *\n * `POST /api/v1/reviews/{reviewId}/draft-reply`\n */\n draftReply(\n request: OperationPath<\n operations[\"post_v1_reviews_by_reviewid_draft_reply\"]\n > &\n OperationQuery<operations[\"post_v1_reviews_by_reviewid_draft_reply\"]> &\n Record<string, unknown>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_v1_reviews_by_reviewid_draft_reply\"]>\n > {\n const { reviewId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/api/v1/reviews/${encodePathParam(\"reviewId\", reviewId)}/draft-reply`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Act on Reviews\n *\n * Reply to up to 50 reviews, or send Amazon review requests for solicitation rows. Requires `reviews:write`.\n\nEach target succeeds or fails on its own; read `data.results`. `ok` is true only when every target succeeds.\n *\n * `POST /api/v1/reviews/actions`\n */\n actions(\n request: OperationBody<operations[\"post_v1_reviews_actions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_reviews_actions\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/reviews/actions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SearchClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Search Public Merchant Products\n *\n * Search across all public merchants and products with optional merchant, pricing, stock, marketplace, and localization filters.\n *\n * `GET /api/v1/search`\n */\n list(\n request: OperationQuery<operations[\"get_v1_search\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_search\"]>> {\n const {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/search\",\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Search Public Merchant Products\n *\n * Search across all public merchants and products with optional merchant, pricing, stock, marketplace, and localization filters.\n *\n * `POST /api/v1/search`\n */\n query(\n request: OperationQuery<operations[\"post_v1_search\"]> &\n Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_search\"]>> {\n const {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n ...body\n } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/search\",\n query: {\n q,\n category,\n brand,\n min_price,\n max_price,\n in_stock,\n merchant_ids,\n sort,\n platform,\n country,\n language,\n include_intent,\n limit,\n offset,\n },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SettlementsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Settlements\n *\n * List the latest normalized order-settlement snapshots created by finance ingestion. Requires `settlements:read`. Use updatedSince and cursor for recovery; money remains partitioned by currency.\n *\n * `GET /api/v1/settlements`\n */\n list(\n request: OperationQuery<operations[\"get_v1_settlements\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_settlements\"]>> {\n const {\n organizationId,\n marketplace,\n accountId,\n orderId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/settlements\",\n query: {\n organizationId,\n marketplace,\n accountId,\n orderId,\n externalOrderId,\n updatedSince,\n cursor,\n limit,\n },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Apply Settlements\n *\n * Apply marketplace-agnostic settlement lines to existing orders.\n\n### Authentication\n\nRequires `orders:write`.\n\n### What this endpoint does\n\n- Stores every submitted line as marketplace financial evidence.\n- Projects **settled** rows into the order finance ledger.\n- Keeps pending, reversed, and voided rows as evidence only, removing any earlier developer API ledger projection for the same `sourceEventKey`.\n- Recomputes Payment received when a marketplace-specific formula exists. Zalora is currently supported.\n\n### Order matching\n\nOrders are matched by organization, marketplace platform, and exact `externalOrderId`. Include `externalOrderItemId` when an order has multiple lines.\n\n- `accountId` is an exact store match, never a wildcard.\n- `marketplace=zalora` can match Zalora Seller Center or\n *\n * `POST /api/v1/settlements`\n */\n create(\n request: OperationBody<operations[\"post_v1_settlements\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_settlements\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/settlements\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get Settlement\n *\n * Get the latest normalized settlement snapshot by stable settlement ID. Requires `settlements:read`.\n *\n * `GET /api/v1/settlements/{settlementId}`\n */\n get(\n request: OperationPath<operations[\"get_v1_settlements_by_settlementid\"]> &\n OperationQuery<operations[\"get_v1_settlements_by_settlementid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_settlements_by_settlementid\"]>\n > {\n const { settlementId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/settlements/${encodePathParam(\"settlementId\", settlementId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class SyncClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Sync Product Commercial Fields\n *\n * Update price, sale price, or stock quantity in OmniCommerce and queue marketplace sync workers where applicable.\n *\n * `POST /api/v1/sync`\n */\n run(\n request: Record<string, unknown> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_sync\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/sync\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ThreadsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Thread Status\n *\n * Poll an AOP execution started by `POST /api/v1/aop/{aopId}/execute`. Requires `aops:read`. Status values are `running`, `completed`, or `failed`.\n *\n * `GET /api/v1/threads/{thread_id}/status`\n */\n getStatus(\n request: OperationPath<operations[\"get_v1_threads_by_thread_id_status\"]> &\n OperationQuery<operations[\"get_v1_threads_by_thread_id_status\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_v1_threads_by_thread_id_status\"]>\n > {\n const {\n thread_id: threadId,\n include_messages,\n organizationId,\n } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/api/v1/threads/${encodePathParam(\"thread_id\", threadId)}/status`,\n query: { include_messages, organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpCheckoutSessionsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Create UCP Checkout Session\n *\n * Create a UCP shopping checkout session against the authenticated organization. The facade translates UCP line items to native agentic checkout sessions, reserves inventory, and returns a UCP checkout resource. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions`\n */\n create(\n request: OperationBody<operations[\"post_ucp_v1_checkout_sessions\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_ucp_v1_checkout_sessions\"]>\n > {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/ucp/v1/checkout-sessions\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Get UCP Checkout Session\n *\n * Fetch the current UCP checkout resource for a native agentic checkout session. Requires `UCP-Agent` and bearer authentication.\n *\n * `GET /ucp/v1/checkout-sessions/{sessionId}`\n */\n get(\n request: OperationPath<\n operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Update UCP Checkout Session\n *\n * Update UCP cart, buyer, fulfillment, or payment rail fields. Provided fields are applied to the native checkout session and inventory reservations are refreshed when line items change. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `PATCH /ucp/v1/checkout-sessions/{sessionId}`\n */\n update(\n request: OperationPath<\n operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<\n operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationBody<operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"patch_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PATCH\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Replace UCP Checkout Session Fields\n *\n * UCP-compatible update method. Current behavior matches PATCH: provided fields are applied and omitted fields remain unchanged. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `PUT /ucp/v1/checkout-sessions/{sessionId}`\n */\n replace(\n request: OperationPath<\n operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]\n > &\n OperationQuery<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]> &\n OperationBody<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"put_ucp_v1_checkout_sessions_by_sessionid\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"PUT\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Cancel UCP Checkout Session\n *\n * Cancel a ready-for-payment UCP checkout session and release reserved inventory. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions/{sessionId}/cancel`\n */\n cancel(\n request: OperationPath<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n OperationQuery<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]\n > &\n Record<string, unknown>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"post_ucp_v1_checkout_sessions_by_sessionid_cancel\"]>\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/cancel`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Complete UCP Checkout Session\n *\n * Settle the selected rail and create a native `agentic` order. Settlement failures return HTTP 402 with the checkout still ready for payment. Requires `UCP-Agent` and OAuth `checkout:write`.\n *\n * `POST /ucp/v1/checkout-sessions/{sessionId}/complete`\n */\n complete(\n request: OperationPath<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationQuery<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n > &\n OperationBody<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n >,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<\n operations[\"post_ucp_v1_checkout_sessions_by_sessionid_complete\"]\n >\n > {\n const { sessionId, organizationId, ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: `/ucp/v1/checkout-sessions/${encodePathParam(\"sessionId\", sessionId)}/complete`,\n query: { organizationId },\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpOrdersClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get UCP Order\n *\n * Fetch the native OmniCommerce order created by a completed UCP checkout session. Only `agentic` orders are exposed through this facade.\n *\n * `GET /ucp/v1/orders/{orderId}`\n */\n get(\n request: OperationPath<operations[\"get_ucp_v1_orders_by_orderid\"]> &\n OperationQuery<operations[\"get_ucp_v1_orders_by_orderid\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<\n SuccessData<operations[\"get_ucp_v1_orders_by_orderid\"]>\n > {\n const { orderId, organizationId } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: `/ucp/v1/orders/${encodePathParam(\"orderId\", orderId)}`,\n query: { organizationId },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class UcpClient {\n readonly checkoutSessions: UcpCheckoutSessionsClient;\n readonly orders: UcpOrdersClient;\n constructor(protected readonly _http: OmniHttp) {\n this.checkoutSessions = new UcpCheckoutSessionsClient(this._http);\n this.orders = new UcpOrdersClient(this._http);\n }\n}\n\nexport class WebhookEventsClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Webhook Events\n *\n * Pull immutable webhook events for recovery or scheduled reconciliation. Requires `webhooks:manage`. Results are organization-scoped and ordered oldest first; continue with the opaque cursor. This is the pull fallback for a receiver that missed push deliveries.\n *\n * `GET /api/v1/webhook-events`\n */\n list(\n request: OperationQuery<operations[\"get_v1_webhook_events\"]> = {},\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_webhook_events\"]>> {\n const { organizationId, eventType, occurredSince, cursor, limit } =\n request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/webhook-events\",\n query: { organizationId, eventType, occurredSince, cursor, limit },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class WebhooksClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * List Developer Webhooks\n *\n * List configured developer webhook subscriptions for the authenticated organization.\n *\n * `GET /api/v1/webhooks`\n */\n list(\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_webhooks\"]>> {\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/webhooks\",\n query: undefined,\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Create Developer Webhook\n *\n * Create a developer webhook subscription for the authenticated organization. The signing secret is returned only once.\n *\n * `POST /api/v1/webhooks`\n */\n create(\n request: OperationBody<operations[\"post_v1_webhooks\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_webhooks\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/webhooks\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class ZaloraClient {\n constructor(protected readonly _http: OmniHttp) {}\n\n /**\n * Get Selected Zalora Import Status\n *\n * Requires catalog:read. Follow the unchanged links.job URL returned by POST. Reads current state once without waiting.\n\n### Completion\n\ndata.status is pending, running, success, or error; data.terminal and data.success identify completion. data.productIds contains mapped Omni IDs for the supplied product sets. Failed imports remain explicit, including missingExternalIds. The top-level completed status describes this status request, not the import.\n\nKeep the original target IDs: the status lookup resolves those targets and does not prove that a modified selection was part of this job.\n *\n * `GET /api/v1/zalora/import`\n */\n getImport(\n request: OperationQuery<operations[\"get_v1_zalora_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"get_v1_zalora_import\"]>> {\n const { organizationId, jobId, storeId, productSetIds } = request ?? {};\n return this._http.request({\n method: \"GET\",\n path: \"/api/v1/zalora/import\",\n query: { organizationId, jobId, storeId, productSetIds },\n body: undefined,\n ...mergeRequestOptions(requestOptions),\n });\n }\n\n /**\n * Import Selected Zalora Products\n *\n * Requires catalog:write. Queue an exact import of 1–25 Zalora productSetIds from a connected store. Omit storeId only when one store or one default store is unambiguous.\n\nReturns 202 with links.job for optional status checks and retrieval of Omni product IDs. Only one import may run per store at a time. This endpoint does not invoke an AOP, enrich products, or publish listings.\n *\n * `POST /api/v1/zalora/import`\n */\n importProducts(\n request: OperationBody<operations[\"post_v1_zalora_import\"]>,\n requestOptions?: BaseRequestOptions,\n ): HttpResponsePromise<SuccessData<operations[\"post_v1_zalora_import\"]>> {\n const { ...body } = request ?? {};\n return this._http.request({\n method: \"POST\",\n path: \"/api/v1/zalora/import\",\n query: undefined,\n body: body,\n ...mergeRequestOptions(requestOptions),\n });\n }\n}\n\nexport class OmniGeneratedClient {\n readonly agents: AgentsClient;\n readonly analytics: AnalyticsClient;\n readonly aop: AopClient;\n readonly api: ApiClient;\n readonly campaigns: CampaignsClient;\n readonly catalog: CatalogClient;\n readonly checkoutSessions: CheckoutSessionsClient;\n readonly compare: CompareClient;\n readonly directory: DirectoryClient;\n readonly evaluate: EvaluateClient;\n readonly feed: FeedClient;\n readonly images: ImagesClient;\n readonly jobs: JobsClient;\n readonly looks: LooksClient;\n readonly marketplaces: MarketplacesClient;\n readonly merchants: MerchantsClient;\n readonly monitor: MonitorClient;\n readonly oauth: OauthClient;\n readonly orders: OrdersClient;\n readonly organizations: OrganizationsClient;\n readonly priceBooks: PriceBooksClient;\n readonly productCategories: ProductCategoriesClient;\n readonly products: ProductsClient;\n readonly promotions: PromotionsClient;\n readonly returns: ReturnsClient;\n readonly reviews: ReviewsClient;\n readonly search: SearchClient;\n readonly settlements: SettlementsClient;\n readonly sync: SyncClient;\n readonly threads: ThreadsClient;\n readonly ucp: UcpClient;\n readonly webhookEvents: WebhookEventsClient;\n readonly webhooks: WebhooksClient;\n readonly zalora: ZaloraClient;\n constructor(protected readonly _http: OmniHttp) {\n this.agents = new AgentsClient(this._http);\n this.analytics = new AnalyticsClient(this._http);\n this.aop = new AopClient(this._http);\n this.api = new ApiClient(this._http);\n this.campaigns = new CampaignsClient(this._http);\n this.catalog = new CatalogClient(this._http);\n this.checkoutSessions = new CheckoutSessionsClient(this._http);\n this.compare = new CompareClient(this._http);\n this.directory = new DirectoryClient(this._http);\n this.evaluate = new EvaluateClient(this._http);\n this.feed = new FeedClient(this._http);\n this.images = new ImagesClient(this._http);\n this.jobs = new JobsClient(this._http);\n this.looks = new LooksClient(this._http);\n this.marketplaces = new MarketplacesClient(this._http);\n this.merchants = new MerchantsClient(this._http);\n this.monitor = new MonitorClient(this._http);\n this.oauth = new OauthClient(this._http);\n this.orders = new OrdersClient(this._http);\n this.organizations = new OrganizationsClient(this._http);\n this.priceBooks = new PriceBooksClient(this._http);\n this.productCategories = new ProductCategoriesClient(this._http);\n this.products = new ProductsClient(this._http);\n this.promotions = new PromotionsClient(this._http);\n this.returns = new ReturnsClient(this._http);\n this.reviews = new ReviewsClient(this._http);\n this.search = new SearchClient(this._http);\n this.settlements = new SettlementsClient(this._http);\n this.sync = new SyncClient(this._http);\n this.threads = new ThreadsClient(this._http);\n this.ucp = new UcpClient(this._http);\n this.webhookEvents = new WebhookEventsClient(this._http);\n this.webhooks = new WebhooksClient(this._http);\n this.zalora = new ZaloraClient(this._http);\n }\n}\n\nexport type OmniResources = {\n agents: AgentsClient;\n analytics: AnalyticsClient;\n aop: AopClient;\n api: ApiClient;\n campaigns: CampaignsClient;\n catalog: CatalogClient;\n checkoutSessions: CheckoutSessionsClient;\n compare: CompareClient;\n directory: DirectoryClient;\n evaluate: EvaluateClient;\n feed: FeedClient;\n images: ImagesClient;\n jobs: JobsClient;\n looks: LooksClient;\n marketplaces: MarketplacesClient;\n merchants: MerchantsClient;\n monitor: MonitorClient;\n oauth: OauthClient;\n orders: OrdersClient;\n organizations: OrganizationsClient;\n priceBooks: PriceBooksClient;\n productCategories: ProductCategoriesClient;\n products: ProductsClient;\n promotions: PromotionsClient;\n returns: ReturnsClient;\n reviews: ReviewsClient;\n search: SearchClient;\n settlements: SettlementsClient;\n sync: SyncClient;\n threads: ThreadsClient;\n ucp: UcpClient;\n webhookEvents: WebhookEventsClient;\n webhooks: WebhooksClient;\n zalora: ZaloraClient;\n};\n","import {\n normalizeClientOptions,\n type BaseClientOptions,\n type BaseRequestOptions,\n} from \"./BaseClient\";\nimport { OmniHttp, type OmniRequestInit } from \"./core/fetcher\";\nimport type { HttpResponsePromise } from \"./core/http-response-promise\";\nimport { OmniGeneratedClient } from \"./generated/resources\";\n\nexport declare namespace OmniClient {\n type Options = BaseClientOptions;\n type RequestOptions = BaseRequestOptions;\n}\n\nexport class OmniClient extends OmniGeneratedClient {\n constructor(options: OmniClient.Options = {}) {\n super(new OmniHttp(normalizeClientOptions(options)));\n }\n\n request<T>(init: OmniRequestInit): HttpResponsePromise<T> {\n return this._http.request(init);\n }\n}\n","const encoder = new TextEncoder();\n\nexport const WEBHOOK_SIGNATURE_HEADER = \"x-omni-signature\";\nexport const WEBHOOK_TIMESTAMP_HEADER = \"x-omni-timestamp\";\nexport const WEBHOOK_EVENT_ID_HEADER = \"x-omni-event-id\";\nexport const WEBHOOK_EVENT_TYPE_HEADER = \"x-omni-event-type\";\n\nexport type WebhookHeaders = {\n \"x-omni-signature\"?: string | null;\n \"x-omni-timestamp\"?: string | null;\n \"x-omni-event-id\"?: string | null;\n \"x-omni-event-type\"?: string | null;\n} & Record<string, string | string[] | null | undefined>;\n\nexport type ConstructedWebhookEvent = {\n eventId?: string;\n eventType?: string;\n timestamp: number;\n payload: unknown;\n rawBody: string;\n};\n\nfunction headerValue(\n headers: WebhookHeaders | Headers,\n name: string,\n): string | undefined {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers) {\n return headers.get(name) ?? headers.get(name.toLowerCase()) ?? undefined;\n }\n const record = headers as WebhookHeaders;\n const direct = record[name] ?? record[name.toLowerCase()];\n if (Array.isArray(direct)) return direct[0];\n return direct ?? undefined;\n}\n\nfunction toHex(bytes: ArrayBuffer): string {\n return [...new Uint8Array(bytes)]\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nfunction timingSafeEqual(left: string, right: string): boolean {\n if (left.length !== right.length) return false;\n let mismatch = 0;\n for (let i = 0; i < left.length; i++) {\n mismatch |= left.charCodeAt(i) ^ right.charCodeAt(i);\n }\n return mismatch === 0;\n}\n\nexport async function signWebhookPayload(input: {\n secret: string;\n timestamp: number;\n payload: string;\n}): Promise<string> {\n const key = await crypto.subtle.importKey(\n \"raw\",\n encoder.encode(input.secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"],\n );\n const signature = await crypto.subtle.sign(\n \"HMAC\",\n key,\n encoder.encode(`${input.timestamp}.${input.payload}`),\n );\n return toHex(signature);\n}\n\nexport async function verifyWebhookSignature(input: {\n secret: string;\n timestamp: number;\n payload: string;\n signature: string;\n}): Promise<boolean> {\n const expected = await signWebhookPayload(input);\n return timingSafeEqual(expected.toLowerCase(), input.signature.toLowerCase());\n}\n\nexport async function constructEvent(\n payload: string | Uint8Array,\n headers: WebhookHeaders | Headers,\n secret: string,\n options?: { toleranceInSeconds?: number },\n): Promise<ConstructedWebhookEvent> {\n const rawBody =\n typeof payload === \"string\" ? payload : new TextDecoder().decode(payload);\n const signature = headerValue(headers, WEBHOOK_SIGNATURE_HEADER);\n const timestampRaw = headerValue(headers, WEBHOOK_TIMESTAMP_HEADER);\n if (!signature || !timestampRaw) {\n throw new Error(\n \"Webhook signature verification failed: missing X-Omni-Signature or X-Omni-Timestamp.\",\n );\n }\n const timestamp = Number(timestampRaw);\n if (!Number.isFinite(timestamp)) {\n throw new Error(\n \"Webhook signature verification failed: invalid timestamp.\",\n );\n }\n const tolerance = options?.toleranceInSeconds ?? 300;\n const now = Math.floor(Date.now() / 1000);\n if (Math.abs(now - timestamp) > tolerance) {\n throw new Error(\n \"Webhook signature verification failed: timestamp outside tolerance.\",\n );\n }\n const valid = await verifyWebhookSignature({\n secret,\n timestamp,\n payload: rawBody,\n signature,\n });\n if (!valid) {\n throw new Error(\n \"Webhook signature verification failed: invalid signature.\",\n );\n }\n let parsed: unknown = rawBody;\n try {\n parsed = JSON.parse(rawBody);\n } catch {\n throw new Error(\"Webhook signature verification failed: body is not JSON.\");\n }\n return {\n eventId: headerValue(headers, WEBHOOK_EVENT_ID_HEADER),\n eventType: headerValue(headers, WEBHOOK_EVENT_TYPE_HEADER),\n timestamp,\n payload: parsed,\n rawBody,\n };\n}\n","export type {\n FlattenedRequest,\n OperationBody,\n OperationPath,\n OperationQuery,\n SuccessData,\n} from \"../types\";\nexport type { operations, paths, components } from \"../generated/openapi\";\nexport {\n OmniGeneratedClient,\n type OmniResources,\n} from \"../generated/resources\";\nexport type {\n LookCreatedWebhookEvent,\n LookDeletedWebhookEvent,\n OrderCreatedWebhookEvent,\n OrderDeletedWebhookEvent,\n OrderStatusChangedWebhookEvent,\n OrderUpdatedWebhookEvent,\n ProductCreatedWebhookEvent,\n ProductDeletedWebhookEvent,\n ProductEnrichmentCompletedWebhookEvent,\n ProductEnrichmentStartedWebhookEvent,\n ProductInventoryChangedWebhookEvent,\n ProductPriceChangedWebhookEvent,\n ProductUpdatedWebhookEvent,\n ReturnCreatedWebhookEvent,\n ReturnStatusChangedWebhookEvent,\n ReturnUpdatedWebhookEvent,\n SettlementCreatedWebhookEvent,\n SettlementStatusChangedWebhookEvent,\n SettlementUpdatedWebhookEvent,\n} from \"./webhook-events\";\n"]}