bitsnap-checkout
Version:
This is Bitsnap Checkout React library for easy integration with any website which is using React framework
615 lines (601 loc) • 17.9 kB
text/typescript
import * as react_jsx_runtime from 'react/jsx-runtime';
import z__default from 'zod';
import { Timestamp } from '@bufbuild/protobuf/wkt';
import { Message } from '@bufbuild/protobuf';
declare function BitsnapCart({ projectID, children, onVisibleChange, className, }: {
projectID: string;
children?: React.ReactNode;
onVisibleChange?: (isVisible: boolean) => void;
className?: string;
}): react_jsx_runtime.JSX.Element;
type ErrTypes = 'internal' | 'badInput' | 'notFound';
type Err = {
ERR: true;
error: unknown;
type?: ErrTypes;
};
declare function Err(message: string, type?: ErrTypes): Err;
declare function setProjectID(projectID: string): void;
declare function setCustomHost(host: string): void;
declare enum BillingPeriod$1 {
DAILY = "daily",
WEEKLY = "weekly",
MONTHLY = "monthly",
QUARTERLY = "quarterly",
SEMI_ANNUALLY = "semi-annually",
ANNUALLY = "annually"
}
type LinkRequest = z__default.infer<typeof linkRequestSchema>;
declare const linkRequestSchema: z__default.ZodObject<{
askForAddress: z__default.ZodOptional<z__default.ZodBoolean>;
askForPhone: z__default.ZodOptional<z__default.ZodBoolean>;
askForNote: z__default.ZodOptional<z__default.ZodBoolean>;
askForNip: z__default.ZodOptional<z__default.ZodBoolean>;
delivery: z__default.ZodOptional<z__default.ZodArray<z__default.ZodObject<{
name: z__default.ZodString;
desc: z__default.ZodOptional<z__default.ZodString>;
min: z__default.ZodNumber;
max: z__default.ZodNumber;
price: z__default.ZodPipe<z__default.ZodNumber, z__default.ZodTransform<number, number>>;
}, {}>>>;
deliveryMethod: z__default.ZodOptional<z__default.ZodString>;
details: z__default.ZodOptional<z__default.ZodObject<{
email: z__default.ZodOptional<z__default.ZodString>;
name: z__default.ZodOptional<z__default.ZodString>;
lastName: z__default.ZodOptional<z__default.ZodString>;
phone: z__default.ZodOptional<z__default.ZodString>;
address: z__default.ZodOptional<z__default.ZodObject<{
name: z__default.ZodOptional<z__default.ZodString>;
line1: z__default.ZodOptional<z__default.ZodString>;
line2: z__default.ZodOptional<z__default.ZodString>;
city: z__default.ZodOptional<z__default.ZodString>;
zipCode: z__default.ZodOptional<z__default.ZodString>;
country: z__default.ZodOptional<z__default.ZodString>;
}, {}>>;
billingAddress: z__default.ZodOptional<z__default.ZodObject<{
nip: z__default.ZodOptional<z__default.ZodString>;
name: z__default.ZodOptional<z__default.ZodString>;
line1: z__default.ZodOptional<z__default.ZodString>;
line2: z__default.ZodOptional<z__default.ZodString>;
city: z__default.ZodOptional<z__default.ZodString>;
zipCode: z__default.ZodOptional<z__default.ZodString>;
}, {}>>;
}, {}>>;
countries: z__default.ZodOptional<z__default.ZodArray<z__default.ZodString>>;
items: z__default.ZodArray<z__default.ZodObject<{
id: z__default.ZodString;
quantity: z__default.ZodNumber;
name: z__default.ZodOptional<z__default.ZodString>;
description: z__default.ZodOptional<z__default.ZodString>;
imageURL: z__default.ZodOptional<z__default.ZodString>;
price: z__default.ZodOptional<z__default.ZodNumber>;
currency: z__default.ZodOptional<z__default.ZodString>;
recurring: z__default.ZodOptional<z__default.ZodObject<{
billingPeriod: z__default.ZodEnum<{
daily: BillingPeriod$1.DAILY;
weekly: BillingPeriod$1.WEEKLY;
monthly: BillingPeriod$1.MONTHLY;
quarterly: BillingPeriod$1.QUARTERLY;
"semi-annually": BillingPeriod$1.SEMI_ANNUALLY;
annually: BillingPeriod$1.ANNUALLY;
}>;
trialDays: z__default.ZodOptional<z__default.ZodNumber>;
subscriptionSchedule: z__default.ZodOptional<z__default.ZodNumber>;
}, {}>>;
}, {}>>;
metadata: z__default.ZodOptional<z__default.ZodRecord<z__default.ZodString, z__default.ZodString>>;
additionalAgreements: z__default.ZodOptional<z__default.ZodArray<z__default.ZodObject<{
id: z__default.ZodOptional<z__default.ZodString>;
name: z__default.ZodString;
description: z__default.ZodOptional<z__default.ZodString>;
required: z__default.ZodDefault<z__default.ZodBoolean>;
answer: z__default.ZodOptional<z__default.ZodBoolean>;
}, {}>>>;
blikCode: z__default.ZodOptional<z__default.ZodString>;
couponCode: z__default.ZodOptional<z__default.ZodString>;
redirect: z__default.ZodOptional<z__default.ZodObject<{
successURL: z__default.ZodOptional<z__default.ZodString>;
cancelURL: z__default.ZodOptional<z__default.ZodString>;
}, {}>>;
}, {}>;
declare function addProductToCart(id: string, quantity?: number, metadata?: Record<string, string | undefined>): Promise<Err | undefined>;
declare function showCart(): void;
declare function hideCart(): void;
declare namespace Bitsnap {
function addProductToCart(id: string, quantity?: number, metadata?: Record<string, string | undefined>): Promise<Err | undefined>;
function showCart(): void;
function hideCart(): void;
}
declare function createPaymentURL(request: LinkRequest): Promise<Err | {
url: string;
}>;
declare function createCheckout(request: LinkRequest & {
apiKey?: string;
testMode?: boolean;
}): Promise<{
status: string;
redirectURL: string;
}>;
declare function injectReferenceToRequestIfNeeded(request: LinkRequest): LinkRequest;
/**
* @generated from enum common.v1.Environment
*/
declare enum Environment {
/**
* @generated from enum value: PRODUCTION = 0;
*/
PRODUCTION = 0,
/**
* @generated from enum value: TEST = 1;
*/
TEST = 1
}
/**
* @generated from enum common.v1.Gateway
*/
declare enum Gateway {
/**
* @generated from enum value: GATEWAY_ALL = 0;
*/
ALL = 0,
/**
* @generated from enum value: GATEWAY_PRZELEWY_24 = 1;
*/
PRZELEWY_24 = 1,
/**
* @generated from enum value: GATEWAY_STRIPE = 2;
*/
STRIPE = 2,
/**
* @generated from enum value: GATEWAY_TPAY = 3;
*/
TPAY = 3,
/**
* @generated from enum value: GATEWAY_CASH_ON_DELIVERY = 4;
*/
CASH_ON_DELIVERY = 4,
/**
* @generated from enum value: GATEWAY_FREE = 5;
*/
FREE = 5
}
/**
* @generated from message integrations.v1.Order
*/
type Order = Message<"integrations.v1.Order"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: integrations.v1.OrderStatus status = 2;
*/
status: OrderStatus;
/**
* @generated from field: common.v1.Environment environment = 3;
*/
environment: Environment;
/**
* @generated from field: repeated integrations.v1.OrderItem items = 4;
*/
items: OrderItem[];
/**
* @generated from field: repeated string available_countries = 5;
*/
availableCountries: string[];
/**
* @generated from field: optional integrations.v1.BillingAddress billing_address = 6;
*/
billingAddress?: BillingAddress;
/**
* @generated from field: optional integrations.v1.Address shipping_address = 7;
*/
shippingAddress?: Address;
/**
* @generated from field: optional integrations.v1.OrderDetails details = 8;
*/
details?: OrderDetails;
/**
* @generated from field: optional integrations.v1.Customer customer = 9;
*/
customer?: Customer;
/**
* @generated from field: google.protobuf.Timestamp created_at = 10;
*/
createdAt?: Timestamp;
};
/**
* @generated from message integrations.v1.OrderDetails
*/
type OrderDetails = Message<"integrations.v1.OrderDetails"> & {
/**
* @generated from field: common.v1.Gateway gateway = 1;
*/
gateway: Gateway;
/**
* @generated from field: repeated integrations.v1.DeliveryMethod delivery_methods = 2;
*/
deliveryMethods: DeliveryMethod[];
/**
* @generated from field: optional int64 delivery_method_price = 3;
*/
deliveryMethodPrice?: bigint;
/**
* @generated from field: optional string delivery_method = 4;
*/
deliveryMethod?: string;
/**
* @generated from field: bool ask_for_phone = 6;
*/
askForPhone: boolean;
/**
* @generated from field: bool ask_for_note = 7;
*/
askForNote: boolean;
/**
* @generated from field: bool ask_for_nip = 8;
*/
askForNip: boolean;
/**
* @generated from field: optional string coupon_code = 9;
*/
couponCode?: string;
/**
* @generated from field: optional int64 coupon_discount_amount = 10;
*/
couponDiscountAmount?: bigint;
/**
* @generated from field: optional string coupon_discount_currency = 11;
*/
couponDiscountCurrency?: string;
/**
* @generated from field: optional string coupon_discount_type = 12;
*/
couponDiscountType?: string;
/**
* @generated from field: optional bool coupon_includes_delivery = 13;
*/
couponIncludesDelivery?: boolean;
/**
* @generated from field: optional string success_url = 14;
*/
successUrl?: string;
/**
* @generated from field: optional string cancel_url = 15;
*/
cancelUrl?: string;
/**
* @generated from field: optional string payment_gateway_id = 16;
*/
paymentGatewayId?: string;
/**
* @generated from field: map<string, string> metadata = 17;
*/
metadata: {
[key: string]: string;
};
/**
* @generated from field: repeated integrations.v1.CheckoutAgreement additional_agreements = 18;
*/
additionalAgreements: CheckoutAgreement[];
};
/**
* @generated from message integrations.v1.CheckoutAgreement
*/
type CheckoutAgreement = Message<"integrations.v1.CheckoutAgreement"> & {
/**
* @generated from field: optional string id = 1;
*/
id?: string;
/**
* @generated from field: string name = 2;
*/
name: string;
/**
* @generated from field: optional string description = 3;
*/
description?: string;
/**
* @generated from field: bool required = 4;
*/
required: boolean;
/**
* @generated from field: optional bool answer = 5;
*/
answer?: boolean;
};
/**
* @generated from message integrations.v1.Address
*/
type Address = Message<"integrations.v1.Address"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: string line1 = 2;
*/
line1: string;
/**
* @generated from field: optional string line2 = 3;
*/
line2?: string;
/**
* @generated from field: string city = 4;
*/
city: string;
/**
* @generated from field: string country = 5;
*/
country: string;
/**
* @generated from field: optional string zip_code = 6;
*/
zipCode?: string;
};
/**
* @generated from message integrations.v1.BillingAddress
*/
type BillingAddress = Message<"integrations.v1.BillingAddress"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: string line1 = 2;
*/
line1: string;
/**
* @generated from field: optional string line2 = 3;
*/
line2?: string;
/**
* @generated from field: string city = 4;
*/
city: string;
/**
* @generated from field: string country = 5;
*/
country: string;
/**
* @generated from field: optional string zip_code = 6;
*/
zipCode?: string;
/**
* @generated from field: optional string tax_id = 7;
*/
taxId?: string;
};
/**
* @generated from message integrations.v1.OrderItem
*/
type OrderItem = Message<"integrations.v1.OrderItem"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: int32 quantity = 2;
*/
quantity: number;
/**
* @generated from field: int64 price = 3;
*/
price: bigint;
/**
* @generated from field: string currency = 4;
*/
currency: string;
/**
* @generated from field: optional int32 tax = 5;
*/
tax?: number;
/**
* @generated from field: optional string name = 6;
*/
name?: string;
/**
* @generated from field: optional integrations.v1.Recurring recurring = 7;
*/
recurring?: Recurring;
};
/**
* @generated from message integrations.v1.Customer
*/
type Customer = Message<"integrations.v1.Customer"> & {
/**
* @generated from field: string email = 1;
*/
email: string;
/**
* @generated from field: optional string phone = 2;
*/
phone?: string;
/**
* @generated from field: optional string name = 3;
*/
name?: string;
};
/**
* @generated from message integrations.v1.DeliveryMethod
*/
type DeliveryMethod = Message<"integrations.v1.DeliveryMethod"> & {
/**
* @generated from field: string name = 1;
*/
name: string;
/**
* @generated from field: int32 min = 2;
*/
min: number;
/**
* @generated from field: int32 max = 3;
*/
max: number;
/**
* @generated from field: int64 price = 4;
*/
price: bigint;
};
/**
* @generated from message integrations.v1.Recurring
*/
type Recurring = Message<"integrations.v1.Recurring"> & {
/**
* @generated from field: integrations.v1.BillingPeriod billing_period = 1;
*/
billingPeriod: BillingPeriod;
/**
* @generated from field: optional int32 trial_days = 2;
*/
trialDays?: number;
/**
* @generated from field: optional int32 number_of_payments = 3;
*/
numberOfPayments?: number;
};
/**
* @generated from enum integrations.v1.OrderStatus
*/
declare enum OrderStatus {
/**
* @generated from enum value: CREATED = 0;
*/
CREATED = 0,
/**
* @generated from enum value: PAID = 1;
*/
PAID = 1,
/**
* @generated from enum value: UNPAID = 2;
*/
UNPAID = 2,
/**
* @generated from enum value: CANCELED = 3;
*/
CANCELED = 3
}
/**
* @generated from enum integrations.v1.BillingPeriod
*/
declare enum BillingPeriod {
/**
* @generated from enum value: DAILY = 0;
*/
DAILY = 0,
/**
* @generated from enum value: WEEKLY = 1;
*/
WEEKLY = 1,
/**
* @generated from enum value: MONTHLY = 2;
*/
MONTHLY = 2,
/**
* @generated from enum value: QUARTERLY = 3;
*/
QUARTERLY = 3,
/**
* @generated from enum value: SEMI_ANNUALLY = 4;
*/
SEMI_ANNUALLY = 4,
/**
* @generated from enum value: ANNUALLY = 5;
*/
ANNUALLY = 5
}
/**
* @generated from message integrations.v1.EventData
*/
type EventData = Message<"integrations.v1.EventData"> & {
/**
* @generated from field: string id = 1;
*/
id: string;
/**
* @generated from field: integrations.v1.Event event = 2;
*/
event: Event;
/**
* @generated from field: optional integrations.v1.Order order = 3;
*/
order?: Order;
/**
* @generated from field: optional integrations.v1.Customer customer = 4;
*/
customer?: Customer;
};
/**
* @generated from enum integrations.v1.Event
*/
declare enum Event {
/**
* @generated from enum value: UNKNOWN = 0;
*/
UNKNOWN = 0,
/**
* @generated from enum value: TRANSACTION_CREATED = 1;
*/
TRANSACTION_CREATED = 1,
/**
* @generated from enum value: TRANSACTION_SUCCESS = 2;
*/
TRANSACTION_SUCCESS = 2,
/**
* @generated from enum value: TRANSACTION_FAILURE = 3;
*/
TRANSACTION_FAILURE = 3,
/**
* @generated from enum value: TRANSACTION_EXPIRED = 4;
*/
TRANSACTION_EXPIRED = 4,
/**
* @generated from enum value: TRANSACTION_CHARGE = 5;
*/
TRANSACTION_CHARGE = 5,
/**
* @generated from enum value: SUBSCRIPTION_CREATED = 6;
*/
SUBSCRIPTION_CREATED = 6,
/**
* @generated from enum value: SUBSCRIPTION_PAUSED = 7;
*/
SUBSCRIPTION_PAUSED = 7,
/**
* @generated from enum value: SUBSCRIPTION_RESUMED = 8;
*/
SUBSCRIPTION_RESUMED = 8,
/**
* @generated from enum value: SUBSCRIPTION_UPDATED = 9;
*/
SUBSCRIPTION_UPDATED = 9,
/**
* @generated from enum value: SUBSCRIPTION_DELETED = 10;
*/
SUBSCRIPTION_DELETED = 10
}
/**
* @generated from message jobs.v1.IntegrationEventJob
*/
type IntegrationEventJob = Message<"jobs.v1.IntegrationEventJob"> & {
/**
* @generated from field: string project_id = 1;
*/
projectId: string;
/**
* @generated from field: common.v1.Environment environment = 2;
*/
environment: Environment;
/**
* @generated from field: integrations.v1.EventData event_data = 3;
*/
eventData?: EventData;
};
declare function handleWebhook(payload: string, url: string, headers: Record<string, string | undefined>, secret: string): Promise<ReturnType>;
declare function handleWebhookSignature(payload: string, signature: string, secret: string): Promise<ReturnType>;
type ReturnType = (Err & {
isErr: true;
}) | (IntegrationEventJob & {
isErr: false;
});
export { Bitsnap, BitsnapCart as BitsnapCheckout, type LinkRequest, addProductToCart, createCheckout, createPaymentURL, handleWebhook, handleWebhookSignature, hideCart, injectReferenceToRequestIfNeeded, setCustomHost, setProjectID, showCart };