@tagadapay/headless-sdk 1.20.0 → 1.21.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 (61) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +2 -0
  3. package/dist/core/helpers/cryptoOnchain.d.ts +83 -0
  4. package/dist/core/helpers/cryptoOnchain.d.ts.map +1 -0
  5. package/dist/core/helpers/cryptoOnchain.js +247 -0
  6. package/dist/core/helpers/cryptoOnchain.js.map +1 -0
  7. package/dist/core/helpers/oceanpayment.d.ts +33 -0
  8. package/dist/core/helpers/oceanpayment.d.ts.map +1 -0
  9. package/dist/core/helpers/oceanpayment.js +111 -0
  10. package/dist/core/helpers/oceanpayment.js.map +1 -0
  11. package/dist/core/helpers/paymentsApi.d.ts +139 -0
  12. package/dist/core/helpers/paymentsApi.d.ts.map +1 -0
  13. package/dist/core/helpers/paymentsApi.js +287 -0
  14. package/dist/core/helpers/paymentsApi.js.map +1 -0
  15. package/dist/core/helpers/paymentsApiAnswer.d.ts +22 -0
  16. package/dist/core/helpers/paymentsApiAnswer.d.ts.map +1 -0
  17. package/dist/core/helpers/paymentsApiAnswer.js +51 -0
  18. package/dist/core/helpers/paymentsApiAnswer.js.map +1 -0
  19. package/dist/core/http.d.ts.map +1 -1
  20. package/dist/core/http.js +3 -0
  21. package/dist/core/http.js.map +1 -1
  22. package/dist/core/index.d.ts +3 -1
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +2 -0
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/modules/checkout.d.ts.map +1 -1
  27. package/dist/core/modules/checkout.js +1 -0
  28. package/dist/core/modules/checkout.js.map +1 -1
  29. package/dist/core/modules/payment.d.ts +74 -1
  30. package/dist/core/modules/payment.d.ts.map +1 -1
  31. package/dist/core/modules/payment.js +331 -8
  32. package/dist/core/modules/payment.js.map +1 -1
  33. package/dist/core/modules/portal/types.d.ts +2 -0
  34. package/dist/core/modules/portal/types.d.ts.map +1 -1
  35. package/dist/core/types.d.ts +164 -0
  36. package/dist/core/types.d.ts.map +1 -1
  37. package/dist/core/version.d.ts +1 -1
  38. package/dist/core/version.js +1 -1
  39. package/dist/pixels/pixelMapping.d.ts.map +1 -1
  40. package/dist/pixels/pixelMapping.js +9 -1
  41. package/dist/pixels/pixelMapping.js.map +1 -1
  42. package/dist/react/hooks/useCryptoOnchainPayment.d.ts +40 -0
  43. package/dist/react/hooks/useCryptoOnchainPayment.d.ts.map +1 -0
  44. package/dist/react/hooks/useCryptoOnchainPayment.js +77 -0
  45. package/dist/react/hooks/useCryptoOnchainPayment.js.map +1 -0
  46. package/dist/react/hooks/usePayment.d.ts.map +1 -1
  47. package/dist/react/hooks/usePayment.js +3 -0
  48. package/dist/react/hooks/usePayment.js.map +1 -1
  49. package/dist/react/index.d.ts +4 -1
  50. package/dist/react/index.d.ts.map +1 -1
  51. package/dist/react/index.js +2 -0
  52. package/dist/react/index.js.map +1 -1
  53. package/dist/tagada-headless-commerce.min.js +1 -1
  54. package/dist/tagada-headless-react.min.js +2 -2
  55. package/dist/tagada-headless-react.min.js.map +4 -4
  56. package/dist/tagada-headless.js +685 -16
  57. package/dist/tagada-headless.min.js +2 -2
  58. package/dist/tagada-headless.min.js.map +4 -4
  59. package/dist/tagada-pixels.min.js +2 -2
  60. package/dist/tagada-pixels.min.js.map +3 -3
  61. package/package.json +2 -2
@@ -0,0 +1,139 @@
1
+ /**
2
+ * A store on the Payments API (V3, D-29). Its pay call (`pay-v2`) creates the session's payment and
3
+ * answers `{ paymentId, clientSecret, amount, currency }` with no `payment`, unless the server
4
+ * confirmed it itself (a saved card, Apple Pay / Google Pay), which answers in V2's shape. The page
5
+ * then confirms the payment with payments-js (`@tagadapay/core-js/payments-v3`), which runs its next
6
+ * actions (3DS in a modal, a redirect, a wallet sheet), and `complete` makes the order of an accepted
7
+ * payment. Same flow as Studio's `payments-api-checkout.ts`; nothing here runs for a V2 answer.
8
+ */
9
+ import type { HttpClient } from '../http.js';
10
+ import type { CheckoutModule } from '../modules/checkout.js';
11
+ import type { ProcessPaymentResult } from '../types.js';
12
+ import { type StartedPayment } from './paymentsApiAnswer.js';
13
+ /** The subset of payments-js's `PublicPayment` read here. */
14
+ export interface PaymentsApiPayment {
15
+ id: string;
16
+ status: string;
17
+ amount?: number;
18
+ currency?: string;
19
+ next_action?: {
20
+ type: string;
21
+ url?: string;
22
+ } | null;
23
+ last_outcome?: {
24
+ raw_message?: string | null;
25
+ } | null;
26
+ }
27
+ type Redirect = 'auto' | 'manual';
28
+ /**
29
+ * The subset of payments-js's `Payments` used here. Typed locally: this package resolves modules
30
+ * the `node` way, which does not read core-js's `./payments-v3` subpath export.
31
+ */
32
+ export interface PaymentsApiClient {
33
+ confirmPayment(options: {
34
+ clientSecret: string;
35
+ paymentMethod?: string;
36
+ returnUrl?: string;
37
+ redirect?: Redirect;
38
+ billingDetails?: {
39
+ name?: string;
40
+ email?: string;
41
+ };
42
+ }): Promise<PaymentsApiPayment>;
43
+ handleNextAction(options: {
44
+ clientSecret: string;
45
+ redirect?: Redirect;
46
+ }): Promise<PaymentsApiPayment>;
47
+ retrievePayment(options: {
48
+ clientSecret: string;
49
+ }): Promise<PaymentsApiPayment>;
50
+ handleReturn(options: {
51
+ clientSecret: string;
52
+ url?: string;
53
+ }): Promise<PaymentsApiPayment>;
54
+ }
55
+ export interface PaymentsApiSettings {
56
+ /** The store's key of the session's mode, or null when the page has none for that mode. */
57
+ publishableKey: string | null;
58
+ apiBase: string;
59
+ }
60
+ /**
61
+ * The step config's `paymentsApi` (`window.__TGD_STEP_CONFIG__`), written on the pages of a
62
+ * Payments API store: the API base and the store's publishable key of each mode. As in Studio, a
63
+ * draft session pays in test mode and takes the test key, any other the live key; the key of the
64
+ * other mode is never used (the API refuses it): with none for the session's mode the page takes
65
+ * no payment.
66
+ */
67
+ export declare function readPaymentsApiSettings(stepConfig: unknown, draft: boolean): PaymentsApiSettings | null;
68
+ /**
69
+ * The return URL a redirect brings the shopper back to: the page, with the parameters
70
+ * `maybeResumeFromUrl()` and `usePayment()` already resume on. Never the client secret.
71
+ */
72
+ export declare function returnUrlFor(href: string, paymentId: string): string;
73
+ export declare const PAYMENT_NOT_COMPLETED_MESSAGE = "The payment was not completed. Please try again.";
74
+ export declare const STORE_ON_V2_MESSAGE = "This store takes payments on its V2 checkout. Please pay again.";
75
+ export declare const PAYMENT_DECLINED_MESSAGE = "Payment was declined.";
76
+ /** The order `complete` made, in the pay answer's shape. */
77
+ export interface CompletedPayment {
78
+ order: {
79
+ id: string;
80
+ checkoutSessionId?: string;
81
+ } & Record<string, unknown>;
82
+ payment?: Record<string, unknown>;
83
+ }
84
+ export interface RunDeps {
85
+ payments: PaymentsApiClient;
86
+ /** `POST /checkout-sessions/{id}/complete`: the order, or null while the API has none to give. */
87
+ complete(checkoutSessionId: string, paymentId: string): Promise<CompletedPayment | null>;
88
+ sleep(ms: number): Promise<void>;
89
+ /** Called once a payment is captured (`succeeded`), never for an authorization. */
90
+ onPaid?(orderId: string | undefined, payment: {
91
+ amount?: number;
92
+ currency?: string;
93
+ }): void;
94
+ }
95
+ /**
96
+ * Runs a started payment to the result callers get on V2: `step` (confirm, or read the return),
97
+ * then reads it while it is processing, then `complete` once it is accepted. A redirect is left to
98
+ * the caller (`requires_redirect`), as on V2. `checkoutSessionId` is the session `complete` is
99
+ * called on; without one an accepted payment answers with no order (the API's effect makes it).
100
+ */
101
+ export declare function runPaymentsApiPayment(deps: RunDeps, started: StartedPayment, checkoutSessionId: string | undefined, step: (payments: PaymentsApiClient) => Promise<PaymentsApiPayment>, onRedirect: () => void): Promise<ProcessPaymentResult>;
102
+ /**
103
+ * A new payment is confirmed with the shopper's method; one already confirmed (a reload, a second
104
+ * tab, a payment the server confirmed) has its next action performed instead.
105
+ */
106
+ export declare function confirmOrResume(input: {
107
+ clientSecret: string;
108
+ paymentMethod?: string;
109
+ returnUrl?: string;
110
+ billingDetails?: {
111
+ name?: string;
112
+ email?: string;
113
+ };
114
+ }): (payments: PaymentsApiClient) => Promise<PaymentsApiPayment>;
115
+ /** What the payment module lends the V3 flow. */
116
+ export interface PaymentsApiHost {
117
+ http: HttpClient;
118
+ storeId: string;
119
+ checkout?: CheckoutModule;
120
+ /** `window.__TGD_STEP_CONFIG__`, parsed, or null. */
121
+ stepConfig: unknown;
122
+ onPaid(orderId: string | undefined, payment: {
123
+ amount?: number;
124
+ currency?: string;
125
+ }): void;
126
+ }
127
+ /** Confirms a started V3 payment with payments-js and runs it to the V2-shaped result. */
128
+ export declare function finalizeOnPaymentsApi(host: PaymentsApiHost, started: StartedPayment, context: {
129
+ checkoutSessionId?: string;
130
+ paymentMethod?: string;
131
+ returnUrl?: string;
132
+ }): Promise<ProcessPaymentResult>;
133
+ /**
134
+ * Back from a V3 redirect: the pay call answers the session's payment and its secret again (the
135
+ * secret is never stored), and payments-js reports the step the shopper comes back from.
136
+ */
137
+ export declare function resumeOnPaymentsApi(host: PaymentsApiHost, paymentId: string, checkoutSessionId: string, url: string | undefined): Promise<ProcessPaymentResult>;
138
+ export {};
139
+ //# sourceMappingURL=paymentsApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentsApi.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/paymentsApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,287 @@
1
+ /**
2
+ * A store on the Payments API (V3, D-29). Its pay call (`pay-v2`) creates the session's payment and
3
+ * answers `{ paymentId, clientSecret, amount, currency }` with no `payment`, unless the server
4
+ * confirmed it itself (a saved card, Apple Pay / Google Pay), which answers in V2's shape. The page
5
+ * then confirms the payment with payments-js (`@tagadapay/core-js/payments-v3`), which runs its next
6
+ * actions (3DS in a modal, a redirect, a wallet sheet), and `complete` makes the order of an accepted
7
+ * payment. Same flow as Studio's `payments-api-checkout.ts`; nothing here runs for a V2 answer.
8
+ */
9
+ import { parkPaymentsApiReturn, readStartedPayment } from './paymentsApiAnswer.js';
10
+ const isRecord = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
11
+ /**
12
+ * The step config's `paymentsApi` (`window.__TGD_STEP_CONFIG__`), written on the pages of a
13
+ * Payments API store: the API base and the store's publishable key of each mode. As in Studio, a
14
+ * draft session pays in test mode and takes the test key, any other the live key; the key of the
15
+ * other mode is never used (the API refuses it): with none for the session's mode the page takes
16
+ * no payment.
17
+ */
18
+ export function readPaymentsApiSettings(stepConfig, draft) {
19
+ const settings = isRecord(stepConfig) ? stepConfig.paymentsApi : undefined;
20
+ if (!isRecord(settings))
21
+ return null;
22
+ const { publishableKeys, apiBase } = settings;
23
+ if (typeof apiBase !== 'string' || !apiBase)
24
+ return null;
25
+ const mode = draft ? 'test' : 'live';
26
+ const key = isRecord(publishableKeys) ? publishableKeys[mode] : undefined;
27
+ return {
28
+ publishableKey: typeof key === 'string' && key.startsWith(`tpk_${mode}_`) ? key : null,
29
+ apiBase,
30
+ };
31
+ }
32
+ /**
33
+ * The return URL a redirect brings the shopper back to: the page, with the parameters
34
+ * `maybeResumeFromUrl()` and `usePayment()` already resume on. Never the client secret.
35
+ */
36
+ export function returnUrlFor(href, paymentId) {
37
+ const url = new URL(href);
38
+ url.searchParams.set('paymentAction', 'requireAction');
39
+ url.searchParams.set('paymentActionStatus', 'completed');
40
+ url.searchParams.set('paymentId', paymentId);
41
+ return url.toString();
42
+ }
43
+ export const PAYMENT_NOT_COMPLETED_MESSAGE = 'The payment was not completed. Please try again.';
44
+ export const STORE_ON_V2_MESSAGE = 'This store takes payments on its V2 checkout. Please pay again.';
45
+ export const PAYMENT_DECLINED_MESSAGE = 'Payment was declined.';
46
+ /** A processing payment is read this many times (payments-js reads it up to 30 s each time). */
47
+ const WAIT_ROUNDS = 4;
48
+ /** Between two `complete` calls when the first had no order. */
49
+ const COMPLETE_RETRY_MS = 3000;
50
+ const ACCEPTED = new Set(['succeeded', 'requires_capture']);
51
+ const REFUSED = new Set(['failed', 'canceled']);
52
+ /** The V2-shaped payment callers read on a `succeeded` / `failed` result. */
53
+ function legacyPayment(payment, started, completed) {
54
+ if (completed && typeof completed.id === 'string')
55
+ return completed;
56
+ const status = payment.status === 'succeeded' ? 'succeeded' : REFUSED.has(payment.status) ? 'failed' : 'pending';
57
+ return {
58
+ id: payment.id ?? started.paymentId,
59
+ amount: payment.amount ?? started.amount ?? 0,
60
+ currency: payment.currency ?? started.currency ?? '',
61
+ status,
62
+ };
63
+ }
64
+ function isStoreOnV2Refusal(error) {
65
+ return isRecord(error) && error.code === 'store_not_on_payments_api';
66
+ }
67
+ /**
68
+ * Runs a started payment to the result callers get on V2: `step` (confirm, or read the return),
69
+ * then reads it while it is processing, then `complete` once it is accepted. A redirect is left to
70
+ * the caller (`requires_redirect`), as on V2. `checkoutSessionId` is the session `complete` is
71
+ * called on; without one an accepted payment answers with no order (the API's effect makes it).
72
+ */
73
+ export async function runPaymentsApiPayment(deps, started, checkoutSessionId, step, onRedirect) {
74
+ let payment;
75
+ try {
76
+ payment = await step(deps.payments);
77
+ for (let round = 1;; round++) {
78
+ if (REFUSED.has(payment.status)) {
79
+ return {
80
+ status: 'failed',
81
+ error: payment.last_outcome?.raw_message?.trim() || PAYMENT_DECLINED_MESSAGE,
82
+ payment: legacyPayment(payment, started),
83
+ };
84
+ }
85
+ if (ACCEPTED.has(payment.status)) {
86
+ if (!checkoutSessionId) {
87
+ if (payment.status === 'succeeded')
88
+ deps.onPaid?.(undefined, payment);
89
+ return { status: 'succeeded', payment: legacyPayment(payment, started) };
90
+ }
91
+ const completed = await deps.complete(checkoutSessionId, started.paymentId);
92
+ if (completed) {
93
+ // A pre-authorisation that may never be captured is not a purchase (contract §7.4).
94
+ if (payment.status === 'succeeded')
95
+ deps.onPaid?.(completed.order.id, payment);
96
+ return {
97
+ status: 'succeeded',
98
+ payment: legacyPayment(payment, started, completed.payment),
99
+ order: completed.order,
100
+ };
101
+ }
102
+ await deps.sleep(COMPLETE_RETRY_MS);
103
+ }
104
+ else if (payment.status === 'requires_action' && payment.next_action?.type === 'redirect_to_url') {
105
+ const url = payment.next_action.url;
106
+ if (!url)
107
+ return {
108
+ status: 'failed',
109
+ error: PAYMENT_NOT_COMPLETED_MESSAGE,
110
+ payment: legacyPayment(payment, started),
111
+ };
112
+ onRedirect();
113
+ return { status: 'requires_redirect', redirectUrl: url, method: 'GET', paymentId: started.paymentId };
114
+ }
115
+ else if (payment.status !== 'processing') {
116
+ return {
117
+ status: 'failed',
118
+ error: PAYMENT_NOT_COMPLETED_MESSAGE,
119
+ payment: legacyPayment(payment, started),
120
+ };
121
+ }
122
+ if (round >= WAIT_ROUNDS)
123
+ return { status: 'pending', paymentId: started.paymentId };
124
+ payment = await deps.payments.handleNextAction({
125
+ clientSecret: started.clientSecret,
126
+ redirect: 'manual',
127
+ });
128
+ }
129
+ }
130
+ catch (error) {
131
+ if (isStoreOnV2Refusal(error))
132
+ return { status: 'failed', error: STORE_ON_V2_MESSAGE };
133
+ return {
134
+ status: 'failed',
135
+ error: error instanceof Error && error.message ? error.message : PAYMENT_NOT_COMPLETED_MESSAGE,
136
+ };
137
+ }
138
+ }
139
+ /**
140
+ * A new payment is confirmed with the shopper's method; one already confirmed (a reload, a second
141
+ * tab, a payment the server confirmed) has its next action performed instead.
142
+ */
143
+ export function confirmOrResume(input) {
144
+ return async (payments) => {
145
+ const { clientSecret } = input;
146
+ const current = await payments.retrievePayment({ clientSecret });
147
+ if (current.status !== 'requires_payment_method' && current.status !== 'requires_confirmation')
148
+ return payments.handleNextAction({ clientSecret, redirect: 'manual' });
149
+ return payments.confirmPayment({
150
+ clientSecret,
151
+ redirect: 'manual',
152
+ ...(input.returnUrl ? { returnUrl: input.returnUrl } : {}),
153
+ ...(input.paymentMethod ? { paymentMethod: input.paymentMethod } : {}),
154
+ ...(input.billingDetails ? { billingDetails: input.billingDetails } : {}),
155
+ });
156
+ };
157
+ }
158
+ /** payments-js, loaded once per publishable key on the first V3 payment of the page. */
159
+ let loaded = null;
160
+ /** `@tagadapay/core-js/payments-v3` (core-js 3.7.0 or later), imported only here. */
161
+ async function importPaymentsJs() {
162
+ try {
163
+ // @ts-ignore -- `moduleResolution: node` does not read core-js's subpath export; bundlers do.
164
+ return await import('@tagadapay/core-js/payments-v3');
165
+ }
166
+ catch (cause) {
167
+ const error = new Error('Paying on this store requires @tagadapay/core-js 3.7.0 or later. Install it: npm install @tagadapay/core-js@^3.7.0');
168
+ error.cause = cause;
169
+ throw error;
170
+ }
171
+ }
172
+ /**
173
+ * The session's mode: a draft (test-mode) session is read off the session the checkout module
174
+ * loaded, when it is the one being paid. A session the page never loaded pays live, the default.
175
+ */
176
+ function isDraftSession(checkout, checkoutSessionId) {
177
+ const session = checkout?.getCurrentSession();
178
+ if (!session || (checkoutSessionId && session.id !== checkoutSessionId))
179
+ return false;
180
+ return session.draft === true;
181
+ }
182
+ async function paymentsJs(host, checkoutSessionId) {
183
+ const draft = isDraftSession(host.checkout, checkoutSessionId);
184
+ const settings = readPaymentsApiSettings(host.stepConfig, draft);
185
+ if (!settings?.publishableKey) {
186
+ return {
187
+ error: `This store takes payments through the Payments API, and this page has no ${draft ? 'test' : 'live'} ` +
188
+ `publishable key for this ${draft ? 'draft (test mode)' : 'live'} checkout session ` +
189
+ '(window.__TGD_STEP_CONFIG__.paymentsApi). Please contact the store.',
190
+ };
191
+ }
192
+ const publishableKey = settings.publishableKey;
193
+ if (loaded?.key !== publishableKey) {
194
+ const loading = importPaymentsJs().then(({ loadPayments }) => loadPayments({ publishableKey, apiBase: settings.apiBase }));
195
+ loaded = { key: publishableKey, loading };
196
+ }
197
+ try {
198
+ return { client: await loaded.loading };
199
+ }
200
+ catch (error) {
201
+ loaded = null;
202
+ return { error: error instanceof Error && error.message ? error.message : PAYMENT_NOT_COMPLETED_MESSAGE };
203
+ }
204
+ }
205
+ /**
206
+ * `POST /api/public/v1/checkout-sessions/{id}/complete` once the payment is accepted: the order
207
+ * (200), else null. A 202 (still processing), a refusal or a lost answer never shows an error:
208
+ * the money may be taken and the API's effect makes the order, so the caller waits.
209
+ */
210
+ async function complete(http, checkoutSessionId, paymentId) {
211
+ try {
212
+ const answer = await http.post(`/api/public/v1/checkout-sessions/${encodeURIComponent(checkoutSessionId)}/complete`, { paymentId });
213
+ const order = answer?.order;
214
+ if (!order || typeof order.id !== 'string')
215
+ return null;
216
+ return answer;
217
+ }
218
+ catch {
219
+ return null;
220
+ }
221
+ }
222
+ function deps(host, client) {
223
+ return {
224
+ payments: client,
225
+ complete: (checkoutSessionId, paymentId) => complete(host.http, checkoutSessionId, paymentId),
226
+ sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
227
+ onPaid: (orderId, payment) => host.onPaid(orderId, payment),
228
+ };
229
+ }
230
+ /** The cardholder a 3DS provider needs, from the loaded session: billing name, else shipping, and email. */
231
+ function cardholder(checkout) {
232
+ const session = checkout?.getCurrentSession();
233
+ if (!session)
234
+ return undefined;
235
+ const fullName = (a) => [a?.firstName, a?.lastName].filter((part) => typeof part === 'string' && part.trim()).join(' ');
236
+ const name = fullName(session.billingAddress) || fullName(session.shippingAddress) || fullName(session.customer);
237
+ const email = session.customer?.email?.includes('@') ? session.customer.email : '';
238
+ if (!name && !email)
239
+ return undefined;
240
+ return { ...(name ? { name } : {}), ...(email ? { email } : {}) };
241
+ }
242
+ /** Confirms a started V3 payment with payments-js and runs it to the V2-shaped result. */
243
+ export async function finalizeOnPaymentsApi(host, started, context) {
244
+ const checkoutSessionId = started.checkoutSessionId ?? context.checkoutSessionId;
245
+ const payments = await paymentsJs(host, checkoutSessionId);
246
+ if ('error' in payments)
247
+ return { status: 'failed', error: payments.error };
248
+ const step = confirmOrResume({
249
+ clientSecret: started.clientSecret,
250
+ paymentMethod: context.paymentMethod,
251
+ returnUrl: context.returnUrl ? returnUrlFor(context.returnUrl, started.paymentId) : undefined,
252
+ billingDetails: cardholder(host.checkout),
253
+ });
254
+ return runPaymentsApiPayment(deps(host, payments.client), started, checkoutSessionId, step, () => {
255
+ if (checkoutSessionId)
256
+ parkPaymentsApiReturn(started.paymentId, checkoutSessionId);
257
+ });
258
+ }
259
+ /**
260
+ * Back from a V3 redirect: the pay call answers the session's payment and its secret again (the
261
+ * secret is never stored), and payments-js reports the step the shopper comes back from.
262
+ */
263
+ export async function resumeOnPaymentsApi(host, paymentId, checkoutSessionId, url) {
264
+ const payments = await paymentsJs(host, checkoutSessionId);
265
+ if ('error' in payments)
266
+ return { status: 'failed', error: payments.error };
267
+ let started;
268
+ try {
269
+ started = readStartedPayment(await host.http.post('/api/public/v1/checkout/pay-v2', {
270
+ checkoutSessionId,
271
+ storeId: host.storeId,
272
+ confirmation: 'payments_js',
273
+ }));
274
+ }
275
+ catch (error) {
276
+ return {
277
+ status: 'failed',
278
+ error: error instanceof Error && error.message ? error.message : PAYMENT_NOT_COMPLETED_MESSAGE,
279
+ };
280
+ }
281
+ // The payment the shopper left ended meanwhile: the session's live one is another, not confirmed.
282
+ if (!started || started.paymentId !== paymentId)
283
+ return { status: 'failed', error: PAYMENT_NOT_COMPLETED_MESSAGE };
284
+ const { clientSecret } = started;
285
+ return runPaymentsApiPayment(deps(host, payments.client), started, checkoutSessionId, (client) => client.handleReturn({ clientSecret, ...(url ? { url } : {}) }), () => parkPaymentsApiReturn(paymentId, checkoutSessionId));
286
+ }
287
+ //# sourceMappingURL=paymentsApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentsApi.js","sourceRoot":"","sources":["../../../src/core/helpers/paymentsApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The few Payments API (V3, D-29) checks the payment module runs on every answer. Kept apart from
3
+ * `paymentsApi.ts`, which holds the V3 flow and is only imported on a V3 payment.
4
+ */
5
+ /** The pay answer of a Payments API store: the payment the page confirms, and no order yet. */
6
+ export interface StartedPayment {
7
+ paymentId: string;
8
+ clientSecret: string;
9
+ amount?: number;
10
+ currency?: string;
11
+ /** Set when the answer names the session it pays. */
12
+ checkoutSessionId?: string;
13
+ }
14
+ /** A V2 answer (it carries `payment` or `order`) is never read as a started payment. */
15
+ export declare function readStartedPayment(answer: unknown): StartedPayment | null;
16
+ /** Before a redirect: the session the payment pays, so the return page can read its secret again. */
17
+ export declare function parkPaymentsApiReturn(paymentId: string, checkoutSessionId: string): void;
18
+ /** The parked session of `paymentId`, read once; null for any other payment (every V2 payment). */
19
+ export declare function takeParkedPaymentsApiReturn(paymentId: string): {
20
+ checkoutSessionId: string;
21
+ } | null;
22
+ //# sourceMappingURL=paymentsApiAnswer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentsApiAnswer.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/paymentsApiAnswer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+FAA+F;AAC/F,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAgBzE;AAKD,qGAAqG;AACrG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAMxF;AAED,mGAAmG;AACnG,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYnG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The few Payments API (V3, D-29) checks the payment module runs on every answer. Kept apart from
3
+ * `paymentsApi.ts`, which holds the V3 flow and is only imported on a V3 payment.
4
+ */
5
+ /** A V2 answer (it carries `payment` or `order`) is never read as a started payment. */
6
+ export function readStartedPayment(answer) {
7
+ if (!answer || typeof answer !== 'object' || Array.isArray(answer))
8
+ return null;
9
+ const { payment, order, paymentId, clientSecret, amount, currency, checkoutSessionId } = answer;
10
+ if (payment !== undefined || order !== undefined)
11
+ return null;
12
+ if (typeof paymentId !== 'string' || !paymentId || typeof clientSecret !== 'string' || !clientSecret)
13
+ return null;
14
+ return {
15
+ paymentId,
16
+ clientSecret,
17
+ ...(typeof amount === 'number' ? { amount } : {}),
18
+ ...(typeof currency === 'string' ? { currency } : {}),
19
+ ...(typeof checkoutSessionId === 'string' ? { checkoutSessionId } : {}),
20
+ };
21
+ }
22
+ const PENDING_KEY = 'tgd_payments_api_return';
23
+ const PENDING_TTL_MS = 60 * 60000;
24
+ /** Before a redirect: the session the payment pays, so the return page can read its secret again. */
25
+ export function parkPaymentsApiReturn(paymentId, checkoutSessionId) {
26
+ try {
27
+ sessionStorage.setItem(PENDING_KEY, JSON.stringify({ paymentId, checkoutSessionId, at: Date.now() }));
28
+ }
29
+ catch {
30
+ // Storage unavailable: the return page polls the payment, as on V2.
31
+ }
32
+ }
33
+ /** The parked session of `paymentId`, read once; null for any other payment (every V2 payment). */
34
+ export function takeParkedPaymentsApiReturn(paymentId) {
35
+ try {
36
+ const raw = sessionStorage.getItem(PENDING_KEY);
37
+ if (!raw)
38
+ return null;
39
+ const parked = JSON.parse(raw);
40
+ if (parked.paymentId !== paymentId)
41
+ return null;
42
+ sessionStorage.removeItem(PENDING_KEY);
43
+ if (!parked.checkoutSessionId || !parked.at || Date.now() - parked.at > PENDING_TTL_MS)
44
+ return null;
45
+ return { checkoutSessionId: parked.checkoutSessionId };
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ //# sourceMappingURL=paymentsApiAnswer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentsApiAnswer.js","sourceRoot":"","sources":["../../../src/core/helpers/paymentsApiAnswer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAGxF,CAAC;IACF,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY;QAClG,OAAO,IAAI,CAAC;IACd,OAAO;QACL,SAAS;QACT,YAAY;QACZ,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAC9C,MAAM,cAAc,GAAG,EAAE,GAAG,KAAM,CAAC;AAEnC,qGAAqG;AACrG,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,iBAAyB;IAChF,IAAI,CAAC;QACH,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,2BAA2B,CAAC,SAAiB;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoE,CAAC;QAClG,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAChD,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,GAAG,cAAc;YAAE,OAAO,IAAI,CAAC;QACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQlE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAkB;gBAEvB,MAAM,EAAE,gBAAgB;IAQpC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIpE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,CAAC;IAwDtF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1F,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxF,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;YAI7D,mBAAmB;CA6ClC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQlE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAED;;;GAGG;AACH,qBAAa,UAAU;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAkB;gBAEvB,MAAM,EAAE,gBAAgB;IAQpC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIpE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,CAAC,CAAC;IA0DtF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxE,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAI1F,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAIxF,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;YAI7D,mBAAmB;CA6ClC"}
package/dist/core/http.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { TagadaError, TagadaAuthError, TagadaValidationError, TagadaNotFoundError, TagadaRateLimitError, TagadaNetworkError, } from './errors.js';
2
+ import { SDK_VERSION } from './version.js';
2
3
  const BASE_URLS = {
3
4
  production: 'https://api.tagada.io',
4
5
  development: 'https://api.tagada.dev',
@@ -34,6 +35,8 @@ export class HttpClient {
34
35
  }
35
36
  const reqHeaders = {
36
37
  'Content-Type': 'application/json',
38
+ // Which SDK and version sent the call: the Payments API readiness check counts them per store.
39
+ 'X-Tagada-SDK': `headless-sdk/${SDK_VERSION}`,
37
40
  ...headers,
38
41
  };
39
42
  const authToken = token ?? this.apiKey ?? this.getToken?.();
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,12 @@ export { TrackModule } from './modules/track.js';
13
13
  export type { StepData, EventData, TrackIdentity, TrackHealth } from './modules/track.js';
14
14
  export type { RxCaseStatus, RxRequiredForProduct, RxStorefrontPatient, RxIntakeAnswer, RxClinicalQuestion, RxClinicalQuestionRule, RxQuestionAnswers, RxIntakeContext, RxIntakeIssue, RxValidateIntakeInput, RxQuestionsForProduct, RxSubmitCaseInput, RxSubmitCaseResult, RxCaseSummary, RxIntakeContextResult, RxIntakeContextPatient, RxActivationStatus, RxActivationStepKey, RxActivationMissingItem, } from './modules/rx.js';
15
15
  export { HttpClient } from './http.js';
16
+ export { CryptoOnchainCheckout, CRYPTO_ONCHAIN_PAYMENT_METHOD, CRYPTO_ONCHAIN_STATUS_POLL_MS, CRYPTO_ONCHAIN_FINAL_PHASES, isCryptoOnchainMethod, defaultCryptoOnchainSelection, selectCryptoOnchainNetwork, cryptoOnchainPhase, cryptoOnchainSecondsLeft, formatCryptoOnchainCountdown, } from './helpers/cryptoOnchain.js';
17
+ export type { CryptoOnchainApi } from './helpers/cryptoOnchain.js';
16
18
  export { TagadaError, TagadaAuthError, TagadaValidationError, TagadaNotFoundError, TagadaRateLimitError, TagadaPaymentError, TagadaNetworkError, } from './errors.js';
17
19
  export { GoogleAutocompleteCore, loadGoogleMapsScript, ISODataCore, AVAILABLE_LANGUAGES, CurrencyUtils, formatMoney, ensureGeoDataLoaded, getCountries, getStatesForCountry, isLanguageLoaded, } from './helpers/index.js';
18
20
  export type { GooglePrediction, GooglePlaceDetails, ExtractedAddress, FormattedAddress, SupportedLanguage, ISOCountry, ISORegion, Country, State, Currency, } from './helpers/index.js';
19
- export type { Environment, HeadlessConfig, HttpRequestOptions, LineItem, CreateCheckoutSessionOptions, CheckoutCustomerMetadata, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, PaymentMethodConfig, PaymentSetupConfig, ExpressMethod, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, ProcessPaymentOptions, ProcessPaymentResult, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus, Offer, OfferLineItem, OfferPreview, OfferPreviewItem, OfferPayResult, Customer, Order, OrderItem, Subscription, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, FunnelNavigateInput, FunnelNavigateResult, } from './types.js';
21
+ export type { Environment, HeadlessConfig, HttpRequestOptions, LineItem, CreateCheckoutSessionOptions, CheckoutCustomerMetadata, CheckoutSession, CheckoutLineItem, CheckoutTotals, CheckoutCustomer, Address, ShippingRate, PaymentMethodConfig, PaymentSetupConfig, ExpressMethod, ExpressMethods, StoreConfig, PayResult, PayOptions, PayDirectOptions, ProcessPaymentOptions, ProcessPaymentResult, OceanPaymentConfig, MountOceanPaymentOptions, OceanPaymentForm, CryptoOnchainAsset, CryptoOnchainNetwork, CryptoOnchainPayment, CryptoOnchainStatus, CryptoOnchainOptionsFailureCode, CryptoOnchainPaymentFailureCode, CryptoOnchainStatusFailureCode, CryptoOnchainFailure, CryptoOnchainOptionsResult, CryptoOnchainPaymentResult, CryptoOnchainStatusResult, CryptoOnchainPhase, CryptoOnchainSelection, CryptoOnchainCheckoutState, CryptoOnchainCheckoutOptions, CreateInstrumentOptions, PaymentInstrument, ThreedsSession, PaymentStatus, Offer, OfferLineItem, OfferPreview, OfferPreviewItem, OfferPayResult, Customer, Order, OrderItem, Subscription, CatalogProduct, CatalogVariant, CatalogPrice, CurrencyOption, FunnelNavigateInput, FunnelNavigateResult, } from './types.js';
20
22
  export { ExperimentsModule } from './modules/experiments.js';
21
23
  export type { TgdBootstrap, TgdIds } from '../tgd/contract/index.js';
22
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,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,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EACL,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,OAAO,EACP,KAAK,EACL,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,4BAA4B,EAC5B,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,KAAK,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ export { FunnelModule } from './modules/funnel.js';
10
10
  export { RxModule, isQuestionActive, toIntakeAnswers } from './modules/rx.js';
11
11
  export { TrackModule } from './modules/track.js';
12
12
  export { HttpClient } from './http.js';
13
+ // On-chain crypto (`crypto_onchain`): paid inline from the page, never through pay-v2
14
+ export { CryptoOnchainCheckout, CRYPTO_ONCHAIN_PAYMENT_METHOD, CRYPTO_ONCHAIN_STATUS_POLL_MS, CRYPTO_ONCHAIN_FINAL_PHASES, isCryptoOnchainMethod, defaultCryptoOnchainSelection, selectCryptoOnchainNetwork, cryptoOnchainPhase, cryptoOnchainSecondsLeft, formatCryptoOnchainCountdown, } from './helpers/cryptoOnchain.js';
13
15
  export { TagadaError, TagadaAuthError, TagadaValidationError, TagadaNotFoundError, TagadaRateLimitError, TagadaPaymentError, TagadaNetworkError, } from './errors.js';
14
16
  // Helpers: Google Autocomplete, ISO countries/regions, currency formatting
15
17
  export { GoogleAutocompleteCore, loadGoogleMapsScript, ISODataCore, AVAILABLE_LANGUAGES, CurrencyUtils, formatMoney, ensureGeoDataLoaded, getCountries, getStatesForCountry, isLanguageLoaded, } from './helpers/index.js';