@usethrottle/checkout-react 2.0.0 → 2.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/index.js CHANGED
@@ -1,3 +1,1000 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __commonJS = (cb, mod) => function __require() {
8
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
26
+
27
+ // ../../node_modules/.pnpm/@gr4vy+secure-fields@2.11.1/node_modules/@gr4vy/secure-fields/lib/index.js
28
+ var require_lib = __commonJS({
29
+ "../../node_modules/.pnpm/@gr4vy+secure-fields@2.11.1/node_modules/@gr4vy/secure-fields/lib/index.js"(exports, module) {
30
+ "use strict";
31
+ !(function(e, t) {
32
+ if ("object" == typeof exports && "object" == typeof module) module.exports = t();
33
+ else if ("function" == typeof define && define.amd) define([], t);
34
+ else {
35
+ var r = t();
36
+ for (var n in r) ("object" == typeof exports ? exports : e)[n] = r[n];
37
+ }
38
+ })(exports, () => (() => {
39
+ "use strict";
40
+ const e = { d: (t2, r2) => {
41
+ for (var n2 in r2) e.o(r2, n2) && !e.o(t2, n2) && Object.defineProperty(t2, n2, { enumerable: true, get: r2[n2] });
42
+ }, o: (e2, t2) => Object.prototype.hasOwnProperty.call(e2, t2), r: (e2) => {
43
+ Object.defineProperty(e2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e2, "__esModule", { value: true });
44
+ } };
45
+ let t = {};
46
+ e.r(t), e.d(t, { Events: () => o, SecureFields: () => te, SecureInput: () => W });
47
+ var r = function(e2) {
48
+ var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "production";
49
+ return "https://".concat(arguments.length > 2 ? arguments[2] : void 0, ".").concat("sandbox" === t2 ? "sandbox." : "").concat(e2, ".gr4vy.app");
50
+ }, n = (e2, t2) => "".concat(e2, "?").concat(new URLSearchParams(t2).toString()), i = "@gr4vy-secure-fields-debug", o = (function(e2) {
51
+ return e2.CARD_VAULT_SUCCESS = "card-vault-success", e2.CARD_VAULT_FAILURE = "card-vault-failure", e2.FORM_CHANGE = "form-change", e2.METHOD_CHANGE = "method-change", e2.READY = "ready", e2.RESIZE = "resize", e2.CLICK_TO_PAY_INITIALIZED = "click-to-pay-initialized", e2.CLICK_TO_PAY_READY = "click-to-pay-ready", e2.CLICK_TO_PAY_SIGN_OUT = "click-to-pay-sign-out", e2.CLICK_TO_PAY_ERROR = "click-to-pay-error", e2.CLICK_TO_PAY_CANCEL = "click-to-pay-cancel", e2.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD = "click-to-pay-checkout-with-new-card", e2.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA = "click-to-pay-unable-to-load-dpa", e2.CLICK_TO_PAY_VISIBILITY_CHANGE = "click-to-pay:visibility-change", e2.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE = "click-to-pay-card-form:visibility-change", e2.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE = "click-to-pay-sign-in:visibility-change", e2.CLICK_TO_PAY_PROCESSING = "click-to-pay-processing", e2.CLICK_TO_PAY_AUTHENTICATE = "click-to-pay-authenticate", e2.CLICK_TO_PAY_AUTHENTICATE_FAILURE = "click-to-pay-authenticate-failure", e2.THREE_DS_START = "three-ds-start", e2.THREE_DS_FINISH = "three-ds-finish", e2;
52
+ })({}), a = (function(e2) {
53
+ return e2.REQUEST_PORT = "request-port", e2.TRANSFER_PORT = "transfer-port", e2.REQUEST_RECOGNITION_TOKEN = "request-recognition-token", e2.REQUEST_RECOGNITION_TOKEN_FAILED = "request-recognition-token-failed", e2.RECOGNITION_TOKEN = "recognition-token", e2;
54
+ })({}), s = (function(e2) {
55
+ return e2.FOCUSED = "data-secure-fields-focused", e2.INVALID = "data-secure-fields-invalid", e2.AUTOFILLED = "data-secure-fields-autofilled", e2;
56
+ })({}), c = (function(e2) {
57
+ return e2.PAYMENT_METHOD_ID_IN_USE = "You're passing a paymentMethodId to use a stored payment method, which means Secure Fields methods `addCardNumber`, `addExpiryDate` and `addClickToPay` are automatically disabled and won't render the related fields", e2.PAYMENT_METHOD_ID_DEPRECATED = "The 'paymentMethodId' prop is deprecated and will be removed in a future version. Please use the 'paymentMethod' prop instead: { paymentMethod: { id: 'your-id', scheme: 'visa' } }", e2.FIELD_PATTERN_IN_USE = "The `pattern` option can't be used on card fields, so it won't be applied here.", e2.AUTO_ADVANCE_ENABLED = "autoAdvance is enabled. Auto-advancing focus on field completion can degrade checkout UX (see WCAG 3.2.2). Use with caution.", e2.NO_RECOGNITION_TOKEN = "The recognition token couldn't be obtained or the request took too much time. It is possible that a Click to Pay user was therefore not recognised.", e2;
58
+ })({}), l = "secure-fields", d = { number: "addCardNumberField", expiryDate: "addExpiryDateField", securityCode: "addSecurityCodeField" }, h = ["01", "02", "03", "04", "05"];
59
+ function u(e2, t2) {
60
+ (null == t2 || t2 > e2.length) && (t2 = e2.length);
61
+ for (var r2 = 0, n2 = new Array(t2); r2 < t2; r2++) n2[r2] = e2[r2];
62
+ return n2;
63
+ }
64
+ function p(e2, t2) {
65
+ return (function(e3) {
66
+ if (Array.isArray(e3)) return e3;
67
+ })(e2) || (function(e3, t3) {
68
+ var r2 = null == e3 ? null : "undefined" != typeof Symbol && e3[Symbol.iterator] || e3["@@iterator"];
69
+ if (null != r2) {
70
+ var n2, i2, o2 = [], a2 = true, s2 = false;
71
+ try {
72
+ for (r2 = r2.call(e3); !(a2 = (n2 = r2.next()).done) && (o2.push(n2.value), !t3 || o2.length !== t3); a2 = true) ;
73
+ } catch (e4) {
74
+ s2 = true, i2 = e4;
75
+ } finally {
76
+ try {
77
+ a2 || null == r2.return || r2.return();
78
+ } finally {
79
+ if (s2) throw i2;
80
+ }
81
+ }
82
+ return o2;
83
+ }
84
+ })(e2, t2) || (function(e3, t3) {
85
+ if (e3) {
86
+ if ("string" == typeof e3) return u(e3, t3);
87
+ var r2 = Object.prototype.toString.call(e3).slice(8, -1);
88
+ return "Object" === r2 && e3.constructor && (r2 = e3.constructor.name), "Map" === r2 || "Set" === r2 ? Array.from(r2) : "Arguments" === r2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r2) ? u(e3, t3) : void 0;
89
+ }
90
+ })(e2, t2) || (function() {
91
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
92
+ })();
93
+ }
94
+ var y = new class {
95
+ subscribe(e2, t2) {
96
+ this.subscribers.push([e2, t2]);
97
+ }
98
+ unsubscribe(e2, t2) {
99
+ this.subscribers = this.subscribers.filter((r2) => {
100
+ var n2 = p(r2, 2), i2 = n2[0], o2 = n2[1];
101
+ return i2 !== e2 || o2.toString() !== t2.toString();
102
+ });
103
+ }
104
+ unsubscribeAll() {
105
+ this.subscribers = [];
106
+ }
107
+ publish(e2, t2) {
108
+ this.subscribers.forEach((r2) => {
109
+ var n2 = p(r2, 2), i2 = n2[0], o2 = n2[1];
110
+ return setTimeout(() => i2 === e2 ? o2(t2) : null, 0);
111
+ });
112
+ }
113
+ constructor() {
114
+ var e2, t2;
115
+ t2 = void 0, (e2 = "subscribers") in this ? Object.defineProperty(this, e2, { value: t2, enumerable: true, configurable: true, writable: true }) : this[e2] = t2, this.subscribers = [];
116
+ }
117
+ }();
118
+ function m(e2, t2) {
119
+ (null == t2 || t2 > e2.length) && (t2 = e2.length);
120
+ for (var r2 = 0, n2 = new Array(t2); r2 < t2; r2++) n2[r2] = e2[r2];
121
+ return n2;
122
+ }
123
+ function f(e2, t2) {
124
+ return (function(e3) {
125
+ if (Array.isArray(e3)) return e3;
126
+ })(e2) || (function(e3, t3) {
127
+ var r2 = null == e3 ? null : "undefined" != typeof Symbol && e3[Symbol.iterator] || e3["@@iterator"];
128
+ if (null != r2) {
129
+ var n2, i2, o2 = [], a2 = true, s2 = false;
130
+ try {
131
+ for (r2 = r2.call(e3); !(a2 = (n2 = r2.next()).done) && (o2.push(n2.value), !t3 || o2.length !== t3); a2 = true) ;
132
+ } catch (e4) {
133
+ s2 = true, i2 = e4;
134
+ } finally {
135
+ try {
136
+ a2 || null == r2.return || r2.return();
137
+ } finally {
138
+ if (s2) throw i2;
139
+ }
140
+ }
141
+ return o2;
142
+ }
143
+ })(e2, t2) || (function(e3, t3) {
144
+ if (e3) {
145
+ if ("string" == typeof e3) return m(e3, t3);
146
+ var r2 = Object.prototype.toString.call(e3).slice(8, -1);
147
+ return "Object" === r2 && e3.constructor && (r2 = e3.constructor.name), "Map" === r2 || "Set" === r2 ? Array.from(r2) : "Arguments" === r2 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r2) ? m(e3, t3) : void 0;
148
+ }
149
+ })(e2, t2) || (function() {
150
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
151
+ })();
152
+ }
153
+ var v = new class {
154
+ add(e2, t2, r2) {
155
+ window.addEventListener(e2, t2), this.listeners.push([e2, t2, r2]);
156
+ }
157
+ remove(e2, t2, r2) {
158
+ var n2 = this.listeners.findIndex((n3) => {
159
+ var i3 = f(n3, 3), o3 = i3[0], a3 = i3[1], s3 = i3[2];
160
+ return o3 === e2 && a3.toString() === t2.toString() && s3 === r2;
161
+ });
162
+ if (-1 !== n2) {
163
+ var i2 = f(this.listeners.splice(n2, 1), 1), o2 = f(i2[0], 2), a2 = o2[0], s2 = o2[1];
164
+ window.removeEventListener(a2, s2);
165
+ }
166
+ }
167
+ removeAll() {
168
+ this.listeners.forEach((e2) => {
169
+ var t2 = f(e2, 2), r2 = t2[0], n2 = t2[1];
170
+ window.removeEventListener(r2, n2);
171
+ }), this.listeners = [];
172
+ }
173
+ constructor() {
174
+ var e2, t2;
175
+ t2 = [], (e2 = "listeners") in this ? Object.defineProperty(this, e2, { value: t2, enumerable: true, configurable: true, writable: true }) : this[e2] = t2;
176
+ }
177
+ }();
178
+ function b(e2, t2, r2) {
179
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
180
+ }
181
+ function _(e2) {
182
+ for (var t2 = 1; t2 < arguments.length; t2++) {
183
+ var r2 = null != arguments[t2] ? arguments[t2] : {}, n2 = Object.keys(r2);
184
+ "function" == typeof Object.getOwnPropertySymbols && (n2 = n2.concat(Object.getOwnPropertySymbols(r2).filter(function(e3) {
185
+ return Object.getOwnPropertyDescriptor(r2, e3).enumerable;
186
+ }))), n2.forEach(function(t3) {
187
+ b(e2, t3, r2[t3]);
188
+ });
189
+ }
190
+ return e2;
191
+ }
192
+ var I = { debug: false, level: "log" }, g = (e2, t2, r2) => {
193
+ var n2 = _({}, I, r2), o2 = n2.debug, a2 = n2.level;
194
+ (o2 || "true" === localStorage.getItem(i)) && console[a2]("Gr4vy - Secure Fields - ".concat(e2), t2 || {});
195
+ }, O = (e2, t2, r2) => {
196
+ var n2, i2;
197
+ g(e2, t2, (n2 = _({}, r2), i2 = null != (i2 = { level: "warn" }) ? i2 : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(n2, Object.getOwnPropertyDescriptors(i2)) : (function(e3) {
198
+ var t3 = Object.keys(e3);
199
+ if (Object.getOwnPropertySymbols) {
200
+ var r3 = Object.getOwnPropertySymbols(e3);
201
+ t3.push.apply(t3, r3);
202
+ }
203
+ return t3;
204
+ })(Object(i2)).forEach(function(e3) {
205
+ Object.defineProperty(n2, e3, Object.getOwnPropertyDescriptor(i2, e3));
206
+ }), n2));
207
+ };
208
+ function C(e2, t2, r2, n2, i2, o2, a2) {
209
+ try {
210
+ var s2 = e2[o2](a2), c2 = s2.value;
211
+ } catch (e3) {
212
+ return void r2(e3);
213
+ }
214
+ s2.done ? t2(c2) : Promise.resolve(c2).then(n2, i2);
215
+ }
216
+ function E(e2, t2, r2) {
217
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
218
+ }
219
+ function T(e2) {
220
+ for (var t2 = 1; t2 < arguments.length; t2++) {
221
+ var r2 = null != arguments[t2] ? arguments[t2] : {}, n2 = Object.keys(r2);
222
+ "function" == typeof Object.getOwnPropertySymbols && (n2 = n2.concat(Object.getOwnPropertySymbols(r2).filter(function(e3) {
223
+ return Object.getOwnPropertyDescriptor(r2, e3).enumerable;
224
+ }))), n2.forEach(function(t3) {
225
+ E(e2, t3, r2[t3]);
226
+ });
227
+ }
228
+ return e2;
229
+ }
230
+ function A(e2, t2) {
231
+ return t2 = null != t2 ? t2 : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(t2)) : (function(e3) {
232
+ var t3 = Object.keys(e3);
233
+ if (Object.getOwnPropertySymbols) {
234
+ var r2 = Object.getOwnPropertySymbols(e3);
235
+ t3.push.apply(t3, r2);
236
+ }
237
+ return t3;
238
+ })(Object(t2)).forEach(function(r2) {
239
+ Object.defineProperty(e2, r2, Object.getOwnPropertyDescriptor(t2, r2));
240
+ }), e2;
241
+ }
242
+ class S {
243
+ init(e2, t2) {
244
+ var r2;
245
+ this.challengeWindowSize = h.includes(null == t2 ? void 0 : t2.challengeWindowSize) ? t2.challengeWindowSize : "05", this.element = "string" == typeof e2 ? document.querySelector(e2) : e2;
246
+ var i2 = "gr4vy-threeds-flow-controller";
247
+ null === (r2 = document.body.querySelector("iframe#".concat(i2))) || void 0 === r2 || r2.remove();
248
+ var o2 = document.createElement("iframe");
249
+ o2.id = i2, o2.title = "ThreeDSecure", o2.style.display = "block", o2.style.border = "0px", o2.style.padding = "0px", o2.style.margin = "0px", o2.style.width = "100%", o2.style.height = "100%", o2.src = n(this.secureFields.frameUrl + "/threeds.html", { sessionId: this.secureFields.config.sessionId, parentOrigin: this.secureFields.parentOrigin, gr4vyId: this.secureFields.config.gr4vyId, environment: this.secureFields.config.environment }), this.element.appendChild(o2), this.controller = o2;
250
+ var a2 = { type: "three-ds-init", channel: l, data: { challengeWindowSize: this.challengeWindowSize } };
251
+ return o2.addEventListener("load", () => {
252
+ var e3;
253
+ null === (e3 = o2.contentWindow) || void 0 === e3 || e3.postMessage(a2, this.secureFields.frameUrl), this.resolveReady();
254
+ }, { once: true }), this.destroy(), v.add("message", this.boundListener, "three-ds"), this;
255
+ }
256
+ destroy() {
257
+ v.remove("message", this.boundListener, "three-ds");
258
+ }
259
+ listener(e2) {
260
+ return (t2 = function* () {
261
+ if (e2.origin === this.secureFields.frameUrl) {
262
+ var t3 = e2.data, r2 = t3.type, n2 = t3.data;
263
+ switch (r2) {
264
+ case o.THREE_DS_START:
265
+ y.publish(o.THREE_DS_START, A(T({}, n2), { element: this.element })), g("3DS start", e2.data.data);
266
+ break;
267
+ case o.THREE_DS_FINISH:
268
+ y.publish(o.THREE_DS_FINISH, A(T({}, n2), { element: this.element })), g("3DS finish", e2.data.data);
269
+ }
270
+ }
271
+ }, function() {
272
+ var e3 = this, r2 = arguments;
273
+ return new Promise(function(n2, i2) {
274
+ var o2 = t2.apply(e3, r2);
275
+ function a2(e4) {
276
+ C(o2, n2, i2, a2, s2, "next", e4);
277
+ }
278
+ function s2(e4) {
279
+ C(o2, n2, i2, a2, s2, "throw", e4);
280
+ }
281
+ a2(void 0);
282
+ });
283
+ }).call(this);
284
+ var t2;
285
+ }
286
+ constructor(e2) {
287
+ E(this, "secureFields", void 0), E(this, "controller", void 0), E(this, "ready", void 0), E(this, "challengeWindowSize", void 0), E(this, "element", void 0), E(this, "resolveReady", void 0), E(this, "boundListener", void 0), this.secureFields = e2, this.boundListener = this.listener.bind(this), this.ready = new Promise((e3) => {
288
+ this.resolveReady = e3;
289
+ });
290
+ }
291
+ }
292
+ function P(e2, t2, r2, n2, i2, o2, a2) {
293
+ try {
294
+ var s2 = e2[o2](a2), c2 = s2.value;
295
+ } catch (e3) {
296
+ return void r2(e3);
297
+ }
298
+ s2.done ? t2(c2) : Promise.resolve(c2).then(n2, i2);
299
+ }
300
+ class w extends Error {
301
+ constructor(e2) {
302
+ super(e2), this.name = "UnableToLoadDpaError";
303
+ }
304
+ }
305
+ var k = (e2, t2) => e2 && (e2.style.display = t2 ? "block" : "none"), N = (e2) => {
306
+ var t2, r2;
307
+ if (null === (t2 = document) || void 0 === t2 ? void 0 : t2.cookie) return null === (r2 = "; ".concat(document.cookie).match(";\\s*".concat(e2, "=([^;]+)"))) || void 0 === r2 ? void 0 : r2[1];
308
+ };
309
+ function D(e2, t2, r2, n2, i2, o2, a2) {
310
+ try {
311
+ var s2 = e2[o2](a2), c2 = s2.value;
312
+ } catch (e3) {
313
+ return void r2(e3);
314
+ }
315
+ s2.done ? t2(c2) : Promise.resolve(c2).then(n2, i2);
316
+ }
317
+ function L(e2) {
318
+ return function() {
319
+ var t2 = this, r2 = arguments;
320
+ return new Promise(function(n2, i2) {
321
+ var o2 = e2.apply(t2, r2);
322
+ function a2(e3) {
323
+ D(o2, n2, i2, a2, s2, "next", e3);
324
+ }
325
+ function s2(e3) {
326
+ D(o2, n2, i2, a2, s2, "throw", e3);
327
+ }
328
+ a2(void 0);
329
+ });
330
+ };
331
+ }
332
+ function R(e2, t2, r2) {
333
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
334
+ }
335
+ function U() {
336
+ return U = Object.assign || function(e2) {
337
+ for (var t2 = 1; t2 < arguments.length; t2++) {
338
+ var r2 = arguments[t2];
339
+ for (var n2 in r2) Object.prototype.hasOwnProperty.call(r2, n2) && (e2[n2] = r2[n2]);
340
+ }
341
+ return e2;
342
+ }, U.apply(this, arguments);
343
+ }
344
+ function j(e2) {
345
+ for (var t2 = 1; t2 < arguments.length; t2++) {
346
+ var r2 = null != arguments[t2] ? arguments[t2] : {}, n2 = Object.keys(r2);
347
+ "function" == typeof Object.getOwnPropertySymbols && (n2 = n2.concat(Object.getOwnPropertySymbols(r2).filter(function(e3) {
348
+ return Object.getOwnPropertyDescriptor(r2, e3).enumerable;
349
+ }))), n2.forEach(function(t3) {
350
+ R(e2, t3, r2[t3]);
351
+ });
352
+ }
353
+ return e2;
354
+ }
355
+ class M {
356
+ _addIframe(e2, t2, r2, i2) {
357
+ var o2 = document.createElement("iframe");
358
+ return o2.id = e2, o2.title = t2, o2.setAttribute("width", "100%"), o2.setAttribute("frameborder", "0"), o2.setAttribute("style", "height:0px"), o2.src = n(r2, i2), o2;
359
+ }
360
+ _attachListeners() {
361
+ var e2 = new MessageChannel(), t2 = true, r2 = (r3) => {
362
+ var n2 = r3.origin, i2 = r3.data, s2 = i2.type, d2 = i2.data;
363
+ switch (n2) {
364
+ case this.origin:
365
+ switch (s2) {
366
+ case o.RESIZE:
367
+ this.controller.style.height = "".concat(d2.height > 0 ? d2.height + 48 : 0, "px");
368
+ break;
369
+ case o.METHOD_CHANGE:
370
+ var h2 = d2.method || "card";
371
+ (this.secureFields.method !== h2 || t2) && (t2 = false, this.secureFields.updateMethod(h2, { data: d2 }), k(this.cardForm, "card" === h2), y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE, "card" === h2));
372
+ break;
373
+ case o.CLICK_TO_PAY_INITIALIZED:
374
+ y.publish(o.CLICK_TO_PAY_INITIALIZED, this.clickToPay), g("Click to Pay initialized", this.clickToPay), k(this.signIn, false), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, false), k(this.clickToPay.element, true), y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE, true);
375
+ break;
376
+ case o.CLICK_TO_PAY_READY:
377
+ this._buyerExists = d2.buyerExists, y.publish(o.CLICK_TO_PAY_READY, d2), g("Click to Pay ready"), k(this.signIn, !d2.buyerExists), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, !d2.buyerExists), k(this.clickToPay.element, true), y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE, true);
378
+ break;
379
+ case o.CLICK_TO_PAY_SIGN_OUT:
380
+ this.clickToPay.signOut();
381
+ break;
382
+ case o.CLICK_TO_PAY_ERROR:
383
+ y.publish(o.CLICK_TO_PAY_ERROR, d2), g("Click to Pay error:", d2), k(this.signIn, !["UNKNOWN", "INVALID_CARD", "CODE_INVALID"].includes(d2.error)), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, !["UNKNOWN", "INVALID_CARD", "CODE_INVALID"].includes(d2.error)), k(this.clickToPay.element, "UNKNOWN" !== d2.error), y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE, "UNKNOWN" !== d2.error);
384
+ break;
385
+ case o.CLICK_TO_PAY_CANCEL:
386
+ y.publish(o.CLICK_TO_PAY_CANCEL, d2), g("Click to Pay cancelled"), this._buyerExists || (k(this.signIn, true), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, true));
387
+ break;
388
+ case o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD:
389
+ y.publish(o.CLICK_TO_PAY_CHECKOUT_WITH_NEW_CARD, d2), k(this.signIn, false), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, false), g("Click to Pay checkout with new card initiated");
390
+ break;
391
+ case o.CLICK_TO_PAY_PROCESSING:
392
+ k(this.cardForm, !d2), y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE, d2), g("Click to Pay processing", d2);
393
+ break;
394
+ case o.CLICK_TO_PAY_AUTHENTICATE:
395
+ !(function(e3, t3) {
396
+ for (var r4 = arguments.length, n3 = new Array(r4 > 2 ? r4 - 2 : 0), i3 = 2; i3 < r4; i3++) n3[i3 - 2] = arguments[i3];
397
+ document.cookie = "".concat(e3, "=").concat(t3, "; path=/; ").concat(n3.join("; "));
398
+ })("recognitionToken", d2.recognitionToken, "Secure", "SameSite=Strict", "MaxAge=15552000");
399
+ break;
400
+ case o.CLICK_TO_PAY_AUTHENTICATE_FAILURE:
401
+ y.publish(o.CLICK_TO_PAY_AUTHENTICATE_FAILURE, d2), g("Click to Pay authenticate failure:", d2);
402
+ break;
403
+ case a.REQUEST_RECOGNITION_TOKEN:
404
+ this.controller.contentWindow.postMessage({ channel: l, type: a.RECOGNITION_TOKEN, data: { recognitionToken: N("recognitionToken") } }, this.origin);
405
+ break;
406
+ case a.REQUEST_RECOGNITION_TOKEN_FAILED:
407
+ O(c.NO_RECOGNITION_TOKEN);
408
+ break;
409
+ case a.REQUEST_PORT:
410
+ this.controller.contentWindow.postMessage({ channel: l, type: a.TRANSFER_PORT }, this.origin, [e2.port1]);
411
+ }
412
+ break;
413
+ case this.secureFields.frameUrl:
414
+ s2 === a.REQUEST_PORT && this.encrypt.contentWindow.postMessage({ channel: l, type: a.TRANSFER_PORT }, this.secureFields.frameUrl, [e2.port2]);
415
+ }
416
+ };
417
+ v.remove("message", r2, "click-to-pay"), v.add("message", r2, "click-to-pay");
418
+ }
419
+ _fetchDPA(e2, t2) {
420
+ return L(function* (e3, t3) {
421
+ var n2 = t3.gr4vyId, i2 = t3.environment, a2 = t3.sessionId;
422
+ try {
423
+ var s2 = e3 || (function(e4) {
424
+ return r(e4, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "production", "api");
425
+ })(n2, i2);
426
+ return yield (function(e4) {
427
+ return (t4 = function* (e5) {
428
+ var t5 = e5.apiBaseUrl, r2 = e5.checkoutSessionId;
429
+ try {
430
+ var n3 = "".concat(t5, "/digital-wallets/click-to-pay/session"), i3 = yield fetch(n3, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ checkout_session_id: r2 }) });
431
+ if (i3.ok) {
432
+ var o2 = yield i3.json();
433
+ return { srcDpaId: o2.digital_payment_application_id, dpaName: o2.digital_payment_application_name };
434
+ }
435
+ throw new w("Unable to load DPA");
436
+ } catch (e6) {
437
+ throw new w("Unable to load DPA");
438
+ }
439
+ }, function() {
440
+ var e5 = this, r2 = arguments;
441
+ return new Promise(function(n3, i3) {
442
+ var o2 = t4.apply(e5, r2);
443
+ function a3(e6) {
444
+ P(o2, n3, i3, a3, s3, "next", e6);
445
+ }
446
+ function s3(e6) {
447
+ P(o2, n3, i3, a3, s3, "throw", e6);
448
+ }
449
+ a3(void 0);
450
+ });
451
+ }).apply(this, arguments);
452
+ var t4;
453
+ })({ apiBaseUrl: s2, checkoutSessionId: a2 });
454
+ } catch (e4) {
455
+ return g(e4.message), y.publish(o.CLICK_TO_PAY_UNABLE_TO_LOAD_DPA), k(this.cardForm, true), y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE, true), k(this.clickToPay.element, false), void y.publish(o.CLICK_TO_PAY_VISIBILITY_CHANGE, false);
456
+ }
457
+ }).apply(this, arguments);
458
+ }
459
+ _initConsentCheckbox(e2) {
460
+ var t2 = e2.checked ? "click-to-pay" : "card";
461
+ this.secureFields.updateMethod(t2, { data: { method: t2 } }), e2.addEventListener("change", (e3) => {
462
+ var t3 = e3.target;
463
+ this.consent = t3.checked;
464
+ }), v.add("message", (t3) => {
465
+ switch (t3.data.type) {
466
+ case o.CLICK_TO_PAY_ERROR:
467
+ "UNKNOWN" === t3.data.data.error && (this.consent = false, e2.checked = false);
468
+ break;
469
+ case o.METHOD_CHANGE:
470
+ var r2 = this._buyerExists && "card" === t3.data.data.method;
471
+ this.consent = r2, e2.checked = r2;
472
+ }
473
+ }, "click-to-pay-consent-checkbox");
474
+ }
475
+ _setNewCardRememberMe(e2) {
476
+ this.controller.contentWindow.postMessage({ type: "remember-me-new-card-changed", channel: l, data: { value: e2 } }, this.origin);
477
+ }
478
+ _initNewCardRememberMeCheckbox(e2) {
479
+ e2.addEventListener("change", (e3) => {
480
+ var t2 = e3.target;
481
+ this._setNewCardRememberMe(t2.checked);
482
+ }), v.add("message", (t2) => {
483
+ switch (t2.data.type) {
484
+ case o.CLICK_TO_PAY_INITIALIZED:
485
+ this._setNewCardRememberMe(e2.checked);
486
+ break;
487
+ case o.CLICK_TO_PAY_ERROR:
488
+ "UNKNOWN" === t2.data.data.error && (this._setNewCardRememberMe(false), e2.checked = false);
489
+ }
490
+ }, "click-to-pay-new-card-remember-me-checkbox");
491
+ }
492
+ _initLearnMore(e2) {
493
+ e2.style.visibility = "hidden", v.add("message", (t2) => {
494
+ t2.data.type === o.CLICK_TO_PAY_INITIALIZED && (e2.style.visibility = "visible", e2.addEventListener("click", () => {
495
+ this.controller.contentWindow.postMessage({ type: "show-learn-more", channel: l }, this.origin);
496
+ }));
497
+ }, "click-to-pay-learn-more");
498
+ }
499
+ init(e2, t2) {
500
+ return L(function* () {
501
+ this.cardForm = "string" == typeof (null == t2 ? void 0 : t2.cardForm) ? document.querySelector(null == t2 ? void 0 : t2.cardForm) : null == t2 ? void 0 : t2.cardForm, this.signIn = "string" == typeof (null == t2 ? void 0 : t2.signIn) ? document.querySelector(null == t2 ? void 0 : t2.signIn) : null == t2 ? void 0 : t2.signIn, k(this.signIn, false);
502
+ var r2 = this.secureFields, n2 = r2.apiUrl, i2 = r2.config, a2 = i2.gr4vyId, s2 = i2.environment, c2 = i2.sessionId, l2 = r2.environmentPath;
503
+ if (this.clickToPay = { element: null, options: t2, signIn: (e3) => {
504
+ var t3 = e3.email, r3 = e3.mobileNumber;
505
+ return L(function* () {
506
+ var e4 = this.clickToPay, n3 = e4.element, i3 = e4.options;
507
+ delete i3.email, delete i3.mobileNumber, n3.innerHTML = "", k(this.signIn, false), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, false), k(this.cardForm, false), y.publish(o.CLICK_TO_PAY_CARD_FORM_VISIBILITY_CHANGE, false), this.secureFields.update("clickToPay", yield this.init(n3, j({}, i3, t3 ? { email: t3 } : {}, r3 ? { mobileNumber: r3 } : {})));
508
+ }).call(this);
509
+ }, signOut: () => (this._buyerExists = false, y.publish(o.CLICK_TO_PAY_SIGN_OUT), g("Click to pay signed out"), k(this.signIn, true), y.publish(o.CLICK_TO_PAY_SIGN_IN_VISIBILITY_CHANGE, true), document.cookie = "".concat("recognitionToken", "=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;"), this.clickToPay.signIn({ email: null, mobileNumber: null })), updateCheckoutOptions: (e3) => {
510
+ this.checkoutOptions = j({}, this.checkoutOptions, e3);
511
+ } }, !(null == t2 ? void 0 : t2.srcDpaId) || !(null == t2 ? void 0 : t2.dpaName)) {
512
+ var d2 = yield this._fetchDPA(n2, { gr4vyId: a2, environment: s2, sessionId: c2 });
513
+ if (!(null == d2 ? void 0 : d2.srcDpaId) && !(null == d2 ? void 0 : d2.dpaName)) return;
514
+ t2.srcDpaId = d2.srcDpaId, t2.dpaName = d2.dpaName;
515
+ }
516
+ this.url = window.CLICK_TO_PAY_FRAME_URL || "https://click-to-pay.".concat(l2).concat(a2, ".gr4vy.app"), this.origin = new URL(this.url).origin;
517
+ var h2 = window.location.origin, u2 = ((function(e3) {
518
+ if (null == e3) throw new TypeError("Cannot destructure " + e3);
519
+ })(t2), j({ gr4vyId: a2, environment: s2, sessionId: c2 }, U({}, t2)));
520
+ if (this.controller = this._addIframe("click-to-pay-controller", "Click To Pay", "".concat(this.url, "/click-to-pay.html"), { parentOrigin: h2, environment: s2, config: encodeURIComponent(JSON.stringify(u2)) }), this.encrypt = this._addIframe("click-to-pay-encrypt", "Click To Pay Encrypt", "".concat(this.secureFields.frameUrl, "/click-to-pay-encrypt.html"), { parentOrigin: h2, environment: s2, config: encodeURIComponent(JSON.stringify(u2)) }), this._attachListeners(), null == t2 ? void 0 : t2.consentCheckbox) {
521
+ var p2 = "string" == typeof (null == t2 ? void 0 : t2.consentCheckbox) ? document.querySelector(null == t2 ? void 0 : t2.consentCheckbox) : null == t2 ? void 0 : t2.consentCheckbox;
522
+ p2 && this._initConsentCheckbox(p2);
523
+ }
524
+ if (null == t2 ? void 0 : t2.rememberMeCheckbox) {
525
+ var m2 = "string" == typeof (null == t2 ? void 0 : t2.rememberMeCheckbox) ? document.querySelector(t2.rememberMeCheckbox) : null == t2 ? void 0 : t2.rememberMeCheckbox;
526
+ m2 && this._initNewCardRememberMeCheckbox(m2);
527
+ }
528
+ if (null == t2 ? void 0 : t2.learnMoreLink) {
529
+ var f2 = "string" == typeof (null == t2 ? void 0 : t2.learnMoreLink) ? document.querySelector(null == t2 ? void 0 : t2.learnMoreLink) : null == t2 ? void 0 : t2.learnMoreLink;
530
+ f2 && this._initLearnMore(f2);
531
+ }
532
+ return (e2 = "string" == typeof e2 ? document.querySelector(e2) : e2).appendChild(this.controller), e2.appendChild(this.encrypt), this.clickToPay.element = e2, this.clickToPay;
533
+ }).call(this);
534
+ }
535
+ constructor(e2) {
536
+ R(this, "secureFields", void 0), R(this, "_buyerExists", void 0), R(this, "consent", void 0), R(this, "controller", void 0), R(this, "encrypt", void 0), R(this, "origin", void 0), R(this, "url", void 0), R(this, "cardForm", void 0), R(this, "signIn", void 0), R(this, "checkoutOptions", void 0), R(this, "clickToPay", void 0), this.secureFields = e2, this._buyerExists = false, this.consent = false, this.checkoutOptions = {};
537
+ }
538
+ }
539
+ var F = (e2) => (e2 != e2.toLowerCase() && (e2 = e2.replace(/[A-Z]/g, (e3) => "-" + e3.toLowerCase())), e2);
540
+ function x(e2, t2) {
541
+ (null == t2 || t2 > e2.length) && (t2 = e2.length);
542
+ for (var r2 = 0, n2 = new Array(t2); r2 < t2; r2++) n2[r2] = e2[r2];
543
+ return n2;
544
+ }
545
+ var Y = function() {
546
+ var e2 = function(t2) {
547
+ var r2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "";
548
+ return Object.entries(t2).reduce((n2, i2) => {
549
+ var o2, a2, s2 = (a2 = 2, (function(e3) {
550
+ if (Array.isArray(e3)) return e3;
551
+ })(o2 = i2) || (function(e3, t3) {
552
+ var r3 = null == e3 ? null : "undefined" != typeof Symbol && e3[Symbol.iterator] || e3["@@iterator"];
553
+ if (null != r3) {
554
+ var n3, i3, o3 = [], a3 = true, s3 = false;
555
+ try {
556
+ for (r3 = r3.call(e3); !(a3 = (n3 = r3.next()).done) && (o3.push(n3.value), !t3 || o3.length !== t3); a3 = true) ;
557
+ } catch (e4) {
558
+ s3 = true, i3 = e4;
559
+ } finally {
560
+ try {
561
+ a3 || null == r3.return || r3.return();
562
+ } finally {
563
+ if (s3) throw i3;
564
+ }
565
+ }
566
+ return o3;
567
+ }
568
+ })(o2, a2) || (function(e3, t3) {
569
+ if (e3) {
570
+ if ("string" == typeof e3) return x(e3, t3);
571
+ var r3 = Object.prototype.toString.call(e3).slice(8, -1);
572
+ return "Object" === r3 && e3.constructor && (r3 = e3.constructor.name), "Map" === r3 || "Set" === r3 ? Array.from(r3) : "Arguments" === r3 || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r3) ? x(e3, t3) : void 0;
573
+ }
574
+ })(o2, a2) || (function() {
575
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
576
+ })()), c2 = s2[0], l2 = s2[1];
577
+ return ((e3) => "[object Object]" === Object.prototype.toString.call(e3))(l2) ? n2.push(...e2(t2[c2], "".concat((r2 + c2).match(/[a-zA-Z0-9]+/g).join("-"), "-"))) : (c2 = F(c2).replace(/^-/, ""), n2.push(["--".concat(r2).concat(c2), l2])), n2;
578
+ }, []);
579
+ };
580
+ return e2(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {});
581
+ };
582
+ function K(e2, t2, r2, n2, i2, o2, a2) {
583
+ try {
584
+ var s2 = e2[o2](a2), c2 = s2.value;
585
+ } catch (e3) {
586
+ return void r2(e3);
587
+ }
588
+ s2.done ? t2(c2) : Promise.resolve(c2).then(n2, i2);
589
+ }
590
+ function H(e2, t2, r2) {
591
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
592
+ }
593
+ function G(e2) {
594
+ for (var t2 = 1; t2 < arguments.length; t2++) {
595
+ var r2 = null != arguments[t2] ? arguments[t2] : {}, n2 = Object.keys(r2);
596
+ "function" == typeof Object.getOwnPropertySymbols && (n2 = n2.concat(Object.getOwnPropertySymbols(r2).filter(function(e3) {
597
+ return Object.getOwnPropertyDescriptor(r2, e3).enumerable;
598
+ }))), n2.forEach(function(t3) {
599
+ H(e2, t3, r2[t3]);
600
+ });
601
+ }
602
+ return e2;
603
+ }
604
+ function V(e2, t2) {
605
+ return t2 = null != t2 ? t2 : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(t2)) : (function(e3) {
606
+ var t3 = Object.keys(e3);
607
+ if (Object.getOwnPropertySymbols) {
608
+ var r2 = Object.getOwnPropertySymbols(e3);
609
+ t3.push.apply(t3, r2);
610
+ }
611
+ return t3;
612
+ })(Object(t2)).forEach(function(r2) {
613
+ Object.defineProperty(e2, r2, Object.getOwnPropertyDescriptor(t2, r2));
614
+ }), e2;
615
+ }
616
+ class W {
617
+ _postMessage(e2) {
618
+ return (t2 = function* () {
619
+ yield this.ready, this.frame.contentWindow.postMessage(G({ channel: l }, e2), this.frameUrl);
620
+ }, function() {
621
+ var e3 = this, r2 = arguments;
622
+ return new Promise(function(n2, i2) {
623
+ var o2 = t2.apply(e3, r2);
624
+ function a2(e4) {
625
+ K(o2, n2, i2, a2, s2, "next", e4);
626
+ }
627
+ function s2(e4) {
628
+ K(o2, n2, i2, a2, s2, "throw", e4);
629
+ }
630
+ a2(void 0);
631
+ });
632
+ }).call(this);
633
+ var t2;
634
+ }
635
+ update(e2) {
636
+ if (this.frameUrl) {
637
+ this.options = G({}, this.options, e2);
638
+ var t2 = Y(G({}, this.options.styles, e2.styles)), r2 = V(G({}, this.options, e2), { styles: t2 });
639
+ this._postMessage({ type: "update", data: V(G({}, r2), { styles: t2 }) }), g("Updated field", this.options);
640
+ }
641
+ }
642
+ setPlaceholder(e2) {
643
+ this.update({ placeholder: e2 });
644
+ }
645
+ setStyles(e2) {
646
+ this.update({ styles: e2 });
647
+ }
648
+ clear() {
649
+ if (this.frameUrl) {
650
+ var e2 = this.type;
651
+ this._postMessage({ type: "reset", data: { type: e2 } }), g("Cleared field", { type: e2 });
652
+ }
653
+ }
654
+ focus() {
655
+ if (this.frameUrl) {
656
+ var e2 = this.type;
657
+ this._postMessage({ type: "focus", data: { type: e2 } }), g("Focus field", { type: e2 });
658
+ }
659
+ }
660
+ redactValue() {
661
+ if (this.frameUrl) {
662
+ var e2 = this.type;
663
+ this._postMessage({ type: "redact-value", data: { type: e2 } }), g("Redact field", { type: e2 });
664
+ }
665
+ }
666
+ unredactValue() {
667
+ if (this.frameUrl) {
668
+ var e2 = this.type;
669
+ this._postMessage({ type: "unredact-value", data: { type: e2 } }), g("Unredact field", { type: e2 });
670
+ }
671
+ }
672
+ setEnterKeyHint(e2) {
673
+ if (this.frameUrl) {
674
+ var t2 = this.type;
675
+ this._postMessage({ type: "set-enter-key-hint", data: { type: t2, value: e2 } }), g("Updated enter key hint", { type: t2, value: e2 });
676
+ }
677
+ }
678
+ constructor(e2) {
679
+ if (H(this, "frameUrl", void 0), H(this, "parentOrigin", void 0), H(this, "frame", void 0), H(this, "type", void 0), H(this, "options", void 0), H(this, "addEventListener", void 0), H(this, "removeEventListener", void 0), H(this, "ready", void 0), H(this, "_resolveReady", void 0), H(this, "complete", void 0), e2) {
680
+ this.ready = new Promise((e3) => {
681
+ this._resolveReady = e3;
682
+ });
683
+ var t2 = e2.frameUrl, r2 = e2.parentOrigin, i2 = e2.font, o2 = e2.sessionId, a2 = e2.gr4vyId, s2 = e2.environment, c2 = e2.options, l2 = c2.type, d2 = c2.autoFocus, h2 = (function(e3, t3) {
684
+ if (null == e3) return {};
685
+ var r3, n2, i3, o3 = {};
686
+ if ("undefined" != typeof Reflect && Reflect.ownKeys) {
687
+ for (r3 = Reflect.ownKeys(Object(e3)), i3 = 0; i3 < r3.length; i3++) n2 = r3[i3], t3.indexOf(n2) >= 0 || Object.prototype.propertyIsEnumerable.call(e3, n2) && (o3[n2] = e3[n2]);
688
+ return o3;
689
+ }
690
+ if (o3 = (function(e4, t4) {
691
+ if (null == e4) return {};
692
+ var r4, n3, i4 = {}, o4 = Object.getOwnPropertyNames(e4);
693
+ for (n3 = 0; n3 < o4.length; n3++) r4 = o4[n3], t4.indexOf(r4) >= 0 || Object.prototype.propertyIsEnumerable.call(e4, r4) && (i4[r4] = e4[r4]);
694
+ return i4;
695
+ })(e3, t3), Object.getOwnPropertySymbols) for (r3 = Object.getOwnPropertySymbols(e3), i3 = 0; i3 < r3.length; i3++) n2 = r3[i3], t3.indexOf(n2) >= 0 || Object.prototype.propertyIsEnumerable.call(e3, n2) && (o3[n2] = e3[n2]);
696
+ return o3;
697
+ })(c2, ["type", "autoFocus"]), u2 = e2.paymentMethodScheme;
698
+ this.frameUrl = t2, this.parentOrigin = r2, this.type = l2, this.options = h2;
699
+ var p2 = Y(h2.styles), y2 = { parentOrigin: r2, type: l2, sessionId: o2, gr4vyId: a2, environment: s2 };
700
+ this.frame = document.createElement("iframe"), this.frame.id = l2, this.frame.src = n("".concat(t2, "/input.html"), y2), this.frame.title = "Secure Input", this.frame.style.display = "block", this.frame.style.height = "100%", this.frame.style.border = "none", this.frame.style.width = "100%", i2 && (this.frame.src += "&font=".concat(i2)), u2 && (this.frame.src += "&paymentMethodScheme=".concat(u2)), this.frame.onload = () => {
701
+ this._postMessage({ type: "update", data: V(G({}, this.options), { styles: p2, type: l2 }) }), g("Added field", this.options), d2 && this.focus();
702
+ };
703
+ }
704
+ }
705
+ }
706
+ var B = ["number", "expiryDate", "securityCode", "postalCode"], q = ["accesskey", "autocapitalize", "autocomplete", "autofocus", "aria-.", "class", "contenteditable", "data-.", "dir", "draggable", "enterkeyhint", "hidden", "id", "inert", "inputmode", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "nonce", "onabort", "onautocomplete", "onautocompleteerror", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontextmenu", "oncuechange", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onseeked", "onseeking", "onselect", "onshow", "onsort", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onvolumechange", "onwaiting", "popover", "role", "slot", "spellcheck", "style", "tabindex", "title", "translate"];
707
+ function z(e2, t2, r2) {
708
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
709
+ }
710
+ var Z = ["visa", "mastercard", "amex"];
711
+ function Q(e2, t2, r2, n2, i2, o2, a2) {
712
+ try {
713
+ var s2 = e2[o2](a2), c2 = s2.value;
714
+ } catch (e3) {
715
+ return void r2(e3);
716
+ }
717
+ s2.done ? t2(c2) : Promise.resolve(c2).then(n2, i2);
718
+ }
719
+ function J(e2, t2, r2) {
720
+ return t2 in e2 ? Object.defineProperty(e2, t2, { value: r2, enumerable: true, configurable: true, writable: true }) : e2[t2] = r2, e2;
721
+ }
722
+ function $(e2) {
723
+ for (var t2 = 1; t2 < arguments.length; t2++) {
724
+ var r2 = null != arguments[t2] ? arguments[t2] : {}, n2 = Object.keys(r2);
725
+ "function" == typeof Object.getOwnPropertySymbols && (n2 = n2.concat(Object.getOwnPropertySymbols(r2).filter(function(e3) {
726
+ return Object.getOwnPropertyDescriptor(r2, e3).enumerable;
727
+ }))), n2.forEach(function(t3) {
728
+ J(e2, t3, r2[t3]);
729
+ });
730
+ }
731
+ return e2;
732
+ }
733
+ function X(e2, t2) {
734
+ return t2 = null != t2 ? t2 : {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(e2, Object.getOwnPropertyDescriptors(t2)) : (function(e3) {
735
+ var t3 = Object.keys(e3);
736
+ if (Object.getOwnPropertySymbols) {
737
+ var r2 = Object.getOwnPropertySymbols(e3);
738
+ t3.push.apply(t3, r2);
739
+ }
740
+ return t3;
741
+ })(Object(t2)).forEach(function(r2) {
742
+ Object.defineProperty(e2, r2, Object.getOwnPropertyDescriptor(t2, r2));
743
+ }), e2;
744
+ }
745
+ function ee(e2, t2) {
746
+ if (null == e2) return {};
747
+ var r2, n2, i2, o2 = {};
748
+ if ("undefined" != typeof Reflect && Reflect.ownKeys) {
749
+ for (r2 = Reflect.ownKeys(Object(e2)), i2 = 0; i2 < r2.length; i2++) n2 = r2[i2], t2.indexOf(n2) >= 0 || Object.prototype.propertyIsEnumerable.call(e2, n2) && (o2[n2] = e2[n2]);
750
+ return o2;
751
+ }
752
+ if (o2 = (function(e3, t3) {
753
+ if (null == e3) return {};
754
+ var r3, n3, i3 = {}, o3 = Object.getOwnPropertyNames(e3);
755
+ for (n3 = 0; n3 < o3.length; n3++) r3 = o3[n3], t3.indexOf(r3) >= 0 || Object.prototype.propertyIsEnumerable.call(e3, r3) && (i3[r3] = e3[r3]);
756
+ return i3;
757
+ })(e2, t2), Object.getOwnPropertySymbols) for (r2 = Object.getOwnPropertySymbols(e2), i2 = 0; i2 < r2.length; i2++) n2 = r2[i2], t2.indexOf(n2) >= 0 || Object.prototype.propertyIsEnumerable.call(e2, n2) && (o2[n2] = e2[n2]);
758
+ return o2;
759
+ }
760
+ class te {
761
+ static get Events() {
762
+ return o;
763
+ }
764
+ static get version() {
765
+ return "#ffb6feb2e0f001ac7ebf45b5c1b5802e589b3a28";
766
+ }
767
+ update(e2, t2) {
768
+ this[e2] = t2;
769
+ }
770
+ updateMethod(e2, t2) {
771
+ var r2 = t2.data;
772
+ this.update("method", e2), y.publish(o.METHOD_CHANGE, r2), g("Method changed", { method: e2 }), this.controller.contentWindow.postMessage({ type: "method-change", channel: l }, this.frameUrl);
773
+ }
774
+ setAutoAdvance(e2) {
775
+ e2.enabled && (O(c.AUTO_ADVANCE_ENABLED), this.autoAdvance = ((e3) => {
776
+ var t2 = e3.enabled, r2 = e3.secureFields, n2 = ((e4) => {
777
+ if (!(null == e4 ? void 0 : e4.length)) return B;
778
+ var t3 = e4.filter((t4, r4) => B.includes(t4) && e4.indexOf(t4) === r4), r3 = B.filter((e5) => !t3.includes(e5));
779
+ return [...t3, ...r3];
780
+ })(e3.fieldOrder), i2 = (e4) => e4 ? "number" === e4 ? r2.cardNumber : "expiryDate" === e4 ? r2.expiryDate : "securityCode" === e4 ? r2.securityCode : r2.otherFields[e4] : null, o2 = (e4) => {
781
+ var t3 = e4.type, r3 = e4.nextIndex, a2 = null != r3 ? r3 : n2.indexOf(t3);
782
+ if (!(a2 < 0 || a2 >= n2.length - 1)) {
783
+ var s2 = i2(n2[a2 + 1]);
784
+ !(null == s2 ? void 0 : s2.complete) && (null == s2 ? void 0 : s2.frame) ? s2.focus() : o2({ nextIndex: a2 + 1 });
785
+ }
786
+ };
787
+ return { get enabled() {
788
+ return t2;
789
+ }, get fieldOrder() {
790
+ return n2;
791
+ }, updateEnterKeyHint: (e4) => {
792
+ var r3;
793
+ if (null == e4 ? void 0 : e4.frame) {
794
+ var o3 = n2.indexOf(e4.type), a2 = n2[o3 + 1], s2 = a2 && (null === (r3 = i2(a2)) || void 0 === r3 ? void 0 : r3.frame);
795
+ e4.setEnterKeyHint(t2 && s2 ? "next" : "done");
796
+ }
797
+ }, trigger: o2 };
798
+ })(X($({}, e2), { secureFields: this })));
799
+ }
800
+ _addField(e2, t2, r2) {
801
+ if (!(e2 = "string" == typeof e2 ? document.querySelector(e2) : e2) || !t2.frame) return t2.addEventListener = () => {
802
+ }, t2.removeEventListener = () => {
803
+ }, t2;
804
+ var n2 = e2.closest("[data-secure-fields-input-group]"), i2 = null != n2 ? n2 : document.createElement("div"), o2 = (e3) => {
805
+ var r3;
806
+ if (e3.origin === this.frameUrl && (null === (r3 = e3.data.data) || void 0 === r3 ? void 0 : r3.id) === t2.type) switch (e3.data.type) {
807
+ case "blur":
808
+ y.publish("".concat(t2.type, ":blur"), e3.data.data), i2.removeAttribute(s.FOCUSED), g("Field blurred", e3.data.data);
809
+ break;
810
+ case "focus":
811
+ y.publish("".concat(t2.type, ":focus"), e3.data.data), i2.setAttribute(s.FOCUSED, ""), g("Field focused", e3.data.data);
812
+ break;
813
+ case "input":
814
+ var n3, o3 = e3.data.data, a2 = o3.complete, c2 = o3.fromBlur, l2 = o3.isDeleteInputType, d2 = ee(o3, ["complete", "fromBlur", "isDeleteInputType"]);
815
+ if (y.publish("".concat(t2.type, ":input"), d2), t2.complete = a2, e3.data.data.valid ? i2.removeAttribute(s.INVALID) : i2.setAttribute(s.INVALID, ""), e3.data.data.autofilled ? i2.setAttribute(s.AUTOFILLED, "") : i2.removeAttribute(s.AUTOFILLED), (null === (n3 = this.autoAdvance) || void 0 === n3 ? void 0 : n3.enabled) && a2 && !d2.autofilled && false === c2 && !l2 && this.autoAdvance.trigger({ type: t2.type }), this.schemeIcons && "number" === t2.type) {
816
+ var h2, u2, p2;
817
+ d2.bin || (this.cardDetailsSchemes = { scheme: void 0, additionalSchemes: [] });
818
+ var m2 = null !== (h2 = null === (u2 = this.cardDetailsSchemes) || void 0 === u2 ? void 0 : u2.scheme) && void 0 !== h2 ? h2 : d2.schema, f2 = null === (p2 = this.cardDetailsSchemes) || void 0 === p2 ? void 0 : p2.additionalSchemes;
819
+ !m2 && d2.empty && this.schemeIcons.config.placeholders ? this.schemeIcons.showPlaceholders() : m2 ? this.schemeIcons.showSchemes({ scheme: m2, additionalSchemes: f2 }) : this.schemeIcons.hideSchemes();
820
+ }
821
+ g("Field input changed", d2);
822
+ break;
823
+ case "redacted":
824
+ y.publish("".concat(t2.type, ":redacted"), e3.data.data), g("Field redacted", e3.data.data);
825
+ break;
826
+ case "unredacted":
827
+ y.publish("".concat(t2.type, ":unredacted"), e3.data.data), g("Field unredacted", e3.data.data);
828
+ break;
829
+ case "card-details-changed":
830
+ var v2;
831
+ y.publish("".concat(t2.type, ":card-details-changed"), e3.data.data), this.schemeIcons && (this.cardDetailsSchemes = { scheme: e3.data.data.scheme, additionalSchemes: null !== (v2 = e3.data.data.additionalSchemes) && void 0 !== v2 ? v2 : [] }, this.schemeIcons.showSchemes(this.cardDetailsSchemes)), g("Card details changed", e3.data.data);
832
+ }
833
+ };
834
+ return v.remove("message", o2, t2.type), v.add("message", o2, t2.type), t2.addEventListener = this.addEventListener, t2.removeEventListener = this.removeEventListener, this.controllerReady.then(() => {
835
+ var o3, a2, s2, c2;
836
+ o3 = e2, a2 = i2, Array.from(o3.attributes).forEach((e3) => {
837
+ var t3 = e3.name, r3 = e3.value;
838
+ q.some((e4) => new RegExp(e4).test(t3)) && a2.setAttribute(t3, r3);
839
+ }), (i2 = a2).classList.add("secure-fields__input", "secure-fields__input--".concat(F(t2.type))), n2 ? (null === (s2 = e2.parentNode) || void 0 === s2 || s2.replaceChild(t2.frame, e2), n2.style.display = "inline-flex", n2.style.alignItems = "center", t2.frame.style.minWidth = "0") : (null === (c2 = e2.parentNode) || void 0 === c2 || c2.replaceChild(i2, e2), i2.appendChild(t2.frame)), "number" === t2.type && (null == r2 ? void 0 : r2.showSchemeIcons) && (i2.style.display = "inline-flex", i2.style.alignItems = "center", this.schemeIcons = ((e3) => {
840
+ var t3 = e3.baseUrl, r3 = ((e4) => {
841
+ var t4 = { scheme: false, additionalSchemes: false, placeholders: false };
842
+ return "boolean" == typeof e4 ? e4 ? { scheme: true, additionalSchemes: true, placeholders: false } : t4 : (function(e5) {
843
+ for (var t5 = 1; t5 < arguments.length; t5++) {
844
+ var r4 = null != arguments[t5] ? arguments[t5] : {}, n4 = Object.keys(r4);
845
+ "function" == typeof Object.getOwnPropertySymbols && (n4 = n4.concat(Object.getOwnPropertySymbols(r4).filter(function(e6) {
846
+ return Object.getOwnPropertyDescriptor(r4, e6).enumerable;
847
+ }))), n4.forEach(function(t6) {
848
+ z(e5, t6, r4[t6]);
849
+ });
850
+ }
851
+ return e5;
852
+ })({}, t4, e4);
853
+ })(e3.showSchemeIcons), n3 = /* @__PURE__ */ new Set(), i3 = document.createElement("div");
854
+ i3.classList.add("secure-fields__scheme-icons"), i3.style.display = "flex", i3.style.gap = "4px", i3.style.marginRight = "4px";
855
+ var o4 = Array.from({ length: 3 }, () => {
856
+ var e4 = document.createElement("img");
857
+ return e4.setAttribute("alt", ""), e4.setAttribute("aria-hidden", "true"), e4.style.display = "none", e4.onerror = () => {
858
+ var t4 = e4.getAttribute("src");
859
+ t4 && n3.add(t4), e4.style.display = "none";
860
+ }, e4.onload = () => {
861
+ e4.style.display = "block";
862
+ }, i3.appendChild(e4), e4;
863
+ }), a3 = (e4) => {
864
+ var i4 = e4.scheme, a4 = void 0 === i4 ? "" : i4, s3 = e4.additionalSchemes, c3 = void 0 === s3 ? [] : s3, l2 = e4.placeholders, d2 = void 0 !== l2 && l2, h2 = [...r3.scheme && a4 ? [a4] : [], ...r3.additionalSchemes && c3.length ? c3 : [], ...d2 ? Z : []].slice(0, 3);
865
+ o4.forEach((e5, r4) => {
866
+ var i5 = h2[r4];
867
+ if (i5) {
868
+ var o5 = "".concat(t3, "/").concat(i5, ".svg");
869
+ e5.getAttribute("src") !== o5 ? (e5.setAttribute("src", o5), e5.width = 48) : n3.has(o5) || (e5.style.display = "block");
870
+ } else e5.style.display = "none";
871
+ });
872
+ };
873
+ return { config: r3, container: i3, slots: o4, showSchemes: a3, showPlaceholders: () => a3({ placeholders: true }), hideSchemes: () => o4.forEach((e4) => e4.style.display = "none") };
874
+ })({ baseUrl: "".concat(this.cdnBaseUrl, "/assets/icons/card-schemes"), showSchemeIcons: r2.showSchemeIcons }), t2.frame.after(this.schemeIcons.container), this.schemeIcons.config.placeholders && this.schemeIcons.showPlaceholders()), t2._resolveReady(), t2.frame.addEventListener("load", () => {
875
+ var e3;
876
+ return null === (e3 = this.autoAdvance) || void 0 === e3 ? void 0 : e3.updateEnterKeyHint(t2);
877
+ });
878
+ }), t2;
879
+ }
880
+ addCardNumberField(e2, t2) {
881
+ return this.paymentMethodId && O(c.PAYMENT_METHOD_ID_IN_USE, { method: "addCardNumberField" }), this.cardNumber || (this.cardNumber = new W(X($({ frameUrl: this.frameUrl, parentOrigin: this.parentOrigin, font: this.font, sessionId: this.config.sessionId, gr4vyId: this.config.gr4vyId, environment: this.config.environment }, this.paymentMethodId ? { paymentMethodId: this.paymentMethodId } : {}), { options: X($({ label: "Card number" }, t2), { type: "number" }) }))), this._addField(e2, this.cardNumber, t2);
882
+ }
883
+ addSecurityCodeField(e2, t2) {
884
+ var r2, n2;
885
+ return this.securityCode || (this.securityCode = new W({ frameUrl: this.frameUrl, parentOrigin: this.parentOrigin, font: this.font, options: X($({ label: "Security code" }, this.paymentMethodId && !(null === (r2 = this.config.paymentMethod) || void 0 === r2 ? void 0 : r2.scheme) ? { lengths: [3, 4] } : {}, t2), { type: "securityCode" }), paymentMethodScheme: null === (n2 = this.config.paymentMethod) || void 0 === n2 ? void 0 : n2.scheme })), this._addField(e2, this.securityCode);
886
+ }
887
+ addExpiryDateField(e2, t2) {
888
+ return this.paymentMethodId && O(c.PAYMENT_METHOD_ID_IN_USE, { method: "addExpiryDateField" }), this.expiryDate || (this.expiryDate = new W({ frameUrl: this.frameUrl, parentOrigin: this.parentOrigin, font: this.font, options: X($({ label: "Expiry date" }, t2), { type: "expiryDate" }) })), this._addField(e2, this.expiryDate);
889
+ }
890
+ addField(e2, t2) {
891
+ if (["number", "expiryDate", "securityCode"].includes(t2.type)) {
892
+ t2.pattern && O(c.FIELD_PATTERN_IN_USE, $({ method: "addField" }, t2)), t2.pattern, t2.type;
893
+ var r2 = ee(t2, ["pattern", "type"]);
894
+ return this[d[t2.type]](e2, r2);
895
+ }
896
+ return this.otherFields[t2.type] || (this.otherFields = X($({}, this.otherFields), { [t2.type]: new W({ frameUrl: this.frameUrl, parentOrigin: this.parentOrigin, font: this.font, options: t2 }) })), this._addField(e2, this.otherFields[t2.type]);
897
+ }
898
+ addThreeDSecure(e2, t2) {
899
+ this.threeDS || (this.threeDS = new S(this), this.threeDS.init(e2, t2), this.setThreeDSecureEnabled(true), this.postThreeDSInit());
900
+ }
901
+ removeThreeDSecure() {
902
+ var e2, t2;
903
+ null === (e2 = this.threeDS) || void 0 === e2 || e2.destroy(), null === (t2 = this.threeDS) || void 0 === t2 || t2.controller.remove(), this.threeDS = void 0, this.setThreeDSecureEnabled(false);
904
+ }
905
+ setThreeDSecureEnabled(e2) {
906
+ this.threeDSEnabled = e2;
907
+ }
908
+ postThreeDSInit() {
909
+ this.controllerReady.then(() => {
910
+ var e2;
911
+ null === (e2 = this.controller.contentWindow) || void 0 === e2 || e2.postMessage({ type: "three-ds-init", channel: l }, this.frameUrl);
912
+ });
913
+ }
914
+ addClickToPay(e2, t2) {
915
+ return (r2 = function* () {
916
+ if (!this.paymentMethodId) return this.clickToPayInstance = yield new M(this), this.clickToPay = yield this.clickToPayInstance.init(e2, t2), this.clickToPay;
917
+ O(c.PAYMENT_METHOD_ID_IN_USE, { method: "addClickToPay" });
918
+ }, function() {
919
+ var e3 = this, t3 = arguments;
920
+ return new Promise(function(n2, i2) {
921
+ var o2 = r2.apply(e3, t3);
922
+ function a2(e4) {
923
+ Q(o2, n2, i2, a2, s2, "next", e4);
924
+ }
925
+ function s2(e4) {
926
+ Q(o2, n2, i2, a2, s2, "throw", e4);
927
+ }
928
+ a2(void 0);
929
+ });
930
+ }).call(this);
931
+ var r2;
932
+ }
933
+ addEventListener(e2, t2) {
934
+ var r2 = this.type, n2 = "".concat(this.constructor === W ? "".concat(r2, ":") : "").concat(e2);
935
+ y.subscribe(n2, t2);
936
+ }
937
+ removeEventListener(e2, t2) {
938
+ var r2 = this.type, n2 = "".concat(this.constructor === W ? "".concat(r2, ":") : "").concat(e2);
939
+ y.unsubscribe(n2, t2);
940
+ }
941
+ submit() {
942
+ var e2, t2, r2 = (e3) => {
943
+ var t3, n3 = [this.frameUrl, null === (t3 = this.clickToPayInstance) || void 0 === t3 ? void 0 : t3.origin].includes(e3.origin), i3 = e3.data.channel === l, a2 = ["success", "error", o.CLICK_TO_PAY_CANCEL, o.CLICK_TO_PAY_ERROR, o.CLICK_TO_PAY_AUTHENTICATE_FAILURE].includes(e3.data.type);
944
+ if (n3 && i3 && a2) {
945
+ switch (e3.data.type) {
946
+ case "success":
947
+ var s2;
948
+ y.publish(o.CARD_VAULT_SUCCESS, e3.data.data), (null === (s2 = e3.data.data) || void 0 === s2 ? void 0 : s2.warn) && (O(e3.data.data.warn), delete e3.data.data.warn), g("Payment method tokenized successfully", e3.data.data);
949
+ break;
950
+ case "error":
951
+ y.publish(o.CARD_VAULT_FAILURE, e3.data), g("Failed to update checkout session", e3.data.data);
952
+ }
953
+ window.removeEventListener("message", r2);
954
+ }
955
+ };
956
+ if (window.addEventListener("message", r2), "click-to-pay" === this.method || "card" === this.method && (null === (e2 = this.clickToPayInstance) || void 0 === e2 ? void 0 : e2.controller) && true === (null === (t2 = this.clickToPayInstance) || void 0 === t2 ? void 0 : t2.consent)) {
957
+ var n2;
958
+ this.clickToPayInstance.controller.contentWindow.postMessage({ type: "submit", channel: l, data: { checkoutOptions: null === (n2 = this.clickToPayInstance) || void 0 === n2 ? void 0 : n2.checkoutOptions } }, this.clickToPayInstance.url);
959
+ } else {
960
+ var i2 = () => this.controller.contentWindow.postMessage({ type: "submit", channel: l, data: { method: this.paymentMethodId ? "id" : "card", threeDSEnabled: !!this.threeDS && this.threeDSEnabled } }, this.frameUrl);
961
+ this.threeDS && this.threeDSEnabled ? this.threeDS.ready.then(i2) : i2();
962
+ }
963
+ }
964
+ setDebug(e2) {
965
+ localStorage.setItem(i, String(e2));
966
+ }
967
+ addFont(e2) {
968
+ this.font = e2.replace(/\s/g, "+");
969
+ }
970
+ constructor(e2) {
971
+ var t2, i2;
972
+ J(this, "config", void 0), J(this, "controller", void 0), J(this, "frameUrl", void 0), J(this, "apiUrl", void 0), J(this, "cdnBaseUrl", void 0), J(this, "parentOrigin", void 0), J(this, "font", void 0), J(this, "cardNumber", void 0), J(this, "securityCode", void 0), J(this, "expiryDate", void 0), J(this, "otherFields", {}), J(this, "method", "card"), J(this, "clickToPayInstance", void 0), J(this, "clickToPay", void 0), J(this, "threeDS", void 0), J(this, "threeDSEnabled", true), J(this, "environmentPath", void 0), J(this, "paymentMethodId", void 0), J(this, "autoAdvance", null), J(this, "schemeIcons", null), J(this, "cardDetailsSchemes", null), J(this, "controllerReady", void 0), J(this, "_resolveControllerReady", void 0), y.unsubscribeAll(), this.config = $({ environment: "production" }, e2), this.controllerReady = new Promise((e3) => {
973
+ var t3 = Date.now();
974
+ this._resolveControllerReady = () => e3(Date.now() - t3);
975
+ }), this.config.paymentMethodId && !this.config.paymentMethod && O(c.PAYMENT_METHOD_ID_DEPRECATED), this.environmentPath = "sandbox" === this.config.environment ? "sandbox." : "", this.frameUrl = window.SECURE_FIELDS_FRAME_URL || "https://secure-fields.".concat(this.environmentPath).concat(this.config.gr4vyId, ".gr4vy.app"), this.parentOrigin = window.location.origin, this.paymentMethodId = (null === (t2 = this.config.paymentMethod) || void 0 === t2 ? void 0 : t2.id) || this.config.paymentMethodId, this.cdnBaseUrl = (function(e3) {
976
+ return r(e3, arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "production", "cdn");
977
+ })(this.config.gr4vyId, this.config.environment);
978
+ var a2 = $({ parentOrigin: this.parentOrigin, sessionId: this.config.sessionId, gr4vyId: this.config.gr4vyId, environment: this.config.environment }, this.paymentMethodId ? { paymentMethodId: this.paymentMethodId } : {});
979
+ null === (i2 = document.body.querySelector("iframe#controller[src*=secure-fields]")) || void 0 === i2 || i2.remove(), this.controller = document.createElement("iframe"), this.controller.id = "controller", this.controller.src = n("".concat(this.frameUrl, "/controller.html"), a2), this.controller.title = "Secure Controller", this.controller.style.position = "absolute", this.controller.style.left = "-9999999px", document.body.appendChild(this.controller), this.paymentMethodId && (this.cardNumber = new W(), this.expiryDate = new W()), g("Initialized", X($({}, this.config), { version: te.version, frameUrl: this.frameUrl, parentOrigin: this.parentOrigin }));
980
+ var s2 = (e3) => {
981
+ if (e3.origin === this.frameUrl) switch (e3.data.type) {
982
+ case "ready":
983
+ var t3 = $({ version: te.version }, this.config);
984
+ y.publish(o.READY, t3), this._resolveControllerReady(), g("Ready", t3);
985
+ break;
986
+ case "form-change":
987
+ y.publish(o.FORM_CHANGE, e3.data.data), g("Form change", e3.data.data);
988
+ }
989
+ };
990
+ v.remove("message", s2, "init"), v.add("message", s2, "init"), this.controllerReady.then((e3) => g("Loaded controller after ".concat(e3, " milliseconds")));
991
+ }
992
+ }
993
+ return t;
994
+ })());
995
+ }
996
+ });
997
+
1
998
  // src/CheckoutEmbed.tsx
2
999
  import { useCallback, useRef, useState as useState2 } from "react";
3
1000
 
@@ -84,6 +1081,7 @@ function CheckoutEmbed({
84
1081
  orderId: msg.orderId,
85
1082
  paymentId: msg.paymentId,
86
1083
  ...msg.subscriptionId !== void 0 ? { subscriptionId: msg.subscriptionId } : {},
1084
+ ...msg.subscriptionIds !== void 0 ? { subscriptionIds: msg.subscriptionIds } : {},
87
1085
  // v1.4 analytics enrichment — forwarded verbatim so the parent
88
1086
  // can fire purchase events without an extra fetch.
89
1087
  ...msg.total !== void 0 ? { total: msg.total } : {},
@@ -171,6 +1169,7 @@ function PaymentEmbed({
171
1169
  orderId: msg.orderId,
172
1170
  paymentId: msg.paymentId,
173
1171
  ...msg.subscriptionId !== void 0 ? { subscriptionId: msg.subscriptionId } : {},
1172
+ ...msg.subscriptionIds !== void 0 ? { subscriptionIds: msg.subscriptionIds } : {},
174
1173
  // v1.4 analytics enrichment — forwarded verbatim so the parent
175
1174
  // can fire purchase events without an extra fetch.
176
1175
  ...msg.total !== void 0 ? { total: msg.total } : {},
@@ -640,6 +1639,7 @@ function useThrottleCheckout(options) {
640
1639
  }
641
1640
 
642
1641
  // src/useSecureCard.tsx
1642
+ var import_secure_fields2 = __toESM(require_lib(), 1);
643
1643
  import {
644
1644
  createContext,
645
1645
  useCallback as useCallback5,
@@ -648,17 +1648,16 @@ import {
648
1648
  useRef as useRef4,
649
1649
  useState as useState6
650
1650
  } from "react";
651
- import { SecureFields as SecureFields2 } from "@gr4vy/secure-fields";
652
1651
 
653
1652
  // src/threeDSecure.ts
654
- import { SecureFields } from "@gr4vy/secure-fields";
1653
+ var import_secure_fields = __toESM(require_lib(), 1);
655
1654
  function resolveChallenge({ instance, element, challengeWindowSize }) {
656
1655
  return new Promise((resolve) => {
657
1656
  const handleFinish = () => {
658
- instance.removeEventListener?.(SecureFields.Events.THREE_DS_FINISH, handleFinish);
1657
+ instance.removeEventListener?.(import_secure_fields.SecureFields.Events.THREE_DS_FINISH, handleFinish);
659
1658
  resolve();
660
1659
  };
661
- instance.addEventListener(SecureFields.Events.THREE_DS_FINISH, handleFinish);
1660
+ instance.addEventListener(import_secure_fields.SecureFields.Events.THREE_DS_FINISH, handleFinish);
662
1661
  instance.addThreeDSecure(element, challengeWindowSize ? { challengeWindowSize } : void 0);
663
1662
  });
664
1663
  }
@@ -690,7 +1689,7 @@ function SecureCardProvider({
690
1689
  const [instance, setInstance] = useState6(null);
691
1690
  const [threeDSMount, setThreeDSMount] = useState6(null);
692
1691
  useEffect5(() => {
693
- const created = new SecureFields2({ gr4vyId: providerInstanceId, environment, sessionId });
1692
+ const created = new import_secure_fields2.SecureFields({ gr4vyId: providerInstanceId, environment, sessionId });
694
1693
  setInstance(created);
695
1694
  setMountedCount(0);
696
1695
  setStatus((current) => current === "idle" || current === "ready" ? "mounting" : current);
@@ -715,15 +1714,15 @@ function SecureCardProvider({
715
1714
  if (!challengeWaiter.current) return;
716
1715
  setStatus((current) => current === "challenging" ? "vaulting" : current);
717
1716
  };
718
- instance.addEventListener(SecureFields2.Events.CARD_VAULT_SUCCESS, handleSuccess);
719
- instance.addEventListener(SecureFields2.Events.CARD_VAULT_FAILURE, handleFailure);
720
- instance.addEventListener(SecureFields2.Events.THREE_DS_START, handleThreeDSStart);
721
- instance.addEventListener(SecureFields2.Events.THREE_DS_FINISH, handleThreeDSFinish);
1717
+ instance.addEventListener(import_secure_fields2.SecureFields.Events.CARD_VAULT_SUCCESS, handleSuccess);
1718
+ instance.addEventListener(import_secure_fields2.SecureFields.Events.CARD_VAULT_FAILURE, handleFailure);
1719
+ instance.addEventListener(import_secure_fields2.SecureFields.Events.THREE_DS_START, handleThreeDSStart);
1720
+ instance.addEventListener(import_secure_fields2.SecureFields.Events.THREE_DS_FINISH, handleThreeDSFinish);
722
1721
  return () => {
723
- instance.removeEventListener?.(SecureFields2.Events.CARD_VAULT_SUCCESS, handleSuccess);
724
- instance.removeEventListener?.(SecureFields2.Events.CARD_VAULT_FAILURE, handleFailure);
725
- instance.removeEventListener?.(SecureFields2.Events.THREE_DS_START, handleThreeDSStart);
726
- instance.removeEventListener?.(SecureFields2.Events.THREE_DS_FINISH, handleThreeDSFinish);
1722
+ instance.removeEventListener?.(import_secure_fields2.SecureFields.Events.CARD_VAULT_SUCCESS, handleSuccess);
1723
+ instance.removeEventListener?.(import_secure_fields2.SecureFields.Events.CARD_VAULT_FAILURE, handleFailure);
1724
+ instance.removeEventListener?.(import_secure_fields2.SecureFields.Events.THREE_DS_START, handleThreeDSStart);
1725
+ instance.removeEventListener?.(import_secure_fields2.SecureFields.Events.THREE_DS_FINISH, handleThreeDSFinish);
727
1726
  };
728
1727
  }, [instance]);
729
1728
  const registerField = useCallback5(