@payment-kit-js/vanilla 0.5.14 → 0.5.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/{airwallex-apple-pay-adapter-CHAnLP_x.mjs → airwallex-apple-pay-adapter-CPz54c9e.mjs} +8 -2
  2. package/dist/airwallex-apple-pay-adapter-CPz54c9e.mjs.map +1 -0
  3. package/dist/{airwallex-apple-pay-adapter-Bb0CreWN.d.mts → airwallex-apple-pay-adapter-CnnZ7VL6.d.mts} +3 -1
  4. package/dist/airwallex-apple-pay-adapter-CnnZ7VL6.d.mts.map +1 -0
  5. package/dist/{airwallex-google-pay-adapter-C8JTp01q.mjs → airwallex-google-pay-adapter-BvlROwj_.mjs} +1 -1
  6. package/dist/{airwallex-google-pay-adapter-C8JTp01q.mjs.map → airwallex-google-pay-adapter-BvlROwj_.mjs.map} +1 -1
  7. package/dist/{airwallex-google-pay-adapter-adaDktQM.d.mts → airwallex-google-pay-adapter-D-AxVLLq.d.mts} +1 -1
  8. package/dist/{airwallex-google-pay-adapter-adaDktQM.d.mts.map → airwallex-google-pay-adapter-D-AxVLLq.d.mts.map} +1 -1
  9. package/dist/analytics-Blvs2DW7.mjs +333 -0
  10. package/dist/analytics-Blvs2DW7.mjs.map +1 -0
  11. package/dist/{bnpl-shared-B-en2sPr.d.mts → bnpl-shared-BQwCBD45.d.mts} +2 -2
  12. package/dist/{bnpl-shared-B-en2sPr.d.mts.map → bnpl-shared-BQwCBD45.d.mts.map} +1 -1
  13. package/dist/{bnpl-shared-CEAXTL3Q.mjs → bnpl-shared-DGs1YzS9.mjs} +2 -2
  14. package/dist/{bnpl-shared-CEAXTL3Q.mjs.map → bnpl-shared-DGs1YzS9.mjs.map} +1 -1
  15. package/dist/cdn/paymentkit.js +82 -17
  16. package/dist/cdn/paymentkit.js.map +2 -2
  17. package/dist/cdn/paymentkit.min.js +9 -9
  18. package/dist/cdn/paymentkit.min.js.map +3 -3
  19. package/dist/{connect-card-Cra_F1cC.d.mts → connect-card-CZhzK_Tp.d.mts} +1 -1
  20. package/dist/{connect-card-Cra_F1cC.d.mts.map → connect-card-CZhzK_Tp.d.mts.map} +1 -1
  21. package/dist/{connect-card-D3Je4V7p.mjs → connect-card-kXLdSNTL.mjs} +2 -2
  22. package/dist/{connect-card-D3Je4V7p.mjs.map → connect-card-kXLdSNTL.mjs.map} +1 -1
  23. package/dist/{connect-tunnel-x-BhVAej5Q.mjs → connect-tunnel-x-5XOct5Tm.mjs} +2 -2
  24. package/dist/{connect-tunnel-x-BhVAej5Q.mjs.map → connect-tunnel-x-5XOct5Tm.mjs.map} +1 -1
  25. package/dist/{connect-tunnel-x-Wh-JG1O5.d.mts → connect-tunnel-x-BKtMfoGh.d.mts} +1 -1
  26. package/dist/{connect-tunnel-x-Wh-JG1O5.d.mts.map → connect-tunnel-x-BKtMfoGh.d.mts.map} +1 -1
  27. package/dist/index.d.mts +3 -3
  28. package/dist/index.mjs +5 -334
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/{next-action-handlers-BZs04hYb.mjs → next-action-handlers-CLOt1wzO.mjs} +1 -1
  31. package/dist/{next-action-handlers-BZs04hYb.mjs.map → next-action-handlers-CLOt1wzO.mjs.map} +1 -1
  32. package/dist/payment-methods/affirm.d.mts +4 -4
  33. package/dist/payment-methods/affirm.mjs +2 -2
  34. package/dist/payment-methods/afterpay.d.mts +4 -4
  35. package/dist/payment-methods/afterpay.mjs +2 -2
  36. package/dist/payment-methods/airwallex-apple-pay-adapter.d.mts +1 -1
  37. package/dist/payment-methods/airwallex-apple-pay-adapter.mjs +1 -1
  38. package/dist/payment-methods/airwallex-google-pay-adapter.d.mts +1 -1
  39. package/dist/payment-methods/airwallex-google-pay-adapter.mjs +1 -1
  40. package/dist/payment-methods/apple-pay.d.mts +7 -5
  41. package/dist/payment-methods/apple-pay.d.mts.map +1 -1
  42. package/dist/payment-methods/apple-pay.mjs +9 -7
  43. package/dist/payment-methods/apple-pay.mjs.map +1 -1
  44. package/dist/payment-methods/bnpl-shared.d.mts +4 -4
  45. package/dist/payment-methods/bnpl-shared.mjs +2 -2
  46. package/dist/payment-methods/card.d.mts +3 -3
  47. package/dist/payment-methods/card.d.mts.map +1 -1
  48. package/dist/payment-methods/card.mjs +77 -18
  49. package/dist/payment-methods/card.mjs.map +1 -1
  50. package/dist/payment-methods/google-pay.d.mts +5 -5
  51. package/dist/payment-methods/google-pay.mjs +4 -4
  52. package/dist/payment-methods/klarna.d.mts +4 -4
  53. package/dist/payment-methods/klarna.mjs +2 -2
  54. package/dist/payment-methods/next-action-handlers.mjs +1 -1
  55. package/dist/payment-methods/paypal.d.mts +3 -3
  56. package/dist/payment-methods/paypal.mjs +1 -1
  57. package/dist/payment-methods/stripe-apple-pay-adapter.d.mts +1 -1
  58. package/dist/payment-methods/stripe-apple-pay-adapter.mjs +1 -1
  59. package/dist/payment-methods/stripe-google-pay-adapter.d.mts +1 -1
  60. package/dist/payment-methods/stripe-google-pay-adapter.mjs +1 -1
  61. package/dist/payment-methods/vgs-collect-loader.mjs +1 -1
  62. package/dist/penpal/connect-card.d.mts +1 -1
  63. package/dist/penpal/connect-card.mjs +2 -2
  64. package/dist/penpal/connect-tunnel-x.d.mts +1 -1
  65. package/dist/penpal/connect-tunnel-x.mjs +2 -2
  66. package/dist/{penpal-BFKeZTVz.mjs → penpal-CBrj43M5.mjs} +1 -1
  67. package/dist/{penpal-BFKeZTVz.mjs.map → penpal-CBrj43M5.mjs.map} +1 -1
  68. package/dist/{stripe-apple-pay-adapter-BLRjqgDf.mjs → stripe-apple-pay-adapter-7rF6xRIG.mjs} +1 -1
  69. package/dist/{stripe-apple-pay-adapter-BLRjqgDf.mjs.map → stripe-apple-pay-adapter-7rF6xRIG.mjs.map} +1 -1
  70. package/dist/{stripe-apple-pay-adapter-DcuGlQqQ.d.mts → stripe-apple-pay-adapter-D2OJRlAl.d.mts} +1 -1
  71. package/dist/{stripe-apple-pay-adapter-DcuGlQqQ.d.mts.map → stripe-apple-pay-adapter-D2OJRlAl.d.mts.map} +1 -1
  72. package/dist/{stripe-google-pay-adapter-BlQ2jVpE.d.mts → stripe-google-pay-adapter-B330fRiH.d.mts} +1 -1
  73. package/dist/{stripe-google-pay-adapter-BlQ2jVpE.d.mts.map → stripe-google-pay-adapter-B330fRiH.d.mts.map} +1 -1
  74. package/dist/{stripe-google-pay-adapter-CIkgjhw8.mjs → stripe-google-pay-adapter-B346KXt4.mjs} +1 -1
  75. package/dist/{stripe-google-pay-adapter-CIkgjhw8.mjs.map → stripe-google-pay-adapter-B346KXt4.mjs.map} +1 -1
  76. package/dist/{types-CQ8xbgoh.d.mts → types-B3mjYfOm.d.mts} +3 -3
  77. package/dist/{types-CQ8xbgoh.d.mts.map → types-B3mjYfOm.d.mts.map} +1 -1
  78. package/dist/{utils-B70Y8YcZ.mjs → utils-Dc6zwOe1.mjs} +1 -1
  79. package/dist/{utils-B70Y8YcZ.mjs.map → utils-Dc6zwOe1.mjs.map} +1 -1
  80. package/dist/{vgs-collect-loader-l5_Pnmhz.mjs → vgs-collect-loader-CTLSv4qv.mjs} +1 -1
  81. package/dist/{vgs-collect-loader-l5_Pnmhz.mjs.map → vgs-collect-loader-CTLSv4qv.mjs.map} +1 -1
  82. package/package.json +2 -2
  83. package/dist/airwallex-apple-pay-adapter-Bb0CreWN.d.mts.map +0 -1
  84. package/dist/airwallex-apple-pay-adapter-CHAnLP_x.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * PaymentKit.js v0.5.14
2
+ * PaymentKit.js v0.5.16
3
3
  * https://paymentkit.com
4
4
  *
5
5
  * @license MIT
@@ -42,7 +42,7 @@ var PaymentKit = (() => {
42
42
  });
43
43
 
44
44
  // package.json
45
- var version = "0.5.14";
45
+ var version = "0.5.16";
46
46
 
47
47
  // src/analytics/mock-adapter.ts
48
48
  var MockAnalyticsAdapter = class {
@@ -6878,6 +6878,8 @@ var PaymentKit = (() => {
6878
6878
  success: true,
6879
6879
  token: mockToken,
6880
6880
  payerEmail: "mock@example.com",
6881
+ payerFirstName: "Mock",
6882
+ payerLastName: "User",
6881
6883
  complete: (status) => console.log(`[MockApplePay:Airwallex] complete: ${status}`)
6882
6884
  };
6883
6885
  }
@@ -6903,8 +6905,8 @@ var PaymentKit = (() => {
6903
6905
  amount,
6904
6906
  type: "final"
6905
6907
  },
6906
- // Surface the payer's email so the backend can fill missing customer email.
6907
- requiredBillingContactFields: ["email"]
6908
+ // Surface the payer's email and name so the backend can fill missing customer info.
6909
+ requiredBillingContactFields: ["email", "name"]
6908
6910
  };
6909
6911
  return new Promise((resolve) => {
6910
6912
  try {
@@ -6948,6 +6950,8 @@ var PaymentKit = (() => {
6948
6950
  transactionIdentifier: payment.token.transactionIdentifier
6949
6951
  };
6950
6952
  const payerEmail = payment.billingContact?.emailAddress ?? payment.shippingContact?.emailAddress ?? void 0;
6953
+ const payerFirstName = payment.billingContact?.givenName ?? payment.shippingContact?.givenName ?? void 0;
6954
+ const payerLastName = payment.billingContact?.familyName ?? payment.shippingContact?.familyName ?? void 0;
6951
6955
  const complete = (status) => {
6952
6956
  console.log("[ApplePay:Airwallex] completing session with status:", status);
6953
6957
  const appleStatus = status === "success" ? STATUS_SUCCESS : STATUS_FAILURE;
@@ -6957,6 +6961,8 @@ var PaymentKit = (() => {
6957
6961
  success: true,
6958
6962
  token,
6959
6963
  payerEmail,
6964
+ payerFirstName,
6965
+ payerLastName,
6960
6966
  complete
6961
6967
  });
6962
6968
  };
@@ -7722,7 +7728,7 @@ var PaymentKit = (() => {
7722
7728
  checkoutRequestId
7723
7729
  );
7724
7730
  }
7725
- async function callAirwallexConfirmEndpoint(apiBaseUrl, secureToken, applePayToken, mockScenarioStr, checkoutRequestId, payerEmail) {
7731
+ async function callAirwallexConfirmEndpoint(apiBaseUrl, secureToken, applePayToken, mockScenarioStr, checkoutRequestId, payerEmail, payerFirstName, payerLastName) {
7726
7732
  const result = await apiCall(
7727
7733
  `${apiBaseUrl}/api/checkout/${secureToken}/airwallex/apple-pay/confirm`,
7728
7734
  {
@@ -7731,6 +7737,8 @@ var PaymentKit = (() => {
7731
7737
  body: JSON.stringify({
7732
7738
  apple_pay_token: applePayToken,
7733
7739
  payer_email: payerEmail,
7740
+ payer_first_name: payerFirstName,
7741
+ payer_last_name: payerLastName,
7734
7742
  mock_scenario: mockScenarioStr
7735
7743
  })
7736
7744
  },
@@ -7867,14 +7875,16 @@ var PaymentKit = (() => {
7867
7875
  }
7868
7876
  return { errors: { apple_pay: paymentResult.error || "Apple Pay failed" } };
7869
7877
  }
7870
- const { token, complete, payerEmail } = paymentResult;
7878
+ const { token, complete, payerEmail, payerFirstName, payerLastName } = paymentResult;
7871
7879
  let response = await callAirwallexConfirmEndpoint(
7872
7880
  apiBaseUrl,
7873
7881
  secureToken,
7874
7882
  token,
7875
7883
  mockScenarioStr,
7876
7884
  checkoutRequestId,
7877
- payerEmail
7885
+ payerEmail,
7886
+ payerFirstName,
7887
+ payerLastName
7878
7888
  );
7879
7889
  let userActionCount = 0;
7880
7890
  while (response.charge_status === "pending" && response.next_action && userActionCount < MAX_USER_ACTIONS) {
@@ -8643,16 +8653,24 @@ var PaymentKit = (() => {
8643
8653
  };
8644
8654
  return submitPayment;
8645
8655
  };
8656
+ var FETCH_COLLECT_TOKEN_TIMEOUT_MS = 1e4;
8646
8657
  var fetchCollectToken = async (apiBaseUrl, secureToken) => {
8647
- const resp = await fetch(`${apiBaseUrl}/api/card-setup-intents/${secureToken}/collect-token`, {
8648
- method: "POST",
8649
- headers: { "Content-Type": "application/json" }
8650
- });
8651
- if (!resp.ok) {
8652
- throw new Error(`Failed to get collect token: ${resp.status}`);
8658
+ const controller = new AbortController();
8659
+ const timeoutId = setTimeout(() => controller.abort(), FETCH_COLLECT_TOKEN_TIMEOUT_MS);
8660
+ try {
8661
+ const resp = await fetch(`${apiBaseUrl}/api/card-setup-intents/${secureToken}/collect-token`, {
8662
+ method: "POST",
8663
+ headers: { "Content-Type": "application/json" },
8664
+ signal: controller.signal
8665
+ });
8666
+ if (!resp.ok) {
8667
+ throw new Error(`Failed to get collect token: ${resp.status}`);
8668
+ }
8669
+ const data = await resp.json();
8670
+ return data.access_token;
8671
+ } finally {
8672
+ clearTimeout(timeoutId);
8653
8673
  }
8654
- const data = await resp.json();
8655
- return data.access_token;
8656
8674
  };
8657
8675
  var VGS_FIELD_MAP = {
8658
8676
  // Actual VGS CMP error keys (verified empirically)
@@ -8685,15 +8703,33 @@ var PaymentKit = (() => {
8685
8703
  return { errors, isSuccess: false };
8686
8704
  }
8687
8705
  let accessToken;
8706
+ const collectTokenStart = performance.now();
8688
8707
  try {
8689
8708
  accessToken = await fetchCollectToken(apiBaseUrl, secureToken);
8709
+ const collectTokenDuration = Math.round(performance.now() - collectTokenStart);
8710
+ AnalyticsService.capture("vgs_collect_token_timing", {
8711
+ checkout_session_id: secureToken,
8712
+ request_id: checkoutRequestId,
8713
+ duration_ms: collectTokenDuration,
8714
+ success: true
8715
+ });
8690
8716
  } catch (err) {
8717
+ const collectTokenDuration = Math.round(performance.now() - collectTokenStart);
8718
+ const isAbortError = err instanceof DOMException && err.name === "AbortError";
8719
+ AnalyticsService.capture("vgs_collect_token_timing", {
8720
+ checkout_session_id: secureToken,
8721
+ request_id: checkoutRequestId,
8722
+ duration_ms: collectTokenDuration,
8723
+ success: false,
8724
+ error_type: isAbortError ? "FETCH_TIMEOUT" : "FETCH_ERROR"
8725
+ });
8691
8726
  console.error(`${logPrefix} VGS auth token fetch failed:`, stringifyError(err));
8692
- errors.root = "Card authentication failed \u2014 please try again";
8727
+ errors.root = isAbortError ? "Card authentication timed out \u2014 please try again" : "Card authentication failed \u2014 please try again";
8693
8728
  return { errors, isSuccess: false };
8694
8729
  }
8695
8730
  let cardResult;
8696
- const VGS_CREATE_CARD_TIMEOUT_MS = 3e4;
8731
+ const VGS_CREATE_CARD_TIMEOUT_MS = 12e4;
8732
+ const createCardStart = performance.now();
8697
8733
  try {
8698
8734
  let createCardTimeoutId;
8699
8735
  cardResult = await Promise.race([
@@ -8711,10 +8747,25 @@ var PaymentKit = (() => {
8711
8747
  createCardTimeoutId = setTimeout(() => reject(new Error("VGS_TIMEOUT")), VGS_CREATE_CARD_TIMEOUT_MS);
8712
8748
  })
8713
8749
  ]).finally(() => clearTimeout(createCardTimeoutId));
8750
+ const createCardDuration = Math.round(performance.now() - createCardStart);
8751
+ AnalyticsService.capture("vgs_create_card_timing", {
8752
+ checkout_session_id: secureToken,
8753
+ request_id: checkoutRequestId,
8754
+ duration_ms: createCardDuration,
8755
+ success: true
8756
+ });
8714
8757
  } catch (err) {
8758
+ const createCardDuration = Math.round(performance.now() - createCardStart);
8715
8759
  const errStr = stringifyError(err);
8716
8760
  console.error(`${logPrefix} VGS createCard failed:`, errStr);
8717
8761
  if (err instanceof Error && err.message === "VGS_TIMEOUT") {
8762
+ AnalyticsService.capture("vgs_create_card_timing", {
8763
+ checkout_session_id: secureToken,
8764
+ request_id: checkoutRequestId,
8765
+ duration_ms: createCardDuration,
8766
+ success: false,
8767
+ error_type: "VGS_TIMEOUT"
8768
+ });
8718
8769
  errors.root = "Card processing timed out \u2014 please try again";
8719
8770
  return { errors, isSuccess: false };
8720
8771
  }
@@ -8728,9 +8779,23 @@ var PaymentKit = (() => {
8728
8779
  }
8729
8780
  }
8730
8781
  if (Object.keys(errors).length > 0) {
8782
+ AnalyticsService.capture("vgs_create_card_timing", {
8783
+ checkout_session_id: secureToken,
8784
+ request_id: checkoutRequestId,
8785
+ duration_ms: createCardDuration,
8786
+ success: false,
8787
+ error_type: "VGS_VALIDATION_ERROR"
8788
+ });
8731
8789
  return { errors, isSuccess: false };
8732
8790
  }
8733
8791
  }
8792
+ AnalyticsService.capture("vgs_create_card_timing", {
8793
+ checkout_session_id: secureToken,
8794
+ request_id: checkoutRequestId,
8795
+ duration_ms: createCardDuration,
8796
+ success: false,
8797
+ error_type: "VGS_ERROR"
8798
+ });
8734
8799
  errors.root = "Card validation failed \u2014 please check your card details and try again";
8735
8800
  return { errors, isSuccess: false };
8736
8801
  }