@paddle/paddle-js
Version:
Wrapper to load Paddle.js as a module and use TypeScript definitions when working with methods.
174 lines (153 loc) • 4.53 kB
TypeScript
// Note: The enums in this file is only for types. For it to work in the application please update the `src` directory
import { CurrencyCode } from '../shared/currency-code';
export enum CheckoutEventNames {
CHECKOUT_LOADED = 'checkout.loaded',
CHECKOUT_CLOSED = 'checkout.closed',
CHECKOUT_UPDATED = 'checkout.updated',
CHECKOUT_COMPLETED = 'checkout.completed',
CHECKOUT_ERROR = 'checkout.error',
CHECKOUT_FAILED = 'checkout.failed',
CHECKOUT_ITEMS_UPDATED = 'checkout.items.updated',
CHECKOUT_ITEMS_REMOVED = 'checkout.items.removed',
CHECKOUT_CUSTOMER_CREATED = 'checkout.customer.created',
CHECKOUT_CUSTOMER_UPDATED = 'checkout.customer.updated',
CHECKOUT_CUSTOMER_REMOVED = 'checkout.customer.removed',
CHECKOUT_PAYMENT_SELECTED = 'checkout.payment.selected',
CHECKOUT_PAYMENT_INITIATED = 'checkout.payment.initiated',
CHECKOUT_PAYMENT_FAILED = 'checkout.payment.failed',
CHECKOUT_PAYMENT_ERROR = 'checkout.payment.error',
CHECKOUT_DISCOUNT_APPLIED = 'checkout.discount.applied',
CHECKOUT_DISCOUNT_REMOVED = 'checkout.discount.removed',
CHECKOUT_UPSELL_CANCELED = 'checkout.upsell.canceled',
}
export enum CheckoutEventsTimePeriodInterval {
DAY = 'day',
WEEK = 'week',
MONTH = 'month',
YEAR = 'year',
}
export enum CheckoutEventsPaymentMethodTypes {
ALIPAY = 'alipay',
APPLE_PAY = 'apple-pay',
CARD = 'card',
GOOGLE_PAY = 'google-pay',
IDEAL = 'ideal',
PAYPAL = 'paypal',
WECHAT_PAY = 'wechat-pay',
WIRE_TRANSFER = 'wire-transfer',
NONE = 'none',
}
export enum CheckoutEventsPaymentMethodCardTypes {
AMERICAN_EXPRESS = 'american_express',
DINERS_CLUB = 'diners_club',
DISCOVER = 'discover',
JCB = 'jcb',
MADA = 'mada',
MAESTRO = 'maestro',
MASTER_CARD = 'mastercard',
UNION_PAY = 'union_pay',
VISA = 'visa',
UNKNOWN = 'unknown',
}
export enum CheckoutEventsStatus {
DRAFT = 'draft',
READY = 'ready',
COMPLETED = 'completed',
BILLED = 'billed',
PAID = 'paid',
canceled = 'canceled',
PAST_DUE = 'past_due',
}
export interface CheckoutEventsCustomerAddress {
city: string;
country_code: string;
first_line: string;
id: string;
postal_code: string;
region: string;
}
export interface CheckoutEventsCustomerBusiness {
id: string;
name: string;
tax_identifier: string;
}
export interface CheckoutEventsCustomer {
address?: CheckoutEventsCustomerAddress | null;
business?: CheckoutEventsCustomerBusiness | null;
email?: string;
id?: string;
}
export interface CheckoutEventsItemProduct {
description?: string;
id: string;
image_url?: string;
name: string;
}
export interface CheckoutEventsTimePeriod {
frequency: number;
interval: CheckoutEventsTimePeriodInterval;
}
export interface CheckoutEventsTotals {
balance?: number;
credit?: number;
discount: number;
subtotal: number;
tax: number;
total: number;
}
export interface CheckoutEventsItem {
billing_cycle?: CheckoutEventsTimePeriod;
price_id: string;
price_name?: string | null;
product: CheckoutEventsItemProduct;
quantity: number;
recurring_totals?: CheckoutEventsTotals;
totals: CheckoutEventsTotals;
trial_period?: CheckoutEventsTimePeriod;
}
export interface CheckoutEventsPaymentMethodCardDetails {
expiry_month: number;
expiry_year: number;
last4: string;
type: CheckoutEventsPaymentMethodCardTypes;
}
export interface CheckoutEventsPaymentMethodDetails {
card?: CheckoutEventsPaymentMethodCardDetails;
type: CheckoutEventsPaymentMethodTypes;
}
export interface CheckoutEventsPayment {
method_details: CheckoutEventsPaymentMethodDetails;
}
export interface CheckoutEventsSettings {
display_mode: 'overlay' | 'inline' | 'wide-overlay';
theme: 'light' | 'dark';
}
export interface CheckoutEventsDiscount {
code: string;
id: string;
}
export interface CheckoutEventUpsell {
transaction_id: string;
}
export interface CheckoutEventsData {
currency_code: CurrencyCode;
custom_data?: object | null;
customer: CheckoutEventsCustomer;
discount?: CheckoutEventsDiscount;
id: string;
items: CheckoutEventsItem[];
payment: CheckoutEventsPayment;
recurring_totals?: CheckoutEventsTotals;
settings: CheckoutEventsSettings;
status: CheckoutEventsStatus;
totals: CheckoutEventsTotals;
transaction_id: string;
upsell: CheckoutEventUpsell | null;
}
export interface CheckoutEventError {
name: CheckoutEventNames.CHECKOUT_ERROR | CheckoutEventNames.CHECKOUT_PAYMENT_ERROR;
type: string;
code: string;
detail: string;
documentation_url: string;
}