@dodopayments/astro 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -6168,532 +6168,432 @@ DodoPayments.Webhooks = Webhooks$1;
6168
6168
  DodoPayments.UsageEvents = UsageEvents;
6169
6169
  DodoPayments.Meters = Meters;
6170
6170
 
6171
- var __assign = (undefined && undefined.__assign) || function () {
6172
- __assign = Object.assign || function(t) {
6173
- for (var s, i = 1, n = arguments.length; i < n; i++) {
6174
- s = arguments[i];
6175
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6176
- t[p] = s[p];
6177
- }
6178
- return t;
6179
- };
6180
- return __assign.apply(this, arguments);
6181
- };
6182
- var __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
6183
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6184
- return new (P || (P = Promise))(function (resolve, reject) {
6185
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6186
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6187
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
6188
- step((generator = generator.apply(thisArg, _arguments || [])).next());
6189
- });
6190
- };
6191
- var __generator$1 = (undefined && undefined.__generator) || function (thisArg, body) {
6192
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
6193
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
6194
- function verb(n) { return function (v) { return step([n, v]); }; }
6195
- function step(op) {
6196
- if (f) throw new TypeError("Generator is already executing.");
6197
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
6198
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
6199
- if (y = 0, t) op = [op[0] & 2, t.value];
6200
- switch (op[0]) {
6201
- case 0: case 1: t = op; break;
6202
- case 4: _.label++; return { value: op[1], done: false };
6203
- case 5: _.label++; y = op[1]; op = [0]; continue;
6204
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
6205
- default:
6206
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
6207
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
6208
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
6209
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
6210
- if (t[2]) _.ops.pop();
6211
- _.trys.pop(); continue;
6212
- }
6213
- op = body.call(thisArg, _);
6214
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
6215
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
6216
- }
6217
- };
6171
+ // src/checkout/checkout.ts
6218
6172
  var checkoutQuerySchema = objectType({
6219
- productId: stringType(),
6220
- quantity: stringType().optional(),
6221
- // Customer fields
6222
- fullName: stringType().optional(),
6223
- firstName: stringType().optional(),
6224
- lastName: stringType().optional(),
6225
- email: stringType().optional(),
6226
- country: stringType().optional(),
6227
- addressLine: stringType().optional(),
6228
- city: stringType().optional(),
6229
- state: stringType().optional(),
6230
- zipCode: stringType().optional(),
6231
- // Disable flags
6232
- disableFullName: stringType().optional(),
6233
- disableFirstName: stringType().optional(),
6234
- disableLastName: stringType().optional(),
6235
- disableEmail: stringType().optional(),
6236
- disableCountry: stringType().optional(),
6237
- disableAddressLine: stringType().optional(),
6238
- disableCity: stringType().optional(),
6239
- disableState: stringType().optional(),
6240
- disableZipCode: stringType().optional(),
6241
- // Advanced controls
6242
- paymentCurrency: stringType().optional(),
6243
- showCurrencySelector: stringType().optional(),
6244
- paymentAmount: stringType().optional(),
6245
- showDiscounts: stringType().optional(),
6246
- // Metadata (allow any key starting with metadata_)
6247
- // We'll handle metadata separately in the handler
6248
- })
6249
- .catchall(unknownType());
6250
- // Add Zod schema for dynamic checkout body
6173
+ productId: stringType(),
6174
+ quantity: stringType().optional(),
6175
+ // Customer fields
6176
+ fullName: stringType().optional(),
6177
+ firstName: stringType().optional(),
6178
+ lastName: stringType().optional(),
6179
+ email: stringType().optional(),
6180
+ country: stringType().optional(),
6181
+ addressLine: stringType().optional(),
6182
+ city: stringType().optional(),
6183
+ state: stringType().optional(),
6184
+ zipCode: stringType().optional(),
6185
+ // Disable flags
6186
+ disableFullName: stringType().optional(),
6187
+ disableFirstName: stringType().optional(),
6188
+ disableLastName: stringType().optional(),
6189
+ disableEmail: stringType().optional(),
6190
+ disableCountry: stringType().optional(),
6191
+ disableAddressLine: stringType().optional(),
6192
+ disableCity: stringType().optional(),
6193
+ disableState: stringType().optional(),
6194
+ disableZipCode: stringType().optional(),
6195
+ // Advanced controls
6196
+ paymentCurrency: stringType().optional(),
6197
+ showCurrencySelector: stringType().optional(),
6198
+ paymentAmount: stringType().optional(),
6199
+ showDiscounts: stringType().optional()
6200
+ // Metadata (allow any key starting with metadata_)
6201
+ // We'll handle metadata separately in the handler
6202
+ }).catchall(unknownType());
6251
6203
  var dynamicCheckoutBodySchema = objectType({
6252
- // For subscription
6253
- product_id: stringType().optional(),
6254
- quantity: numberType().optional(),
6255
- // For one-time payment
6256
- product_cart: arrayType(objectType({
6257
- product_id: stringType(),
6258
- quantity: numberType(),
6259
- }))
6260
- .optional(),
6261
- // Common fields
6262
- billing: objectType({
6263
- city: stringType(),
6264
- country: stringType(),
6265
- state: stringType(),
6266
- street: stringType(),
6267
- zipcode: stringType(),
6268
- }),
6269
- customer: objectType({
6270
- customer_id: stringType().optional(),
6271
- email: stringType().optional(),
6272
- name: stringType().optional(),
6273
- }),
6274
- discount_id: stringType().optional(),
6275
- addons: arrayType(objectType({
6276
- addon_id: stringType(),
6277
- quantity: numberType(),
6278
- }))
6279
- .optional(),
6280
- metadata: recordType(stringType(), stringType()).optional(),
6281
- currency: stringType().optional(),
6282
- // Allow any additional fields (for future compatibility)
6283
- })
6284
- .catchall(unknownType());
6285
- // ========================================
6286
- // CHECKOUT SESSIONS SCHEMAS & TYPES
6287
- // ========================================
6288
- // Product cart item schema for checkout sessions
6204
+ // For subscription
6205
+ product_id: stringType().optional(),
6206
+ quantity: numberType().optional(),
6207
+ // For one-time payment
6208
+ product_cart: arrayType(
6209
+ objectType({
6210
+ product_id: stringType(),
6211
+ quantity: numberType()
6212
+ })
6213
+ ).optional(),
6214
+ // Common fields
6215
+ billing: objectType({
6216
+ city: stringType(),
6217
+ country: stringType(),
6218
+ state: stringType(),
6219
+ street: stringType(),
6220
+ zipcode: stringType()
6221
+ }),
6222
+ customer: objectType({
6223
+ customer_id: stringType().optional(),
6224
+ email: stringType().optional(),
6225
+ name: stringType().optional()
6226
+ }),
6227
+ discount_id: stringType().optional(),
6228
+ addons: arrayType(
6229
+ objectType({
6230
+ addon_id: stringType(),
6231
+ quantity: numberType()
6232
+ })
6233
+ ).optional(),
6234
+ metadata: recordType(stringType(), stringType()).optional(),
6235
+ currency: stringType().optional()
6236
+ // Allow any additional fields (for future compatibility)
6237
+ }).catchall(unknownType());
6289
6238
  var checkoutSessionProductCartItemSchema = objectType({
6290
- product_id: stringType().min(1, "Product ID is required"),
6291
- quantity: numberType().int().positive("Quantity must be a positive integer"),
6239
+ product_id: stringType().min(1, "Product ID is required"),
6240
+ quantity: numberType().int().positive("Quantity must be a positive integer")
6292
6241
  });
6293
- // Customer information schema for checkout sessions
6294
6242
  var checkoutSessionCustomerSchema = objectType({
6295
- email: stringType().email().optional(),
6296
- name: stringType().min(1).optional(),
6297
- phone_number: stringType().optional(),
6298
- })
6299
- .optional();
6300
- // Billing address schema for checkout sessions
6243
+ email: stringType().email().optional(),
6244
+ name: stringType().min(1).optional(),
6245
+ phone_number: stringType().optional()
6246
+ }).optional();
6301
6247
  var checkoutSessionBillingAddressSchema = objectType({
6302
- street: stringType().optional(),
6303
- city: stringType().optional(),
6304
- state: stringType().optional(),
6305
- country: stringType().length(2, "Country must be a 2-letter ISO code"),
6306
- zipcode: stringType().optional(),
6307
- })
6308
- .optional();
6309
- // Payment method types enum based on Dodo Payments documentation
6248
+ street: stringType().optional(),
6249
+ city: stringType().optional(),
6250
+ state: stringType().optional(),
6251
+ country: stringType().length(2, "Country must be a 2-letter ISO code"),
6252
+ zipcode: stringType().optional()
6253
+ }).optional();
6310
6254
  var paymentMethodTypeSchema = enumType([
6311
- "credit",
6312
- "debit",
6313
- "upi_collect",
6314
- "upi_intent",
6315
- "apple_pay",
6316
- "google_pay",
6317
- "amazon_pay",
6318
- "klarna",
6319
- "affirm",
6320
- "afterpay_clearpay",
6321
- "sepa",
6322
- "ach",
6255
+ "credit",
6256
+ "debit",
6257
+ "upi_collect",
6258
+ "upi_intent",
6259
+ "apple_pay",
6260
+ "google_pay",
6261
+ "amazon_pay",
6262
+ "klarna",
6263
+ "affirm",
6264
+ "afterpay_clearpay",
6265
+ "sepa",
6266
+ "ach"
6323
6267
  ]);
6324
- // Customization options schema
6325
6268
  var checkoutSessionCustomizationSchema = objectType({
6326
- theme: enumType(["light", "dark", "system"]).optional(),
6327
- show_order_details: booleanType().optional(),
6328
- show_on_demand_tag: booleanType().optional(),
6329
- })
6330
- .optional();
6331
- // Feature flags schema
6269
+ theme: enumType(["light", "dark", "system"]).optional(),
6270
+ show_order_details: booleanType().optional(),
6271
+ show_on_demand_tag: booleanType().optional()
6272
+ }).optional();
6332
6273
  var checkoutSessionFeatureFlagsSchema = objectType({
6333
- allow_currency_selection: booleanType().optional(),
6334
- allow_discount_code: booleanType().optional(),
6335
- allow_phone_number_collection: booleanType().optional(),
6336
- allow_tax_id: booleanType().optional(),
6337
- always_create_new_customer: booleanType().optional(),
6338
- })
6339
- .optional();
6340
- // Subscription data schema
6274
+ allow_currency_selection: booleanType().optional(),
6275
+ allow_discount_code: booleanType().optional(),
6276
+ allow_phone_number_collection: booleanType().optional(),
6277
+ allow_tax_id: booleanType().optional(),
6278
+ always_create_new_customer: booleanType().optional()
6279
+ }).optional();
6341
6280
  var checkoutSessionSubscriptionDataSchema = objectType({
6342
- trial_period_days: numberType().int().nonnegative().optional(),
6343
- })
6344
- .optional();
6345
- // Main checkout session payload schema
6281
+ trial_period_days: numberType().int().nonnegative().optional()
6282
+ }).optional();
6346
6283
  var checkoutSessionPayloadSchema = objectType({
6347
- // Required fields
6348
- product_cart: arrayType(checkoutSessionProductCartItemSchema)
6349
- .min(1, "At least one product is required"),
6350
- // Optional fields
6351
- customer: checkoutSessionCustomerSchema,
6352
- billing_address: checkoutSessionBillingAddressSchema,
6353
- return_url: stringType().url().optional(),
6354
- allowed_payment_method_types: arrayType(paymentMethodTypeSchema).optional(),
6355
- billing_currency: stringType()
6356
- .length(3, "Currency must be a 3-letter ISO code")
6357
- .optional(),
6358
- show_saved_payment_methods: booleanType().optional(),
6359
- confirm: booleanType().optional(),
6360
- discount_code: stringType().optional(),
6361
- metadata: recordType(stringType(), stringType()).optional(),
6362
- customization: checkoutSessionCustomizationSchema,
6363
- feature_flags: checkoutSessionFeatureFlagsSchema,
6364
- subscription_data: checkoutSessionSubscriptionDataSchema,
6284
+ // Required fields
6285
+ product_cart: arrayType(checkoutSessionProductCartItemSchema).min(1, "At least one product is required"),
6286
+ // Optional fields
6287
+ customer: checkoutSessionCustomerSchema,
6288
+ billing_address: checkoutSessionBillingAddressSchema,
6289
+ return_url: stringType().url().optional(),
6290
+ allowed_payment_method_types: arrayType(paymentMethodTypeSchema).optional(),
6291
+ billing_currency: stringType().length(3, "Currency must be a 3-letter ISO code").optional(),
6292
+ show_saved_payment_methods: booleanType().optional(),
6293
+ confirm: booleanType().optional(),
6294
+ discount_code: stringType().optional(),
6295
+ metadata: recordType(stringType(), stringType()).optional(),
6296
+ customization: checkoutSessionCustomizationSchema,
6297
+ feature_flags: checkoutSessionFeatureFlagsSchema,
6298
+ subscription_data: checkoutSessionSubscriptionDataSchema
6365
6299
  });
6366
- // Checkout session response schema
6367
6300
  var checkoutSessionResponseSchema = objectType({
6368
- session_id: stringType().min(1, "Session ID is required"),
6369
- checkout_url: stringType().url("Invalid checkout URL"),
6301
+ session_id: stringType().min(1, "Session ID is required"),
6302
+ checkout_url: stringType().url("Invalid checkout URL")
6370
6303
  });
6371
- /**
6372
- * Creates a new Dodo Payments Checkout Session using the modern /checkouts endpoint.
6373
- * This function provides a clean, type-safe interface to the Checkout Sessions API.
6374
- *
6375
- * @param payload - The checkout session data, validated against CheckoutSessionPayloadSchema
6376
- * @param config - Dodo Payments client configuration (bearerToken, environment)
6377
- * @returns Promise<CheckoutSessionResponse> - The checkout session with session_id and checkout_url
6378
- *
6379
- * @throws {Error} When payload validation fails or API request fails
6380
- *
6381
- * @example
6382
- * ```typescript
6383
- * const session = await createCheckoutSession({
6384
- * product_cart: [{ product_id: 'prod_123', quantity: 1 }],
6385
- * customer: { email: 'customer@example.com' },
6386
- * return_url: 'https://yoursite.com/success'
6387
- * }, {
6388
- * bearerToken: process.env.DODO_PAYMENTS_API_KEY,
6389
- * environment: 'test_mode'
6390
- * });
6391
- *
6392
- * ```
6393
- */
6394
- var createCheckoutSession = function (payload, config) { return __awaiter$1(void 0, void 0, void 0, function () {
6395
- var validation, dodopayments, sdkPayload, session, responseValidation, error_1;
6396
- return __generator$1(this, function (_a) {
6397
- switch (_a.label) {
6398
- case 0:
6399
- validation = checkoutSessionPayloadSchema.safeParse(payload);
6400
- if (!validation.success) {
6401
- throw new Error("Invalid checkout session payload: ".concat(validation.error.issues
6402
- .map(function (issue) { return "".concat(issue.path.join("."), ": ").concat(issue.message); })
6403
- .join(", ")));
6404
- }
6405
- dodopayments = new DodoPayments({
6406
- bearerToken: config.bearerToken,
6407
- environment: config.environment,
6408
- });
6409
- _a.label = 1;
6410
- case 1:
6411
- _a.trys.push([1, 3, , 4]);
6412
- sdkPayload = __assign(__assign({}, validation.data), (validation.data.billing_address && {
6413
- billing_address: __assign(__assign({}, validation.data.billing_address), { country: validation.data.billing_address.country }),
6414
- }));
6415
- return [4 /*yield*/, dodopayments.checkoutSessions.create(sdkPayload)];
6416
- case 2:
6417
- session = _a.sent();
6418
- responseValidation = checkoutSessionResponseSchema.safeParse(session);
6419
- if (!responseValidation.success) {
6420
- throw new Error("Invalid checkout session response from API: ".concat(responseValidation.error.issues
6421
- .map(function (issue) { return "".concat(issue.path.join("."), ": ").concat(issue.message); })
6422
- .join(", ")));
6423
- }
6424
- return [2 /*return*/, responseValidation.data];
6425
- case 3:
6426
- error_1 = _a.sent();
6427
- if (error_1 instanceof Error) {
6428
- console.error("Dodo Payments Checkout Session API Error:", {
6429
- message: error_1.message,
6430
- payload: validation.data,
6431
- config: {
6432
- environment: config.environment,
6433
- hasBearerToken: !!config.bearerToken,
6434
- },
6435
- });
6436
- // Re-throw with a more user-friendly message
6437
- throw new Error("Failed to create checkout session: ".concat(error_1.message));
6438
- }
6439
- // Handle non-Error objects
6440
- console.error("Unknown error creating checkout session:", error_1);
6441
- throw new Error("Failed to create checkout session due to an unknown error");
6442
- case 4: return [2 /*return*/];
6443
- }
6304
+ var createCheckoutSession = async (payload, config) => {
6305
+ const validation = checkoutSessionPayloadSchema.safeParse(payload);
6306
+ if (!validation.success) {
6307
+ throw new Error(
6308
+ `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`).join(", ")}`
6309
+ );
6310
+ }
6311
+ const dodopayments = new DodoPayments({
6312
+ bearerToken: config.bearerToken,
6313
+ environment: config.environment
6314
+ });
6315
+ try {
6316
+ const sdkPayload = {
6317
+ ...validation.data,
6318
+ ...validation.data.billing_address && {
6319
+ billing_address: {
6320
+ ...validation.data.billing_address,
6321
+ country: validation.data.billing_address.country
6322
+ }
6323
+ }
6324
+ };
6325
+ const session = await dodopayments.checkoutSessions.create(
6326
+ sdkPayload
6327
+ );
6328
+ const responseValidation = checkoutSessionResponseSchema.safeParse(session);
6329
+ if (!responseValidation.success) {
6330
+ throw new Error(
6331
+ `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`).join(", ")}`
6332
+ );
6333
+ }
6334
+ return responseValidation.data;
6335
+ } catch (error) {
6336
+ if (error instanceof Error) {
6337
+ console.error("Dodo Payments Checkout Session API Error:", {
6338
+ message: error.message,
6339
+ payload: validation.data,
6340
+ config: {
6341
+ environment: config.environment,
6342
+ hasBearerToken: !!config.bearerToken
6343
+ }
6344
+ });
6345
+ throw new Error(`Failed to create checkout session: ${error.message}`);
6346
+ }
6347
+ console.error("Unknown error creating checkout session:", error);
6348
+ throw new Error(
6349
+ "Failed to create checkout session due to an unknown error"
6350
+ );
6351
+ }
6352
+ };
6353
+ var buildCheckoutUrl = async ({
6354
+ queryParams,
6355
+ body,
6356
+ sessionPayload,
6357
+ returnUrl,
6358
+ bearerToken,
6359
+ environment,
6360
+ type = "static"
6361
+ }) => {
6362
+ if (type === "session") {
6363
+ if (!sessionPayload) {
6364
+ throw new Error("sessionPayload is required when type is 'session'");
6365
+ }
6366
+ const session = await createCheckoutSession(sessionPayload, {
6367
+ bearerToken,
6368
+ environment
6444
6369
  });
6445
- }); };
6446
- var buildCheckoutUrl = function (_a) { return __awaiter$1(void 0, [_a], void 0, function (_b) {
6447
- var session, inputData, parseResult, success, data, error, _c, productId, quantity_1, fullName, firstName, lastName, email, country, addressLine, city, state, zipCode, disableFullName, disableFirstName, disableLastName, disableEmail, disableCountry, disableAddressLine, disableCity, disableState, disableZipCode, paymentCurrency, showCurrencySelector, paymentAmount, showDiscounts, dodopayments_1, err_1, url, _i, _d, _e, key, value, dyn, product_id, product_cart, quantity, billing, customer, addons, metadata, allowed_payment_method_types, billing_currency, discount_code, on_demand, bodyReturnUrl, show_saved_payment_methods, tax_id, trial_period_days, dodopayments, isSubscription, productIdToFetch, product, err_2, subscriptionPayload, subscription, err_3, cart, paymentPayload, payment, err_4;
6448
- var queryParams = _b.queryParams, body = _b.body, sessionPayload = _b.sessionPayload, returnUrl = _b.returnUrl, bearerToken = _b.bearerToken, environment = _b.environment, _f = _b.type, type = _f === void 0 ? "static" : _f;
6449
- return __generator$1(this, function (_g) {
6450
- switch (_g.label) {
6451
- case 0:
6452
- if (!(type === "session")) return [3 /*break*/, 2];
6453
- if (!sessionPayload) {
6454
- throw new Error("sessionPayload is required when type is 'session'");
6455
- }
6456
- return [4 /*yield*/, createCheckoutSession(sessionPayload, {
6457
- bearerToken: bearerToken,
6458
- environment: environment,
6459
- })];
6460
- case 1:
6461
- session = _g.sent();
6462
- return [2 /*return*/, session.checkout_url];
6463
- case 2:
6464
- inputData = type === "dynamic" ? body : queryParams;
6465
- if (type === "dynamic") {
6466
- parseResult = dynamicCheckoutBodySchema.safeParse(inputData);
6467
- }
6468
- else {
6469
- parseResult = checkoutQuerySchema.safeParse(inputData);
6470
- }
6471
- success = parseResult.success, data = parseResult.data, error = parseResult.error;
6472
- if (!success) {
6473
- throw new Error("Invalid ".concat(type === "dynamic" ? "body" : "query parameters", ".\n ").concat(error.message));
6474
- }
6475
- if (!(type !== "dynamic")) return [3 /*break*/, 7];
6476
- _c = data, productId = _c.productId, quantity_1 = _c.quantity, fullName = _c.fullName, firstName = _c.firstName, lastName = _c.lastName, email = _c.email, country = _c.country, addressLine = _c.addressLine, city = _c.city, state = _c.state, zipCode = _c.zipCode, disableFullName = _c.disableFullName, disableFirstName = _c.disableFirstName, disableLastName = _c.disableLastName, disableEmail = _c.disableEmail, disableCountry = _c.disableCountry, disableAddressLine = _c.disableAddressLine, disableCity = _c.disableCity, disableState = _c.disableState, disableZipCode = _c.disableZipCode, paymentCurrency = _c.paymentCurrency, showCurrencySelector = _c.showCurrencySelector, paymentAmount = _c.paymentAmount, showDiscounts = _c.showDiscounts;
6477
- dodopayments_1 = new DodoPayments({
6478
- bearerToken: bearerToken,
6479
- environment: environment,
6480
- });
6481
- // Check that the product exists for this merchant
6482
- if (!productId)
6483
- throw new Error("Missing required field: productId");
6484
- _g.label = 3;
6485
- case 3:
6486
- _g.trys.push([3, 5, , 6]);
6487
- return [4 /*yield*/, dodopayments_1.products.retrieve(productId)];
6488
- case 4:
6489
- _g.sent();
6490
- return [3 /*break*/, 6];
6491
- case 5:
6492
- err_1 = _g.sent();
6493
- console.error(err_1);
6494
- throw new Error("Product not found");
6495
- case 6:
6496
- url = new URL("".concat(environment === "test_mode" ? "https://test.checkout.dodopayments.com" : "https://checkout.dodopayments.com", "/buy/").concat(productId));
6497
- url.searchParams.set("quantity", quantity_1 ? String(quantity_1) : "1");
6498
- if (returnUrl)
6499
- url.searchParams.set("redirect_url", returnUrl);
6500
- // Customer/billing fields
6501
- if (fullName)
6502
- url.searchParams.set("fullName", String(fullName));
6503
- if (firstName)
6504
- url.searchParams.set("firstName", String(firstName));
6505
- if (lastName)
6506
- url.searchParams.set("lastName", String(lastName));
6507
- if (email)
6508
- url.searchParams.set("email", String(email));
6509
- if (country)
6510
- url.searchParams.set("country", String(country));
6511
- if (addressLine)
6512
- url.searchParams.set("addressLine", String(addressLine));
6513
- if (city)
6514
- url.searchParams.set("city", String(city));
6515
- if (state)
6516
- url.searchParams.set("state", String(state));
6517
- if (zipCode)
6518
- url.searchParams.set("zipCode", String(zipCode));
6519
- // Disable flags (must be set to 'true' to disable)
6520
- if (disableFullName === "true")
6521
- url.searchParams.set("disableFullName", "true");
6522
- if (disableFirstName === "true")
6523
- url.searchParams.set("disableFirstName", "true");
6524
- if (disableLastName === "true")
6525
- url.searchParams.set("disableLastName", "true");
6526
- if (disableEmail === "true")
6527
- url.searchParams.set("disableEmail", "true");
6528
- if (disableCountry === "true")
6529
- url.searchParams.set("disableCountry", "true");
6530
- if (disableAddressLine === "true")
6531
- url.searchParams.set("disableAddressLine", "true");
6532
- if (disableCity === "true")
6533
- url.searchParams.set("disableCity", "true");
6534
- if (disableState === "true")
6535
- url.searchParams.set("disableState", "true");
6536
- if (disableZipCode === "true")
6537
- url.searchParams.set("disableZipCode", "true");
6538
- // Advanced controls
6539
- if (paymentCurrency)
6540
- url.searchParams.set("paymentCurrency", String(paymentCurrency));
6541
- if (showCurrencySelector)
6542
- url.searchParams.set("showCurrencySelector", String(showCurrencySelector));
6543
- if (paymentAmount)
6544
- url.searchParams.set("paymentAmount", String(paymentAmount));
6545
- if (showDiscounts)
6546
- url.searchParams.set("showDiscounts", String(showDiscounts));
6547
- // Metadata: add all query params starting with metadata_
6548
- for (_i = 0, _d = Object.entries(queryParams || {}); _i < _d.length; _i++) {
6549
- _e = _d[_i], key = _e[0], value = _e[1];
6550
- if (key.startsWith("metadata_") && value && typeof value !== "object") {
6551
- url.searchParams.set(key, String(value));
6552
- }
6553
- }
6554
- return [2 /*return*/, url.toString()];
6555
- case 7:
6556
- dyn = data;
6557
- product_id = dyn.product_id, product_cart = dyn.product_cart, quantity = dyn.quantity, billing = dyn.billing, customer = dyn.customer, addons = dyn.addons, metadata = dyn.metadata, allowed_payment_method_types = dyn.allowed_payment_method_types, billing_currency = dyn.billing_currency, discount_code = dyn.discount_code, on_demand = dyn.on_demand, bodyReturnUrl = dyn.return_url, show_saved_payment_methods = dyn.show_saved_payment_methods, tax_id = dyn.tax_id, trial_period_days = dyn.trial_period_days;
6558
- dodopayments = new DodoPayments({
6559
- bearerToken: bearerToken,
6560
- environment: environment,
6561
- });
6562
- isSubscription = false;
6563
- productIdToFetch = product_id;
6564
- if (!product_id && product_cart && product_cart.length > 0) {
6565
- productIdToFetch = product_cart[0].product_id;
6566
- }
6567
- if (!productIdToFetch)
6568
- throw new Error("Missing required field: product_id or product_cart[0].product_id");
6569
- _g.label = 8;
6570
- case 8:
6571
- _g.trys.push([8, 10, , 11]);
6572
- return [4 /*yield*/, dodopayments.products.retrieve(productIdToFetch)];
6573
- case 9:
6574
- product = _g.sent();
6575
- return [3 /*break*/, 11];
6576
- case 10:
6577
- err_2 = _g.sent();
6578
- console.error(err_2);
6579
- throw new Error("Product not found");
6580
- case 11:
6581
- isSubscription = Boolean(product.is_recurring);
6582
- // Required field validation
6583
- if (isSubscription && !product_id)
6584
- throw new Error("Missing required field: product_id for subscription");
6585
- if (!billing)
6586
- throw new Error("Missing required field: billing");
6587
- if (!customer)
6588
- throw new Error("Missing required field: customer");
6589
- if (!isSubscription) return [3 /*break*/, 16];
6590
- subscriptionPayload = {
6591
- billing: billing,
6592
- customer: customer,
6593
- product_id: product_id,
6594
- quantity: quantity ? Number(quantity) : 1,
6595
- };
6596
- if (metadata)
6597
- subscriptionPayload.metadata = metadata;
6598
- if (discount_code)
6599
- subscriptionPayload.discount_code = discount_code;
6600
- if (addons)
6601
- subscriptionPayload.addons = addons;
6602
- if (allowed_payment_method_types)
6603
- subscriptionPayload.allowed_payment_method_types =
6604
- allowed_payment_method_types;
6605
- if (billing_currency)
6606
- subscriptionPayload.billing_currency = billing_currency;
6607
- if (on_demand)
6608
- subscriptionPayload.on_demand = on_demand;
6609
- subscriptionPayload.payment_link = true;
6610
- // Use bodyReturnUrl if present, otherwise use top-level returnUrl
6611
- if (bodyReturnUrl) {
6612
- subscriptionPayload.return_url = bodyReturnUrl;
6613
- }
6614
- else if (returnUrl) {
6615
- subscriptionPayload.return_url = returnUrl;
6616
- }
6617
- if (show_saved_payment_methods)
6618
- subscriptionPayload.show_saved_payment_methods =
6619
- show_saved_payment_methods;
6620
- if (tax_id)
6621
- subscriptionPayload.tax_id = tax_id;
6622
- if (trial_period_days)
6623
- subscriptionPayload.trial_period_days = trial_period_days;
6624
- subscription = void 0;
6625
- _g.label = 12;
6626
- case 12:
6627
- _g.trys.push([12, 14, , 15]);
6628
- return [4 /*yield*/, dodopayments.subscriptions.create(subscriptionPayload)];
6629
- case 13:
6630
- subscription =
6631
- _g.sent();
6632
- return [3 /*break*/, 15];
6633
- case 14:
6634
- err_3 = _g.sent();
6635
- console.error("Error when creating subscription", err_3);
6636
- throw new Error(err_3 instanceof Error ? err_3.message : String(err_3));
6637
- case 15:
6638
- if (!subscription || !subscription.payment_link) {
6639
- throw new Error("No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload");
6640
- }
6641
- return [2 /*return*/, subscription.payment_link];
6642
- case 16:
6643
- cart = product_cart;
6644
- if (!cart && product_id) {
6645
- cart = [
6646
- { product_id: product_id, quantity: quantity ? Number(quantity) : 1 },
6647
- ];
6648
- }
6649
- if (!cart || cart.length === 0)
6650
- throw new Error("Missing required field: product_cart or product_id");
6651
- paymentPayload = {
6652
- billing: billing,
6653
- customer: customer,
6654
- product_cart: cart,
6655
- };
6656
- if (metadata)
6657
- paymentPayload.metadata = metadata;
6658
- paymentPayload.payment_link = true;
6659
- if (allowed_payment_method_types)
6660
- paymentPayload.allowed_payment_method_types =
6661
- allowed_payment_method_types;
6662
- if (billing_currency)
6663
- paymentPayload.billing_currency = billing_currency;
6664
- if (discount_code)
6665
- paymentPayload.discount_code = discount_code;
6666
- // Use bodyReturnUrl if present, otherwise use top-level returnUrl
6667
- if (bodyReturnUrl) {
6668
- paymentPayload.return_url = bodyReturnUrl;
6669
- }
6670
- else if (returnUrl) {
6671
- paymentPayload.return_url = returnUrl;
6672
- }
6673
- if (show_saved_payment_methods)
6674
- paymentPayload.show_saved_payment_methods = show_saved_payment_methods;
6675
- if (tax_id)
6676
- paymentPayload.tax_id = tax_id;
6677
- payment = void 0;
6678
- _g.label = 17;
6679
- case 17:
6680
- _g.trys.push([17, 19, , 20]);
6681
- return [4 /*yield*/, dodopayments.payments.create(paymentPayload)];
6682
- case 18:
6683
- payment = _g.sent();
6684
- return [3 /*break*/, 20];
6685
- case 19:
6686
- err_4 = _g.sent();
6687
- console.error("Error when creating payment link", err_4);
6688
- throw new Error(err_4 instanceof Error ? err_4.message : String(err_4));
6689
- case 20:
6690
- if (!payment || !payment.payment_link) {
6691
- throw new Error("No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.");
6692
- }
6693
- return [2 /*return*/, payment.payment_link];
6694
- }
6370
+ return session.checkout_url;
6371
+ }
6372
+ const inputData = type === "dynamic" ? body : queryParams;
6373
+ let parseResult;
6374
+ if (type === "dynamic") {
6375
+ parseResult = dynamicCheckoutBodySchema.safeParse(inputData);
6376
+ } else {
6377
+ parseResult = checkoutQuerySchema.safeParse(inputData);
6378
+ }
6379
+ const { success, data, error } = parseResult;
6380
+ if (!success) {
6381
+ throw new Error(
6382
+ `Invalid ${type === "dynamic" ? "body" : "query parameters"}.
6383
+ ${error.message}`
6384
+ );
6385
+ }
6386
+ if (type !== "dynamic") {
6387
+ const {
6388
+ productId,
6389
+ quantity: quantity2,
6390
+ fullName,
6391
+ firstName,
6392
+ lastName,
6393
+ email,
6394
+ country,
6395
+ addressLine,
6396
+ city,
6397
+ state,
6398
+ zipCode,
6399
+ disableFullName,
6400
+ disableFirstName,
6401
+ disableLastName,
6402
+ disableEmail,
6403
+ disableCountry,
6404
+ disableAddressLine,
6405
+ disableCity,
6406
+ disableState,
6407
+ disableZipCode,
6408
+ paymentCurrency,
6409
+ showCurrencySelector,
6410
+ paymentAmount,
6411
+ showDiscounts
6412
+ // metadata handled below
6413
+ } = data;
6414
+ const dodopayments2 = new DodoPayments({
6415
+ bearerToken,
6416
+ environment
6695
6417
  });
6696
- }); };
6418
+ if (!productId) throw new Error("Missing required field: productId");
6419
+ try {
6420
+ await dodopayments2.products.retrieve(productId);
6421
+ } catch (err) {
6422
+ console.error(err);
6423
+ throw new Error("Product not found");
6424
+ }
6425
+ const url = new URL(
6426
+ `${environment === "test_mode" ? "https://test.checkout.dodopayments.com" : "https://checkout.dodopayments.com"}/buy/${productId}`
6427
+ );
6428
+ url.searchParams.set("quantity", quantity2 ? String(quantity2) : "1");
6429
+ if (returnUrl) url.searchParams.set("redirect_url", returnUrl);
6430
+ if (fullName) url.searchParams.set("fullName", String(fullName));
6431
+ if (firstName) url.searchParams.set("firstName", String(firstName));
6432
+ if (lastName) url.searchParams.set("lastName", String(lastName));
6433
+ if (email) url.searchParams.set("email", String(email));
6434
+ if (country) url.searchParams.set("country", String(country));
6435
+ if (addressLine) url.searchParams.set("addressLine", String(addressLine));
6436
+ if (city) url.searchParams.set("city", String(city));
6437
+ if (state) url.searchParams.set("state", String(state));
6438
+ if (zipCode) url.searchParams.set("zipCode", String(zipCode));
6439
+ if (disableFullName === "true")
6440
+ url.searchParams.set("disableFullName", "true");
6441
+ if (disableFirstName === "true")
6442
+ url.searchParams.set("disableFirstName", "true");
6443
+ if (disableLastName === "true")
6444
+ url.searchParams.set("disableLastName", "true");
6445
+ if (disableEmail === "true") url.searchParams.set("disableEmail", "true");
6446
+ if (disableCountry === "true")
6447
+ url.searchParams.set("disableCountry", "true");
6448
+ if (disableAddressLine === "true")
6449
+ url.searchParams.set("disableAddressLine", "true");
6450
+ if (disableCity === "true") url.searchParams.set("disableCity", "true");
6451
+ if (disableState === "true") url.searchParams.set("disableState", "true");
6452
+ if (disableZipCode === "true")
6453
+ url.searchParams.set("disableZipCode", "true");
6454
+ if (paymentCurrency)
6455
+ url.searchParams.set("paymentCurrency", String(paymentCurrency));
6456
+ if (showCurrencySelector)
6457
+ url.searchParams.set(
6458
+ "showCurrencySelector",
6459
+ String(showCurrencySelector)
6460
+ );
6461
+ if (paymentAmount)
6462
+ url.searchParams.set("paymentAmount", String(paymentAmount));
6463
+ if (showDiscounts)
6464
+ url.searchParams.set("showDiscounts", String(showDiscounts));
6465
+ for (const [key, value] of Object.entries(queryParams || {})) {
6466
+ if (key.startsWith("metadata_") && value && typeof value !== "object") {
6467
+ url.searchParams.set(key, String(value));
6468
+ }
6469
+ }
6470
+ return url.toString();
6471
+ }
6472
+ const dyn = data;
6473
+ const {
6474
+ product_id,
6475
+ product_cart,
6476
+ quantity,
6477
+ billing,
6478
+ customer,
6479
+ addons,
6480
+ metadata,
6481
+ allowed_payment_method_types,
6482
+ billing_currency,
6483
+ discount_code,
6484
+ on_demand,
6485
+ return_url: bodyReturnUrl,
6486
+ show_saved_payment_methods,
6487
+ tax_id,
6488
+ trial_period_days
6489
+ } = dyn;
6490
+ const dodopayments = new DodoPayments({
6491
+ bearerToken,
6492
+ environment
6493
+ });
6494
+ let isSubscription = false;
6495
+ let productIdToFetch = product_id;
6496
+ if (!product_id && product_cart && product_cart.length > 0) {
6497
+ productIdToFetch = product_cart[0].product_id;
6498
+ }
6499
+ if (!productIdToFetch)
6500
+ throw new Error(
6501
+ "Missing required field: product_id or product_cart[0].product_id"
6502
+ );
6503
+ let product;
6504
+ try {
6505
+ product = await dodopayments.products.retrieve(productIdToFetch);
6506
+ } catch (err) {
6507
+ console.error(err);
6508
+ throw new Error("Product not found");
6509
+ }
6510
+ isSubscription = Boolean(product.is_recurring);
6511
+ if (isSubscription && !product_id)
6512
+ throw new Error("Missing required field: product_id for subscription");
6513
+ if (!billing) throw new Error("Missing required field: billing");
6514
+ if (!customer) throw new Error("Missing required field: customer");
6515
+ if (isSubscription) {
6516
+ const subscriptionPayload = {
6517
+ billing,
6518
+ customer,
6519
+ product_id,
6520
+ quantity: quantity ? Number(quantity) : 1
6521
+ };
6522
+ if (metadata) subscriptionPayload.metadata = metadata;
6523
+ if (discount_code) subscriptionPayload.discount_code = discount_code;
6524
+ if (addons) subscriptionPayload.addons = addons;
6525
+ if (allowed_payment_method_types)
6526
+ subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;
6527
+ if (billing_currency)
6528
+ subscriptionPayload.billing_currency = billing_currency;
6529
+ if (on_demand) subscriptionPayload.on_demand = on_demand;
6530
+ subscriptionPayload.payment_link = true;
6531
+ if (bodyReturnUrl) {
6532
+ subscriptionPayload.return_url = bodyReturnUrl;
6533
+ } else if (returnUrl) {
6534
+ subscriptionPayload.return_url = returnUrl;
6535
+ }
6536
+ if (show_saved_payment_methods)
6537
+ subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;
6538
+ if (tax_id) subscriptionPayload.tax_id = tax_id;
6539
+ if (trial_period_days)
6540
+ subscriptionPayload.trial_period_days = trial_period_days;
6541
+ let subscription;
6542
+ try {
6543
+ subscription = await dodopayments.subscriptions.create(subscriptionPayload);
6544
+ } catch (err) {
6545
+ console.error("Error when creating subscription", err);
6546
+ throw new Error(err instanceof Error ? err.message : String(err));
6547
+ }
6548
+ if (!subscription || !subscription.payment_link) {
6549
+ throw new Error(
6550
+ "No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload"
6551
+ );
6552
+ }
6553
+ return subscription.payment_link;
6554
+ } else {
6555
+ let cart = product_cart;
6556
+ if (!cart && product_id) {
6557
+ cart = [
6558
+ { product_id, quantity: quantity ? Number(quantity) : 1 }
6559
+ ];
6560
+ }
6561
+ if (!cart || cart.length === 0)
6562
+ throw new Error("Missing required field: product_cart or product_id");
6563
+ const paymentPayload = {
6564
+ billing,
6565
+ customer,
6566
+ product_cart: cart
6567
+ };
6568
+ if (metadata) paymentPayload.metadata = metadata;
6569
+ paymentPayload.payment_link = true;
6570
+ if (allowed_payment_method_types)
6571
+ paymentPayload.allowed_payment_method_types = allowed_payment_method_types;
6572
+ if (billing_currency) paymentPayload.billing_currency = billing_currency;
6573
+ if (discount_code) paymentPayload.discount_code = discount_code;
6574
+ if (bodyReturnUrl) {
6575
+ paymentPayload.return_url = bodyReturnUrl;
6576
+ } else if (returnUrl) {
6577
+ paymentPayload.return_url = returnUrl;
6578
+ }
6579
+ if (show_saved_payment_methods)
6580
+ paymentPayload.show_saved_payment_methods = show_saved_payment_methods;
6581
+ if (tax_id) paymentPayload.tax_id = tax_id;
6582
+ let payment;
6583
+ try {
6584
+ payment = await dodopayments.payments.create(paymentPayload);
6585
+ } catch (err) {
6586
+ console.error("Error when creating payment link", err);
6587
+ throw new Error(err instanceof Error ? err.message : String(err));
6588
+ }
6589
+ if (!payment || !payment.payment_link) {
6590
+ throw new Error(
6591
+ "No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload."
6592
+ );
6593
+ }
6594
+ return payment.payment_link;
6595
+ }
6596
+ };
6697
6597
 
6698
6598
  const Checkout = (config) => {
6699
6599
  const getHandler = async ({ request }) => {
@@ -7668,542 +7568,422 @@ class Webhook {
7668
7568
  Webhook_1 = dist.Webhook = Webhook;
7669
7569
  Webhook.prefix = "whsec_";
7670
7570
 
7571
+ // src/schemas/webhook.ts
7671
7572
  var PaymentSchema = objectType({
7672
- payload_type: literalType("Payment"),
7673
- billing: objectType({
7674
- city: stringType().nullable(),
7675
- country: stringType().nullable(),
7676
- state: stringType().nullable(),
7677
- street: stringType().nullable(),
7678
- zipcode: stringType().nullable(),
7679
- }),
7680
- brand_id: stringType(),
7681
- business_id: stringType(),
7682
- card_issuing_country: stringType().nullable(),
7683
- card_last_four: stringType().nullable(),
7684
- card_network: stringType().nullable(),
7685
- card_type: stringType().nullable(),
7686
- created_at: stringType().transform(function (d) { return new Date(d); }),
7687
- currency: stringType(),
7688
- customer: objectType({
7689
- customer_id: stringType(),
7690
- email: stringType(),
7691
- name: stringType().nullable(),
7692
- }),
7693
- digital_products_delivered: booleanType(),
7694
- discount_id: stringType().nullable(),
7695
- disputes: arrayType(objectType({
7696
- amount: stringType(),
7697
- business_id: stringType(),
7698
- created_at: stringType().transform(function (d) { return new Date(d); }),
7699
- currency: stringType(),
7700
- dispute_id: stringType(),
7701
- dispute_stage: enumType([
7702
- "pre_dispute",
7703
- "dispute_opened",
7704
- "dispute_won",
7705
- "dispute_lost",
7706
- ]),
7707
- dispute_status: enumType([
7708
- "dispute_opened",
7709
- "dispute_won",
7710
- "dispute_lost",
7711
- "dispute_accepted",
7712
- "dispute_cancelled",
7713
- "dispute_challenged",
7714
- ]),
7715
- payment_id: stringType(),
7716
- remarks: stringType().nullable(),
7717
- }))
7718
- .nullable(),
7719
- error_code: stringType().nullable(),
7720
- error_message: stringType().nullable(),
7721
- metadata: recordType(anyType()).nullable(),
7722
- payment_id: stringType(),
7723
- payment_link: stringType().nullable(),
7724
- payment_method: stringType().nullable(),
7725
- payment_method_type: stringType().nullable(),
7726
- product_cart: arrayType(objectType({
7727
- product_id: stringType(),
7728
- quantity: numberType(),
7729
- }))
7730
- .nullable(),
7731
- refunds: arrayType(objectType({
7732
- amount: numberType(),
7733
- business_id: stringType(),
7734
- created_at: stringType().transform(function (d) { return new Date(d); }),
7735
- currency: stringType(),
7736
- is_partial: booleanType(),
7737
- payment_id: stringType(),
7738
- reason: stringType().nullable(),
7739
- refund_id: stringType(),
7740
- status: enumType(["succeeded", "failed", "pending"]),
7741
- }))
7742
- .nullable(),
7743
- settlement_amount: numberType(),
7744
- settlement_currency: stringType(),
7745
- settlement_tax: numberType().nullable(),
7746
- status: enumType(["succeeded", "failed", "pending", "processing", "cancelled"]),
7747
- subscription_id: stringType().nullable(),
7748
- tax: numberType().nullable(),
7749
- total_amount: numberType(),
7750
- updated_at: stringType()
7751
- .transform(function (d) { return new Date(d); })
7752
- .nullable(),
7753
- });
7754
- var SubscriptionSchema = objectType({
7755
- payload_type: literalType("Subscription"),
7756
- addons: arrayType(objectType({
7757
- addon_id: stringType(),
7758
- quantity: numberType(),
7759
- }))
7760
- .nullable(),
7761
- billing: objectType({
7762
- city: stringType().nullable(),
7763
- country: stringType().nullable(),
7764
- state: stringType().nullable(),
7765
- street: stringType().nullable(),
7766
- zipcode: stringType().nullable(),
7767
- }),
7768
- cancel_at_next_billing_date: booleanType(),
7769
- cancelled_at: stringType()
7770
- .transform(function (d) { return new Date(d); })
7771
- .nullable(),
7772
- created_at: stringType().transform(function (d) { return new Date(d); }),
7773
- currency: stringType(),
7774
- customer: objectType({
7775
- customer_id: stringType(),
7776
- email: stringType(),
7777
- name: stringType().nullable(),
7778
- }),
7779
- discount_id: stringType().nullable(),
7780
- metadata: recordType(anyType()).nullable(),
7781
- next_billing_date: stringType()
7782
- .transform(function (d) { return new Date(d); })
7783
- .nullable(),
7784
- on_demand: booleanType(),
7785
- payment_frequency_count: numberType(),
7786
- payment_frequency_interval: enumType(["Day", "Week", "Month", "Year"]),
7787
- previous_billing_date: stringType()
7788
- .transform(function (d) { return new Date(d); })
7789
- .nullable(),
7790
- product_id: stringType(),
7791
- quantity: numberType(),
7792
- recurring_pre_tax_amount: numberType(),
7793
- status: enumType([
7794
- "pending",
7795
- "active",
7796
- "on_hold",
7797
- "paused",
7798
- "cancelled",
7799
- "expired",
7800
- "failed",
7801
- ]),
7802
- subscription_id: stringType(),
7803
- subscription_period_count: numberType(),
7804
- subscription_period_interval: enumType(["Day", "Week", "Month", "Year"]),
7805
- tax_inclusive: booleanType(),
7806
- trial_period_days: numberType(),
7807
- });
7808
- var RefundSchema = objectType({
7809
- payload_type: literalType("Refund"),
7810
- amount: numberType(),
7811
- business_id: stringType(),
7812
- created_at: stringType().transform(function (d) { return new Date(d); }),
7813
- currency: stringType(),
7814
- is_partial: booleanType(),
7815
- payment_id: stringType(),
7816
- reason: stringType().nullable(),
7817
- refund_id: stringType(),
7818
- status: enumType(["succeeded", "failed", "pending"]),
7819
- });
7820
- var DisputeSchema = objectType({
7821
- payload_type: literalType("Dispute"),
7822
- amount: stringType(),
7823
- business_id: stringType(),
7824
- created_at: stringType().transform(function (d) { return new Date(d); }),
7825
- currency: stringType(),
7826
- dispute_id: stringType(),
7827
- dispute_stage: enumType([
7573
+ payload_type: literalType("Payment"),
7574
+ billing: objectType({
7575
+ city: stringType().nullable(),
7576
+ country: stringType().nullable(),
7577
+ state: stringType().nullable(),
7578
+ street: stringType().nullable(),
7579
+ zipcode: stringType().nullable()
7580
+ }),
7581
+ brand_id: stringType(),
7582
+ business_id: stringType(),
7583
+ card_issuing_country: stringType().nullable(),
7584
+ card_last_four: stringType().nullable(),
7585
+ card_network: stringType().nullable(),
7586
+ card_type: stringType().nullable(),
7587
+ created_at: stringType().transform((d) => new Date(d)),
7588
+ currency: stringType(),
7589
+ customer: objectType({
7590
+ customer_id: stringType(),
7591
+ email: stringType(),
7592
+ name: stringType().nullable()
7593
+ }),
7594
+ digital_products_delivered: booleanType(),
7595
+ discount_id: stringType().nullable(),
7596
+ disputes: arrayType(
7597
+ objectType({
7598
+ amount: stringType(),
7599
+ business_id: stringType(),
7600
+ created_at: stringType().transform((d) => new Date(d)),
7601
+ currency: stringType(),
7602
+ dispute_id: stringType(),
7603
+ dispute_stage: enumType([
7828
7604
  "pre_dispute",
7829
7605
  "dispute_opened",
7830
7606
  "dispute_won",
7831
- "dispute_lost",
7832
- ]),
7833
- dispute_status: enumType([
7607
+ "dispute_lost"
7608
+ ]),
7609
+ dispute_status: enumType([
7834
7610
  "dispute_opened",
7835
7611
  "dispute_won",
7836
7612
  "dispute_lost",
7837
7613
  "dispute_accepted",
7838
7614
  "dispute_cancelled",
7839
- "dispute_challenged",
7840
- ]),
7841
- payment_id: stringType(),
7842
- remarks: stringType().nullable(),
7615
+ "dispute_challenged"
7616
+ ]),
7617
+ payment_id: stringType(),
7618
+ remarks: stringType().nullable()
7619
+ })
7620
+ ).nullable(),
7621
+ error_code: stringType().nullable(),
7622
+ error_message: stringType().nullable(),
7623
+ metadata: recordType(anyType()).nullable(),
7624
+ payment_id: stringType(),
7625
+ payment_link: stringType().nullable(),
7626
+ payment_method: stringType().nullable(),
7627
+ payment_method_type: stringType().nullable(),
7628
+ product_cart: arrayType(
7629
+ objectType({
7630
+ product_id: stringType(),
7631
+ quantity: numberType()
7632
+ })
7633
+ ).nullable(),
7634
+ refunds: arrayType(
7635
+ objectType({
7636
+ amount: numberType(),
7637
+ business_id: stringType(),
7638
+ created_at: stringType().transform((d) => new Date(d)),
7639
+ currency: stringType(),
7640
+ is_partial: booleanType(),
7641
+ payment_id: stringType(),
7642
+ reason: stringType().nullable(),
7643
+ refund_id: stringType(),
7644
+ status: enumType(["succeeded", "failed", "pending"])
7645
+ })
7646
+ ).nullable(),
7647
+ settlement_amount: numberType(),
7648
+ settlement_currency: stringType(),
7649
+ settlement_tax: numberType().nullable(),
7650
+ status: enumType(["succeeded", "failed", "pending", "processing", "cancelled"]),
7651
+ subscription_id: stringType().nullable(),
7652
+ tax: numberType().nullable(),
7653
+ total_amount: numberType(),
7654
+ updated_at: stringType().transform((d) => new Date(d)).nullable()
7843
7655
  });
7844
- var LicenseKeySchema = objectType({
7845
- payload_type: literalType("LicenseKey"),
7846
- activations_limit: numberType(),
7847
- business_id: stringType(),
7848
- created_at: stringType().transform(function (d) { return new Date(d); }),
7656
+ var SubscriptionSchema = objectType({
7657
+ payload_type: literalType("Subscription"),
7658
+ addons: arrayType(
7659
+ objectType({
7660
+ addon_id: stringType(),
7661
+ quantity: numberType()
7662
+ })
7663
+ ).nullable(),
7664
+ billing: objectType({
7665
+ city: stringType().nullable(),
7666
+ country: stringType().nullable(),
7667
+ state: stringType().nullable(),
7668
+ street: stringType().nullable(),
7669
+ zipcode: stringType().nullable()
7670
+ }),
7671
+ cancel_at_next_billing_date: booleanType(),
7672
+ cancelled_at: stringType().transform((d) => new Date(d)).nullable(),
7673
+ created_at: stringType().transform((d) => new Date(d)),
7674
+ currency: stringType(),
7675
+ customer: objectType({
7849
7676
  customer_id: stringType(),
7850
- expires_at: stringType()
7851
- .transform(function (d) { return new Date(d); })
7852
- .nullable(),
7853
- id: stringType(),
7854
- instances_count: numberType(),
7855
- key: stringType(),
7856
- payment_id: stringType(),
7857
- product_id: stringType(),
7858
- status: enumType(["active", "inactive", "expired"]),
7859
- subscription_id: stringType().nullable(),
7677
+ email: stringType(),
7678
+ name: stringType().nullable()
7679
+ }),
7680
+ discount_id: stringType().nullable(),
7681
+ metadata: recordType(anyType()).nullable(),
7682
+ next_billing_date: stringType().transform((d) => new Date(d)).nullable(),
7683
+ on_demand: booleanType(),
7684
+ payment_frequency_count: numberType(),
7685
+ payment_frequency_interval: enumType(["Day", "Week", "Month", "Year"]),
7686
+ previous_billing_date: stringType().transform((d) => new Date(d)).nullable(),
7687
+ product_id: stringType(),
7688
+ quantity: numberType(),
7689
+ recurring_pre_tax_amount: numberType(),
7690
+ status: enumType([
7691
+ "pending",
7692
+ "active",
7693
+ "on_hold",
7694
+ "paused",
7695
+ "cancelled",
7696
+ "expired",
7697
+ "failed"
7698
+ ]),
7699
+ subscription_id: stringType(),
7700
+ subscription_period_count: numberType(),
7701
+ subscription_period_interval: enumType(["Day", "Week", "Month", "Year"]),
7702
+ tax_inclusive: booleanType(),
7703
+ trial_period_days: numberType()
7704
+ });
7705
+ var RefundSchema = objectType({
7706
+ payload_type: literalType("Refund"),
7707
+ amount: numberType(),
7708
+ business_id: stringType(),
7709
+ created_at: stringType().transform((d) => new Date(d)),
7710
+ currency: stringType(),
7711
+ is_partial: booleanType(),
7712
+ payment_id: stringType(),
7713
+ reason: stringType().nullable(),
7714
+ refund_id: stringType(),
7715
+ status: enumType(["succeeded", "failed", "pending"])
7716
+ });
7717
+ var DisputeSchema = objectType({
7718
+ payload_type: literalType("Dispute"),
7719
+ amount: stringType(),
7720
+ business_id: stringType(),
7721
+ created_at: stringType().transform((d) => new Date(d)),
7722
+ currency: stringType(),
7723
+ dispute_id: stringType(),
7724
+ dispute_stage: enumType([
7725
+ "pre_dispute",
7726
+ "dispute_opened",
7727
+ "dispute_won",
7728
+ "dispute_lost"
7729
+ ]),
7730
+ dispute_status: enumType([
7731
+ "dispute_opened",
7732
+ "dispute_won",
7733
+ "dispute_lost",
7734
+ "dispute_accepted",
7735
+ "dispute_cancelled",
7736
+ "dispute_challenged"
7737
+ ]),
7738
+ payment_id: stringType(),
7739
+ remarks: stringType().nullable()
7740
+ });
7741
+ var LicenseKeySchema = objectType({
7742
+ payload_type: literalType("LicenseKey"),
7743
+ activations_limit: numberType(),
7744
+ business_id: stringType(),
7745
+ created_at: stringType().transform((d) => new Date(d)),
7746
+ customer_id: stringType(),
7747
+ expires_at: stringType().transform((d) => new Date(d)).nullable(),
7748
+ id: stringType(),
7749
+ instances_count: numberType(),
7750
+ key: stringType(),
7751
+ payment_id: stringType(),
7752
+ product_id: stringType(),
7753
+ status: enumType(["active", "inactive", "expired"]),
7754
+ subscription_id: stringType().nullable()
7860
7755
  });
7861
7756
  var PaymentSucceededPayloadSchema = objectType({
7862
- business_id: stringType(),
7863
- type: literalType("payment.succeeded"),
7864
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7865
- data: PaymentSchema,
7757
+ business_id: stringType(),
7758
+ type: literalType("payment.succeeded"),
7759
+ timestamp: stringType().transform((d) => new Date(d)),
7760
+ data: PaymentSchema
7866
7761
  });
7867
7762
  var PaymentFailedPayloadSchema = objectType({
7868
- business_id: stringType(),
7869
- type: literalType("payment.failed"),
7870
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7871
- data: PaymentSchema,
7763
+ business_id: stringType(),
7764
+ type: literalType("payment.failed"),
7765
+ timestamp: stringType().transform((d) => new Date(d)),
7766
+ data: PaymentSchema
7872
7767
  });
7873
7768
  var PaymentProcessingPayloadSchema = objectType({
7874
- business_id: stringType(),
7875
- type: literalType("payment.processing"),
7876
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7877
- data: PaymentSchema,
7769
+ business_id: stringType(),
7770
+ type: literalType("payment.processing"),
7771
+ timestamp: stringType().transform((d) => new Date(d)),
7772
+ data: PaymentSchema
7878
7773
  });
7879
7774
  var PaymentCancelledPayloadSchema = objectType({
7880
- business_id: stringType(),
7881
- type: literalType("payment.cancelled"),
7882
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7883
- data: PaymentSchema,
7775
+ business_id: stringType(),
7776
+ type: literalType("payment.cancelled"),
7777
+ timestamp: stringType().transform((d) => new Date(d)),
7778
+ data: PaymentSchema
7884
7779
  });
7885
7780
  var RefundSucceededPayloadSchema = objectType({
7886
- business_id: stringType(),
7887
- type: literalType("refund.succeeded"),
7888
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7889
- data: RefundSchema,
7781
+ business_id: stringType(),
7782
+ type: literalType("refund.succeeded"),
7783
+ timestamp: stringType().transform((d) => new Date(d)),
7784
+ data: RefundSchema
7890
7785
  });
7891
7786
  var RefundFailedPayloadSchema = objectType({
7892
- business_id: stringType(),
7893
- type: literalType("refund.failed"),
7894
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7895
- data: RefundSchema,
7787
+ business_id: stringType(),
7788
+ type: literalType("refund.failed"),
7789
+ timestamp: stringType().transform((d) => new Date(d)),
7790
+ data: RefundSchema
7896
7791
  });
7897
7792
  var DisputeOpenedPayloadSchema = objectType({
7898
- business_id: stringType(),
7899
- type: literalType("dispute.opened"),
7900
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7901
- data: DisputeSchema,
7793
+ business_id: stringType(),
7794
+ type: literalType("dispute.opened"),
7795
+ timestamp: stringType().transform((d) => new Date(d)),
7796
+ data: DisputeSchema
7902
7797
  });
7903
7798
  var DisputeExpiredPayloadSchema = objectType({
7904
- business_id: stringType(),
7905
- type: literalType("dispute.expired"),
7906
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7907
- data: DisputeSchema,
7799
+ business_id: stringType(),
7800
+ type: literalType("dispute.expired"),
7801
+ timestamp: stringType().transform((d) => new Date(d)),
7802
+ data: DisputeSchema
7908
7803
  });
7909
7804
  var DisputeAcceptedPayloadSchema = objectType({
7910
- business_id: stringType(),
7911
- type: literalType("dispute.accepted"),
7912
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7913
- data: DisputeSchema,
7805
+ business_id: stringType(),
7806
+ type: literalType("dispute.accepted"),
7807
+ timestamp: stringType().transform((d) => new Date(d)),
7808
+ data: DisputeSchema
7914
7809
  });
7915
7810
  var DisputeCancelledPayloadSchema = objectType({
7916
- business_id: stringType(),
7917
- type: literalType("dispute.cancelled"),
7918
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7919
- data: DisputeSchema,
7811
+ business_id: stringType(),
7812
+ type: literalType("dispute.cancelled"),
7813
+ timestamp: stringType().transform((d) => new Date(d)),
7814
+ data: DisputeSchema
7920
7815
  });
7921
7816
  var DisputeChallengedPayloadSchema = objectType({
7922
- business_id: stringType(),
7923
- type: literalType("dispute.challenged"),
7924
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7925
- data: DisputeSchema,
7817
+ business_id: stringType(),
7818
+ type: literalType("dispute.challenged"),
7819
+ timestamp: stringType().transform((d) => new Date(d)),
7820
+ data: DisputeSchema
7926
7821
  });
7927
7822
  var DisputeWonPayloadSchema = objectType({
7928
- business_id: stringType(),
7929
- type: literalType("dispute.won"),
7930
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7931
- data: DisputeSchema,
7823
+ business_id: stringType(),
7824
+ type: literalType("dispute.won"),
7825
+ timestamp: stringType().transform((d) => new Date(d)),
7826
+ data: DisputeSchema
7932
7827
  });
7933
7828
  var DisputeLostPayloadSchema = objectType({
7934
- business_id: stringType(),
7935
- type: literalType("dispute.lost"),
7936
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7937
- data: DisputeSchema,
7829
+ business_id: stringType(),
7830
+ type: literalType("dispute.lost"),
7831
+ timestamp: stringType().transform((d) => new Date(d)),
7832
+ data: DisputeSchema
7938
7833
  });
7939
7834
  var SubscriptionActivePayloadSchema = objectType({
7940
- business_id: stringType(),
7941
- type: literalType("subscription.active"),
7942
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7943
- data: SubscriptionSchema,
7835
+ business_id: stringType(),
7836
+ type: literalType("subscription.active"),
7837
+ timestamp: stringType().transform((d) => new Date(d)),
7838
+ data: SubscriptionSchema
7944
7839
  });
7945
7840
  var SubscriptionOnHoldPayloadSchema = objectType({
7946
- business_id: stringType(),
7947
- type: literalType("subscription.on_hold"),
7948
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7949
- data: SubscriptionSchema,
7841
+ business_id: stringType(),
7842
+ type: literalType("subscription.on_hold"),
7843
+ timestamp: stringType().transform((d) => new Date(d)),
7844
+ data: SubscriptionSchema
7950
7845
  });
7951
7846
  var SubscriptionRenewedPayloadSchema = objectType({
7952
- business_id: stringType(),
7953
- type: literalType("subscription.renewed"),
7954
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7955
- data: SubscriptionSchema,
7847
+ business_id: stringType(),
7848
+ type: literalType("subscription.renewed"),
7849
+ timestamp: stringType().transform((d) => new Date(d)),
7850
+ data: SubscriptionSchema
7956
7851
  });
7957
7852
  var SubscriptionPausedPayloadSchema = objectType({
7958
- business_id: stringType(),
7959
- type: literalType("subscription.paused"),
7960
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7961
- data: SubscriptionSchema,
7853
+ business_id: stringType(),
7854
+ type: literalType("subscription.paused"),
7855
+ timestamp: stringType().transform((d) => new Date(d)),
7856
+ data: SubscriptionSchema
7962
7857
  });
7963
7858
  var SubscriptionPlanChangedPayloadSchema = objectType({
7964
- business_id: stringType(),
7965
- type: literalType("subscription.plan_changed"),
7966
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7967
- data: SubscriptionSchema,
7859
+ business_id: stringType(),
7860
+ type: literalType("subscription.plan_changed"),
7861
+ timestamp: stringType().transform((d) => new Date(d)),
7862
+ data: SubscriptionSchema
7968
7863
  });
7969
7864
  var SubscriptionCancelledPayloadSchema = objectType({
7970
- business_id: stringType(),
7971
- type: literalType("subscription.cancelled"),
7972
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7973
- data: SubscriptionSchema,
7865
+ business_id: stringType(),
7866
+ type: literalType("subscription.cancelled"),
7867
+ timestamp: stringType().transform((d) => new Date(d)),
7868
+ data: SubscriptionSchema
7974
7869
  });
7975
7870
  var SubscriptionFailedPayloadSchema = objectType({
7976
- business_id: stringType(),
7977
- type: literalType("subscription.failed"),
7978
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7979
- data: SubscriptionSchema,
7871
+ business_id: stringType(),
7872
+ type: literalType("subscription.failed"),
7873
+ timestamp: stringType().transform((d) => new Date(d)),
7874
+ data: SubscriptionSchema
7980
7875
  });
7981
7876
  var SubscriptionExpiredPayloadSchema = objectType({
7982
- business_id: stringType(),
7983
- type: literalType("subscription.expired"),
7984
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7985
- data: SubscriptionSchema,
7877
+ business_id: stringType(),
7878
+ type: literalType("subscription.expired"),
7879
+ timestamp: stringType().transform((d) => new Date(d)),
7880
+ data: SubscriptionSchema
7986
7881
  });
7987
7882
  var LicenseKeyCreatedPayloadSchema = objectType({
7988
- business_id: stringType(),
7989
- type: literalType("license_key.created"),
7990
- timestamp: stringType().transform(function (d) { return new Date(d); }),
7991
- data: LicenseKeySchema,
7883
+ business_id: stringType(),
7884
+ type: literalType("license_key.created"),
7885
+ timestamp: stringType().transform((d) => new Date(d)),
7886
+ data: LicenseKeySchema
7992
7887
  });
7993
7888
  var WebhookPayloadSchema = discriminatedUnionType("type", [
7994
- PaymentSucceededPayloadSchema,
7995
- PaymentFailedPayloadSchema,
7996
- PaymentProcessingPayloadSchema,
7997
- PaymentCancelledPayloadSchema,
7998
- RefundSucceededPayloadSchema,
7999
- RefundFailedPayloadSchema,
8000
- DisputeOpenedPayloadSchema,
8001
- DisputeExpiredPayloadSchema,
8002
- DisputeAcceptedPayloadSchema,
8003
- DisputeCancelledPayloadSchema,
8004
- DisputeChallengedPayloadSchema,
8005
- DisputeWonPayloadSchema,
8006
- DisputeLostPayloadSchema,
8007
- SubscriptionActivePayloadSchema,
8008
- SubscriptionOnHoldPayloadSchema,
8009
- SubscriptionRenewedPayloadSchema,
8010
- SubscriptionPausedPayloadSchema,
8011
- SubscriptionPlanChangedPayloadSchema,
8012
- SubscriptionCancelledPayloadSchema,
8013
- SubscriptionFailedPayloadSchema,
8014
- SubscriptionExpiredPayloadSchema,
8015
- LicenseKeyCreatedPayloadSchema,
7889
+ PaymentSucceededPayloadSchema,
7890
+ PaymentFailedPayloadSchema,
7891
+ PaymentProcessingPayloadSchema,
7892
+ PaymentCancelledPayloadSchema,
7893
+ RefundSucceededPayloadSchema,
7894
+ RefundFailedPayloadSchema,
7895
+ DisputeOpenedPayloadSchema,
7896
+ DisputeExpiredPayloadSchema,
7897
+ DisputeAcceptedPayloadSchema,
7898
+ DisputeCancelledPayloadSchema,
7899
+ DisputeChallengedPayloadSchema,
7900
+ DisputeWonPayloadSchema,
7901
+ DisputeLostPayloadSchema,
7902
+ SubscriptionActivePayloadSchema,
7903
+ SubscriptionOnHoldPayloadSchema,
7904
+ SubscriptionRenewedPayloadSchema,
7905
+ SubscriptionPausedPayloadSchema,
7906
+ SubscriptionPlanChangedPayloadSchema,
7907
+ SubscriptionCancelledPayloadSchema,
7908
+ SubscriptionFailedPayloadSchema,
7909
+ SubscriptionExpiredPayloadSchema,
7910
+ LicenseKeyCreatedPayloadSchema
8016
7911
  ]);
8017
7912
 
8018
- var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
8019
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8020
- return new (P || (P = Promise))(function (resolve, reject) {
8021
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8022
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8023
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8024
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8025
- });
8026
- };
8027
- var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
8028
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
8029
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
8030
- function verb(n) { return function (v) { return step([n, v]); }; }
8031
- function step(op) {
8032
- if (f) throw new TypeError("Generator is already executing.");
8033
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
8034
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
8035
- if (y = 0, t) op = [op[0] & 2, t.value];
8036
- switch (op[0]) {
8037
- case 0: case 1: t = op; break;
8038
- case 4: _.label++; return { value: op[1], done: false };
8039
- case 5: _.label++; y = op[1]; op = [0]; continue;
8040
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
8041
- default:
8042
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
8043
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
8044
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
8045
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
8046
- if (t[2]) _.ops.pop();
8047
- _.trys.pop(); continue;
8048
- }
8049
- op = body.call(thisArg, _);
8050
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
8051
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
8052
- }
8053
- };
8054
- // Implementation
8055
- function handleWebhookPayload(payload, config, context) {
8056
- return __awaiter(this, void 0, void 0, function () {
8057
- var callHandler;
8058
- return __generator(this, function (_a) {
8059
- switch (_a.label) {
8060
- case 0:
8061
- callHandler = function (handler, payload) {
8062
- if (!handler)
8063
- return;
8064
- return handler(payload);
8065
- };
8066
- if (!config.onPayload) return [3 /*break*/, 2];
8067
- return [4 /*yield*/, callHandler(config.onPayload, payload)];
8068
- case 1:
8069
- _a.sent();
8070
- _a.label = 2;
8071
- case 2:
8072
- if (!(payload.type === "payment.succeeded")) return [3 /*break*/, 4];
8073
- return [4 /*yield*/, callHandler(config.onPaymentSucceeded, payload)];
8074
- case 3:
8075
- _a.sent();
8076
- _a.label = 4;
8077
- case 4:
8078
- if (!(payload.type === "payment.failed")) return [3 /*break*/, 6];
8079
- return [4 /*yield*/, callHandler(config.onPaymentFailed, payload)];
8080
- case 5:
8081
- _a.sent();
8082
- _a.label = 6;
8083
- case 6:
8084
- if (!(payload.type === "payment.processing")) return [3 /*break*/, 8];
8085
- return [4 /*yield*/, callHandler(config.onPaymentProcessing, payload)];
8086
- case 7:
8087
- _a.sent();
8088
- _a.label = 8;
8089
- case 8:
8090
- if (!(payload.type === "payment.cancelled")) return [3 /*break*/, 10];
8091
- return [4 /*yield*/, callHandler(config.onPaymentCancelled, payload)];
8092
- case 9:
8093
- _a.sent();
8094
- _a.label = 10;
8095
- case 10:
8096
- if (!(payload.type === "refund.succeeded")) return [3 /*break*/, 12];
8097
- return [4 /*yield*/, callHandler(config.onRefundSucceeded, payload)];
8098
- case 11:
8099
- _a.sent();
8100
- _a.label = 12;
8101
- case 12:
8102
- if (!(payload.type === "refund.failed")) return [3 /*break*/, 14];
8103
- return [4 /*yield*/, callHandler(config.onRefundFailed, payload)];
8104
- case 13:
8105
- _a.sent();
8106
- _a.label = 14;
8107
- case 14:
8108
- if (!(payload.type === "dispute.opened")) return [3 /*break*/, 16];
8109
- return [4 /*yield*/, callHandler(config.onDisputeOpened, payload)];
8110
- case 15:
8111
- _a.sent();
8112
- _a.label = 16;
8113
- case 16:
8114
- if (!(payload.type === "dispute.expired")) return [3 /*break*/, 18];
8115
- return [4 /*yield*/, callHandler(config.onDisputeExpired, payload)];
8116
- case 17:
8117
- _a.sent();
8118
- _a.label = 18;
8119
- case 18:
8120
- if (!(payload.type === "dispute.accepted")) return [3 /*break*/, 20];
8121
- return [4 /*yield*/, callHandler(config.onDisputeAccepted, payload)];
8122
- case 19:
8123
- _a.sent();
8124
- _a.label = 20;
8125
- case 20:
8126
- if (!(payload.type === "dispute.cancelled")) return [3 /*break*/, 22];
8127
- return [4 /*yield*/, callHandler(config.onDisputeCancelled, payload)];
8128
- case 21:
8129
- _a.sent();
8130
- _a.label = 22;
8131
- case 22:
8132
- if (!(payload.type === "dispute.challenged")) return [3 /*break*/, 24];
8133
- return [4 /*yield*/, callHandler(config.onDisputeChallenged, payload)];
8134
- case 23:
8135
- _a.sent();
8136
- _a.label = 24;
8137
- case 24:
8138
- if (!(payload.type === "dispute.won")) return [3 /*break*/, 26];
8139
- return [4 /*yield*/, callHandler(config.onDisputeWon, payload)];
8140
- case 25:
8141
- _a.sent();
8142
- _a.label = 26;
8143
- case 26:
8144
- if (!(payload.type === "dispute.lost")) return [3 /*break*/, 28];
8145
- return [4 /*yield*/, callHandler(config.onDisputeLost, payload)];
8146
- case 27:
8147
- _a.sent();
8148
- _a.label = 28;
8149
- case 28:
8150
- if (!(payload.type === "subscription.active")) return [3 /*break*/, 30];
8151
- return [4 /*yield*/, callHandler(config.onSubscriptionActive, payload)];
8152
- case 29:
8153
- _a.sent();
8154
- _a.label = 30;
8155
- case 30:
8156
- if (!(payload.type === "subscription.on_hold")) return [3 /*break*/, 32];
8157
- return [4 /*yield*/, callHandler(config.onSubscriptionOnHold, payload)];
8158
- case 31:
8159
- _a.sent();
8160
- _a.label = 32;
8161
- case 32:
8162
- if (!(payload.type === "subscription.renewed")) return [3 /*break*/, 34];
8163
- return [4 /*yield*/, callHandler(config.onSubscriptionRenewed, payload)];
8164
- case 33:
8165
- _a.sent();
8166
- _a.label = 34;
8167
- case 34:
8168
- if (!(payload.type === "subscription.paused")) return [3 /*break*/, 36];
8169
- return [4 /*yield*/, callHandler(config.onSubscriptionPaused, payload)];
8170
- case 35:
8171
- _a.sent();
8172
- _a.label = 36;
8173
- case 36:
8174
- if (!(payload.type === "subscription.plan_changed")) return [3 /*break*/, 38];
8175
- return [4 /*yield*/, callHandler(config.onSubscriptionPlanChanged, payload)];
8176
- case 37:
8177
- _a.sent();
8178
- _a.label = 38;
8179
- case 38:
8180
- if (!(payload.type === "subscription.cancelled")) return [3 /*break*/, 40];
8181
- return [4 /*yield*/, callHandler(config.onSubscriptionCancelled, payload)];
8182
- case 39:
8183
- _a.sent();
8184
- _a.label = 40;
8185
- case 40:
8186
- if (!(payload.type === "subscription.failed")) return [3 /*break*/, 42];
8187
- return [4 /*yield*/, callHandler(config.onSubscriptionFailed, payload)];
8188
- case 41:
8189
- _a.sent();
8190
- _a.label = 42;
8191
- case 42:
8192
- if (!(payload.type === "subscription.expired")) return [3 /*break*/, 44];
8193
- return [4 /*yield*/, callHandler(config.onSubscriptionExpired, payload)];
8194
- case 43:
8195
- _a.sent();
8196
- _a.label = 44;
8197
- case 44:
8198
- if (!(payload.type === "license_key.created")) return [3 /*break*/, 46];
8199
- return [4 /*yield*/, callHandler(config.onLicenseKeyCreated, payload)];
8200
- case 45:
8201
- _a.sent();
8202
- _a.label = 46;
8203
- case 46: return [2 /*return*/];
8204
- }
8205
- });
8206
- });
7913
+ async function handleWebhookPayload(payload, config, context) {
7914
+ const callHandler = (handler, payload2) => {
7915
+ if (!handler) return;
7916
+ return handler(payload2);
7917
+ };
7918
+ if (config.onPayload) {
7919
+ await callHandler(config.onPayload, payload);
7920
+ }
7921
+ if (payload.type === "payment.succeeded") {
7922
+ await callHandler(config.onPaymentSucceeded, payload);
7923
+ }
7924
+ if (payload.type === "payment.failed") {
7925
+ await callHandler(config.onPaymentFailed, payload);
7926
+ }
7927
+ if (payload.type === "payment.processing") {
7928
+ await callHandler(config.onPaymentProcessing, payload);
7929
+ }
7930
+ if (payload.type === "payment.cancelled") {
7931
+ await callHandler(config.onPaymentCancelled, payload);
7932
+ }
7933
+ if (payload.type === "refund.succeeded") {
7934
+ await callHandler(config.onRefundSucceeded, payload);
7935
+ }
7936
+ if (payload.type === "refund.failed") {
7937
+ await callHandler(config.onRefundFailed, payload);
7938
+ }
7939
+ if (payload.type === "dispute.opened") {
7940
+ await callHandler(config.onDisputeOpened, payload);
7941
+ }
7942
+ if (payload.type === "dispute.expired") {
7943
+ await callHandler(config.onDisputeExpired, payload);
7944
+ }
7945
+ if (payload.type === "dispute.accepted") {
7946
+ await callHandler(config.onDisputeAccepted, payload);
7947
+ }
7948
+ if (payload.type === "dispute.cancelled") {
7949
+ await callHandler(config.onDisputeCancelled, payload);
7950
+ }
7951
+ if (payload.type === "dispute.challenged") {
7952
+ await callHandler(config.onDisputeChallenged, payload);
7953
+ }
7954
+ if (payload.type === "dispute.won") {
7955
+ await callHandler(config.onDisputeWon, payload);
7956
+ }
7957
+ if (payload.type === "dispute.lost") {
7958
+ await callHandler(config.onDisputeLost, payload);
7959
+ }
7960
+ if (payload.type === "subscription.active") {
7961
+ await callHandler(config.onSubscriptionActive, payload);
7962
+ }
7963
+ if (payload.type === "subscription.on_hold") {
7964
+ await callHandler(config.onSubscriptionOnHold, payload);
7965
+ }
7966
+ if (payload.type === "subscription.renewed") {
7967
+ await callHandler(config.onSubscriptionRenewed, payload);
7968
+ }
7969
+ if (payload.type === "subscription.paused") {
7970
+ await callHandler(config.onSubscriptionPaused, payload);
7971
+ }
7972
+ if (payload.type === "subscription.plan_changed") {
7973
+ await callHandler(config.onSubscriptionPlanChanged, payload);
7974
+ }
7975
+ if (payload.type === "subscription.cancelled") {
7976
+ await callHandler(config.onSubscriptionCancelled, payload);
7977
+ }
7978
+ if (payload.type === "subscription.failed") {
7979
+ await callHandler(config.onSubscriptionFailed, payload);
7980
+ }
7981
+ if (payload.type === "subscription.expired") {
7982
+ await callHandler(config.onSubscriptionExpired, payload);
7983
+ }
7984
+ if (payload.type === "license_key.created") {
7985
+ await callHandler(config.onLicenseKeyCreated, payload);
7986
+ }
8207
7987
  }
8208
7988
 
8209
7989
  const Webhooks = ({ webhookKey, ...eventHandlers }) => {