@paykit-sdk/polar
Version:
Polar provider for PayKit
58 lines (55 loc) • 2.99 kB
TypeScript
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 };