@odus/checkout 0.5.4 → 0.5.5

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.
@@ -1,4 +1,4 @@
1
- const k = (n) => n === "test" ? "https://sandbox-api.odus.com" : n === "live" ? "https://api.odus.com" : "http://localhost:3000";
1
+ const k = (s) => s === "test" ? "https://sandbox-api.odus.com" : s === "live" ? "https://api.odus.com" : "http://localhost:3000";
2
2
  class $ {
3
3
  apiKey;
4
4
  baseUrl;
@@ -18,34 +18,34 @@ class $ {
18
18
  ...i
19
19
  };
20
20
  try {
21
- const s = await fetch(`${this.baseUrl}${e}`, {
21
+ const n = await fetch(`${this.baseUrl}${e}`, {
22
22
  method: t,
23
23
  headers: r,
24
24
  body: a ? JSON.stringify(a) : void 0
25
25
  });
26
- if (!s.ok) {
26
+ if (!n.ok) {
27
27
  let o;
28
28
  try {
29
- o = await s.json();
29
+ o = await n.json();
30
30
  } catch (c) {
31
31
  console.log("error", c);
32
32
  }
33
33
  throw {
34
- message: o?.message[0] || `API request failed: ${s.status} ${s.statusText}`,
35
- status: s.status,
36
- statusText: s.statusText,
34
+ message: o?.message[0] || `API request failed: ${n.status} ${n.statusText}`,
35
+ status: n.status,
36
+ statusText: n.statusText,
37
37
  details: o
38
38
  };
39
39
  }
40
- return s.json();
41
- } catch (s) {
42
- throw s instanceof Error ? {
43
- message: s.message,
40
+ return n.json();
41
+ } catch (n) {
42
+ throw n instanceof Error ? {
43
+ message: n.message,
44
44
  status: 0,
45
45
  // Use 0 for network/client errors
46
46
  statusText: "Network Error",
47
- details: { message: s.message }
48
- } : s;
47
+ details: { message: n.message }
48
+ } : n;
49
49
  }
50
50
  }
51
51
  async authorizePayment({
@@ -55,10 +55,10 @@ class $ {
55
55
  token: i,
56
56
  returnUrl: r
57
57
  }) {
58
- let s = {};
58
+ let n = {};
59
59
  if (i && a) {
60
60
  const o = a.cardExpiry.replace(/\s+/g, "").split("/"), l = o[0], c = o[1];
61
- s = {
61
+ n = {
62
62
  paymentMethodData: {
63
63
  type: "card",
64
64
  card: {
@@ -78,7 +78,7 @@ class $ {
78
78
  }
79
79
  };
80
80
  } else
81
- s = {
81
+ n = {
82
82
  paymentMethodData: {
83
83
  type: "paypal"
84
84
  },
@@ -92,16 +92,16 @@ class $ {
92
92
  customHeaders: {
93
93
  Authorization: `Bearer ${t}`
94
94
  },
95
- body: s
95
+ body: n
96
96
  });
97
97
  }
98
98
  }
99
99
  const R = async ({
100
- id: n,
100
+ id: s,
101
101
  apiKey: e,
102
102
  environment: t
103
103
  }) => {
104
- const a = k(t), i = await fetch(`${a}/checkout-profiles/${n}`, {
104
+ const a = k(t), i = await fetch(`${a}/checkout-profiles/${s}`, {
105
105
  method: "GET",
106
106
  headers: {
107
107
  "Content-Type": "application/json",
@@ -196,11 +196,11 @@ class O {
196
196
  return this.state[e];
197
197
  }
198
198
  }
199
- function L(n) {
200
- return new O(n);
199
+ function L(s) {
200
+ return new O(s);
201
201
  }
202
202
  function H({
203
- apiKey: n,
203
+ apiKey: s,
204
204
  profileId: e,
205
205
  environment: t
206
206
  }) {
@@ -212,7 +212,7 @@ function H({
212
212
  try {
213
213
  a.setState({ isLoading: !0 });
214
214
  const r = await R({
215
- apiKey: n,
215
+ apiKey: s,
216
216
  id: e,
217
217
  environment: t
218
218
  });
@@ -235,9 +235,9 @@ function H({
235
235
  };
236
236
  }
237
237
  const z = {
238
- cardNumber: (n) => (n.replace(/\s/g, "").match(/.{1,4}/g) || []).join(" "),
239
- cardExpiry: (n) => {
240
- const t = n.replace(/\D/g, "").slice(0, 4);
238
+ cardNumber: (s) => (s.replace(/\s/g, "").match(/.{1,4}/g) || []).join(" "),
239
+ cardExpiry: (s) => {
240
+ const t = s.replace(/\D/g, "").slice(0, 4);
241
241
  return t.length > 2 ? `${t.slice(0, 2)} / ${t.slice(2)}` : t;
242
242
  }
243
243
  }, D = {
@@ -312,81 +312,81 @@ const z = {
312
312
  "comcast.net": ["comcast.com", "comcat.net", "comcst.net", "comcastnet", "comcast.nt", "comcas.net"],
313
313
  "verizon.net": ["verizon.com", "verizon.nt", "verizonnet", "verizn.net", "verizon.ne", "verzon.net"],
314
314
  "att.net": ["att.com", "at.net", "att.nt", "attnet", "att.ne", "attt.net"]
315
- }, K = (n) => {
316
- if (!n || n.includes("."))
315
+ }, K = (s) => {
316
+ if (!s || s.includes("."))
317
317
  return null;
318
318
  const e = ["com", "net", "org", "edu", "gov", "io", "co"];
319
319
  for (const t of e) {
320
- if (n === "companycok" && t === "co")
320
+ if (s === "companycok" && t === "co")
321
321
  return "company.co";
322
- if (n.endsWith(t) && !n.includes(".")) {
323
- const a = n.length - t.length;
324
- return `${n.substring(0, a)}.${t}`;
322
+ if (s.endsWith(t) && !s.includes(".")) {
323
+ const a = s.length - t.length;
324
+ return `${s.substring(0, a)}.${t}`;
325
325
  }
326
326
  }
327
327
  return null;
328
- }, j = (n, e) => {
329
- if (n.length === 0) return e.length;
330
- if (e.length === 0) return n.length;
331
- const t = e.length + 1, a = n.length + 1, i = Array.from(
328
+ }, j = (s, e) => {
329
+ if (s.length === 0) return e.length;
330
+ if (e.length === 0) return s.length;
331
+ const t = e.length + 1, a = s.length + 1, i = Array.from(
332
332
  { length: t },
333
- (r, s) => Array.from({ length: a }, (o, l) => s === 0 ? l : l === 0 ? s : 0)
333
+ (r, n) => Array.from({ length: a }, (o, l) => n === 0 ? l : l === 0 ? n : 0)
334
334
  );
335
335
  for (let r = 1; r < t; r++)
336
- for (let s = 1; s < a; s++) {
337
- const o = n[s - 1] === e[r - 1] ? 0 : 1;
338
- i[r][s] = Math.min(
339
- i[r - 1][s] + 1,
336
+ for (let n = 1; n < a; n++) {
337
+ const o = s[n - 1] === e[r - 1] ? 0 : 1;
338
+ i[r][n] = Math.min(
339
+ i[r - 1][n] + 1,
340
340
  // deletion
341
- i[r][s - 1] + 1,
341
+ i[r][n - 1] + 1,
342
342
  // insertion
343
- i[r - 1][s - 1] + o
343
+ i[r - 1][n - 1] + o
344
344
  // substitution
345
345
  );
346
346
  }
347
- return i[e.length][n.length];
348
- }, U = (n) => {
347
+ return i[e.length][s.length];
348
+ }, U = (s) => {
349
349
  let t = null, a = 3;
350
- const i = n.toLowerCase();
350
+ const i = s.toLowerCase();
351
351
  for (const r of Object.keys(D)) {
352
- const s = j(i, r);
353
- s <= 2 && s < a && (a = s, t = r);
352
+ const n = j(i, r);
353
+ n <= 2 && n < a && (a = n, t = r);
354
354
  }
355
355
  return t;
356
356
  }, _ = () => {
357
- const { t: n } = I();
357
+ const { t: s } = I();
358
358
  return {
359
359
  validateEmail: (t) => {
360
360
  const a = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
361
361
  if (!t)
362
362
  return {
363
363
  isValid: !1,
364
- message: n("validation.emailInvalid"),
364
+ message: s("validation.emailInvalid"),
365
365
  suggestion: null
366
366
  };
367
367
  const i = t.indexOf("@");
368
368
  if (i === -1)
369
369
  return {
370
370
  isValid: !1,
371
- message: n("validation.emailInvalid"),
371
+ message: s("validation.emailInvalid"),
372
372
  suggestion: null
373
373
  };
374
- const r = t.substring(0, i), s = t.substring(i + 1);
375
- if (!s.includes(".")) {
376
- const l = K(s);
374
+ const r = t.substring(0, i), n = t.substring(i + 1);
375
+ if (!n.includes(".")) {
376
+ const l = K(n);
377
377
  if (l)
378
378
  return {
379
379
  isValid: !1,
380
- message: n("validation.emailSuggestion", {
380
+ message: s("validation.emailSuggestion", {
381
381
  email: `${r}@${l}`
382
382
  }),
383
383
  suggestion: `${r}@${l}`
384
384
  };
385
385
  for (const c of Object.keys(D))
386
- if (c.replace(/\./g, "") === s)
386
+ if (c.replace(/\./g, "") === n)
387
387
  return {
388
388
  isValid: !1,
389
- message: n("validation.emailSuggestion", {
389
+ message: s("validation.emailSuggestion", {
390
390
  email: `${r}@${c}`
391
391
  }),
392
392
  suggestion: `${r}@${c}`
@@ -395,15 +395,15 @@ const z = {
395
395
  if (!a.test(t))
396
396
  return {
397
397
  isValid: !1,
398
- message: n("validation.emailInvalid"),
398
+ message: s("validation.emailInvalid"),
399
399
  suggestion: null
400
400
  };
401
- const o = U(s);
402
- if (o && o !== s) {
401
+ const o = U(n);
402
+ if (o && o !== n) {
403
403
  const l = `${r}@${o}`;
404
404
  return {
405
405
  isValid: !1,
406
- message: n("validation.emailSuggestion", { email: l }),
406
+ message: s("validation.emailSuggestion", { email: l }),
407
407
  suggestion: l
408
408
  };
409
409
  }
@@ -415,7 +415,7 @@ const z = {
415
415
  }
416
416
  };
417
417
  }, q = () => {
418
- const { t: n } = I(), { validateEmail: e } = _();
418
+ const { t: s } = I(), { validateEmail: e } = _();
419
419
  return {
420
420
  email: (t) => {
421
421
  const a = e(t);
@@ -423,21 +423,21 @@ const z = {
423
423
  },
424
424
  name: (t) => {
425
425
  if (!t.trim())
426
- return n("validation.nameRequired");
426
+ return s("validation.nameRequired");
427
427
  },
428
428
  cardExpiry: (t) => {
429
429
  const a = t.replace(/\s/g, ""), [i, r] = a.split("/").map((u) => u.trim());
430
430
  if (!i || !r || i.length !== 2 || r.length !== 2)
431
- return n("validation.cardExpiryFormat");
432
- const s = /* @__PURE__ */ new Date(), o = s.getFullYear() % 100, l = s.getMonth() + 1, c = parseInt(i, 10), d = parseInt(r, 10);
431
+ return s("validation.cardExpiryFormat");
432
+ const n = /* @__PURE__ */ new Date(), o = n.getFullYear() % 100, l = n.getMonth() + 1, c = parseInt(i, 10), d = parseInt(r, 10);
433
433
  if (c < 1 || c > 12)
434
- return n("validation.cardExpiryFormat");
434
+ return s("validation.cardExpiryFormat");
435
435
  if (d < o || d === o && c < l)
436
- return n("validation.cardExpiryInvalid");
436
+ return s("validation.cardExpiryInvalid");
437
437
  }
438
438
  };
439
439
  }, Y = () => {
440
- const n = q(), e = L({
440
+ const s = q(), e = L({
441
441
  formData: {
442
442
  name: "",
443
443
  email: "",
@@ -451,7 +451,7 @@ const z = {
451
451
  },
452
452
  isValid: !1
453
453
  }), t = (l, c) => {
454
- const d = n[l];
454
+ const d = s[l];
455
455
  return d?.(c);
456
456
  }, a = (l) => {
457
457
  const c = {};
@@ -479,7 +479,7 @@ const z = {
479
479
  errors: y,
480
480
  isValid: i(E)
481
481
  });
482
- }, s = (l, c) => {
482
+ }, n = (l, c) => {
483
483
  const d = e.getState(), u = {
484
484
  ...d.touched,
485
485
  [l]: !0
@@ -502,12 +502,12 @@ const z = {
502
502
  getFormState: e.getState.bind(e),
503
503
  subscribe: e.subscribe.bind(e),
504
504
  handleChange: r,
505
- handleBlur: s,
505
+ handleBlur: n,
506
506
  setFormData: o,
507
507
  reset: e.resetState.bind(e)
508
508
  };
509
509
  }, G = async ({
510
- props: n,
510
+ props: s,
511
511
  apiKey: e,
512
512
  environment: t
513
513
  }) => {
@@ -519,7 +519,7 @@ const z = {
519
519
  "Content-Type": "application/json",
520
520
  Authorization: `Bearer ${e}`
521
521
  },
522
- body: JSON.stringify(n)
522
+ body: JSON.stringify(s)
523
523
  }
524
524
  );
525
525
  if (!i.ok)
@@ -527,7 +527,7 @@ const z = {
527
527
  return await i.json();
528
528
  }, Z = 100, J = 2, W = 2e3, X = 5;
529
529
  function Q({
530
- apiKey: n,
530
+ apiKey: s,
531
531
  // scriptLoaded,
532
532
  checkoutProfile: e,
533
533
  inputStyles: t,
@@ -543,14 +543,14 @@ function Q({
543
543
  isCvvFocused: !1,
544
544
  possibleCardType: "unknown"
545
545
  });
546
- let s = null;
546
+ let n = null;
547
547
  const o = async () => {
548
548
  try {
549
549
  const m = await G({
550
550
  props: {
551
551
  allowedOrigins: [globalThis.location.origin]
552
552
  },
553
- apiKey: n,
553
+ apiKey: s,
554
554
  environment: i
555
555
  });
556
556
  m && (r.setState({
@@ -573,7 +573,7 @@ function Q({
573
573
  cardElementId: g.id,
574
574
  cvvElementId: f.id,
575
575
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
576
- }), s = new globalThis.TokenEx.Iframe("card-element", {
576
+ }), n = new globalThis.TokenEx.Iframe("card-element", {
577
577
  ...m.iframeConfig,
578
578
  placeholder: "1234 1234 1234 1234",
579
579
  cvvPlaceholder: "CVC",
@@ -597,34 +597,34 @@ function Q({
597
597
  base: `${t.base}; border-radius: 0px 0px ${e.styles.borderRadius}px 0px`
598
598
  }
599
599
  }
600
- }), s.on("load", () => {
600
+ }), n.on("load", () => {
601
601
  r.setState({ loadingIframe: !1 });
602
- }), s.on("autoCompleteValues", function(p) {
602
+ }), n.on("autoCompleteValues", function(p) {
603
603
  const { nameOnCard: C, cardExp: b } = p;
604
604
  a({
605
605
  name: C,
606
606
  cardExpiry: b
607
607
  });
608
- }), s.on("validate", function(p) {
608
+ }), n.on("validate", function(p) {
609
609
  const { isValid: C, isCvvValid: b } = p;
610
610
  r.setState({
611
611
  isCcValid: C,
612
612
  isCvvValid: b
613
613
  });
614
- }), s.on("focus", function() {
614
+ }), n.on("focus", function() {
615
615
  r.setState({ isFocused: !0 });
616
- }), s.on("blur", function() {
616
+ }), n.on("blur", function() {
617
617
  r.setState({ isFocused: !1 });
618
- }), s.on("cvvFocus", function() {
618
+ }), n.on("cvvFocus", function() {
619
619
  r.setState({ isCvvFocused: !0 });
620
- }), s.on("cvvBlur", function() {
620
+ }), n.on("cvvBlur", function() {
621
621
  r.setState({ isCvvFocused: !1 });
622
- }), s.on(
622
+ }), n.on(
623
623
  "cardTypeChange",
624
624
  function({ possibleCardType: p }) {
625
625
  r.setState({ possibleCardType: p });
626
626
  }
627
- ), s.load();
627
+ ), n.load();
628
628
  }, c = () => {
629
629
  let m = 0;
630
630
  const g = X;
@@ -674,13 +674,13 @@ function Q({
674
674
  console.error("Failed to create TokenEx iframe:", p);
675
675
  }
676
676
  }, u = async () => {
677
- n && await o();
677
+ s && await o();
678
678
  }, E = () => {
679
- s && (s.remove(), s = null);
679
+ n && (n.remove(), n = null);
680
680
  }, y = async (m) => {
681
- s && (s.on("tokenize", async function(g) {
681
+ n && (n.on("tokenize", async function(g) {
682
682
  await m(g);
683
- }), s.tokenize());
683
+ }), n.tokenize());
684
684
  };
685
685
  return {
686
686
  getState: r.getState.bind(r),
@@ -690,14 +690,14 @@ function Q({
690
690
  initialize: u
691
691
  };
692
692
  }
693
- const ee = "E-Mail", te = "Name des/der Karteninhaber/in", ae = "Kartendaten", ie = "Vollständiger Name", re = "MM / JJ", se = "Das Fenster nicht schließen", ne = { pay: "ZAHLEN", submit: "ABSENDEN", getPlan: "MEINEN PLAN ERHALTEN", donate: "spenden", book: "jetzt buchen", order: "jetzt bestellen" }, oe = { emailSuggestion: "Meinten Sie {{email}}?", emailInvalid: "Ihre E-Mail-Adresse ist nicht korrekt", cardExpiryInvalid: "Das Ablaufdatum Ihrer Karte liegt in der Vergangenheit", cardExpiryFormat: "Das Ablaufdatum Ihrer Karte ist unvollständig", cardSecurityFormat: "Der Sicherheitscode Ihrer Karte ist unvollständig", nameRequired: "Gib deinen Namen genau so ein, wie er auf deiner Karte steht", cardNumberInvalid: "Die Kartennummer ist unvollständig" }, le = {
693
+ const ee = "E-Mail", te = "Name des/der Karteninhaber/in", ae = "Kartendaten", ie = "Vollständiger Name", re = "MM / JJ", ne = "Das Fenster nicht schließen", se = { pay: "ZAHLEN", submit: "ABSENDEN", getPlan: "MEINEN PLAN ERHALTEN", donate: "spenden", book: "jetzt buchen", order: "jetzt bestellen" }, oe = { emailSuggestion: "Meinten Sie {{email}}?", emailInvalid: "Ihre E-Mail-Adresse ist nicht korrekt", cardExpiryInvalid: "Das Ablaufdatum Ihrer Karte liegt in der Vergangenheit", cardExpiryFormat: "Das Ablaufdatum Ihrer Karte ist unvollständig", cardSecurityFormat: "Der Sicherheitscode Ihrer Karte ist unvollständig", nameRequired: "Gib deinen Namen genau so ein, wie er auf deiner Karte steht", cardNumberInvalid: "Die Kartennummer ist unvollständig" }, le = {
694
694
  email: ee,
695
695
  cardholderNameLabel: te,
696
696
  cardInformation: ae,
697
697
  cardholderNamePlaceholder: ie,
698
698
  cardExpiry: re,
699
- loading: se,
700
- buttonTexts: ne,
699
+ loading: ne,
700
+ buttonTexts: se,
701
701
  validation: oe
702
702
  }, ce = "Email", de = "Cardholder name", he = "Card information", me = "Full name on card", ue = "MM / YY", pe = "Do not close the window", fe = { pay: "PAY", submit: "SUBMIT", getPlan: "GET MY PLAN", donate: "DONATE", book: "BOOK NOW", order: "ORDER NOW" }, ge = { emailSuggestion: "Did you mean {{email}}?", emailInvalid: "Your email is not correct", cardExpiryInvalid: "Your card's expiration date is in the past", cardExpiryFormat: "Your card’s expiration date is incomplete", cardSecurityFormat: "Your card’s security code is incomplete", nameRequired: "Please enter the name as it appears on your card", cardNumberInvalid: "Your card number is invalid" }, ye = {
703
703
  email: ce,
@@ -744,14 +744,14 @@ const ee = "E-Mail", te = "Name des/der Karteninhaber/in", ae = "Kartendaten", i
744
744
  loading: Je,
745
745
  buttonTexts: We,
746
746
  validation: Xe
747
- }, et = "E-mail", tt = "Nome do titular do cartão", at = "Informações do cartão", it = "Nome completo no cartão", rt = "MM / AA", st = "Por favor, não feche esta janela", nt = { pay: "PAGAR", submit: "ENVIAR", getPlan: "OBTER MEU PLANO", donate: "DOAR", book: "RESERVAR AGORA", order: "FAZER PEDIDO" }, ot = { emailSuggestion: "Você quis dizer {{email}}?", emailInvalid: "O seu endereço de e-mail não é válido", cardExpiryInvalid: "A data de validade do seu cartão está no passado", cardExpiryFormat: "A data de validade do seu cartão está incompleta", cardSecurityFormat: "O código de segurança do seu cartão está incompleto", nameRequired: "Por favor, insira o nome conforme aparece no cartão", cardNumberInvalid: "O número do seu cartão é inválido" }, lt = {
747
+ }, et = "E-mail", tt = "Nome do titular do cartão", at = "Informações do cartão", it = "Nome completo no cartão", rt = "MM / AA", nt = "Por favor, não feche esta janela", st = { pay: "PAGAR", submit: "ENVIAR", getPlan: "OBTER MEU PLANO", donate: "DOAR", book: "RESERVAR AGORA", order: "FAZER PEDIDO" }, ot = { emailSuggestion: "Você quis dizer {{email}}?", emailInvalid: "O seu endereço de e-mail não é válido", cardExpiryInvalid: "A data de validade do seu cartão está no passado", cardExpiryFormat: "A data de validade do seu cartão está incompleta", cardSecurityFormat: "O código de segurança do seu cartão está incompleto", nameRequired: "Por favor, insira o nome conforme aparece no cartão", cardNumberInvalid: "O número do seu cartão é inválido" }, lt = {
748
748
  email: et,
749
749
  cardholderNameLabel: tt,
750
750
  cardInformation: at,
751
751
  cardholderNamePlaceholder: it,
752
752
  cardExpiry: rt,
753
- loading: st,
754
- buttonTexts: nt,
753
+ loading: nt,
754
+ buttonTexts: st,
755
755
  validation: ot
756
756
  }, ct = "E-posta", dt = "Kart sahibinin adı", ht = "Kart bilgileri", mt = "Kart üzerindeki tam ad", ut = "AA / YY", pt = "Lütfen pencereyi kapatmayın", ft = { pay: "ÖDE", submit: "GÖNDER", getPlan: "PLANIMI AL", donate: "BAĞIŞ YAP", book: "ŞİMDİ REZERVASYON YAP", order: "ŞİMDİ SİPARİŞ VER" }, gt = { emailSuggestion: "{{email}} demek mi istediniz?", emailInvalid: "E-posta adresiniz geçerli değil", cardExpiryInvalid: "Kartınızın son kullanma tarihi geçmiş", cardExpiryFormat: "Kartınızın son kullanma tarihi eksik", cardSecurityFormat: "Kartınızın güvenlik kodu eksik", nameRequired: "Lütfen kart üzerindeki ismi girin", cardNumberInvalid: "Kart numaranız geçersiz" }, yt = {
757
757
  email: ct,
@@ -821,7 +821,7 @@ const A = [
821
821
  "it",
822
822
  "tr"
823
823
  ], Et = "en";
824
- function bt(n) {
824
+ function bt(s) {
825
825
  const e = new vt(), a = (() => {
826
826
  const o = navigator?.language?.split("-")[0]?.toLowerCase();
827
827
  return A.includes(o) ? o : Et;
@@ -842,19 +842,19 @@ function bt(n) {
842
842
  };
843
843
  }
844
844
  const Ct = bt(), I = () => {
845
- const { translate: n, getLocale: e, setLocale: t, subscribe: a } = Ct;
845
+ const { translate: s, getLocale: e, setLocale: t, subscribe: a } = Ct;
846
846
  return {
847
- t: n,
848
- translate: n,
847
+ t: s,
848
+ translate: s,
849
849
  locale: e(),
850
850
  setLocale: t,
851
851
  subscribe: a
852
852
  };
853
- }, St = ({ fontFamily: n }) => {
854
- if (!n)
853
+ }, St = ({ fontFamily: s }) => {
854
+ if (!s)
855
855
  return { cleanup: () => {
856
856
  } };
857
- const e = n.replace(/\s+/g, "+"), t = `https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`, a = [...document.head.querySelectorAll("link")].filter(
857
+ const e = s.replace(/\s+/g, "+"), t = `https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`, a = [...document.head.querySelectorAll("link")].filter(
858
858
  (o) => o.href.includes("fonts.googleapis.com/css2") && o.rel === "stylesheet"
859
859
  ), i = document.createElement("link");
860
860
  i.rel = "stylesheet", i.href = t;
@@ -874,17 +874,17 @@ const Ct = bt(), I = () => {
874
874
  document.head.contains(i) && document.head.removeChild(i);
875
875
  } };
876
876
  }, xt = ({
877
- scriptSrc: n,
877
+ scriptSrc: s,
878
878
  async: e = !1
879
879
  }) => {
880
- if (!n)
880
+ if (!s)
881
881
  return {
882
882
  cleanup: () => {
883
883
  },
884
884
  isLoaded: Promise.resolve(!1)
885
885
  };
886
886
  if ([...document.head.querySelectorAll("script")].filter(
887
- (s) => s.src === n
887
+ (n) => n.src === s
888
888
  ).length > 0)
889
889
  return {
890
890
  cleanup: () => {
@@ -892,10 +892,10 @@ const Ct = bt(), I = () => {
892
892
  isLoaded: Promise.resolve(!0)
893
893
  };
894
894
  const a = document.createElement("script");
895
- a.src = n, a.async = e;
896
- const i = new Promise((s, o) => {
897
- a.onload = () => s(!0), a.onerror = () => {
898
- console.error(`Failed to load script: ${n}`), o(new Error(`Failed to load script: ${n}`));
895
+ a.src = s, a.async = e;
896
+ const i = new Promise((n, o) => {
897
+ a.onload = () => n(!0), a.onerror = () => {
898
+ console.error(`Failed to load script: ${s}`), o(new Error(`Failed to load script: ${s}`));
899
899
  };
900
900
  });
901
901
  return document.head.appendChild(a), {
@@ -904,12 +904,12 @@ const Ct = bt(), I = () => {
904
904
  },
905
905
  isLoaded: i
906
906
  };
907
- }, w = (n) => Object.entries(n).map(([e, t]) => {
907
+ }, w = (s) => Object.entries(s).map(([e, t]) => {
908
908
  const a = e.replace(/([A-Z])/g, "-$1").toLowerCase(), i = typeof t == "number" ? `${t}px` : t;
909
909
  return `${a}: ${i}`;
910
910
  }).join("; ");
911
- function Ft(n) {
912
- if (!n)
911
+ function Ft(s) {
912
+ if (!s)
913
913
  return {
914
914
  formContainerStyle: {},
915
915
  baseStyles: {},
@@ -928,24 +928,24 @@ function Ft(n) {
928
928
  background: "#fff",
929
929
  border: "none",
930
930
  outline: "none",
931
- fontSize: `${n.styles.fontSize}px`,
931
+ fontSize: `${s.styles.fontSize}px`,
932
932
  lineHeight: 30,
933
933
  boxSizing: "border-box",
934
934
  padding: "0px 12px",
935
935
  height: 36,
936
936
  width: "100%",
937
- fontFamily: `${n.styles.fontFamily}, sans-serif`
937
+ fontFamily: `${s.styles.fontFamily}, sans-serif`
938
938
  }, t = {
939
939
  color: "#717173",
940
940
  opacity: "0.3",
941
- fontFamily: `${n.styles.fontFamily}, sans-serif`
941
+ fontFamily: `${s.styles.fontFamily}, sans-serif`
942
942
  }, a = {
943
943
  color: "#dc2727"
944
944
  }, i = {
945
945
  outline: 0
946
946
  }, r = {
947
- fontFamily: `${n.styles.fontFamily}, sans-serif`
948
- }, s = {
947
+ fontFamily: `${s.styles.fontFamily}, sans-serif`
948
+ }, n = {
949
949
  base: w(e),
950
950
  error: w(a),
951
951
  focus: w(i),
@@ -957,7 +957,7 @@ function Ft(n) {
957
957
  placeholderStyles: t,
958
958
  errorStyles: a,
959
959
  focusStyles: i,
960
- inputStyles: s
960
+ inputStyles: n
961
961
  };
962
962
  }
963
963
  class h {
@@ -1105,8 +1105,8 @@ class S {
1105
1105
  * Create a label element
1106
1106
  */
1107
1107
  static createLabel(e, t = "", a = [], i = {}) {
1108
- const r = t ? { for: t, ...i } : i, s = new h("label", a, r);
1109
- return s.setText(e), s;
1108
+ const r = t ? { for: t, ...i } : i, n = new h("label", a, r);
1109
+ return n.setText(e), n;
1110
1110
  }
1111
1111
  /**
1112
1112
  * Create a select element
@@ -1114,8 +1114,8 @@ class S {
1114
1114
  static createSelect(e, t = [], a = {}) {
1115
1115
  const i = new h("select", t, a);
1116
1116
  return e.forEach((r) => {
1117
- const s = document.createElement("option");
1118
- s.value = r.value, s.textContent = r.text, r.selected && (s.selected = !0), i.getElement().appendChild(s);
1117
+ const n = document.createElement("option");
1118
+ n.value = r.value, n.textContent = r.text, r.selected && (n.selected = !0), i.getElement().appendChild(n);
1119
1119
  }), i;
1120
1120
  }
1121
1121
  /**
@@ -1139,12 +1139,12 @@ class wt extends h {
1139
1139
  i.getElement().innerHTML = this.createAlertCircleSVG();
1140
1140
  const r = S.createDiv([
1141
1141
  "error-alert-text-container"
1142
- ]), s = new h("h4", [
1142
+ ]), n = new h("h4", [
1143
1143
  "error-alert-title"
1144
1144
  ]);
1145
- s.setText("Checkout Error"), this.messageComponent = new h("p", [
1145
+ n.setText("Checkout Error"), this.messageComponent = new h("p", [
1146
1146
  "error-alert-message"
1147
- ]), this.messageComponent.setText(e.message || "Bad request"), r.appendChild(s), r.appendChild(this.messageComponent), a.appendChild(i), a.appendChild(r), t.appendChild(a), this.appendChild(t);
1147
+ ]), this.messageComponent.setText(e.message || "Bad request"), r.appendChild(n), r.appendChild(this.messageComponent), a.appendChild(i), a.appendChild(r), t.appendChild(a), this.appendChild(t);
1148
1148
  }
1149
1149
  createAlertCircleSVG() {
1150
1150
  return `
@@ -1252,7 +1252,7 @@ class Mt {
1252
1252
  onChange: a,
1253
1253
  onBlur: i,
1254
1254
  error: r,
1255
- errorMsg: s,
1255
+ errorMsg: n,
1256
1256
  checkoutProfile: o,
1257
1257
  translationFunc: l,
1258
1258
  autocomplete: c = "cc-name"
@@ -1261,7 +1261,7 @@ class Mt {
1261
1261
  name: "name",
1262
1262
  label: l("cardholderNameLabel"),
1263
1263
  error: r,
1264
- errorMsg: s,
1264
+ errorMsg: n,
1265
1265
  styles: {
1266
1266
  color: o.styles.textColor,
1267
1267
  borderRadius: `${o.styles.borderRadius}px`,
@@ -1345,12 +1345,12 @@ class At extends h {
1345
1345
  i.id = "card-element", i.className = `card-element ${e.isFocused ? "card-element-focus" : ""}`, i.style.zIndex = e.isFocused ? "2" : "0";
1346
1346
  const r = document.createElement("div");
1347
1347
  if (r.className = "cards-position", e.cardType === "unknown")
1348
- F.forEach((s) => {
1349
- r.appendChild(this.createCardIcon(s));
1348
+ F.forEach((n) => {
1349
+ r.appendChild(this.createCardIcon(n));
1350
1350
  });
1351
1351
  else {
1352
- const s = F.find((o) => o.type === e.cardType);
1353
- s && r.appendChild(this.createCardIcon(s));
1352
+ const n = F.find((o) => o.type === e.cardType);
1353
+ n && r.appendChild(this.createCardIcon(n));
1354
1354
  }
1355
1355
  i.appendChild(r), a.appendChild(i), this.getElement().appendChild(a);
1356
1356
  }
@@ -1404,7 +1404,7 @@ class Pt extends h {
1404
1404
  isLoading: a,
1405
1405
  isFocused: i,
1406
1406
  isCvvFocused: r,
1407
- isCcValid: s,
1407
+ isCcValid: n,
1408
1408
  isCvvValid: o,
1409
1409
  cardType: l,
1410
1410
  cardExpiry: c,
@@ -1462,7 +1462,7 @@ class Pt extends h {
1462
1462
  },
1463
1463
  isLoading: a,
1464
1464
  isFocused: r
1465
- }), b.appendChild(this.cardCvv.getElement()), p.appendChild(this.cardExpiry.getElement()), p.appendChild(b), f.appendChild(p), this.getElement().appendChild(f), i && !s) {
1465
+ }), b.appendChild(this.cardCvv.getElement()), p.appendChild(this.cardExpiry.getElement()), p.appendChild(b), f.appendChild(p), this.getElement().appendChild(f), i && !n) {
1466
1466
  const v = new x({
1467
1467
  text: m("validation.cardNumberInvalid")
1468
1468
  });
@@ -1528,7 +1528,7 @@ class Dt {
1528
1528
  onChange: a,
1529
1529
  onBlur: i,
1530
1530
  error: r,
1531
- errorMsg: s,
1531
+ errorMsg: n,
1532
1532
  checkoutProfile: o,
1533
1533
  translationFunc: l,
1534
1534
  autocomplete: c = "email"
@@ -1537,7 +1537,7 @@ class Dt {
1537
1537
  name: "email",
1538
1538
  label: l("email"),
1539
1539
  error: r,
1540
- errorMsg: s,
1540
+ errorMsg: n,
1541
1541
  styles: {
1542
1542
  color: o.styles.textColor,
1543
1543
  borderRadius: `${o.styles.borderRadius}px`,
@@ -1617,14 +1617,14 @@ class Vt extends h {
1617
1617
  }
1618
1618
  const r = Object.entries(
1619
1619
  t.additionalPaymentMethods
1620
- ).filter(([, s]) => s.enabled).sort((s, o) => s[1].order - o[1].order);
1620
+ ).filter(([, n]) => n.enabled).sort((n, o) => n[1].order - o[1].order);
1621
1621
  if (r.length === 0) {
1622
1622
  super("div", ["payment-methods"]), this.paymentMethods = /* @__PURE__ */ new Map(), this.getElement().style.display = "none";
1623
1623
  return;
1624
1624
  }
1625
1625
  super("div", ["payment-methods"]), this.paymentMethods = /* @__PURE__ */ new Map();
1626
- for (const [s] of r)
1627
- switch (s) {
1626
+ for (const [n] of r)
1627
+ switch (n) {
1628
1628
  case "paypal": {
1629
1629
  if (i) {
1630
1630
  const o = new Rt({
@@ -1746,18 +1746,22 @@ class Ut extends h {
1746
1746
  if (!e.isLoading)
1747
1747
  if (this.setLoadingState(!1), e.checkoutProfile)
1748
1748
  try {
1749
- if (e.checkoutProfile.styles?.fontFamily) {
1750
- const { cleanup: t } = St({
1751
- fontFamily: e.checkoutProfile.styles.fontFamily
1752
- });
1753
- this.fontCleanup = t;
1754
- }
1749
+ if (e.checkoutProfile.styles?.fontFamily)
1750
+ try {
1751
+ const { cleanup: t } = St({
1752
+ fontFamily: e.checkoutProfile.styles.fontFamily
1753
+ });
1754
+ this.fontCleanup = t;
1755
+ } catch (t) {
1756
+ console.error("Error loading Google Font:", t);
1757
+ }
1755
1758
  this.renderFormComponents(), this.initializeTokenExIframe().catch((t) => {
1756
- console.error("Error initializing TokenEx iframe:", t), this.setErrorMessage("Failed to initialize payment form");
1759
+ console.error("Error initializing TokenEx iframe:", t);
1757
1760
  });
1758
- } catch {
1759
- const t = e.error || "Failed to load checkout profile data";
1760
- this.setErrorMessage(t);
1761
+ } catch (t) {
1762
+ console.error("Error in profile state change:", t);
1763
+ const a = e.error || "Failed to load checkout profile data";
1764
+ this.setErrorMessage(a);
1761
1765
  }
1762
1766
  else e.error && (console.error("NO profile found", e.error), this.setErrorMessage(e.error));
1763
1767
  };
@@ -1766,36 +1770,55 @@ class Ut extends h {
1766
1770
  }
1767
1771
  initializeTokenExIframe = async () => {
1768
1772
  const e = this.checkoutProfile.getState();
1769
- if (e.checkoutProfile && !this.iframeHook)
1773
+ if (!e.checkoutProfile) {
1774
+ console.error("Cannot initialize iframe: No checkout profile available");
1775
+ return;
1776
+ }
1777
+ if (this.iframeHook) {
1778
+ console.log("TokenEx iframe already initialized, skipping");
1779
+ return;
1780
+ }
1781
+ try {
1782
+ if (!("TokenEx" in globalThis))
1783
+ return console.log("TokenEx not available yet, retrying..."), new Promise((n) => {
1784
+ setTimeout(() => {
1785
+ this.initializeTokenExIframe().then(n);
1786
+ }, 500);
1787
+ });
1788
+ const { inputStyles: t, formContainerStyle: a } = Ft(
1789
+ e.checkoutProfile
1790
+ );
1791
+ this.applyFormContainerStyles(a);
1770
1792
  try {
1771
- if (!("TokenEx" in globalThis)) {
1772
- setTimeout(() => this.initializeTokenExIframe(), 500);
1773
- return;
1774
- }
1775
- const { inputStyles: t, formContainerStyle: a } = Ft(
1776
- e.checkoutProfile
1777
- );
1778
- this.applyFormContainerStyles(a), this.cardSection || (this.createCardSection(e.checkoutProfile), console.log("✅ Card element check before iframe initialization:", {
1793
+ this.cardSection || (this.createCardSection(e.checkoutProfile), console.log(" Card element check before iframe initialization:", {
1779
1794
  cardElementExists: !!document.getElementById("card-element"),
1780
1795
  cvvElementExists: !!document.getElementById("card-cvv-element"),
1781
1796
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1782
- })), this.iframeHook = Q({
1783
- apiKey: this.options.apiKey,
1784
- checkoutProfile: e.checkoutProfile,
1785
- inputStyles: t,
1786
- setFormData: (i) => {
1787
- this.formManager.setFormData(i);
1788
- },
1789
- environment: this.options.environment
1790
- }), this.iframeHook?.subscribe(this.handleIframeStateChange), await this.iframeHook?.initialize(), console.log("✅ TokenEx iframe initialized successfully:", {
1791
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
1792
- });
1793
- } catch (t) {
1794
- console.error("Failed to initialize payment form:", t), this.setErrorMessage("Failed to initialize payment form");
1797
+ }));
1798
+ } catch (n) {
1799
+ console.error("Failed to create card section:", n);
1795
1800
  }
1796
- else e.checkoutProfile || this.setErrorMessage(
1797
- "Cannot initialize iframe: No checkout profile available"
1798
- );
1801
+ const i = document.getElementById("card-element"), r = document.getElementById("card-cvv-element");
1802
+ if (!i || !r) {
1803
+ console.error(
1804
+ "Card elements not found, cannot initialize TokenEx iframe"
1805
+ );
1806
+ return;
1807
+ }
1808
+ this.iframeHook = Q({
1809
+ apiKey: this.options.apiKey,
1810
+ checkoutProfile: e.checkoutProfile,
1811
+ inputStyles: t,
1812
+ setFormData: (n) => {
1813
+ this.formManager.setFormData(n);
1814
+ },
1815
+ environment: this.options.environment
1816
+ }), this.iframeHook?.subscribe(this.handleIframeStateChange), await this.iframeHook?.initialize(), console.log("✅ TokenEx iframe initialized successfully:", {
1817
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
1818
+ });
1819
+ } catch (t) {
1820
+ throw console.error("Failed to initialize payment form:", t), t;
1821
+ }
1799
1822
  };
1800
1823
  handleIframeStateChange = (e) => {
1801
1824
  this.cardSection && (this.cardSection.updateCardNumberValidation(
@@ -1840,10 +1863,10 @@ class Ut extends h {
1840
1863
  this.cardholderSection.getElement()
1841
1864
  );
1842
1865
  else if (this.emailField) {
1843
- const s = this.emailField.getElement().nextSibling;
1844
- s ? this.element.insertBefore(
1866
+ const n = this.emailField.getElement().nextSibling;
1867
+ n ? this.element.insertBefore(
1845
1868
  this.cardSection.getElement(),
1846
- s
1869
+ n
1847
1870
  ) : this.element.appendChild(this.cardSection.getElement());
1848
1871
  } else
1849
1872
  this.element.appendChild(this.cardSection.getElement()), console.warn(
@@ -1867,68 +1890,114 @@ class Ut extends h {
1867
1890
  });
1868
1891
  }
1869
1892
  renderFormComponents() {
1870
- if (!this.emailField) {
1871
- console.log("🏗️ Starting form components rendering:", {
1872
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
1873
- });
1874
- try {
1875
- const e = this.checkoutProfile.getState();
1876
- if (!e.checkoutProfile) {
1877
- this.setErrorMessage("Failed to load checkout configuration");
1878
- return;
1879
- }
1880
- this.createPaymentMethods(e.checkoutProfile), this.createEmailField(e.checkoutProfile), this.createCardholderSection(e.checkoutProfile), this.createSubmitButton(e.checkoutProfile), console.log("✅ Form components rendered successfully:", {
1881
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
1882
- });
1883
- } catch (e) {
1884
- console.error("Failed to render form components:", e), this.setErrorMessage("Failed to render checkout form components");
1885
- }
1893
+ if (this.emailField)
1894
+ return;
1895
+ console.log("🏗️ Starting form components rendering:", {
1896
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
1897
+ });
1898
+ const e = this.checkoutProfile.getState();
1899
+ if (!e.checkoutProfile) {
1900
+ this.setErrorMessage("Failed to load checkout configuration");
1901
+ return;
1902
+ }
1903
+ try {
1904
+ this.createPaymentMethods(e.checkoutProfile);
1905
+ } catch (t) {
1906
+ console.error("Failed to create payment methods:", t);
1886
1907
  }
1908
+ try {
1909
+ this.createEmailField(e.checkoutProfile);
1910
+ } catch (t) {
1911
+ console.error("Failed to create email field:", t);
1912
+ }
1913
+ try {
1914
+ this.createCardholderSection(e.checkoutProfile);
1915
+ } catch (t) {
1916
+ console.error("Failed to create cardholder section:", t);
1917
+ }
1918
+ try {
1919
+ this.createSubmitButton(e.checkoutProfile);
1920
+ } catch (t) {
1921
+ console.error("Failed to create submit button:", t);
1922
+ }
1923
+ console.log("✅ Form components rendered successfully:", {
1924
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1925
+ components: {
1926
+ paymentMethods: !!this.paymentMethods,
1927
+ emailField: !!this.emailField,
1928
+ cardholderSection: !!this.cardholderSection,
1929
+ submitButton: !!this.submitButton
1930
+ }
1931
+ });
1887
1932
  }
1888
1933
  createPaymentMethods(e) {
1889
- if (!e?.additionalPaymentMethods || Object.entries(
1890
- e.additionalPaymentMethods
1891
- ).filter(([, i]) => i.enabled).length === 0)
1892
- return;
1893
- const { formData: a } = this._getFormStateData();
1894
- this.paymentMethods = new Vt({
1895
- checkoutProfile: e,
1896
- formData: a,
1897
- onPaypalSubmit: async () => {
1898
- await this.handlePaypalSubmit();
1934
+ try {
1935
+ if (!e?.additionalPaymentMethods) {
1936
+ console.log(
1937
+ "No additional payment methods configured, skipping component"
1938
+ );
1939
+ return;
1899
1940
  }
1900
- }), this.appendChild(this.paymentMethods);
1941
+ if (Object.entries(
1942
+ e.additionalPaymentMethods
1943
+ ).filter(([, i]) => i.enabled).length === 0) {
1944
+ console.log("No enabled payment methods found, skipping component");
1945
+ return;
1946
+ }
1947
+ const { formData: a } = this._getFormStateData();
1948
+ this.paymentMethods = new Vt({
1949
+ checkoutProfile: e,
1950
+ formData: a,
1951
+ onPaypalSubmit: async () => {
1952
+ await this.handlePaypalSubmit();
1953
+ }
1954
+ }), this.appendChild(this.paymentMethods), console.log("✅ Payment methods created successfully");
1955
+ } catch (t) {
1956
+ throw console.error("Error creating payment methods:", t), t;
1957
+ }
1901
1958
  }
1902
1959
  createEmailField(e) {
1903
- const { formData: t, errors: a, touched: i } = this._getFormStateData();
1904
- this.emailField = new Dt({
1905
- value: t.email,
1906
- onChange: this.handleChange,
1907
- onBlur: this.handleBlur,
1908
- error: !!(a.email && i.email),
1909
- errorMsg: a.email,
1910
- checkoutProfile: e,
1911
- translationFunc: this.translation.t
1912
- }), this.element.appendChild(this.emailField.getElement());
1960
+ try {
1961
+ const { formData: t, errors: a, touched: i } = this._getFormStateData();
1962
+ this.emailField = new Dt({
1963
+ value: t.email,
1964
+ onChange: this.handleChange,
1965
+ onBlur: this.handleBlur,
1966
+ error: !!(a.email && i.email),
1967
+ errorMsg: a.email,
1968
+ checkoutProfile: e,
1969
+ translationFunc: this.translation.t
1970
+ }), this.element.appendChild(this.emailField.getElement()), console.log("✅ Email field created successfully");
1971
+ } catch (t) {
1972
+ throw console.error("Error creating email field:", t), t;
1973
+ }
1913
1974
  }
1914
1975
  createCardholderSection(e) {
1915
- const { formData: t, errors: a, touched: i } = this._getFormStateData();
1916
- this.cardholderSection = new Mt({
1917
- value: t.name,
1918
- onChange: this.handleChange,
1919
- onBlur: this.handleBlur,
1920
- error: !!(a.name && i.name),
1921
- errorMsg: a.name,
1922
- checkoutProfile: e,
1923
- translationFunc: this.translation.t
1924
- }), this.element.appendChild(this.cardholderSection.getElement());
1976
+ try {
1977
+ const { formData: t, errors: a, touched: i } = this._getFormStateData();
1978
+ this.cardholderSection = new Mt({
1979
+ value: t.name,
1980
+ onChange: this.handleChange,
1981
+ onBlur: this.handleBlur,
1982
+ error: !!(a.name && i.name),
1983
+ errorMsg: a.name,
1984
+ checkoutProfile: e,
1985
+ translationFunc: this.translation.t
1986
+ }), this.element.appendChild(this.cardholderSection.getElement()), console.log("✅ Cardholder section created successfully");
1987
+ } catch (t) {
1988
+ throw console.error("Error creating cardholder section:", t), t;
1989
+ }
1925
1990
  }
1926
1991
  createSubmitButton(e) {
1927
- this.submitButton = new Ht({
1928
- disabled: this.isFormDisabled(),
1929
- checkoutProfile: e,
1930
- translationFunc: this.translation.t
1931
- }), this.element.appendChild(this.submitButton.getElement());
1992
+ try {
1993
+ this.submitButton = new Ht({
1994
+ disabled: this.isFormDisabled(),
1995
+ checkoutProfile: e,
1996
+ translationFunc: this.translation.t
1997
+ }), this.element.appendChild(this.submitButton.getElement()), console.log("✅ Submit button created successfully");
1998
+ } catch (t) {
1999
+ throw console.error("Error creating submit button:", t), t;
2000
+ }
1932
2001
  }
1933
2002
  handleChange = (e) => {
1934
2003
  const t = e.target, { name: a, value: i } = t;
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odus/checkout",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "displayName": "Odus Checkout SDK",
5
5
  "keywords": [
6
6
  "odus",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odus/checkout",
3
- "version": "0.5.4",
3
+ "version": "0.5.5",
4
4
  "displayName": "Odus Checkout SDK",
5
5
  "keywords": [
6
6
  "odus",