@tagadapay/headless-sdk 1.5.4 → 1.6.0

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.
Files changed (33) hide show
  1. package/dist/core/client.js +1 -1
  2. package/dist/core/client.js.map +1 -1
  3. package/dist/core/modules/checkout.d.ts +67 -0
  4. package/dist/core/modules/checkout.d.ts.map +1 -1
  5. package/dist/core/modules/checkout.js +80 -0
  6. package/dist/core/modules/checkout.js.map +1 -1
  7. package/dist/core/modules/offers.d.ts +55 -2
  8. package/dist/core/modules/offers.d.ts.map +1 -1
  9. package/dist/core/modules/offers.js +49 -1
  10. package/dist/core/modules/offers.js.map +1 -1
  11. package/dist/core/modules/payment.d.ts +59 -0
  12. package/dist/core/modules/payment.d.ts.map +1 -1
  13. package/dist/core/modules/payment.js +92 -4
  14. package/dist/core/modules/payment.js.map +1 -1
  15. package/dist/core/types.d.ts +35 -5
  16. package/dist/core/types.d.ts.map +1 -1
  17. package/dist/react/hooks/useOffers.d.ts +62 -14
  18. package/dist/react/hooks/useOffers.d.ts.map +1 -1
  19. package/dist/react/hooks/useOffers.js +110 -11
  20. package/dist/react/hooks/useOffers.js.map +1 -1
  21. package/dist/react/hooks/usePayment.d.ts.map +1 -1
  22. package/dist/react/hooks/usePayment.js +6 -0
  23. package/dist/react/hooks/usePayment.js.map +1 -1
  24. package/dist/react/internal/redirectGuard.d.ts +9 -0
  25. package/dist/react/internal/redirectGuard.d.ts.map +1 -0
  26. package/dist/react/internal/redirectGuard.js +25 -0
  27. package/dist/react/internal/redirectGuard.js.map +1 -0
  28. package/dist/tagada-headless-react.min.js +2 -2
  29. package/dist/tagada-headless-react.min.js.map +4 -4
  30. package/dist/tagada-headless.js +226 -7
  31. package/dist/tagada-headless.min.js +2 -2
  32. package/dist/tagada-headless.min.js.map +3 -3
  33. package/package.json +1 -1
@@ -37,7 +37,7 @@ export class HeadlessClient {
37
37
  };
38
38
  this.checkout = new CheckoutModule(this.http, this.config.storeId, setToken);
39
39
  this.payment = new PaymentModule(this.http, this.config.storeId, environment);
40
- this.offers = new OffersModule(this.http, this.config.storeId);
40
+ this.offers = new OffersModule(this.http, this.config.storeId, this.payment);
41
41
  this.customer = new CustomerModule(this.http, this.config.storeId);
42
42
  this.catalog = new CatalogModule(this.http, this.config.storeId);
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;IAuBzB,YAAY,MAAsB;QAChC,MAAM,WAAW,GAAgB,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,WAAW;YACX,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAM;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,cAAc;IAuBzB,YAAY,MAAsB;QAChC,MAAM,WAAW,GAAgB,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACpE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,WAAW;YACX,OAAO;YACP,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAM;SAClC,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC;YACzB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAQ;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;SACnC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAa;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -78,6 +78,73 @@ export declare class CheckoutModule {
78
78
  sessionToken: string;
79
79
  customerId: string;
80
80
  }>;
81
+ /**
82
+ * Create a session and produce a self-hosted redirect URL.
83
+ *
84
+ * Convenience wrapper around `createSession()`. Builds a URL of the
85
+ * form `${origin}${checkoutPath}?checkoutToken=...&sessionToken=...`
86
+ * that you can navigate to from a Cart page. The receiving page reads
87
+ * the params via {@link CheckoutModule.parseTokensFromUrl} and calls
88
+ * {@link CheckoutModule.loadSession}.
89
+ *
90
+ * For Tagada-hosted checkouts use the `checkoutUrl` returned by
91
+ * `createSession()` directly — this helper is for **self-hosted**
92
+ * checkout pages.
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * const { url } = await tagada.checkout.createSessionUrl({
97
+ * items: [{ variantId, quantity: 1 }],
98
+ * checkoutPath: '/checkout',
99
+ * });
100
+ * window.location.href = url;
101
+ * ```
102
+ */
103
+ createSessionUrl(opts: {
104
+ items: LineItem[];
105
+ currency?: string;
106
+ returnUrl?: string;
107
+ customerEmail?: string;
108
+ customerFirstName?: string;
109
+ customerLastName?: string;
110
+ /** Path on the current origin for the self-hosted checkout. Default: `/checkout`. */
111
+ checkoutPath?: string;
112
+ /** Origin to use. Defaults to `window.location.origin`. */
113
+ origin?: string;
114
+ }): Promise<{
115
+ url: string;
116
+ checkoutUrl: string;
117
+ checkoutToken: string;
118
+ sessionToken: string;
119
+ customerId: string;
120
+ }>;
121
+ /**
122
+ * Read `checkoutToken` and session token from a URL.
123
+ *
124
+ * Recognizes both the SDK convention (`?sessionToken=`) and the
125
+ * Tagada-hosted convention (`?token=`), so the same checkout page
126
+ * works whether the user came from `createSessionUrl()` or directly
127
+ * from a Tagada-hosted redirect.
128
+ *
129
+ * Returns `null` if `checkoutToken` is missing.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * const tokens = CheckoutModule.parseTokensFromUrl();
134
+ * if (!tokens) {
135
+ * window.location.href = '/cart';
136
+ * return;
137
+ * }
138
+ * const session = await tagada.checkout.loadSession(
139
+ * tokens.checkoutToken,
140
+ * tokens.sessionToken,
141
+ * );
142
+ * ```
143
+ */
144
+ static parseTokensFromUrl(url?: string): {
145
+ checkoutToken: string;
146
+ sessionToken: string;
147
+ } | null;
81
148
  /**
82
149
  * Replace the cart items for an existing session.
83
150
  *
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
@@ -94,6 +94,86 @@ export class CheckoutModule {
94
94
  customerId: res.customerId,
95
95
  };
96
96
  }
97
+ /**
98
+ * Create a session and produce a self-hosted redirect URL.
99
+ *
100
+ * Convenience wrapper around `createSession()`. Builds a URL of the
101
+ * form `${origin}${checkoutPath}?checkoutToken=...&sessionToken=...`
102
+ * that you can navigate to from a Cart page. The receiving page reads
103
+ * the params via {@link CheckoutModule.parseTokensFromUrl} and calls
104
+ * {@link CheckoutModule.loadSession}.
105
+ *
106
+ * For Tagada-hosted checkouts use the `checkoutUrl` returned by
107
+ * `createSession()` directly — this helper is for **self-hosted**
108
+ * checkout pages.
109
+ *
110
+ * @example
111
+ * ```ts
112
+ * const { url } = await tagada.checkout.createSessionUrl({
113
+ * items: [{ variantId, quantity: 1 }],
114
+ * checkoutPath: '/checkout',
115
+ * });
116
+ * window.location.href = url;
117
+ * ```
118
+ */
119
+ async createSessionUrl(opts) {
120
+ const session = await this.createSession({
121
+ items: opts.items,
122
+ currency: opts.currency,
123
+ returnUrl: opts.returnUrl,
124
+ customerEmail: opts.customerEmail,
125
+ customerFirstName: opts.customerFirstName,
126
+ customerLastName: opts.customerLastName,
127
+ });
128
+ const origin = opts.origin ?? (typeof window !== 'undefined' ? window.location.origin : '');
129
+ const checkoutPath = opts.checkoutPath ?? '/checkout';
130
+ const params = new URLSearchParams({
131
+ checkoutToken: session.checkoutToken,
132
+ sessionToken: session.sessionToken,
133
+ });
134
+ const url = `${origin}${checkoutPath}?${params.toString()}`;
135
+ return { ...session, url };
136
+ }
137
+ /**
138
+ * Read `checkoutToken` and session token from a URL.
139
+ *
140
+ * Recognizes both the SDK convention (`?sessionToken=`) and the
141
+ * Tagada-hosted convention (`?token=`), so the same checkout page
142
+ * works whether the user came from `createSessionUrl()` or directly
143
+ * from a Tagada-hosted redirect.
144
+ *
145
+ * Returns `null` if `checkoutToken` is missing.
146
+ *
147
+ * @example
148
+ * ```ts
149
+ * const tokens = CheckoutModule.parseTokensFromUrl();
150
+ * if (!tokens) {
151
+ * window.location.href = '/cart';
152
+ * return;
153
+ * }
154
+ * const session = await tagada.checkout.loadSession(
155
+ * tokens.checkoutToken,
156
+ * tokens.sessionToken,
157
+ * );
158
+ * ```
159
+ */
160
+ static parseTokensFromUrl(url) {
161
+ if (typeof url === 'undefined' && typeof window === 'undefined')
162
+ return null;
163
+ const href = url ?? window.location.href;
164
+ let parsed;
165
+ try {
166
+ parsed = new URL(href);
167
+ }
168
+ catch {
169
+ return null;
170
+ }
171
+ const checkoutToken = parsed.searchParams.get('checkoutToken');
172
+ if (!checkoutToken)
173
+ return null;
174
+ const sessionToken = parsed.searchParams.get('sessionToken') ?? parsed.searchParams.get('token') ?? '';
175
+ return { checkoutToken, sessionToken };
176
+ }
97
177
  /**
98
178
  * Replace the cart items for an existing session.
99
179
  *
@@ -1 +1 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/core/modules/checkout.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { HttpClient } from '../http.js';
2
- import type { Offer, OfferPreview, OfferPayResult } from '../types.js';
2
+ import type { Offer, OfferPreview, OfferPayResult, ProcessPaymentResult } from '../types.js';
3
+ import type { PaymentModule } from './payment.js';
3
4
  /**
4
5
  * Offers — upsells, downsells, order bumps, and post-purchase offers.
5
6
  *
@@ -16,7 +17,8 @@ import type { Offer, OfferPreview, OfferPayResult } from '../types.js';
16
17
  export declare class OffersModule {
17
18
  private readonly http;
18
19
  private readonly storeId;
19
- constructor(http: HttpClient, storeId: string);
20
+ private readonly payment?;
21
+ constructor(http: HttpClient, storeId: string, payment?: PaymentModule | undefined);
20
22
  /** Get a single offer by ID. */
21
23
  getOffer(offerId: string): Promise<Offer>;
22
24
  /** List offers for the current store. Optionally filter by type or a set of IDs. */
@@ -38,6 +40,10 @@ export declare class OffersModule {
38
40
  /**
39
41
  * Pay a previously previewed offer (one-click charge).
40
42
  * Used after a main order so the stored payment instrument is reused.
43
+ *
44
+ * **Low-level API.** Returns the raw `OfferPayResult` — `requireAction`,
45
+ * polling, and 3DS redirects are NOT handled. For most cases, use
46
+ * {@link processOfferPayment} which orchestrates the full lifecycle.
41
47
  */
42
48
  payPreviewedOffer(opts: {
43
49
  offerId: string;
@@ -52,6 +58,53 @@ export declare class OffersModule {
52
58
  returnUrl?: string;
53
59
  paymentInstrumentId?: string;
54
60
  }): Promise<OfferPayResult>;
61
+ /**
62
+ * One-click upsell with full lifecycle handling.
63
+ *
64
+ * Like `payment.processPayment()` but for previewed offers: charges the
65
+ * stored instrument from `mainOrderId`, runs any 3DS challenge or bank
66
+ * redirect, polls until terminal, and returns a typed
67
+ * `ProcessPaymentResult` (`succeeded` / `requires_redirect` /
68
+ * `failed` / `pending`).
69
+ *
70
+ * Use this instead of the lower-level `payPreviewedOffer()` whenever you
71
+ * don't need to inspect the raw `OfferPayResult` shape — which is most
72
+ * of the time.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * const result = await tagada.offers.processOfferPayment({
77
+ * offerId: 'offer_xxx',
78
+ * mainOrderId: order.id,
79
+ * returnUrl: window.location.href,
80
+ * });
81
+ *
82
+ * switch (result.status) {
83
+ * case 'succeeded':
84
+ * window.location.href = '/upsell-2';
85
+ * break;
86
+ * case 'requires_redirect':
87
+ * window.location.href = result.redirectUrl;
88
+ * break;
89
+ * case 'failed':
90
+ * showError(result.error);
91
+ * break;
92
+ * }
93
+ * ```
94
+ */
95
+ processOfferPayment(opts: {
96
+ offerId: string;
97
+ mainOrderId: string;
98
+ currency?: string;
99
+ lineItems?: Array<{
100
+ lineItemId?: string;
101
+ productId?: string;
102
+ variantId: string;
103
+ quantity: number;
104
+ }>;
105
+ returnUrl?: string;
106
+ paymentInstrumentId?: string;
107
+ }): Promise<ProcessPaymentResult>;
55
108
  /** Toggle an order bump on/off within a checkout session. */
56
109
  toggleOrderBump(opts: {
57
110
  checkoutSessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM;IAOlC,gCAAgC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAI/C,oFAAoF;IAC9E,UAAU,CAAC,IAAI,CAAC,EAAE;QACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QAC9B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBpB,yEAAyE;IACnE,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACrG,GAAG,OAAO,CAAC,YAAY,CAAC;IAQzB;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,GAAG,OAAO,CAAC,cAAc,CAAC;IAe3B,6DAA6D;IACvD,eAAe,CAAC,IAAI,EAAE;QAC1B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,gBAAgB,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB,8CAA8C;IACxC,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAK/D,oCAAoC;IAC9B,uBAAuB,CAAC,IAAI,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAOjD,qCAAqC;IAC/B,wBAAwB,CAAC,IAAI,EAAE;QACnC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAKlD"}
1
+ {"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,10 @@
12
12
  * POST /api/v1/orders/:orderId/post-purchase-offers/:offerId/decline — decline
13
13
  */
14
14
  export class OffersModule {
15
- constructor(http, storeId) {
15
+ constructor(http, storeId, payment) {
16
16
  this.http = http;
17
17
  this.storeId = storeId;
18
+ this.payment = payment;
18
19
  }
19
20
  // ---------------------------------------------------------------------------
20
21
  // Offer loading
@@ -52,6 +53,10 @@ export class OffersModule {
52
53
  /**
53
54
  * Pay a previously previewed offer (one-click charge).
54
55
  * Used after a main order so the stored payment instrument is reused.
56
+ *
57
+ * **Low-level API.** Returns the raw `OfferPayResult` — `requireAction`,
58
+ * polling, and 3DS redirects are NOT handled. For most cases, use
59
+ * {@link processOfferPayment} which orchestrates the full lifecycle.
55
60
  */
56
61
  async payPreviewedOffer(opts) {
57
62
  return this.http.post(`/api/v1/offers/${opts.offerId}/pay-preview`, {
@@ -63,6 +68,49 @@ export class OffersModule {
63
68
  paymentInstrumentId: opts.paymentInstrumentId,
64
69
  });
65
70
  }
71
+ /**
72
+ * One-click upsell with full lifecycle handling.
73
+ *
74
+ * Like `payment.processPayment()` but for previewed offers: charges the
75
+ * stored instrument from `mainOrderId`, runs any 3DS challenge or bank
76
+ * redirect, polls until terminal, and returns a typed
77
+ * `ProcessPaymentResult` (`succeeded` / `requires_redirect` /
78
+ * `failed` / `pending`).
79
+ *
80
+ * Use this instead of the lower-level `payPreviewedOffer()` whenever you
81
+ * don't need to inspect the raw `OfferPayResult` shape — which is most
82
+ * of the time.
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * const result = await tagada.offers.processOfferPayment({
87
+ * offerId: 'offer_xxx',
88
+ * mainOrderId: order.id,
89
+ * returnUrl: window.location.href,
90
+ * });
91
+ *
92
+ * switch (result.status) {
93
+ * case 'succeeded':
94
+ * window.location.href = '/upsell-2';
95
+ * break;
96
+ * case 'requires_redirect':
97
+ * window.location.href = result.redirectUrl;
98
+ * break;
99
+ * case 'failed':
100
+ * showError(result.error);
101
+ * break;
102
+ * }
103
+ * ```
104
+ */
105
+ async processOfferPayment(opts) {
106
+ if (!this.payment) {
107
+ throw new Error('OffersModule: no PaymentModule injected. ' +
108
+ 'Use createHeadlessClient() instead of constructing OffersModule directly.');
109
+ }
110
+ const returnUrl = opts.returnUrl ?? (typeof window !== 'undefined' ? window.location.href : undefined);
111
+ const payResult = await this.payPreviewedOffer({ ...opts, returnUrl });
112
+ return this.payment.finalize({ payment: payResult.payment, order: payResult.order }, { returnUrl });
113
+ }
66
114
  // ---------------------------------------------------------------------------
67
115
  // Order bumps (checkout-session scoped)
68
116
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"offers.js","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAY;IACvB,YACmB,IAAgB,EAChB,OAAe;QADf,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAQ;IAC/B,CAAC;IAEJ,8EAA8E;IAC9E,gBAAgB;IAChB,8EAA8E;IAE9E,gCAAgC;IAChC,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,kBAAkB,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,UAAU,CAAC,IAGhB;QACC,IAAI,GAAG,GAAG,kBAAkB,IAAI,CAAC,OAAO,SAAS,CAAC;QAElD,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,IAAI,EAAE,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG;gBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,UAAU,CAAC,MAAM;YAAE,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,GAAG,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,wDAAwD;IACxD,8EAA8E;IAE9E,yEAAyE;IACzE,KAAK,CAAC,YAAY,CAAC,IAIlB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAe,kBAAkB,IAAI,CAAC,OAAO,UAAU,EAAE;YAC5E,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAOvB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,kBAAkB,IAAI,CAAC,OAAO,cAAc,EAAE;YAClF,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,wCAAwC;IACxC,8EAA8E;IAE9E,6DAA6D;IAC7D,KAAK,CAAC,eAAe,CAAC,IAIrB;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,6BAA6B,IAAI,CAAC,iBAAiB,oBAAoB,EACvE;YACE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CACF,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,sCAAsC;IACtC,8EAA8E;IAE9E,8CAA8C;IAC9C,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,yBAAyB,OAAO,SAAS,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,uBAAuB,CAAC,IAI7B;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,kBAAkB,IAAI,CAAC,OAAO,yBAAyB,IAAI,CAAC,OAAO,SAAS,EAC5E,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAC5B,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,wBAAwB,CAAC,IAG9B;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,kBAAkB,IAAI,CAAC,OAAO,yBAAyB,IAAI,CAAC,OAAO,UAAU,CAC9E,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"offers.js","sourceRoot":"","sources":["../../../src/core/modules/offers.ts"],"names":[],"mappings":"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"}
@@ -187,6 +187,22 @@ export declare class PaymentModule {
187
187
  * ```
188
188
  */
189
189
  processPayment(opts: ProcessPaymentOptions): Promise<ProcessPaymentResult>;
190
+ /**
191
+ * Resolve a raw `PayResult` (from any pay endpoint — `pay()`, `payDirect()`,
192
+ * `processApplePay()`, `offers.payPreviewedOffer()`, …) into a typed
193
+ * `ProcessPaymentResult` (`succeeded` / `requires_redirect` / `failed`
194
+ * / `pending`).
195
+ *
196
+ * Handles 3DS routing (modal challenge via core-js, or bank redirect)
197
+ * and async polling until the payment reaches a terminal status.
198
+ *
199
+ * This is the same logic `processPayment()` runs after `pay()` — exposed
200
+ * so callers (and the offers module) that already have a raw `PayResult`
201
+ * don't need to re-pay.
202
+ */
203
+ finalize(input: PayResult, opts?: {
204
+ returnUrl?: string;
205
+ }): Promise<ProcessPaymentResult>;
190
206
  /**
191
207
  * Resume a payment after the user returns from a redirect (3DS, processor auth, APM).
192
208
  *
@@ -194,6 +210,49 @@ export declare class PaymentModule {
194
210
  * You can also call it manually in non-React apps.
195
211
  */
196
212
  resumeAfterRedirect(paymentId: string): Promise<ProcessPaymentResult>;
213
+ /**
214
+ * Detect a return from a 3DS / processor redirect by inspecting the
215
+ * current page URL, then poll the payment to completion.
216
+ *
217
+ * The post-3DS URL convention used by Tagada-routed processors is
218
+ * `?paymentAction=requireAction&paymentActionStatus=completed&paymentId=pay_xxx`.
219
+ * If those params are present, this method polls the payment, cleans the
220
+ * URL (so a refresh doesn't re-trigger), and returns the resolved
221
+ * `ProcessPaymentResult`. Otherwise it returns `null`.
222
+ *
223
+ * Use this in vanilla apps as the first thing on page load. The React
224
+ * `usePayment` hook does the same automatically — don't call this when
225
+ * also using `usePayment`, you'll double-poll.
226
+ *
227
+ * @example
228
+ * ```ts
229
+ * const tagada = createHeadlessClient({ storeId, environment });
230
+ *
231
+ * const resumed = await tagada.payment.maybeResumeFromUrl();
232
+ * if (resumed?.status === 'succeeded') {
233
+ * window.location.href = `/thank-you?orderId=${resumed.order?.id}`;
234
+ * return;
235
+ * }
236
+ * if (resumed?.status === 'failed') {
237
+ * showError(resumed.error);
238
+ * return;
239
+ * }
240
+ * // No 3DS return — render the normal page.
241
+ * ```
242
+ */
243
+ maybeResumeFromUrl(opts?: {
244
+ /**
245
+ * URL to inspect (defaults to `window.location.href`). Pass an explicit
246
+ * URL when running outside the browser or when integrating with a
247
+ * router that hasn't navigated yet.
248
+ */
249
+ url?: string;
250
+ /**
251
+ * Whether to clean the redirect query params from the address bar
252
+ * once the payment has been resolved. Defaults to `true`.
253
+ */
254
+ cleanUrl?: boolean;
255
+ }): Promise<ProcessPaymentResult | null>;
197
256
  /** Get current status of a payment. */
198
257
  getPaymentStatus(paymentId: string): Promise<PaymentStatus>;
199
258
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/core/modules/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/core/modules/payment.ts"],"names":[],"mappings":"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"}
@@ -363,9 +363,26 @@ export class PaymentModule {
363
363
  opts = { ...opts, returnUrl: window.location.href };
364
364
  }
365
365
  const payResult = await this.pay(opts);
366
- const payment = payResult.payment;
366
+ return this.finalize(payResult, { returnUrl: opts.returnUrl });
367
+ }
368
+ /**
369
+ * Resolve a raw `PayResult` (from any pay endpoint — `pay()`, `payDirect()`,
370
+ * `processApplePay()`, `offers.payPreviewedOffer()`, …) into a typed
371
+ * `ProcessPaymentResult` (`succeeded` / `requires_redirect` / `failed`
372
+ * / `pending`).
373
+ *
374
+ * Handles 3DS routing (modal challenge via core-js, or bank redirect)
375
+ * and async polling until the payment reaches a terminal status.
376
+ *
377
+ * This is the same logic `processPayment()` runs after `pay()` — exposed
378
+ * so callers (and the offers module) that already have a raw `PayResult`
379
+ * don't need to re-pay.
380
+ */
381
+ async finalize(input, opts) {
382
+ const payment = input.payment;
383
+ const returnUrl = opts?.returnUrl ?? (typeof window !== 'undefined' ? window.location.href : undefined);
367
384
  if (payment.status === 'succeeded') {
368
- return { status: 'succeeded', payment, order: payResult.order };
385
+ return { status: 'succeeded', payment, order: input.order };
369
386
  }
370
387
  if (payment.status === 'failed' || payment.status === 'declined') {
371
388
  const msg = payment.requireActionData?.message
@@ -374,9 +391,9 @@ export class PaymentModule {
374
391
  return { status: 'failed', error: msg, payment };
375
392
  }
376
393
  if (payment.requireAction && payment.requireAction !== 'none' && payment.requireActionData) {
377
- return this.handlePaymentAction(payment, opts);
394
+ return this.handlePaymentAction(payment, { returnUrl });
378
395
  }
379
- // status is 'pending' or 'requires_action' without explicit actionData — poll
396
+ // 'pending' or 'requires_action' without explicit actionData — poll
380
397
  return this.pollUntilDone(payment.id);
381
398
  }
382
399
  /**
@@ -388,6 +405,77 @@ export class PaymentModule {
388
405
  async resumeAfterRedirect(paymentId) {
389
406
  return this.pollUntilDone(paymentId);
390
407
  }
408
+ /**
409
+ * Detect a return from a 3DS / processor redirect by inspecting the
410
+ * current page URL, then poll the payment to completion.
411
+ *
412
+ * The post-3DS URL convention used by Tagada-routed processors is
413
+ * `?paymentAction=requireAction&paymentActionStatus=completed&paymentId=pay_xxx`.
414
+ * If those params are present, this method polls the payment, cleans the
415
+ * URL (so a refresh doesn't re-trigger), and returns the resolved
416
+ * `ProcessPaymentResult`. Otherwise it returns `null`.
417
+ *
418
+ * Use this in vanilla apps as the first thing on page load. The React
419
+ * `usePayment` hook does the same automatically — don't call this when
420
+ * also using `usePayment`, you'll double-poll.
421
+ *
422
+ * @example
423
+ * ```ts
424
+ * const tagada = createHeadlessClient({ storeId, environment });
425
+ *
426
+ * const resumed = await tagada.payment.maybeResumeFromUrl();
427
+ * if (resumed?.status === 'succeeded') {
428
+ * window.location.href = `/thank-you?orderId=${resumed.order?.id}`;
429
+ * return;
430
+ * }
431
+ * if (resumed?.status === 'failed') {
432
+ * showError(resumed.error);
433
+ * return;
434
+ * }
435
+ * // No 3DS return — render the normal page.
436
+ * ```
437
+ */
438
+ async maybeResumeFromUrl(opts) {
439
+ if (typeof window === 'undefined' && !opts?.url)
440
+ return null;
441
+ const href = opts?.url ?? window.location.href;
442
+ let url;
443
+ try {
444
+ url = new URL(href);
445
+ }
446
+ catch {
447
+ return null;
448
+ }
449
+ const action = url.searchParams.get('paymentAction');
450
+ const actionStatus = url.searchParams.get('paymentActionStatus');
451
+ const paymentId = url.searchParams.get('paymentId');
452
+ if (action !== 'requireAction' || actionStatus !== 'completed' || !paymentId) {
453
+ return null;
454
+ }
455
+ const result = await this.resumeAfterRedirect(paymentId);
456
+ // Strip the redirect params so a refresh doesn't re-trigger.
457
+ if (opts?.cleanUrl !== false && typeof window !== 'undefined' && !opts?.url) {
458
+ const cleanParams = new URLSearchParams(window.location.search);
459
+ [
460
+ 'paymentAction',
461
+ 'paymentActionStatus',
462
+ 'paymentId',
463
+ 'payment_intent',
464
+ 'payment_intent_client_secret',
465
+ 'source_type',
466
+ 'redirect_status',
467
+ 'sessionId',
468
+ ].forEach((k) => cleanParams.delete(k));
469
+ const search = cleanParams.toString();
470
+ try {
471
+ window.history.replaceState({}, document.title, window.location.pathname + (search ? '?' + search : ''));
472
+ }
473
+ catch {
474
+ // Best-effort.
475
+ }
476
+ }
477
+ return result;
478
+ }
391
479
  // ---------------------------------------------------------------------------
392
480
  // Status polling
393
481
  // ---------------------------------------------------------------------------