UNPKG

@paykit-sdk/polar

Version:
58 lines (55 loc) 2.99 kB
import { PaykitProviderOptions, AbstractPayKitProvider, PayKitProvider, ProviderMetadataRegistry, CreateCheckoutSchema, Checkout, UpdateCheckoutSchema, CreateCustomerParams, Customer, UpdateCustomerParams, CreateSubscriptionSchema, Subscription, UpdateSubscriptionSchema, CreatePaymentSchema, Payment, UpdatePaymentSchema, CapturePaymentSchema, CreateRefundSchema, Refund, WebhookHandlerConfig, WebhookEventPayload } from '@paykit-sdk/core'; import { SDKOptions, Polar } from '@polar-sh/sdk'; import { validateEvent } from '@polar-sh/sdk/webhooks'; interface PolarMetadata extends ProviderMetadataRegistry { } type PolarWebhookPayload = ReturnType<typeof validateEvent>; type PolarRawEvents = { [E in PolarWebhookPayload as `polar.${E['type']}`]: E; }; interface PolarOptions extends PaykitProviderOptions, Pick<SDKOptions, 'userAgent' | 'retryConfig' | 'timeoutMs'> { accessToken: string; isSandbox: boolean; } declare class PolarProvider extends AbstractPayKitProvider implements PayKitProvider<PolarMetadata, Polar, PolarRawEvents> { private config; readonly providerName = "polar"; private polar; private refunds; readonly isSandbox: boolean; private readonly productionURL; private readonly sandboxURL; constructor(config: PolarOptions); get _native(): Polar; /** * Checkout management */ createCheckout: (params: CreateCheckoutSchema) => Promise<Checkout>; updateCheckout: (id: string, params: UpdateCheckoutSchema) => Promise<Checkout>; retrieveCheckout: (id: string) => Promise<Checkout>; deleteCheckout: (id: string) => Promise<null>; /** * Customer management */ createCustomer: (params: CreateCustomerParams) => Promise<Customer>; updateCustomer: (id: string, params: UpdateCustomerParams) => Promise<Customer>; retrieveCustomer: (id: string) => Promise<Customer>; deleteCustomer: (id: string) => Promise<null>; /** * Subscription management */ createSubscription: (params: CreateSubscriptionSchema) => Promise<Subscription>; cancelSubscription: (id: string) => Promise<Subscription>; retrieveSubscription: (id: string) => Promise<Subscription>; updateSubscription: (id: string, params: UpdateSubscriptionSchema) => Promise<Subscription>; deleteSubscription: (id: string) => Promise<null>; createPayment: (params: CreatePaymentSchema) => Promise<Payment>; updatePayment: (id: string, params: UpdatePaymentSchema) => Promise<Payment>; capturePayment: (id: string, params: CapturePaymentSchema) => Promise<Payment>; cancelPayment: (id: string) => Promise<Payment>; deletePayment: (id: string) => Promise<null>; retrievePayment: (id: string) => Promise<Payment>; createRefund: (params: CreateRefundSchema) => Promise<Refund>; handleWebhook: (params: WebhookHandlerConfig, webhookSecret: string | null) => Promise<Array<WebhookEventPayload<PolarRawEvents>>>; } export { type PolarOptions, PolarProvider };