@montonio/montonio-js 1.0.42 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -33,12 +33,22 @@ In this case, the library and its components will be available in the global obj
33
33
  const { MontonioCheckout } = window.Montonio;
34
34
  ```
35
35
 
36
+ The following examples use the async/await syntax. If you are using `<script>` tags (e.g. in some PHP-based frameworks), you can use `<script type="module">` to use the async/await syntax. Otherwise, you can use the `then` and `catch` syntax for the same effect.
37
+
36
38
  # Usage
37
39
 
38
40
  To integrate Montonio's embeddable payment methods into your checkout, you first need to create a Montonio Session on your server. Follow the [Montonio Documentation](https://docs.montonio.com/) to create a session. Once you have the session UUID, you can use it to initialize the `MontonioCheckout` component on your front-end.
39
41
 
40
42
  ### 1. Initialize MontonioCheckout
41
43
 
44
+ First, create a container element in your HTML where the Montonio Checkout will be rendered. You need to decide on the appropriate place in your checkout.
45
+
46
+ ```html
47
+ <div id="montonio-checkout-container"></div>
48
+ ```
49
+
50
+ Then, initialize the `MontonioCheckout` component with the session UUID and the container element.
51
+
42
52
  ```javascript
43
53
  import { MontonioCheckout } from '@montonio/montonio-js'; // ES Module usage. See above for UMD imports
44
54
 
@@ -1,8 +1,8 @@
1
1
  var r;
2
- (function(i) {
3
- i.CHECKOUT_PAYMENT_COMPONENT_READY = "montonio:checkout.paymentComponentReady", i.CHECKOUT_CHANGE_LOCALE = "montonio:checkout.changeLocale", i.CHECKOUT_SUBMIT_PAYMENT = "montonio:checkout.submitPayment", i.CHECKOUT_START_PAYMENT_AUTH = "montonio:checkout.startPaymentAuth", i.CHECKOUT_SEND_PAYMENT_AUTH_DATA = "montonio:checkout.sendPaymentAuthData", i.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY = "montonio:checkout.paymentAuthComponentReady", i.CHECKOUT_PAYMENT_AUTH_COMPLETED = "montonio:checkout.paymentAuthCompleted", i.CHECKOUT_PAYMENT_COMPLETED = "montonio:checkout.paymentCompleted", i.CHECKOUT_PAYMENT_FAILED = "montonio:checkout.paymentFailed", i.CHECKOUT_SEND_PAYMENT_FAILED_DATA = "montonio:checkout.sendPaymentFailedData", i.CHECKOUT_HEIGHT_CHANGED = "montonio:checkout.heightChanged", i.CHECKOUT_VALIDATE_FIELDS = "montonio:checkout.validateFields", i.CHECKOUT_VALIDATE_FIELDS_RESULT = "montonio:checkout.validateFieldsResult";
2
+ (function(s) {
3
+ s.CHECKOUT_PAYMENT_COMPONENT_READY = "montonio:checkout.paymentComponentReady", s.CHECKOUT_CHANGE_LOCALE = "montonio:checkout.changeLocale", s.CHECKOUT_SUBMIT_PAYMENT = "montonio:checkout.submitPayment", s.CHECKOUT_START_PAYMENT_AUTH = "montonio:checkout.startPaymentAuth", s.CHECKOUT_SEND_PAYMENT_AUTH_DATA = "montonio:checkout.sendPaymentAuthData", s.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY = "montonio:checkout.paymentAuthComponentReady", s.CHECKOUT_PAYMENT_AUTH_COMPLETED = "montonio:checkout.paymentAuthCompleted", s.CHECKOUT_PAYMENT_COMPLETED = "montonio:checkout.paymentCompleted", s.CHECKOUT_PAYMENT_FAILED = "montonio:checkout.paymentFailed", s.CHECKOUT_SEND_PAYMENT_FAILED_DATA = "montonio:checkout.sendPaymentFailedData", s.CHECKOUT_HEIGHT_CHANGED = "montonio:checkout.heightChanged", s.CHECKOUT_VALIDATE_FIELDS = "montonio:checkout.validateFields", s.CHECKOUT_VALIDATE_FIELDS_RESULT = "montonio:checkout.validateFieldsResult";
4
4
  })(r || (r = {}));
5
- class l {
5
+ class h {
6
6
  constructor() {
7
7
  this.environmentVariables = {
8
8
  stargateUrl: {
@@ -14,8 +14,8 @@ class l {
14
14
  }
15
15
  };
16
16
  }
17
- static getInstance() {
18
- return l.instance || (l.instance = new l()), l.instance;
17
+ static get instance() {
18
+ return h._instance || (h._instance = new h()), h._instance;
19
19
  }
20
20
  getConfig(t, e) {
21
21
  return this.environmentVariables[t][e];
@@ -23,10 +23,10 @@ class l {
23
23
  }
24
24
  class m {
25
25
  constructor() {
26
- this.timeout = 1e4;
26
+ this.timeout = 3e4;
27
27
  }
28
- static getInstance() {
29
- return m.instance || (m.instance = new m()), m.instance;
28
+ static get instance() {
29
+ return m._instance || (m._instance = new m()), m._instance;
30
30
  }
31
31
  async get(t) {
32
32
  return this.request(t, "GET");
@@ -44,102 +44,85 @@ class m {
44
44
  * @param data Optional data to send in the request body
45
45
  * @returns Promise that resolves with the JSON response
46
46
  */
47
- async request(t, e, s) {
48
- const n = new AbortController(), o = setTimeout(() => n.abort(), this.timeout);
47
+ async request(t, e, i) {
48
+ const n = new AbortController(), a = setTimeout(() => n.abort(), this.timeout);
49
49
  try {
50
- const c = {
50
+ const o = {
51
51
  Accept: "application/json",
52
- "X-Montonio-Js-Version": "1.0.42"
52
+ "X-Montonio-Js-Version": "1.0.43"
53
53
  };
54
- s && (c["Content-Type"] = "application/json");
55
- const a = {
54
+ i && (o["Content-Type"] = "application/json");
55
+ const c = {
56
56
  method: e,
57
- headers: c,
57
+ headers: o,
58
58
  credentials: "include",
59
59
  mode: "cors",
60
60
  signal: n.signal
61
61
  };
62
- s && (a.body = JSON.stringify(s));
63
- const u = await fetch(t, a);
64
- if (!u.ok)
65
- throw new Error(`HTTP error ${u.status}: ${u.statusText}`);
66
- return await u.json();
67
- } catch (c) {
68
- throw c instanceof DOMException && c.name === "AbortError" ? new Error(`Request timeout after ${this.timeout}ms`) : c;
62
+ i && (c.body = JSON.stringify(i));
63
+ const l = await fetch(t, c);
64
+ if (!l.ok)
65
+ throw new Error(`HTTP error ${l.status}: ${l.statusText}`);
66
+ return await l.json();
67
+ } catch (o) {
68
+ throw o instanceof DOMException && o.name === "AbortError" ? new Error(`Request timeout after ${this.timeout}ms`) : o;
69
69
  } finally {
70
- clearTimeout(o);
70
+ clearTimeout(a);
71
71
  }
72
72
  }
73
73
  }
74
- class h {
74
+ class f {
75
75
  constructor() {
76
- this.subscriptions = /* @__PURE__ */ new Map(), this.globalListenerAttached = !1, this.subscriptionCounter = 0, this.setupGlobalMessageListener();
77
- }
78
- static getInstance() {
79
- return h.instance || (h.instance = new h()), h.instance;
76
+ this.subscriptions = /* @__PURE__ */ new Map(), this.setupMessageListener();
80
77
  }
81
78
  /**
82
- * Subscribe to messages of a specific type from specific sources
79
+ * Subscribe to messages of a specific type from a specific source iframe
83
80
  * @param messageType The message type to listen for
84
81
  * @param handler Handler function to call when the message is received
85
- * @param sources Array of specific iframe windows or Iframe objects to listen to
82
+ * @param iframe Iframe object to listen to
86
83
  * @returns Subscription ID that can be used to unsubscribe
87
84
  */
88
- subscribe(t, e, s) {
89
- const n = `sub_${++this.subscriptionCounter}`, o = this.extractWindowSources(s);
90
- return this.subscriptions.set(n, {
91
- id: n,
92
- messageType: t,
85
+ subscribe(t, e, i) {
86
+ if (this.subscriptions.has(t))
87
+ throw new Error(`Subscription for '${t}' already exists`);
88
+ const n = this.extractWindowFromIframe(i);
89
+ this.subscriptions.set(t, {
93
90
  handler: e,
94
- sources: o
95
- }), n;
91
+ sources: [n]
92
+ });
96
93
  }
97
94
  /**
98
- * Add a source to an existing subscription
95
+ * Add an iframe to an existing subscription
99
96
  */
100
- addSourceToSubscription(t, e) {
101
- const s = this.subscriptions.get(t);
102
- if (!s)
103
- throw new Error(`Subscription with ID '${t}' not found`);
104
- return s.sources.includes(e) ? !1 : (s.sources.push(e), !0);
105
- }
106
- unsubscribe(t) {
107
- this.subscriptions.delete(t);
97
+ addIframeToSubscription(t, e) {
98
+ const i = this.subscriptions.get(t);
99
+ if (!i)
100
+ throw new Error(`Subscription for '${t}' not found`);
101
+ const n = this.extractWindowFromIframe(e);
102
+ i.sources.includes(n) || i.sources.push(n);
108
103
  }
109
104
  /**
110
- * Wait for a specific message type from specific sources
105
+ * Wait for a specific message type from a specific source Iframe
111
106
  * @param messageType The message type to wait for
112
- * @param sources Array of specific iframe windows or Iframe objects to listen to
107
+ * @param iframe Iframe object to listen to
113
108
  * @param timeout Timeout in milliseconds
114
109
  * @returns Promise that resolves when the message is received or rejects on timeout
115
110
  */
116
- waitForMessage(t, e, s = 1e4) {
117
- return new Promise((n, o) => {
118
- const c = setTimeout(() => {
119
- this.unsubscribe(a), o(new Error(`Message ${t} timeout after ${s}ms`));
120
- }, s), a = this.subscribe(t, (u) => {
121
- clearTimeout(c), this.unsubscribe(a), n(u);
111
+ waitForMessage(t, e, i = 3e4) {
112
+ return new Promise((n, a) => {
113
+ const o = setTimeout(() => {
114
+ this.removeIframeFromSubscription(t, e), a(new Error(`Message ${t} timeout after ${i}ms`));
115
+ }, i);
116
+ this.subscribe(t, (c) => {
117
+ clearTimeout(o), this.removeIframeFromSubscription(t, e), n(c);
122
118
  }, e);
123
119
  });
124
120
  }
125
121
  /**
126
122
  * Post a message to a specific iframe window
127
123
  */
128
- postMessage(t, e, s = "*") {
129
- if (!t)
130
- throw new Error("Target window is not available.");
131
- t.postMessage(e, s);
132
- }
133
- /**
134
- * Clear all subscriptions for a specific source (useful when unmounting an iframe)
135
- */
136
- clearSubscriptionsForSource(t) {
137
- const e = [];
138
- this.subscriptions.forEach((s) => {
139
- s.sources.includes(t) && (s.sources = s.sources.filter((n) => n !== t), s.sources.length === 0 && e.push(s.id));
140
- }), e.forEach((s) => {
141
- this.subscriptions.delete(s);
142
- });
124
+ postMessage(t, e, i = "*") {
125
+ this.extractWindowFromIframe(t).postMessage(e, i);
143
126
  }
144
127
  /**
145
128
  * Clear all subscriptions
@@ -148,18 +131,28 @@ class h {
148
131
  this.subscriptions.clear();
149
132
  }
150
133
  /**
151
- * Set up the global message listener (called only once)
134
+ * Remove subscription for an iframe
135
+ */
136
+ removeIframeFromSubscription(t, e) {
137
+ const i = this.subscriptions.get(t);
138
+ if (!i)
139
+ throw new Error(`Subscription for '${t}' not found`);
140
+ const n = this.extractWindowFromIframe(e);
141
+ i.sources = i.sources.filter((a) => a !== n), i.sources.length === 0 && this.subscriptions.delete(t);
142
+ }
143
+ /**
144
+ * Set up the message listener for capturing all window messages
152
145
  */
153
- setupGlobalMessageListener() {
154
- this.globalListenerAttached || (window.addEventListener("message", (t) => {
146
+ setupMessageListener() {
147
+ window.addEventListener("message", (t) => {
155
148
  try {
156
149
  if (!t.data || typeof t.data != "object" || !t.data.name)
157
150
  return;
158
151
  const e = t.data;
159
- this.subscriptions.forEach((s) => {
160
- if (!(s.messageType !== e.name || !s.sources.some((o) => o === t.source)))
152
+ this.subscriptions.forEach((i, n) => {
153
+ if (!(n !== e.name || !i.sources.some((o) => o === t.source)))
161
154
  try {
162
- s.handler(e);
155
+ i.handler(e);
163
156
  } catch (o) {
164
157
  console.error("Error in message handler:", o);
165
158
  }
@@ -167,47 +160,28 @@ class h {
167
160
  } catch (e) {
168
161
  console.error("Error processing iframe message:", e);
169
162
  }
170
- }), this.globalListenerAttached = !0);
171
- }
172
- extractWindowSources(t) {
173
- return t.map((e) => {
174
- if (e instanceof E) {
175
- const s = e.getContentWindow();
176
- if (!s)
177
- throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");
178
- return s;
179
- }
180
- return e;
181
- }).filter((e) => e !== null);
163
+ });
164
+ }
165
+ /**
166
+ * Extract the window source from the Iframe object
167
+ */
168
+ extractWindowFromIframe(t) {
169
+ return t.getContentWindow();
182
170
  }
183
171
  }
184
- class E {
172
+ class C {
185
173
  constructor(t) {
186
174
  var e;
187
175
  this.defaultStyles = {
188
176
  width: "100%",
189
177
  height: "100%"
190
- }, this.subscriptionIds = /* @__PURE__ */ new Set(), this.options = t, this.resizeOnHeightChange = (e = t.resizeOnHeightChange) !== null && e !== void 0 ? e : !0, this.element = document.createElement("iframe"), this.messagingService = h.getInstance(), this.setupIframe();
191
- }
192
- setupIframe() {
193
- const { src: t, allow: e = "payment", styles: s = {} } = this.options;
194
- this.element.src = t, this.element.allow = e;
195
- const n = { ...this.defaultStyles, ...s };
196
- Object.assign(this.element.style, n);
178
+ }, this.options = t, this.resizeOnHeightChange = (e = t.resizeOnHeightChange) !== null && e !== void 0 ? e : !0, this.element = document.createElement("iframe"), this.messagingService = new f(), this.setupIframe();
197
179
  }
198
180
  mount() {
199
181
  return this.options.mountElement.appendChild(this.element), this.resizeOnHeightChange && this.startResizing(this.element), this.element;
200
182
  }
201
183
  unmount() {
202
- this.clearSubscriptions(), this.element.contentWindow && this.messagingService.clearSubscriptionsForSource(this.element.contentWindow), this.element.parentNode && this.element.parentNode.removeChild(this.element);
203
- }
204
- clearSubscriptions() {
205
- this.subscriptionIds.forEach((t) => {
206
- this.messagingService.unsubscribe(t);
207
- }), this.subscriptionIds.clear();
208
- }
209
- getElement() {
210
- return this.element;
184
+ this.element.contentWindow && this.messagingService.clearAllSubscriptions(), this.element.parentNode && this.element.parentNode.removeChild(this.element);
211
185
  }
212
186
  /**
213
187
  * Get the Window object of the iframe
@@ -218,76 +192,37 @@ class E {
218
192
  return this.element.contentWindow;
219
193
  }
220
194
  /**
221
- * Wait for the iframe to load
222
- * @param timeout Timeout in milliseconds
223
- * @returns Promise that resolves when the iframe is loaded or rejects on timeout
195
+ * Listen to height change messages from the child window and change the height of the iframe element
224
196
  */
225
- waitForLoad(t = 1e4) {
226
- return new Promise((e, s) => {
227
- const n = setTimeout(() => {
228
- s(new Error(`Iframe load timeout after ${t}ms`));
229
- }, t);
230
- this.element.onload = () => {
231
- clearTimeout(n), e();
232
- };
233
- });
234
- }
235
- /**
236
- * Wait for a specific message from the iframe
237
- * @param messageType The message type to wait for
238
- * @param timeout Timeout in milliseconds
239
- * @returns Promise that resolves when the message is received or rejects on timeout
240
- */
241
- waitForMessage(t, e = 1e4) {
242
- const s = this.element.contentWindow;
243
- if (!s)
244
- throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");
245
- return this.messagingService.waitForMessage(t, [s], e);
246
- }
247
- /**
248
- * Subscribe to messages from the iframe with automatic cleanup
249
- * Subscriptions are automatically cleaned up when the iframe is unmounted
250
- * @param messageType The message type to listen for
251
- * @param handler Handler function to call when the message is received
252
- */
253
- subscribe(t, e) {
254
- const s = this.element.contentWindow;
255
- if (!s)
256
- throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");
257
- const n = this.messagingService.subscribe(t, e, [s]);
258
- this.subscriptionIds.add(n);
259
- }
260
- /**
261
- * Post a message to the child iframe
262
- */
263
- postMessage(t, e = "*") {
264
- if (!this.element.contentWindow)
265
- throw new Error("Iframe is not available. Make sure the iframe is mounted and loaded.");
266
- this.messagingService.postMessage(this.element.contentWindow, t, e);
267
- }
268
197
  startResizing(t) {
269
- this.subscribe(r.CHECKOUT_HEIGHT_CHANGED, (e) => {
198
+ this.messagingService.subscribe(r.CHECKOUT_HEIGHT_CHANGED, (e) => {
270
199
  t.style.height = e.payload.height + "px";
271
- });
200
+ }, this);
201
+ }
202
+ setupIframe() {
203
+ const { src: t, allow: e = "payment", styles: i = {} } = this.options;
204
+ this.element.src = t, this.element.allow = e;
205
+ const n = { ...this.defaultStyles, ...i };
206
+ Object.assign(this.element.style, n);
272
207
  }
273
208
  }
274
- class b {
209
+ class A {
275
210
  constructor() {
276
- this.iframe = null, this.mountElement = null, this.loaded = !1, this.http = m.getInstance(), this.config = l.getInstance(), this.messaging = h.getInstance();
211
+ this.mountElement = null, this.loaded = !1, this._iframe = null, this.messagingService = new f(), this.httpService = m.instance, this.configService = h.instance;
277
212
  }
278
- destroy() {
279
- this.cleanup();
280
- }
281
- getIframe() {
282
- if (!this.iframe)
213
+ get iframe() {
214
+ if (!this._iframe)
283
215
  throw new Error("Iframe not initialized");
284
- return this.iframe;
216
+ return this._iframe;
217
+ }
218
+ set iframe(t) {
219
+ this._iframe = t;
285
220
  }
286
221
  cleanup() {
287
222
  this.iframe && (this.iframe.unmount(), this.iframe = null);
288
223
  }
289
224
  }
290
- class g extends b {
225
+ class T extends A {
291
226
  constructor(t) {
292
227
  super(), this.options = t, this.mountElement = t.mountElement || document.body;
293
228
  }
@@ -301,7 +236,7 @@ class g extends b {
301
236
  }
302
237
  if (!this.options.paymentAuthData.embeddedUrl)
303
238
  throw new Error("Embedded URL is not set in paymentAuthData");
304
- this.iframe = new E({
239
+ this.iframe = new C({
305
240
  src: this.options.paymentAuthData.embeddedUrl,
306
241
  mountElement: this.mountElement,
307
242
  styles: {
@@ -313,7 +248,7 @@ class g extends b {
313
248
  zIndex: "16777271"
314
249
  },
315
250
  resizeOnHeightChange: !1
316
- }), this.iframe.mount(), await this.iframe.waitForMessage(r.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY), this.iframe.postMessage({
251
+ }), this.iframe.mount(), await this.messagingService.waitForMessage(r.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY, this.iframe), this.messagingService.postMessage(this.iframe, {
317
252
  name: r.CHECKOUT_SEND_PAYMENT_AUTH_DATA,
318
253
  payload: {
319
254
  paymentAuthData: this.options.paymentAuthData
@@ -328,49 +263,44 @@ class g extends b {
328
263
  throw new Error("Redirect URL is not set in paymentAuthData");
329
264
  const e = document.createElement("form");
330
265
  if (e.method = t.redirectMethod || "get", e.action = t.redirectUrl, e.style.display = "none", t.formData)
331
- for (const [s, n] of Object.entries(t.formData)) {
332
- const o = document.createElement("input");
333
- o.type = "hidden", o.name = s, o.value = n, e.appendChild(o);
266
+ for (const [i, n] of Object.entries(t.formData)) {
267
+ const a = document.createElement("input");
268
+ a.type = "hidden", a.name = i, a.value = n, e.appendChild(a);
334
269
  }
335
- throw document.body.appendChild(e), e.submit(), await new Promise((s) => setTimeout(s, 1e4)), new Error("Redirect timeout: Expected redirect to occur within 10 seconds");
270
+ throw document.body.appendChild(e), e.submit(), await new Promise((i) => setTimeout(i, 3e4)), new Error("Redirect timeout: Expected redirect to occur within 30 seconds");
336
271
  }
337
272
  }
338
- function w(i) {
339
- if (typeof i == "string") {
340
- const t = document.querySelector(i);
273
+ function g(s) {
274
+ if (typeof s == "string") {
275
+ const t = document.querySelector(s);
341
276
  if (!t || !(t instanceof HTMLElement))
342
- throw new Error(`Element not found: ${i}`);
277
+ throw new Error(`Element not found: ${s}`);
343
278
  return t;
344
279
  }
345
- return i;
280
+ return s;
346
281
  }
347
- var p;
348
- (function(i) {
349
- i.DEVELOPMENT = "development", i.PRODUCTION = "production", i.SANDBOX = "sandbox", i.PRELIVE_SANDBOX = "prelive-sandbox", i.PRELIVE_PRODUCTION = "prelive-production";
350
- })(p || (p = {}));
351
- class f extends Error {
282
+ var d;
283
+ (function(s) {
284
+ s.DEVELOPMENT = "development", s.PRODUCTION = "production", s.SANDBOX = "sandbox", s.PRELIVE_SANDBOX = "prelive-sandbox", s.PRELIVE_PRODUCTION = "prelive-production";
285
+ })(d || (d = {}));
286
+ class E extends Error {
352
287
  constructor(t = "MontonioCheckout not initialized. Please call the .initialize() method of the MontonioCheckout class first.") {
353
288
  super(t), this.name = "MontonioCheckoutNotInitializedError";
354
289
  }
355
290
  }
356
- class d extends Error {
291
+ class u extends Error {
357
292
  constructor() {
358
293
  super("Validation failed"), this.name = "ValidationError";
359
294
  }
360
295
  }
361
- class A extends Error {
296
+ class _ extends Error {
362
297
  constructor(t) {
363
298
  super(`Payment failed: ${t.errorCode}`), this.name = "PaymentFailedError", this.paymentFailedMessageData = t;
364
299
  }
365
300
  }
366
- class T extends b {
301
+ class y extends A {
367
302
  constructor(t) {
368
- super(), this.paymentAuth = null, this.submitPaymentSubscriptions = {
369
- completedId: "",
370
- failedId: "",
371
- authId: "",
372
- validateFieldsId: ""
373
- }, this.options = t, this.environment = t.environment || p.PRODUCTION;
303
+ super(), this.paymentAuth = null, this.options = t, this.environment = t.environment || d.PRODUCTION;
374
304
  }
375
305
  /**
376
306
  * Mount the checkout to the DOM
@@ -378,104 +308,117 @@ class T extends b {
378
308
  */
379
309
  async initialize(t) {
380
310
  try {
381
- this.mountElement = w(t);
311
+ this.mountElement = g(t);
382
312
  const e = await this.fetchSession();
383
- return console.log("SDK: sessionData from Stargate", e), this.iframe = new E({
313
+ return this.iframe = new C({
384
314
  src: e.url,
385
315
  mountElement: this.mountElement,
386
316
  styles: {
387
317
  minHeight: "230px"
388
318
  }
389
- }), this.iframe.mount(), await this.iframe.waitForMessage(r.CHECKOUT_PAYMENT_COMPONENT_READY), this.loaded = !0, !0;
319
+ }), this.iframe.mount(), await this.messagingService.waitForMessage(r.CHECKOUT_PAYMENT_COMPONENT_READY, this.iframe), this.loaded = !0, !0;
390
320
  } catch (e) {
391
321
  throw this.cleanup(), e;
392
322
  }
393
323
  }
324
+ /**
325
+ * Update the options of the MontonioCheckout instance
326
+ * @param options - Updatable options
327
+ */
394
328
  updateOptions(t) {
395
329
  if (!this.loaded)
396
- throw new f();
397
- t.locale !== void 0 && (this.options.locale = t.locale, this.getIframe().postMessage({
330
+ throw new E();
331
+ t.locale !== void 0 && (this.options.locale = t.locale, this.messagingService.postMessage(this.iframe, {
398
332
  name: r.CHECKOUT_CHANGE_LOCALE,
399
333
  payload: { locale: t.locale }
400
334
  }));
401
335
  }
336
+ /**
337
+ * Check the validity of the payment form. Throws an error if the payment form is invalid.
338
+ */
402
339
  async validateOrReject() {
403
340
  return new Promise((t, e) => {
404
- this.getIframe().waitForMessage(r.CHECKOUT_VALIDATE_FIELDS_RESULT).then((s) => {
405
- s.payload.isValid ? t() : e(new d());
406
- }).catch(() => e(new d())), this.getIframe().postMessage({
341
+ this.messagingService.waitForMessage(r.CHECKOUT_VALIDATE_FIELDS_RESULT, this.iframe).then((i) => {
342
+ i.payload.isValid ? t() : e(new u());
343
+ }).catch(() => e(new u())), this.messagingService.postMessage(this.iframe, {
407
344
  name: r.CHECKOUT_VALIDATE_FIELDS
408
345
  });
409
346
  });
410
347
  }
348
+ /**
349
+ * Submit the payment. Call this after creating the Order with the Montonio backend API
350
+ * @returns Promise that resolves to a PaymentResult
351
+ */
411
352
  async submitPayment() {
412
353
  if (!this.loaded)
413
- throw new f();
354
+ throw new E();
414
355
  return new Promise((t, e) => {
415
- this.submitPaymentSubscriptions.completedId = this.messaging.subscribe(r.CHECKOUT_PAYMENT_COMPLETED, async (s) => {
416
- console.log("CHECKOUT_PAYMENT_COMPLETED (from main iframe)", s);
417
- const n = await this.handlePaymentCompletedMessage(s);
356
+ this.messagingService.subscribe(r.CHECKOUT_PAYMENT_COMPLETED, async (i) => {
357
+ console.log("CHECKOUT_PAYMENT_COMPLETED (from main iframe)", i);
358
+ const n = await this.handlePaymentCompletedMessage(i);
418
359
  t(n), this.cleanupAfterPaymentSubmission();
419
- }, [this.getIframe()]), this.submitPaymentSubscriptions.failedId = this.messaging.subscribe(r.CHECKOUT_PAYMENT_FAILED, (s) => {
420
- console.error("CHECKOUT_PAYMENT_FAILED (from main iframe)", s), this.getIframe().postMessage({
360
+ }, this.iframe), this.messagingService.subscribe(r.CHECKOUT_PAYMENT_FAILED, (i) => {
361
+ console.error("CHECKOUT_PAYMENT_FAILED (from main iframe)", i), this.messagingService.postMessage(this.iframe, {
421
362
  name: r.CHECKOUT_SEND_PAYMENT_FAILED_DATA,
422
- payload: s.payload
423
- }), e(new A(s.payload)), this.cleanupAfterPaymentSubmission();
424
- }, [this.getIframe()]), this.submitPaymentSubscriptions.validateFieldsId = this.messaging.subscribe(r.CHECKOUT_VALIDATE_FIELDS_RESULT, (s) => {
425
- console.log("CHECKOUT_VALIDATE_FIELDS_RESULT", s), s.payload.isValid || (e(new d()), this.cleanupAfterPaymentSubmission());
426
- }, [this.getIframe()]), this.submitPaymentSubscriptions.authId = this.messaging.subscribe(r.CHECKOUT_START_PAYMENT_AUTH, async (s) => {
363
+ payload: i.payload
364
+ }), e(new _(i.payload)), this.cleanupAfterPaymentSubmission();
365
+ }, this.iframe), this.messagingService.subscribe(r.CHECKOUT_VALIDATE_FIELDS_RESULT, (i) => {
366
+ console.log("CHECKOUT_VALIDATE_FIELDS_RESULT", i), i.payload.isValid || e(new u());
367
+ }, this.iframe), this.messagingService.subscribe(r.CHECKOUT_START_PAYMENT_AUTH, async (i) => {
427
368
  try {
428
- console.log("PAYMENT AUTH STARTED", s), this.paymentAuth = new g({
429
- paymentAuthData: s.payload.paymentAuthData
369
+ console.log("PAYMENT AUTH STARTED", i), this.paymentAuth = new T({
370
+ paymentAuthData: i.payload.paymentAuthData
430
371
  }), await this.paymentAuth.initialize();
431
- const n = this.paymentAuth.getIframe();
432
- this.messaging.addSourceToSubscription(this.submitPaymentSubscriptions.completedId, n.getContentWindow()), this.messaging.addSourceToSubscription(this.submitPaymentSubscriptions.failedId, n.getContentWindow());
372
+ const n = this.paymentAuth.iframe;
373
+ this.messagingService.addIframeToSubscription(r.CHECKOUT_PAYMENT_COMPLETED, n), this.messagingService.addIframeToSubscription(r.CHECKOUT_PAYMENT_FAILED, n);
433
374
  } catch (n) {
434
375
  e(n);
435
376
  }
436
- }, [this.getIframe()]), this.getIframe().postMessage({
377
+ }, this.iframe), this.messagingService.postMessage(this.iframe, {
437
378
  name: r.CHECKOUT_SUBMIT_PAYMENT
438
379
  });
439
380
  });
440
381
  }
441
382
  async fetchSession() {
442
- const e = `${this.config.getConfig("stargateUrl", this.environment)}/api/sessions/${this.options.sessionUuid}/gateway-url${this.options.locale ? `?preferredLocale=${this.options.locale}` : ""}`;
443
- return await this.http.get(e);
383
+ const e = `${this.configService.getConfig("stargateUrl", this.environment)}/api/sessions/${this.options.sessionUuid}/gateway-url${this.options.locale ? `?preferredLocale=${this.options.locale}` : ""}`;
384
+ return await this.httpService.get(e);
444
385
  }
445
386
  /**
446
387
  * After a payment has completed, fetch the return URL. Keep fetching until we
447
388
  * exhaust all the attempts
448
389
  */
449
390
  async handlePaymentCompletedMessage(t) {
450
- const s = `${this.config.getConfig("stargateUrl", this.environment)}/api/payment-intents/${t.payload.paymentIntentUuid}/return-url`, n = 10, o = 1e3;
451
- let c = 0;
452
- for (; c < n; ) {
391
+ const i = `${this.configService.getConfig("stargateUrl", this.environment)}/api/payment-intents/${t.payload.paymentIntentUuid}/return-url`, n = 10, a = 1e3;
392
+ let o = 0;
393
+ for (; o < n; ) {
453
394
  try {
454
- const a = await this.http.get(s);
455
- if (c++, a != null && a.merchantReturnUrl)
395
+ const c = await this.httpService.get(i);
396
+ if (o++, c != null && c.merchantReturnUrl)
456
397
  return {
457
- returnUrl: a.merchantReturnUrl
398
+ returnUrl: c.merchantReturnUrl
458
399
  };
459
- } catch (a) {
460
- console.error("Error fetching return URL:", a);
400
+ } catch (c) {
401
+ console.error("Error fetching return URL:", c);
461
402
  }
462
- c < n && await new Promise((a) => setTimeout(a, o));
403
+ o < n && await new Promise((c) => setTimeout(c, a));
463
404
  }
464
- throw new Error(`Failed to fetch the return url after ${c} attempts`);
405
+ throw new Error(`Failed to fetch the return url after ${o} attempts`);
465
406
  }
466
407
  cleanupAfterPaymentSubmission() {
467
- this.messaging.unsubscribe(this.submitPaymentSubscriptions.completedId), this.messaging.unsubscribe(this.submitPaymentSubscriptions.failedId), this.messaging.unsubscribe(this.submitPaymentSubscriptions.authId), this.messaging.unsubscribe(this.submitPaymentSubscriptions.validateFieldsId), this.cleanupPaymentAuth();
468
- }
469
- cleanup() {
470
- this.cleanupPaymentAuth(), super.cleanup();
408
+ this.messagingService.clearAllSubscriptions(), this.cleanupPaymentAuth();
471
409
  }
472
410
  cleanupPaymentAuth() {
473
- this.paymentAuth && (this.paymentAuth.destroy(), this.paymentAuth = null);
411
+ this.paymentAuth && (this.paymentAuth.cleanup(), this.paymentAuth = null);
474
412
  }
475
413
  }
414
+ var p;
415
+ (function(s) {
416
+ s.EN_US = "en_US", s.ET = "et", s.LV = "lv", s.LT = "lt", s.PL = "pl", s.FI = "fi", s.RU = "ru";
417
+ })(p || (p = {}));
476
418
  export {
477
- p as Environment,
419
+ d as Environment,
420
+ p as LocaleEnum,
478
421
  r as MessageTypeEnum,
479
- T as MontonioCheckout
422
+ y as MontonioCheckout
480
423
  };
481
424
  //# sourceMappingURL=montonio.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"montonio.es.js","sources":["../src/services/Messaging/types.ts","../src/services/Config/Config.ts","../src/services/HTTP/HTTP.ts","../src/services/Messaging/Messaging.ts","../src/components/Iframe/Iframe.ts","../src/components/BaseComponent.ts","../src/components/PaymentAuth/PaymentAuth.ts","../src/utils/DOM/DOM.ts","../src/services/Config/types.ts","../src/common/exceptions/exceptions.ts","../src/components/MontonioCheckout/MontonioCheckout.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["MessageTypeEnum","ConfigService","name","environment","HTTPService","url","data","method","controller","timeoutId","headers","options","response","error","MessagingService","messageType","handler","sources","subscriptionId","windowSources","source","subscription","timeout","resolve","reject","message","target","messageData","targetOrigin","subscriptionsToRemove","s","id","event","Iframe","contentWindow","window","_a","src","allow","styles","combinedStyles","element","BaseComponent","PaymentAuth","paymentAuthData","form","key","value","input","getElement","selector","Environment","MontonioCheckoutNotInitializedError","ValidationError","PaymentFailedError","paymentFailedMessageData","MontonioCheckout","mountTo","sessionData","res","completedMessage","result","failedMessage","paymentAuthIframe","paymentCompletedMessage","MAX_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS_IN_MS","attempts"],"mappings":"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"}
1
+ {"version":3,"file":"montonio.es.js","sources":["../src/services/Messaging/types.ts","../src/services/Config/Config.ts","../src/services/HTTP/HTTP.ts","../src/services/Messaging/Messaging.ts","../src/components/Iframe/Iframe.ts","../src/components/BaseComponent.ts","../src/components/PaymentAuth/PaymentAuth.ts","../src/utils/DOM/DOM.ts","../src/services/Config/types.ts","../src/common/exceptions/exceptions.ts","../src/components/MontonioCheckout/MontonioCheckout.ts","../src/components/MontonioCheckout/types.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["MessageTypeEnum","ConfigService","name","environment","HTTPService","url","data","method","controller","timeoutId","headers","options","response","error","MessagingService","messageType","handler","iframe","windowSource","subscription","timeout","resolve","reject","message","messageData","targetOrigin","source","event","key","Iframe","_a","element","src","allow","styles","combinedStyles","BaseComponent","value","PaymentAuth","paymentAuthData","form","input","getElement","selector","Environment","MontonioCheckoutNotInitializedError","ValidationError","PaymentFailedError","paymentFailedMessageData","MontonioCheckout","mountTo","sessionData","res","completedMessage","result","failedMessage","paymentAuthIframe","paymentCompletedMessage","MAX_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS_IN_MS","attempts","LocaleEnum"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- (function(o,u){typeof exports=="object"&&typeof module!="undefined"?u(exports):typeof define=="function"&&define.amd?define(["exports"],u):(o=typeof globalThis!="undefined"?globalThis:o||self,u(o.Montonio={}))})(this,function(o){"use strict";o.MessageTypeEnum=void 0,function(s){s.CHECKOUT_PAYMENT_COMPONENT_READY="montonio:checkout.paymentComponentReady",s.CHECKOUT_CHANGE_LOCALE="montonio:checkout.changeLocale",s.CHECKOUT_SUBMIT_PAYMENT="montonio:checkout.submitPayment",s.CHECKOUT_START_PAYMENT_AUTH="montonio:checkout.startPaymentAuth",s.CHECKOUT_SEND_PAYMENT_AUTH_DATA="montonio:checkout.sendPaymentAuthData",s.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY="montonio:checkout.paymentAuthComponentReady",s.CHECKOUT_PAYMENT_AUTH_COMPLETED="montonio:checkout.paymentAuthCompleted",s.CHECKOUT_PAYMENT_COMPLETED="montonio:checkout.paymentCompleted",s.CHECKOUT_PAYMENT_FAILED="montonio:checkout.paymentFailed",s.CHECKOUT_SEND_PAYMENT_FAILED_DATA="montonio:checkout.sendPaymentFailedData",s.CHECKOUT_HEIGHT_CHANGED="montonio:checkout.heightChanged",s.CHECKOUT_VALIDATE_FIELDS="montonio:checkout.validateFields",s.CHECKOUT_VALIDATE_FIELDS_RESULT="montonio:checkout.validateFieldsResult"}(o.MessageTypeEnum||(o.MessageTypeEnum={}));class u{constructor(){this.environmentVariables={stargateUrl:{sandbox:"https://sandbox-stargate.montonio.com",production:"https://stargate.montonio.com","prelive-sandbox":"https://sandbox-stargate.prelive.montonio.com","prelive-production":"https://stargate.prelive.montonio.com",development:"https://api-stargate.montonio.dev"}}}static getInstance(){return u.instance||(u.instance=new u),u.instance}getConfig(t,e){return this.environmentVariables[t][e]}}class m{constructor(){this.timeout=1e4}static getInstance(){return m.instance||(m.instance=new m),m.instance}async get(t){return this.request(t,"GET")}async post(t,e){return this.request(t,"POST",e)}async patch(t,e){return this.request(t,"PATCH",e)}async request(t,e,n){const i=new AbortController,r=setTimeout(()=>i.abort(),this.timeout);try{const c={Accept:"application/json","X-Montonio-Js-Version":"1.0.42"};n&&(c["Content-Type"]="application/json");const a={method:e,headers:c,credentials:"include",mode:"cors",signal:i.signal};n&&(a.body=JSON.stringify(n));const l=await fetch(t,a);if(!l.ok)throw new Error(`HTTP error ${l.status}: ${l.statusText}`);return await l.json()}catch(c){throw c instanceof DOMException&&c.name==="AbortError"?new Error(`Request timeout after ${this.timeout}ms`):c}finally{clearTimeout(r)}}}class h{constructor(){this.subscriptions=new Map,this.globalListenerAttached=!1,this.subscriptionCounter=0,this.setupGlobalMessageListener()}static getInstance(){return h.instance||(h.instance=new h),h.instance}subscribe(t,e,n){const i=`sub_${++this.subscriptionCounter}`,r=this.extractWindowSources(n);return this.subscriptions.set(i,{id:i,messageType:t,handler:e,sources:r}),i}addSourceToSubscription(t,e){const n=this.subscriptions.get(t);if(!n)throw new Error(`Subscription with ID '${t}' not found`);return n.sources.includes(e)?!1:(n.sources.push(e),!0)}unsubscribe(t){this.subscriptions.delete(t)}waitForMessage(t,e,n=1e4){return new Promise((i,r)=>{const c=setTimeout(()=>{this.unsubscribe(a),r(new Error(`Message ${t} timeout after ${n}ms`))},n),a=this.subscribe(t,l=>{clearTimeout(c),this.unsubscribe(a),i(l)},e)})}postMessage(t,e,n="*"){if(!t)throw new Error("Target window is not available.");t.postMessage(e,n)}clearSubscriptionsForSource(t){const e=[];this.subscriptions.forEach(n=>{n.sources.includes(t)&&(n.sources=n.sources.filter(i=>i!==t),n.sources.length===0&&e.push(n.id))}),e.forEach(n=>{this.subscriptions.delete(n)})}clearAllSubscriptions(){this.subscriptions.clear()}setupGlobalMessageListener(){this.globalListenerAttached||(window.addEventListener("message",t=>{try{if(!t.data||typeof t.data!="object"||!t.data.name)return;const e=t.data;this.subscriptions.forEach(n=>{if(!(n.messageType!==e.name||!n.sources.some(r=>r===t.source)))try{n.handler(e)}catch(r){console.error("Error in message handler:",r)}})}catch(e){console.error("Error processing iframe message:",e)}}),this.globalListenerAttached=!0)}extractWindowSources(t){return t.map(e=>{if(e instanceof d){const n=e.getContentWindow();if(!n)throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");return n}return e}).filter(e=>e!==null)}}class d{constructor(t){var e;this.defaultStyles={width:"100%",height:"100%"},this.subscriptionIds=new Set,this.options=t,this.resizeOnHeightChange=(e=t.resizeOnHeightChange)!==null&&e!==void 0?e:!0,this.element=document.createElement("iframe"),this.messagingService=h.getInstance(),this.setupIframe()}setupIframe(){const{src:t,allow:e="payment",styles:n={}}=this.options;this.element.src=t,this.element.allow=e;const i={...this.defaultStyles,...n};Object.assign(this.element.style,i)}mount(){return this.options.mountElement.appendChild(this.element),this.resizeOnHeightChange&&this.startResizing(this.element),this.element}unmount(){this.clearSubscriptions(),this.element.contentWindow&&this.messagingService.clearSubscriptionsForSource(this.element.contentWindow),this.element.parentNode&&this.element.parentNode.removeChild(this.element)}clearSubscriptions(){this.subscriptionIds.forEach(t=>{this.messagingService.unsubscribe(t)}),this.subscriptionIds.clear()}getElement(){return this.element}getContentWindow(){if(!this.element.contentWindow)throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");return this.element.contentWindow}waitForLoad(t=1e4){return new Promise((e,n)=>{const i=setTimeout(()=>{n(new Error(`Iframe load timeout after ${t}ms`))},t);this.element.onload=()=>{clearTimeout(i),e()}})}waitForMessage(t,e=1e4){const n=this.element.contentWindow;if(!n)throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");return this.messagingService.waitForMessage(t,[n],e)}subscribe(t,e){const n=this.element.contentWindow;if(!n)throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");const i=this.messagingService.subscribe(t,e,[n]);this.subscriptionIds.add(i)}postMessage(t,e="*"){if(!this.element.contentWindow)throw new Error("Iframe is not available. Make sure the iframe is mounted and loaded.");this.messagingService.postMessage(this.element.contentWindow,t,e)}startResizing(t){this.subscribe(o.MessageTypeEnum.CHECKOUT_HEIGHT_CHANGED,e=>{t.style.height=e.payload.height+"px"})}}class p{constructor(){this.iframe=null,this.mountElement=null,this.loaded=!1,this.http=m.getInstance(),this.config=u.getInstance(),this.messaging=h.getInstance()}destroy(){this.cleanup()}getIframe(){if(!this.iframe)throw new Error("Iframe not initialized");return this.iframe}cleanup(){this.iframe&&(this.iframe.unmount(),this.iframe=null)}}class g extends p{constructor(t){super(),this.options=t,this.mountElement=t.mountElement||document.body}async initialize(){if(this.options.paymentAuthData.type==="redirect"){await this.redirectViaPost(this.options.paymentAuthData);return}if(!this.options.paymentAuthData.embeddedUrl)throw new Error("Embedded URL is not set in paymentAuthData");this.iframe=new d({src:this.options.paymentAuthData.embeddedUrl,mountElement:this.mountElement,styles:{width:"100vw",height:"100vh",position:"fixed",top:"0",left:"0",zIndex:"16777271"},resizeOnHeightChange:!1}),this.iframe.mount(),await this.iframe.waitForMessage(o.MessageTypeEnum.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY),this.iframe.postMessage({name:o.MessageTypeEnum.CHECKOUT_SEND_PAYMENT_AUTH_DATA,payload:{paymentAuthData:this.options.paymentAuthData}})}async redirectViaPost(t){if(!t.redirectUrl)throw new Error("Redirect URL is not set in paymentAuthData");const e=document.createElement("form");if(e.method=t.redirectMethod||"get",e.action=t.redirectUrl,e.style.display="none",t.formData)for(const[n,i]of Object.entries(t.formData)){const r=document.createElement("input");r.type="hidden",r.name=n,r.value=i,e.appendChild(r)}throw document.body.appendChild(e),e.submit(),await new Promise(n=>setTimeout(n,1e4)),new Error("Redirect timeout: Expected redirect to occur within 10 seconds")}}function b(s){if(typeof s=="string"){const t=document.querySelector(s);if(!t||!(t instanceof HTMLElement))throw new Error(`Element not found: ${s}`);return t}return s}o.Environment=void 0,function(s){s.DEVELOPMENT="development",s.PRODUCTION="production",s.SANDBOX="sandbox",s.PRELIVE_SANDBOX="prelive-sandbox",s.PRELIVE_PRODUCTION="prelive-production"}(o.Environment||(o.Environment={}));class f extends Error{constructor(t="MontonioCheckout not initialized. Please call the .initialize() method of the MontonioCheckout class first."){super(t),this.name="MontonioCheckoutNotInitializedError"}}class E extends Error{constructor(){super("Validation failed"),this.name="ValidationError"}}class T extends Error{constructor(t){super(`Payment failed: ${t.errorCode}`),this.name="PaymentFailedError",this.paymentFailedMessageData=t}}class y extends p{constructor(t){super(),this.paymentAuth=null,this.submitPaymentSubscriptions={completedId:"",failedId:"",authId:"",validateFieldsId:""},this.options=t,this.environment=t.environment||o.Environment.PRODUCTION}async initialize(t){try{this.mountElement=b(t);const e=await this.fetchSession();return console.log("SDK: sessionData from Stargate",e),this.iframe=new d({src:e.url,mountElement:this.mountElement,styles:{minHeight:"230px"}}),this.iframe.mount(),await this.iframe.waitForMessage(o.MessageTypeEnum.CHECKOUT_PAYMENT_COMPONENT_READY),this.loaded=!0,!0}catch(e){throw this.cleanup(),e}}updateOptions(t){if(!this.loaded)throw new f;t.locale!==void 0&&(this.options.locale=t.locale,this.getIframe().postMessage({name:o.MessageTypeEnum.CHECKOUT_CHANGE_LOCALE,payload:{locale:t.locale}}))}async validateOrReject(){return new Promise((t,e)=>{this.getIframe().waitForMessage(o.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS_RESULT).then(n=>{n.payload.isValid?t():e(new E)}).catch(()=>e(new E)),this.getIframe().postMessage({name:o.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS})})}async submitPayment(){if(!this.loaded)throw new f;return new Promise((t,e)=>{this.submitPaymentSubscriptions.completedId=this.messaging.subscribe(o.MessageTypeEnum.CHECKOUT_PAYMENT_COMPLETED,async n=>{console.log("CHECKOUT_PAYMENT_COMPLETED (from main iframe)",n);const i=await this.handlePaymentCompletedMessage(n);t(i),this.cleanupAfterPaymentSubmission()},[this.getIframe()]),this.submitPaymentSubscriptions.failedId=this.messaging.subscribe(o.MessageTypeEnum.CHECKOUT_PAYMENT_FAILED,n=>{console.error("CHECKOUT_PAYMENT_FAILED (from main iframe)",n),this.getIframe().postMessage({name:o.MessageTypeEnum.CHECKOUT_SEND_PAYMENT_FAILED_DATA,payload:n.payload}),e(new T(n.payload)),this.cleanupAfterPaymentSubmission()},[this.getIframe()]),this.submitPaymentSubscriptions.validateFieldsId=this.messaging.subscribe(o.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS_RESULT,n=>{console.log("CHECKOUT_VALIDATE_FIELDS_RESULT",n),n.payload.isValid||(e(new E),this.cleanupAfterPaymentSubmission())},[this.getIframe()]),this.submitPaymentSubscriptions.authId=this.messaging.subscribe(o.MessageTypeEnum.CHECKOUT_START_PAYMENT_AUTH,async n=>{try{console.log("PAYMENT AUTH STARTED",n),this.paymentAuth=new g({paymentAuthData:n.payload.paymentAuthData}),await this.paymentAuth.initialize();const i=this.paymentAuth.getIframe();this.messaging.addSourceToSubscription(this.submitPaymentSubscriptions.completedId,i.getContentWindow()),this.messaging.addSourceToSubscription(this.submitPaymentSubscriptions.failedId,i.getContentWindow())}catch(i){e(i)}},[this.getIframe()]),this.getIframe().postMessage({name:o.MessageTypeEnum.CHECKOUT_SUBMIT_PAYMENT})})}async fetchSession(){const e=`${this.config.getConfig("stargateUrl",this.environment)}/api/sessions/${this.options.sessionUuid}/gateway-url${this.options.locale?`?preferredLocale=${this.options.locale}`:""}`;return await this.http.get(e)}async handlePaymentCompletedMessage(t){const n=`${this.config.getConfig("stargateUrl",this.environment)}/api/payment-intents/${t.payload.paymentIntentUuid}/return-url`,i=10,r=1e3;let c=0;for(;c<i;){try{const a=await this.http.get(n);if(c++,a!=null&&a.merchantReturnUrl)return{returnUrl:a.merchantReturnUrl}}catch(a){console.error("Error fetching return URL:",a)}c<i&&await new Promise(a=>setTimeout(a,r))}throw new Error(`Failed to fetch the return url after ${c} attempts`)}cleanupAfterPaymentSubmission(){this.messaging.unsubscribe(this.submitPaymentSubscriptions.completedId),this.messaging.unsubscribe(this.submitPaymentSubscriptions.failedId),this.messaging.unsubscribe(this.submitPaymentSubscriptions.authId),this.messaging.unsubscribe(this.submitPaymentSubscriptions.validateFieldsId),this.cleanupPaymentAuth()}cleanup(){this.cleanupPaymentAuth(),super.cleanup()}cleanupPaymentAuth(){this.paymentAuth&&(this.paymentAuth.destroy(),this.paymentAuth=null)}}o.MontonioCheckout=y,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ (function(s,h){typeof exports=="object"&&typeof module!="undefined"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(s=typeof globalThis!="undefined"?globalThis:s||self,h(s.Montonio={}))})(this,function(s){"use strict";s.MessageTypeEnum=void 0,function(n){n.CHECKOUT_PAYMENT_COMPONENT_READY="montonio:checkout.paymentComponentReady",n.CHECKOUT_CHANGE_LOCALE="montonio:checkout.changeLocale",n.CHECKOUT_SUBMIT_PAYMENT="montonio:checkout.submitPayment",n.CHECKOUT_START_PAYMENT_AUTH="montonio:checkout.startPaymentAuth",n.CHECKOUT_SEND_PAYMENT_AUTH_DATA="montonio:checkout.sendPaymentAuthData",n.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY="montonio:checkout.paymentAuthComponentReady",n.CHECKOUT_PAYMENT_AUTH_COMPLETED="montonio:checkout.paymentAuthCompleted",n.CHECKOUT_PAYMENT_COMPLETED="montonio:checkout.paymentCompleted",n.CHECKOUT_PAYMENT_FAILED="montonio:checkout.paymentFailed",n.CHECKOUT_SEND_PAYMENT_FAILED_DATA="montonio:checkout.sendPaymentFailedData",n.CHECKOUT_HEIGHT_CHANGED="montonio:checkout.heightChanged",n.CHECKOUT_VALIDATE_FIELDS="montonio:checkout.validateFields",n.CHECKOUT_VALIDATE_FIELDS_RESULT="montonio:checkout.validateFieldsResult"}(s.MessageTypeEnum||(s.MessageTypeEnum={}));class h{constructor(){this.environmentVariables={stargateUrl:{sandbox:"https://sandbox-stargate.montonio.com",production:"https://stargate.montonio.com","prelive-sandbox":"https://sandbox-stargate.prelive.montonio.com","prelive-production":"https://stargate.prelive.montonio.com",development:"https://api-stargate.montonio.dev"}}}static get instance(){return h._instance||(h._instance=new h),h._instance}getConfig(e,t){return this.environmentVariables[e][t]}}class m{constructor(){this.timeout=3e4}static get instance(){return m._instance||(m._instance=new m),m._instance}async get(e){return this.request(e,"GET")}async post(e,t){return this.request(e,"POST",t)}async patch(e,t){return this.request(e,"PATCH",t)}async request(e,t,i){const o=new AbortController,a=setTimeout(()=>o.abort(),this.timeout);try{const r={Accept:"application/json","X-Montonio-Js-Version":"1.0.43"};i&&(r["Content-Type"]="application/json");const c={method:t,headers:r,credentials:"include",mode:"cors",signal:o.signal};i&&(c.body=JSON.stringify(i));const u=await fetch(e,c);if(!u.ok)throw new Error(`HTTP error ${u.status}: ${u.statusText}`);return await u.json()}catch(r){throw r instanceof DOMException&&r.name==="AbortError"?new Error(`Request timeout after ${this.timeout}ms`):r}finally{clearTimeout(a)}}}class d{constructor(){this.subscriptions=new Map,this.setupMessageListener()}subscribe(e,t,i){if(this.subscriptions.has(e))throw new Error(`Subscription for '${e}' already exists`);const o=this.extractWindowFromIframe(i);this.subscriptions.set(e,{handler:t,sources:[o]})}addIframeToSubscription(e,t){const i=this.subscriptions.get(e);if(!i)throw new Error(`Subscription for '${e}' not found`);const o=this.extractWindowFromIframe(t);i.sources.includes(o)||i.sources.push(o)}waitForMessage(e,t,i=3e4){return new Promise((o,a)=>{const r=setTimeout(()=>{this.removeIframeFromSubscription(e,t),a(new Error(`Message ${e} timeout after ${i}ms`))},i);this.subscribe(e,c=>{clearTimeout(r),this.removeIframeFromSubscription(e,t),o(c)},t)})}postMessage(e,t,i="*"){this.extractWindowFromIframe(e).postMessage(t,i)}clearAllSubscriptions(){this.subscriptions.clear()}removeIframeFromSubscription(e,t){const i=this.subscriptions.get(e);if(!i)throw new Error(`Subscription for '${e}' not found`);const o=this.extractWindowFromIframe(t);i.sources=i.sources.filter(a=>a!==o),i.sources.length===0&&this.subscriptions.delete(e)}setupMessageListener(){window.addEventListener("message",e=>{try{if(!e.data||typeof e.data!="object"||!e.data.name)return;const t=e.data;this.subscriptions.forEach((i,o)=>{if(!(o!==t.name||!i.sources.some(r=>r===e.source)))try{i.handler(t)}catch(r){console.error("Error in message handler:",r)}})}catch(t){console.error("Error processing iframe message:",t)}})}extractWindowFromIframe(e){return e.getContentWindow()}}class E{constructor(e){var t;this.defaultStyles={width:"100%",height:"100%"},this.options=e,this.resizeOnHeightChange=(t=e.resizeOnHeightChange)!==null&&t!==void 0?t:!0,this.element=document.createElement("iframe"),this.messagingService=new d,this.setupIframe()}mount(){return this.options.mountElement.appendChild(this.element),this.resizeOnHeightChange&&this.startResizing(this.element),this.element}unmount(){this.element.contentWindow&&this.messagingService.clearAllSubscriptions(),this.element.parentNode&&this.element.parentNode.removeChild(this.element)}getContentWindow(){if(!this.element.contentWindow)throw new Error("Iframe contentWindow is not available. Make sure the iframe is mounted and loaded.");return this.element.contentWindow}startResizing(e){this.messagingService.subscribe(s.MessageTypeEnum.CHECKOUT_HEIGHT_CHANGED,t=>{e.style.height=t.payload.height+"px"},this)}setupIframe(){const{src:e,allow:t="payment",styles:i={}}=this.options;this.element.src=e,this.element.allow=t;const o={...this.defaultStyles,...i};Object.assign(this.element.style,o)}}class f{constructor(){this.mountElement=null,this.loaded=!1,this._iframe=null,this.messagingService=new d,this.httpService=m.instance,this.configService=h.instance}get iframe(){if(!this._iframe)throw new Error("Iframe not initialized");return this._iframe}set iframe(e){this._iframe=e}cleanup(){this.iframe&&(this.iframe.unmount(),this.iframe=null)}}class T extends f{constructor(e){super(),this.options=e,this.mountElement=e.mountElement||document.body}async initialize(){if(this.options.paymentAuthData.type==="redirect"){await this.redirectViaPost(this.options.paymentAuthData);return}if(!this.options.paymentAuthData.embeddedUrl)throw new Error("Embedded URL is not set in paymentAuthData");this.iframe=new E({src:this.options.paymentAuthData.embeddedUrl,mountElement:this.mountElement,styles:{width:"100vw",height:"100vh",position:"fixed",top:"0",left:"0",zIndex:"16777271"},resizeOnHeightChange:!1}),this.iframe.mount(),await this.messagingService.waitForMessage(s.MessageTypeEnum.CHECKOUT_PAYMENT_AUTH_COMPONENT_READY,this.iframe),this.messagingService.postMessage(this.iframe,{name:s.MessageTypeEnum.CHECKOUT_SEND_PAYMENT_AUTH_DATA,payload:{paymentAuthData:this.options.paymentAuthData}})}async redirectViaPost(e){if(!e.redirectUrl)throw new Error("Redirect URL is not set in paymentAuthData");const t=document.createElement("form");if(t.method=e.redirectMethod||"get",t.action=e.redirectUrl,t.style.display="none",e.formData)for(const[i,o]of Object.entries(e.formData)){const a=document.createElement("input");a.type="hidden",a.name=i,a.value=o,t.appendChild(a)}throw document.body.appendChild(t),t.submit(),await new Promise(i=>setTimeout(i,3e4)),new Error("Redirect timeout: Expected redirect to occur within 30 seconds")}}function g(n){if(typeof n=="string"){const e=document.querySelector(n);if(!e||!(e instanceof HTMLElement))throw new Error(`Element not found: ${n}`);return e}return n}s.Environment=void 0,function(n){n.DEVELOPMENT="development",n.PRODUCTION="production",n.SANDBOX="sandbox",n.PRELIVE_SANDBOX="prelive-sandbox",n.PRELIVE_PRODUCTION="prelive-production"}(s.Environment||(s.Environment={}));class p extends Error{constructor(e="MontonioCheckout not initialized. Please call the .initialize() method of the MontonioCheckout class first."){super(e),this.name="MontonioCheckoutNotInitializedError"}}class l extends Error{constructor(){super("Validation failed"),this.name="ValidationError"}}class C extends Error{constructor(e){super(`Payment failed: ${e.errorCode}`),this.name="PaymentFailedError",this.paymentFailedMessageData=e}}class A extends f{constructor(e){super(),this.paymentAuth=null,this.options=e,this.environment=e.environment||s.Environment.PRODUCTION}async initialize(e){try{this.mountElement=g(e);const t=await this.fetchSession();return this.iframe=new E({src:t.url,mountElement:this.mountElement,styles:{minHeight:"230px"}}),this.iframe.mount(),await this.messagingService.waitForMessage(s.MessageTypeEnum.CHECKOUT_PAYMENT_COMPONENT_READY,this.iframe),this.loaded=!0,!0}catch(t){throw this.cleanup(),t}}updateOptions(e){if(!this.loaded)throw new p;e.locale!==void 0&&(this.options.locale=e.locale,this.messagingService.postMessage(this.iframe,{name:s.MessageTypeEnum.CHECKOUT_CHANGE_LOCALE,payload:{locale:e.locale}}))}async validateOrReject(){return new Promise((e,t)=>{this.messagingService.waitForMessage(s.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS_RESULT,this.iframe).then(i=>{i.payload.isValid?e():t(new l)}).catch(()=>t(new l)),this.messagingService.postMessage(this.iframe,{name:s.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS})})}async submitPayment(){if(!this.loaded)throw new p;return new Promise((e,t)=>{this.messagingService.subscribe(s.MessageTypeEnum.CHECKOUT_PAYMENT_COMPLETED,async i=>{console.log("CHECKOUT_PAYMENT_COMPLETED (from main iframe)",i);const o=await this.handlePaymentCompletedMessage(i);e(o),this.cleanupAfterPaymentSubmission()},this.iframe),this.messagingService.subscribe(s.MessageTypeEnum.CHECKOUT_PAYMENT_FAILED,i=>{console.error("CHECKOUT_PAYMENT_FAILED (from main iframe)",i),this.messagingService.postMessage(this.iframe,{name:s.MessageTypeEnum.CHECKOUT_SEND_PAYMENT_FAILED_DATA,payload:i.payload}),t(new C(i.payload)),this.cleanupAfterPaymentSubmission()},this.iframe),this.messagingService.subscribe(s.MessageTypeEnum.CHECKOUT_VALIDATE_FIELDS_RESULT,i=>{console.log("CHECKOUT_VALIDATE_FIELDS_RESULT",i),i.payload.isValid||t(new l)},this.iframe),this.messagingService.subscribe(s.MessageTypeEnum.CHECKOUT_START_PAYMENT_AUTH,async i=>{try{console.log("PAYMENT AUTH STARTED",i),this.paymentAuth=new T({paymentAuthData:i.payload.paymentAuthData}),await this.paymentAuth.initialize();const o=this.paymentAuth.iframe;this.messagingService.addIframeToSubscription(s.MessageTypeEnum.CHECKOUT_PAYMENT_COMPLETED,o),this.messagingService.addIframeToSubscription(s.MessageTypeEnum.CHECKOUT_PAYMENT_FAILED,o)}catch(o){t(o)}},this.iframe),this.messagingService.postMessage(this.iframe,{name:s.MessageTypeEnum.CHECKOUT_SUBMIT_PAYMENT})})}async fetchSession(){const t=`${this.configService.getConfig("stargateUrl",this.environment)}/api/sessions/${this.options.sessionUuid}/gateway-url${this.options.locale?`?preferredLocale=${this.options.locale}`:""}`;return await this.httpService.get(t)}async handlePaymentCompletedMessage(e){const i=`${this.configService.getConfig("stargateUrl",this.environment)}/api/payment-intents/${e.payload.paymentIntentUuid}/return-url`,o=10,a=1e3;let r=0;for(;r<o;){try{const c=await this.httpService.get(i);if(r++,c!=null&&c.merchantReturnUrl)return{returnUrl:c.merchantReturnUrl}}catch(c){console.error("Error fetching return URL:",c)}r<o&&await new Promise(c=>setTimeout(c,a))}throw new Error(`Failed to fetch the return url after ${r} attempts`)}cleanupAfterPaymentSubmission(){this.messagingService.clearAllSubscriptions(),this.cleanupPaymentAuth()}cleanupPaymentAuth(){this.paymentAuth&&(this.paymentAuth.cleanup(),this.paymentAuth=null)}}s.LocaleEnum=void 0,function(n){n.EN_US="en_US",n.ET="et",n.LV="lv",n.LT="lt",n.PL="pl",n.FI="fi",n.RU="ru"}(s.LocaleEnum||(s.LocaleEnum={})),s.MontonioCheckout=A,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=montonio.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"montonio.umd.js","sources":["../src/services/Messaging/types.ts","../src/services/Config/Config.ts","../src/services/HTTP/HTTP.ts","../src/services/Messaging/Messaging.ts","../src/components/Iframe/Iframe.ts","../src/components/BaseComponent.ts","../src/components/PaymentAuth/PaymentAuth.ts","../src/utils/DOM/DOM.ts","../src/services/Config/types.ts","../src/common/exceptions/exceptions.ts","../src/components/MontonioCheckout/MontonioCheckout.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["MessageTypeEnum","ConfigService","name","environment","HTTPService","url","data","method","controller","timeoutId","headers","options","response","error","MessagingService","messageType","handler","sources","subscriptionId","windowSources","source","subscription","timeout","resolve","reject","message","target","messageData","targetOrigin","subscriptionsToRemove","s","id","event","Iframe","contentWindow","window","_a","src","allow","styles","combinedStyles","element","BaseComponent","PaymentAuth","paymentAuthData","form","key","value","input","getElement","selector","Environment","MontonioCheckoutNotInitializedError","ValidationError","PaymentFailedError","paymentFailedMessageData","MontonioCheckout","mountTo","sessionData","res","completedMessage","result","failedMessage","paymentAuthIframe","paymentCompletedMessage","MAX_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS_IN_MS","attempts"],"mappings":"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"}
1
+ {"version":3,"file":"montonio.umd.js","sources":["../src/services/Messaging/types.ts","../src/services/Config/Config.ts","../src/services/HTTP/HTTP.ts","../src/services/Messaging/Messaging.ts","../src/components/Iframe/Iframe.ts","../src/components/BaseComponent.ts","../src/components/PaymentAuth/PaymentAuth.ts","../src/utils/DOM/DOM.ts","../src/services/Config/types.ts","../src/common/exceptions/exceptions.ts","../src/components/MontonioCheckout/MontonioCheckout.ts","../src/components/MontonioCheckout/types.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null],"names":["MessageTypeEnum","ConfigService","name","environment","HTTPService","url","data","method","controller","timeoutId","headers","options","response","error","MessagingService","messageType","handler","iframe","windowSource","subscription","timeout","resolve","reject","message","messageData","targetOrigin","source","event","key","Iframe","_a","element","src","allow","styles","combinedStyles","BaseComponent","value","PaymentAuth","paymentAuthData","form","input","getElement","selector","Environment","MontonioCheckoutNotInitializedError","ValidationError","PaymentFailedError","paymentFailedMessageData","MontonioCheckout","mountTo","sessionData","res","completedMessage","result","failedMessage","paymentAuthIframe","paymentCompletedMessage","MAX_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS_IN_MS","attempts","LocaleEnum"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { Iframe } from './Iframe/Iframe';
1
+ import { Iframe } from './';
2
2
  import { ConfigService, HTTPService, MessagingService } from '../services';
3
3
  export declare abstract class BaseComponent {
4
- protected http: HTTPService;
5
- protected config: ConfigService;
6
- protected messaging: MessagingService;
7
- protected iframe: Iframe | null;
4
+ protected httpService: HTTPService;
5
+ protected configService: ConfigService;
6
+ protected messagingService: MessagingService;
8
7
  protected mountElement: HTMLElement | null;
9
- loaded: boolean;
10
- constructor();
8
+ protected loaded: boolean;
9
+ private _iframe;
10
+ protected constructor();
11
+ get iframe(): Iframe;
12
+ protected set iframe(value: Iframe | null);
13
+ cleanup(): void;
11
14
  abstract initialize(...args: unknown[]): Promise<unknown>;
12
- destroy(): void;
13
- getIframe(): Iframe;
14
- protected cleanup(): void;
15
15
  }
@@ -1,48 +1,23 @@
1
1
  import { IframeOptions } from './types';
2
- import { Messages, MessageTypeEnum, MessageByType } from '../../services/Messaging/types';
3
2
  /**
4
3
  * Iframe component for rendering and communicating with iframes
5
4
  */
6
5
  export declare class Iframe {
7
- private element;
8
- private options;
6
+ private readonly element;
7
+ private readonly options;
9
8
  private readonly defaultStyles;
10
- private resizeOnHeightChange;
9
+ private readonly resizeOnHeightChange;
11
10
  private messagingService;
12
- private subscriptionIds;
13
11
  constructor(options: IframeOptions);
14
- private setupIframe;
15
12
  mount(): HTMLIFrameElement;
16
13
  unmount(): void;
17
- clearSubscriptions(): void;
18
- getElement(): HTMLIFrameElement;
19
14
  /**
20
15
  * Get the Window object of the iframe
21
16
  */
22
17
  getContentWindow(): Window;
23
18
  /**
24
- * Wait for the iframe to load
25
- * @param timeout Timeout in milliseconds
26
- * @returns Promise that resolves when the iframe is loaded or rejects on timeout
27
- */
28
- waitForLoad(timeout?: number): Promise<void>;
29
- /**
30
- * Wait for a specific message from the iframe
31
- * @param messageType The message type to wait for
32
- * @param timeout Timeout in milliseconds
33
- * @returns Promise that resolves when the message is received or rejects on timeout
34
- */
35
- waitForMessage<T extends MessageTypeEnum>(messageType: T, timeout?: number): Promise<MessageByType<T>>;
36
- /**
37
- * Subscribe to messages from the iframe with automatic cleanup
38
- * Subscriptions are automatically cleaned up when the iframe is unmounted
39
- * @param messageType The message type to listen for
40
- * @param handler Handler function to call when the message is received
41
- */
42
- subscribe<T extends MessageTypeEnum>(messageType: T, handler: (message: MessageByType<T>) => void): void;
43
- /**
44
- * Post a message to the child iframe
19
+ * Listen to height change messages from the child window and change the height of the iframe element
45
20
  */
46
- postMessage<T extends Messages>(messageData: T, targetOrigin?: string): void;
47
- startResizing(element: HTMLIFrameElement): void;
21
+ private startResizing;
22
+ private setupIframe;
48
23
  }
@@ -2,17 +2,27 @@ import { CheckoutOptions, PaymentResult, UpdatableCheckoutOptions } from './type
2
2
  import { BaseComponent } from '../BaseComponent';
3
3
  export declare class MontonioCheckout extends BaseComponent {
4
4
  private options;
5
- private environment;
5
+ private readonly environment;
6
6
  private paymentAuth;
7
- private submitPaymentSubscriptions;
8
7
  constructor(options: CheckoutOptions);
9
8
  /**
10
9
  * Mount the checkout to the DOM
11
10
  * @param mountTo - The element to mount the checkout to. Can be a CSS selector or an HTMLElement.
12
11
  */
13
12
  initialize(mountTo: string | HTMLElement): Promise<boolean>;
13
+ /**
14
+ * Update the options of the MontonioCheckout instance
15
+ * @param options - Updatable options
16
+ */
14
17
  updateOptions(options: UpdatableCheckoutOptions): void;
18
+ /**
19
+ * Check the validity of the payment form. Throws an error if the payment form is invalid.
20
+ */
15
21
  validateOrReject(): Promise<void>;
22
+ /**
23
+ * Submit the payment. Call this after creating the Order with the Montonio backend API
24
+ * @returns Promise that resolves to a PaymentResult
25
+ */
16
26
  submitPayment(): Promise<PaymentResult>;
17
27
  private fetchSession;
18
28
  /**
@@ -21,6 +31,5 @@ export declare class MontonioCheckout extends BaseComponent {
21
31
  */
22
32
  private handlePaymentCompletedMessage;
23
33
  private cleanupAfterPaymentSubmission;
24
- protected cleanup(): void;
25
34
  private cleanupPaymentAuth;
26
35
  }
@@ -1,5 +1,5 @@
1
- import { CheckoutOptions } from './MontonioCheckout/types';
2
1
  import { MontonioCheckout } from './MontonioCheckout/MontonioCheckout';
3
2
  import { PaymentAuth } from './PaymentAuth/PaymentAuth';
4
- import { PaymentAuthOptions } from './PaymentAuth/types';
5
- export { CheckoutOptions, MontonioCheckout, PaymentAuth, PaymentAuthOptions };
3
+ import { Iframe } from './Iframe/Iframe';
4
+ import { BaseComponent } from './BaseComponent';
5
+ export { MontonioCheckout, PaymentAuth, Iframe, BaseComponent };
@@ -1,5 +1,6 @@
1
1
  import { MontonioCheckout } from './components/MontonioCheckout/MontonioCheckout';
2
+ import { LocaleEnum } from './components/MontonioCheckout/types';
2
3
  import type { CheckoutOptions } from './components/MontonioCheckout/types';
3
4
  import { Environment } from './services/Config/types';
4
5
  import { MessageTypeEnum } from './services/Messaging/types';
5
- export { CheckoutOptions, MontonioCheckout, Environment, MessageTypeEnum };
6
+ export { CheckoutOptions, MontonioCheckout, Environment, MessageTypeEnum, LocaleEnum };
@@ -4,10 +4,10 @@ import { EnvironmentOptions, EnvironmentVariables } from './types';
4
4
  * Implemented as a singleton
5
5
  */
6
6
  export declare class ConfigService {
7
- private static instance;
8
- private environmentVariables;
7
+ private static _instance;
8
+ private readonly environmentVariables;
9
9
  private constructor();
10
- static getInstance(): ConfigService;
10
+ static get instance(): ConfigService;
11
11
  getConfig(name: keyof EnvironmentVariables, environment: EnvironmentOptions): string;
12
12
  }
13
13
  export default ConfigService;
@@ -4,10 +4,10 @@
4
4
  * Implemented as a singleton
5
5
  */
6
6
  export declare class HTTPService {
7
- private static instance;
7
+ private static _instance;
8
8
  private readonly timeout;
9
9
  private constructor();
10
- static getInstance(): HTTPService;
10
+ static get instance(): HTTPService;
11
11
  get<T>(url: string): Promise<T>;
12
12
  post<T, D = unknown>(url: string, data: D): Promise<T>;
13
13
  patch<T, D = unknown>(url: string, data: D): Promise<T>;
@@ -1,52 +1,56 @@
1
1
  import { MessageByType, Messages, MessageTypeEnum } from './types';
2
- import { Iframe } from '../../components/Iframe/Iframe';
2
+ import { Iframe } from '../../components';
3
3
  /**
4
- * Service for sending and receiving messages between iframes
5
- * Implemented as a singleton
4
+ * Service for sending and receiving messages between iframes.
5
+ * Meant to be initialized separately for each component
6
+ * to clearly separate message subscriptions for each component.
6
7
  */
7
8
  export declare class MessagingService {
8
- private static instance;
9
+ /**
10
+ * Each message type can have only one handler function but multiple source windows.
11
+ * For example, the "payment complete" message can be listened to from both the MontonioCheckout
12
+ * component and the PaymentAuth (3DS) component - handled by the same callback.
13
+ */
9
14
  private subscriptions;
10
- private globalListenerAttached;
11
- private subscriptionCounter;
12
- private constructor();
13
- static getInstance(): MessagingService;
15
+ constructor();
14
16
  /**
15
- * Subscribe to messages of a specific type from specific sources
17
+ * Subscribe to messages of a specific type from a specific source iframe
16
18
  * @param messageType The message type to listen for
17
19
  * @param handler Handler function to call when the message is received
18
- * @param sources Array of specific iframe windows or Iframe objects to listen to
20
+ * @param iframe Iframe object to listen to
19
21
  * @returns Subscription ID that can be used to unsubscribe
20
22
  */
21
- subscribe<T extends MessageTypeEnum>(messageType: T, handler: (message: MessageByType<T>) => void, sources: Window[] | Iframe[]): string;
23
+ subscribe<T extends MessageTypeEnum>(messageType: T, handler: (message: MessageByType<T>) => void, iframe: Iframe): void;
22
24
  /**
23
- * Add a source to an existing subscription
25
+ * Add an iframe to an existing subscription
24
26
  */
25
- addSourceToSubscription(subscriptionId: string, source: Window): boolean;
26
- unsubscribe(subscriptionId: string): void;
27
+ addIframeToSubscription(messageType: MessageTypeEnum, iframe: Iframe): void;
27
28
  /**
28
- * Wait for a specific message type from specific sources
29
+ * Wait for a specific message type from a specific source Iframe
29
30
  * @param messageType The message type to wait for
30
- * @param sources Array of specific iframe windows or Iframe objects to listen to
31
+ * @param iframe Iframe object to listen to
31
32
  * @param timeout Timeout in milliseconds
32
33
  * @returns Promise that resolves when the message is received or rejects on timeout
33
34
  */
34
- waitForMessage<T extends MessageTypeEnum>(messageType: T, sources: Window[] | Iframe[], timeout?: number): Promise<MessageByType<T>>;
35
+ waitForMessage<T extends MessageTypeEnum>(messageType: T, iframe: Iframe, timeout?: number): Promise<MessageByType<T>>;
35
36
  /**
36
37
  * Post a message to a specific iframe window
37
38
  */
38
- postMessage(target: Window, messageData: Messages, targetOrigin?: string): void;
39
- /**
40
- * Clear all subscriptions for a specific source (useful when unmounting an iframe)
41
- */
42
- clearSubscriptionsForSource(source: Window): void;
39
+ postMessage(iframe: Iframe, messageData: Messages, targetOrigin?: string): void;
43
40
  /**
44
41
  * Clear all subscriptions
45
42
  */
46
43
  clearAllSubscriptions(): void;
47
44
  /**
48
- * Set up the global message listener (called only once)
45
+ * Remove subscription for an iframe
46
+ */
47
+ private removeIframeFromSubscription;
48
+ /**
49
+ * Set up the message listener for capturing all window messages
50
+ */
51
+ private setupMessageListener;
52
+ /**
53
+ * Extract the window source from the Iframe object
49
54
  */
50
- private setupGlobalMessageListener;
51
- private extractWindowSources;
55
+ private extractWindowFromIframe;
52
56
  }
@@ -1,7 +1,5 @@
1
1
  import { LocaleEnum } from '../../components/MontonioCheckout/types';
2
2
  export interface MessageSubscription {
3
- id: string;
4
- messageType: MessageTypeEnum;
5
3
  handler: (message: Messages) => void;
6
4
  sources: Window[];
7
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@montonio/montonio-js",
3
- "version": "1.0.42",
3
+ "version": "1.0.43",
4
4
  "description": "Montonio JS SDK for front-end web applications",
5
5
  "type": "module",
6
6
  "publishConfig": {