@dodopayments/convex 0.2.1 → 0.2.3

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.
@@ -0,0 +1,432 @@
1
+ import DodoPayments from 'dodopayments';
2
+ import { object as objectType, string as stringType, unknown as unknownType, record as recordType, array as arrayType, number as numberType, enum as enumType, boolean as booleanType } from '../../../node_modules/zod/v3/types.js';
3
+
4
+ // src/checkout/checkout.ts
5
+ var checkoutQuerySchema = objectType({
6
+ productId: stringType(),
7
+ quantity: stringType().optional(),
8
+ // Customer fields
9
+ fullName: stringType().optional(),
10
+ firstName: stringType().optional(),
11
+ lastName: stringType().optional(),
12
+ email: stringType().optional(),
13
+ country: stringType().optional(),
14
+ addressLine: stringType().optional(),
15
+ city: stringType().optional(),
16
+ state: stringType().optional(),
17
+ zipCode: stringType().optional(),
18
+ // Disable flags
19
+ disableFullName: stringType().optional(),
20
+ disableFirstName: stringType().optional(),
21
+ disableLastName: stringType().optional(),
22
+ disableEmail: stringType().optional(),
23
+ disableCountry: stringType().optional(),
24
+ disableAddressLine: stringType().optional(),
25
+ disableCity: stringType().optional(),
26
+ disableState: stringType().optional(),
27
+ disableZipCode: stringType().optional(),
28
+ // Advanced controls
29
+ paymentCurrency: stringType().optional(),
30
+ showCurrencySelector: stringType().optional(),
31
+ paymentAmount: stringType().optional(),
32
+ showDiscounts: stringType().optional()
33
+ // Metadata (allow any key starting with metadata_)
34
+ // We'll handle metadata separately in the handler
35
+ }).catchall(unknownType());
36
+ var dynamicCheckoutBodySchema = objectType({
37
+ // For subscription
38
+ product_id: stringType().optional(),
39
+ quantity: numberType().optional(),
40
+ // For one-time payment
41
+ product_cart: arrayType(
42
+ objectType({
43
+ product_id: stringType(),
44
+ quantity: numberType()
45
+ })
46
+ ).optional(),
47
+ // Common fields
48
+ billing: objectType({
49
+ city: stringType(),
50
+ country: stringType(),
51
+ state: stringType(),
52
+ street: stringType(),
53
+ zipcode: stringType()
54
+ }),
55
+ customer: objectType({
56
+ customer_id: stringType().optional(),
57
+ email: stringType().optional(),
58
+ name: stringType().optional()
59
+ }),
60
+ discount_id: stringType().optional(),
61
+ addons: arrayType(
62
+ objectType({
63
+ addon_id: stringType(),
64
+ quantity: numberType()
65
+ })
66
+ ).optional(),
67
+ metadata: recordType(stringType(), stringType()).optional(),
68
+ currency: stringType().optional()
69
+ // Allow any additional fields (for future compatibility)
70
+ }).catchall(unknownType());
71
+ var checkoutSessionProductCartItemSchema = objectType({
72
+ product_id: stringType().min(1, "Product ID is required"),
73
+ quantity: numberType().int().positive("Quantity must be a positive integer")
74
+ });
75
+ var checkoutSessionCustomerSchema = objectType({
76
+ email: stringType().email().optional(),
77
+ name: stringType().min(1).optional(),
78
+ phone_number: stringType().optional()
79
+ }).optional();
80
+ var checkoutSessionBillingAddressSchema = objectType({
81
+ street: stringType().optional(),
82
+ city: stringType().optional(),
83
+ state: stringType().optional(),
84
+ country: stringType().length(2, "Country must be a 2-letter ISO code"),
85
+ zipcode: stringType().optional()
86
+ }).optional();
87
+ var paymentMethodTypeSchema = enumType([
88
+ "credit",
89
+ "debit",
90
+ "upi_collect",
91
+ "upi_intent",
92
+ "apple_pay",
93
+ "google_pay",
94
+ "amazon_pay",
95
+ "klarna",
96
+ "affirm",
97
+ "afterpay_clearpay",
98
+ "sepa",
99
+ "ach"
100
+ ]);
101
+ var checkoutSessionCustomizationSchema = objectType({
102
+ theme: enumType(["light", "dark", "system"]).optional(),
103
+ show_order_details: booleanType().optional(),
104
+ show_on_demand_tag: booleanType().optional()
105
+ }).optional();
106
+ var checkoutSessionFeatureFlagsSchema = objectType({
107
+ allow_currency_selection: booleanType().optional(),
108
+ allow_discount_code: booleanType().optional(),
109
+ allow_phone_number_collection: booleanType().optional(),
110
+ allow_tax_id: booleanType().optional(),
111
+ always_create_new_customer: booleanType().optional()
112
+ }).optional();
113
+ var checkoutSessionSubscriptionDataSchema = objectType({
114
+ trial_period_days: numberType().int().nonnegative().optional()
115
+ }).optional();
116
+ var checkoutSessionPayloadSchema = objectType({
117
+ // Required fields
118
+ product_cart: arrayType(checkoutSessionProductCartItemSchema).min(1, "At least one product is required"),
119
+ // Optional fields
120
+ customer: checkoutSessionCustomerSchema,
121
+ billing_address: checkoutSessionBillingAddressSchema,
122
+ return_url: stringType().url().optional(),
123
+ allowed_payment_method_types: arrayType(paymentMethodTypeSchema).optional(),
124
+ billing_currency: stringType().length(3, "Currency must be a 3-letter ISO code").optional(),
125
+ show_saved_payment_methods: booleanType().optional(),
126
+ confirm: booleanType().optional(),
127
+ discount_code: stringType().optional(),
128
+ metadata: recordType(stringType(), stringType()).optional(),
129
+ customization: checkoutSessionCustomizationSchema,
130
+ feature_flags: checkoutSessionFeatureFlagsSchema,
131
+ subscription_data: checkoutSessionSubscriptionDataSchema
132
+ });
133
+ var checkoutSessionResponseSchema = objectType({
134
+ session_id: stringType().min(1, "Session ID is required"),
135
+ checkout_url: stringType().url("Invalid checkout URL")
136
+ });
137
+ var createCheckoutSession = async (payload, config) => {
138
+ const validation = checkoutSessionPayloadSchema.safeParse(payload);
139
+ if (!validation.success) {
140
+ throw new Error(
141
+ `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`).join(", ")}`
142
+ );
143
+ }
144
+ const dodopayments = new DodoPayments({
145
+ bearerToken: config.bearerToken,
146
+ environment: config.environment
147
+ });
148
+ try {
149
+ const sdkPayload = {
150
+ ...validation.data,
151
+ ...validation.data.billing_address && {
152
+ billing_address: {
153
+ ...validation.data.billing_address,
154
+ country: validation.data.billing_address.country
155
+ }
156
+ }
157
+ };
158
+ const session = await dodopayments.checkoutSessions.create(
159
+ sdkPayload
160
+ );
161
+ const responseValidation = checkoutSessionResponseSchema.safeParse(session);
162
+ if (!responseValidation.success) {
163
+ throw new Error(
164
+ `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`).join(", ")}`
165
+ );
166
+ }
167
+ return responseValidation.data;
168
+ } catch (error) {
169
+ if (error instanceof Error) {
170
+ console.error("Dodo Payments Checkout Session API Error:", {
171
+ message: error.message,
172
+ payload: validation.data,
173
+ config: {
174
+ environment: config.environment,
175
+ hasBearerToken: !!config.bearerToken
176
+ }
177
+ });
178
+ throw new Error(`Failed to create checkout session: ${error.message}`);
179
+ }
180
+ console.error("Unknown error creating checkout session:", error);
181
+ throw new Error(
182
+ "Failed to create checkout session due to an unknown error"
183
+ );
184
+ }
185
+ };
186
+ var buildCheckoutUrl = async ({
187
+ queryParams,
188
+ body,
189
+ sessionPayload,
190
+ returnUrl,
191
+ bearerToken,
192
+ environment,
193
+ type = "static"
194
+ }) => {
195
+ if (type === "session") {
196
+ if (!sessionPayload) {
197
+ throw new Error("sessionPayload is required when type is 'session'");
198
+ }
199
+ const session = await createCheckoutSession(sessionPayload, {
200
+ bearerToken,
201
+ environment
202
+ });
203
+ return session.checkout_url;
204
+ }
205
+ const inputData = type === "dynamic" ? body : queryParams;
206
+ let parseResult;
207
+ if (type === "dynamic") {
208
+ parseResult = dynamicCheckoutBodySchema.safeParse(inputData);
209
+ } else {
210
+ parseResult = checkoutQuerySchema.safeParse(inputData);
211
+ }
212
+ const { success, data, error } = parseResult;
213
+ if (!success) {
214
+ throw new Error(
215
+ `Invalid ${type === "dynamic" ? "body" : "query parameters"}.
216
+ ${error.message}`
217
+ );
218
+ }
219
+ if (type !== "dynamic") {
220
+ const {
221
+ productId,
222
+ quantity: quantity2,
223
+ fullName,
224
+ firstName,
225
+ lastName,
226
+ email,
227
+ country,
228
+ addressLine,
229
+ city,
230
+ state,
231
+ zipCode,
232
+ disableFullName,
233
+ disableFirstName,
234
+ disableLastName,
235
+ disableEmail,
236
+ disableCountry,
237
+ disableAddressLine,
238
+ disableCity,
239
+ disableState,
240
+ disableZipCode,
241
+ paymentCurrency,
242
+ showCurrencySelector,
243
+ paymentAmount,
244
+ showDiscounts
245
+ // metadata handled below
246
+ } = data;
247
+ const dodopayments2 = new DodoPayments({
248
+ bearerToken,
249
+ environment
250
+ });
251
+ if (!productId) throw new Error("Missing required field: productId");
252
+ try {
253
+ await dodopayments2.products.retrieve(productId);
254
+ } catch (err) {
255
+ console.error(err);
256
+ throw new Error("Product not found");
257
+ }
258
+ const url = new URL(
259
+ `${environment === "test_mode" ? "https://test.checkout.dodopayments.com" : "https://checkout.dodopayments.com"}/buy/${productId}`
260
+ );
261
+ url.searchParams.set("quantity", quantity2 ? String(quantity2) : "1");
262
+ if (returnUrl) url.searchParams.set("redirect_url", returnUrl);
263
+ if (fullName) url.searchParams.set("fullName", String(fullName));
264
+ if (firstName) url.searchParams.set("firstName", String(firstName));
265
+ if (lastName) url.searchParams.set("lastName", String(lastName));
266
+ if (email) url.searchParams.set("email", String(email));
267
+ if (country) url.searchParams.set("country", String(country));
268
+ if (addressLine) url.searchParams.set("addressLine", String(addressLine));
269
+ if (city) url.searchParams.set("city", String(city));
270
+ if (state) url.searchParams.set("state", String(state));
271
+ if (zipCode) url.searchParams.set("zipCode", String(zipCode));
272
+ if (disableFullName === "true")
273
+ url.searchParams.set("disableFullName", "true");
274
+ if (disableFirstName === "true")
275
+ url.searchParams.set("disableFirstName", "true");
276
+ if (disableLastName === "true")
277
+ url.searchParams.set("disableLastName", "true");
278
+ if (disableEmail === "true") url.searchParams.set("disableEmail", "true");
279
+ if (disableCountry === "true")
280
+ url.searchParams.set("disableCountry", "true");
281
+ if (disableAddressLine === "true")
282
+ url.searchParams.set("disableAddressLine", "true");
283
+ if (disableCity === "true") url.searchParams.set("disableCity", "true");
284
+ if (disableState === "true") url.searchParams.set("disableState", "true");
285
+ if (disableZipCode === "true")
286
+ url.searchParams.set("disableZipCode", "true");
287
+ if (paymentCurrency)
288
+ url.searchParams.set("paymentCurrency", String(paymentCurrency));
289
+ if (showCurrencySelector)
290
+ url.searchParams.set(
291
+ "showCurrencySelector",
292
+ String(showCurrencySelector)
293
+ );
294
+ if (paymentAmount)
295
+ url.searchParams.set("paymentAmount", String(paymentAmount));
296
+ if (showDiscounts)
297
+ url.searchParams.set("showDiscounts", String(showDiscounts));
298
+ for (const [key, value] of Object.entries(queryParams || {})) {
299
+ if (key.startsWith("metadata_") && value && typeof value !== "object") {
300
+ url.searchParams.set(key, String(value));
301
+ }
302
+ }
303
+ return url.toString();
304
+ }
305
+ const dyn = data;
306
+ const {
307
+ product_id,
308
+ product_cart,
309
+ quantity,
310
+ billing,
311
+ customer,
312
+ addons,
313
+ metadata,
314
+ allowed_payment_method_types,
315
+ billing_currency,
316
+ discount_code,
317
+ on_demand,
318
+ return_url: bodyReturnUrl,
319
+ show_saved_payment_methods,
320
+ tax_id,
321
+ trial_period_days
322
+ } = dyn;
323
+ const dodopayments = new DodoPayments({
324
+ bearerToken,
325
+ environment
326
+ });
327
+ let isSubscription = false;
328
+ let productIdToFetch = product_id;
329
+ if (!product_id && product_cart && product_cart.length > 0) {
330
+ productIdToFetch = product_cart[0].product_id;
331
+ }
332
+ if (!productIdToFetch)
333
+ throw new Error(
334
+ "Missing required field: product_id or product_cart[0].product_id"
335
+ );
336
+ let product;
337
+ try {
338
+ product = await dodopayments.products.retrieve(productIdToFetch);
339
+ } catch (err) {
340
+ console.error(err);
341
+ throw new Error("Product not found");
342
+ }
343
+ isSubscription = Boolean(product.is_recurring);
344
+ if (isSubscription && !product_id)
345
+ throw new Error("Missing required field: product_id for subscription");
346
+ if (!billing) throw new Error("Missing required field: billing");
347
+ if (!customer) throw new Error("Missing required field: customer");
348
+ if (isSubscription) {
349
+ const subscriptionPayload = {
350
+ billing,
351
+ customer,
352
+ product_id,
353
+ quantity: quantity ? Number(quantity) : 1
354
+ };
355
+ if (metadata) subscriptionPayload.metadata = metadata;
356
+ if (discount_code) subscriptionPayload.discount_code = discount_code;
357
+ if (addons) subscriptionPayload.addons = addons;
358
+ if (allowed_payment_method_types)
359
+ subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;
360
+ if (billing_currency)
361
+ subscriptionPayload.billing_currency = billing_currency;
362
+ if (on_demand) subscriptionPayload.on_demand = on_demand;
363
+ subscriptionPayload.payment_link = true;
364
+ if (bodyReturnUrl) {
365
+ subscriptionPayload.return_url = bodyReturnUrl;
366
+ } else if (returnUrl) {
367
+ subscriptionPayload.return_url = returnUrl;
368
+ }
369
+ if (show_saved_payment_methods)
370
+ subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;
371
+ if (tax_id) subscriptionPayload.tax_id = tax_id;
372
+ if (trial_period_days)
373
+ subscriptionPayload.trial_period_days = trial_period_days;
374
+ let subscription;
375
+ try {
376
+ subscription = await dodopayments.subscriptions.create(subscriptionPayload);
377
+ } catch (err) {
378
+ console.error("Error when creating subscription", err);
379
+ throw new Error(err instanceof Error ? err.message : String(err));
380
+ }
381
+ if (!subscription || !subscription.payment_link) {
382
+ throw new Error(
383
+ "No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload"
384
+ );
385
+ }
386
+ return subscription.payment_link;
387
+ } else {
388
+ let cart = product_cart;
389
+ if (!cart && product_id) {
390
+ cart = [
391
+ { product_id, quantity: quantity ? Number(quantity) : 1 }
392
+ ];
393
+ }
394
+ if (!cart || cart.length === 0)
395
+ throw new Error("Missing required field: product_cart or product_id");
396
+ const paymentPayload = {
397
+ billing,
398
+ customer,
399
+ product_cart: cart
400
+ };
401
+ if (metadata) paymentPayload.metadata = metadata;
402
+ paymentPayload.payment_link = true;
403
+ if (allowed_payment_method_types)
404
+ paymentPayload.allowed_payment_method_types = allowed_payment_method_types;
405
+ if (billing_currency) paymentPayload.billing_currency = billing_currency;
406
+ if (discount_code) paymentPayload.discount_code = discount_code;
407
+ if (bodyReturnUrl) {
408
+ paymentPayload.return_url = bodyReturnUrl;
409
+ } else if (returnUrl) {
410
+ paymentPayload.return_url = returnUrl;
411
+ }
412
+ if (show_saved_payment_methods)
413
+ paymentPayload.show_saved_payment_methods = show_saved_payment_methods;
414
+ if (tax_id) paymentPayload.tax_id = tax_id;
415
+ let payment;
416
+ try {
417
+ payment = await dodopayments.payments.create(paymentPayload);
418
+ } catch (err) {
419
+ console.error("Error when creating payment link", err);
420
+ throw new Error(err instanceof Error ? err.message : String(err));
421
+ }
422
+ if (!payment || !payment.payment_link) {
423
+ throw new Error(
424
+ "No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload."
425
+ );
426
+ }
427
+ return payment.payment_link;
428
+ }
429
+ };
430
+
431
+ export { buildCheckoutUrl, checkoutQuerySchema, checkoutSessionBillingAddressSchema, checkoutSessionCustomerSchema, checkoutSessionCustomizationSchema, checkoutSessionFeatureFlagsSchema, checkoutSessionPayloadSchema, checkoutSessionProductCartItemSchema, checkoutSessionResponseSchema, checkoutSessionSubscriptionDataSchema, createCheckoutSession, dynamicCheckoutBodySchema, paymentMethodTypeSchema };
432
+ //# sourceMappingURL=chunk-YWHOVR2R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-YWHOVR2R.js","sources":["../../../../../core/dist/chunk-YWHOVR2R.js"],"sourcesContent":["// src/checkout/checkout.ts\nimport { z } from \"zod/v3\";\nimport DodoPayments from \"dodopayments\";\nvar checkoutQuerySchema = z.object({\n productId: z.string(),\n quantity: z.string().optional(),\n // Customer fields\n fullName: z.string().optional(),\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n email: z.string().optional(),\n country: z.string().optional(),\n addressLine: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n zipCode: z.string().optional(),\n // Disable flags\n disableFullName: z.string().optional(),\n disableFirstName: z.string().optional(),\n disableLastName: z.string().optional(),\n disableEmail: z.string().optional(),\n disableCountry: z.string().optional(),\n disableAddressLine: z.string().optional(),\n disableCity: z.string().optional(),\n disableState: z.string().optional(),\n disableZipCode: z.string().optional(),\n // Advanced controls\n paymentCurrency: z.string().optional(),\n showCurrencySelector: z.string().optional(),\n paymentAmount: z.string().optional(),\n showDiscounts: z.string().optional()\n // Metadata (allow any key starting with metadata_)\n // We'll handle metadata separately in the handler\n}).catchall(z.unknown());\nvar dynamicCheckoutBodySchema = z.object({\n // For subscription\n product_id: z.string().optional(),\n quantity: z.number().optional(),\n // For one-time payment\n product_cart: z.array(\n z.object({\n product_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n // Common fields\n billing: z.object({\n city: z.string(),\n country: z.string(),\n state: z.string(),\n street: z.string(),\n zipcode: z.string()\n }),\n customer: z.object({\n customer_id: z.string().optional(),\n email: z.string().optional(),\n name: z.string().optional()\n }),\n discount_id: z.string().optional(),\n addons: z.array(\n z.object({\n addon_id: z.string(),\n quantity: z.number()\n })\n ).optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n currency: z.string().optional()\n // Allow any additional fields (for future compatibility)\n}).catchall(z.unknown());\nvar checkoutSessionProductCartItemSchema = z.object({\n product_id: z.string().min(1, \"Product ID is required\"),\n quantity: z.number().int().positive(\"Quantity must be a positive integer\")\n});\nvar checkoutSessionCustomerSchema = z.object({\n email: z.string().email().optional(),\n name: z.string().min(1).optional(),\n phone_number: z.string().optional()\n}).optional();\nvar checkoutSessionBillingAddressSchema = z.object({\n street: z.string().optional(),\n city: z.string().optional(),\n state: z.string().optional(),\n country: z.string().length(2, \"Country must be a 2-letter ISO code\"),\n zipcode: z.string().optional()\n}).optional();\nvar paymentMethodTypeSchema = z.enum([\n \"credit\",\n \"debit\",\n \"upi_collect\",\n \"upi_intent\",\n \"apple_pay\",\n \"google_pay\",\n \"amazon_pay\",\n \"klarna\",\n \"affirm\",\n \"afterpay_clearpay\",\n \"sepa\",\n \"ach\"\n]);\nvar checkoutSessionCustomizationSchema = z.object({\n theme: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n show_order_details: z.boolean().optional(),\n show_on_demand_tag: z.boolean().optional()\n}).optional();\nvar checkoutSessionFeatureFlagsSchema = z.object({\n allow_currency_selection: z.boolean().optional(),\n allow_discount_code: z.boolean().optional(),\n allow_phone_number_collection: z.boolean().optional(),\n allow_tax_id: z.boolean().optional(),\n always_create_new_customer: z.boolean().optional()\n}).optional();\nvar checkoutSessionSubscriptionDataSchema = z.object({\n trial_period_days: z.number().int().nonnegative().optional()\n}).optional();\nvar checkoutSessionPayloadSchema = z.object({\n // Required fields\n product_cart: z.array(checkoutSessionProductCartItemSchema).min(1, \"At least one product is required\"),\n // Optional fields\n customer: checkoutSessionCustomerSchema,\n billing_address: checkoutSessionBillingAddressSchema,\n return_url: z.string().url().optional(),\n allowed_payment_method_types: z.array(paymentMethodTypeSchema).optional(),\n billing_currency: z.string().length(3, \"Currency must be a 3-letter ISO code\").optional(),\n show_saved_payment_methods: z.boolean().optional(),\n confirm: z.boolean().optional(),\n discount_code: z.string().optional(),\n metadata: z.record(z.string(), z.string()).optional(),\n customization: checkoutSessionCustomizationSchema,\n feature_flags: checkoutSessionFeatureFlagsSchema,\n subscription_data: checkoutSessionSubscriptionDataSchema\n});\nvar checkoutSessionResponseSchema = z.object({\n session_id: z.string().min(1, \"Session ID is required\"),\n checkout_url: z.string().url(\"Invalid checkout URL\")\n});\nvar createCheckoutSession = async (payload, config) => {\n const validation = checkoutSessionPayloadSchema.safeParse(payload);\n if (!validation.success) {\n throw new Error(\n `Invalid checkout session payload: ${validation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n const dodopayments = new DodoPayments({\n bearerToken: config.bearerToken,\n environment: config.environment\n });\n try {\n const sdkPayload = {\n ...validation.data,\n ...validation.data.billing_address && {\n billing_address: {\n ...validation.data.billing_address,\n country: validation.data.billing_address.country\n }\n }\n };\n const session = await dodopayments.checkoutSessions.create(\n sdkPayload\n );\n const responseValidation = checkoutSessionResponseSchema.safeParse(session);\n if (!responseValidation.success) {\n throw new Error(\n `Invalid checkout session response from API: ${responseValidation.error.issues.map((issue) => `${issue.path.join(\".\")}: ${issue.message}`).join(\", \")}`\n );\n }\n return responseValidation.data;\n } catch (error) {\n if (error instanceof Error) {\n console.error(\"Dodo Payments Checkout Session API Error:\", {\n message: error.message,\n payload: validation.data,\n config: {\n environment: config.environment,\n hasBearerToken: !!config.bearerToken\n }\n });\n throw new Error(`Failed to create checkout session: ${error.message}`);\n }\n console.error(\"Unknown error creating checkout session:\", error);\n throw new Error(\n \"Failed to create checkout session due to an unknown error\"\n );\n }\n};\nvar buildCheckoutUrl = async ({\n queryParams,\n body,\n sessionPayload,\n returnUrl,\n bearerToken,\n environment,\n type = \"static\"\n}) => {\n if (type === \"session\") {\n if (!sessionPayload) {\n throw new Error(\"sessionPayload is required when type is 'session'\");\n }\n const session = await createCheckoutSession(sessionPayload, {\n bearerToken,\n environment\n });\n return session.checkout_url;\n }\n const inputData = type === \"dynamic\" ? body : queryParams;\n let parseResult;\n if (type === \"dynamic\") {\n parseResult = dynamicCheckoutBodySchema.safeParse(inputData);\n } else {\n parseResult = checkoutQuerySchema.safeParse(inputData);\n }\n const { success, data, error } = parseResult;\n if (!success) {\n throw new Error(\n `Invalid ${type === \"dynamic\" ? \"body\" : \"query parameters\"}.\n ${error.message}`\n );\n }\n if (type !== \"dynamic\") {\n const {\n productId,\n quantity: quantity2,\n fullName,\n firstName,\n lastName,\n email,\n country,\n addressLine,\n city,\n state,\n zipCode,\n disableFullName,\n disableFirstName,\n disableLastName,\n disableEmail,\n disableCountry,\n disableAddressLine,\n disableCity,\n disableState,\n disableZipCode,\n paymentCurrency,\n showCurrencySelector,\n paymentAmount,\n showDiscounts\n // metadata handled below\n } = data;\n const dodopayments2 = new DodoPayments({\n bearerToken,\n environment\n });\n if (!productId) throw new Error(\"Missing required field: productId\");\n try {\n await dodopayments2.products.retrieve(productId);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n const url = new URL(\n `${environment === \"test_mode\" ? \"https://test.checkout.dodopayments.com\" : \"https://checkout.dodopayments.com\"}/buy/${productId}`\n );\n url.searchParams.set(\"quantity\", quantity2 ? String(quantity2) : \"1\");\n if (returnUrl) url.searchParams.set(\"redirect_url\", returnUrl);\n if (fullName) url.searchParams.set(\"fullName\", String(fullName));\n if (firstName) url.searchParams.set(\"firstName\", String(firstName));\n if (lastName) url.searchParams.set(\"lastName\", String(lastName));\n if (email) url.searchParams.set(\"email\", String(email));\n if (country) url.searchParams.set(\"country\", String(country));\n if (addressLine) url.searchParams.set(\"addressLine\", String(addressLine));\n if (city) url.searchParams.set(\"city\", String(city));\n if (state) url.searchParams.set(\"state\", String(state));\n if (zipCode) url.searchParams.set(\"zipCode\", String(zipCode));\n if (disableFullName === \"true\")\n url.searchParams.set(\"disableFullName\", \"true\");\n if (disableFirstName === \"true\")\n url.searchParams.set(\"disableFirstName\", \"true\");\n if (disableLastName === \"true\")\n url.searchParams.set(\"disableLastName\", \"true\");\n if (disableEmail === \"true\") url.searchParams.set(\"disableEmail\", \"true\");\n if (disableCountry === \"true\")\n url.searchParams.set(\"disableCountry\", \"true\");\n if (disableAddressLine === \"true\")\n url.searchParams.set(\"disableAddressLine\", \"true\");\n if (disableCity === \"true\") url.searchParams.set(\"disableCity\", \"true\");\n if (disableState === \"true\") url.searchParams.set(\"disableState\", \"true\");\n if (disableZipCode === \"true\")\n url.searchParams.set(\"disableZipCode\", \"true\");\n if (paymentCurrency)\n url.searchParams.set(\"paymentCurrency\", String(paymentCurrency));\n if (showCurrencySelector)\n url.searchParams.set(\n \"showCurrencySelector\",\n String(showCurrencySelector)\n );\n if (paymentAmount)\n url.searchParams.set(\"paymentAmount\", String(paymentAmount));\n if (showDiscounts)\n url.searchParams.set(\"showDiscounts\", String(showDiscounts));\n for (const [key, value] of Object.entries(queryParams || {})) {\n if (key.startsWith(\"metadata_\") && value && typeof value !== \"object\") {\n url.searchParams.set(key, String(value));\n }\n }\n return url.toString();\n }\n const dyn = data;\n const {\n product_id,\n product_cart,\n quantity,\n billing,\n customer,\n addons,\n metadata,\n allowed_payment_method_types,\n billing_currency,\n discount_code,\n on_demand,\n return_url: bodyReturnUrl,\n show_saved_payment_methods,\n tax_id,\n trial_period_days\n } = dyn;\n const dodopayments = new DodoPayments({\n bearerToken,\n environment\n });\n let isSubscription = false;\n let productIdToFetch = product_id;\n if (!product_id && product_cart && product_cart.length > 0) {\n productIdToFetch = product_cart[0].product_id;\n }\n if (!productIdToFetch)\n throw new Error(\n \"Missing required field: product_id or product_cart[0].product_id\"\n );\n let product;\n try {\n product = await dodopayments.products.retrieve(productIdToFetch);\n } catch (err) {\n console.error(err);\n throw new Error(\"Product not found\");\n }\n isSubscription = Boolean(product.is_recurring);\n if (isSubscription && !product_id)\n throw new Error(\"Missing required field: product_id for subscription\");\n if (!billing) throw new Error(\"Missing required field: billing\");\n if (!customer) throw new Error(\"Missing required field: customer\");\n if (isSubscription) {\n const subscriptionPayload = {\n billing,\n customer,\n product_id,\n quantity: quantity ? Number(quantity) : 1\n };\n if (metadata) subscriptionPayload.metadata = metadata;\n if (discount_code) subscriptionPayload.discount_code = discount_code;\n if (addons) subscriptionPayload.addons = addons;\n if (allowed_payment_method_types)\n subscriptionPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency)\n subscriptionPayload.billing_currency = billing_currency;\n if (on_demand) subscriptionPayload.on_demand = on_demand;\n subscriptionPayload.payment_link = true;\n if (bodyReturnUrl) {\n subscriptionPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n subscriptionPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n subscriptionPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) subscriptionPayload.tax_id = tax_id;\n if (trial_period_days)\n subscriptionPayload.trial_period_days = trial_period_days;\n let subscription;\n try {\n subscription = await dodopayments.subscriptions.create(subscriptionPayload);\n } catch (err) {\n console.error(\"Error when creating subscription\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!subscription || !subscription.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API (subscription). Make sure to set payment_link as true in payload\"\n );\n }\n return subscription.payment_link;\n } else {\n let cart = product_cart;\n if (!cart && product_id) {\n cart = [\n { product_id, quantity: quantity ? Number(quantity) : 1 }\n ];\n }\n if (!cart || cart.length === 0)\n throw new Error(\"Missing required field: product_cart or product_id\");\n const paymentPayload = {\n billing,\n customer,\n product_cart: cart\n };\n if (metadata) paymentPayload.metadata = metadata;\n paymentPayload.payment_link = true;\n if (allowed_payment_method_types)\n paymentPayload.allowed_payment_method_types = allowed_payment_method_types;\n if (billing_currency) paymentPayload.billing_currency = billing_currency;\n if (discount_code) paymentPayload.discount_code = discount_code;\n if (bodyReturnUrl) {\n paymentPayload.return_url = bodyReturnUrl;\n } else if (returnUrl) {\n paymentPayload.return_url = returnUrl;\n }\n if (show_saved_payment_methods)\n paymentPayload.show_saved_payment_methods = show_saved_payment_methods;\n if (tax_id) paymentPayload.tax_id = tax_id;\n let payment;\n try {\n payment = await dodopayments.payments.create(paymentPayload);\n } catch (err) {\n console.error(\"Error when creating payment link\", err);\n throw new Error(err instanceof Error ? err.message : String(err));\n }\n if (!payment || !payment.payment_link) {\n throw new Error(\n \"No payment link returned from Dodo Payments API. Make sure to set payment_link as true in payload.\"\n );\n }\n return payment.payment_link;\n }\n};\n\nexport {\n checkoutQuerySchema,\n dynamicCheckoutBodySchema,\n checkoutSessionProductCartItemSchema,\n checkoutSessionCustomerSchema,\n checkoutSessionBillingAddressSchema,\n paymentMethodTypeSchema,\n checkoutSessionCustomizationSchema,\n checkoutSessionFeatureFlagsSchema,\n checkoutSessionSubscriptionDataSchema,\n checkoutSessionPayloadSchema,\n checkoutSessionResponseSchema,\n createCheckoutSession,\n buildCheckoutUrl\n};\n//# sourceMappingURL=chunk-YWHOVR2R.js.map"],"names":["z.object","z.string","z.unknown","z.number","z.array","z.record","z.enum","z.boolean"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodopayments/convex",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -24,11 +24,11 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@dodopayments/core": "^0.3.0",
27
+ "@dodopayments/core": "^0.3.2",
28
28
  "convex": "^1.26.0"
29
29
  },
30
30
  "peerDependencies": {
31
- "zod": "^3.23.8"
31
+ "zod": "^3.25.0 || ^4.0.0"
32
32
  },
33
33
  "keywords": [
34
34
  "payments",