{"version":3,"sources":["../src/resources/customers.ts","../src/resources/products.ts","../src/resources/subscriptions.ts","../src/resources/usage.ts","../src/resources/organizations.ts","../src/resources/meters.ts","../src/resources/orders.ts","../src/resources/payments.ts","../src/resources/invoices.ts","../src/resources/dunning.ts","../src/resources/webhooks.ts","../src/resources/reports.ts","../src/resources/settings.ts","../src/resources/gateways.ts","../src/resources/sessions.ts","../src/resources/discounts.ts","../src/resources/payment-links.ts","../src/resources/carts.ts","../src/resources/public-payments.ts"],"names":["CustomersResource","httpClient","params","query","_","value","key","v","data","customerId","_customerId","queryString","paymentMethodId","ProductsResource","productId","VariantsResource","variantId","PricesResource","priceId","SubscriptionsResource","subscriptionId","UsageResource","usageRecordId","subscriptionItemId","OrganizationsResource","MetersResource","meterId","slug","OrdersResource","orderId","cartId","PaymentsResource","paymentId","InvoicesResource","invoiceId","action","lineItemId","DunningResource","campaignId","configId","WebhooksResource","ReportsResource","SettingsResource","parentId","settingId","GatewaysResource","gatewayId","SessionsResource","DiscountsResource","id","discountId","PaymentLinksResource","paymentLinkId","usageId","CartsResource","PublicPaymentsResource"],"mappings":"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","file":"chunk-M7FS46VT.cjs","sourcesContent":["import { HttpClient } from '../utils/http-client';\nimport {\n  Customer,\n  CreateCustomerRequest,\n  UpdateCustomerRequest,\n  CustomerListParams,\n  CustomerMrrResponse,\n  ListResponse,\n  CreatePaymentMethodRequest,\n  UpdatePaymentMethodRequest,\n  Invoice,\n  InvoiceListParams,\n  Order,\n} from '../types';\nimport { PaymentMethod } from '../types/payments';\nimport { DiscountRedemption, ListDiscountRedemptionsParams } from '../types/discounts';\n\nexport class CustomersResource {\n  private readonly resourcePath = '/api/customers';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: CustomerListParams): Promise<ListResponse<Customer>> {\n    return this.httpClient.get<ListResponse<Customer>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateCustomerRequest): Promise<Customer> {\n    return this.httpClient.post<Customer>(this.resourcePath, data);\n  }\n\n  async get(customerId: string): Promise<Customer> {\n    return this.httpClient.get<Customer>(`${this.resourcePath}/${customerId}`);\n  }\n\n  async update(customerId: string, data: UpdateCustomerRequest): Promise<Customer> {\n    return this.httpClient.patch<Customer>(`${this.resourcePath}/${customerId}`, data);\n  }\n\n  async delete(customerId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${customerId}`);\n  }\n\n  async suspend(customerId: string): Promise<Customer> {\n    return this.update(customerId, { status: 'inactive' });\n  }\n\n  async activate(customerId: string): Promise<Customer> {\n    return this.update(customerId, { status: 'active' });\n  }\n\n  async getOrders(_customerId: string): Promise<Order[]> {\n    console.warn('getOrders endpoint not implemented in API');\n    return [];\n  }\n\n  async listInvoices(\n    customerId: string,\n    params?: InvoiceListParams,\n  ): Promise<ListResponse<Invoice>> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<ListResponse<Invoice>>(\n      `${this.resourcePath}/${customerId}/invoices${queryString}`,\n    );\n  }\n\n  async createPaymentMethod(\n    customerId: string,\n    data: CreatePaymentMethodRequest,\n  ): Promise<PaymentMethod> {\n    return this.httpClient.post<PaymentMethod>(\n      `${this.resourcePath}/${customerId}/payment-methods`,\n      data,\n    );\n  }\n\n  async listPaymentMethods(customerId: string): Promise<PaymentMethod[]> {\n    return this.httpClient.get<PaymentMethod[]>(\n      `${this.resourcePath}/${customerId}/payment-methods`,\n    );\n  }\n\n  async getPaymentMethod(customerId: string, paymentMethodId: string): Promise<PaymentMethod> {\n    return this.httpClient.get<PaymentMethod>(\n      `${this.resourcePath}/${customerId}/payment-methods/${paymentMethodId}`,\n    );\n  }\n\n  async updatePaymentMethod(\n    customerId: string,\n    paymentMethodId: string,\n    data: UpdatePaymentMethodRequest,\n  ): Promise<PaymentMethod> {\n    return this.httpClient.put<PaymentMethod>(\n      `${this.resourcePath}/${customerId}/payment-methods/${paymentMethodId}`,\n      data,\n    );\n  }\n\n  async deletePaymentMethod(customerId: string, paymentMethodId: string): Promise<void> {\n    return this.httpClient.delete(\n      `${this.resourcePath}/${customerId}/payment-methods/${paymentMethodId}`,\n    );\n  }\n\n  async getDunningHistory(customerId: string): Promise<any[]> {\n    return this.httpClient.get<any[]>(`${this.resourcePath}/${customerId}/dunning-history`);\n  }\n\n  /**\n   * List customer discount redemptions\n   */\n  async listDiscountRedemptions(\n    customerId: string,\n    params?: ListDiscountRedemptionsParams,\n  ): Promise<ListResponse<DiscountRedemption>> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<ListResponse<DiscountRedemption>>(\n      `${this.resourcePath}/${customerId}/discount-redemptions${queryString}`,\n    );\n  }\n\n  /**\n   * Get customer MRR calculation\n   * Calculate Monthly Recurring Revenue (MRR) for a specific customer,\n   * including breakdown by subscription and projected annual revenue\n   */\n  async getMrr(customerId: string): Promise<CustomerMrrResponse> {\n    return this.httpClient.get<CustomerMrrResponse>(`${this.resourcePath}/${customerId}/mrr`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Product,\n  CreateProductRequest,\n  UpdateProductRequest,\n  ListResponse,\n  PaginationParams,\n  Variant,\n  CreateVariantRequest,\n  UpdateVariantRequest,\n  Price,\n  CreatePriceRequest,\n  UpdatePriceRequest,\n} from '../types';\n\nexport class ProductsResource {\n  private readonly resourcePath = '/api/products';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: PaginationParams): Promise<ListResponse<Product>> {\n    return this.httpClient.get<ListResponse<Product>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateProductRequest): Promise<Product> {\n    return this.httpClient.post<Product>(this.resourcePath, data);\n  }\n\n  async get(productId: string): Promise<Product> {\n    return this.httpClient.get<Product>(`${this.resourcePath}/${productId}`);\n  }\n\n  async update(productId: string, data: UpdateProductRequest): Promise<Product> {\n    return this.httpClient.patch<Product>(`${this.resourcePath}/${productId}`, data);\n  }\n\n  async delete(productId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${productId}`);\n  }\n\n  async listVariants(productId: string): Promise<Variant[]> {\n    return this.httpClient.get<Variant[]>(`${this.resourcePath}/${productId}/variants`);\n  }\n\n  async createVariant(productId: string, data: CreateVariantRequest): Promise<Variant> {\n    return this.httpClient.post<Variant>(`${this.resourcePath}/${productId}/variants`, data);\n  }\n}\n\nexport class VariantsResource {\n  private readonly resourcePath = '/api/variants';\n\n  constructor(private httpClient: HttpClient) {}\n\n  async get(variantId: string): Promise<Variant> {\n    return this.httpClient.get<Variant>(`${this.resourcePath}/${variantId}`);\n  }\n\n  async update(variantId: string, data: UpdateVariantRequest): Promise<Variant> {\n    return this.httpClient.put<Variant>(`${this.resourcePath}/${variantId}`, data);\n  }\n\n  async delete(variantId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${variantId}`);\n  }\n\n  async listPrices(variantId: string): Promise<Price[]> {\n    return this.httpClient.get<Price[]>(`${this.resourcePath}/${variantId}/prices`);\n  }\n}\n\nexport class PricesResource {\n  private readonly resourcePath = '/api/prices';\n\n  constructor(private httpClient: HttpClient) {}\n\n  async create(data: CreatePriceRequest): Promise<Price> {\n    return this.httpClient.post<Price>(this.resourcePath, data);\n  }\n\n  async get(priceId: string): Promise<Price> {\n    return this.httpClient.get<Price>(`${this.resourcePath}/${priceId}`);\n  }\n\n  async update(priceId: string, data: UpdatePriceRequest): Promise<Price> {\n    return this.httpClient.patch<Price>(`${this.resourcePath}/${priceId}`, data);\n  }\n\n  async delete(priceId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${priceId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Subscription,\n  CreateSubscriptionRequest,\n  UpdateSubscriptionRequest,\n  SubscriptionListParams,\n  ListResponse,\n  PauseSubscriptionRequest,\n  ResumeSubscriptionRequest,\n  CancelSubscriptionRequest,\n  ActivateSubscriptionRequest,\n  ChangePlanRequest,\n  UpdateBillingAnchorRequest,\n  Payment,\n  PaginationParams,\n  UsageEventResponse,\n  UsageEstimateResponse,\n} from '../types';\n\nexport class SubscriptionsResource {\n  private readonly resourcePath = '/api/subscriptions';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: SubscriptionListParams): Promise<ListResponse<Subscription>> {\n    return this.httpClient.get<ListResponse<Subscription>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateSubscriptionRequest): Promise<Subscription> {\n    return this.httpClient.post<Subscription>(this.resourcePath, data);\n  }\n\n  async get(subscriptionId: string): Promise<Subscription> {\n    return this.httpClient.get<Subscription>(`${this.resourcePath}/${subscriptionId}`);\n  }\n\n  async update(subscriptionId: string, data: UpdateSubscriptionRequest): Promise<Subscription> {\n    return this.httpClient.patch<Subscription>(`${this.resourcePath}/${subscriptionId}`, data);\n  }\n\n  async pause(subscriptionId: string, data: PauseSubscriptionRequest): Promise<Subscription> {\n    return this.httpClient.put<Subscription>(`${this.resourcePath}/${subscriptionId}/pause`, data);\n  }\n\n  async resume(subscriptionId: string, data: ResumeSubscriptionRequest): Promise<Subscription> {\n    return this.httpClient.put<Subscription>(`${this.resourcePath}/${subscriptionId}/resume`, data);\n  }\n\n  async activate(\n    subscriptionId: string,\n    data?: ActivateSubscriptionRequest,\n  ): Promise<Subscription> {\n    return this.httpClient.put<Subscription>(\n      `${this.resourcePath}/${subscriptionId}/activate`,\n      data || {},\n    );\n  }\n\n  async cancel(subscriptionId: string, data: CancelSubscriptionRequest): Promise<Subscription> {\n    return this.httpClient.put<Subscription>(`${this.resourcePath}/${subscriptionId}/cancel`, data);\n  }\n\n  async changePlan(\n    subscriptionId: string,\n    data: ChangePlanRequest,\n  ): Promise<{ subscription: Subscription; plan_change: any }> {\n    return this.httpClient.put<{ subscription: Subscription; plan_change: any }>(\n      `${this.resourcePath}/${subscriptionId}/change-plan`,\n      data,\n    );\n  }\n\n  async updateBillingAnchor(\n    subscriptionId: string,\n    data: UpdateBillingAnchorRequest,\n  ): Promise<{ subscription: Subscription; proration_details: any }> {\n    return this.httpClient.put<{ subscription: Subscription; proration_details: any }>(\n      `${this.resourcePath}/${subscriptionId}/billing-anchor`,\n      data,\n    );\n  }\n\n  async listPayments(\n    subscriptionId: string,\n    params?: PaginationParams,\n  ): Promise<ListResponse<Payment>> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<ListResponse<Payment>>(\n      `${this.resourcePath}/${subscriptionId}/payments${queryString}`,\n    );\n  }\n\n  async getUsage(\n    subscriptionId: string,\n    params?: { start_date?: string; end_date?: string },\n  ): Promise<{ items: UsageEventResponse[]; count: number }> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<{ items: UsageEventResponse[]; count: number }>(\n      `${this.resourcePath}/${subscriptionId}/usage${queryString}`,\n    );\n  }\n\n  async getUsageEstimate(subscriptionId: string): Promise<UsageEstimateResponse> {\n    return this.httpClient.get<UsageEstimateResponse>(\n      `${this.resourcePath}/${subscriptionId}/estimate`,\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  UsageRecord,\n  RecordUsageRequest,\n  BatchRecordUsageRequest,\n  CloudEventUsageRequest,\n  CloudEventUsageResponse,\n  ListResponse,\n  PaginationParams,\n  UsageSummary,\n} from '../types';\n\nexport class UsageResource {\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async recordCloudEvent(data: CloudEventUsageRequest): Promise<CloudEventUsageResponse> {\n    return this.httpClient.post<CloudEventUsageResponse>('/api/usage-events', data);\n  }\n\n  async record(data: RecordUsageRequest): Promise<UsageRecord> {\n    return this.httpClient.post<UsageRecord>('/api/usage-records', data);\n  }\n\n  async batchRecord(\n    data: BatchRecordUsageRequest,\n  ): Promise<{ records: UsageRecord[]; total_count: number }> {\n    return this.httpClient.post<{ records: UsageRecord[]; total_count: number }>(\n      '/api/usage-records/batch',\n      data,\n    );\n  }\n\n  async list(\n    params: { subscription_item_id: string } & PaginationParams,\n  ): Promise<ListResponse<UsageRecord>> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<ListResponse<UsageRecord>>(`/api/usage-records${queryString}`);\n  }\n\n  async getUsageRecord(usageRecordId: string): Promise<UsageRecord> {\n    return this.httpClient.get<UsageRecord>(`/api/usage-records/${usageRecordId}`);\n  }\n\n  async deleteUsageRecord(usageRecordId: string): Promise<void> {\n    return this.httpClient.delete(`/api/usage-records/${usageRecordId}`);\n  }\n\n  async getSummary(\n    subscriptionItemId: string,\n    params: { start_date: string; end_date: string },\n  ): Promise<UsageSummary> {\n    const queryString = this.buildQueryString(params);\n    return this.httpClient.get<UsageSummary>(\n      `/api/subscription-items/${subscriptionItemId}/usage-summary${queryString}`,\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport { Organization, CreateOrganizationRequest, ApiKey } from '../types';\n\nexport class OrganizationsResource {\n  constructor(private httpClient: HttpClient) {}\n\n  async create(data: CreateOrganizationRequest): Promise<Organization> {\n    return this.httpClient.post<Organization>('/api/organizations', data);\n  }\n\n  async getApiKeys(): Promise<ApiKey[]> {\n    return this.httpClient.get<ApiKey[]>('/api/organizations/api-keys');\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Meter,\n  CreateMeterRequest,\n  UpdateMeterRequest,\n  ListResponse,\n  PaginationParams,\n} from '../types';\n\nexport class MetersResource {\n  private readonly resourcePath = '/api/meters';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: PaginationParams): Promise<ListResponse<Meter>> {\n    return this.httpClient.get<ListResponse<Meter>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateMeterRequest): Promise<Meter> {\n    return this.httpClient.post<Meter>(this.resourcePath, data);\n  }\n\n  async get(meterId: string): Promise<Meter> {\n    return this.httpClient.get<Meter>(`${this.resourcePath}/${meterId}`);\n  }\n\n  async getBySlug(slug: string): Promise<Meter> {\n    return this.httpClient.get<Meter>(`${this.resourcePath}/slug/${slug}`);\n  }\n\n  async update(meterId: string, data: UpdateMeterRequest): Promise<Meter> {\n    return this.httpClient.put<Meter>(`${this.resourcePath}/${meterId}`, data);\n  }\n\n  async delete(meterId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${meterId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Order,\n  CreateOrderRequest,\n  CompleteOrderRequest,\n  AddCartItemRequest,\n  RemoveCartItemRequest,\n  ListResponse,\n  PaginationParams,\n} from '../types';\n\nexport class OrdersResource {\n  private readonly resourcePath = '/api/orders';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: PaginationParams): Promise<ListResponse<Order>> {\n    return this.httpClient.get<ListResponse<Order>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateOrderRequest): Promise<Order> {\n    return this.httpClient.post<Order>(this.resourcePath, data);\n  }\n\n  async get(orderId: string): Promise<Order> {\n    return this.httpClient.get<Order>(`${this.resourcePath}/${orderId}`);\n  }\n\n  async complete(orderId: string, data: CompleteOrderRequest): Promise<Order> {\n    return this.httpClient.post<Order>(`${this.resourcePath}/${orderId}/complete`, data);\n  }\n\n  /**\n   * Add item to cart\n   */\n  async addCartItem(cartId: string, data: AddCartItemRequest): Promise<{ status: string }> {\n    return this.httpClient.post<{ status: string }>(`/api/carts/${cartId}/add`, data);\n  }\n\n  /**\n   * Remove item from cart\n   */\n  async removeCartItem(cartId: string, data: RemoveCartItemRequest): Promise<{ status: string }> {\n    return this.httpClient.post<{ status: string }>(`/api/carts/${cartId}/remove`, data);\n  }\n\n  /**\n   * List subscriptions created from an order\n   */\n  async listSubscriptions(orderId: string): Promise<any[]> {\n    return this.httpClient.get<any[]>(`${this.resourcePath}/${orderId}/subscriptions`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Payment,\n  PaymentMethod,\n  RefundPaymentRequest,\n  Refund,\n  ListResponse,\n  PaymentListParams,\n} from '../types';\n\nexport class PaymentsResource {\n  private readonly resourcePath = '/api/payments';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: PaymentListParams): Promise<ListResponse<Payment>> {\n    return this.httpClient.get<ListResponse<Payment>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async get(paymentId: string): Promise<Payment> {\n    return this.httpClient.get<Payment>(`${this.resourcePath}/${paymentId}`);\n  }\n\n  async refund(paymentId: string, data: RefundPaymentRequest): Promise<Refund> {\n    return this.httpClient.post<Refund>(`${this.resourcePath}/${paymentId}/refund`, data);\n  }\n\n  async getPaymentMethod(paymentMethodId: string): Promise<PaymentMethod> {\n    return this.httpClient.get<PaymentMethod>(`/api/payment-methods/${paymentMethodId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Invoice,\n  CreateInvoiceRequest,\n  UpdateInvoiceRequest,\n  InvoiceLineItem,\n  CreateInvoiceLineItemRequest,\n  UpdateInvoiceLineItemRequest,\n  InvoiceHistory,\n  ListResponse,\n  InvoiceListParams,\n  CreateInvoicePaymentLinkRequest,\n  InitiateInvoicePaymentRequest,\n  InitiatePaymentResponse,\n} from '../types';\nimport { PaymentLinkResponse } from '../types/payment-links';\n\nexport class InvoicesResource {\n  private readonly resourcePath = '/api/invoices';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async list(params?: InvoiceListParams): Promise<ListResponse<Invoice>> {\n    return this.httpClient.get<ListResponse<Invoice>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  async create(data: CreateInvoiceRequest): Promise<Invoice> {\n    return this.httpClient.post<Invoice>(this.resourcePath, data);\n  }\n\n  async get(invoiceId: string): Promise<Invoice> {\n    return this.httpClient.get<Invoice>(`${this.resourcePath}/${invoiceId}`);\n  }\n\n  async update(invoiceId: string, data: UpdateInvoiceRequest): Promise<Invoice> {\n    return this.httpClient.put<Invoice>(`${this.resourcePath}/${invoiceId}`, data);\n  }\n\n  async performAction(\n    invoiceId: string,\n    action: 'send' | 'finalize' | 'void' | 'mark_paid',\n  ): Promise<Invoice> {\n    return this.httpClient.post<Invoice>(`${this.resourcePath}/${invoiceId}/actions`, { action });\n  }\n\n  async send(invoiceId: string): Promise<Invoice> {\n    return this.performAction(invoiceId, 'send');\n  }\n\n  async finalize(invoiceId: string): Promise<Invoice> {\n    return this.performAction(invoiceId, 'finalize');\n  }\n\n  async void(invoiceId: string): Promise<Invoice> {\n    return this.performAction(invoiceId, 'void');\n  }\n\n  async markPaid(invoiceId: string): Promise<Invoice> {\n    return this.performAction(invoiceId, 'mark_paid');\n  }\n\n  async listLineItems(invoiceId: string): Promise<InvoiceLineItem[]> {\n    return this.httpClient.get<InvoiceLineItem[]>(`${this.resourcePath}/${invoiceId}/line-items`);\n  }\n\n  async addLineItem(\n    invoiceId: string,\n    data: CreateInvoiceLineItemRequest,\n  ): Promise<InvoiceLineItem> {\n    return this.httpClient.post<InvoiceLineItem>(\n      `${this.resourcePath}/${invoiceId}/line-items`,\n      data,\n    );\n  }\n\n  async updateLineItem(\n    invoiceId: string,\n    lineItemId: string,\n    data: UpdateInvoiceLineItemRequest,\n  ): Promise<InvoiceLineItem> {\n    return this.httpClient.put<InvoiceLineItem>(\n      `${this.resourcePath}/${invoiceId}/line-items/${lineItemId}`,\n      data,\n    );\n  }\n\n  async deleteLineItem(invoiceId: string, lineItemId: string): Promise<{ status: string }> {\n    return this.httpClient.delete<{ status: string }>(\n      `${this.resourcePath}/${invoiceId}/line-items/${lineItemId}`,\n    );\n  }\n\n  async listHistory(invoiceId: string): Promise<InvoiceHistory[]> {\n    return this.httpClient.get<InvoiceHistory[]>(`${this.resourcePath}/${invoiceId}/history`);\n  }\n\n  async generatePdf(invoiceId: string): Promise<Blob> {\n    const response = await this.httpClient.getAxiosInstance().post(\n      `${this.resourcePath}/${invoiceId}/pdf`,\n      {},\n      {\n        responseType: 'blob',\n      },\n    );\n    return response.data;\n  }\n\n  /**\n   * Create payment link for invoice\n   */\n  async createPaymentLink(\n    invoiceId: string,\n    data?: CreateInvoicePaymentLinkRequest,\n  ): Promise<PaymentLinkResponse> {\n    return this.httpClient.post<PaymentLinkResponse>(\n      `${this.resourcePath}/${invoiceId}/payment-link`,\n      data || {},\n    );\n  }\n\n  /**\n   * Initiate payment for invoice\n   */\n  async initiatePayment(\n    invoiceId: string,\n    data: InitiateInvoicePaymentRequest,\n  ): Promise<InitiatePaymentResponse> {\n    return this.httpClient.post<InitiatePaymentResponse>(\n      `${this.resourcePath}/${invoiceId}/initiate-payment`,\n      data,\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  DunningCampaign,\n  DunningConfiguration,\n  DunningAttempt,\n  DunningCommunication,\n  CreateDunningConfigurationRequest,\n  UpdateDunningConfigurationRequest,\n  UpdateDunningCampaignRequest,\n  PaymentToken,\n  PaymentTokenVerification,\n  VerifyPaymentTokenRequest,\n  ActivatePaymentTokenRequest,\n  ListResponse,\n  DunningCampaignListParams,\n} from '../types';\n\nexport class DunningResource {\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  // Campaigns\n  async listCampaigns(params?: DunningCampaignListParams): Promise<ListResponse<DunningCampaign>> {\n    return this.httpClient.get<ListResponse<DunningCampaign>>(\n      `/api/dunning/campaigns${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getCampaign(campaignId: string): Promise<DunningCampaign> {\n    return this.httpClient.get<DunningCampaign>(`/api/dunning/campaigns/${campaignId}`);\n  }\n\n  async updateCampaign(\n    campaignId: string,\n    data: UpdateDunningCampaignRequest,\n  ): Promise<DunningCampaign> {\n    return this.httpClient.patch<DunningCampaign>(`/api/dunning/campaigns/${campaignId}`, data);\n  }\n\n  async listCampaignAttempts(campaignId: string): Promise<DunningAttempt[]> {\n    return this.httpClient.get<DunningAttempt[]>(`/api/dunning/campaigns/${campaignId}/attempts`);\n  }\n\n  async triggerManualAttempt(campaignId: string): Promise<DunningAttempt> {\n    return this.httpClient.post<DunningAttempt>(\n      `/api/dunning/campaigns/${campaignId}/attempts`,\n      {},\n    );\n  }\n\n  async listCampaignCommunications(campaignId: string): Promise<DunningCommunication[]> {\n    return this.httpClient.get<DunningCommunication[]>(\n      `/api/dunning/campaigns/${campaignId}/communications`,\n    );\n  }\n\n  // Configurations\n  async listConfigurations(): Promise<DunningConfiguration[]> {\n    return this.httpClient.get<DunningConfiguration[]>('/api/dunning/configurations');\n  }\n\n  async createConfiguration(\n    data: CreateDunningConfigurationRequest,\n  ): Promise<DunningConfiguration> {\n    return this.httpClient.post<DunningConfiguration>('/api/dunning/configurations', data);\n  }\n\n  async getConfiguration(configId: string): Promise<DunningConfiguration> {\n    return this.httpClient.get<DunningConfiguration>(`/api/dunning/configurations/${configId}`);\n  }\n\n  async updateConfiguration(\n    configId: string,\n    data: UpdateDunningConfigurationRequest,\n  ): Promise<DunningConfiguration> {\n    return this.httpClient.patch<DunningConfiguration>(\n      `/api/dunning/configurations/${configId}`,\n      data,\n    );\n  }\n\n  // Payment tokens\n  async verifyPaymentToken(data: VerifyPaymentTokenRequest): Promise<PaymentTokenVerification> {\n    return this.httpClient.post<PaymentTokenVerification>('/api/payment-tokens/verify', data);\n  }\n\n  async activatePaymentToken(data: ActivatePaymentTokenRequest): Promise<{ status: string }> {\n    return this.httpClient.post<{ status: string }>('/api/payment-tokens/activate', data);\n  }\n\n  async createSubscriptionPaymentToken(subscriptionId: string): Promise<PaymentToken> {\n    return this.httpClient.post<PaymentToken>(\n      `/api/admin/subscriptions/${subscriptionId}/payment-tokens`,\n      {},\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport { WebhookSubscription, CreateWebhookRequest } from '../types';\n\nexport class WebhooksResource {\n  private readonly resourcePath = '/api/webhooks';\n\n  constructor(private httpClient: HttpClient) {}\n\n  async list(): Promise<WebhookSubscription[]> {\n    return this.httpClient.get<WebhookSubscription[]>(this.resourcePath);\n  }\n\n  async create(data: CreateWebhookRequest): Promise<WebhookSubscription> {\n    return this.httpClient.post<WebhookSubscription>(this.resourcePath, data);\n  }\n\n  async processWebhook(data: any): Promise<{ status: string }> {\n    return this.httpClient.post<{ status: string }>('/api/notify', data);\n  }\n\n  async processCdcWebhook(data: any): Promise<{ status: string }> {\n    return this.httpClient.post<{ status: string }>('/api/notify/cdc', data);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport { RevenueReport, SubscriberReport, RefundReport, ChurnReport } from '../types';\n\nexport class ReportsResource {\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  async getMrr(params?: { start_date?: string; end_date?: string }): Promise<RevenueReport> {\n    return this.httpClient.get<RevenueReport>(\n      `/api/reports/revenue/mrr${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getArr(params?: { year?: number }): Promise<RevenueReport> {\n    return this.httpClient.get<RevenueReport>(\n      `/api/reports/revenue/arr${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getActiveSubscribers(params?: { date?: string }): Promise<SubscriberReport> {\n    return this.httpClient.get<SubscriberReport>(\n      `/api/reports/active-subscribers${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getRefundTotals(params?: {\n    start_date?: string;\n    end_date?: string;\n  }): Promise<RefundReport> {\n    return this.httpClient.get<RefundReport>(\n      `/api/reports/refunds${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getChurnTotals(params?: { start_date?: string; end_date?: string }): Promise<ChurnReport> {\n    return this.httpClient.get<ChurnReport>(\n      `/api/reports/churn/totals${this.buildQueryString(params)}`,\n    );\n  }\n\n  async getChurnRates(params?: {\n    period?: 'monthly' | 'quarterly' | 'yearly';\n  }): Promise<ChurnReport> {\n    return this.httpClient.get<ChurnReport>(\n      `/api/reports/churn/rates${this.buildQueryString(params)}`,\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport { Setting, CreateSettingRequest, UpdateSettingRequest } from '../types';\n\nexport class SettingsResource {\n  constructor(private httpClient: HttpClient) {}\n\n  async list(parentId: string): Promise<Setting[]> {\n    return this.httpClient.get<Setting[]>(`/api/settings/${parentId}`);\n  }\n\n  async create(parentId: string, data: CreateSettingRequest): Promise<Setting> {\n    return this.httpClient.post<Setting>(`/api/settings/${parentId}`, data);\n  }\n\n  async get(parentId: string, settingId: string): Promise<Setting> {\n    return this.httpClient.get<Setting>(`/api/settings/${parentId}/${settingId}`);\n  }\n\n  async update(parentId: string, settingId: string, data: UpdateSettingRequest): Promise<Setting> {\n    return this.httpClient.put<Setting>(`/api/settings/${parentId}/${settingId}`, data);\n  }\n\n  async delete(parentId: string, settingId: string): Promise<void> {\n    return this.httpClient.delete(`/api/settings/${parentId}/${settingId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  PspConfiguration,\n  CreatePspConfigurationRequest,\n  ListResponse,\n  PaginationParams,\n} from '../types';\n\nexport class GatewaysResource {\n  private readonly resourcePath = '/api/gateways';\n\n  constructor(private httpClient: HttpClient) {}\n\n  private buildQueryString(params?: Record<string, any>): string {\n    if (!params) return '';\n\n    const query = Object.entries(params)\n      .filter(([_, value]) => value !== undefined && value !== null)\n      .map(([key, value]) => {\n        if (Array.isArray(value)) {\n          return value.map((v) => `${key}[]=${encodeURIComponent(v)}`).join('&');\n        }\n        return `${key}=${encodeURIComponent(value)}`;\n      })\n      .join('&');\n\n    return query ? `?${query}` : '';\n  }\n\n  /**\n   * List payment gateways\n   */\n  async list(params?: PaginationParams): Promise<ListResponse<PspConfiguration>> {\n    return this.httpClient.get<ListResponse<PspConfiguration>>(\n      `${this.resourcePath}${this.buildQueryString(params)}`,\n    );\n  }\n\n  /**\n   * Create a payment gateway\n   */\n  async create(data: CreatePspConfigurationRequest): Promise<PspConfiguration> {\n    return this.httpClient.post<PspConfiguration>(this.resourcePath, data);\n  }\n\n  /**\n   * Get a gateway by ID\n   */\n  async get(gatewayId: string): Promise<PspConfiguration> {\n    return this.httpClient.get<PspConfiguration>(`${this.resourcePath}/${gatewayId}`);\n  }\n\n  /**\n   * Update a gateway\n   */\n  async update(\n    gatewayId: string,\n    data: Partial<CreatePspConfigurationRequest>,\n  ): Promise<PspConfiguration> {\n    return this.httpClient.put<PspConfiguration>(`${this.resourcePath}/${gatewayId}`, data);\n  }\n\n  /**\n   * Delete a gateway\n   */\n  async delete(gatewayId: string): Promise<void> {\n    return this.httpClient.delete(`${this.resourcePath}/${gatewayId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport { Session, CreateSessionRequest } from '../types';\n\nexport class SessionsResource {\n  constructor(private httpClient: HttpClient) {}\n\n  async create(data: CreateSessionRequest): Promise<Session> {\n    return this.httpClient.post<Session>('/api/sessions', data);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  Discount,\n  DiscountRedemption,\n  CreateDiscountRequest,\n  UpdateDiscountRequest,\n  ValidateDiscountRequest,\n  DiscountValidationResponse,\n  ApplyDiscountRequest,\n  DiscountApplicationResponse,\n  ListDiscountsParams,\n  ListDiscountRedemptionsParams,\n} from '../types/discounts';\nimport { ListResponse } from '../types/common';\n\nexport class DiscountsResource {\n  constructor(private httpClient: HttpClient) {}\n\n  /**\n   * List all discounts\n   */\n  async list(params?: ListDiscountsParams): Promise<ListResponse<Discount>> {\n    return this.httpClient.get<ListResponse<Discount>>('/api/discounts', {\n      params,\n    });\n  }\n\n  /**\n   * Create a new discount\n   */\n  async create(data: CreateDiscountRequest): Promise<Discount> {\n    return this.httpClient.post<Discount>('/api/discounts', data);\n  }\n\n  /**\n   * Get a discount by ID\n   */\n  async get(id: string): Promise<Discount> {\n    return this.httpClient.get<Discount>(`/api/discounts/${id}`);\n  }\n\n  /**\n   * Update a discount\n   */\n  async update(id: string, data: UpdateDiscountRequest): Promise<Discount> {\n    return this.httpClient.put<Discount>(`/api/discounts/${id}`, data);\n  }\n\n  /**\n   * Delete a discount\n   */\n  async delete(id: string): Promise<void> {\n    return this.httpClient.delete(`/api/discounts/${id}`);\n  }\n\n  /**\n   * Validate a discount code\n   */\n  async validate(data: ValidateDiscountRequest): Promise<DiscountValidationResponse> {\n    return this.httpClient.post<DiscountValidationResponse>('/api/discounts/validate', data);\n  }\n\n  /**\n   * Apply a discount\n   */\n  async apply(data: ApplyDiscountRequest): Promise<DiscountApplicationResponse> {\n    return this.httpClient.post<DiscountApplicationResponse>('/api/discounts/apply', data);\n  }\n\n  /**\n   * List discount redemptions for a specific discount\n   */\n  async listRedemptions(\n    discountId: string,\n    params?: ListDiscountRedemptionsParams,\n  ): Promise<ListResponse<DiscountRedemption>> {\n    return this.httpClient.get<ListResponse<DiscountRedemption>>(\n      `/api/discounts/${discountId}/redemptions`,\n      { params },\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  CreatePaymentLinkRequest,\n  UpdatePaymentLinkRequest,\n  RecordPaymentLinkUsageRequest,\n  ListPaymentLinksParams,\n  ListPaymentLinkUsagesParams,\n  PaymentLinkResponse,\n  PaymentLinkUsageResponse,\n} from '../types/payment-links';\nimport { ListResponse } from '../types/common';\n\nexport class PaymentLinksResource {\n  constructor(private httpClient: HttpClient) {}\n\n  /**\n   * List all payment links\n   */\n  async list(params?: ListPaymentLinksParams): Promise<ListResponse<PaymentLinkResponse>> {\n    return this.httpClient.get<ListResponse<PaymentLinkResponse>>('/api/payment-links', {\n      params,\n    });\n  }\n\n  /**\n   * Create a new payment link\n   */\n  async create(data: CreatePaymentLinkRequest): Promise<PaymentLinkResponse> {\n    return this.httpClient.post<PaymentLinkResponse>('/api/payment-links', data);\n  }\n\n  /**\n   * Get a payment link by ID\n   */\n  async get(id: string): Promise<PaymentLinkResponse> {\n    return this.httpClient.get<PaymentLinkResponse>(`/api/payment-links/${id}`);\n  }\n\n  /**\n   * Update a payment link\n   */\n  async update(id: string, data: UpdatePaymentLinkRequest): Promise<PaymentLinkResponse> {\n    return this.httpClient.put<PaymentLinkResponse>(`/api/payment-links/${id}`, data);\n  }\n\n  /**\n   * Delete a payment link\n   */\n  async delete(id: string): Promise<void> {\n    return this.httpClient.delete(`/api/payment-links/${id}`);\n  }\n\n  /**\n   * Get a payment link by slug\n   */\n  async getBySlug(slug: string): Promise<PaymentLinkResponse> {\n    return this.httpClient.get<PaymentLinkResponse>(`/api/payment-links/slug/${slug}`);\n  }\n\n  /**\n   * List usage records for a specific payment link\n   */\n  async listUsages(\n    paymentLinkId: string,\n    params?: ListPaymentLinkUsagesParams,\n  ): Promise<ListResponse<PaymentLinkUsageResponse>> {\n    return this.httpClient.get<ListResponse<PaymentLinkUsageResponse>>(\n      `/api/payment-links/${paymentLinkId}/usage`,\n      { params },\n    );\n  }\n\n  /**\n   * Record payment link usage\n   */\n  async recordUsage(data: RecordPaymentLinkUsageRequest): Promise<PaymentLinkUsageResponse> {\n    return this.httpClient.post<PaymentLinkUsageResponse>('/api/payment-links/usage', data);\n  }\n\n  /**\n   * Get a specific payment link usage record\n   */\n  async getUsage(usageId: string): Promise<PaymentLinkUsageResponse> {\n    return this.httpClient.get<PaymentLinkUsageResponse>(`/api/payment-links/usage/${usageId}`);\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  AddCartItemRequest,\n  RemoveCartItemRequest,\n  ValidateCouponRequest,\n  CartResponse,\n} from '../types';\n\nexport class CartsResource {\n  private readonly resourcePath = '/api/carts';\n\n  constructor(private httpClient: HttpClient) {}\n\n  async addItem(cartId: string, data: AddCartItemRequest): Promise<CartResponse> {\n    return this.httpClient.post<CartResponse>(`${this.resourcePath}/${cartId}/add`, data);\n  }\n\n  async removeItem(cartId: string, data: RemoveCartItemRequest): Promise<CartResponse> {\n    return this.httpClient.post<CartResponse>(`${this.resourcePath}/${cartId}/remove`, data);\n  }\n\n  async validateCoupon(cartId: string, data: ValidateCouponRequest): Promise<CartResponse> {\n    return this.httpClient.post<CartResponse>(\n      `${this.resourcePath}/${cartId}/validate-coupon`,\n      data,\n    );\n  }\n}\n","import { HttpClient } from '../utils/http-client';\nimport {\n  PublicPaymentDetailsResponse,\n  PublicCreateOrderRequest,\n  CreateOrderResponse,\n  PublicOrderStatusResponse,\n} from '../types';\n\nexport class PublicPaymentsResource {\n  private readonly resourcePath = '/api/pay';\n\n  constructor(private httpClient: HttpClient) {}\n\n  async getPublicPaymentDetails(slug: string): Promise<PublicPaymentDetailsResponse> {\n    return this.httpClient.get<PublicPaymentDetailsResponse>(`${this.resourcePath}/${slug}`);\n  }\n\n  async createPublicPaymentOrder(\n    slug: string,\n    data: PublicCreateOrderRequest,\n  ): Promise<CreateOrderResponse> {\n    return this.httpClient.post<CreateOrderResponse>(\n      `${this.resourcePath}/${slug}/create-order`,\n      data,\n    );\n  }\n\n  async getPublicOrderStatus(slug: string, orderId: string): Promise<PublicOrderStatusResponse> {\n    return this.httpClient.get<PublicOrderStatusResponse>(\n      `${this.resourcePath}/${slug}/order/${orderId}/status`,\n    );\n  }\n}\n"]}