@checkoutpage/sdk 0.1.32 → 0.1.33
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/README.md +138 -0
- package/dist/index.d.mts +6621 -2018
- package/dist/index.d.ts +6621 -2018
- package/dist/index.js +129 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/resources/invoices/invoices.ts","../src/client.ts","../src/resources/accounts/accounts.ts","../src/resources/customers/customers.ts","../src/resources/coupons/coupons.ts","../src/resources/payments/payments.ts","../src/resources/subscriptions/subscriptions.ts","../src/resources/subscription-payments/subscription-payments.ts","../src/resources/bookings/bookings.ts","../src/resources/tickets/tickets.ts","../src/resources/products/products.ts","../src/resources/files/files.ts","../src/resources/checkout-pages/checkout-pages.ts","../src/resources/events/events.ts","../src/resources/forms/forms.ts","../src/resources/submissions/submissions.ts","../src/resources/tax-rates/tax-rates.ts","../src/resources/webhooks/webhooks.ts","../src/resources/themes/themes.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export class CheckoutPageError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CheckoutPageError';\n Object.setPrototypeOf(this, CheckoutPageError.prototype);\n }\n}\n\nexport class AuthenticationError extends CheckoutPageError {\n constructor(message = 'Authentication failed. Please check your API key.') {\n super(message);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\nexport class NotFoundError extends CheckoutPageError {\n constructor(message = 'The requested resource was not found.') {\n super(message);\n this.name = 'NotFoundError';\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n\nexport class ConflictError extends CheckoutPageError {\n constructor(message = 'Conflict - the created resource already exists.') {\n super(message);\n this.name = 'ConflictError';\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n\nexport class RateLimitError extends CheckoutPageError {\n constructor(message = 'Rate limit exceeded. Please try again later.') {\n super(message);\n this.name = 'RateLimitError';\n Object.setPrototypeOf(this, RateLimitError.prototype);\n }\n}\n\nexport class ValidationError extends CheckoutPageError {\n constructor(message = 'Validation failed.') {\n super(message);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class APIError extends CheckoutPageError {\n public readonly statusCode: number;\n public readonly response?: unknown;\n\n constructor(message: string, statusCode: number, response?: unknown) {\n super(message);\n this.name = 'APIError';\n this.statusCode = statusCode;\n this.response = response;\n Object.setPrototypeOf(this, APIError.prototype);\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n Invoice,\n InvoiceList,\n InvoiceListParams,\n InvoiceResponse,\n ReadOptions,\n} from '../../types';\n\nexport class InvoiceResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single invoice by ID. The returned `invoiceUrl` is a freshly\n * signed link to the hosted PDF and expires an hour later — re-fetch to\n * mint a new one.\n *\n * @example\n * const { data: invoice } = await client.invoices.get(invoiceId);\n *\n * @example\n * // A test invoice\n * const { data: testInvoice } = await client.invoices.get(invoiceId, { livemode: false });\n */\n async get(id: string, options: ReadOptions = {}): Promise<InvoiceResponse> {\n if (!id) {\n throw new Error('Invoice ID is required');\n }\n\n return this.client.request<InvoiceResponse>({\n method: 'GET',\n path: `/v1/invoices/${id}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: InvoiceListParams = {}): Promise<InvoiceList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n search: args.search,\n status: args.status,\n customerId: args.customerId,\n chargeId: args.chargeId,\n poNumber: args.poNumber,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n };\n\n return this.client.request<InvoiceList>({\n method: 'GET',\n path: '/v1/invoices/',\n query,\n });\n }\n\n async regenerate(id: string): Promise<Invoice> {\n const response = await this.client.request<{ data: Invoice }>({\n method: 'POST',\n path: `/v1/invoices/${id}/regenerate`,\n });\n return response.data;\n }\n}\n","import {\n APIError,\n AuthenticationError,\n ConflictError,\n NotFoundError,\n RateLimitError,\n ValidationError,\n} from './errors';\nimport { InvoiceResource } from './resources/invoices/invoices';\n\nexport interface CheckoutPageApiClientOptions {\n apiKey: string;\n baseUrl?: string;\n}\n\nexport interface RequestOptions {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: unknown;\n query?: Record<string, string | number | boolean | undefined>;\n formData?: FormData;\n}\n\nexport class CheckoutPageApiClient {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n public readonly invoices: InvoiceResource;\n\n constructor(options: CheckoutPageApiClientOptions) {\n if (!options.apiKey) {\n throw new Error('API key is required');\n }\n\n this.apiKey = options.apiKey;\n this.baseUrl = options.baseUrl || 'https://api.checkoutpage.com';\n this.invoices = new InvoiceResource(this);\n }\n\n async request<T>(options: RequestOptions): Promise<T> {\n const url = this.buildUrl(options.path, options.query);\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n 'User-Agent': '@checkoutpage/sdk/0.1.0',\n };\n\n // Only set Content-Type for JSON requests (FormData sets its own boundary)\n if (!options.formData) {\n headers['Content-Type'] = 'application/json';\n }\n\n const fetchOptions: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.formData) {\n fetchOptions.body = options.formData;\n } else if (options.body) {\n fetchOptions.body = JSON.stringify(options.body);\n }\n\n const response = await fetch(url, fetchOptions);\n return await this.handleResponse<T>(response);\n }\n\n /**\n * Perform a request whose successful response is a binary file rather than\n * JSON (e.g. a ticket PDF). Errors are parsed and thrown the same way as\n * request().\n */\n async requestRaw(options: RequestOptions): Promise<ArrayBuffer> {\n const url = this.buildUrl(options.path, options.query);\n\n const response = await fetch(url, {\n method: options.method,\n headers: {\n Authorization: `Bearer ${this.apiKey}`,\n 'User-Agent': '@checkoutpage/sdk/0.1.0',\n },\n });\n\n if (!response.ok) {\n await this.handleResponse<never>(response);\n }\n\n return await response.arrayBuffer();\n }\n\n private buildUrl(\n path: string,\n query?: Record<string, string | number | boolean | undefined>\n ): string {\n const url = new URL(path, this.baseUrl);\n\n if (query) {\n Object.entries(query).forEach(([key, value]) => {\n if (value !== undefined) {\n url.searchParams.append(key, String(value));\n }\n });\n }\n\n return url.toString();\n }\n\n private async handleResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get('content-type');\n const isJson = contentType?.includes('application/json');\n\n let data: unknown;\n try {\n data = isJson ? await response.json() : await response.text();\n } catch {\n data = null;\n }\n\n if (!response.ok) {\n const message = this.extractErrorMessage(data);\n\n switch (response.status) {\n case 401:\n case 403:\n throw new AuthenticationError(message);\n case 404:\n throw new NotFoundError(message);\n case 409:\n throw new ConflictError(message);\n case 400:\n case 422:\n throw new ValidationError(message);\n case 429:\n throw new RateLimitError(message);\n default:\n throw new APIError(message, response.status, data);\n }\n }\n\n return data as T;\n }\n\n private extractErrorMessage(data: unknown): string {\n if (typeof data === 'object' && data !== null) {\n if ('message' in data && typeof data.message === 'string') {\n return data.message;\n }\n if ('error' in data && typeof data.error === 'string') {\n return data.error;\n }\n }\n return 'An unexpected error occurred';\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type { Account } from '../../types';\n\nexport class AccountResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve the seller account the API key belongs to: store slug, display\n * name and logo.\n *\n * The endpoint wraps the account in a `data` envelope (the OpenAPI spec\n * documents the bare object); this unwraps it so callers get the account.\n */\n async get(): Promise<Account> {\n const response = await this.client.request<{ data: Account }>({\n method: 'GET',\n path: '/v1/account/',\n });\n\n return response.data;\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n Customer,\n CustomerList,\n CustomerListParams,\n UpdateCustomerParams,\n UpdateCustomerResponse,\n} from '../../types';\n\nexport class CustomerResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async get(customerId: string): Promise<Customer> {\n if (!customerId) {\n throw new Error('Customer ID is required');\n }\n\n return this.client.request<Customer>({\n method: 'GET',\n path: `/v1/customers/${customerId}`,\n });\n }\n\n async list(args: CustomerListParams = {}): Promise<CustomerList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<CustomerList>({\n method: 'GET',\n query,\n path: '/v1/customers/',\n });\n }\n\n async update(\n customerId: string,\n params: UpdateCustomerParams,\n ): Promise<UpdateCustomerResponse> {\n if (!customerId) {\n throw new Error('Customer ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.name !== undefined) {\n body.name = params.name;\n }\n if (params.companyName !== undefined) {\n body.companyName = params.companyName;\n }\n if (params.email !== undefined) {\n body.email = params.email;\n }\n if (params.phone !== undefined) {\n body.phone = params.phone;\n }\n if (params.billingEmail !== undefined) {\n body.billingEmail = params.billingEmail;\n }\n if (params.address !== undefined) {\n body.address = params.address;\n }\n if (params.shipping !== undefined) {\n body.shipping = params.shipping;\n }\n\n return this.client.request<UpdateCustomerResponse>({\n method: 'PATCH',\n path: `/v1/customers/${customerId}`,\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport {\n CouponList,\n CouponListParams,\n CreateCouponParams,\n CreateCouponResponse,\n UpdateCouponParams,\n UpdateCouponResponse,\n} from '../../types';\n\nexport class CouponResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: CouponListParams = {}): Promise<CouponList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<CouponList>({\n method: 'GET',\n query,\n path: '/v1/coupons/',\n });\n }\n\n /**\n * Update an existing coupon. Only the fields you supply are changed.\n *\n * `pageIds` and `ticketTypeIds` replace the existing lists rather than\n * merging — pass an empty array to clear one.\n *\n * The discount itself (`code`, `amountOff`, `percentOff`, `currency`,\n * `duration`) is fixed once the coupon is mirrored into Stripe. To change a\n * discount, soft delete this coupon and create a replacement.\n *\n * @example\n * const { data: coupon } = await client.coupons.update(couponId, { deleted: true });\n */\n async update(couponId: string, params: UpdateCouponParams): Promise<UpdateCouponResponse> {\n if (!couponId) {\n throw new Error('Coupon ID is required');\n }\n\n return this.client.request<UpdateCouponResponse>({\n method: 'PATCH',\n path: `/v1/coupons/${couponId}`,\n body: params,\n });\n }\n\n async create(params: CreateCouponParams): Promise<CreateCouponResponse> {\n const body: Record<string, unknown> = {\n label: params.label,\n code: params.code,\n duration: params.duration,\n };\n\n if (params.duration === 'repeating') {\n body.durationInMonths = (params as any).durationInMonths;\n }\n\n if (params.appliesToSetupFee !== undefined) {\n body.appliesToSetupFee = params.appliesToSetupFee;\n }\n if (params.appliesToTicketFees !== undefined) {\n body.appliesToTicketFees = params.appliesToTicketFees;\n }\n if (params.pageIds !== undefined) {\n body.pageIds = params.pageIds;\n }\n if (params.ticketTypeIds !== undefined) {\n body.ticketTypeIds = params.ticketTypeIds;\n }\n if (params.maxRedemptions !== undefined) {\n body.maxRedemptions = params.maxRedemptions;\n }\n if (params.redeemBy !== undefined) {\n body.redeemBy = params.redeemBy;\n }\n\n if (params.type === 'amount') {\n body.amountOff = params.amountOff;\n body.currency = params.currency;\n } else {\n body.percentOff = params.percentOff;\n }\n\n return this.client.request<CreateCouponResponse>({\n method: 'POST',\n path: '/v1/coupons/',\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type { PaymentList, PaymentListParams, PaymentResponse, ReadOptions } from '../../types';\n\nexport class PaymentResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single payment by ID. Only checkout payments are returned —\n * an event charge is a booking, and 404s here.\n *\n * @example\n * const { data: payment } = await client.payments.get(paymentId);\n *\n * @example\n * // A test payment\n * const { data: testPayment } = await client.payments.get(paymentId, { livemode: false });\n */\n async get(paymentId: string, options: ReadOptions = {}): Promise<PaymentResponse> {\n if (!paymentId) {\n throw new Error('Payment ID is required');\n }\n\n return this.client.request<PaymentResponse>({\n method: 'GET',\n path: `/v1/payments/${paymentId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: PaymentListParams = {}): Promise<PaymentList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n status: args.status,\n orderStatus: args.orderStatus,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n couponCode: args.couponCode,\n productId: args.productId,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<PaymentList>({\n method: 'GET',\n query,\n path: '/v1/payments/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n SubscriptionCancelParams,\n SubscriptionCancelResponse,\n SubscriptionList,\n SubscriptionListParams,\n SubscriptionResponse,\n ReadOptions,\n} from '../../types';\n\nexport class SubscriptionResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single subscription by ID.\n *\n * @example\n * const { data: subscription } = await client.subscriptions.get(subscriptionId);\n *\n * @example\n * // A test subscription\n * const { data: testSubscription } = await client.subscriptions.get(subscriptionId, {\n * livemode: false,\n * });\n */\n async get(subscriptionId: string, options: ReadOptions = {}): Promise<SubscriptionResponse> {\n if (!subscriptionId) {\n throw new Error('Subscription ID is required');\n }\n\n return this.client.request<SubscriptionResponse>({\n method: 'GET',\n path: `/v1/subscriptions/${subscriptionId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubscriptionListParams = {}): Promise<SubscriptionList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n status: args.status,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<SubscriptionList>({\n method: 'GET',\n query,\n path: '/v1/subscriptions/',\n });\n }\n\n /**\n * Cancel a subscription. Provide exactly one of `cancelImmediately`,\n * `cancelAtPeriodEnd`, or `cancelAt` — timing is explicit at the API\n * boundary. Enforced both at the type level via the\n * {@link SubscriptionCancelParams} discriminated union and at the server\n * via zod. Cancellation is one-way; a canceled Stripe subscription cannot\n * be un-canceled.\n *\n * @example\n * await client.subscriptions.cancel(id, { cancelImmediately: true });\n * await client.subscriptions.cancel(id, { cancelAtPeriodEnd: true, sendCancellationEmail: true });\n * await client.subscriptions.cancel(id, { cancelAt: '2026-12-31T23:59:59.000Z' });\n */\n async cancel(\n subscriptionId: string,\n params: SubscriptionCancelParams,\n ): Promise<SubscriptionCancelResponse> {\n return this.client.request<SubscriptionCancelResponse>({\n method: 'POST',\n path: `/v1/subscriptions/${subscriptionId}/cancel`,\n body: params,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n SubscriptionPaymentList,\n SubscriptionPaymentListParams,\n SubscriptionPaymentResponse,\n ReadOptions,\n} from '../../types';\n\nexport class SubscriptionPaymentResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single subscription payment by ID — one charge within a\n * subscription's billing cycle, not the subscription itself. For every\n * payment on a subscription, use `list({ subscriptionId })`.\n *\n * @example\n * const { data: payment } = await client.subscriptionPayments.get(paymentId);\n *\n * @example\n * // A test subscription payment\n * const { data: testPayment } = await client.subscriptionPayments.get(paymentId, {\n * livemode: false,\n * });\n */\n async get(\n subscriptionPaymentId: string,\n options: ReadOptions = {}\n ): Promise<SubscriptionPaymentResponse> {\n if (!subscriptionPaymentId) {\n throw new Error('Subscription payment ID is required');\n }\n\n return this.client.request<SubscriptionPaymentResponse>({\n method: 'GET',\n path: `/v1/subscription-payments/${subscriptionPaymentId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubscriptionPaymentListParams = {}): Promise<SubscriptionPaymentList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n subscriptionId: args.subscriptionId,\n customerId: args.customerId,\n pageId: args.pageId,\n paymentStatus: args.paymentStatus,\n paid: args.paid,\n refunded: args.refunded,\n billingReason: args.billingReason,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n };\n\n return this.client.request<SubscriptionPaymentList>({\n method: 'GET',\n query,\n path: '/v1/subscription-payments/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n BookingList,\n BookingListParams,\n BookingResponse,\n CreateBookingParams,\n CreateBookingResponse,\n ReadOptions,\n} from '../../types';\n\nexport class BookingResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Create an event booking without collecting card payment. This is a real\n * booking: tickets are issued, the customer receives a confirmation email\n * with the ticket PDF, live-mode bookings decrement capacity, and booking webhooks fire.\n * There are two ways to settle it. With `paymentOption.manualType` the\n * booking is recorded as `unpaid`, to be settled outside checkout via the\n * chosen manual option; a free booking simply has nothing due. With\n * `complimentary: true` the tickets are issued at no charge: the booking is\n * recorded as `paid` with `amount`, `amountPaid` and `amountDue` of 0 and\n * `isComplimentary: true`, while the ticket lines keep their face value and\n * `complimentaryDiscountAmount` records what they would have cost.\n * `complimentary` is mutually exclusive with `paymentOption` and `couponId`,\n * and one of `paymentOption` or `complimentary` is required.\n *\n * Field entries carry a `fieldId` plus the value. Every required field on\n * the event must be supplied, and a stock event requires name, email and a\n * billing address. The ids come from `GET /v1/events/{eventId}/fields`,\n * which this client does not yet wrap.\n *\n * @example\n * const { data: booking } = await client.bookings.create({\n * eventId,\n * tickets: { [ticketTypeId]: 2 },\n * fields: [\n * { fieldId: emailFieldId, value: 'ada@example.com' },\n * { fieldId: nameFieldId, value: 'Ada Lovelace' },\n * ],\n * paymentOption: { manualType: 'invoice' },\n * });\n *\n * @example\n * const { data: booking } = await client.bookings.create({\n * eventId,\n * tickets: { [ticketTypeId]: 2 },\n * fields: [{ fieldId: emailFieldId, value: 'ada@example.com' }],\n * complimentary: true,\n * });\n */\n async create(params: CreateBookingParams): Promise<CreateBookingResponse> {\n return this.client.request<CreateBookingResponse>({\n method: 'POST',\n path: '/v1/bookings/',\n body: params,\n });\n }\n\n /**\n * Retrieve a single booking by ID. Only event bookings are returned —\n * a checkout charge is a payment, and 404s here.\n *\n * @example\n * const { data: booking } = await client.bookings.get(bookingId);\n *\n * @example\n * // A test booking\n * const { data: testBooking } = await client.bookings.get(bookingId, { livemode: false });\n */\n async get(bookingId: string, options: ReadOptions = {}): Promise<BookingResponse> {\n if (!bookingId) {\n throw new Error('Booking ID is required');\n }\n\n return this.client.request<BookingResponse>({\n method: 'GET',\n path: `/v1/bookings/${bookingId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n /**\n * Download the booking's ticket PDF (every ticket in the booking) as raw\n * bytes. The response reflects the current tickets, so attendee updates\n * appear on the next download. Throws NotFoundError when no PDF exists,\n * e.g. for unpaid or abandoned bookings.\n *\n * @example\n * const pdf = await client.bookings.downloadTicketPdf(bookingId);\n * fs.writeFileSync('tickets.pdf', Buffer.from(pdf));\n *\n * @example\n * // The tickets of a test booking\n * const testPdf = await client.bookings.downloadTicketPdf(bookingId, { livemode: false });\n */\n async downloadTicketPdf(bookingId: string, options: ReadOptions = {}): Promise<ArrayBuffer> {\n if (!bookingId) {\n throw new Error('Booking ID is required');\n }\n\n return this.client.requestRaw({\n method: 'GET',\n path: `/v1/bookings/${bookingId}/ticket-pdf`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: BookingListParams = {}): Promise<BookingList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n status: args.status,\n orderStatus: args.orderStatus,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n couponCode: args.couponCode,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n isComplimentary: args.isComplimentary,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<BookingList>({\n method: 'GET',\n query,\n path: '/v1/bookings/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n TicketList,\n TicketListParams,\n UpdateTicketParams,\n UpdateTicketResponse,\n ValidateTicketData,\n ValidateTicketParams,\n ValidateTicketResponse,\n} from '../../types';\n\nexport class TicketResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: TicketListParams = {}): Promise<TicketList> {\n const query: Record<string, string | undefined> = {\n pageId: args.pageId,\n bookingId: args.bookingId,\n orderId: args.orderId,\n customerId: args.customerId,\n ticketTypeId: args.ticketTypeId,\n status: args.status,\n checkInStatus: args.checkInStatus,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n search: args.search,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<TicketList>({\n method: 'GET',\n query,\n path: '/v1/tickets/',\n });\n }\n\n async update(ticketId: string, params: UpdateTicketParams): Promise<UpdateTicketResponse> {\n if (!ticketId) {\n throw new Error('Ticket ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.attendeeName !== undefined) {\n body.attendeeName = params.attendeeName;\n }\n if (params.attendeeEmail !== undefined) {\n body.attendeeEmail = params.attendeeEmail;\n }\n if (params.metadata !== undefined) {\n body.metadata = params.metadata;\n }\n\n return this.client.request<UpdateTicketResponse>({\n method: 'PATCH',\n path: `/v1/tickets/${ticketId}`,\n body,\n });\n }\n\n async validate(qrCode: string, params?: ValidateTicketParams): Promise<ValidateTicketResponse> {\n const body = params || {};\n\n const response = await this.client.request<ValidateTicketData>({\n method: 'POST',\n path: `/v1/tickets/validate/${qrCode}`,\n body,\n });\n\n return response.data;\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type { Product, ProductList, ProductListParams, UpdateProductParams } from '../../types';\n\nexport class ProductResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: ProductListParams = {}): Promise<ProductList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n role: args.role,\n search: args.search,\n };\n\n return this.client.request<ProductList>({\n method: 'GET',\n path: '/v1/products/',\n query,\n });\n }\n\n async get(productId: string): Promise<Product> {\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n return this.client.request<Product>({\n method: 'GET',\n path: `/v1/products/${productId}`,\n });\n }\n\n async update(productId: string, params: UpdateProductParams): Promise<Product> {\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.title !== undefined) {\n body.title = params.title;\n }\n if (params.description !== undefined) {\n body.description = params.description;\n }\n if (params.price !== undefined) {\n body.price = params.price;\n }\n if (params.sku !== undefined) {\n body.sku = params.sku;\n }\n if (params.hasUnlimitedStock !== undefined) {\n body.hasUnlimitedStock = params.hasUnlimitedStock;\n }\n if (params.stock !== undefined) {\n body.stock = params.stock;\n }\n if (params.taxBehavior !== undefined) {\n body.taxBehavior = params.taxBehavior;\n }\n if (params.taxCode !== undefined) {\n body.taxCode = params.taxCode;\n }\n if (params.imageIds !== undefined) {\n body.imageIds = params.imageIds;\n }\n if (params.fileIds !== undefined) {\n body.fileIds = params.fileIds;\n }\n if (params.variantsRequired !== undefined) {\n body.variantsRequired = params.variantsRequired;\n }\n if (params.variants !== undefined) {\n body.variants = params.variants;\n }\n if (params.discounts !== undefined) {\n body.discounts = params.discounts;\n }\n if (params.limitSubscriptions !== undefined) {\n body.limitSubscriptions = params.limitSubscriptions;\n }\n if (params.limitPayments !== undefined) {\n body.limitPayments = params.limitPayments;\n }\n if (params.enableFileAccessForInactiveSubscriptions !== undefined) {\n body.enableFileAccessForInactiveSubscriptions =\n params.enableFileAccessForInactiveSubscriptions;\n }\n if (params.generateLicenseKeys !== undefined) {\n body.generateLicenseKeys = params.generateLicenseKeys;\n }\n if (params.fixedTaxRateIds !== undefined) {\n body.fixedTaxRateIds = params.fixedTaxRateIds;\n }\n if (params.prices !== undefined) {\n body.prices = params.prices;\n }\n if (params.defaultPriceId !== undefined) {\n body.defaultPriceId = params.defaultPriceId;\n }\n if (params.pricePicker !== undefined) {\n body.pricePicker = params.pricePicker;\n }\n\n return this.client.request<Product>({\n method: 'PATCH',\n path: `/v1/products/${productId}`,\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n DeleteFileResponse,\n DownloadFileResponse,\n UploadFileResponse,\n UploadFileParams,\n} from '../../types';\n\nexport class FileResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async upload(params: UploadFileParams): Promise<UploadFileResponse> {\n if (!params.file) {\n throw new Error('File is required');\n }\n\n if (!params.purpose) {\n throw new Error('Purpose is required');\n }\n\n const formData = new FormData();\n formData.append('file', params.file);\n formData.append('purpose', params.purpose);\n\n return this.client.request<UploadFileResponse>({\n method: 'POST',\n path: '/v1/files/upload',\n formData,\n });\n }\n\n async delete(fileId: string): Promise<DeleteFileResponse> {\n if (!fileId) {\n throw new Error('File ID is required');\n }\n\n return this.client.request<DeleteFileResponse>({\n method: 'DELETE',\n path: `/v1/files/${fileId}`,\n });\n }\n\n async download(fileId: string): Promise<DownloadFileResponse> {\n if (!fileId) {\n throw new Error('File ID is required');\n }\n\n return this.client.request<DownloadFileResponse>({\n method: 'GET',\n path: `/v1/files/${fileId}/download`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n CheckoutPageList,\n CheckoutPageListParams,\n CreateCheckoutPageParams,\n CreateCheckoutPageResponse,\n CheckoutPageResponse,\n UpdateCheckoutPageParams,\n UpdateCheckoutPageResponse,\n DeleteCheckoutPageResponse,\n CheckoutPageFieldDeleteResponse,\n CheckoutPageFieldList,\n CreateCheckoutPageFieldParams,\n UpdateCheckoutPageFieldParams,\n CheckoutPageFieldResponse,\n} from '../../types';\n\nexport class CheckoutPageFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<CheckoutPageFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageFieldList>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}/fields`,\n });\n }\n\n async create(\n pageId: string,\n params: CreateCheckoutPageFieldParams\n ): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'POST',\n path: `/v1/checkout-pages/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateCheckoutPageFieldParams\n ): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'PATCH',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<CheckoutPageFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class CheckoutPagesResource {\n public readonly fields: CheckoutPageFieldsResource;\n private readonly client: CheckoutPageApiClient;\n\n constructor(client: CheckoutPageApiClient) {\n this.client = client;\n this.fields = new CheckoutPageFieldsResource(client);\n }\n\n async list(args: CheckoutPageListParams = {}): Promise<CheckoutPageList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<CheckoutPageList>({\n method: 'GET',\n path: '/v1/checkout-pages/',\n query,\n });\n }\n\n async create(params: CreateCheckoutPageParams): Promise<CreateCheckoutPageResponse> {\n return this.client.request<CreateCheckoutPageResponse>({\n method: 'POST',\n path: '/v1/checkout-pages/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<CheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageResponse>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}`,\n });\n }\n\n async update(\n pageId: string,\n params: UpdateCheckoutPageParams\n ): Promise<UpdateCheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateCheckoutPageResponse>({\n method: 'PATCH',\n path: `/v1/checkout-pages/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteCheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteCheckoutPageResponse>({\n method: 'DELETE',\n path: `/v1/checkout-pages/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n EventList,\n EventListParams,\n CreateEventParams,\n CreateEventResponse,\n EventResponse,\n UpdateEventParams,\n UpdateEventResponse,\n DeleteEventResponse,\n EventTicketGroupList,\n EventTicketGroupResponse,\n CreateEventTicketGroupParams,\n CreateEventTicketGroupResponse,\n UpdateEventTicketGroupParams,\n UpdateEventTicketGroupResponse,\n DeleteEventTicketGroupResponse,\n EventTicketTypeList,\n EventTicketTypeResponse,\n CreateEventTicketTypeParams,\n CreateEventTicketTypeResponse,\n UpdateEventTicketTypeParams,\n UpdateEventTicketTypeResponse,\n DeleteEventTicketTypeResponse,\n EventFieldList,\n EventFieldResponse,\n CreateEventFieldParams,\n UpdateEventFieldParams,\n EventFieldDeleteResponse,\n} from '../../types';\n\nexport class EventFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<EventFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventFieldList>({\n method: 'GET',\n path: `/v1/events/${pageId}/fields`,\n });\n }\n\n async create(pageId: string, params: CreateEventFieldParams): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateEventFieldParams\n ): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<EventFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class EventTicketTypesResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string, ticketGroupId: string): Promise<EventTicketTypeList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<EventTicketTypeList>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types`,\n });\n }\n\n async create(\n pageId: string,\n ticketGroupId: string,\n params: CreateEventTicketTypeParams\n ): Promise<CreateEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<CreateEventTicketTypeResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types`,\n body: params,\n });\n }\n\n async get(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string\n ): Promise<EventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<EventTicketTypeResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n });\n }\n\n async update(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string,\n params: UpdateEventTicketTypeParams\n ): Promise<UpdateEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<UpdateEventTicketTypeResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n body: params,\n });\n }\n\n async delete(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string\n ): Promise<DeleteEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<DeleteEventTicketTypeResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n });\n }\n}\n\nexport class EventTicketGroupsResource {\n public readonly ticketTypes: EventTicketTypesResource;\n\n constructor(private client: CheckoutPageApiClient) {\n this.ticketTypes = new EventTicketTypesResource(client);\n }\n\n async list(pageId: string): Promise<EventTicketGroupList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventTicketGroupList>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups`,\n });\n }\n\n async create(\n pageId: string,\n params: CreateEventTicketGroupParams\n ): Promise<CreateEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CreateEventTicketGroupResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/ticket-groups`,\n body: params,\n });\n }\n\n async get(pageId: string, ticketGroupId: string): Promise<EventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<EventTicketGroupResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n });\n }\n\n async update(\n pageId: string,\n ticketGroupId: string,\n params: UpdateEventTicketGroupParams\n ): Promise<UpdateEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<UpdateEventTicketGroupResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, ticketGroupId: string): Promise<DeleteEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<DeleteEventTicketGroupResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n });\n }\n}\n\nexport class EventsResource {\n public readonly ticketGroups: EventTicketGroupsResource;\n public readonly fields: EventFieldsResource;\n\n constructor(private client: CheckoutPageApiClient) {\n this.ticketGroups = new EventTicketGroupsResource(client);\n this.fields = new EventFieldsResource(client);\n }\n\n async list(args: EventListParams = {}): Promise<EventList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<EventList>({\n method: 'GET',\n path: '/v1/events/',\n query,\n });\n }\n\n async create(params: CreateEventParams): Promise<CreateEventResponse> {\n return this.client.request<CreateEventResponse>({\n method: 'POST',\n path: '/v1/events/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<EventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}`,\n });\n }\n\n async update(pageId: string, params: UpdateEventParams): Promise<UpdateEventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateEventResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteEventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteEventResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n FormList,\n FormListParams,\n CreateFormParams,\n CreateFormResponse,\n FormResponse,\n UpdateFormParams,\n UpdateFormResponse,\n DeleteFormResponse,\n FormFieldList,\n CreateFormFieldParams,\n UpdateFormFieldParams,\n FormFieldResponse,\n FormFieldDeleteResponse,\n} from '../../types';\n\nexport class FormFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<FormFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormFieldList>({\n method: 'GET',\n path: `/v1/forms/${pageId}/fields`,\n });\n }\n\n async create(pageId: string, params: CreateFormFieldParams): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'POST',\n path: `/v1/forms/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'GET',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateFormFieldParams\n ): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'PATCH',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<FormFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class FormsResource {\n public readonly fields: FormFieldsResource;\n constructor(private client: CheckoutPageApiClient) {\n this.fields = new FormFieldsResource(client);\n }\n\n async list(args: FormListParams = {}): Promise<FormList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<FormList>({\n method: 'GET',\n path: '/v1/forms/',\n query,\n });\n }\n\n async create(params: CreateFormParams): Promise<CreateFormResponse> {\n return this.client.request<CreateFormResponse>({\n method: 'POST',\n path: '/v1/forms/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<FormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormResponse>({\n method: 'GET',\n path: `/v1/forms/${pageId}`,\n });\n }\n\n async update(pageId: string, params: UpdateFormParams): Promise<UpdateFormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateFormResponse>({\n method: 'PATCH',\n path: `/v1/forms/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteFormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteFormResponse>({\n method: 'DELETE',\n path: `/v1/forms/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n ReadOptions,\n SubmissionList,\n SubmissionListParams,\n SubmissionResponse,\n} from '../../types';\n\nexport class SubmissionResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async get(submissionId: string, options: ReadOptions = {}): Promise<SubmissionResponse> {\n if (!submissionId) {\n throw new Error('Submission ID is required');\n }\n\n return this.client.request<SubmissionResponse>({\n method: 'GET',\n path: `/v1/submissions/${submissionId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubmissionListParams = {}): Promise<SubmissionList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n pageId: args.pageId,\n customerId: args.customerId,\n status: args.status,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<SubmissionList>({\n method: 'GET',\n path: '/v1/submissions/',\n query,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n TaxRateList,\n TaxRateResponse,\n CreateTaxRateParams,\n UpdateTaxRateParams,\n DeleteTaxRateResponse,\n} from '../../types';\n\nexport class TaxRateResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(): Promise<TaxRateList> {\n return this.client.request<TaxRateList>({\n method: 'GET',\n path: '/v1/tax-rates/',\n });\n }\n\n async create(params: CreateTaxRateParams): Promise<TaxRateResponse> {\n const body: Record<string, unknown> = {\n displayName: params.displayName,\n inclusive: params.inclusive,\n percentage: params.percentage,\n };\n\n if (params.default !== undefined) {\n body.default = params.default;\n }\n\n return this.client.request<TaxRateResponse>({\n method: 'POST',\n path: '/v1/tax-rates/',\n body,\n });\n }\n\n async update(taxRateId: string, params: UpdateTaxRateParams): Promise<TaxRateResponse> {\n if (!taxRateId) {\n throw new Error('Tax rate ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.displayName !== undefined) {\n body.displayName = params.displayName;\n }\n if (params.default !== undefined) {\n body.default = params.default;\n }\n\n return this.client.request<TaxRateResponse>({\n method: 'PATCH',\n path: `/v1/tax-rates/${taxRateId}`,\n body,\n });\n }\n\n /** Removes the rate from list(); pages and products that used it stop charging that tax. */\n async delete(taxRateId: string): Promise<DeleteTaxRateResponse> {\n if (!taxRateId) {\n throw new Error('Tax rate ID is required');\n }\n\n return this.client.request<DeleteTaxRateResponse>({\n method: 'DELETE',\n path: `/v1/tax-rates/${taxRateId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport {\n CreateWebhookParams,\n CreateWebhookResponse,\n DeleteWebhookResponse,\n UpdateWebhookParams,\n UpdateWebhookResponse,\n WebhookList,\n WebhookListParams,\n WebhookResponse,\n} from '../../types';\n\nexport class WebhookResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * List webhook endpoints, newest first. Secrets are never returned.\n *\n * @example\n * const { data, has_more } = await client.webhooks.list({ event: 'payment.paid' });\n */\n async list(args: WebhookListParams = {}): Promise<WebhookList> {\n const query: Record<string, string | undefined> = {\n status: args.status,\n event: args.event,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<WebhookList>({\n method: 'GET',\n path: '/v1/webhooks/',\n query,\n });\n }\n\n /**\n * Create a webhook endpoint. The `url` must use https.\n *\n * The response is the only place the signing `secret` is ever returned —\n * store it immediately. Omit `secret` to have one generated.\n *\n * @example\n * const { data: webhook } = await client.webhooks.create({\n * name: 'CRM sync',\n * url: 'https://example.com/hooks/checkoutpage',\n * events: ['payment.paid', 'subscription.created'],\n * });\n * saveSecret(webhook.secret);\n */\n async create(params: CreateWebhookParams): Promise<CreateWebhookResponse> {\n return this.client.request<CreateWebhookResponse>({\n method: 'POST',\n path: '/v1/webhooks/',\n body: params,\n });\n }\n\n /**\n * Retrieve a webhook endpoint by id, with its events, status and delivery\n * counters. The signing `secret` is not returned.\n *\n * @example\n * const { data: webhook } = await client.webhooks.get('6a1f0c2e9b1d4a0012345678');\n */\n async get(webhookId: string): Promise<WebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<WebhookResponse>({\n method: 'GET',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n });\n }\n\n /**\n * Update a webhook endpoint. Only the fields you send change; `events` and\n * `customHeaders` replace the existing values. Set `status` to `'inactive'`\n * to pause deliveries and `'active'` to resume. A new `url` must use https\n * and must not already be registered on another of your webhooks. The\n * signing secret cannot be changed here.\n *\n * @example\n * const { data: webhook } = await client.webhooks.update(webhookId, {\n * events: ['payment.paid', 'checkout_page.updated'],\n * status: 'inactive',\n * });\n */\n async update(webhookId: string, params: UpdateWebhookParams): Promise<UpdateWebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<UpdateWebhookResponse>({\n method: 'PATCH',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n body: params,\n });\n }\n\n /**\n * Delete a webhook endpoint. Deliveries stop immediately; the returned\n * object is its final state. The webhook no longer appears in `list()`,\n * and deleting the same id again returns 404.\n */\n async delete(webhookId: string): Promise<DeleteWebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<DeleteWebhookResponse>({\n method: 'DELETE',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n CreateThemeParams,\n CreateThemeResponse,\n DeleteThemeResponse,\n ThemeList,\n ThemeListParams,\n ThemeResponse,\n UpdateThemeParams,\n UpdateThemeResponse,\n} from '../../types';\n\nexport class ThemeResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * List the themes your pages can use, newest first: your own themes and the\n * built-in (`global`) ones. A retired built-in theme is only listed while one\n * of your pages uses it.\n *\n * @example\n * const { data: themes, has_more } = await client.themes.list({ scope: 'seller' });\n */\n async list(args: ThemeListParams = {}): Promise<ThemeList> {\n const query: Record<string, string | undefined> = {\n scope: args.scope,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<ThemeList>({\n method: 'GET',\n path: '/v1/themes/',\n query,\n });\n }\n\n /**\n * Retrieve one of your themes or a built-in theme.\n *\n * @example\n * const { data: theme } = await client.themes.get(themeId);\n */\n async get(themeId: string): Promise<ThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<ThemeResponse>({\n method: 'GET',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n });\n }\n\n /**\n * Create a theme. Pass `baseThemeId` to start from a copy of one of your\n * themes or a built-in theme, then set what should differ in `variables`.\n * `variables` takes the same shape as a page's `themeOverrides`. A copy of a\n * built-in theme does not follow your store's brand colour, so set\n * `tokens.colorPrimary` if you want it.\n *\n * @example\n * const { data: theme } = await client.themes.create({\n * name: 'Brand',\n * baseThemeId: builtInThemeId,\n * variables: { tokens: { colorPrimary: { light: '#4f46e5' } } },\n * });\n */\n async create(params: CreateThemeParams): Promise<CreateThemeResponse> {\n return this.client.request<CreateThemeResponse>({\n method: 'POST',\n path: '/v1/themes/',\n body: params,\n });\n }\n\n /**\n * Update one of your themes. Every page that uses it changes too. Keys left\n * out of `variables` keep their value, and `null` resets a property or\n * everything under a key. Built-in themes are read-only.\n *\n * @example\n * const { data: theme } = await client.themes.update(themeId, {\n * variables: { tokens: { colorPrimary: { light: '#0f766e' } } },\n * });\n */\n async update(themeId: string, params: UpdateThemeParams): Promise<UpdateThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<UpdateThemeResponse>({\n method: 'PATCH',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n body: params,\n });\n }\n\n /**\n * Delete one of your themes and return its final state. A theme that any of\n * your pages uses, archived ones included, or that is your store's default\n * theme, can't be deleted (a `ConflictError`): move those pages to another\n * theme with `themeId` first.\n */\n async delete(themeId: string): Promise<DeleteThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<DeleteThemeResponse>({\n method: 'DELETE',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n });\n }\n}\n","import { CheckoutPageApiClient, CheckoutPageApiClientOptions } from './client';\nimport { AccountResource } from './resources/accounts/accounts';\nimport { CustomerResource } from './resources/customers/customers';\nimport { CouponResource } from './resources/coupons/coupons';\nimport { PaymentResource } from './resources/payments/payments';\nimport { SubscriptionResource } from './resources/subscriptions/subscriptions';\nimport { SubscriptionPaymentResource } from './resources/subscription-payments/subscription-payments';\nimport { BookingResource } from './resources/bookings/bookings';\nimport { TicketResource } from './resources/tickets/tickets';\nimport { ProductResource } from './resources/products/products';\nimport { FileResource } from './resources/files/files';\nimport { CheckoutPagesResource } from './resources/checkout-pages/checkout-pages';\nimport { EventsResource } from './resources/events/events';\nimport { FormsResource } from './resources/forms/forms';\nimport { SubmissionResource } from './resources/submissions/submissions';\nimport { TaxRateResource } from './resources/tax-rates/tax-rates';\nimport { InvoiceResource } from './resources/invoices/invoices';\nimport { WebhookResource } from './resources/webhooks/webhooks';\nimport { ThemeResource } from './resources/themes/themes';\n\nexport class CheckoutPageClient {\n public readonly accounts: AccountResource;\n public readonly customers: CustomerResource;\n public readonly coupons: CouponResource;\n public readonly payments: PaymentResource;\n public readonly subscriptions: SubscriptionResource;\n public readonly subscriptionPayments: SubscriptionPaymentResource;\n public readonly bookings: BookingResource;\n public readonly tickets: TicketResource;\n public readonly products: ProductResource;\n public readonly files: FileResource;\n public readonly checkoutPages: CheckoutPagesResource;\n public readonly events: EventsResource;\n public readonly forms: FormsResource;\n public readonly submissions: SubmissionResource;\n public readonly taxRates: TaxRateResource;\n public readonly invoices: InvoiceResource;\n public readonly webhooks: WebhookResource;\n public readonly themes: ThemeResource;\n private readonly client: CheckoutPageApiClient;\n\n constructor(options: CheckoutPageApiClientOptions) {\n this.client = new CheckoutPageApiClient(options);\n this.accounts = new AccountResource(this.client);\n this.customers = new CustomerResource(this.client);\n this.coupons = new CouponResource(this.client);\n this.payments = new PaymentResource(this.client);\n this.subscriptions = new SubscriptionResource(this.client);\n this.subscriptionPayments = new SubscriptionPaymentResource(this.client);\n this.bookings = new BookingResource(this.client);\n this.tickets = new TicketResource(this.client);\n this.products = new ProductResource(this.client);\n this.files = new FileResource(this.client);\n this.checkoutPages = new CheckoutPagesResource(this.client);\n this.events = new EventsResource(this.client);\n this.forms = new FormsResource(this.client);\n this.submissions = new SubmissionResource(this.client);\n this.taxRates = new TaxRateResource(this.client);\n this.invoices = new InvoiceResource(this.client);\n this.webhooks = new WebhookResource(this.client);\n this.themes = new ThemeResource(this.client);\n }\n}\n\nexport const createCheckoutPageClient = (options: CheckoutPageApiClientOptions) => {\n return new CheckoutPageClient(options);\n};\n\n// Export types and errors for convenience\nexport type { CheckoutPageApiClientOptions } from './client';\nexport type {\n ReadOptions,\n Account,\n AccountLogo,\n Customer,\n Submission,\n SubmissionResponse,\n SubmissionList,\n SubmissionListParams,\n Address,\n Shipping,\n Coupon,\n CouponList,\n Payment,\n PaymentList,\n PriceSnapshot,\n Booking,\n BookingTicket,\n BookingTicketFee,\n Subscription,\n SubscriptionList,\n SubscriptionPayment,\n SubscriptionPaymentList,\n SubscriptionPaymentListParams,\n ValidateTicketResponse,\n ValidateTicketParams,\n Product,\n ProductData,\n Price,\n PriceInput,\n ProductVariant,\n UpdateProductParams,\n ProductList,\n ProductListParams,\n Event,\n EventList,\n EventListParams,\n CreateEventParams,\n CreateEventResponse,\n EventResponse,\n UpdateEventParams,\n UpdateEventResponse,\n DeleteEventResponse,\n EventTicketGroup,\n EventTicketGroupList,\n EventTicketGroupResponse,\n CreateEventTicketGroupParams,\n CreateEventTicketGroupResponse,\n UpdateEventTicketGroupParams,\n UpdateEventTicketGroupResponse,\n DeleteEventTicketGroupResponse,\n EventTicketType,\n EventTicketTypeList,\n EventTicketTypeResponse,\n CreateEventTicketTypeParams,\n CreateEventTicketTypeResponse,\n UpdateEventTicketTypeParams,\n UpdateEventTicketTypeResponse,\n DeleteEventTicketTypeResponse,\n EventField,\n EventFieldList,\n CreateEventFieldParams,\n UpdateEventFieldParams,\n EventFieldResponse,\n EventFieldDeleteResponse,\n Form,\n FormList,\n FormListParams,\n CreateFormParams,\n CreateFormResponse,\n FormResponse,\n UpdateFormParams,\n UpdateFormResponse,\n DeleteFormResponse,\n FormField,\n FormFieldList,\n CreateFormFieldParams,\n UpdateFormFieldParams,\n FormFieldDeleteResponse,\n CheckoutPage,\n CheckoutPageList,\n CheckoutPageListParams,\n CreateCheckoutPageParams,\n CreateCheckoutPageResponse,\n CheckoutPageResponse,\n UpdateCheckoutPageParams,\n UpdateCheckoutPageResponse,\n DeleteCheckoutPageResponse,\n CheckoutPageField,\n CheckoutPageFieldList,\n CreateCheckoutPageFieldParams,\n UpdateCheckoutPageFieldParams,\n CheckoutPageFieldDeleteResponse,\n UploadFileResponse,\n UploadFileParams,\n DeleteFileResponse,\n DownloadFileResponse,\n TaxRate,\n TaxRateList,\n TaxRateResponse,\n CreateTaxRateParams,\n UpdateTaxRateParams,\n DeleteTaxRateResponse,\n Invoice,\n InvoiceList,\n InvoiceListParams,\n Webhook,\n WebhookList,\n WebhookListParams,\n CreateWebhookParams,\n CreateWebhookResponse,\n WebhookResponse,\n UpdateWebhookParams,\n UpdateWebhookResponse,\n DeleteWebhookResponse,\n Theme,\n ThemeList,\n ThemeListParams,\n CreateThemeParams,\n CreateThemeResponse,\n ThemeResponse,\n UpdateThemeParams,\n UpdateThemeResponse,\n DeleteThemeResponse,\n} from './types';\nexport {\n CheckoutPageError,\n AuthenticationError,\n NotFoundError,\n ConflictError,\n RateLimitError,\n ValidationError,\n APIError,\n} from './errors';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/resources/invoices/invoices.ts","../src/client.ts","../src/resources/accounts/accounts.ts","../src/resources/customers/customers.ts","../src/resources/coupons/coupons.ts","../src/resources/payments/payments.ts","../src/resources/subscriptions/subscriptions.ts","../src/resources/subscription-payments/subscription-payments.ts","../src/resources/bookings/bookings.ts","../src/resources/tickets/tickets.ts","../src/resources/products/products.ts","../src/resources/files/files.ts","../src/resources/order-bumps/order-bumps.ts","../src/resources/checkout-pages/checkout-pages.ts","../src/resources/events/events.ts","../src/resources/forms/forms.ts","../src/resources/submissions/submissions.ts","../src/resources/tax-rates/tax-rates.ts","../src/resources/webhooks/webhooks.ts","../src/resources/themes/themes.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["export class CheckoutPageError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'CheckoutPageError';\n Object.setPrototypeOf(this, CheckoutPageError.prototype);\n }\n}\n\nexport class AuthenticationError extends CheckoutPageError {\n constructor(message = 'Authentication failed. Please check your API key.') {\n super(message);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\nexport class NotFoundError extends CheckoutPageError {\n constructor(message = 'The requested resource was not found.') {\n super(message);\n this.name = 'NotFoundError';\n Object.setPrototypeOf(this, NotFoundError.prototype);\n }\n}\n\nexport class ConflictError extends CheckoutPageError {\n constructor(message = 'Conflict - the created resource already exists.') {\n super(message);\n this.name = 'ConflictError';\n Object.setPrototypeOf(this, ConflictError.prototype);\n }\n}\n\nexport class RateLimitError extends CheckoutPageError {\n constructor(message = 'Rate limit exceeded. Please try again later.') {\n super(message);\n this.name = 'RateLimitError';\n Object.setPrototypeOf(this, RateLimitError.prototype);\n }\n}\n\nexport class ValidationError extends CheckoutPageError {\n constructor(message = 'Validation failed.') {\n super(message);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class APIError extends CheckoutPageError {\n public readonly statusCode: number;\n public readonly response?: unknown;\n\n constructor(message: string, statusCode: number, response?: unknown) {\n super(message);\n this.name = 'APIError';\n this.statusCode = statusCode;\n this.response = response;\n Object.setPrototypeOf(this, APIError.prototype);\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n Invoice,\n InvoiceList,\n InvoiceListParams,\n InvoiceResponse,\n ReadOptions,\n} from '../../types';\n\nexport class InvoiceResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single invoice by ID. The returned `invoiceUrl` is a freshly\n * signed link to the hosted PDF and expires an hour later — re-fetch to\n * mint a new one.\n *\n * @example\n * const { data: invoice } = await client.invoices.get(invoiceId);\n *\n * @example\n * // A test invoice\n * const { data: testInvoice } = await client.invoices.get(invoiceId, { livemode: false });\n */\n async get(id: string, options: ReadOptions = {}): Promise<InvoiceResponse> {\n if (!id) {\n throw new Error('Invoice ID is required');\n }\n\n return this.client.request<InvoiceResponse>({\n method: 'GET',\n path: `/v1/invoices/${id}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: InvoiceListParams = {}): Promise<InvoiceList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n search: args.search,\n status: args.status,\n customerId: args.customerId,\n chargeId: args.chargeId,\n poNumber: args.poNumber,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n };\n\n return this.client.request<InvoiceList>({\n method: 'GET',\n path: '/v1/invoices/',\n query,\n });\n }\n\n async regenerate(id: string): Promise<Invoice> {\n const response = await this.client.request<{ data: Invoice }>({\n method: 'POST',\n path: `/v1/invoices/${id}/regenerate`,\n });\n return response.data;\n }\n}\n","import {\n APIError,\n AuthenticationError,\n ConflictError,\n NotFoundError,\n RateLimitError,\n ValidationError,\n} from './errors';\nimport { InvoiceResource } from './resources/invoices/invoices';\n\nexport interface CheckoutPageApiClientOptions {\n apiKey: string;\n baseUrl?: string;\n}\n\nexport interface RequestOptions {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n body?: unknown;\n query?: Record<string, string | number | boolean | undefined>;\n formData?: FormData;\n}\n\nexport class CheckoutPageApiClient {\n private readonly apiKey: string;\n private readonly baseUrl: string;\n public readonly invoices: InvoiceResource;\n\n constructor(options: CheckoutPageApiClientOptions) {\n if (!options.apiKey) {\n throw new Error('API key is required');\n }\n\n this.apiKey = options.apiKey;\n this.baseUrl = options.baseUrl || 'https://api.checkoutpage.com';\n this.invoices = new InvoiceResource(this);\n }\n\n async request<T>(options: RequestOptions): Promise<T> {\n const url = this.buildUrl(options.path, options.query);\n\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.apiKey}`,\n 'User-Agent': '@checkoutpage/sdk/0.1.0',\n };\n\n // Only set Content-Type for JSON requests (FormData sets its own boundary)\n if (!options.formData) {\n headers['Content-Type'] = 'application/json';\n }\n\n const fetchOptions: RequestInit = {\n method: options.method,\n headers,\n };\n\n if (options.formData) {\n fetchOptions.body = options.formData;\n } else if (options.body) {\n fetchOptions.body = JSON.stringify(options.body);\n }\n\n const response = await fetch(url, fetchOptions);\n return await this.handleResponse<T>(response);\n }\n\n /**\n * Perform a request whose successful response is a binary file rather than\n * JSON (e.g. a ticket PDF). Errors are parsed and thrown the same way as\n * request().\n */\n async requestRaw(options: RequestOptions): Promise<ArrayBuffer> {\n const url = this.buildUrl(options.path, options.query);\n\n const response = await fetch(url, {\n method: options.method,\n headers: {\n Authorization: `Bearer ${this.apiKey}`,\n 'User-Agent': '@checkoutpage/sdk/0.1.0',\n },\n });\n\n if (!response.ok) {\n await this.handleResponse<never>(response);\n }\n\n return await response.arrayBuffer();\n }\n\n private buildUrl(\n path: string,\n query?: Record<string, string | number | boolean | undefined>\n ): string {\n const url = new URL(path, this.baseUrl);\n\n if (query) {\n Object.entries(query).forEach(([key, value]) => {\n if (value !== undefined) {\n url.searchParams.append(key, String(value));\n }\n });\n }\n\n return url.toString();\n }\n\n private async handleResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get('content-type');\n const isJson = contentType?.includes('application/json');\n\n let data: unknown;\n try {\n data = isJson ? await response.json() : await response.text();\n } catch {\n data = null;\n }\n\n if (!response.ok) {\n const message = this.extractErrorMessage(data);\n\n switch (response.status) {\n case 401:\n case 403:\n throw new AuthenticationError(message);\n case 404:\n throw new NotFoundError(message);\n case 409:\n throw new ConflictError(message);\n case 400:\n case 422:\n throw new ValidationError(message);\n case 429:\n throw new RateLimitError(message);\n default:\n throw new APIError(message, response.status, data);\n }\n }\n\n return data as T;\n }\n\n private extractErrorMessage(data: unknown): string {\n if (typeof data === 'object' && data !== null) {\n if ('message' in data && typeof data.message === 'string') {\n return data.message;\n }\n if ('error' in data && typeof data.error === 'string') {\n return data.error;\n }\n }\n return 'An unexpected error occurred';\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type { Account } from '../../types';\n\nexport class AccountResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve the seller account the API key belongs to: store slug, display\n * name and logo.\n *\n * The endpoint wraps the account in a `data` envelope (the OpenAPI spec\n * documents the bare object); this unwraps it so callers get the account.\n */\n async get(): Promise<Account> {\n const response = await this.client.request<{ data: Account }>({\n method: 'GET',\n path: '/v1/account/',\n });\n\n return response.data;\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n Customer,\n CustomerList,\n CustomerListParams,\n UpdateCustomerParams,\n UpdateCustomerResponse,\n} from '../../types';\n\nexport class CustomerResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async get(customerId: string): Promise<Customer> {\n if (!customerId) {\n throw new Error('Customer ID is required');\n }\n\n return this.client.request<Customer>({\n method: 'GET',\n path: `/v1/customers/${customerId}`,\n });\n }\n\n async list(args: CustomerListParams = {}): Promise<CustomerList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<CustomerList>({\n method: 'GET',\n query,\n path: '/v1/customers/',\n });\n }\n\n async update(\n customerId: string,\n params: UpdateCustomerParams,\n ): Promise<UpdateCustomerResponse> {\n if (!customerId) {\n throw new Error('Customer ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.name !== undefined) {\n body.name = params.name;\n }\n if (params.companyName !== undefined) {\n body.companyName = params.companyName;\n }\n if (params.email !== undefined) {\n body.email = params.email;\n }\n if (params.phone !== undefined) {\n body.phone = params.phone;\n }\n if (params.billingEmail !== undefined) {\n body.billingEmail = params.billingEmail;\n }\n if (params.address !== undefined) {\n body.address = params.address;\n }\n if (params.shipping !== undefined) {\n body.shipping = params.shipping;\n }\n\n return this.client.request<UpdateCustomerResponse>({\n method: 'PATCH',\n path: `/v1/customers/${customerId}`,\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport {\n CouponList,\n CouponListParams,\n CreateCouponParams,\n CreateCouponResponse,\n UpdateCouponParams,\n UpdateCouponResponse,\n} from '../../types';\n\nexport class CouponResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: CouponListParams = {}): Promise<CouponList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<CouponList>({\n method: 'GET',\n query,\n path: '/v1/coupons/',\n });\n }\n\n /**\n * Update an existing coupon. Only the fields you supply are changed.\n *\n * `rules` replaces every stored rule rather than merging; an empty list makes\n * the coupon work on every checkout page and event. `pageIds` and\n * `ticketTypeIds` are deprecated: they are accepted only without `rules`, and\n * the API refuses them with a 400 when the coupon has rules they can't express.\n *\n * The discount itself (`code`, `amountOff`, `percentOff`, `currency`,\n * `duration`) is fixed once the coupon is mirrored into Stripe. To change a\n * discount, soft delete this coupon and create a replacement.\n *\n * @example\n * const { data: coupon } = await client.coupons.update(couponId, { deleted: true });\n */\n async update(couponId: string, params: UpdateCouponParams): Promise<UpdateCouponResponse> {\n if (!couponId) {\n throw new Error('Coupon ID is required');\n }\n\n return this.client.request<UpdateCouponResponse>({\n method: 'PATCH',\n path: `/v1/coupons/${couponId}`,\n body: params,\n });\n }\n\n /**\n * Create a coupon. `rules` says where it works and what it discounts, one rule\n * per checkout page or event; omit it for a coupon that discounts the whole\n * order everywhere. `pageIds` and `ticketTypeIds` are deprecated in favour of\n * `rules` and cannot be sent with it.\n *\n * @example\n * await client.coupons.create({\n * type: 'percent',\n * label: 'Monthly plus workbook',\n * code: 'BUNDLE20',\n * percentOff: 20,\n * duration: 'once',\n * rules: [\n * { pageId, appliesTo: 'pricesAndBumps', priceIds: [monthlyPriceId], bumpProductIds: [workbookId] },\n * ],\n * });\n */\n async create(params: CreateCouponParams): Promise<CreateCouponResponse> {\n const body: Record<string, unknown> = {\n label: params.label,\n code: params.code,\n duration: params.duration,\n };\n\n if (params.duration === 'repeating') {\n body.durationInMonths = (params as any).durationInMonths;\n }\n\n if (params.appliesToSetupFee !== undefined) {\n body.appliesToSetupFee = params.appliesToSetupFee;\n }\n if (params.appliesToTicketFees !== undefined) {\n body.appliesToTicketFees = params.appliesToTicketFees;\n }\n if (params.rules !== undefined) {\n body.rules = params.rules;\n }\n if (params.pageIds !== undefined) {\n body.pageIds = params.pageIds;\n }\n if (params.ticketTypeIds !== undefined) {\n body.ticketTypeIds = params.ticketTypeIds;\n }\n if (params.maxRedemptions !== undefined) {\n body.maxRedemptions = params.maxRedemptions;\n }\n if (params.redeemBy !== undefined) {\n body.redeemBy = params.redeemBy;\n }\n\n if (params.type === 'amount') {\n body.amountOff = params.amountOff;\n body.currency = params.currency;\n } else {\n body.percentOff = params.percentOff;\n }\n\n return this.client.request<CreateCouponResponse>({\n method: 'POST',\n path: '/v1/coupons/',\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type { PaymentList, PaymentListParams, PaymentResponse, ReadOptions } from '../../types';\n\nexport class PaymentResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single payment by ID. Only checkout payments are returned —\n * an event charge is a booking, and 404s here.\n *\n * @example\n * const { data: payment } = await client.payments.get(paymentId);\n *\n * @example\n * // A test payment\n * const { data: testPayment } = await client.payments.get(paymentId, { livemode: false });\n */\n async get(paymentId: string, options: ReadOptions = {}): Promise<PaymentResponse> {\n if (!paymentId) {\n throw new Error('Payment ID is required');\n }\n\n return this.client.request<PaymentResponse>({\n method: 'GET',\n path: `/v1/payments/${paymentId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: PaymentListParams = {}): Promise<PaymentList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n status: args.status,\n orderStatus: args.orderStatus,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n couponCode: args.couponCode,\n productId: args.productId,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<PaymentList>({\n method: 'GET',\n query,\n path: '/v1/payments/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n SubscriptionCancelParams,\n SubscriptionCancelResponse,\n SubscriptionList,\n SubscriptionListParams,\n SubscriptionResponse,\n ReadOptions,\n} from '../../types';\n\nexport class SubscriptionResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single subscription by ID.\n *\n * @example\n * const { data: subscription } = await client.subscriptions.get(subscriptionId);\n *\n * @example\n * // A test subscription\n * const { data: testSubscription } = await client.subscriptions.get(subscriptionId, {\n * livemode: false,\n * });\n */\n async get(subscriptionId: string, options: ReadOptions = {}): Promise<SubscriptionResponse> {\n if (!subscriptionId) {\n throw new Error('Subscription ID is required');\n }\n\n return this.client.request<SubscriptionResponse>({\n method: 'GET',\n path: `/v1/subscriptions/${subscriptionId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubscriptionListParams = {}): Promise<SubscriptionList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n status: args.status,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<SubscriptionList>({\n method: 'GET',\n query,\n path: '/v1/subscriptions/',\n });\n }\n\n /**\n * Cancel a subscription. Provide exactly one of `cancelImmediately`,\n * `cancelAtPeriodEnd`, or `cancelAt` — timing is explicit at the API\n * boundary. Enforced both at the type level via the\n * {@link SubscriptionCancelParams} discriminated union and at the server\n * via zod. Cancellation is one-way; a canceled Stripe subscription cannot\n * be un-canceled.\n *\n * @example\n * await client.subscriptions.cancel(id, { cancelImmediately: true });\n * await client.subscriptions.cancel(id, { cancelAtPeriodEnd: true, sendCancellationEmail: true });\n * await client.subscriptions.cancel(id, { cancelAt: '2026-12-31T23:59:59.000Z' });\n */\n async cancel(\n subscriptionId: string,\n params: SubscriptionCancelParams,\n ): Promise<SubscriptionCancelResponse> {\n return this.client.request<SubscriptionCancelResponse>({\n method: 'POST',\n path: `/v1/subscriptions/${subscriptionId}/cancel`,\n body: params,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n SubscriptionPaymentList,\n SubscriptionPaymentListParams,\n SubscriptionPaymentResponse,\n ReadOptions,\n} from '../../types';\n\nexport class SubscriptionPaymentResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Retrieve a single subscription payment by ID — one charge within a\n * subscription's billing cycle, not the subscription itself. For every\n * payment on a subscription, use `list({ subscriptionId })`.\n *\n * @example\n * const { data: payment } = await client.subscriptionPayments.get(paymentId);\n *\n * @example\n * // A test subscription payment\n * const { data: testPayment } = await client.subscriptionPayments.get(paymentId, {\n * livemode: false,\n * });\n */\n async get(\n subscriptionPaymentId: string,\n options: ReadOptions = {}\n ): Promise<SubscriptionPaymentResponse> {\n if (!subscriptionPaymentId) {\n throw new Error('Subscription payment ID is required');\n }\n\n return this.client.request<SubscriptionPaymentResponse>({\n method: 'GET',\n path: `/v1/subscription-payments/${subscriptionPaymentId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubscriptionPaymentListParams = {}): Promise<SubscriptionPaymentList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n subscriptionId: args.subscriptionId,\n customerId: args.customerId,\n pageId: args.pageId,\n paymentStatus: args.paymentStatus,\n paid: args.paid,\n refunded: args.refunded,\n billingReason: args.billingReason,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n };\n\n return this.client.request<SubscriptionPaymentList>({\n method: 'GET',\n query,\n path: '/v1/subscription-payments/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n BookingList,\n BookingListParams,\n BookingResponse,\n CreateBookingParams,\n CreateBookingResponse,\n ReadOptions,\n} from '../../types';\n\nexport class BookingResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * Create an event booking without collecting card payment. This is a real\n * booking: tickets are issued, the customer receives a confirmation email\n * with the ticket PDF, live-mode bookings decrement capacity, and booking webhooks fire.\n * There are two ways to settle it. With `paymentOption.manualType` the\n * booking is recorded as `unpaid`, to be settled outside checkout via the\n * chosen manual option; a free booking simply has nothing due. With\n * `complimentary: true` the tickets are issued at no charge: the booking is\n * recorded as `paid` with `amount`, `amountPaid` and `amountDue` of 0 and\n * `isComplimentary: true`, while the ticket lines keep their face value and\n * `complimentaryDiscountAmount` records what they would have cost.\n * `complimentary` is mutually exclusive with `paymentOption` and `couponId`,\n * and one of `paymentOption` or `complimentary` is required.\n *\n * Field entries carry a `fieldId` plus the value. Every required field on\n * the event must be supplied, and a stock event requires name, email and a\n * billing address. The ids come from `GET /v1/events/{eventId}/fields`,\n * which this client does not yet wrap.\n *\n * @example\n * const { data: booking } = await client.bookings.create({\n * eventId,\n * tickets: { [ticketTypeId]: 2 },\n * fields: [\n * { fieldId: emailFieldId, value: 'ada@example.com' },\n * { fieldId: nameFieldId, value: 'Ada Lovelace' },\n * ],\n * paymentOption: { manualType: 'invoice' },\n * });\n *\n * @example\n * const { data: booking } = await client.bookings.create({\n * eventId,\n * tickets: { [ticketTypeId]: 2 },\n * fields: [{ fieldId: emailFieldId, value: 'ada@example.com' }],\n * complimentary: true,\n * });\n */\n async create(params: CreateBookingParams): Promise<CreateBookingResponse> {\n return this.client.request<CreateBookingResponse>({\n method: 'POST',\n path: '/v1/bookings/',\n body: params,\n });\n }\n\n /**\n * Retrieve a single booking by ID. Only event bookings are returned —\n * a checkout charge is a payment, and 404s here.\n *\n * @example\n * const { data: booking } = await client.bookings.get(bookingId);\n *\n * @example\n * // A test booking\n * const { data: testBooking } = await client.bookings.get(bookingId, { livemode: false });\n */\n async get(bookingId: string, options: ReadOptions = {}): Promise<BookingResponse> {\n if (!bookingId) {\n throw new Error('Booking ID is required');\n }\n\n return this.client.request<BookingResponse>({\n method: 'GET',\n path: `/v1/bookings/${bookingId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n /**\n * Download the booking's ticket PDF (every ticket in the booking) as raw\n * bytes. The response reflects the current tickets, so attendee updates\n * appear on the next download. Throws NotFoundError when no PDF exists,\n * e.g. for unpaid or abandoned bookings.\n *\n * @example\n * const pdf = await client.bookings.downloadTicketPdf(bookingId);\n * fs.writeFileSync('tickets.pdf', Buffer.from(pdf));\n *\n * @example\n * // The tickets of a test booking\n * const testPdf = await client.bookings.downloadTicketPdf(bookingId, { livemode: false });\n */\n async downloadTicketPdf(bookingId: string, options: ReadOptions = {}): Promise<ArrayBuffer> {\n if (!bookingId) {\n throw new Error('Booking ID is required');\n }\n\n return this.client.requestRaw({\n method: 'GET',\n path: `/v1/bookings/${bookingId}/ticket-pdf`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: BookingListParams = {}): Promise<BookingList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n status: args.status,\n orderStatus: args.orderStatus,\n pageId: args.pageId,\n customerId: args.customerId,\n orderId: args.orderId,\n couponCode: args.couponCode,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n abandonmentStatus: args.abandonmentStatus,\n isComplimentary: args.isComplimentary,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<BookingList>({\n method: 'GET',\n query,\n path: '/v1/bookings/',\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n TicketList,\n TicketListParams,\n UpdateTicketParams,\n UpdateTicketResponse,\n ValidateTicketData,\n ValidateTicketParams,\n ValidateTicketResponse,\n} from '../../types';\n\nexport class TicketResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: TicketListParams = {}): Promise<TicketList> {\n const query: Record<string, string | undefined> = {\n pageId: args.pageId,\n bookingId: args.bookingId,\n orderId: args.orderId,\n customerId: args.customerId,\n ticketTypeId: args.ticketTypeId,\n status: args.status,\n checkInStatus: args.checkInStatus,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n search: args.search,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<TicketList>({\n method: 'GET',\n query,\n path: '/v1/tickets/',\n });\n }\n\n async update(ticketId: string, params: UpdateTicketParams): Promise<UpdateTicketResponse> {\n if (!ticketId) {\n throw new Error('Ticket ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.attendeeName !== undefined) {\n body.attendeeName = params.attendeeName;\n }\n if (params.attendeeEmail !== undefined) {\n body.attendeeEmail = params.attendeeEmail;\n }\n if (params.metadata !== undefined) {\n body.metadata = params.metadata;\n }\n\n return this.client.request<UpdateTicketResponse>({\n method: 'PATCH',\n path: `/v1/tickets/${ticketId}`,\n body,\n });\n }\n\n async validate(qrCode: string, params?: ValidateTicketParams): Promise<ValidateTicketResponse> {\n const body = params || {};\n\n const response = await this.client.request<ValidateTicketData>({\n method: 'POST',\n path: `/v1/tickets/validate/${qrCode}`,\n body,\n });\n\n return response.data;\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n CreateProductParams,\n CreateProductResponse,\n DeleteProductOptions,\n DeleteProductResponse,\n Product,\n ProductList,\n ProductListParams,\n UpdateProductParams,\n} from '../../types';\n\nconst ORDER_BUMP_CARD_FIELDS = [\n 'shortDescription',\n 'callToActionText',\n 'headingText',\n 'features',\n 'calloutText',\n 'calloutIcon',\n] as const;\n\nexport class ProductResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(args: ProductListParams = {}): Promise<ProductList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n role: args.role,\n search: args.search,\n };\n\n return this.client.request<ProductList>({\n method: 'GET',\n path: '/v1/products/',\n query,\n });\n }\n\n /**\n * Creates an order bump product (`role: 'orderbump'`). Order bump products use\n * a single one-time price; page products are created with their page.\n */\n async create(params: CreateProductParams): Promise<CreateProductResponse> {\n return this.client.request<CreateProductResponse>({\n method: 'POST',\n path: '/v1/products/',\n body: params,\n });\n }\n\n /**\n * Deletes an order bump product that has never been bought. Pass\n * `fromAllPages: true` to remove it from the pages offering it first.\n */\n async delete(\n productId: string,\n options: DeleteProductOptions = {}\n ): Promise<DeleteProductResponse> {\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n return this.client.request<DeleteProductResponse>({\n method: 'DELETE',\n path: `/v1/products/${productId}`,\n query: {\n fromAllPages: options.fromAllPages === undefined ? undefined : String(options.fromAllPages),\n },\n });\n }\n\n async get(productId: string): Promise<Product> {\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n return this.client.request<Product>({\n method: 'GET',\n path: `/v1/products/${productId}`,\n });\n }\n\n async update(productId: string, params: UpdateProductParams): Promise<Product> {\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.title !== undefined) {\n body.title = params.title;\n }\n if (params.description !== undefined) {\n body.description = params.description;\n }\n if (params.price !== undefined) {\n body.price = params.price;\n }\n if (params.sku !== undefined) {\n body.sku = params.sku;\n }\n if (params.hasUnlimitedStock !== undefined) {\n body.hasUnlimitedStock = params.hasUnlimitedStock;\n }\n if (params.stock !== undefined) {\n body.stock = params.stock;\n }\n if (params.taxBehavior !== undefined) {\n body.taxBehavior = params.taxBehavior;\n }\n if (params.taxCode !== undefined) {\n body.taxCode = params.taxCode;\n }\n if (params.imageIds !== undefined) {\n body.imageIds = params.imageIds;\n }\n if (params.fileIds !== undefined) {\n body.fileIds = params.fileIds;\n }\n if (params.variantsRequired !== undefined) {\n body.variantsRequired = params.variantsRequired;\n }\n if (params.variants !== undefined) {\n body.variants = params.variants;\n }\n if (params.discounts !== undefined) {\n body.discounts = params.discounts;\n }\n if (params.limitSubscriptions !== undefined) {\n body.limitSubscriptions = params.limitSubscriptions;\n }\n if (params.limitPayments !== undefined) {\n body.limitPayments = params.limitPayments;\n }\n if (params.enableFileAccessForInactiveSubscriptions !== undefined) {\n body.enableFileAccessForInactiveSubscriptions =\n params.enableFileAccessForInactiveSubscriptions;\n }\n if (params.generateLicenseKeys !== undefined) {\n body.generateLicenseKeys = params.generateLicenseKeys;\n }\n if (params.fixedTaxRateIds !== undefined) {\n body.fixedTaxRateIds = params.fixedTaxRateIds;\n }\n if (params.prices !== undefined) {\n body.prices = params.prices;\n }\n if (params.defaultPriceId !== undefined) {\n body.defaultPriceId = params.defaultPriceId;\n }\n if (params.pricePicker !== undefined) {\n body.pricePicker = params.pricePicker;\n }\n for (const field of ORDER_BUMP_CARD_FIELDS) {\n if (params[field] !== undefined) {\n body[field] = params[field];\n }\n }\n\n return this.client.request<Product>({\n method: 'PATCH',\n path: `/v1/products/${productId}`,\n body,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n DeleteFileResponse,\n DownloadFileResponse,\n UploadFileResponse,\n UploadFileParams,\n} from '../../types';\n\nexport class FileResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async upload(params: UploadFileParams): Promise<UploadFileResponse> {\n if (!params.file) {\n throw new Error('File is required');\n }\n\n if (!params.purpose) {\n throw new Error('Purpose is required');\n }\n\n const formData = new FormData();\n formData.append('file', params.file);\n formData.append('purpose', params.purpose);\n\n return this.client.request<UploadFileResponse>({\n method: 'POST',\n path: '/v1/files/upload',\n formData,\n });\n }\n\n async delete(fileId: string): Promise<DeleteFileResponse> {\n if (!fileId) {\n throw new Error('File ID is required');\n }\n\n return this.client.request<DeleteFileResponse>({\n method: 'DELETE',\n path: `/v1/files/${fileId}`,\n });\n }\n\n async download(fileId: string): Promise<DownloadFileResponse> {\n if (!fileId) {\n throw new Error('File ID is required');\n }\n\n return this.client.request<DownloadFileResponse>({\n method: 'GET',\n path: `/v1/files/${fileId}/download`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n CreateOrderBumpParams,\n DeleteOrderBumpResponse,\n OrderBumpList,\n OrderBumpResponse,\n ReorderOrderBumpsParams,\n UpdateOrderBumpParams,\n} from '../../types';\n\nexport type OrderBumpPageResource = 'checkout-pages' | 'events';\n\n/**\n * Order bumps offered on a checkout page or event (shown as add-ons on an event).\n * A bump is addressed by its order bump product ID.\n *\n * Reached as `client.checkoutPages.orderBumps` and `client.events.orderBumps`.\n */\nexport class OrderBumpsResource {\n constructor(\n private client: CheckoutPageApiClient,\n private pageResource: OrderBumpPageResource\n ) {}\n\n private basePath(pageId: string) {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return `/v1/${this.pageResource}/${pageId}/order-bumps`;\n }\n\n /** Lists the order bumps on the page in display order, including unavailable ones. */\n async list(pageId: string): Promise<OrderBumpList> {\n return this.client.request<OrderBumpList>({\n method: 'GET',\n path: this.basePath(pageId),\n });\n }\n\n /** Offers an order bump product on the page. It is added last. */\n async create(pageId: string, params: CreateOrderBumpParams): Promise<OrderBumpResponse> {\n return this.client.request<OrderBumpResponse>({\n method: 'POST',\n path: this.basePath(pageId),\n body: params,\n });\n }\n\n /** Updates how the order bump is offered on the page. `showHideLogic` is replaced whole. */\n async update(\n pageId: string,\n productId: string,\n params: UpdateOrderBumpParams\n ): Promise<OrderBumpResponse> {\n const path = this.basePath(pageId);\n\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n return this.client.request<OrderBumpResponse>({\n method: 'PATCH',\n path: `${path}/${productId}`,\n body: params,\n });\n }\n\n /** Stops offering the order bump on the page. The product is kept. */\n async delete(pageId: string, productId: string): Promise<DeleteOrderBumpResponse> {\n const path = this.basePath(pageId);\n\n if (!productId) {\n throw new Error('Product ID is required');\n }\n\n return this.client.request<DeleteOrderBumpResponse>({\n method: 'DELETE',\n path: `${path}/${productId}`,\n });\n }\n\n /** Sets the display order. `productIds` must list every order bump on the page exactly once. */\n async reorder(pageId: string, params: ReorderOrderBumpsParams): Promise<OrderBumpList> {\n return this.client.request<OrderBumpList>({\n method: 'POST',\n path: `${this.basePath(pageId)}/reorder`,\n body: params,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport { OrderBumpsResource } from '../order-bumps/order-bumps';\nimport type {\n CheckoutPageList,\n CheckoutPageListParams,\n CreateCheckoutPageParams,\n CreateCheckoutPageResponse,\n CheckoutPageResponse,\n UpdateCheckoutPageParams,\n UpdateCheckoutPageResponse,\n DeleteCheckoutPageResponse,\n CheckoutPageFieldDeleteResponse,\n CheckoutPageFieldList,\n CreateCheckoutPageFieldParams,\n UpdateCheckoutPageFieldParams,\n CheckoutPageFieldResponse,\n} from '../../types';\n\nexport class CheckoutPageFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<CheckoutPageFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageFieldList>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}/fields`,\n });\n }\n\n async create(\n pageId: string,\n params: CreateCheckoutPageFieldParams\n ): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'POST',\n path: `/v1/checkout-pages/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateCheckoutPageFieldParams\n ): Promise<CheckoutPageFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldResponse>({\n method: 'PATCH',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<CheckoutPageFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<CheckoutPageFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/checkout-pages/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class CheckoutPagesResource {\n public readonly fields: CheckoutPageFieldsResource;\n public readonly orderBumps: OrderBumpsResource;\n private readonly client: CheckoutPageApiClient;\n\n constructor(client: CheckoutPageApiClient) {\n this.client = client;\n this.fields = new CheckoutPageFieldsResource(client);\n this.orderBumps = new OrderBumpsResource(client, 'checkout-pages');\n }\n\n async list(args: CheckoutPageListParams = {}): Promise<CheckoutPageList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<CheckoutPageList>({\n method: 'GET',\n path: '/v1/checkout-pages/',\n query,\n });\n }\n\n async create(params: CreateCheckoutPageParams): Promise<CreateCheckoutPageResponse> {\n return this.client.request<CreateCheckoutPageResponse>({\n method: 'POST',\n path: '/v1/checkout-pages/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<CheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CheckoutPageResponse>({\n method: 'GET',\n path: `/v1/checkout-pages/${pageId}`,\n });\n }\n\n async update(\n pageId: string,\n params: UpdateCheckoutPageParams\n ): Promise<UpdateCheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateCheckoutPageResponse>({\n method: 'PATCH',\n path: `/v1/checkout-pages/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteCheckoutPageResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteCheckoutPageResponse>({\n method: 'DELETE',\n path: `/v1/checkout-pages/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport { OrderBumpsResource } from '../order-bumps/order-bumps';\nimport type {\n EventList,\n EventListParams,\n CreateEventParams,\n CreateEventResponse,\n EventResponse,\n UpdateEventParams,\n UpdateEventResponse,\n DeleteEventResponse,\n EventTicketGroupList,\n EventTicketGroupResponse,\n CreateEventTicketGroupParams,\n CreateEventTicketGroupResponse,\n UpdateEventTicketGroupParams,\n UpdateEventTicketGroupResponse,\n DeleteEventTicketGroupResponse,\n EventTicketTypeList,\n EventTicketTypeResponse,\n CreateEventTicketTypeParams,\n CreateEventTicketTypeResponse,\n UpdateEventTicketTypeParams,\n UpdateEventTicketTypeResponse,\n DeleteEventTicketTypeResponse,\n EventFieldList,\n EventFieldResponse,\n CreateEventFieldParams,\n UpdateEventFieldParams,\n EventFieldDeleteResponse,\n} from '../../types';\n\nexport class EventFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<EventFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventFieldList>({\n method: 'GET',\n path: `/v1/events/${pageId}/fields`,\n });\n }\n\n async create(pageId: string, params: CreateEventFieldParams): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateEventFieldParams\n ): Promise<EventFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<EventFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<EventFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class EventTicketTypesResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string, ticketGroupId: string): Promise<EventTicketTypeList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<EventTicketTypeList>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types`,\n });\n }\n\n async create(\n pageId: string,\n ticketGroupId: string,\n params: CreateEventTicketTypeParams\n ): Promise<CreateEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<CreateEventTicketTypeResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types`,\n body: params,\n });\n }\n\n async get(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string\n ): Promise<EventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<EventTicketTypeResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n });\n }\n\n async update(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string,\n params: UpdateEventTicketTypeParams\n ): Promise<UpdateEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<UpdateEventTicketTypeResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n body: params,\n });\n }\n\n async delete(\n pageId: string,\n ticketGroupId: string,\n ticketTypeId: string\n ): Promise<DeleteEventTicketTypeResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n if (!ticketTypeId) {\n throw new Error('Ticket type ID is required');\n }\n\n return this.client.request<DeleteEventTicketTypeResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}/ticket-types/${ticketTypeId}`,\n });\n }\n}\n\nexport class EventTicketGroupsResource {\n public readonly ticketTypes: EventTicketTypesResource;\n\n constructor(private client: CheckoutPageApiClient) {\n this.ticketTypes = new EventTicketTypesResource(client);\n }\n\n async list(pageId: string): Promise<EventTicketGroupList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventTicketGroupList>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups`,\n });\n }\n\n async create(\n pageId: string,\n params: CreateEventTicketGroupParams\n ): Promise<CreateEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<CreateEventTicketGroupResponse>({\n method: 'POST',\n path: `/v1/events/${pageId}/ticket-groups`,\n body: params,\n });\n }\n\n async get(pageId: string, ticketGroupId: string): Promise<EventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<EventTicketGroupResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n });\n }\n\n async update(\n pageId: string,\n ticketGroupId: string,\n params: UpdateEventTicketGroupParams\n ): Promise<UpdateEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<UpdateEventTicketGroupResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, ticketGroupId: string): Promise<DeleteEventTicketGroupResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!ticketGroupId) {\n throw new Error('Ticket group ID is required');\n }\n\n return this.client.request<DeleteEventTicketGroupResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}/ticket-groups/${ticketGroupId}`,\n });\n }\n}\n\nexport class EventsResource {\n public readonly ticketGroups: EventTicketGroupsResource;\n public readonly fields: EventFieldsResource;\n public readonly orderBumps: OrderBumpsResource;\n\n constructor(private client: CheckoutPageApiClient) {\n this.ticketGroups = new EventTicketGroupsResource(client);\n this.fields = new EventFieldsResource(client);\n this.orderBumps = new OrderBumpsResource(client, 'events');\n }\n\n async list(args: EventListParams = {}): Promise<EventList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<EventList>({\n method: 'GET',\n path: '/v1/events/',\n query,\n });\n }\n\n async create(params: CreateEventParams): Promise<CreateEventResponse> {\n return this.client.request<CreateEventResponse>({\n method: 'POST',\n path: '/v1/events/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<EventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<EventResponse>({\n method: 'GET',\n path: `/v1/events/${pageId}`,\n });\n }\n\n async update(pageId: string, params: UpdateEventParams): Promise<UpdateEventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateEventResponse>({\n method: 'PATCH',\n path: `/v1/events/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteEventResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteEventResponse>({\n method: 'DELETE',\n path: `/v1/events/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n FormList,\n FormListParams,\n CreateFormParams,\n CreateFormResponse,\n FormResponse,\n UpdateFormParams,\n UpdateFormResponse,\n DeleteFormResponse,\n FormFieldList,\n CreateFormFieldParams,\n UpdateFormFieldParams,\n FormFieldResponse,\n FormFieldDeleteResponse,\n} from '../../types';\n\nexport class FormFieldsResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(pageId: string): Promise<FormFieldList> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormFieldList>({\n method: 'GET',\n path: `/v1/forms/${pageId}/fields`,\n });\n }\n\n async create(pageId: string, params: CreateFormFieldParams): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'POST',\n path: `/v1/forms/${pageId}/fields`,\n body: params,\n });\n }\n\n async get(pageId: string, fieldId: string): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'GET',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n });\n }\n\n async update(\n pageId: string,\n fieldId: string,\n params: UpdateFormFieldParams\n ): Promise<FormFieldResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldResponse>({\n method: 'PATCH',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n body: params,\n });\n }\n\n async delete(pageId: string, fieldId: string): Promise<FormFieldDeleteResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n if (!fieldId) {\n throw new Error('Field ID is required');\n }\n\n return this.client.request<FormFieldDeleteResponse>({\n method: 'DELETE',\n path: `/v1/forms/${pageId}/fields/${fieldId}`,\n });\n }\n}\n\nexport class FormsResource {\n public readonly fields: FormFieldsResource;\n constructor(private client: CheckoutPageApiClient) {\n this.fields = new FormFieldsResource(client);\n }\n\n async list(args: FormListParams = {}): Promise<FormList> {\n const query: Record<string, string | undefined> = {\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n status: args.status,\n search: args.search,\n testmode: args.testmode?.toString(),\n };\n\n return this.client.request<FormList>({\n method: 'GET',\n path: '/v1/forms/',\n query,\n });\n }\n\n async create(params: CreateFormParams): Promise<CreateFormResponse> {\n return this.client.request<CreateFormResponse>({\n method: 'POST',\n path: '/v1/forms/',\n body: params,\n });\n }\n\n async get(pageId: string): Promise<FormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<FormResponse>({\n method: 'GET',\n path: `/v1/forms/${pageId}`,\n });\n }\n\n async update(pageId: string, params: UpdateFormParams): Promise<UpdateFormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<UpdateFormResponse>({\n method: 'PATCH',\n path: `/v1/forms/${pageId}`,\n body: params,\n });\n }\n\n async delete(pageId: string): Promise<DeleteFormResponse> {\n if (!pageId) {\n throw new Error('Page ID is required');\n }\n\n return this.client.request<DeleteFormResponse>({\n method: 'DELETE',\n path: `/v1/forms/${pageId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n ReadOptions,\n SubmissionList,\n SubmissionListParams,\n SubmissionResponse,\n} from '../../types';\n\nexport class SubmissionResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async get(submissionId: string, options: ReadOptions = {}): Promise<SubmissionResponse> {\n if (!submissionId) {\n throw new Error('Submission ID is required');\n }\n\n return this.client.request<SubmissionResponse>({\n method: 'GET',\n path: `/v1/submissions/${submissionId}`,\n query: { livemode: options.livemode?.toString() },\n });\n }\n\n async list(args: SubmissionListParams = {}): Promise<SubmissionList> {\n const query: Record<string, string | undefined> = {\n search: args.search,\n pageId: args.pageId,\n customerId: args.customerId,\n status: args.status,\n createdAfter: args.createdAfter,\n createdBefore: args.createdBefore,\n livemode: args.livemode?.toString(),\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<SubmissionList>({\n method: 'GET',\n path: '/v1/submissions/',\n query,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n TaxRateList,\n TaxRateResponse,\n CreateTaxRateParams,\n UpdateTaxRateParams,\n DeleteTaxRateResponse,\n} from '../../types';\n\nexport class TaxRateResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n async list(): Promise<TaxRateList> {\n return this.client.request<TaxRateList>({\n method: 'GET',\n path: '/v1/tax-rates/',\n });\n }\n\n async create(params: CreateTaxRateParams): Promise<TaxRateResponse> {\n const body: Record<string, unknown> = {\n displayName: params.displayName,\n inclusive: params.inclusive,\n percentage: params.percentage,\n };\n\n if (params.default !== undefined) {\n body.default = params.default;\n }\n\n return this.client.request<TaxRateResponse>({\n method: 'POST',\n path: '/v1/tax-rates/',\n body,\n });\n }\n\n async update(taxRateId: string, params: UpdateTaxRateParams): Promise<TaxRateResponse> {\n if (!taxRateId) {\n throw new Error('Tax rate ID is required');\n }\n\n const body: Record<string, unknown> = {};\n\n if (params.displayName !== undefined) {\n body.displayName = params.displayName;\n }\n if (params.default !== undefined) {\n body.default = params.default;\n }\n\n return this.client.request<TaxRateResponse>({\n method: 'PATCH',\n path: `/v1/tax-rates/${taxRateId}`,\n body,\n });\n }\n\n /** Removes the rate from list(); pages and products that used it stop charging that tax. */\n async delete(taxRateId: string): Promise<DeleteTaxRateResponse> {\n if (!taxRateId) {\n throw new Error('Tax rate ID is required');\n }\n\n return this.client.request<DeleteTaxRateResponse>({\n method: 'DELETE',\n path: `/v1/tax-rates/${taxRateId}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport {\n CreateWebhookParams,\n CreateWebhookResponse,\n DeleteWebhookResponse,\n UpdateWebhookParams,\n UpdateWebhookResponse,\n WebhookList,\n WebhookListParams,\n WebhookResponse,\n} from '../../types';\n\nexport class WebhookResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * List webhook endpoints, newest first. Secrets are never returned.\n *\n * @example\n * const { data, has_more } = await client.webhooks.list({ event: 'payment.paid' });\n */\n async list(args: WebhookListParams = {}): Promise<WebhookList> {\n const query: Record<string, string | undefined> = {\n status: args.status,\n event: args.event,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<WebhookList>({\n method: 'GET',\n path: '/v1/webhooks/',\n query,\n });\n }\n\n /**\n * Create a webhook endpoint. The `url` must use https.\n *\n * The response is the only place the signing `secret` is ever returned —\n * store it immediately. Omit `secret` to have one generated.\n *\n * @example\n * const { data: webhook } = await client.webhooks.create({\n * name: 'CRM sync',\n * url: 'https://example.com/hooks/checkoutpage',\n * events: ['payment.paid', 'subscription.created'],\n * });\n * saveSecret(webhook.secret);\n */\n async create(params: CreateWebhookParams): Promise<CreateWebhookResponse> {\n return this.client.request<CreateWebhookResponse>({\n method: 'POST',\n path: '/v1/webhooks/',\n body: params,\n });\n }\n\n /**\n * Retrieve a webhook endpoint by id, with its events, status and delivery\n * counters. The signing `secret` is not returned.\n *\n * @example\n * const { data: webhook } = await client.webhooks.get('6a1f0c2e9b1d4a0012345678');\n */\n async get(webhookId: string): Promise<WebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<WebhookResponse>({\n method: 'GET',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n });\n }\n\n /**\n * Update a webhook endpoint. Only the fields you send change; `events` and\n * `customHeaders` replace the existing values. Set `status` to `'inactive'`\n * to pause deliveries and `'active'` to resume. A new `url` must use https\n * and must not already be registered on another of your webhooks. The\n * signing secret cannot be changed here.\n *\n * @example\n * const { data: webhook } = await client.webhooks.update(webhookId, {\n * events: ['payment.paid', 'checkout_page.updated'],\n * status: 'inactive',\n * });\n */\n async update(webhookId: string, params: UpdateWebhookParams): Promise<UpdateWebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<UpdateWebhookResponse>({\n method: 'PATCH',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n body: params,\n });\n }\n\n /**\n * Delete a webhook endpoint. Deliveries stop immediately; the returned\n * object is its final state. The webhook no longer appears in `list()`,\n * and deleting the same id again returns 404.\n */\n async delete(webhookId: string): Promise<DeleteWebhookResponse> {\n if (!webhookId) {\n throw new Error('Webhook ID is required');\n }\n\n return this.client.request<DeleteWebhookResponse>({\n method: 'DELETE',\n path: `/v1/webhooks/${encodeURIComponent(webhookId)}`,\n });\n }\n}\n","import type { CheckoutPageApiClient } from '../../client';\nimport type {\n CreateThemeParams,\n CreateThemeResponse,\n DeleteThemeResponse,\n ThemeList,\n ThemeListParams,\n ThemeResponse,\n UpdateThemeParams,\n UpdateThemeResponse,\n} from '../../types';\n\nexport class ThemeResource {\n constructor(private client: CheckoutPageApiClient) {}\n\n /**\n * List the themes your pages can use, newest first: your own themes and the\n * built-in (`global`) ones. A retired built-in theme is only listed while one\n * of your pages uses it.\n *\n * @example\n * const { data: themes, has_more } = await client.themes.list({ scope: 'seller' });\n */\n async list(args: ThemeListParams = {}): Promise<ThemeList> {\n const query: Record<string, string | undefined> = {\n scope: args.scope,\n limit: args.limit?.toString(),\n starting_after: args.starting_after,\n ending_before: args.ending_before,\n };\n\n return this.client.request<ThemeList>({\n method: 'GET',\n path: '/v1/themes/',\n query,\n });\n }\n\n /**\n * Retrieve one of your themes or a built-in theme.\n *\n * @example\n * const { data: theme } = await client.themes.get(themeId);\n */\n async get(themeId: string): Promise<ThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<ThemeResponse>({\n method: 'GET',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n });\n }\n\n /**\n * Create a theme. Pass `baseThemeId` to start from a copy of one of your\n * themes or a built-in theme, then set what should differ in `variables`.\n * `variables` takes the same shape as a page's `themeOverrides`. A copy of a\n * built-in theme does not follow your store's brand colour, so set\n * `tokens.colorPrimary` if you want it.\n *\n * @example\n * const { data: theme } = await client.themes.create({\n * name: 'Brand',\n * baseThemeId: builtInThemeId,\n * variables: { tokens: { colorPrimary: { light: '#4f46e5' } } },\n * });\n */\n async create(params: CreateThemeParams): Promise<CreateThemeResponse> {\n return this.client.request<CreateThemeResponse>({\n method: 'POST',\n path: '/v1/themes/',\n body: params,\n });\n }\n\n /**\n * Update one of your themes. Every page that uses it changes too. Keys left\n * out of `variables` keep their value, and `null` resets a property or\n * everything under a key. Built-in themes are read-only.\n *\n * @example\n * const { data: theme } = await client.themes.update(themeId, {\n * variables: { tokens: { colorPrimary: { light: '#0f766e' } } },\n * });\n */\n async update(themeId: string, params: UpdateThemeParams): Promise<UpdateThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<UpdateThemeResponse>({\n method: 'PATCH',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n body: params,\n });\n }\n\n /**\n * Delete one of your themes and return its final state. A theme that any of\n * your pages uses, archived ones included, or that is your store's default\n * theme, can't be deleted (a `ConflictError`): move those pages to another\n * theme with `themeId` first.\n */\n async delete(themeId: string): Promise<DeleteThemeResponse> {\n if (!themeId) {\n throw new Error('Theme ID is required');\n }\n\n return this.client.request<DeleteThemeResponse>({\n method: 'DELETE',\n path: `/v1/themes/${encodeURIComponent(themeId)}`,\n });\n }\n}\n","import { CheckoutPageApiClient, CheckoutPageApiClientOptions } from './client';\nimport { AccountResource } from './resources/accounts/accounts';\nimport { CustomerResource } from './resources/customers/customers';\nimport { CouponResource } from './resources/coupons/coupons';\nimport { PaymentResource } from './resources/payments/payments';\nimport { SubscriptionResource } from './resources/subscriptions/subscriptions';\nimport { SubscriptionPaymentResource } from './resources/subscription-payments/subscription-payments';\nimport { BookingResource } from './resources/bookings/bookings';\nimport { TicketResource } from './resources/tickets/tickets';\nimport { ProductResource } from './resources/products/products';\nimport { FileResource } from './resources/files/files';\nimport { CheckoutPagesResource } from './resources/checkout-pages/checkout-pages';\nimport { EventsResource } from './resources/events/events';\nimport { FormsResource } from './resources/forms/forms';\nimport { SubmissionResource } from './resources/submissions/submissions';\nimport { TaxRateResource } from './resources/tax-rates/tax-rates';\nimport { InvoiceResource } from './resources/invoices/invoices';\nimport { WebhookResource } from './resources/webhooks/webhooks';\nimport { ThemeResource } from './resources/themes/themes';\n\nexport class CheckoutPageClient {\n public readonly accounts: AccountResource;\n public readonly customers: CustomerResource;\n public readonly coupons: CouponResource;\n public readonly payments: PaymentResource;\n public readonly subscriptions: SubscriptionResource;\n public readonly subscriptionPayments: SubscriptionPaymentResource;\n public readonly bookings: BookingResource;\n public readonly tickets: TicketResource;\n public readonly products: ProductResource;\n public readonly files: FileResource;\n public readonly checkoutPages: CheckoutPagesResource;\n public readonly events: EventsResource;\n public readonly forms: FormsResource;\n public readonly submissions: SubmissionResource;\n public readonly taxRates: TaxRateResource;\n public readonly invoices: InvoiceResource;\n public readonly webhooks: WebhookResource;\n public readonly themes: ThemeResource;\n private readonly client: CheckoutPageApiClient;\n\n constructor(options: CheckoutPageApiClientOptions) {\n this.client = new CheckoutPageApiClient(options);\n this.accounts = new AccountResource(this.client);\n this.customers = new CustomerResource(this.client);\n this.coupons = new CouponResource(this.client);\n this.payments = new PaymentResource(this.client);\n this.subscriptions = new SubscriptionResource(this.client);\n this.subscriptionPayments = new SubscriptionPaymentResource(this.client);\n this.bookings = new BookingResource(this.client);\n this.tickets = new TicketResource(this.client);\n this.products = new ProductResource(this.client);\n this.files = new FileResource(this.client);\n this.checkoutPages = new CheckoutPagesResource(this.client);\n this.events = new EventsResource(this.client);\n this.forms = new FormsResource(this.client);\n this.submissions = new SubmissionResource(this.client);\n this.taxRates = new TaxRateResource(this.client);\n this.invoices = new InvoiceResource(this.client);\n this.webhooks = new WebhookResource(this.client);\n this.themes = new ThemeResource(this.client);\n }\n}\n\nexport const createCheckoutPageClient = (options: CheckoutPageApiClientOptions) => {\n return new CheckoutPageClient(options);\n};\n\n// Export types and errors for convenience\nexport type { CheckoutPageApiClientOptions } from './client';\nexport type {\n OrderBumpsResource,\n OrderBumpPageResource,\n} from './resources/order-bumps/order-bumps';\nexport type {\n ReadOptions,\n Account,\n AccountLogo,\n Customer,\n Submission,\n SubmissionResponse,\n SubmissionList,\n SubmissionListParams,\n Address,\n Shipping,\n Coupon,\n CouponList,\n CouponRule,\n CouponRuleInput,\n Payment,\n PaymentList,\n PriceSnapshot,\n Booking,\n BookingTicket,\n BookingTicketFee,\n Subscription,\n SubscriptionList,\n SubscriptionPayment,\n SubscriptionPaymentList,\n SubscriptionPaymentListParams,\n ValidateTicketResponse,\n ValidateTicketParams,\n Product,\n ProductData,\n Price,\n PriceInput,\n ProductVariant,\n UpdateProductParams,\n ProductList,\n ProductListParams,\n CreateProductParams,\n CreateProductResponse,\n DeleteProductOptions,\n DeleteProductResponse,\n OrderBump,\n OrderBumpList,\n OrderBumpResponse,\n CreateOrderBumpParams,\n UpdateOrderBumpParams,\n ReorderOrderBumpsParams,\n DeleteOrderBumpResponse,\n Event,\n EventList,\n EventListParams,\n CreateEventParams,\n CreateEventResponse,\n EventResponse,\n UpdateEventParams,\n UpdateEventResponse,\n DeleteEventResponse,\n EventTicketGroup,\n EventTicketGroupList,\n EventTicketGroupResponse,\n CreateEventTicketGroupParams,\n CreateEventTicketGroupResponse,\n UpdateEventTicketGroupParams,\n UpdateEventTicketGroupResponse,\n DeleteEventTicketGroupResponse,\n EventTicketType,\n EventTicketTypeList,\n EventTicketTypeResponse,\n CreateEventTicketTypeParams,\n CreateEventTicketTypeResponse,\n UpdateEventTicketTypeParams,\n UpdateEventTicketTypeResponse,\n DeleteEventTicketTypeResponse,\n EventField,\n EventFieldList,\n CreateEventFieldParams,\n UpdateEventFieldParams,\n EventFieldResponse,\n EventFieldDeleteResponse,\n Form,\n FormList,\n FormListParams,\n CreateFormParams,\n CreateFormResponse,\n FormResponse,\n UpdateFormParams,\n UpdateFormResponse,\n DeleteFormResponse,\n FormField,\n FormFieldList,\n CreateFormFieldParams,\n UpdateFormFieldParams,\n FormFieldDeleteResponse,\n CheckoutPage,\n CheckoutPageList,\n CheckoutPageListParams,\n CreateCheckoutPageParams,\n CreateCheckoutPageResponse,\n CheckoutPageResponse,\n UpdateCheckoutPageParams,\n UpdateCheckoutPageResponse,\n DeleteCheckoutPageResponse,\n FormLayout,\n FormLayoutItem,\n FormLayoutGroup,\n FormLayoutGroupItem,\n CreateFormLayout,\n CreateFormLayoutItem,\n CreateFormLayoutGroup,\n CreateFormLayoutGroupItem,\n CheckoutPageField,\n CheckoutPageFieldList,\n CreateCheckoutPageFieldParams,\n UpdateCheckoutPageFieldParams,\n CheckoutPageFieldDeleteResponse,\n UploadFileResponse,\n UploadFileParams,\n DeleteFileResponse,\n DownloadFileResponse,\n TaxRate,\n TaxRateList,\n TaxRateResponse,\n CreateTaxRateParams,\n UpdateTaxRateParams,\n DeleteTaxRateResponse,\n Invoice,\n InvoiceList,\n InvoiceListParams,\n Webhook,\n WebhookList,\n WebhookListParams,\n CreateWebhookParams,\n CreateWebhookResponse,\n WebhookResponse,\n UpdateWebhookParams,\n UpdateWebhookResponse,\n DeleteWebhookResponse,\n Theme,\n ThemeList,\n ThemeListParams,\n CreateThemeParams,\n CreateThemeResponse,\n ThemeResponse,\n UpdateThemeParams,\n UpdateThemeResponse,\n DeleteThemeResponse,\n} from './types';\nexport {\n CheckoutPageError,\n AuthenticationError,\n NotFoundError,\n ConflictError,\n RateLimitError,\n ValidationError,\n APIError,\n} from './errors';\n"]}
|