@dodopayments/sveltekit 0.1.1 → 0.1.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/README.md +27 -15
- package/dist/checkout/checkout.d.ts +2 -2
- package/dist/checkout/checkout.d.ts.map +1 -1
- package/dist/customer-portal/customer-portal.d.ts +4 -4
- package/dist/customer-portal/customer-portal.d.ts.map +1 -1
- package/dist/index.cjs +15 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/webhooks/webhooks.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,13 +25,17 @@ All the examples below assume you're using SvelteKit App Router.
|
|
|
25
25
|
```typescript
|
|
26
26
|
// src/routes/api/checkout/+server.ts
|
|
27
27
|
import { Checkout } from "@dodopayments/sveltekit";
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
DODO_PAYMENTS_API_KEY,
|
|
30
|
+
DODO_PAYMENTS_RETURN_URL,
|
|
31
|
+
DODO_PAYMENTS_ENVIRONMENT,
|
|
32
|
+
} from "$env/static/private";
|
|
29
33
|
|
|
30
34
|
const checkoutGetHandler = Checkout({
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
bearerToken: DODO_PAYMENTS_API_KEY,
|
|
36
|
+
returnUrl: DODO_PAYMENTS_RETURN_URL,
|
|
37
|
+
environment: environment,
|
|
38
|
+
type: "static", // optional, defaults to 'static'
|
|
35
39
|
});
|
|
36
40
|
export const GET = checkoutGetHandler.GET;
|
|
37
41
|
```
|
|
@@ -44,11 +48,15 @@ export const GET = checkoutGetHandler.GET;
|
|
|
44
48
|
//
|
|
45
49
|
// src/routes/api/checkout/+server.ts
|
|
46
50
|
import { CustomerPortal } from "@dodopayments/sveltekit";
|
|
47
|
-
import {
|
|
51
|
+
import {
|
|
52
|
+
DODO_PAYMENTS_API_KEY,
|
|
53
|
+
DODO_PAYMENTS_RETURN_URL,
|
|
54
|
+
DODO_PAYMENTS_ENVIRONMENT,
|
|
55
|
+
} from "$env/static/private";
|
|
48
56
|
|
|
49
57
|
const customerPortalHandler = CustomerPortal({
|
|
50
|
-
|
|
51
|
-
|
|
58
|
+
bearerToken: DODO_PAYMENTS_API_KEY,
|
|
59
|
+
environment: environment,
|
|
52
60
|
});
|
|
53
61
|
|
|
54
62
|
export const GET = customerPortalHandler.GET;
|
|
@@ -69,16 +77,20 @@ Returns 400 if `customer_id` is missing.
|
|
|
69
77
|
// src/routes/api/webhook/+server.ts
|
|
70
78
|
// /api/checkout/+server.ts
|
|
71
79
|
import { Webhooks } from "@dodopayments/sveltekit";
|
|
72
|
-
import {
|
|
80
|
+
import {
|
|
81
|
+
DODO_PAYMENTS_API_KEY,
|
|
82
|
+
DODO_PAYMENTS_RETURN_URL,
|
|
83
|
+
DODO_PAYMENTS_ENVIRONMENT,
|
|
84
|
+
DODO_PAYMENTS_WEBHOOK_KEY,
|
|
85
|
+
} from "$env/static/private";
|
|
73
86
|
|
|
74
87
|
export const POST = Webhooks({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
88
|
+
webhookKey: DODO_PAYMENTS_WEBHOOK_KEY,
|
|
89
|
+
onPayload: async (payload) => {
|
|
90
|
+
//Handle payload here
|
|
91
|
+
console.log(payload);
|
|
92
|
+
},
|
|
80
93
|
});
|
|
81
|
-
|
|
82
94
|
```
|
|
83
95
|
|
|
84
96
|
---
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type RequestHandler } from
|
|
2
|
-
import { type CheckoutHandlerConfig } from
|
|
1
|
+
import { type RequestHandler } from "@sveltejs/kit";
|
|
2
|
+
import { type CheckoutHandlerConfig } from "@dodopayments/core/checkout";
|
|
3
3
|
export declare const Checkout: (config: CheckoutHandlerConfig) => {
|
|
4
4
|
GET: RequestHandler;
|
|
5
5
|
POST: RequestHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/checkout/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,KAAK,qBAAqB,EAG3B,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,QAAQ,GAAI,QAAQ,qBAAqB;;;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/checkout/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,KAAK,qBAAqB,EAG3B,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,QAAQ,GAAI,QAAQ,qBAAqB;;;CAuErD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type RequestHandler } from
|
|
2
|
-
import { ClientOptions } from
|
|
3
|
-
export type CustomerPortalConfig = Pick<ClientOptions,
|
|
4
|
-
export declare const CustomerPortal: ({ bearerToken, environment }: CustomerPortalConfig) => {
|
|
1
|
+
import { type RequestHandler } from "@sveltejs/kit";
|
|
2
|
+
import { ClientOptions } from "dodopayments";
|
|
3
|
+
export type CustomerPortalConfig = Pick<ClientOptions, "environment" | "bearerToken">;
|
|
4
|
+
export declare const CustomerPortal: ({ bearerToken, environment, }: CustomerPortalConfig) => {
|
|
5
5
|
GET: RequestHandler;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=customer-portal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../src/customer-portal/customer-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,OAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"customer-portal.d.ts","sourceRoot":"","sources":["../../src/customer-portal/customer-portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,OAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,EACb,aAAa,GAAG,aAAa,CAC9B,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,+BAG5B,oBAAoB;;CAwCtB,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -1918,7 +1918,7 @@ var checkoutQuerySchema = zod.z.object({
|
|
|
1918
1918
|
showDiscounts: zod.z.string().optional(),
|
|
1919
1919
|
// Metadata (allow any key starting with metadata_)
|
|
1920
1920
|
// We'll handle metadata separately in the handler
|
|
1921
|
-
});
|
|
1921
|
+
}).catchall(zod.z.unknown());
|
|
1922
1922
|
// Add Zod schema for dynamic checkout body
|
|
1923
1923
|
var dynamicCheckoutBodySchema = zod.z
|
|
1924
1924
|
.object({
|
|
@@ -2202,16 +2202,16 @@ const Checkout = (config) => {
|
|
|
2202
2202
|
const searchParams = event.url.searchParams;
|
|
2203
2203
|
const queryParams = Object.fromEntries(searchParams);
|
|
2204
2204
|
if (!queryParams.productId) {
|
|
2205
|
-
throw error(400,
|
|
2205
|
+
throw error(400, "Please provide productId query parameter");
|
|
2206
2206
|
}
|
|
2207
|
-
const { success, data, error: zodError } = checkoutQuerySchema.safeParse(queryParams);
|
|
2207
|
+
const { success, data, error: zodError, } = checkoutQuerySchema.safeParse(queryParams);
|
|
2208
2208
|
if (!success) {
|
|
2209
|
-
if (zodError.errors.some((e) => e.path.toString() ===
|
|
2210
|
-
throw error(400,
|
|
2209
|
+
if (zodError.errors.some((e) => e.path.toString() === "productId")) {
|
|
2210
|
+
throw error(400, "Please provide productId query parameter");
|
|
2211
2211
|
}
|
|
2212
2212
|
throw error(400, `Invalid query parameters.\n ${zodError.message}`);
|
|
2213
2213
|
}
|
|
2214
|
-
let urlStr =
|
|
2214
|
+
let urlStr = "";
|
|
2215
2215
|
try {
|
|
2216
2216
|
urlStr = await buildCheckoutUrl({ queryParams: data, ...config });
|
|
2217
2217
|
}
|
|
@@ -2229,13 +2229,13 @@ const Checkout = (config) => {
|
|
|
2229
2229
|
body = await event.request.json();
|
|
2230
2230
|
}
|
|
2231
2231
|
catch (e) {
|
|
2232
|
-
throw error(400,
|
|
2232
|
+
throw error(400, "Invalid JSON body");
|
|
2233
2233
|
}
|
|
2234
|
-
const { success, data, error: zodError } = dynamicCheckoutBodySchema.safeParse(body);
|
|
2234
|
+
const { success, data, error: zodError, } = dynamicCheckoutBodySchema.safeParse(body);
|
|
2235
2235
|
if (!success) {
|
|
2236
2236
|
throw error(400, `Invalid request body.\n ${zodError.message}`);
|
|
2237
2237
|
}
|
|
2238
|
-
let urlStr =
|
|
2238
|
+
let urlStr = "";
|
|
2239
2239
|
try {
|
|
2240
2240
|
urlStr = await buildCheckoutUrl({ body: data, ...config });
|
|
2241
2241
|
}
|
|
@@ -3685,17 +3685,17 @@ const Webhooks = ({ webhookKey, ...eventHandlers }) => {
|
|
|
3685
3685
|
};
|
|
3686
3686
|
};
|
|
3687
3687
|
|
|
3688
|
-
const CustomerPortal = ({ bearerToken, environment }) => {
|
|
3688
|
+
const CustomerPortal = ({ bearerToken, environment, }) => {
|
|
3689
3689
|
const getHandler = async (event) => {
|
|
3690
3690
|
const searchParams = event.url.searchParams;
|
|
3691
|
-
const customerId = searchParams.get(
|
|
3691
|
+
const customerId = searchParams.get("customer_id");
|
|
3692
3692
|
const params = { send_email: false };
|
|
3693
|
-
const sendEmail = searchParams.get(
|
|
3694
|
-
if (sendEmail ===
|
|
3693
|
+
const sendEmail = searchParams.get("send_email");
|
|
3694
|
+
if (sendEmail === "true") {
|
|
3695
3695
|
params.send_email = true;
|
|
3696
3696
|
}
|
|
3697
3697
|
if (!customerId) {
|
|
3698
|
-
throw error(400,
|
|
3698
|
+
throw error(400, "Missing customerId in query parameters");
|
|
3699
3699
|
}
|
|
3700
3700
|
const dodopayments = new DodoPayments({
|
|
3701
3701
|
bearerToken,
|
|
@@ -3709,7 +3709,7 @@ const CustomerPortal = ({ bearerToken, environment }) => {
|
|
|
3709
3709
|
});
|
|
3710
3710
|
}
|
|
3711
3711
|
catch (err) {
|
|
3712
|
-
console.error(
|
|
3712
|
+
console.error("Error creating customer portal session:", err);
|
|
3713
3713
|
throw error(500, `Failed to create customer portal session: ${err.message}`);
|
|
3714
3714
|
}
|
|
3715
3715
|
};
|