@tagadapay/headless-sdk 1.1.0 → 1.1.1
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/core/modules/checkout.d.ts +15 -8
- package/dist/core/modules/checkout.d.ts.map +1 -1
- package/dist/core/modules/checkout.js +50 -14
- package/dist/core/modules/checkout.js.map +1 -1
- package/dist/react/hooks/useCheckout.d.ts +1 -1
- package/dist/react/hooks/useCheckout.d.ts.map +1 -1
- package/dist/react/hooks/useCheckout.js +61 -16
- package/dist/react/hooks/useCheckout.js.map +1 -1
- package/dist/tagada-headless-react.min.js +2 -2
- package/dist/tagada-headless-react.min.js.map +3 -3
- package/dist/tagada-headless.js +61 -21
- package/dist/tagada-headless.min.js +2 -2
- package/dist/tagada-headless.min.js.map +3 -3
- package/package.json +1 -1
|
@@ -43,21 +43,28 @@ export declare class CheckoutModule {
|
|
|
43
43
|
}>;
|
|
44
44
|
/** Replace the cart items for an existing session. */
|
|
45
45
|
updateCart(sessionId: string, items: LineItem[]): Promise<CheckoutSession>;
|
|
46
|
-
/**
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Update customer + address information on the session.
|
|
48
|
+
* Uses the combined endpoint with `partial: true` so missing fields are tolerated.
|
|
49
|
+
*/
|
|
50
|
+
updateCustomer(sessionId: string, customer: Partial<CheckoutCustomer>): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Update shipping and/or billing address on the session.
|
|
53
|
+
*
|
|
54
|
+
* Address fields use the API's naming: `address1`, `postal`, etc.
|
|
55
|
+
*/
|
|
49
56
|
updateAddress(sessionId: string, addresses: {
|
|
50
57
|
shippingAddress?: Address;
|
|
51
58
|
billingAddress?: Address;
|
|
52
|
-
}): Promise<
|
|
59
|
+
}): Promise<void>;
|
|
53
60
|
/** Apply a promotion code to the session. */
|
|
54
|
-
applyPromoCode(sessionId: string, code: string): Promise<
|
|
55
|
-
/** Remove the
|
|
56
|
-
removePromoCode(sessionId: string): Promise<
|
|
61
|
+
applyPromoCode(sessionId: string, code: string): Promise<void>;
|
|
62
|
+
/** Remove a promotion from the session by promotion ID. */
|
|
63
|
+
removePromoCode(sessionId: string, promotionId?: string): Promise<void>;
|
|
57
64
|
/** Fetch available shipping rates for the session's address. */
|
|
58
65
|
getShippingRates(sessionId: string): Promise<ShippingRate[]>;
|
|
59
66
|
/** Select a shipping rate for the session. */
|
|
60
|
-
selectShippingRate(sessionId: string, rateId: string): Promise<
|
|
67
|
+
selectShippingRate(sessionId: string, rateId: string): Promise<void>;
|
|
61
68
|
/**
|
|
62
69
|
* Normalize the raw v2 API response into a cleaner CheckoutSession shape.
|
|
63
70
|
* The raw response has nested `checkoutSession` + `summary` -- we flatten it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALjC,OAAO,CAAC,YAAY,CAAqB;gBAGtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA;IAG1D;;;;;;;;OAQG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBzF;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IALjC,OAAO,CAAC,YAAY,CAAqB;gBAGtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,GAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,aAAA;IAG1D;;;;;;;;OAQG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiBzF;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE;QACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAyCrG,sDAAsD;IAChD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhF;;;OAGG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACjE,OAAO,CAAC,IAAI,CAAC;IA0BhB,6CAA6C;IACvC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,2DAA2D;IACrD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7E,gEAAgE;IAC1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAQlE,8CAA8C;IACxC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1E;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAwDzB"}
|
|
@@ -59,7 +59,6 @@ export class CheckoutModule {
|
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
61
|
const res = await this.http.post('/api/v1/checkout/session/init', body);
|
|
62
|
-
// Extract the JWT token from the checkoutUrl query params
|
|
63
62
|
const url = new URL(res.checkoutUrl);
|
|
64
63
|
const sessionToken = url.searchParams.get('token') ?? '';
|
|
65
64
|
this.sessionToken = sessionToken;
|
|
@@ -74,34 +73,71 @@ export class CheckoutModule {
|
|
|
74
73
|
}
|
|
75
74
|
/** Replace the cart items for an existing session. */
|
|
76
75
|
async updateCart(sessionId, items) {
|
|
77
|
-
return this.http.post(`/api/v1/checkout-sessions/${sessionId}/items`, { items }, { token: this.sessionToken });
|
|
76
|
+
return this.http.post(`/api/v1/checkout-sessions/${sessionId}/line-items`, { items }, { token: this.sessionToken });
|
|
78
77
|
}
|
|
79
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* Update customer + address information on the session.
|
|
80
|
+
* Uses the combined endpoint with `partial: true` so missing fields are tolerated.
|
|
81
|
+
*/
|
|
80
82
|
async updateCustomer(sessionId, customer) {
|
|
81
|
-
|
|
83
|
+
await this.http.post(`/api/v1/checkout-sessions/${sessionId}/customer-and-session-info`, {
|
|
84
|
+
checkoutSessionId: sessionId,
|
|
85
|
+
partial: true,
|
|
86
|
+
customerData: {
|
|
87
|
+
email: customer.email,
|
|
88
|
+
},
|
|
89
|
+
shippingAddress: {
|
|
90
|
+
firstName: customer.firstName,
|
|
91
|
+
lastName: customer.lastName,
|
|
92
|
+
phone: customer.phone,
|
|
93
|
+
},
|
|
94
|
+
billingAddress: {},
|
|
95
|
+
differentBillingAddress: false,
|
|
96
|
+
}, { token: this.sessionToken });
|
|
82
97
|
}
|
|
83
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Update shipping and/or billing address on the session.
|
|
100
|
+
*
|
|
101
|
+
* Address fields use the API's naming: `address1`, `postal`, etc.
|
|
102
|
+
*/
|
|
84
103
|
async updateAddress(sessionId, addresses) {
|
|
85
|
-
|
|
104
|
+
const mapAddress = (a) => {
|
|
105
|
+
if (!a)
|
|
106
|
+
return undefined;
|
|
107
|
+
return {
|
|
108
|
+
address1: a.line1,
|
|
109
|
+
address2: a.line2,
|
|
110
|
+
city: a.city,
|
|
111
|
+
state: a.state,
|
|
112
|
+
postal: a.postalCode,
|
|
113
|
+
country: a.country,
|
|
114
|
+
};
|
|
115
|
+
};
|
|
116
|
+
await this.http.post(`/api/v1/checkout-sessions/${sessionId}/address`, {
|
|
117
|
+
checkoutSessionId: sessionId,
|
|
118
|
+
data: {
|
|
119
|
+
shippingAddress: mapAddress(addresses.shippingAddress) ?? {},
|
|
120
|
+
billingAddress: mapAddress(addresses.billingAddress),
|
|
121
|
+
},
|
|
122
|
+
}, { token: this.sessionToken });
|
|
86
123
|
}
|
|
87
124
|
/** Apply a promotion code to the session. */
|
|
88
125
|
async applyPromoCode(sessionId, code) {
|
|
89
|
-
|
|
126
|
+
await this.http.post(`/api/v1/checkout-sessions/${sessionId}/promotions/apply`, { checkoutSessionId: sessionId, code }, { token: this.sessionToken });
|
|
90
127
|
}
|
|
91
|
-
/** Remove the
|
|
92
|
-
async removePromoCode(sessionId) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
128
|
+
/** Remove a promotion from the session by promotion ID. */
|
|
129
|
+
async removePromoCode(sessionId, promotionId) {
|
|
130
|
+
const promoId = promotionId ?? 'default';
|
|
131
|
+
await this.http.delete(`/api/v1/checkout-sessions/${sessionId}/promotions/${promoId}`, { token: this.sessionToken });
|
|
96
132
|
}
|
|
97
133
|
/** Fetch available shipping rates for the session's address. */
|
|
98
134
|
async getShippingRates(sessionId) {
|
|
99
135
|
const res = await this.http.get(`/api/v1/checkout-sessions/${sessionId}/shipping-rates`, { token: this.sessionToken });
|
|
100
|
-
return res.rates;
|
|
136
|
+
return res.rates ?? [];
|
|
101
137
|
}
|
|
102
138
|
/** Select a shipping rate for the session. */
|
|
103
139
|
async selectShippingRate(sessionId, rateId) {
|
|
104
|
-
|
|
140
|
+
await this.http.post(`/api/v1/checkout-sessions/${sessionId}/shipping-rate`, { checkoutSessionId: sessionId, shippingRateId: rateId }, { token: this.sessionToken });
|
|
105
141
|
}
|
|
106
142
|
/**
|
|
107
143
|
* Normalize the raw v2 API response into a cleaner CheckoutSession shape.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"AASA;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAGzB,YACmB,IAAgB,EAChB,OAAe,EACf,aAAuC;QAFvC,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;QACf,kBAAa,GAAb,aAAa,CAA0B;IACvD,CAAC;IAEJ;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,aAAqB,EAAE,YAAqB;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAC7B,6BAA6B,aAAa,KAAK,EAC/C;YACE,MAAM,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,YAAY;SACzB,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,IAOnB;QACC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,GAA4B;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS;SACV,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG;gBACd,KAAK,EAAE,IAAI,CAAC,aAAa;gBACzB,SAAS,EAAE,IAAI,CAAC,iBAAiB;gBACjC,QAAQ,EAAE,IAAI,CAAC,gBAAgB;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAI7B,+BAA+B,EAAE,IAAI,CAAC,CAAC;QAE1C,
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export interface UseCheckoutReturn {
|
|
|
24
24
|
/** Apply a promo code. */
|
|
25
25
|
applyPromo: (code: string) => Promise<void>;
|
|
26
26
|
/** Remove the applied promo code. */
|
|
27
|
-
removePromo: () => Promise<void>;
|
|
27
|
+
removePromo: (promotionId?: string) => Promise<void>;
|
|
28
28
|
/** Fetch shipping rates. */
|
|
29
29
|
getShippingRates: () => Promise<ShippingRate[]>;
|
|
30
30
|
/** Select a shipping rate. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCheckout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9G,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oEAAoE;IACpE,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,0BAA0B;IAC1B,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,2CAA2C;IAC3C,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,qCAAqC;IACrC,aAAa,EAAE,CAAC,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,0BAA0B;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qCAAqC;IACrC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useCheckout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9G,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,oEAAoE;IACpE,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,0BAA0B;IAC1B,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,2CAA2C;IAC3C,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,qCAAqC;IACrC,aAAa,EAAE,CAAC,SAAS,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,0BAA0B;IAC1B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,qCAAqC;IACrC,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,4BAA4B;IAC5B,gBAAgB,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAChD,8BAA8B;IAC9B,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,YAAY,CAAC,EAAE,MAAM,GACpB,iBAAiB,CA2InB"}
|
|
@@ -63,27 +63,63 @@ export function useCheckout(checkoutToken, sessionToken) {
|
|
|
63
63
|
const updateCustomer = useCallback(async (customer) => {
|
|
64
64
|
if (!session)
|
|
65
65
|
return;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
setIsLoading(true);
|
|
67
|
+
try {
|
|
68
|
+
await client.checkout.updateCustomer(session.id, customer);
|
|
69
|
+
await loadSession();
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
setIsLoading(false);
|
|
76
|
+
}
|
|
77
|
+
}, [client, session, loadSession]);
|
|
69
78
|
const updateAddress = useCallback(async (addresses) => {
|
|
70
79
|
if (!session)
|
|
71
80
|
return;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
setIsLoading(true);
|
|
82
|
+
try {
|
|
83
|
+
await client.checkout.updateAddress(session.id, addresses);
|
|
84
|
+
await loadSession();
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
setIsLoading(false);
|
|
91
|
+
}
|
|
92
|
+
}, [client, session, loadSession]);
|
|
75
93
|
const applyPromo = useCallback(async (code) => {
|
|
76
94
|
if (!session)
|
|
77
95
|
return;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
96
|
+
setIsLoading(true);
|
|
97
|
+
try {
|
|
98
|
+
await client.checkout.applyPromoCode(session.id, code);
|
|
99
|
+
await loadSession();
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
setIsLoading(false);
|
|
106
|
+
}
|
|
107
|
+
}, [client, session, loadSession]);
|
|
108
|
+
const removePromo = useCallback(async (promotionId) => {
|
|
82
109
|
if (!session)
|
|
83
110
|
return;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
111
|
+
setIsLoading(true);
|
|
112
|
+
try {
|
|
113
|
+
await client.checkout.removePromoCode(session.id, promotionId);
|
|
114
|
+
await loadSession();
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
setIsLoading(false);
|
|
121
|
+
}
|
|
122
|
+
}, [client, session, loadSession]);
|
|
87
123
|
const getShippingRates = useCallback(async () => {
|
|
88
124
|
if (!session)
|
|
89
125
|
return [];
|
|
@@ -92,9 +128,18 @@ export function useCheckout(checkoutToken, sessionToken) {
|
|
|
92
128
|
const selectShippingRate = useCallback(async (rateId) => {
|
|
93
129
|
if (!session)
|
|
94
130
|
return;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
131
|
+
setIsLoading(true);
|
|
132
|
+
try {
|
|
133
|
+
await client.checkout.selectShippingRate(session.id, rateId);
|
|
134
|
+
await loadSession();
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
setIsLoading(false);
|
|
141
|
+
}
|
|
142
|
+
}, [client, session, loadSession]);
|
|
98
143
|
return {
|
|
99
144
|
session,
|
|
100
145
|
isLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../../src/react/hooks/useCheckout.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../../src/react/hooks/useCheckout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @tagadapay/headless-sdk v1.1.
|
|
2
|
+
* @tagadapay/headless-sdk v1.1.1
|
|
3
3
|
* Headless checkout, payments, analytics, and CRM
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
6
|
-
"use strict";var TagadaHeadlessReactBundle=(()=>{var ce=Object.create;var j=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var A=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var me=(s,e)=>{for(var t in e)j(s,t,{get:e[t],enumerable:!0})},Q=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of de(e))!pe.call(s,r)&&r!==t&&j(s,r,{get:()=>e[r],enumerable:!(n=ue(e,r))||n.enumerable});return s};var ge=(s,e,t)=>(t=s!=null?ce(le(s)):{},Q(e||!s||!s.__esModule?j(t,"default",{value:s,enumerable:!0}):t,s)),fe=s=>Q(j({},"__esModule",{value:!0}),s);var he={};me(he,{TagadaHeadlessProvider:()=>Z,useAnalytics:()=>oe,useCatalog:()=>ie,useCheckout:()=>te,useCustomer:()=>se,useHeadlessClient:()=>R,useOffers:()=>re,usePayment:()=>ne});var O=A("react");var x=class extends Error{constructor(e,t,n,r){super(e),this.name="TagadaError",this.code=t,this.statusCode=n,this.details=r}},N=class extends x{constructor(e="Authentication failed. Check your API key or checkout token."){super(e,"auth_error",401),this.name="TagadaAuthError"}},L=class extends x{constructor(e,t=[]){super(e,"validation_error",422,{errors:t}),this.name="TagadaValidationError",this.errors=t}},$=class extends x{constructor(e,t){super(`${e} "${t}" not found.`,"not_found",404),this.name="TagadaNotFoundError"}},_=class extends x{constructor(e=1e3){super(`Rate limited. Retry after ${e}ms.`,"rate_limit",429),this.name="TagadaRateLimitError",this.retryAfterMs=e}};var q=class extends x{constructor(e="Network request failed. Check your connection."){super(e,"network_error"),this.name="TagadaNetworkError"}};var W={production:"https://app.tagadapay.com",development:"https://app.dev.tagadapay.com",local:"http://localhost:3000"},U=class{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.timeout=e.timeout,this.apiKey=e.apiKey,this.getToken=e.getToken}static resolveBaseUrl(e,t){return t??W[e]??W.production}async request(e,t={}){var h;let{method:n="GET",body:r,headers:a={},params:o,token:l,signal:d}=t,p=`${this.baseUrl}${e}`;if(o){let i=new URLSearchParams;for(let[y,m]of Object.entries(o))m!==void 0&&i.set(y,String(m));let f=i.toString();f&&(p+=`?${f}`)}let u={"Content-Type":"application/json",...a},g=l??this.apiKey??((h=this.getToken)==null?void 0:h.call(this));g&&(u["x-cms-token"]=g);let c=new AbortController,P=setTimeout(()=>c.abort(),this.timeout);try{let i=await fetch(p,{method:n,headers:u,body:r!=null?JSON.stringify(r):void 0,signal:d??c.signal});if(clearTimeout(P),i.ok){let f=await i.text();return f?JSON.parse(f):{}}throw await this.handleErrorResponse(i,e),new x("Unexpected error","unknown",i.status)}catch(i){throw clearTimeout(P),i instanceof x?i:i instanceof DOMException&&i.name==="AbortError"?new q(`Request to ${e} timed out after ${this.timeout}ms.`):new q(i instanceof Error?i.message:"Network request failed.")}}get(e,t){return this.request(e,{...t,method:"GET"})}post(e,t,n){return this.request(e,{...n,method:"POST",body:t})}patch(e,t,n){return this.request(e,{...n,method:"PATCH",body:t})}put(e,t,n){return this.request(e,{...n,method:"PUT",body:t})}delete(e,t){return this.request(e,{...t,method:"DELETE"})}async handleErrorResponse(e,t){let n={};try{n=await e.json()}catch{}let r=n.message??n.error??`Request failed: ${e.status} ${e.statusText} on ${t}`;switch(e.status){case 401:case 403:throw new N(r);case 404:throw new $(t,"");case 422:{let a=Array.isArray(n.errors)?n.errors:[];throw new L(r,a)}case 429:{let a=Number(e.headers.get("Retry-After")??"1")*1e3;throw new _(a)}default:throw new x(r,"api_error",e.status,n)}}};var D=class{constructor(e,t,n){this.http=e;this.storeId=t;this.onTokenChange=n}async loadSession(e,t){var r;t&&(this.sessionToken=t,(r=this.onTokenChange)==null||r.call(this,t));let n=await this.http.get(`/api/v1/checkout-sessions/${e}/v2`,{params:{skipAsyncWait:"false"},token:this.sessionToken});return this.normalizeSession(n)}async createSession(e){var l;let t=e.items.map(d=>({variantId:d.variantId,priceId:d.priceId,quantity:d.quantity})),n={storeId:this.storeId,lineItems:t};e.currency&&(n.currency=e.currency),e.returnUrl&&(n.returnUrl=e.returnUrl),e.customerEmail&&(n.customer={email:e.customerEmail,firstName:e.customerFirstName,lastName:e.customerLastName,currency:e.currency});let r=await this.http.post("/api/v1/checkout/session/init",n),o=new URL(r.checkoutUrl).searchParams.get("token")??"";return this.sessionToken=o,o&&((l=this.onTokenChange)==null||l.call(this,o)),{checkoutUrl:r.checkoutUrl,checkoutToken:r.checkoutToken,sessionToken:o,customerId:r.customerId}}async updateCart(e,t){return this.http.post(`/api/v1/checkout-sessions/${e}/items`,{items:t},{token:this.sessionToken})}async updateCustomer(e,t){return this.http.patch(`/api/v1/checkout-sessions/${e}/customer`,{data:t},{token:this.sessionToken})}async updateAddress(e,t){return this.http.post(`/api/v1/checkout-sessions/${e}/address`,{data:t},{token:this.sessionToken})}async applyPromoCode(e,t){return this.http.post(`/api/v1/checkout-sessions/${e}/promo`,{code:t},{token:this.sessionToken})}async removePromoCode(e){return this.http.delete(`/api/v1/checkout-sessions/${e}/promo`,{token:this.sessionToken})}async getShippingRates(e){return(await this.http.get(`/api/v1/checkout-sessions/${e}/shipping-rates`,{token:this.sessionToken})).rates}async selectShippingRate(e,t){return this.http.post(`/api/v1/checkout-sessions/${e}/shipping-rates`,{rateId:t},{token:this.sessionToken})}normalizeSession(e){let t=e.checkoutSession,n=t.orderSummaries??[],r=e.summary??t.summary??n[0]??{},a=t.sessionLineItems??[],o=t.customer,l=a.map(p=>{let u=p.price,g=(u==null?void 0:u.variant)??{},c=g.product??{},P=(u==null?void 0:u.currencyOptions)??{},h=P.USD??P[Object.keys(P)[0]];return{id:p.id,variantId:p.variantId,priceId:p.priceId,productName:c.name??"",variantName:g.name??"",quantity:p.quantity??1,unitAmount:(h==null?void 0:h.amount)??0,totalAmount:((h==null?void 0:h.amount)??0)*(p.quantity??1),currency:t.selectedPresentmentCurrency??"USD",imageUrl:g.imageUrl??""}}),d=r.items??[];return{id:t.id,storeId:t.storeId,checkoutToken:t.checkoutToken,currency:t.selectedPresentmentCurrency??"USD",items:l,totals:{subtotal:r.subtotalAmount??0,discount:r.totalPromotionAmount??0,shipping:r.shippingCost??0,tax:r.totalTaxAmount??0,total:r.totalAmount??d.reduce((p,u)=>p+(u.amount??0),0),currency:r.currency??t.selectedPresentmentCurrency??"USD"},customer:o?{id:o.id,email:o.email,firstName:o.firstName,lastName:o.lastName}:void 0,shippingAddress:t.shippingAddress,billingAddress:t.billingAddress,metadata:t.metadata}}};var V=class{constructor(e,t,n){this.http=e;this.storeId=t;this.environment=n}async getPaymentSetup(e){let t=await this.http.get("/api/v1/payment-methods",{params:{checkoutSessionId:e}}),n={};for(let r of t.methods??[]){let a=r.provider?`${r.method}:${r.provider}`:r.method;n[a]=r}return n}async getExpressMethods(e){var r,a;let t=await this.getPaymentSetup(e),n={};for(let[,o]of Object.entries(t)){if(!o.enabled||!o.express)continue;let l=o.method,d={type:l,available:!0,processorId:o.processorId,publishableKey:o.publishableKey,metadata:o.metadata};if(l==="apple_pay"||o.type==="apple_pay"){let p=typeof window<"u"&&"ApplePaySession"in window&&((a=(r=window.ApplePaySession)==null?void 0:r.canMakePayments)==null?void 0:a.call(r));n.applePay={...d,available:!!p}}else l==="google_pay"||o.type==="google_pay"?n.googlePay=d:l==="paypal"?n.paypal=d:l==="klarna"||l==="klarna_express"?n.klarna=d:l==="link"&&(n.link=d)}return n}async getStoreConfig(){let e=await this.http.get("/api/v1/checkout/config",{params:{storeId:this.storeId}});return e.config??e}async getEnabledMethods(e){let t=await this.getPaymentSetup(e);return Object.entries(t).filter(([,n])=>n.enabled).map(([n])=>n)}async tokenizeCard(e){let t=await this.loadCoreJs(),n=new t.Tokenizer({environment:this.environment});await n.initialize();let r={cardNumber:e.cardNumber,expiryDate:e.expiryDate,cvc:e.cvc};e.cardholderName&&(r.cardholderName=e.cardholderName);let[a,o]=await Promise.all([n.tokenizeCard(r),n.tokenizeCardRaw(r)]);return{tagadaToken:a,rawToken:o}}async createInstrument(e){return this.http.post("/api/v1/payment/create-instrument-from-token",{tagadaToken:e.tagadaToken})}async create3dsSession(e){return this.http.post("/api/public/v1/threeds/create-session",{provider:e.provider??"basis_theory",storeId:this.storeId,paymentInstrumentId:e.paymentInstrumentId,sessionData:e.sessionData})}async pay(e){return e.tagadaToken&&!e.paymentInstrumentId?this.http.post("/api/v1/payment/pay-with-token",{tagadaToken:e.tagadaToken,checkoutSessionId:e.checkoutSessionId,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,metadata:e.metadata}):this.http.post("/api/public/v1/checkout/pay-v2",{checkoutSessionId:e.checkoutSessionId,paymentInstrumentId:e.paymentInstrumentId,storeId:this.storeId,paymentFlowId:e.paymentFlowId,threedsSessionId:e.threedsSessionId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,metadata:e.metadata})}async payDirect(e){return this.http.post("/api/public/v1/checkout/pay-v2",{checkoutSessionId:e.checkoutSessionId,paymentInstrumentId:e.paymentInstrumentId??"",storeId:this.storeId,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,threedsSessionId:e.threedsSessionId})}async processApplePay(e){let t=await this.loadCoreJs(),n=new t.Tokenizer({environment:this.environment});await n.initialize();let{tagadaToken:r}=await n.tokenizeApplePay(e.applePayToken);return this.pay({checkoutSessionId:e.checkoutSessionId,tagadaToken:r,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:"apple_pay",isExpress:!0})}async processGooglePay(e){let t=await this.loadCoreJs(),n=new t.Tokenizer({environment:this.environment});await n.initialize();let{tagadaToken:r}=await n.tokenizeGooglePay(e.googlePayToken);return this.pay({checkoutSessionId:e.checkoutSessionId,tagadaToken:r,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:"google_pay",isExpress:!0})}async processApm(e){return this.payDirect({checkoutSessionId:e.checkoutSessionId,paymentMethod:e.paymentMethod,processorId:e.processorId,paymentFlowId:e.paymentFlowId})}async getPaymentStatus(e){return this.http.get(`/api/v1/payments/${e}`)}async pollPaymentStatus(e,t){let n=(t==null?void 0:t.intervalMs)??1500,r=(t==null?void 0:t.timeoutMs)??6e4,a=Date.now();for(;Date.now()-a<r;){let o=await this.getPaymentStatus(e);if(o.status==="succeeded"||o.status==="failed"||o.status==="declined")return o;await new Promise(l=>setTimeout(l,n))}throw new Error(`Payment ${e} did not reach terminal status within ${r}ms.`)}async completeAfter3ds(e){return this.http.post("/api/v1/payments/complete-after-3ds",{paymentId:e})}async loadCoreJs(){try{return await import("@tagadapay/core-js")}catch{throw new Error("This method requires @tagadapay/core-js. Install it: npm install @tagadapay/core-js")}}};var z=class{constructor(e,t){this.http=e;this.storeId=t;this.pixels={loaded:!1};this.eventQueue=[];this.dedupeSet=new Set}async init(e){if(this.pixels.loaded)return;let t=e==null?void 0:e.pixelConfig;if(!t)try{t=(await this.http.get("/api/v1/checkout/config",{params:{storeId:this.storeId}})).pixels}catch{}this.pixels={loaded:!0,config:t},typeof window<"u"&&t&&this.loadPixelScripts(t),this.flushQueue()}trackPageView(e){this.fireEvent("PageView",{page:e??this.getCurrentPath()})}trackViewContent(e){this.fireEvent("ViewContent",e)}trackAddToCart(e){this.fireEvent("AddToCart",e)}trackInitiateCheckout(e){this.fireEvent("InitiateCheckout",e??{})}trackAddPaymentInfo(e){this.fireEvent("AddPaymentInfo",e??{})}trackPurchase(e){this.fireEvent("Purchase",e,!0)}trackCustomEvent(e,t){this.fireEvent(e,t??{})}trackStep(e){this.fireEvent("FunnelStep",e),this.http.post("/api/v1/funnel-tracking/step",{storeId:this.storeId,...e}).catch(()=>{})}trackConversion(e){this.fireEvent("Conversion",e,!0)}fireEvent(e,t,n=!1){if(n){let r=`${e}:${JSON.stringify(t)}`;if(this.dedupeSet.has(r))return;this.dedupeSet.add(r)}if(!this.pixels.loaded){this.eventQueue.push({event:e,data:t});return}this.sendToMeta(e,t),this.sendToTikTok(e,t),this.sendToSnapchat(e,t),this.sendToGTM(e,t),this.sendToGA(e,t)}flushQueue(){let e=[...this.eventQueue];this.eventQueue=[];for(let{event:t,data:n}of e)this.fireEvent(t,n)}getCurrentPath(){return typeof window<"u"?window.location.pathname:"/"}loadPixelScripts(e){e.metaPixelId&&this.loadMetaPixel(e.metaPixelId),e.tiktokPixelId&&this.loadTikTokPixel(e.tiktokPixelId),e.snapchatPixelId&&this.loadSnapchatPixel(e.snapchatPixelId),e.gtmId&&this.loadGTM(e.gtmId),e.gaId&&this.loadGA(e.gaId)}loadMetaPixel(e){if(typeof window>"u")return;let t=window;if(t.fbq)return;let n=t.fbq=function(...r){n.callMethod?n.callMethod(...r):n.queue.push(r)};n.queue=[],n.loaded=!0,n.version="2.0",this.injectScript("https://connect.facebook.net/en_US/fbevents.js"),t.fbq("init",e)}loadTikTokPixel(e){if(typeof window>"u")return;let t=window;if(t.ttq)return;let n={};n.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],n.setAndDefer=function(r,a){r[a]=function(...o){r.push([a,...o])}},t.ttq=n,this.injectScript("https://analytics.tiktok.com/i18n/pixel/events.js?sdkid="+e)}loadSnapchatPixel(e){if(typeof window>"u")return;let t=window;t.snaptr||(t.snaptr=function(...n){t.snaptr.handleRequest?t.snaptr.handleRequest(...n):t.snaptr.queue.push(n)},t.snaptr.queue=[],this.injectScript("https://sc-static.net/scevent.min.js"),t.snaptr("init",e))}loadGTM(e){if(typeof window>"u")return;let t=window;t.dataLayer=t.dataLayer??[],t.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),this.injectScript(`https://www.googletagmanager.com/gtm.js?id=${e}`)}loadGA(e){if(typeof window>"u")return;this.injectScript(`https://www.googletagmanager.com/gtag/js?id=${e}`);let t=window;t.dataLayer=t.dataLayer??[],t.gtag=function(...n){t.dataLayer.push(n)},t.gtag("js",new Date),t.gtag("config",e)}injectScript(e){if(typeof document>"u")return;let t=document.createElement("script");t.async=!0,t.src=e,document.head.appendChild(t)}sendToMeta(e,t){let n=typeof window<"u"?window:null,r=n==null?void 0:n.fbq;if(!r)return;let o={PageView:"PageView",ViewContent:"ViewContent",AddToCart:"AddToCart",InitiateCheckout:"InitiateCheckout",AddPaymentInfo:"AddPaymentInfo",Purchase:"Purchase"}[e];o?r("track",o,t):r("trackCustom",e,t)}sendToTikTok(e,t){var a,o;let n=typeof window<"u"?window:null,r=n==null?void 0:n.ttq;r&&(e==="PageView"?(a=r.page)==null||a.call(r):(o=r.track)==null||o.call(r,e,t))}sendToSnapchat(e,t){let n=typeof window<"u"?window:null,r=n==null?void 0:n.snaptr;if(!r)return;let o={PageView:"PAGE_VIEW",ViewContent:"VIEW_CONTENT",AddToCart:"ADD_CART",InitiateCheckout:"START_CHECKOUT",Purchase:"PURCHASE"}[e];o&&r("track",o,t)}sendToGTM(e,t){let n=typeof window<"u"?window:null,r=n==null?void 0:n.dataLayer;r&&r.push({event:e,...t})}sendToGA(e,t){let n=typeof window<"u"?window:null,r=n==null?void 0:n.gtag;r&&r("event",e,t)}};var F=class{constructor(e,t){this.http=e;this.storeId=t}async loadOffer(e){return(await this.http.get(`/api/v1/checkout-offers/${e}`,{params:{storeId:this.storeId}})).offer}async listOffers(e){return(await this.http.get("/api/v1/checkout-offers",{params:{storeId:this.storeId,type:e==null?void 0:e.type}})).offers}async acceptOffer(e){return this.http.post("/api/v1/checkout-offers/accept",{offerId:e.offerId,checkoutSessionId:e.checkoutSessionId,storeId:this.storeId,paymentInstrumentId:e.paymentInstrumentId})}async declineOffer(e){return this.http.post("/api/v1/checkout-offers/decline",{offerId:e.offerId,checkoutSessionId:e.checkoutSessionId,storeId:this.storeId})}async listOrderBumps(e){return(await this.http.get("/api/v1/checkout-offers",{params:{storeId:this.storeId,checkoutSessionId:e,type:"orderbump"}})).offers}async toggleOrderBump(e){await this.http.post(`/api/v1/checkout-sessions/${e.checkoutSessionId}/order-bumps`,{offerId:e.offerId,selected:e.selected})}};var G=class{constructor(e,t){this.http=e;this.storeId=t}async getProfile(e){return(await this.http.get(`/api/v1/customers/${e}`,{params:{storeId:this.storeId}})).customer}async getByEmail(e){try{return(await this.http.get("/api/v1/customers/by-email",{params:{email:e,storeId:this.storeId}})).customer}catch{return null}}async updateProfile(e,t){return(await this.http.patch(`/api/v1/customers/${e}`,{storeId:this.storeId,...t})).customer}async getOrders(e,t){return this.http.get(`/api/v1/customers/${e}/orders`,{params:{storeId:this.storeId,limit:t==null?void 0:t.limit,offset:t==null?void 0:t.offset}})}async getOrder(e){return(await this.http.get(`/api/v1/orders/${e}`,{params:{storeId:this.storeId}})).order}async getSubscriptions(e){return(await this.http.get(`/api/v1/customers/${e}/subscriptions`,{params:{storeId:this.storeId}})).subscriptions}async getSubscription(e){return(await this.http.get(`/api/v1/subscriptions/${e}`,{params:{storeId:this.storeId}})).subscription}};var J=class{constructor(e,t){this.http=e;this.storeId=t}async getProducts(e){var r,a;let t={storeId:this.storeId,includeVariants:!0,includePrices:!0};return(r=e==null?void 0:e.productIds)!=null&&r.length&&(t.productIds=e.productIds),(a=e==null?void 0:e.variantIds)!=null&&a.length&&(t.variantIds=e.variantIds),(await this.http.post("/api/v1/products",t)).items??[]}async getProduct(e){return(await this.getProducts({productIds:[e]}))[0]??null}};var B=class{constructor(e){let t=e.environment??"production",n=U.resolveBaseUrl(t,e.baseUrl);this.config={...e,environment:t,baseUrl:n,timeout:e.timeout??3e4},this.http=new U({baseUrl:n,timeout:this.config.timeout,apiKey:e.apiKey,getToken:()=>this._sessionToken});let r=a=>{this._sessionToken=a};this.checkout=new D(this.http,this.config.storeId,r),this.payment=new V(this.http,this.config.storeId,t),this.analytics=new z(this.http,this.config.storeId),this.offers=new F(this.http,this.config.storeId),this.customer=new G(this.http,this.config.storeId),this.catalog=new J(this.http,this.config.storeId)}setSessionToken(e){this._sessionToken=e}};function X(s){return new B(s)}var ee=A("react/jsx-runtime"),Y=(0,O.createContext)(null);function Z({storeId:s,environment:e,apiKey:t,baseUrl:n,config:r,children:a}){let o=(0,O.useMemo)(()=>X(r??{storeId:s,environment:e,apiKey:t,baseUrl:n}),[s,e,t,n,r]),l=(0,O.useMemo)(()=>({client:o}),[o]);return(0,ee.jsx)(Y.Provider,{value:l,children:a})}function R(){let s=(0,O.useContext)(Y);if(!s)throw new Error("useHeadlessClient must be used within <TagadaHeadlessProvider>");return s.client}var S=A("react");function te(s,e){let t=R(),[n,r]=(0,S.useState)(null),[a,o]=(0,S.useState)(!1),[l,d]=(0,S.useState)(null),p=(0,S.useCallback)(async()=>{if(s){o(!0),d(null);try{let m=await t.checkout.loadSession(s,e);r(m)}catch(m){d(m instanceof Error?m:new Error(String(m)))}finally{o(!1)}}},[t,s,e]);(0,S.useEffect)(()=>{p()},[p]);let u=(0,S.useCallback)(async m=>{o(!0),d(null);try{let k=await t.checkout.createSession(m),H=new URL(window.location.href);H.searchParams.set("checkoutToken",k.checkoutToken),H.searchParams.set("token",k.sessionToken),window.history.replaceState({},"",H.toString());let K=await t.checkout.loadSession(k.checkoutToken,k.sessionToken);r(K)}catch(k){d(k instanceof Error?k:new Error(String(k)))}finally{o(!1)}},[t]),g=(0,S.useCallback)(async m=>{if(!n)return;let k=await t.checkout.updateCart(n.id,m);r(k)},[t,n]),c=(0,S.useCallback)(async m=>{if(!n)return;let k=await t.checkout.updateCustomer(n.id,m);r(k)},[t,n]),P=(0,S.useCallback)(async m=>{if(!n)return;let k=await t.checkout.updateAddress(n.id,m);r(k)},[t,n]),h=(0,S.useCallback)(async m=>{if(!n)return;let k=await t.checkout.applyPromoCode(n.id,m);r(k)},[t,n]),i=(0,S.useCallback)(async()=>{if(!n)return;let m=await t.checkout.removePromoCode(n.id);r(m)},[t,n]),f=(0,S.useCallback)(async()=>n?t.checkout.getShippingRates(n.id):[],[t,n]),y=(0,S.useCallback)(async m=>{if(!n)return;let k=await t.checkout.selectShippingRate(n.id,m);r(k)},[t,n]);return{session:n,isLoading:a,error:l,refresh:p,createSession:u,updateCart:g,updateCustomer:c,updateAddress:P,applyPromo:h,removePromo:i,getShippingRates:f,selectShippingRate:y}}var I=A("react");function ne(){let s=R(),[e,t]=(0,I.useState)(null),[n,r]=(0,I.useState)(null),[a,o]=(0,I.useState)(null),[l,d]=(0,I.useState)(!1),[p,u]=(0,I.useState)(null),[g,c]=(0,I.useState)(null),P=(0,I.useRef)(!1),h=(0,I.useCallback)(async C=>{if(!P.current){P.current=!0;try{let[w,v,ae]=await Promise.all([s.payment.getPaymentSetup(C),s.payment.getExpressMethods(C),s.payment.getStoreConfig()]);t(w),r(v),o(ae)}catch(w){P.current=!1,c(w instanceof Error?w:new Error(String(w)))}}},[s]),i=(0,I.useCallback)(C=>async()=>{d(!0),c(null);try{return await C()}catch(w){let v=w instanceof Error?w:new Error(String(w));throw c(v),v}finally{d(!1)}},[]),f=(0,I.useCallback)(async C=>{d(!0),c(null);try{let w=await s.payment.pay(C);return u(w),w}catch(w){let v=w instanceof Error?w:new Error(String(w));throw c(v),v}finally{d(!1)}},[s]),y=(0,I.useCallback)(C=>s.payment.tokenizeCard(C),[s]),m=(0,I.useCallback)(async C=>{let v=await i(()=>s.payment.processApplePay(C))();return u(v),v},[s,i]),k=(0,I.useCallback)(async C=>{let v=await i(()=>s.payment.processGooglePay(C))();return u(v),v},[s,i]),H=(0,I.useCallback)(async C=>{let v=await i(()=>s.payment.processApm(C))();return u(v),v},[s,i]),K=(0,I.useCallback)(C=>s.payment.pollPaymentStatus(C),[s]);return{paymentSetup:e,expressMethods:n,storeConfig:a,isProcessing:l,result:p,error:g,loadPaymentSetup:h,pay:f,tokenizeCard:y,processApplePay:m,processGooglePay:k,processApm:H,pollStatus:K}}var E=A("react");function re(){let s=R(),[e,t]=(0,E.useState)(null),[n,r]=(0,E.useState)(!1),[a,o]=(0,E.useState)(null),[l,d]=(0,E.useState)(null),p=(0,E.useCallback)(async h=>{r(!0),o(null);try{let i=await s.offers.loadOffer(h);return t(i),i}catch(i){let f=i instanceof Error?i:new Error(String(i));throw o(f),f}finally{r(!1)}},[s]),u=(0,E.useCallback)(h=>s.offers.listOffers(h),[s]),g=(0,E.useCallback)(async h=>{r(!0),o(null);try{let i=await s.offers.acceptOffer(h);return d(i),i}catch(i){let f=i instanceof Error?i:new Error(String(i));throw o(f),f}finally{r(!1)}},[s]),c=(0,E.useCallback)(async h=>{r(!0),o(null);try{let i=await s.offers.declineOffer(h);return d(i),i}catch(i){let f=i instanceof Error?i:new Error(String(i));throw o(f),f}finally{r(!1)}},[s]),P=(0,E.useCallback)(h=>s.offers.listOrderBumps(h),[s]);return{offer:e,isLoading:n,error:a,result:l,loadOffer:p,listOffers:u,acceptOffer:g,declineOffer:c,listOrderBumps:P}}var T=A("react");function se(s){let e=R(),[t,n]=(0,T.useState)(null),[r,a]=(0,T.useState)([]),[o,l]=(0,T.useState)([]),[d,p]=(0,T.useState)(!1),[u,g]=(0,T.useState)(null),c=(0,T.useCallback)(async f=>{p(!0),g(null);try{let y=await e.customer.getProfile(f);n(y)}catch(y){g(y instanceof Error?y:new Error(String(y)))}finally{p(!1)}},[e]),P=(0,T.useCallback)(async f=>{try{let y=await e.customer.getOrders(f);a(y.orders)}catch(y){g(y instanceof Error?y:new Error(String(y)))}},[e]),h=(0,T.useCallback)(async f=>{try{let y=await e.customer.getSubscriptions(f);l(y)}catch(y){g(y instanceof Error?y:new Error(String(y)))}},[e]),i=(0,T.useCallback)(async(f,y)=>{try{let m=await e.customer.updateProfile(f,y);n(m)}catch(m){g(m instanceof Error?m:new Error(String(m)))}},[e]);return(0,T.useEffect)(()=>{s&&c(s)},[s,c]),{customer:t,orders:r,subscriptions:o,isLoading:d,error:u,loadCustomer:c,loadOrders:P,loadSubscriptions:h,updateProfile:i}}var b=A("react");function oe(s){let e=R(),t=(0,b.useRef)(!1);(0,b.useEffect)(()=>{t.current||(t.current=!0,e.analytics.init({pixelConfig:s==null?void 0:s.pixelConfig}))},[e,s==null?void 0:s.pixelConfig]);let n=(0,b.useCallback)(c=>e.analytics.trackPageView(c),[e]),r=(0,b.useCallback)(c=>e.analytics.trackViewContent(c),[e]),a=(0,b.useCallback)(c=>e.analytics.trackAddToCart(c),[e]),o=(0,b.useCallback)(c=>e.analytics.trackInitiateCheckout(c),[e]),l=(0,b.useCallback)(c=>e.analytics.trackAddPaymentInfo(c),[e]),d=(0,b.useCallback)(c=>e.analytics.trackPurchase(c),[e]),p=(0,b.useCallback)(c=>e.analytics.trackStep(c),[e]),u=(0,b.useCallback)(c=>e.analytics.trackConversion(c),[e]),g=(0,b.useCallback)((c,P)=>e.analytics.trackCustomEvent(c,P),[e]);return{trackPageView:n,trackViewContent:r,trackAddToCart:a,trackInitiateCheckout:o,trackAddPaymentInfo:l,trackPurchase:d,trackStep:p,trackConversion:u,trackCustomEvent:g}}var M=A("react");function ie(){let s=R(),[e,t]=(0,M.useState)([]),[n,r]=(0,M.useState)(!1),[a,o]=(0,M.useState)(null),l=(0,M.useCallback)(async p=>{r(!0),o(null);try{let u=await s.catalog.getProducts(p);return t(u),u}catch(u){let g=u instanceof Error?u:new Error(String(u));throw o(g),g}finally{r(!1)}},[s]),d=(0,M.useCallback)(async p=>{r(!0),o(null);try{return await s.catalog.getProduct(p)}catch(u){let g=u instanceof Error?u:new Error(String(u));throw o(g),g}finally{r(!1)}},[s]);return{products:e,isLoading:n,error:a,loadProducts:l,loadProduct:d}}return fe(he);})();
|
|
6
|
+
"use strict";var TagadaHeadlessReactBundle=(()=>{var ce=Object.create;var j=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty;var A=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+s+'" is not supported')});var me=(s,e)=>{for(var t in e)j(s,t,{get:e[t],enumerable:!0})},Q=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of de(e))!pe.call(s,n)&&n!==t&&j(s,n,{get:()=>e[n],enumerable:!(r=ue(e,n))||r.enumerable});return s};var ge=(s,e,t)=>(t=s!=null?ce(le(s)):{},Q(e||!s||!s.__esModule?j(t,"default",{value:s,enumerable:!0}):t,s)),fe=s=>Q(j({},"__esModule",{value:!0}),s);var he={};me(he,{TagadaHeadlessProvider:()=>Z,useAnalytics:()=>oe,useCatalog:()=>ie,useCheckout:()=>te,useCustomer:()=>se,useHeadlessClient:()=>b,useOffers:()=>ne,usePayment:()=>re});var O=A("react");var E=class extends Error{constructor(e,t,r,n){super(e),this.name="TagadaError",this.code=t,this.statusCode=r,this.details=n}},N=class extends E{constructor(e="Authentication failed. Check your API key or checkout token."){super(e,"auth_error",401),this.name="TagadaAuthError"}},L=class extends E{constructor(e,t=[]){super(e,"validation_error",422,{errors:t}),this.name="TagadaValidationError",this.errors=t}},$=class extends E{constructor(e,t){super(`${e} "${t}" not found.`,"not_found",404),this.name="TagadaNotFoundError"}},_=class extends E{constructor(e=1e3){super(`Rate limited. Retry after ${e}ms.`,"rate_limit",429),this.name="TagadaRateLimitError",this.retryAfterMs=e}};var q=class extends E{constructor(e="Network request failed. Check your connection."){super(e,"network_error"),this.name="TagadaNetworkError"}};var W={production:"https://app.tagadapay.com",development:"https://app.dev.tagadapay.com",local:"http://localhost:3000"},U=class{constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,""),this.timeout=e.timeout,this.apiKey=e.apiKey,this.getToken=e.getToken}static resolveBaseUrl(e,t){return t??W[e]??W.production}async request(e,t={}){var y;let{method:r="GET",body:n,headers:a={},params:o,token:m,signal:u}=t,c=`${this.baseUrl}${e}`;if(o){let i=new URLSearchParams;for(let[k,g]of Object.entries(o))g!==void 0&&i.set(k,String(g));let h=i.toString();h&&(c+=`?${h}`)}let l={"Content-Type":"application/json",...a},f=m??this.apiKey??((y=this.getToken)==null?void 0:y.call(this));f&&(l["x-cms-token"]=f);let d=new AbortController,P=setTimeout(()=>d.abort(),this.timeout);try{let i=await fetch(c,{method:r,headers:l,body:n!=null?JSON.stringify(n):void 0,signal:u??d.signal});if(clearTimeout(P),i.ok){let h=await i.text();return h?JSON.parse(h):{}}throw await this.handleErrorResponse(i,e),new E("Unexpected error","unknown",i.status)}catch(i){throw clearTimeout(P),i instanceof E?i:i instanceof DOMException&&i.name==="AbortError"?new q(`Request to ${e} timed out after ${this.timeout}ms.`):new q(i instanceof Error?i.message:"Network request failed.")}}get(e,t){return this.request(e,{...t,method:"GET"})}post(e,t,r){return this.request(e,{...r,method:"POST",body:t})}patch(e,t,r){return this.request(e,{...r,method:"PATCH",body:t})}put(e,t,r){return this.request(e,{...r,method:"PUT",body:t})}delete(e,t){return this.request(e,{...t,method:"DELETE"})}async handleErrorResponse(e,t){let r={};try{r=await e.json()}catch{}let n=r.message??r.error??`Request failed: ${e.status} ${e.statusText} on ${t}`;switch(e.status){case 401:case 403:throw new N(n);case 404:throw new $(t,"");case 422:{let a=Array.isArray(r.errors)?r.errors:[];throw new L(n,a)}case 429:{let a=Number(e.headers.get("Retry-After")??"1")*1e3;throw new _(a)}default:throw new E(n,"api_error",e.status,r)}}};var D=class{constructor(e,t,r){this.http=e;this.storeId=t;this.onTokenChange=r}async loadSession(e,t){var n;t&&(this.sessionToken=t,(n=this.onTokenChange)==null||n.call(this,t));let r=await this.http.get(`/api/v1/checkout-sessions/${e}/v2`,{params:{skipAsyncWait:"false"},token:this.sessionToken});return this.normalizeSession(r)}async createSession(e){var m;let t=e.items.map(u=>({variantId:u.variantId,priceId:u.priceId,quantity:u.quantity})),r={storeId:this.storeId,lineItems:t};e.currency&&(r.currency=e.currency),e.returnUrl&&(r.returnUrl=e.returnUrl),e.customerEmail&&(r.customer={email:e.customerEmail,firstName:e.customerFirstName,lastName:e.customerLastName,currency:e.currency});let n=await this.http.post("/api/v1/checkout/session/init",r),o=new URL(n.checkoutUrl).searchParams.get("token")??"";return this.sessionToken=o,o&&((m=this.onTokenChange)==null||m.call(this,o)),{checkoutUrl:n.checkoutUrl,checkoutToken:n.checkoutToken,sessionToken:o,customerId:n.customerId}}async updateCart(e,t){return this.http.post(`/api/v1/checkout-sessions/${e}/line-items`,{items:t},{token:this.sessionToken})}async updateCustomer(e,t){await this.http.post(`/api/v1/checkout-sessions/${e}/customer-and-session-info`,{checkoutSessionId:e,partial:!0,customerData:{email:t.email},shippingAddress:{firstName:t.firstName,lastName:t.lastName,phone:t.phone},billingAddress:{},differentBillingAddress:!1},{token:this.sessionToken})}async updateAddress(e,t){let r=n=>{if(n)return{address1:n.line1,address2:n.line2,city:n.city,state:n.state,postal:n.postalCode,country:n.country}};await this.http.post(`/api/v1/checkout-sessions/${e}/address`,{checkoutSessionId:e,data:{shippingAddress:r(t.shippingAddress)??{},billingAddress:r(t.billingAddress)}},{token:this.sessionToken})}async applyPromoCode(e,t){await this.http.post(`/api/v1/checkout-sessions/${e}/promotions/apply`,{checkoutSessionId:e,code:t},{token:this.sessionToken})}async removePromoCode(e,t){let r=t??"default";await this.http.delete(`/api/v1/checkout-sessions/${e}/promotions/${r}`,{token:this.sessionToken})}async getShippingRates(e){return(await this.http.get(`/api/v1/checkout-sessions/${e}/shipping-rates`,{token:this.sessionToken})).rates??[]}async selectShippingRate(e,t){await this.http.post(`/api/v1/checkout-sessions/${e}/shipping-rate`,{checkoutSessionId:e,shippingRateId:t},{token:this.sessionToken})}normalizeSession(e){let t=e.checkoutSession,r=t.orderSummaries??[],n=e.summary??t.summary??r[0]??{},a=t.sessionLineItems??[],o=t.customer,m=a.map(c=>{let l=c.price,f=(l==null?void 0:l.variant)??{},d=f.product??{},P=(l==null?void 0:l.currencyOptions)??{},y=P.USD??P[Object.keys(P)[0]];return{id:c.id,variantId:c.variantId,priceId:c.priceId,productName:d.name??"",variantName:f.name??"",quantity:c.quantity??1,unitAmount:(y==null?void 0:y.amount)??0,totalAmount:((y==null?void 0:y.amount)??0)*(c.quantity??1),currency:t.selectedPresentmentCurrency??"USD",imageUrl:f.imageUrl??""}}),u=n.items??[];return{id:t.id,storeId:t.storeId,checkoutToken:t.checkoutToken,currency:t.selectedPresentmentCurrency??"USD",items:m,totals:{subtotal:n.subtotalAmount??0,discount:n.totalPromotionAmount??0,shipping:n.shippingCost??0,tax:n.totalTaxAmount??0,total:n.totalAmount??u.reduce((c,l)=>c+(l.amount??0),0),currency:n.currency??t.selectedPresentmentCurrency??"USD"},customer:o?{id:o.id,email:o.email,firstName:o.firstName,lastName:o.lastName}:void 0,shippingAddress:t.shippingAddress,billingAddress:t.billingAddress,metadata:t.metadata}}};var V=class{constructor(e,t,r){this.http=e;this.storeId=t;this.environment=r}async getPaymentSetup(e){let t=await this.http.get("/api/v1/payment-methods",{params:{checkoutSessionId:e}}),r={};for(let n of t.methods??[]){let a=n.provider?`${n.method}:${n.provider}`:n.method;r[a]=n}return r}async getExpressMethods(e){var n,a;let t=await this.getPaymentSetup(e),r={};for(let[,o]of Object.entries(t)){if(!o.enabled||!o.express)continue;let m=o.method,u={type:m,available:!0,processorId:o.processorId,publishableKey:o.publishableKey,metadata:o.metadata};if(m==="apple_pay"||o.type==="apple_pay"){let c=typeof window<"u"&&"ApplePaySession"in window&&((a=(n=window.ApplePaySession)==null?void 0:n.canMakePayments)==null?void 0:a.call(n));r.applePay={...u,available:!!c}}else m==="google_pay"||o.type==="google_pay"?r.googlePay=u:m==="paypal"?r.paypal=u:m==="klarna"||m==="klarna_express"?r.klarna=u:m==="link"&&(r.link=u)}return r}async getStoreConfig(){let e=await this.http.get("/api/v1/checkout/config",{params:{storeId:this.storeId}});return e.config??e}async getEnabledMethods(e){let t=await this.getPaymentSetup(e);return Object.entries(t).filter(([,r])=>r.enabled).map(([r])=>r)}async tokenizeCard(e){let t=await this.loadCoreJs(),r=new t.Tokenizer({environment:this.environment});await r.initialize();let n={cardNumber:e.cardNumber,expiryDate:e.expiryDate,cvc:e.cvc};e.cardholderName&&(n.cardholderName=e.cardholderName);let[a,o]=await Promise.all([r.tokenizeCard(n),r.tokenizeCardRaw(n)]);return{tagadaToken:a,rawToken:o}}async createInstrument(e){return this.http.post("/api/v1/payment/create-instrument-from-token",{tagadaToken:e.tagadaToken})}async create3dsSession(e){return this.http.post("/api/public/v1/threeds/create-session",{provider:e.provider??"basis_theory",storeId:this.storeId,paymentInstrumentId:e.paymentInstrumentId,sessionData:e.sessionData})}async pay(e){return e.tagadaToken&&!e.paymentInstrumentId?this.http.post("/api/v1/payment/pay-with-token",{tagadaToken:e.tagadaToken,checkoutSessionId:e.checkoutSessionId,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,metadata:e.metadata}):this.http.post("/api/public/v1/checkout/pay-v2",{checkoutSessionId:e.checkoutSessionId,paymentInstrumentId:e.paymentInstrumentId,storeId:this.storeId,paymentFlowId:e.paymentFlowId,threedsSessionId:e.threedsSessionId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,metadata:e.metadata})}async payDirect(e){return this.http.post("/api/public/v1/checkout/pay-v2",{checkoutSessionId:e.checkoutSessionId,paymentInstrumentId:e.paymentInstrumentId??"",storeId:this.storeId,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:e.paymentMethod,isExpress:e.isExpress,threedsSessionId:e.threedsSessionId})}async processApplePay(e){let t=await this.loadCoreJs(),r=new t.Tokenizer({environment:this.environment});await r.initialize();let{tagadaToken:n}=await r.tokenizeApplePay(e.applePayToken);return this.pay({checkoutSessionId:e.checkoutSessionId,tagadaToken:n,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:"apple_pay",isExpress:!0})}async processGooglePay(e){let t=await this.loadCoreJs(),r=new t.Tokenizer({environment:this.environment});await r.initialize();let{tagadaToken:n}=await r.tokenizeGooglePay(e.googlePayToken);return this.pay({checkoutSessionId:e.checkoutSessionId,tagadaToken:n,paymentFlowId:e.paymentFlowId,processorId:e.processorId,paymentMethod:"google_pay",isExpress:!0})}async processApm(e){return this.payDirect({checkoutSessionId:e.checkoutSessionId,paymentMethod:e.paymentMethod,processorId:e.processorId,paymentFlowId:e.paymentFlowId})}async getPaymentStatus(e){return this.http.get(`/api/v1/payments/${e}`)}async pollPaymentStatus(e,t){let r=(t==null?void 0:t.intervalMs)??1500,n=(t==null?void 0:t.timeoutMs)??6e4,a=Date.now();for(;Date.now()-a<n;){let o=await this.getPaymentStatus(e);if(o.status==="succeeded"||o.status==="failed"||o.status==="declined")return o;await new Promise(m=>setTimeout(m,r))}throw new Error(`Payment ${e} did not reach terminal status within ${n}ms.`)}async completeAfter3ds(e){return this.http.post("/api/v1/payments/complete-after-3ds",{paymentId:e})}async loadCoreJs(){try{return await import("@tagadapay/core-js")}catch{throw new Error("This method requires @tagadapay/core-js. Install it: npm install @tagadapay/core-js")}}};var z=class{constructor(e,t){this.http=e;this.storeId=t;this.pixels={loaded:!1};this.eventQueue=[];this.dedupeSet=new Set}async init(e){if(this.pixels.loaded)return;let t=e==null?void 0:e.pixelConfig;if(!t)try{t=(await this.http.get("/api/v1/checkout/config",{params:{storeId:this.storeId}})).pixels}catch{}this.pixels={loaded:!0,config:t},typeof window<"u"&&t&&this.loadPixelScripts(t),this.flushQueue()}trackPageView(e){this.fireEvent("PageView",{page:e??this.getCurrentPath()})}trackViewContent(e){this.fireEvent("ViewContent",e)}trackAddToCart(e){this.fireEvent("AddToCart",e)}trackInitiateCheckout(e){this.fireEvent("InitiateCheckout",e??{})}trackAddPaymentInfo(e){this.fireEvent("AddPaymentInfo",e??{})}trackPurchase(e){this.fireEvent("Purchase",e,!0)}trackCustomEvent(e,t){this.fireEvent(e,t??{})}trackStep(e){this.fireEvent("FunnelStep",e),this.http.post("/api/v1/funnel-tracking/step",{storeId:this.storeId,...e}).catch(()=>{})}trackConversion(e){this.fireEvent("Conversion",e,!0)}fireEvent(e,t,r=!1){if(r){let n=`${e}:${JSON.stringify(t)}`;if(this.dedupeSet.has(n))return;this.dedupeSet.add(n)}if(!this.pixels.loaded){this.eventQueue.push({event:e,data:t});return}this.sendToMeta(e,t),this.sendToTikTok(e,t),this.sendToSnapchat(e,t),this.sendToGTM(e,t),this.sendToGA(e,t)}flushQueue(){let e=[...this.eventQueue];this.eventQueue=[];for(let{event:t,data:r}of e)this.fireEvent(t,r)}getCurrentPath(){return typeof window<"u"?window.location.pathname:"/"}loadPixelScripts(e){e.metaPixelId&&this.loadMetaPixel(e.metaPixelId),e.tiktokPixelId&&this.loadTikTokPixel(e.tiktokPixelId),e.snapchatPixelId&&this.loadSnapchatPixel(e.snapchatPixelId),e.gtmId&&this.loadGTM(e.gtmId),e.gaId&&this.loadGA(e.gaId)}loadMetaPixel(e){if(typeof window>"u")return;let t=window;if(t.fbq)return;let r=t.fbq=function(...n){r.callMethod?r.callMethod(...n):r.queue.push(n)};r.queue=[],r.loaded=!0,r.version="2.0",this.injectScript("https://connect.facebook.net/en_US/fbevents.js"),t.fbq("init",e)}loadTikTokPixel(e){if(typeof window>"u")return;let t=window;if(t.ttq)return;let r={};r.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],r.setAndDefer=function(n,a){n[a]=function(...o){n.push([a,...o])}},t.ttq=r,this.injectScript("https://analytics.tiktok.com/i18n/pixel/events.js?sdkid="+e)}loadSnapchatPixel(e){if(typeof window>"u")return;let t=window;t.snaptr||(t.snaptr=function(...r){t.snaptr.handleRequest?t.snaptr.handleRequest(...r):t.snaptr.queue.push(r)},t.snaptr.queue=[],this.injectScript("https://sc-static.net/scevent.min.js"),t.snaptr("init",e))}loadGTM(e){if(typeof window>"u")return;let t=window;t.dataLayer=t.dataLayer??[],t.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),this.injectScript(`https://www.googletagmanager.com/gtm.js?id=${e}`)}loadGA(e){if(typeof window>"u")return;this.injectScript(`https://www.googletagmanager.com/gtag/js?id=${e}`);let t=window;t.dataLayer=t.dataLayer??[],t.gtag=function(...r){t.dataLayer.push(r)},t.gtag("js",new Date),t.gtag("config",e)}injectScript(e){if(typeof document>"u")return;let t=document.createElement("script");t.async=!0,t.src=e,document.head.appendChild(t)}sendToMeta(e,t){let r=typeof window<"u"?window:null,n=r==null?void 0:r.fbq;if(!n)return;let o={PageView:"PageView",ViewContent:"ViewContent",AddToCart:"AddToCart",InitiateCheckout:"InitiateCheckout",AddPaymentInfo:"AddPaymentInfo",Purchase:"Purchase"}[e];o?n("track",o,t):n("trackCustom",e,t)}sendToTikTok(e,t){var a,o;let r=typeof window<"u"?window:null,n=r==null?void 0:r.ttq;n&&(e==="PageView"?(a=n.page)==null||a.call(n):(o=n.track)==null||o.call(n,e,t))}sendToSnapchat(e,t){let r=typeof window<"u"?window:null,n=r==null?void 0:r.snaptr;if(!n)return;let o={PageView:"PAGE_VIEW",ViewContent:"VIEW_CONTENT",AddToCart:"ADD_CART",InitiateCheckout:"START_CHECKOUT",Purchase:"PURCHASE"}[e];o&&n("track",o,t)}sendToGTM(e,t){let r=typeof window<"u"?window:null,n=r==null?void 0:r.dataLayer;n&&n.push({event:e,...t})}sendToGA(e,t){let r=typeof window<"u"?window:null,n=r==null?void 0:r.gtag;n&&n("event",e,t)}};var F=class{constructor(e,t){this.http=e;this.storeId=t}async loadOffer(e){return(await this.http.get(`/api/v1/checkout-offers/${e}`,{params:{storeId:this.storeId}})).offer}async listOffers(e){return(await this.http.get("/api/v1/checkout-offers",{params:{storeId:this.storeId,type:e==null?void 0:e.type}})).offers}async acceptOffer(e){return this.http.post("/api/v1/checkout-offers/accept",{offerId:e.offerId,checkoutSessionId:e.checkoutSessionId,storeId:this.storeId,paymentInstrumentId:e.paymentInstrumentId})}async declineOffer(e){return this.http.post("/api/v1/checkout-offers/decline",{offerId:e.offerId,checkoutSessionId:e.checkoutSessionId,storeId:this.storeId})}async listOrderBumps(e){return(await this.http.get("/api/v1/checkout-offers",{params:{storeId:this.storeId,checkoutSessionId:e,type:"orderbump"}})).offers}async toggleOrderBump(e){await this.http.post(`/api/v1/checkout-sessions/${e.checkoutSessionId}/order-bumps`,{offerId:e.offerId,selected:e.selected})}};var G=class{constructor(e,t){this.http=e;this.storeId=t}async getProfile(e){return(await this.http.get(`/api/v1/customers/${e}`,{params:{storeId:this.storeId}})).customer}async getByEmail(e){try{return(await this.http.get("/api/v1/customers/by-email",{params:{email:e,storeId:this.storeId}})).customer}catch{return null}}async updateProfile(e,t){return(await this.http.patch(`/api/v1/customers/${e}`,{storeId:this.storeId,...t})).customer}async getOrders(e,t){return this.http.get(`/api/v1/customers/${e}/orders`,{params:{storeId:this.storeId,limit:t==null?void 0:t.limit,offset:t==null?void 0:t.offset}})}async getOrder(e){return(await this.http.get(`/api/v1/orders/${e}`,{params:{storeId:this.storeId}})).order}async getSubscriptions(e){return(await this.http.get(`/api/v1/customers/${e}/subscriptions`,{params:{storeId:this.storeId}})).subscriptions}async getSubscription(e){return(await this.http.get(`/api/v1/subscriptions/${e}`,{params:{storeId:this.storeId}})).subscription}};var B=class{constructor(e,t){this.http=e;this.storeId=t}async getProducts(e){var n,a;let t={storeId:this.storeId,includeVariants:!0,includePrices:!0};return(n=e==null?void 0:e.productIds)!=null&&n.length&&(t.productIds=e.productIds),(a=e==null?void 0:e.variantIds)!=null&&a.length&&(t.variantIds=e.variantIds),(await this.http.post("/api/v1/products",t)).items??[]}async getProduct(e){return(await this.getProducts({productIds:[e]}))[0]??null}};var K=class{constructor(e){let t=e.environment??"production",r=U.resolveBaseUrl(t,e.baseUrl);this.config={...e,environment:t,baseUrl:r,timeout:e.timeout??3e4},this.http=new U({baseUrl:r,timeout:this.config.timeout,apiKey:e.apiKey,getToken:()=>this._sessionToken});let n=a=>{this._sessionToken=a};this.checkout=new D(this.http,this.config.storeId,n),this.payment=new V(this.http,this.config.storeId,t),this.analytics=new z(this.http,this.config.storeId),this.offers=new F(this.http,this.config.storeId),this.customer=new G(this.http,this.config.storeId),this.catalog=new B(this.http,this.config.storeId)}setSessionToken(e){this._sessionToken=e}};function X(s){return new K(s)}var ee=A("react/jsx-runtime"),Y=(0,O.createContext)(null);function Z({storeId:s,environment:e,apiKey:t,baseUrl:r,config:n,children:a}){let o=(0,O.useMemo)(()=>X(n??{storeId:s,environment:e,apiKey:t,baseUrl:r}),[s,e,t,r,n]),m=(0,O.useMemo)(()=>({client:o}),[o]);return(0,ee.jsx)(Y.Provider,{value:m,children:a})}function b(){let s=(0,O.useContext)(Y);if(!s)throw new Error("useHeadlessClient must be used within <TagadaHeadlessProvider>");return s.client}var S=A("react");function te(s,e){let t=b(),[r,n]=(0,S.useState)(null),[a,o]=(0,S.useState)(!1),[m,u]=(0,S.useState)(null),c=(0,S.useCallback)(async()=>{if(s){o(!0),u(null);try{let g=await t.checkout.loadSession(s,e);n(g)}catch(g){u(g instanceof Error?g:new Error(String(g)))}finally{o(!1)}}},[t,s,e]);(0,S.useEffect)(()=>{c()},[c]);let l=(0,S.useCallback)(async g=>{o(!0),u(null);try{let p=await t.checkout.createSession(g),H=new URL(window.location.href);H.searchParams.set("checkoutToken",p.checkoutToken),H.searchParams.set("token",p.sessionToken),window.history.replaceState({},"",H.toString());let J=await t.checkout.loadSession(p.checkoutToken,p.sessionToken);n(J)}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}},[t]),f=(0,S.useCallback)(async g=>{if(!r)return;let p=await t.checkout.updateCart(r.id,g);n(p)},[t,r]),d=(0,S.useCallback)(async g=>{if(r){o(!0);try{await t.checkout.updateCustomer(r.id,g),await c()}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}}},[t,r,c]),P=(0,S.useCallback)(async g=>{if(r){o(!0);try{await t.checkout.updateAddress(r.id,g),await c()}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}}},[t,r,c]),y=(0,S.useCallback)(async g=>{if(r){o(!0);try{await t.checkout.applyPromoCode(r.id,g),await c()}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}}},[t,r,c]),i=(0,S.useCallback)(async g=>{if(r){o(!0);try{await t.checkout.removePromoCode(r.id,g),await c()}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}}},[t,r,c]),h=(0,S.useCallback)(async()=>r?t.checkout.getShippingRates(r.id):[],[t,r]),k=(0,S.useCallback)(async g=>{if(r){o(!0);try{await t.checkout.selectShippingRate(r.id,g),await c()}catch(p){u(p instanceof Error?p:new Error(String(p)))}finally{o(!1)}}},[t,r,c]);return{session:r,isLoading:a,error:m,refresh:c,createSession:l,updateCart:f,updateCustomer:d,updateAddress:P,applyPromo:y,removePromo:i,getShippingRates:h,selectShippingRate:k}}var I=A("react");function re(){let s=b(),[e,t]=(0,I.useState)(null),[r,n]=(0,I.useState)(null),[a,o]=(0,I.useState)(null),[m,u]=(0,I.useState)(!1),[c,l]=(0,I.useState)(null),[f,d]=(0,I.useState)(null),P=(0,I.useRef)(!1),y=(0,I.useCallback)(async v=>{if(!P.current){P.current=!0;try{let[w,C,ae]=await Promise.all([s.payment.getPaymentSetup(v),s.payment.getExpressMethods(v),s.payment.getStoreConfig()]);t(w),n(C),o(ae)}catch(w){P.current=!1,d(w instanceof Error?w:new Error(String(w)))}}},[s]),i=(0,I.useCallback)(v=>async()=>{u(!0),d(null);try{return await v()}catch(w){let C=w instanceof Error?w:new Error(String(w));throw d(C),C}finally{u(!1)}},[]),h=(0,I.useCallback)(async v=>{u(!0),d(null);try{let w=await s.payment.pay(v);return l(w),w}catch(w){let C=w instanceof Error?w:new Error(String(w));throw d(C),C}finally{u(!1)}},[s]),k=(0,I.useCallback)(v=>s.payment.tokenizeCard(v),[s]),g=(0,I.useCallback)(async v=>{let C=await i(()=>s.payment.processApplePay(v))();return l(C),C},[s,i]),p=(0,I.useCallback)(async v=>{let C=await i(()=>s.payment.processGooglePay(v))();return l(C),C},[s,i]),H=(0,I.useCallback)(async v=>{let C=await i(()=>s.payment.processApm(v))();return l(C),C},[s,i]),J=(0,I.useCallback)(v=>s.payment.pollPaymentStatus(v),[s]);return{paymentSetup:e,expressMethods:r,storeConfig:a,isProcessing:m,result:c,error:f,loadPaymentSetup:y,pay:h,tokenizeCard:k,processApplePay:g,processGooglePay:p,processApm:H,pollStatus:J}}var x=A("react");function ne(){let s=b(),[e,t]=(0,x.useState)(null),[r,n]=(0,x.useState)(!1),[a,o]=(0,x.useState)(null),[m,u]=(0,x.useState)(null),c=(0,x.useCallback)(async y=>{n(!0),o(null);try{let i=await s.offers.loadOffer(y);return t(i),i}catch(i){let h=i instanceof Error?i:new Error(String(i));throw o(h),h}finally{n(!1)}},[s]),l=(0,x.useCallback)(y=>s.offers.listOffers(y),[s]),f=(0,x.useCallback)(async y=>{n(!0),o(null);try{let i=await s.offers.acceptOffer(y);return u(i),i}catch(i){let h=i instanceof Error?i:new Error(String(i));throw o(h),h}finally{n(!1)}},[s]),d=(0,x.useCallback)(async y=>{n(!0),o(null);try{let i=await s.offers.declineOffer(y);return u(i),i}catch(i){let h=i instanceof Error?i:new Error(String(i));throw o(h),h}finally{n(!1)}},[s]),P=(0,x.useCallback)(y=>s.offers.listOrderBumps(y),[s]);return{offer:e,isLoading:r,error:a,result:m,loadOffer:c,listOffers:l,acceptOffer:f,declineOffer:d,listOrderBumps:P}}var T=A("react");function se(s){let e=b(),[t,r]=(0,T.useState)(null),[n,a]=(0,T.useState)([]),[o,m]=(0,T.useState)([]),[u,c]=(0,T.useState)(!1),[l,f]=(0,T.useState)(null),d=(0,T.useCallback)(async h=>{c(!0),f(null);try{let k=await e.customer.getProfile(h);r(k)}catch(k){f(k instanceof Error?k:new Error(String(k)))}finally{c(!1)}},[e]),P=(0,T.useCallback)(async h=>{try{let k=await e.customer.getOrders(h);a(k.orders)}catch(k){f(k instanceof Error?k:new Error(String(k)))}},[e]),y=(0,T.useCallback)(async h=>{try{let k=await e.customer.getSubscriptions(h);m(k)}catch(k){f(k instanceof Error?k:new Error(String(k)))}},[e]),i=(0,T.useCallback)(async(h,k)=>{try{let g=await e.customer.updateProfile(h,k);r(g)}catch(g){f(g instanceof Error?g:new Error(String(g)))}},[e]);return(0,T.useEffect)(()=>{s&&d(s)},[s,d]),{customer:t,orders:n,subscriptions:o,isLoading:u,error:l,loadCustomer:d,loadOrders:P,loadSubscriptions:y,updateProfile:i}}var R=A("react");function oe(s){let e=b(),t=(0,R.useRef)(!1);(0,R.useEffect)(()=>{t.current||(t.current=!0,e.analytics.init({pixelConfig:s==null?void 0:s.pixelConfig}))},[e,s==null?void 0:s.pixelConfig]);let r=(0,R.useCallback)(d=>e.analytics.trackPageView(d),[e]),n=(0,R.useCallback)(d=>e.analytics.trackViewContent(d),[e]),a=(0,R.useCallback)(d=>e.analytics.trackAddToCart(d),[e]),o=(0,R.useCallback)(d=>e.analytics.trackInitiateCheckout(d),[e]),m=(0,R.useCallback)(d=>e.analytics.trackAddPaymentInfo(d),[e]),u=(0,R.useCallback)(d=>e.analytics.trackPurchase(d),[e]),c=(0,R.useCallback)(d=>e.analytics.trackStep(d),[e]),l=(0,R.useCallback)(d=>e.analytics.trackConversion(d),[e]),f=(0,R.useCallback)((d,P)=>e.analytics.trackCustomEvent(d,P),[e]);return{trackPageView:r,trackViewContent:n,trackAddToCart:a,trackInitiateCheckout:o,trackAddPaymentInfo:m,trackPurchase:u,trackStep:c,trackConversion:l,trackCustomEvent:f}}var M=A("react");function ie(){let s=b(),[e,t]=(0,M.useState)([]),[r,n]=(0,M.useState)(!1),[a,o]=(0,M.useState)(null),m=(0,M.useCallback)(async c=>{n(!0),o(null);try{let l=await s.catalog.getProducts(c);return t(l),l}catch(l){let f=l instanceof Error?l:new Error(String(l));throw o(f),f}finally{n(!1)}},[s]),u=(0,M.useCallback)(async c=>{n(!0),o(null);try{return await s.catalog.getProduct(c)}catch(l){let f=l instanceof Error?l:new Error(String(l));throw o(f),f}finally{n(!1)}},[s]);return{products:e,isLoading:r,error:a,loadProducts:m,loadProduct:u}}return fe(he);})();
|
|
7
7
|
if(typeof window!=="undefined"&&TagadaHeadlessReactBundle){ window.TagadaHeadlessReact=TagadaHeadlessReactBundle;}
|
|
8
8
|
//# sourceMappingURL=tagada-headless-react.min.js.map
|