@zonos/elements 1.3.272 → 1.3.273

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 (346) hide show
  1. package/dist/cjs/{cart-f1374a56.js → cart-660e115c.js} +32 -2
  2. package/dist/cjs/collect-286a9d04.js +3107 -0
  3. package/dist/cjs/{hasInclusivePrice-2f1232e3.js → hasInclusivePrice-b35e81aa.js} +1 -1
  4. package/dist/cjs/index.cjs.js +7 -7
  5. package/dist/cjs/{invoice-3760bec0.js → invoice-f032089f.js} +2 -2
  6. package/dist/cjs/isCollectMobileTablet-884d4280.js +15 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/{localization-503c8477.js → localization-f4a64f6f.js} +120 -0
  9. package/dist/cjs/{paypal-5e9b8224.js → paypal-125259ab.js} +2 -2
  10. package/dist/cjs/{placeTestOrder-d1be2c8e.js → placeTestOrder-02001a99.js} +2 -2
  11. package/dist/cjs/{renderCheckoutCurrency-4486b06e.js → renderCheckoutCurrency-cad156a7.js} +2 -2
  12. package/dist/cjs/zonos-address-display_8.cjs.entry.js +18 -18
  13. package/dist/cjs/zonos-address_4.cjs.entry.js +8 -8
  14. package/dist/cjs/zonos-airwallex-payment.cjs.entry.js +170 -0
  15. package/dist/cjs/zonos-badge.cjs.entry.js +3 -3
  16. package/dist/cjs/zonos-button_3.cjs.entry.js +3 -3
  17. package/dist/cjs/zonos-card_5.cjs.entry.js +9 -9
  18. package/dist/cjs/zonos-cart-items_12.cjs.entry.js +19 -19
  19. package/dist/cjs/zonos-checkbox_2.cjs.entry.js +5 -5
  20. package/dist/cjs/zonos-checkout.cjs.entry.js +3 -3
  21. package/dist/cjs/zonos-collapse.cjs.entry.js +2 -2
  22. package/dist/cjs/zonos-collect-cart-items_3.cjs.entry.js +6 -6
  23. package/dist/cjs/zonos-collect-finish_6.cjs.entry.js +150 -36
  24. package/dist/cjs/zonos-collect.cjs.entry.js +176 -38
  25. package/dist/cjs/zonos-component.cjs.entry.js +1 -1
  26. package/dist/cjs/zonos-controller.cjs.entry.js +3 -3
  27. package/dist/cjs/zonos-country-flag.cjs.entry.js +1 -1
  28. package/dist/cjs/zonos-country-select_4.cjs.entry.js +10 -10
  29. package/dist/cjs/zonos-elements.cjs.js +1 -1
  30. package/dist/cjs/zonos-hello-dialog.cjs.entry.js +6 -6
  31. package/dist/cjs/zonos-hello.cjs.entry.js +1 -1
  32. package/dist/cjs/zonos-input.cjs.entry.js +4 -4
  33. package/dist/cjs/zonos-invoice-cart-items_2.cjs.entry.js +8 -8
  34. package/dist/cjs/zonos-invoice-finish_5.cjs.entry.js +14 -14
  35. package/dist/cjs/zonos-invoice.cjs.entry.js +4 -4
  36. package/dist/cjs/zonos-language-select_2.cjs.entry.js +5 -5
  37. package/dist/cjs/zonos-link.cjs.entry.js +1 -1
  38. package/dist/cjs/zonos-logo.cjs.entry.js +2 -2
  39. package/dist/cjs/zonos-policy-consent_2.cjs.entry.js +3 -3
  40. package/dist/cjs/zonos-stripe-input.cjs.entry.js +4 -4
  41. package/dist/cjs/zonos-tooltip.cjs.entry.js +2 -2
  42. package/dist/cjs/zonos-v-stack.cjs.entry.js +2 -2
  43. package/dist/collection/collection-manifest.json +1 -0
  44. package/dist/collection/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.css +43 -0
  45. package/dist/collection/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.js +215 -0
  46. package/dist/collection/components/checkout/zonos-checkout/zonos-address-update-dialog/zonos-address-form/zonos-address-form.js +4 -4
  47. package/dist/collection/components/checkout/zonos-checkout/zonos-cart-items/zonos-cart-items.js +1 -1
  48. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-finish/zonos-checkout-finish.js +4 -4
  49. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout-footer/zonos-checkout-footer.js +2 -2
  50. package/dist/collection/components/checkout/zonos-checkout/zonos-checkout.js +1 -1
  51. package/dist/collection/components/checkout/zonos-collect/zonos-collect-cart-items/zonos-collect-cart-items.js +1 -1
  52. package/dist/collection/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.js +110 -2
  53. package/dist/collection/components/checkout/zonos-collect/zonos-collect-footer/zonos-collect-footer.js +3 -3
  54. package/dist/collection/components/checkout/zonos-collect/zonos-collect-order-details/zonos-collect-order-details.js +1 -1
  55. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.css +1 -17
  56. package/dist/collection/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.js +21 -0
  57. package/dist/collection/components/checkout/zonos-collect/zonos-collect-review/zonos-collect-review.js +3 -3
  58. package/dist/collection/components/checkout/zonos-collect/zonos-collect-subtotal/zonos-collect-subtotal.js +5 -5
  59. package/dist/collection/components/checkout/zonos-collect/zonos-collect.js +167 -29
  60. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-cart-items/zonos-invoice-cart-items.js +2 -2
  61. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-finish/zonos-invoice-finish.js +2 -2
  62. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-footer/zonos-invoice-footer.js +3 -3
  63. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-review/zonos-invoice-review.js +3 -3
  64. package/dist/collection/components/checkout/zonos-invoice/zonos-invoice-subtotal/zonos-invoice-subtotal.js +2 -2
  65. package/dist/collection/components/common/zonos-badge/zonos-badge.js +3 -3
  66. package/dist/collection/components/common/zonos-button/zonos-button.js +3 -3
  67. package/dist/collection/components/common/zonos-card/zonos-card.js +4 -4
  68. package/dist/collection/components/common/zonos-checkbox/zonos-checkbox.js +3 -3
  69. package/dist/collection/components/common/zonos-checkout-progress-tabs/zonos-checkout-progress-tabs.js +3 -3
  70. package/dist/collection/components/common/zonos-collapse/zonos-collapse.js +2 -2
  71. package/dist/collection/components/common/zonos-confirm-dialog/zonos-confirm-dialog.js +3 -3
  72. package/dist/collection/components/common/zonos-country-select/zonos-country-select.js +3 -3
  73. package/dist/collection/components/common/zonos-custom-message/zonos-custom-message.js +2 -2
  74. package/dist/collection/components/common/zonos-dialog/zonos-dialog.js +3 -3
  75. package/dist/collection/components/common/zonos-h-stack/zonos-h-stack.js +2 -2
  76. package/dist/collection/components/common/zonos-input/zonos-input.js +4 -4
  77. package/dist/collection/components/common/zonos-language-select/zonos-language-select.js +2 -2
  78. package/dist/collection/components/common/zonos-link/zonos-link.js +1 -1
  79. package/dist/collection/components/common/zonos-loading-overlay/zonos-loading-overlay.js +1 -1
  80. package/dist/collection/components/common/zonos-logo/zonos-logo.js +2 -2
  81. package/dist/collection/components/common/zonos-rest-state/zonos-rest-state.js +3 -3
  82. package/dist/collection/components/common/zonos-select-dialog-header/zonos-select-dialog-header.js +2 -2
  83. package/dist/collection/components/common/zonos-skeleton/zonos-skeleton.js +1 -1
  84. package/dist/collection/components/common/zonos-stripe-input/zonos-stripe-input.js +4 -4
  85. package/dist/collection/components/common/zonos-stripe-phone-input/zonos-stripe-phone-input.js +5 -5
  86. package/dist/collection/components/common/zonos-toggle/zonos-toggle.js +2 -2
  87. package/dist/collection/components/common/zonos-tooltip/zonos-tooltip.js +2 -2
  88. package/dist/collection/components/common/zonos-v-stack/zonos-v-stack.js +2 -2
  89. package/dist/collection/components/common/zonos-virtual-scroll/zonos-virtual-scroll.js +2 -2
  90. package/dist/collection/components/component-template/zonos-component/zonos-component.js +1 -1
  91. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog-footer/zonos-hello-dialog-footer.js +2 -2
  92. package/dist/collection/components/hello/zonos-hello-dialog/zonos-hello-dialog.js +4 -4
  93. package/dist/collection/components/main/zonos-controller.js +1 -1
  94. package/dist/collection/components/paypal/zonos-paypal-payment.js +1 -1
  95. package/dist/collection/components/store/checkout/airwallex.js +195 -0
  96. package/dist/collection/components/store/checkout/collect.js +4 -1
  97. package/dist/collection/components/store/checkout/stripe.js +26 -1
  98. package/dist/collection/components/store/translationStore/strings.arabic.js +6 -0
  99. package/dist/collection/components/store/translationStore/strings.base.js +6 -0
  100. package/dist/collection/components/store/translationStore/strings.chinese.js +6 -0
  101. package/dist/collection/components/store/translationStore/strings.danish.js +6 -0
  102. package/dist/collection/components/store/translationStore/strings.dutch.js +6 -0
  103. package/dist/collection/components/store/translationStore/strings.french.js +6 -0
  104. package/dist/collection/components/store/translationStore/strings.german.js +6 -0
  105. package/dist/collection/components/store/translationStore/strings.hebrew.js +6 -0
  106. package/dist/collection/components/store/translationStore/strings.indonesian.js +6 -0
  107. package/dist/collection/components/store/translationStore/strings.italian.js +6 -0
  108. package/dist/collection/components/store/translationStore/strings.japanese.js +6 -0
  109. package/dist/collection/components/store/translationStore/strings.korean.js +6 -0
  110. package/dist/collection/components/store/translationStore/strings.norwegian.js +6 -0
  111. package/dist/collection/components/store/translationStore/strings.polish.js +6 -0
  112. package/dist/collection/components/store/translationStore/strings.portuguese.js +6 -0
  113. package/dist/collection/components/store/translationStore/strings.russian.js +6 -0
  114. package/dist/collection/components/store/translationStore/strings.spanish.js +6 -0
  115. package/dist/collection/components/store/translationStore/strings.swedish.js +6 -0
  116. package/dist/collection/components/store/translationStore/strings.turkish.js +6 -0
  117. package/dist/collection/components/store/translationStore/strings.vietnamese.js +6 -0
  118. package/dist/collection/components/stripe/zonos-address/zonos-address.js +2 -2
  119. package/dist/collection/components/stripe/zonos-custom-address/zonos-address-suggestions/zonos-address-suggestions.js +2 -2
  120. package/dist/collection/components/stripe/zonos-custom-address/zonos-custom-address.js +2 -2
  121. package/dist/collection/components/stripe/zonos-payment/zonos-payment.js +1 -1
  122. package/dist/collection/types/generated/graphql.internal.types.js +3 -0
  123. package/dist/esm/{cart-1415dcf0.js → cart-23e29950.js} +32 -2
  124. package/dist/esm/collect-a235299d.js +3092 -0
  125. package/dist/esm/{hasInclusivePrice-a3b0f71c.js → hasInclusivePrice-5e106f84.js} +1 -1
  126. package/dist/esm/index.js +7 -7
  127. package/dist/esm/{invoice-117efa2c.js → invoice-78f069c7.js} +2 -2
  128. package/dist/esm/isCollectMobileTablet-111b0dd7.js +12 -0
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/{localization-29723d89.js → localization-17546792.js} +120 -0
  131. package/dist/esm/{paypal-cb5559d4.js → paypal-5bc6b0d0.js} +2 -2
  132. package/dist/esm/{placeTestOrder-443376eb.js → placeTestOrder-e842854a.js} +2 -2
  133. package/dist/esm/{renderCheckoutCurrency-8390b5bf.js → renderCheckoutCurrency-e3953f67.js} +2 -2
  134. package/dist/esm/zonos-address-display_8.entry.js +18 -18
  135. package/dist/esm/zonos-address_4.entry.js +8 -8
  136. package/dist/esm/zonos-airwallex-payment.entry.js +166 -0
  137. package/dist/esm/zonos-badge.entry.js +3 -3
  138. package/dist/esm/zonos-button_3.entry.js +3 -3
  139. package/dist/esm/zonos-card_5.entry.js +9 -9
  140. package/dist/esm/zonos-cart-items_12.entry.js +19 -19
  141. package/dist/esm/zonos-checkbox_2.entry.js +5 -5
  142. package/dist/esm/zonos-checkout.entry.js +3 -3
  143. package/dist/esm/zonos-collapse.entry.js +2 -2
  144. package/dist/esm/zonos-collect-cart-items_3.entry.js +6 -6
  145. package/dist/esm/zonos-collect-finish_6.entry.js +135 -21
  146. package/dist/esm/zonos-collect.entry.js +171 -33
  147. package/dist/esm/zonos-component.entry.js +1 -1
  148. package/dist/esm/zonos-controller.entry.js +3 -3
  149. package/dist/esm/zonos-country-flag.entry.js +1 -1
  150. package/dist/esm/zonos-country-select_4.entry.js +10 -10
  151. package/dist/esm/zonos-elements.js +1 -1
  152. package/dist/esm/zonos-hello-dialog.entry.js +6 -6
  153. package/dist/esm/zonos-hello.entry.js +1 -1
  154. package/dist/esm/zonos-input.entry.js +4 -4
  155. package/dist/esm/zonos-invoice-cart-items_2.entry.js +8 -8
  156. package/dist/esm/zonos-invoice-finish_5.entry.js +14 -14
  157. package/dist/esm/zonos-invoice.entry.js +4 -4
  158. package/dist/esm/zonos-language-select_2.entry.js +5 -5
  159. package/dist/esm/zonos-link.entry.js +1 -1
  160. package/dist/esm/zonos-logo.entry.js +2 -2
  161. package/dist/esm/zonos-policy-consent_2.entry.js +3 -3
  162. package/dist/esm/zonos-stripe-input.entry.js +4 -4
  163. package/dist/esm/zonos-tooltip.entry.js +2 -2
  164. package/dist/esm/zonos-v-stack.entry.js +2 -2
  165. package/dist/esm-es5/cart-23e29950.js +1 -0
  166. package/dist/esm-es5/collect-a235299d.js +1 -0
  167. package/dist/esm-es5/{hasInclusivePrice-a3b0f71c.js → hasInclusivePrice-5e106f84.js} +1 -1
  168. package/dist/esm-es5/index.js +1 -1
  169. package/dist/esm-es5/{invoice-117efa2c.js → invoice-78f069c7.js} +1 -1
  170. package/dist/esm-es5/isCollectMobileTablet-111b0dd7.js +1 -0
  171. package/dist/esm-es5/loader.js +1 -1
  172. package/dist/esm-es5/localization-17546792.js +1 -0
  173. package/dist/esm-es5/{paypal-cb5559d4.js → paypal-5bc6b0d0.js} +1 -1
  174. package/dist/esm-es5/{placeTestOrder-443376eb.js → placeTestOrder-e842854a.js} +1 -1
  175. package/dist/esm-es5/{renderCheckoutCurrency-8390b5bf.js → renderCheckoutCurrency-e3953f67.js} +1 -1
  176. package/dist/esm-es5/zonos-address-display_8.entry.js +1 -1
  177. package/dist/esm-es5/zonos-address_4.entry.js +1 -1
  178. package/dist/esm-es5/zonos-airwallex-payment.entry.js +1 -0
  179. package/dist/esm-es5/zonos-badge.entry.js +1 -1
  180. package/dist/esm-es5/zonos-button_3.entry.js +1 -1
  181. package/dist/esm-es5/zonos-card_5.entry.js +1 -1
  182. package/dist/esm-es5/zonos-cart-items_12.entry.js +1 -1
  183. package/dist/esm-es5/zonos-checkbox_2.entry.js +1 -1
  184. package/dist/esm-es5/zonos-checkout.entry.js +1 -1
  185. package/dist/esm-es5/zonos-collapse.entry.js +1 -1
  186. package/dist/esm-es5/zonos-collect-cart-items_3.entry.js +1 -1
  187. package/dist/esm-es5/zonos-collect-finish_6.entry.js +1 -1
  188. package/dist/esm-es5/zonos-collect.entry.js +1 -1
  189. package/dist/esm-es5/zonos-component.entry.js +1 -1
  190. package/dist/esm-es5/zonos-controller.entry.js +1 -1
  191. package/dist/esm-es5/zonos-country-flag.entry.js +1 -1
  192. package/dist/esm-es5/zonos-country-select_4.entry.js +1 -1
  193. package/dist/esm-es5/zonos-elements.js +1 -1
  194. package/dist/esm-es5/zonos-hello-dialog.entry.js +1 -1
  195. package/dist/esm-es5/zonos-hello.entry.js +1 -1
  196. package/dist/esm-es5/zonos-input.entry.js +1 -1
  197. package/dist/esm-es5/zonos-invoice-cart-items_2.entry.js +1 -1
  198. package/dist/esm-es5/zonos-invoice-finish_5.entry.js +1 -1
  199. package/dist/esm-es5/zonos-invoice.entry.js +1 -1
  200. package/dist/esm-es5/zonos-language-select_2.entry.js +1 -1
  201. package/dist/esm-es5/zonos-link.entry.js +1 -1
  202. package/dist/esm-es5/zonos-logo.entry.js +1 -1
  203. package/dist/esm-es5/zonos-policy-consent_2.entry.js +1 -1
  204. package/dist/esm-es5/zonos-stripe-input.entry.js +1 -1
  205. package/dist/esm-es5/zonos-tooltip.entry.js +1 -1
  206. package/dist/esm-es5/zonos-v-stack.entry.js +1 -1
  207. package/dist/scripts/index.d.ts +61 -0
  208. package/dist/scripts/index.js +1 -1
  209. package/dist/scripts/loadZonos.js +1 -1
  210. package/dist/scripts/zonos.js +1 -1
  211. package/dist/types/components/airwallex/zonos-airwallex-payment/zonos-airwallex-payment.d.ts +46 -0
  212. package/dist/types/components/checkout/zonos-collect/zonos-collect-finish/zonos-collect-finish.d.ts +7 -0
  213. package/dist/types/components/checkout/zonos-collect/zonos-collect-payment/zonos-collect-payment.d.ts +4 -0
  214. package/dist/types/components/checkout/zonos-collect/zonos-collect.d.ts +29 -0
  215. package/dist/types/components/store/checkout/airwallex.d.ts +83 -0
  216. package/dist/types/components/store/checkout/collect.d.ts +12 -1
  217. package/dist/types/components/store/checkout/stripe.d.ts +1 -1
  218. package/dist/types/components/store/translationStore/strings.arabic.d.ts +6 -0
  219. package/dist/types/components/store/translationStore/strings.base.d.ts +6 -0
  220. package/dist/types/components/store/translationStore/strings.chinese.d.ts +6 -0
  221. package/dist/types/components/store/translationStore/strings.danish.d.ts +6 -0
  222. package/dist/types/components/store/translationStore/strings.dutch.d.ts +6 -0
  223. package/dist/types/components/store/translationStore/strings.french.d.ts +6 -0
  224. package/dist/types/components/store/translationStore/strings.german.d.ts +6 -0
  225. package/dist/types/components/store/translationStore/strings.hebrew.d.ts +6 -0
  226. package/dist/types/components/store/translationStore/strings.indonesian.d.ts +6 -0
  227. package/dist/types/components/store/translationStore/strings.italian.d.ts +6 -0
  228. package/dist/types/components/store/translationStore/strings.japanese.d.ts +6 -0
  229. package/dist/types/components/store/translationStore/strings.korean.d.ts +6 -0
  230. package/dist/types/components/store/translationStore/strings.norwegian.d.ts +6 -0
  231. package/dist/types/components/store/translationStore/strings.polish.d.ts +6 -0
  232. package/dist/types/components/store/translationStore/strings.portuguese.d.ts +6 -0
  233. package/dist/types/components/store/translationStore/strings.russian.d.ts +6 -0
  234. package/dist/types/components/store/translationStore/strings.spanish.d.ts +6 -0
  235. package/dist/types/components/store/translationStore/strings.swedish.d.ts +6 -0
  236. package/dist/types/components/store/translationStore/strings.turkish.d.ts +6 -0
  237. package/dist/types/components/store/translationStore/strings.vietnamese.d.ts +6 -0
  238. package/dist/types/components.d.ts +42 -0
  239. package/dist/types/types/checkout/api/CheckoutSession.d.ts +11 -1
  240. package/dist/types/types/checkout/api/PartyInfo.d.ts +6 -0
  241. package/dist/types/types/generated/graphql.internal.types.d.ts +20 -0
  242. package/dist/types/types/generated/graphql.internal.types.ts +29 -0
  243. package/dist/types/types/utils/ZonosSettings.d.ts +6 -0
  244. package/dist/zonos-elements/index.esm.js +1 -1
  245. package/dist/zonos-elements/p-013575f2.entry.js +1 -0
  246. package/dist/zonos-elements/{p-344a1fee.entry.js → p-055ef910.entry.js} +1 -1
  247. package/dist/zonos-elements/{p-3efe0875.entry.js → p-08b48608.entry.js} +1 -1
  248. package/dist/zonos-elements/{p-26ae4ee7.system.entry.js → p-0a54dae6.system.entry.js} +1 -1
  249. package/dist/zonos-elements/{p-aafc2155.system.entry.js → p-0b59076d.system.entry.js} +1 -1
  250. package/dist/zonos-elements/{p-c92a5ae5.system.entry.js → p-10571f94.system.entry.js} +1 -1
  251. package/dist/zonos-elements/{p-658ab5e2.entry.js → p-12a05647.entry.js} +1 -1
  252. package/dist/zonos-elements/{p-b453ae2b.system.js → p-14018649.system.js} +2 -2
  253. package/dist/zonos-elements/{p-d2ba9e3c.system.entry.js → p-1678d8b4.system.entry.js} +1 -1
  254. package/dist/zonos-elements/p-171d0f9f.system.js +1 -0
  255. package/dist/zonos-elements/{p-5bd47a30.system.entry.js → p-1a105d6e.system.entry.js} +1 -1
  256. package/dist/zonos-elements/p-1a4083be.system.js +1 -0
  257. package/dist/zonos-elements/{p-792fce17.system.entry.js → p-1f31f5a0.system.entry.js} +1 -1
  258. package/dist/zonos-elements/p-2197d6ab.js +1 -0
  259. package/dist/zonos-elements/{p-536cbab5.system.entry.js → p-27e50593.system.entry.js} +1 -1
  260. package/dist/zonos-elements/{p-0b4ba025.entry.js → p-2825431d.entry.js} +1 -1
  261. package/dist/zonos-elements/p-29b60bf3.system.js +1 -1
  262. package/dist/zonos-elements/{p-73730eb9.system.entry.js → p-2a1247f4.system.entry.js} +1 -1
  263. package/dist/zonos-elements/p-2adbbce7.system.js +1 -0
  264. package/dist/zonos-elements/{p-f98cdb98.system.entry.js → p-306e5499.system.entry.js} +1 -1
  265. package/dist/zonos-elements/{p-831bcfb6.entry.js → p-31577ebd.entry.js} +1 -1
  266. package/dist/zonos-elements/{p-889a44fc.entry.js → p-328fd90e.entry.js} +1 -1
  267. package/dist/zonos-elements/p-33910e8b.js +1 -0
  268. package/dist/zonos-elements/{p-fb684748.system.entry.js → p-36b311f9.system.entry.js} +1 -1
  269. package/dist/zonos-elements/{p-5b4e5608.system.entry.js → p-3eba657b.system.entry.js} +1 -1
  270. package/dist/zonos-elements/p-41619f29.js +1 -0
  271. package/dist/zonos-elements/{p-cdea0f7d.js → p-42948a52.js} +1 -1
  272. package/dist/zonos-elements/p-46e72a90.entry.js +1 -0
  273. package/dist/zonos-elements/p-49d8a10f.entry.js +1 -0
  274. package/dist/zonos-elements/{p-54a9c772.system.entry.js → p-4a960329.system.entry.js} +1 -1
  275. package/dist/zonos-elements/{p-93324ee5.entry.js → p-4b371b65.entry.js} +1 -1
  276. package/dist/zonos-elements/p-539bc46c.js +1 -0
  277. package/dist/zonos-elements/p-579932a7.js +1 -0
  278. package/dist/zonos-elements/{p-2afecda7.entry.js → p-59b10526.entry.js} +1 -1
  279. package/dist/zonos-elements/{p-98bea13e.system.entry.js → p-5aa35d1c.system.entry.js} +1 -1
  280. package/dist/zonos-elements/{p-fd849c69.system.js → p-62c68aee.system.js} +1 -1
  281. package/dist/zonos-elements/{p-48f3e2d2.system.entry.js → p-6c19310e.system.entry.js} +1 -1
  282. package/dist/zonos-elements/{p-16948eea.system.entry.js → p-732e7373.system.entry.js} +1 -1
  283. package/dist/zonos-elements/{p-0e8c4a29.entry.js → p-734d646b.entry.js} +1 -1
  284. package/dist/zonos-elements/{p-60f0ff42.entry.js → p-7eb47eb0.entry.js} +1 -1
  285. package/dist/zonos-elements/{p-eb254a96.system.entry.js → p-86a9f048.system.entry.js} +1 -1
  286. package/dist/zonos-elements/p-8af57c2a.js +1 -0
  287. package/dist/zonos-elements/{p-18c9565b.system.entry.js → p-8c4761d1.system.entry.js} +1 -1
  288. package/dist/zonos-elements/{p-c45df586.system.entry.js → p-8e77a3cd.system.entry.js} +1 -1
  289. package/dist/zonos-elements/p-919c5500.entry.js +1 -0
  290. package/dist/zonos-elements/p-91b921a4.system.js +1 -0
  291. package/dist/zonos-elements/{p-3b600b89.system.js → p-9574695a.system.js} +1 -1
  292. package/dist/zonos-elements/p-97917371.system.entry.js +1 -0
  293. package/dist/zonos-elements/{p-7ce6b8f7.system.entry.js → p-9b003a15.system.entry.js} +1 -1
  294. package/dist/zonos-elements/{p-53be08c8.entry.js → p-9c3276c8.entry.js} +1 -1
  295. package/dist/zonos-elements/p-9cd41234.system.entry.js +1 -0
  296. package/dist/zonos-elements/{p-5f92db80.system.entry.js → p-a1a05de4.system.entry.js} +1 -1
  297. package/dist/zonos-elements/{p-4c94cfd3.entry.js → p-a968ccba.entry.js} +1 -1
  298. package/dist/zonos-elements/{p-ee00f232.entry.js → p-abd485df.entry.js} +1 -1
  299. package/dist/zonos-elements/{p-7d859914.entry.js → p-ad961f5d.entry.js} +1 -1
  300. package/dist/zonos-elements/{p-6b87101d.system.entry.js → p-b5c01288.system.entry.js} +1 -1
  301. package/dist/zonos-elements/p-bf8c98ab.system.js +1 -0
  302. package/dist/zonos-elements/{p-2d1055d5.entry.js → p-c13d2e3f.entry.js} +1 -1
  303. package/dist/zonos-elements/{p-0b46f3bd.system.entry.js → p-c15476a1.system.entry.js} +1 -1
  304. package/dist/zonos-elements/{p-0e36a7cf.system.entry.js → p-c6823974.system.entry.js} +1 -1
  305. package/dist/zonos-elements/{p-dae881f2.entry.js → p-c83bc4b3.entry.js} +1 -1
  306. package/dist/zonos-elements/{p-134c5010.system.entry.js → p-c846a5f3.system.entry.js} +1 -1
  307. package/dist/zonos-elements/{p-7aca66cd.entry.js → p-cc508de8.entry.js} +1 -1
  308. package/dist/zonos-elements/{p-6609467e.entry.js → p-ccd14aa5.entry.js} +1 -1
  309. package/dist/zonos-elements/{p-318e704a.system.js → p-d25759fb.system.js} +1 -1
  310. package/dist/zonos-elements/{p-a956e28f.entry.js → p-d5e66ea6.entry.js} +1 -1
  311. package/dist/zonos-elements/{p-7536cf94.system.entry.js → p-daf57db3.system.entry.js} +1 -1
  312. package/dist/zonos-elements/{p-b35a0b1e.entry.js → p-dcef2202.entry.js} +1 -1
  313. package/dist/zonos-elements/{p-283ffaad.entry.js → p-dd6da3de.entry.js} +1 -1
  314. package/dist/zonos-elements/{p-bd2daace.entry.js → p-df6fbf3f.entry.js} +1 -1
  315. package/dist/zonos-elements/{p-c16c7978.entry.js → p-e643346a.entry.js} +1 -1
  316. package/dist/zonos-elements/{p-b375372e.entry.js → p-e8cb382e.entry.js} +1 -1
  317. package/dist/zonos-elements/{p-f4be6ce5.system.entry.js → p-e8ec88a9.system.entry.js} +1 -1
  318. package/dist/zonos-elements/p-e9afd736.system.entry.js +1 -0
  319. package/dist/zonos-elements/{p-c425d3d9.js → p-e9c8a235.js} +1 -1
  320. package/dist/zonos-elements/{p-ccc8d669.system.entry.js → p-f0eb6317.system.entry.js} +1 -1
  321. package/dist/zonos-elements/p-f1cc659c.js +1 -0
  322. package/dist/zonos-elements/{p-b1b7d786.entry.js → p-f53c8a9f.entry.js} +1 -1
  323. package/dist/zonos-elements/{p-777d396e.entry.js → p-f72642de.entry.js} +1 -1
  324. package/dist/zonos-elements/{p-eb77dd11.system.js → p-fcaec700.system.js} +1 -1
  325. package/dist/zonos-elements/zonos-elements.esm.js +1 -1
  326. package/package.json +2 -1
  327. package/dist/cjs/isCollectMobileTablet-d5c1a9ea.js +0 -176
  328. package/dist/esm/isCollectMobileTablet-2c62fdaa.js +0 -169
  329. package/dist/esm-es5/cart-1415dcf0.js +0 -1
  330. package/dist/esm-es5/isCollectMobileTablet-2c62fdaa.js +0 -1
  331. package/dist/esm-es5/localization-29723d89.js +0 -1
  332. package/dist/zonos-elements/p-0fa932e6.system.js +0 -1
  333. package/dist/zonos-elements/p-15c2dfea.entry.js +0 -1
  334. package/dist/zonos-elements/p-17c7a727.system.js +0 -1
  335. package/dist/zonos-elements/p-24aa6708.js +0 -1
  336. package/dist/zonos-elements/p-2585034d.entry.js +0 -1
  337. package/dist/zonos-elements/p-2cda42d5.system.js +0 -1
  338. package/dist/zonos-elements/p-53b65b80.js +0 -1
  339. package/dist/zonos-elements/p-58521b25.js +0 -1
  340. package/dist/zonos-elements/p-9259e19b.system.entry.js +0 -1
  341. package/dist/zonos-elements/p-99ef86c3.js +0 -1
  342. package/dist/zonos-elements/p-aa3a7538.js +0 -1
  343. package/dist/zonos-elements/p-c935390d.js +0 -1
  344. package/dist/zonos-elements/p-e77dd304.system.js +0 -1
  345. package/dist/zonos-elements/p-ea91600a.entry.js +0 -1
  346. package/dist/zonos-elements/p-f5d9e5e5.system.entry.js +0 -1
@@ -0,0 +1,3107 @@
1
+ 'use strict';
2
+
3
+ const zonosStore = require('./zonosStore-45a87908.js');
4
+ const localization = require('./localization-f4a64f6f.js');
5
+ const handleFetch = require('./handleFetch-954f30e1.js');
6
+ const VarianceTest = require('./VarianceTest-bec00ea8.js');
7
+ const cart = require('./cart-660e115c.js');
8
+
9
+ // src/constant/common.ts
10
+ function _array_like_to_array(arr, len) {
11
+ if (len == null || len > arr.length) len = arr.length;
12
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
13
+ return arr2;
14
+ }
15
+ function _array_with_holes(arr) {
16
+ if (Array.isArray(arr)) return arr;
17
+ }
18
+ function _array_without_holes(arr) {
19
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
20
+ }
21
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
22
+ try {
23
+ var info = gen[key](arg);
24
+ var value = info.value;
25
+ } catch (error) {
26
+ reject(error);
27
+ return;
28
+ }
29
+ if (info.done) {
30
+ resolve(value);
31
+ } else {
32
+ Promise.resolve(value).then(_next, _throw);
33
+ }
34
+ }
35
+ function _async_to_generator(fn) {
36
+ return function() {
37
+ var self = this, args = arguments;
38
+ return new Promise(function(resolve, reject) {
39
+ var gen = fn.apply(self, args);
40
+ function _next(value) {
41
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
42
+ }
43
+ function _throw(err) {
44
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
45
+ }
46
+ _next(undefined);
47
+ });
48
+ };
49
+ }
50
+ function _class_call_check(instance, Constructor) {
51
+ if (!(instance instanceof Constructor)) {
52
+ throw new TypeError("Cannot call a class as a function");
53
+ }
54
+ }
55
+ function _defineProperties(target, props) {
56
+ for(var i = 0; i < props.length; i++){
57
+ var descriptor = props[i];
58
+ descriptor.enumerable = descriptor.enumerable || false;
59
+ descriptor.configurable = true;
60
+ if ("value" in descriptor) descriptor.writable = true;
61
+ Object.defineProperty(target, descriptor.key, descriptor);
62
+ }
63
+ }
64
+ function _create_class(Constructor, protoProps, staticProps) {
65
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
66
+ if (staticProps) _defineProperties(Constructor, staticProps);
67
+ return Constructor;
68
+ }
69
+ function _define_property(obj, key, value) {
70
+ if (key in obj) {
71
+ Object.defineProperty(obj, key, {
72
+ value: value,
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true
76
+ });
77
+ } else {
78
+ obj[key] = value;
79
+ }
80
+ return obj;
81
+ }
82
+ function _instanceof(left, right) {
83
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
84
+ return !!right[Symbol.hasInstance](left);
85
+ } else {
86
+ return left instanceof right;
87
+ }
88
+ }
89
+ function _iterable_to_array(iter) {
90
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
91
+ }
92
+ function _iterable_to_array_limit(arr, i) {
93
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
94
+ if (_i == null) return;
95
+ var _arr = [];
96
+ var _n = true;
97
+ var _d = false;
98
+ var _s, _e;
99
+ try {
100
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
101
+ _arr.push(_s.value);
102
+ if (i && _arr.length === i) break;
103
+ }
104
+ } catch (err) {
105
+ _d = true;
106
+ _e = err;
107
+ } finally{
108
+ try {
109
+ if (!_n && _i["return"] != null) _i["return"]();
110
+ } finally{
111
+ if (_d) throw _e;
112
+ }
113
+ }
114
+ return _arr;
115
+ }
116
+ function _non_iterable_rest() {
117
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
118
+ }
119
+ function _non_iterable_spread() {
120
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
121
+ }
122
+ function _object_spread(target) {
123
+ for(var i = 1; i < arguments.length; i++){
124
+ var source = arguments[i] != null ? arguments[i] : {};
125
+ var ownKeys = Object.keys(source);
126
+ if (typeof Object.getOwnPropertySymbols === "function") {
127
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
128
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
129
+ }));
130
+ }
131
+ ownKeys.forEach(function(key) {
132
+ _define_property(target, key, source[key]);
133
+ });
134
+ }
135
+ return target;
136
+ }
137
+ function ownKeys(object, enumerableOnly) {
138
+ var keys = Object.keys(object);
139
+ if (Object.getOwnPropertySymbols) {
140
+ var symbols = Object.getOwnPropertySymbols(object);
141
+ if (enumerableOnly) {
142
+ symbols = symbols.filter(function(sym) {
143
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
144
+ });
145
+ }
146
+ keys.push.apply(keys, symbols);
147
+ }
148
+ return keys;
149
+ }
150
+ function _object_spread_props(target, source) {
151
+ source = source != null ? source : {};
152
+ if (Object.getOwnPropertyDescriptors) {
153
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
154
+ } else {
155
+ ownKeys(Object(source)).forEach(function(key) {
156
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
157
+ });
158
+ }
159
+ return target;
160
+ }
161
+ function _sliced_to_array(arr, i) {
162
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
163
+ }
164
+ function _to_consumable_array(arr) {
165
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
166
+ }
167
+ function _type_of(obj) {
168
+ "@swc/helpers - typeof";
169
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
170
+ }
171
+ function _unsupported_iterable_to_array(o, minLen) {
172
+ if (!o) return;
173
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
174
+ var n = Object.prototype.toString.call(o).slice(8, -1);
175
+ if (n === "Object" && o.constructor) n = o.constructor.name;
176
+ if (n === "Map" || n === "Set") return Array.from(n);
177
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
178
+ }
179
+ function _ts_generator(thisArg, body) {
180
+ var f, y, t, g, _ = {
181
+ label: 0,
182
+ sent: function() {
183
+ if (t[0] & 1) throw t[1];
184
+ return t[1];
185
+ },
186
+ trys: [],
187
+ ops: []
188
+ };
189
+ return g = {
190
+ next: verb(0),
191
+ "throw": verb(1),
192
+ "return": verb(2)
193
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
194
+ return this;
195
+ }), g;
196
+ function verb(n) {
197
+ return function(v) {
198
+ return step([
199
+ n,
200
+ v
201
+ ]);
202
+ };
203
+ }
204
+ function step(op) {
205
+ if (f) throw new TypeError("Generator is already executing.");
206
+ while(_)try {
207
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
208
+ if (y = 0, t) op = [
209
+ op[0] & 2,
210
+ t.value
211
+ ];
212
+ switch(op[0]){
213
+ case 0:
214
+ case 1:
215
+ t = op;
216
+ break;
217
+ case 4:
218
+ _.label++;
219
+ return {
220
+ value: op[1],
221
+ done: false
222
+ };
223
+ case 5:
224
+ _.label++;
225
+ y = op[1];
226
+ op = [
227
+ 0
228
+ ];
229
+ continue;
230
+ case 7:
231
+ op = _.ops.pop();
232
+ _.trys.pop();
233
+ continue;
234
+ default:
235
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
236
+ _ = 0;
237
+ continue;
238
+ }
239
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
240
+ _.label = op[1];
241
+ break;
242
+ }
243
+ if (op[0] === 6 && _.label < t[1]) {
244
+ _.label = t[1];
245
+ t = op;
246
+ break;
247
+ }
248
+ if (t && _.label < t[2]) {
249
+ _.label = t[2];
250
+ _.ops.push(op);
251
+ break;
252
+ }
253
+ if (t[2]) _.ops.pop();
254
+ _.trys.pop();
255
+ continue;
256
+ }
257
+ op = body.call(thisArg, _);
258
+ } catch (e) {
259
+ op = [
260
+ 6,
261
+ e
262
+ ];
263
+ y = 0;
264
+ } finally{
265
+ f = t = 0;
266
+ }
267
+ if (op[0] & 5) throw op[1];
268
+ return {
269
+ value: op[0] ? op[1] : void 0,
270
+ done: true
271
+ };
272
+ }
273
+ }
274
+ var Environment = /* @__PURE__ */ function(Environment2) {
275
+ Environment2["production"] = "prod";
276
+ Environment2["demo"] = "demo";
277
+ Environment2["staging"] = "staging";
278
+ return Environment2;
279
+ }(Environment || {});
280
+ // src/constant/config.ts
281
+ var UNKNOWN_VALUE = "airTracker_unknown";
282
+ var DEFAULT_CONFIG = {
283
+ appName: UNKNOWN_VALUE,
284
+ appVersion: UNKNOWN_VALUE,
285
+ env: "staging" /* staging */ ,
286
+ isWebappContainer: false,
287
+ delay: 2e3,
288
+ errorRepeatTime: 3,
289
+ enableErrorMonitoring: false,
290
+ assetSpeedMonitoringWhiteList: [],
291
+ enableDetectPageChange: false,
292
+ enableRecordPageRetention: false,
293
+ hideSearchParams: false,
294
+ useSessionStorageForSessionId: false,
295
+ assetSpeedMonitoringWhiteListByMFE: {}
296
+ };
297
+ var DEFAULT_COMMON_DATA = {
298
+ appName: UNKNOWN_VALUE,
299
+ env: "staging" /* staging */ ,
300
+ sessionId: UNKNOWN_VALUE,
301
+ deviceId: UNKNOWN_VALUE
302
+ };
303
+ // src/util/jsonHelper.ts
304
+ var isJSON = function(str) {
305
+ if (!str) {
306
+ return false;
307
+ }
308
+ if (/^\s*$/.test(str)) return false;
309
+ str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@");
310
+ str = str.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]");
311
+ str = str.replace(/(?:^|:|,)(?:\s*\[)+/g, "");
312
+ return /^[\],:{}\s]*$/.test(str);
313
+ };
314
+ var safeReplacer = function() {
315
+ var seen = /* @__PURE__ */ new WeakSet();
316
+ return function(key, value) {
317
+ if (_instanceof(value, Error)) {
318
+ return "Error.message: ".concat(value.message, " \n Error.stack: ").concat(value.stack);
319
+ }
320
+ if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" && value !== null) {
321
+ if (seen.has(value)) {
322
+ return "[Circular ".concat(key || "root", "]");
323
+ }
324
+ seen.add(value);
325
+ }
326
+ if (typeof value === "function") {
327
+ return "function";
328
+ }
329
+ if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === "symbol") {
330
+ return "symbol";
331
+ }
332
+ if (typeof value === "undefined") {
333
+ return null;
334
+ }
335
+ return value;
336
+ };
337
+ };
338
+ var safeStringify = function(obj) {
339
+ if (typeof obj === "string") {
340
+ return obj;
341
+ }
342
+ try {
343
+ if (_instanceof(obj, Error)) {
344
+ return (JSON.stringify(obj, safeReplacer()) || "undefined").replace(/"/gim, "");
345
+ }
346
+ return JSON.stringify(obj, safeReplacer());
347
+ } catch (e) {
348
+ return '{"error":"error happen when airTracker stringify"}';
349
+ }
350
+ };
351
+ // src/util/http.ts
352
+ var request = function(param) {
353
+ var _param_method = param.method, method = _param_method === void 0 ? "post" : _param_method, url = param.url, data = param.data, success = param.success, fail = param.fail;
354
+ if (!isJSON(data)) {
355
+ return;
356
+ }
357
+ var xhr = new XMLHttpRequest();
358
+ xhr.addEventListener("readystatechange", function() {
359
+ if (xhr.readyState === 4) {
360
+ if (xhr.status >= 400 || xhr.status === 0) {
361
+ fail === null || fail === void 0 ? void 0 : fail(xhr.response);
362
+ } else {
363
+ success === null || success === void 0 ? void 0 : success(xhr.response);
364
+ }
365
+ }
366
+ });
367
+ xhr.open(method, url);
368
+ xhr.setRequestHeader("Content-Type", "application/json");
369
+ xhr.send(data);
370
+ };
371
+ // src/constant/lifeCycleEventName.ts
372
+ var lifeCycleEventName = {
373
+ onInit: "onInit",
374
+ onConfigInit: "onConfigInit",
375
+ onConfigUpdated: "onConfigUpdated",
376
+ onCommonDataInit: "onCommonDataInit",
377
+ onCommonUpdated: "onCommonUpdated",
378
+ onPageChange: "onPageChange",
379
+ onDestroy: "onDestroy,"
380
+ };
381
+ // src/constant/index.ts
382
+ var DEVICE_ID_STORAGE_KEY = "AIR_ANALYTICS_DEVICE_ID";
383
+ var SESSION_ID_STORAGE_KEY = "AIR_ANALYTICS_SESSION_ID";
384
+ var RISK_DEVICE_ID_STORAGE_KEY = "AWX_RISK_ID";
385
+ var loggingServiceUrl = function(env) {
386
+ if (env == "prod" /* production */ ) {
387
+ return "https://o11y.airwallex.com/airtracker/logs";
388
+ }
389
+ if (env == "demo" /* demo */ ) {
390
+ return "https://o11y-demo.airwallex.com/airtracker/logs";
391
+ }
392
+ return "https://o11y-staging.airwallex.com/airtracker/logs";
393
+ };
394
+ var loggingServiceMetricsUrl = function(env) {
395
+ if (env == "prod" /* production */ ) {
396
+ return "https://o11y.airwallex.com/airtracker/metrics";
397
+ }
398
+ if (env == "demo" /* demo */ ) {
399
+ return "https://o11y-demo.airwallex.com/airtracker/metrics";
400
+ }
401
+ return "https://o11y-staging.airwallex.com/airtracker/metrics";
402
+ };
403
+ // src/util/index.ts
404
+ var generateUId = function() {
405
+ var deviceId = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
406
+ var r = Math.random() * 16 | 0;
407
+ var v = c === "x" ? r : r & 3 | 8;
408
+ return v.toString(16);
409
+ });
410
+ return deviceId;
411
+ };
412
+ var getMFEName = function(airTracker2) {
413
+ var _location_pathname_split, _location_pathname, _location;
414
+ if (airTracker2.config.getMFEName) {
415
+ return airTracker2.config.getMFEName();
416
+ }
417
+ return ((_location = location) === null || _location === void 0 ? void 0 : (_location_pathname = _location.pathname) === null || _location_pathname === void 0 ? void 0 : (_location_pathname_split = _location_pathname.split("/")) === null || _location_pathname_split === void 0 ? void 0 : _location_pathname_split[2]) || "unknown";
418
+ };
419
+ var getSessionId = function() {
420
+ try {
421
+ var sessionId = window.sessionStorage.getItem(SESSION_ID_STORAGE_KEY);
422
+ if (!sessionId) {
423
+ sessionId = generateUId();
424
+ window.sessionStorage.setItem(SESSION_ID_STORAGE_KEY, sessionId);
425
+ }
426
+ return sessionId;
427
+ } catch (e) {
428
+ return generateUId();
429
+ }
430
+ };
431
+ var getDeviceId = function() {
432
+ try {
433
+ var deviceId = window.localStorage.getItem(DEVICE_ID_STORAGE_KEY);
434
+ if (!deviceId) {
435
+ deviceId = generateUId();
436
+ window.localStorage.setItem(DEVICE_ID_STORAGE_KEY, deviceId);
437
+ }
438
+ return deviceId;
439
+ } catch (e) {}
440
+ };
441
+ var getRiskDeviceId = function() {
442
+ try {
443
+ var deviceId = window.localStorage.getItem(RISK_DEVICE_ID_STORAGE_KEY);
444
+ return deviceId || void 0;
445
+ } catch (e) {}
446
+ };
447
+ var getNetworkType = function() {
448
+ var _navigator;
449
+ var netType = "";
450
+ var arr = navigator.userAgent.match(/NetType\/(\w+)/);
451
+ if (arr) {
452
+ var ref;
453
+ ref = _sliced_to_array(arr, 2), netType = ref[1];
454
+ } else if ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.connection) {
455
+ var _navigator_connection, _navigator1, _navigator_connection1, _navigator2;
456
+ netType = ((_navigator1 = navigator) === null || _navigator1 === void 0 ? void 0 : (_navigator_connection = _navigator1.connection) === null || _navigator_connection === void 0 ? void 0 : _navigator_connection.effectiveType) || ((_navigator2 = navigator) === null || _navigator2 === void 0 ? void 0 : (_navigator_connection1 = _navigator2.connection) === null || _navigator_connection1 === void 0 ? void 0 : _navigator_connection1.type);
457
+ }
458
+ if (!netType) {
459
+ netType = "unknown";
460
+ }
461
+ return parseNetType(netType);
462
+ };
463
+ var parseNetType = function(net) {
464
+ net = String(net).toLowerCase();
465
+ if (net.indexOf("4g") >= 0) return "net4g" /* net4g */ ;
466
+ if (net.indexOf("wifi") >= 0) return "wifi" /* wifi */ ;
467
+ if (net.indexOf("5g") >= 0) return "net5g" /* net5g */ ;
468
+ if (net.indexOf("3g") >= 0) return "net3g" /* net3g */ ;
469
+ if (net.indexOf("2g") >= 0) return "net2g" /* net2g */ ;
470
+ return "unknown" /* unknown */ ;
471
+ };
472
+ var canUseResourceTiming = function canUseResourceTiming() {
473
+ return typeof window.performance !== "undefined" && typeof window.performance.clearResourceTimings === "function" && typeof window.performance.getEntriesByType === "function" && typeof window.performance.now === "function";
474
+ };
475
+ var formatUrl = function(url) {
476
+ if (typeof url === "string") {
477
+ var hostUrl = url.split("?")[0] || "";
478
+ return hostUrl.slice(0, 200);
479
+ }
480
+ return url;
481
+ };
482
+ var getQueryString = function(url) {
483
+ if (typeof url === "string") {
484
+ return url.split("?")[1] || "";
485
+ }
486
+ return url;
487
+ };
488
+ var urlIsHttps = function(url) {
489
+ var isHostProtocol = typeof url === "string" && url.startsWith("//");
490
+ return isHostProtocol ? typeof location !== "undefined" && location.protocol === "https:" : /^https/.test(url);
491
+ };
492
+ var getReportVal = function(rawVal, isDefaultByString) {
493
+ if (typeof rawVal === "number") {
494
+ return rawVal;
495
+ }
496
+ if (typeof rawVal === "string") {
497
+ return rawVal;
498
+ }
499
+ return isDefaultByString ? "" /* string */ : -1 /* number */ ;
500
+ };
501
+ var checkIfInWhiteList = function(url, airTracker2) {
502
+ var _airTracker2_config_assetSpeedMonitoringWhiteListByMFE;
503
+ var isInWhiteList = false;
504
+ if (!airTracker2.config.isWebappContainer) {
505
+ isInWhiteList = checkIfInWhiteListHelper(url, airTracker2.config.assetSpeedMonitoringWhiteList);
506
+ return isInWhiteList;
507
+ }
508
+ var MFEName = getMFEName(airTracker2);
509
+ return isInWhiteList || checkIfInWhiteListHelper(url, (_airTracker2_config_assetSpeedMonitoringWhiteListByMFE = airTracker2.config.assetSpeedMonitoringWhiteListByMFE) === null || _airTracker2_config_assetSpeedMonitoringWhiteListByMFE === void 0 ? void 0 : _airTracker2_config_assetSpeedMonitoringWhiteListByMFE[MFEName]);
510
+ };
511
+ var checkIfInWhiteListHelper = function(url, whiteList) {
512
+ if (!(whiteList === null || whiteList === void 0 ? void 0 : whiteList.length)) {
513
+ return false;
514
+ }
515
+ for(var i = 0; i < whiteList.length; i++){
516
+ var cur = whiteList[i];
517
+ if (_instanceof(cur, RegExp) && cur.test(url)) {
518
+ return true;
519
+ }
520
+ if (typeof cur == "string" && url.includes(cur)) {
521
+ return true;
522
+ }
523
+ }
524
+ return false;
525
+ };
526
+ var roundSubtract = function(a, b) {
527
+ var precision = 100;
528
+ return Math.round((a - b) * precision) / precision;
529
+ };
530
+ // src/pipes/send.ts
531
+ var sendNormalLogPipe = function(airTracker2) {
532
+ return function(logs) {
533
+ var _airTracker2_MFECommonDataMap, _navigator;
534
+ var MFEName = getMFEName(airTracker2);
535
+ var commonData = airTracker2.config.isWebappContainer ? _object_spread({}, airTracker2.commonData || {}, ((_airTracker2_MFECommonDataMap = airTracker2.MFECommonDataMap) === null || _airTracker2_MFECommonDataMap === void 0 ? void 0 : _airTracker2_MFECommonDataMap[MFEName]) || {}) : airTracker2.commonData;
536
+ var data = Array.isArray(logs) ? logs : [
537
+ logs
538
+ ];
539
+ if (data.length === 0) {
540
+ return;
541
+ }
542
+ var finalLog = {
543
+ commonData: commonData,
544
+ data: data
545
+ };
546
+ var dataBody = safeStringify(finalLog);
547
+ var sendOptions = {
548
+ method: "post",
549
+ url: loggingServiceUrl(airTracker2.commonData.env),
550
+ data: dataBody
551
+ };
552
+ if (typeof ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.sendBeacon) === "function") {
553
+ var success = navigator.sendBeacon(sendOptions.url, dataBody);
554
+ if (!success) {
555
+ request(sendOptions);
556
+ }
557
+ } else {
558
+ request(sendOptions);
559
+ }
560
+ };
561
+ };
562
+ var sendMetricsLogPipe = function(airTracker2) {
563
+ return function(logs) {
564
+ var _airTracker2_MFECommonDataMap, _navigator;
565
+ var MFEName = getMFEName(airTracker2);
566
+ var commonData = airTracker2.config.isWebappContainer ? _object_spread({}, airTracker2.commonData || {}, ((_airTracker2_MFECommonDataMap = airTracker2.MFECommonDataMap) === null || _airTracker2_MFECommonDataMap === void 0 ? void 0 : _airTracker2_MFECommonDataMap[MFEName]) || {}) : airTracker2.commonData;
567
+ var finalLog = {
568
+ commonData: commonData,
569
+ data: Array.isArray(logs) ? logs : [
570
+ logs
571
+ ]
572
+ };
573
+ var dataBody = safeStringify(finalLog);
574
+ var sendOptions = {
575
+ method: "post",
576
+ url: loggingServiceMetricsUrl(airTracker2.commonData.env),
577
+ data: dataBody
578
+ };
579
+ if (typeof ((_navigator = navigator) === null || _navigator === void 0 ? void 0 : _navigator.sendBeacon) === "function") {
580
+ var success = navigator.sendBeacon(sendOptions.url, dataBody);
581
+ if (!success) {
582
+ request(sendOptions);
583
+ }
584
+ } else {
585
+ request(sendOptions);
586
+ }
587
+ };
588
+ };
589
+ // src/pipes/throttle.ts
590
+ var throttlePipe = function(airTracker2, maxLength) {
591
+ var timer;
592
+ var retainedLogs = [];
593
+ var config = airTracker2.config;
594
+ window.addEventListener("beforeunload", function() {
595
+ if (retainedLogs.length > 0) {
596
+ airTracker2.immediateSendPipe(retainedLogs.splice(0, retainedLogs.length));
597
+ timer && clearTimeout(timer);
598
+ }
599
+ });
600
+ return function(log, resolve) {
601
+ retainedLogs.push(log);
602
+ airTracker2.lifeCycle.on(lifeCycleEventName.onCommonUpdated, function() {
603
+ if (retainedLogs.length > 0) {
604
+ resolve === null || resolve === void 0 ? void 0 : resolve(retainedLogs.splice(0, retainedLogs.length));
605
+ airTracker2.lifeCycle.remove(lifeCycleEventName.onCommonUpdated);
606
+ timer && clearTimeout(timer);
607
+ }
608
+ });
609
+ if (maxLength && retainedLogs.length >= maxLength) {
610
+ resolve === null || resolve === void 0 ? void 0 : resolve(retainedLogs.splice(0, retainedLogs.length));
611
+ timer && clearTimeout(timer);
612
+ return;
613
+ }
614
+ timer && clearTimeout(timer);
615
+ timer = setTimeout(function() {
616
+ timer = null;
617
+ if (retainedLogs.length > 0) {
618
+ resolve === null || resolve === void 0 ? void 0 : resolve(retainedLogs.splice(0, retainedLogs.length));
619
+ airTracker2.lifeCycle.remove(lifeCycleEventName.onCommonUpdated);
620
+ }
621
+ }, config.delay);
622
+ };
623
+ };
624
+ // src/pipes/errorRepeatLimit.ts
625
+ var errorLogLimitPipe = function(airTracker2) {
626
+ var errorLogMap = {};
627
+ return function(logs, resolve) {
628
+ var maxNum = typeof airTracker2.config.errorRepeatTime === "number" ? airTracker2.config.errorRepeatTime : 5;
629
+ if (maxNum === 0) {
630
+ return resolve === null || resolve === void 0 ? void 0 : resolve(logs);
631
+ }
632
+ resolve === null || resolve === void 0 ? void 0 : resolve(logs.filter(function(log) {
633
+ if (log.severity == "autoDetectError" /* AUTO_DETECT_ERROR */ ) {
634
+ errorLogMap[log.error] = errorLogMap[log.error] || 0;
635
+ errorLogMap[log.error] += 1;
636
+ if (errorLogMap[log.error] > maxNum) {
637
+ return false;
638
+ }
639
+ return true;
640
+ }
641
+ return true;
642
+ }));
643
+ };
644
+ };
645
+ // src/pipes/index.ts
646
+ var noop = function() {};
647
+ var createPipeline = function(pipeArr) {
648
+ if (!pipeArr || !pipeArr.reduce || !pipeArr.length) {
649
+ throw new TypeError("createPipeline need at least one function param");
650
+ }
651
+ if (pipeArr.length === 1) {
652
+ return function(msg, resolve) {
653
+ pipeArr[0](msg, resolve || noop);
654
+ };
655
+ }
656
+ return pipeArr.reduce(function(prePipe, pipe) {
657
+ return function(msg) {
658
+ var nextPipe = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : noop;
659
+ return prePipe(msg, function(msg2) {
660
+ return pipe === null || pipe === void 0 ? void 0 : pipe(msg2, nextPipe);
661
+ });
662
+ };
663
+ });
664
+ };
665
+ // src/util/eventEmitter.ts
666
+ var EventEmitter = /*#__PURE__*/ function() {
667
+ function EventEmitter() {
668
+ var _this = this;
669
+ _class_call_check(this, EventEmitter);
670
+ this.emit = function(name, data) {
671
+ if (!_this) return;
672
+ var events = _this.eventsList[name];
673
+ var handler;
674
+ if (events === null || events === void 0 ? void 0 : events.length) {
675
+ events = events.slice();
676
+ for(var i = 0; i < events.length; i++){
677
+ handler = events[i];
678
+ try {
679
+ var result = handler.callback.apply(_this, [
680
+ data
681
+ ]);
682
+ if (1 === handler.type) {
683
+ _this.remove(name, handler.callback);
684
+ }
685
+ if (false === result) {
686
+ break;
687
+ }
688
+ } catch (e) {
689
+ throw e;
690
+ }
691
+ }
692
+ }
693
+ return _this;
694
+ };
695
+ this.eventsList = {};
696
+ }
697
+ _create_class(EventEmitter, [
698
+ {
699
+ key: "indexOf",
700
+ value: function indexOf(array, value) {
701
+ for(var i = 0; i < array.length; i++){
702
+ if (array[i].callback === value) {
703
+ return i;
704
+ }
705
+ }
706
+ return -1;
707
+ }
708
+ },
709
+ {
710
+ key: "on",
711
+ value: function on(name, callback) {
712
+ var type = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
713
+ if (!this) return;
714
+ var events = this.eventsList[name];
715
+ if (!events) {
716
+ this.eventsList[name] = [];
717
+ events = this.eventsList[name];
718
+ }
719
+ if (this.indexOf(events, callback) === -1) {
720
+ var handler = {
721
+ name: name,
722
+ type: type || 0,
723
+ callback: callback
724
+ };
725
+ events.push(handler);
726
+ return this;
727
+ }
728
+ return this;
729
+ }
730
+ },
731
+ {
732
+ key: "one",
733
+ value: function one(name, callback) {
734
+ this.on(name, callback, 1);
735
+ }
736
+ },
737
+ {
738
+ key: "remove",
739
+ value: function remove(name, callback) {
740
+ if (!this) return;
741
+ var events = this.eventsList[name];
742
+ if (!events) {
743
+ return null;
744
+ }
745
+ if (!callback) {
746
+ try {
747
+ delete this.eventsList[name];
748
+ } catch (e) {}
749
+ return null;
750
+ }
751
+ if (events.length) {
752
+ var index = this.indexOf(events, callback);
753
+ events.splice(index, 1);
754
+ }
755
+ return this;
756
+ }
757
+ },
758
+ {
759
+ key: "clear",
760
+ value: function clear() {
761
+ this.eventsList = {};
762
+ }
763
+ }
764
+ ]);
765
+ return EventEmitter;
766
+ }();
767
+ // src/interface/plugins.ts
768
+ var AirTrackerPlugin = /*#__PURE__*/ function() {
769
+ function AirTrackerPlugin(pluginOption) {
770
+ _class_call_check(this, AirTrackerPlugin);
771
+ this.name = "";
772
+ // initiation flag
773
+ this.isInit = false;
774
+ this.name = pluginOption.name;
775
+ this.option = pluginOption;
776
+ }
777
+ _create_class(AirTrackerPlugin, [
778
+ {
779
+ key: "patch",
780
+ value: function patch(airTracker2) {
781
+ if (!this.isInit) {
782
+ var _this_option_setUp, _this_option;
783
+ this.isInit = true;
784
+ (_this_option = this.option) === null || _this_option === void 0 ? void 0 : (_this_option_setUp = _this_option.setUp) === null || _this_option_setUp === void 0 ? void 0 : _this_option_setUp.call(this.option, airTracker2);
785
+ }
786
+ }
787
+ },
788
+ {
789
+ key: "uninstall",
790
+ value: function uninstall() {
791
+ var _this_option_destroy, _this_option;
792
+ (_this_option = this.option) === null || _this_option === void 0 ? void 0 : (_this_option_destroy = _this_option.destroy) === null || _this_option_destroy === void 0 ? void 0 : _this_option_destroy.apply(this);
793
+ this.isInit = false;
794
+ }
795
+ }
796
+ ]);
797
+ return AirTrackerPlugin;
798
+ }();
799
+ // src/plugins/onErrorPlugin.ts
800
+ var airTracker;
801
+ var onError = function(event) {
802
+ var errString = "".concat(safeStringify(event.message) || "", " @ (").concat(safeStringify(event.filename) || "", ":").concat(event.lineno || 0, ":").concat(event.colno || 0, ")\n").concat(safeStringify(event.error || ""));
803
+ airTracker.normalLogPipeLine({
804
+ severity: "autoDetectError" /* AUTO_DETECT_ERROR */ ,
805
+ eventName: "windowOnError" /* windowOnError */ ,
806
+ extraInfo: {
807
+ error: errString
808
+ }
809
+ });
810
+ };
811
+ var unhandledrejectionHandler = function(event) {
812
+ var reason = event && safeStringify(event.reason);
813
+ airTracker.normalLogPipeLine({
814
+ severity: "autoDetectError" /* AUTO_DETECT_ERROR */ ,
815
+ eventName: "promiseError" /* promiseError */ ,
816
+ extraInfo: {
817
+ error: reason
818
+ }
819
+ });
820
+ };
821
+ var errorHandler = function(event) {
822
+ var target = (event === null || event === void 0 ? void 0 : event.target) || (event === null || event === void 0 ? void 0 : event.srcElement);
823
+ if (!target) {
824
+ return;
825
+ }
826
+ var url = (target === null || target === void 0 ? void 0 : target.src) || (target === null || target === void 0 ? void 0 : target.href);
827
+ var tagName = target.tagName;
828
+ var staticFileType = "unknown" /* unknown */ ;
829
+ if (typeof url === "string" && tagName) {
830
+ if (window.location.href.indexOf(url) > -1) {
831
+ return;
832
+ }
833
+ if (/\.js$/.test(url)) {
834
+ staticFileType = "script" /* script */ ;
835
+ } else if (/\.css$/.test(url)) {
836
+ staticFileType = "css" /* css */ ;
837
+ } else {
838
+ switch(tagName.toLowerCase()){
839
+ case "script":
840
+ staticFileType = "script" /* script */ ;
841
+ break;
842
+ case "link":
843
+ staticFileType = "css" /* css */ ;
844
+ break;
845
+ case "img":
846
+ staticFileType = "image" /* img */ ;
847
+ break;
848
+ case "audio":
849
+ case "video":
850
+ staticFileType = "media" /* media */ ;
851
+ break;
852
+ default:
853
+ return;
854
+ }
855
+ }
856
+ airTracker.normalLogPipeLine({
857
+ severity: "autoDetectError" /* AUTO_DETECT_ERROR */ ,
858
+ eventName: "staticFileLoadError" /* staticFileLoadError */ ,
859
+ extraInfo: {
860
+ staticFileType: staticFileType,
861
+ error: "".concat(tagName, " load fail: ").concat(url)
862
+ }
863
+ });
864
+ }
865
+ };
866
+ var errorDetectionPlugin = new AirTrackerPlugin({
867
+ name: "errorDetectionPlugin",
868
+ setUp: function(airTrackerInst) {
869
+ airTracker = airTrackerInst;
870
+ window.addEventListener("error", onError);
871
+ window.addEventListener("unhandledrejection", unhandledrejectionHandler);
872
+ window.document.addEventListener("error", errorHandler, true);
873
+ },
874
+ destroy: function() {
875
+ window.removeEventListener("unhandledrejection", unhandledrejectionHandler);
876
+ window.document.removeEventListener("error", errorHandler, true);
877
+ window.removeEventListener("error", onError);
878
+ }
879
+ });
880
+ // src/plugins/assetsSpeedPlugin.ts
881
+ var ASSETS_INITIATOR_TYPE = [
882
+ "img",
883
+ "css",
884
+ "script",
885
+ "link",
886
+ "audio",
887
+ "video",
888
+ "iframe"
889
+ ];
890
+ var COLLECTED_ENTRY_TYPE = "resource";
891
+ var generateSpeedLog = function(entry) {
892
+ var resourceURl = entry.name;
893
+ return {
894
+ url: formatUrl(resourceURl),
895
+ method: "get",
896
+ // duration = redirect + DNS + CONNECTION + request + response
897
+ duration: Number(entry.duration.toFixed(2)),
898
+ // time it takes to load
899
+ type: "static",
900
+ isHttps: urlIsHttps(resourceURl),
901
+ urlQuery: getQueryString(resourceURl),
902
+ domainLookup: getReportVal(entry.domainLookupEnd - entry.domainLookupStart),
903
+ connectTime: getReportVal(entry.connectEnd - entry.connectStart)
904
+ };
905
+ };
906
+ var publishSpeedLogs = function(entries, airTracker2) {
907
+ for(var i = 0, l = entries.length; i < l; i++){
908
+ var entry = entries[i];
909
+ if (ASSETS_INITIATOR_TYPE.indexOf(entry.initiatorType) !== -1 && checkIfInWhiteList(entry.name, airTracker2)) {
910
+ airTracker2.normalLogPipeLine({
911
+ severity: "performance" /* PERFORMANCE */ ,
912
+ eventName: "assets_speed" /* ASSETS_SPEED */ ,
913
+ extraInfo: {
914
+ log: generateSpeedLog(entry)
915
+ }
916
+ });
917
+ }
918
+ }
919
+ };
920
+ var interval;
921
+ var observer;
922
+ var assetSpeedPlugin = new AirTrackerPlugin({
923
+ name: "assetsSpeedPlugin",
924
+ setUp: function(airTracker2) {
925
+ if (!canUseResourceTiming()) return;
926
+ var collectCur = 0;
927
+ window.performance.onresourcetimingbufferfull = function() {
928
+ collectCur = 0;
929
+ window.performance.clearResourceTimings();
930
+ };
931
+ if (typeof window.PerformanceObserver === "function") {
932
+ publishSpeedLogs(window.performance.getEntriesByType(COLLECTED_ENTRY_TYPE), airTracker2);
933
+ observer = new window.PerformanceObserver(function(list) {
934
+ publishSpeedLogs(list.getEntries(), airTracker2);
935
+ });
936
+ observer.observe({
937
+ entryTypes: [
938
+ COLLECTED_ENTRY_TYPE
939
+ ]
940
+ });
941
+ } else {
942
+ interval = setInterval(function() {
943
+ var allEntries = window.performance.getEntriesByType(COLLECTED_ENTRY_TYPE);
944
+ var collectEntries = allEntries.slice(collectCur);
945
+ collectCur = allEntries.length;
946
+ publishSpeedLogs(collectEntries, airTracker2);
947
+ }, 3e3);
948
+ }
949
+ },
950
+ destroy: function() {
951
+ observer === null || observer === void 0 ? void 0 : observer.disconnect();
952
+ interval && clearInterval(interval);
953
+ }
954
+ });
955
+ // src/plugins/onPageChangePlugin.ts
956
+ var observer2;
957
+ var onPageChangePlugin = new AirTrackerPlugin({
958
+ name: "onPageChangePlugin",
959
+ setUp: /*#__PURE__*/ function() {
960
+ var _ref = _async_to_generator(function(airTracker2) {
961
+ var _location, previousUrl, body, sendOnPageChangeEvent, config;
962
+ return _ts_generator(this, function(_state) {
963
+ previousUrl = (_location = location) === null || _location === void 0 ? void 0 : _location.href;
964
+ body = document.querySelector("body");
965
+ sendOnPageChangeEvent = function(param) {
966
+ var prevHref = param.prevHref;
967
+ var _location, _location1, _location2, _location3, _location4;
968
+ airTracker2.normalLogPipeLine({
969
+ severity: "autoDetectEvent" /* AUTO_DETECT_EVENT */ ,
970
+ eventName: "onPageChange" /* onPageChange */ ,
971
+ extraInfo: {
972
+ prevHref: prevHref,
973
+ href: ((_location = location) === null || _location === void 0 ? void 0 : _location.href) || "",
974
+ hostname: (_location1 = location) === null || _location1 === void 0 ? void 0 : _location1.hostname,
975
+ pathName: (_location2 = location) === null || _location2 === void 0 ? void 0 : _location2.pathname,
976
+ protocol: (_location3 = location) === null || _location3 === void 0 ? void 0 : _location3.protocol,
977
+ search: (_location4 = location) === null || _location4 === void 0 ? void 0 : _location4.search
978
+ }
979
+ });
980
+ };
981
+ sendOnPageChangeEvent({
982
+ prevHref: ""
983
+ });
984
+ observer2 = new MutationObserver(function() {
985
+ if (location.href !== previousUrl) {
986
+ var tempPreviousUrl = previousUrl;
987
+ previousUrl = location.href;
988
+ sendOnPageChangeEvent({
989
+ prevHref: tempPreviousUrl
990
+ });
991
+ }
992
+ });
993
+ config = {
994
+ subtree: true,
995
+ childList: true
996
+ };
997
+ observer2.observe(body || document, config);
998
+ return [
999
+ 2
1000
+ ];
1001
+ });
1002
+ });
1003
+ return function(airTracker2) {
1004
+ return _ref.apply(this, arguments);
1005
+ };
1006
+ }(),
1007
+ destroy: function() {
1008
+ observer2 === null || observer2 === void 0 ? void 0 : observer2.disconnect();
1009
+ }
1010
+ });
1011
+ // src/plugins/pageRetentionPlugin.ts
1012
+ var observer3;
1013
+ var onPageRetentionPlugin = new AirTrackerPlugin({
1014
+ name: "onPageRetentionPlugin",
1015
+ setUp: /*#__PURE__*/ function() {
1016
+ var _ref = _async_to_generator(function(airTracker2) {
1017
+ var _location, previousUrl, body, enterPageTimeStamp, startRecording, sendPageRetentionEvent, config;
1018
+ return _ts_generator(this, function(_state) {
1019
+ if (typeof document.visibilityState === "undefined") {
1020
+ return [
1021
+ 2
1022
+ ];
1023
+ }
1024
+ previousUrl = (_location = location) === null || _location === void 0 ? void 0 : _location.href;
1025
+ body = document.querySelector("body");
1026
+ startRecording = function() {
1027
+ enterPageTimeStamp = Date.now();
1028
+ };
1029
+ startRecording();
1030
+ document.addEventListener("visibilitychange", function() {
1031
+ if (document.visibilityState === "hidden") {
1032
+ sendPageRetentionEvent({
1033
+ href: location.href,
1034
+ leftReason: "visibilityChange" /* visibilityChange */
1035
+ });
1036
+ } else if (document.visibilityState === "visible") {
1037
+ startRecording();
1038
+ }
1039
+ });
1040
+ window.addEventListener("beforeunload", function() {
1041
+ sendPageRetentionEvent({
1042
+ href: location.href,
1043
+ sendImmediate: true,
1044
+ leftReason: "pageClose" /* pageClose */
1045
+ });
1046
+ });
1047
+ sendPageRetentionEvent = function(param) {
1048
+ var href = param.href, sendImmediate = param.sendImmediate, leftReason = param.leftReason;
1049
+ if (!enterPageTimeStamp) {
1050
+ return;
1051
+ }
1052
+ var duration = Date.now() - enterPageTimeStamp;
1053
+ if (duration === 0) {
1054
+ return;
1055
+ }
1056
+ enterPageTimeStamp = void 0;
1057
+ var payload = {
1058
+ severity: "autoDetectEvent" /* AUTO_DETECT_EVENT */ ,
1059
+ eventName: "onPageRetention" /* onPageRetention */ ,
1060
+ extraInfo: {
1061
+ href: href,
1062
+ duration: duration,
1063
+ leftReason: leftReason
1064
+ }
1065
+ };
1066
+ if (sendImmediate) {
1067
+ airTracker2.ImmediatePipeline(payload);
1068
+ return;
1069
+ }
1070
+ airTracker2.normalLogPipeLine(payload);
1071
+ };
1072
+ observer3 = new MutationObserver(function() {
1073
+ if (location.href !== previousUrl) {
1074
+ var tempPreviousUrl = previousUrl;
1075
+ previousUrl = location.href;
1076
+ sendPageRetentionEvent({
1077
+ href: tempPreviousUrl,
1078
+ leftReason: "nextPage" /* nextPage */
1079
+ });
1080
+ startRecording();
1081
+ }
1082
+ });
1083
+ config = {
1084
+ subtree: true,
1085
+ childList: true
1086
+ };
1087
+ observer3.observe(body || document, config);
1088
+ return [
1089
+ 2
1090
+ ];
1091
+ });
1092
+ });
1093
+ return function(airTracker2) {
1094
+ return _ref.apply(this, arguments);
1095
+ };
1096
+ }(),
1097
+ destroy: function() {
1098
+ observer3 === null || observer3 === void 0 ? void 0 : observer3.disconnect();
1099
+ }
1100
+ });
1101
+ // src/plugins/apiPerformancePlugin/utils.ts
1102
+ var generateRandomId = function() {
1103
+ return Date.now().toString(36) + Math.random().toString(36).substring(2, 15);
1104
+ };
1105
+ var checkIfInWhiteList2 = function(url, whiteList) {
1106
+ var defaultWhiteList = [
1107
+ /^https?:\/\/[^\/]*\.airwallex\.com($|\/)/
1108
+ ];
1109
+ var defaultExclusionList = [
1110
+ /authenticate\/heartbeat/,
1111
+ /papluginlogs\/.*/,
1112
+ /airtracker\/.*/,
1113
+ /o11y(-staging|-demo)?\.airwallex\.com/,
1114
+ /\.(png|jpe?g|gif|svg|ico|webp|avif|css|js|json|woff2?|ttf|eot|map|txt|csv|xml)(\?.*)?(#.*)?$/i
1115
+ ];
1116
+ if (defaultExclusionList.some(function(item) {
1117
+ return item.test(url);
1118
+ })) {
1119
+ return false;
1120
+ }
1121
+ return checkIfInWhiteListHelper(url, whiteList || defaultWhiteList);
1122
+ };
1123
+ var findMainEntry = function(performanceItem) {
1124
+ var startTime = performanceItem.startTime, endTime = performanceItem.endTime, entries = performanceItem.entries;
1125
+ if (entries.length === 0) {
1126
+ return void 0;
1127
+ }
1128
+ if (entries.length === 1) {
1129
+ return entries[0];
1130
+ }
1131
+ var filteredEntries = entries.filter(function(entry) {
1132
+ return entry.startTime >= startTime && endTime && entry.responseEnd <= endTime;
1133
+ }).sort(function(a, b) {
1134
+ return a.startTime - b.startTime;
1135
+ });
1136
+ return filteredEntries === null || filteredEntries === void 0 ? void 0 : filteredEntries[0];
1137
+ };
1138
+ var round2Decimal = function(value) {
1139
+ return Math.round(value * 100) / 100;
1140
+ };
1141
+ var processPerformanceEntry = function(entry) {
1142
+ var startTime = entry.startTime, duration = entry.duration, responseStart = entry.responseStart, connectEnd = entry.connectEnd, connectStart = entry.connectStart, domainLookupEnd = entry.domainLookupEnd, domainLookupStart = entry.domainLookupStart, requestStart = entry.requestStart, secureConnectionStart = entry.secureConnectionStart, redirectEnd = entry.redirectEnd, redirectStart = entry.redirectStart, responseStatus = entry.responseStatus, responseEnd = entry.responseEnd, encodedBodySize = entry.encodedBodySize, decodedBodySize = entry.decodedBodySize, transferSize = entry.transferSize, deliveryType = entry.deliveryType, initiatorType = entry.initiatorType;
1143
+ return {
1144
+ startTime: round2Decimal(startTime),
1145
+ totalDuration: round2Decimal(duration),
1146
+ timeToFirstByte: roundSubtract(responseStart, startTime),
1147
+ tcpDuration: roundSubtract(connectEnd, connectStart),
1148
+ dnsDuration: roundSubtract(domainLookupEnd, domainLookupStart),
1149
+ tlsDuration: roundSubtract(requestStart, secureConnectionStart),
1150
+ redirectDuration: roundSubtract(redirectEnd, redirectStart),
1151
+ responseDuration: roundSubtract(responseEnd, responseStart),
1152
+ encodeResponseSize: encodedBodySize,
1153
+ decodeResponseSize: decodedBodySize,
1154
+ transferSize: transferSize,
1155
+ deliveryType: deliveryType,
1156
+ statusCode: responseStatus,
1157
+ initiatorType: initiatorType
1158
+ };
1159
+ };
1160
+ var getPayload = function(performanceItem, extraInfo) {
1161
+ var url = performanceItem.url, method = performanceItem.method, errorType = performanceItem.errorType, errorDetail = performanceItem.errorDetail;
1162
+ var mainEntry = findMainEntry(performanceItem);
1163
+ var _ref = new URL(url, window.location.href), href = _ref.href, protocol = _ref.protocol;
1164
+ var payloadFromPerformanceEntry = mainEntry ? processPerformanceEntry(mainEntry) : {};
1165
+ var payload = {
1166
+ severity: "autoDetectEvent" /* AUTO_DETECT_EVENT */ ,
1167
+ eventName: "httpClientMetrics" /* httpClientMetrics */ ,
1168
+ extraInfo: _object_spread(_object_spread_props(_object_spread({
1169
+ httpUrl: href,
1170
+ method: method,
1171
+ scheme: protocol
1172
+ }, errorType && {
1173
+ errorType: errorType
1174
+ }, errorDetail && {
1175
+ errorDetail: errorDetail
1176
+ }, payloadFromPerformanceEntry), {
1177
+ // use injected response as fallback
1178
+ statusCode: (payloadFromPerformanceEntry === null || payloadFromPerformanceEntry === void 0 ? void 0 : payloadFromPerformanceEntry.statusCode) || (performanceItem === null || performanceItem === void 0 ? void 0 : performanceItem.responseStatus),
1179
+ startTime: (payloadFromPerformanceEntry === null || payloadFromPerformanceEntry === void 0 ? void 0 : payloadFromPerformanceEntry.startTime) || (performanceItem === null || performanceItem === void 0 ? void 0 : performanceItem.startTime),
1180
+ initiatorType: (payloadFromPerformanceEntry === null || payloadFromPerformanceEntry === void 0 ? void 0 : payloadFromPerformanceEntry.initiatorType) || (performanceItem === null || performanceItem === void 0 ? void 0 : performanceItem.initiatorType)
1181
+ }), extraInfo)
1182
+ };
1183
+ return payload;
1184
+ };
1185
+ var isGraphQLError = function(responseBody) {
1186
+ return(// Has data or errors at root level
1187
+ responseBody && (typeof responseBody === "undefined" ? "undefined" : _type_of(responseBody)) === "object" && "errors" in responseBody && // If errors exist, they should be an array with proper GraphQL error shape
1188
+ Array.isArray(responseBody.errors) && responseBody.errors.every(function(error) {
1189
+ return error && (typeof error === "undefined" ? "undefined" : _type_of(error)) === "object" && "message" in error;
1190
+ }));
1191
+ };
1192
+ // src/plugins/apiPerformancePlugin/type.ts
1193
+ var API_PERFORMANCE_QUEUE = "awx_airtracker_api_performance_queue";
1194
+ var API_PERFORMANCE_PLUGIN_LOADED = "awx_airtracker_api_performance_plugin_loaded";
1195
+ // src/plugins/apiPerformancePlugin/index.ts
1196
+ var OBSERVER_WAIT_TIME_MS = 300;
1197
+ var TIMEOUT_WAIT_TIME_MS = 1e4;
1198
+ var globalObject = typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {};
1199
+ globalObject[API_PERFORMANCE_QUEUE] = globalObject[API_PERFORMANCE_QUEUE] || [];
1200
+ var handlePayloadAndSendLog = function(apiPerformanceItem, airTracker2, extraInfo) {
1201
+ setTimeout(function() {
1202
+ var payload = getPayload(apiPerformanceItem, extraInfo);
1203
+ airTracker2.observerPipeline(payload);
1204
+ globalObject[API_PERFORMANCE_QUEUE] = globalObject[API_PERFORMANCE_QUEUE].filter(function(item) {
1205
+ return item.id !== apiPerformanceItem.id;
1206
+ });
1207
+ }, OBSERVER_WAIT_TIME_MS);
1208
+ };
1209
+ var handleTimeout = function(requestId, airTracker2) {
1210
+ setTimeout(function() {
1211
+ var matchedApiPerformanceItem = globalObject[API_PERFORMANCE_QUEUE].find(function(item) {
1212
+ return item.id === requestId;
1213
+ });
1214
+ if (!matchedApiPerformanceItem) {
1215
+ return;
1216
+ }
1217
+ var payload = getPayload(matchedApiPerformanceItem, {
1218
+ exceptionType: "timeout-without-response"
1219
+ });
1220
+ airTracker2.observerPipeline(payload);
1221
+ globalObject[API_PERFORMANCE_QUEUE] = globalObject[API_PERFORMANCE_QUEUE].filter(function(item) {
1222
+ return item.id !== requestId;
1223
+ });
1224
+ }, TIMEOUT_WAIT_TIME_MS);
1225
+ };
1226
+ var injectXMLHttpRequest = function(airTracker2) {
1227
+ var originalOpen = XMLHttpRequest.prototype.open;
1228
+ var originalSend = XMLHttpRequest.prototype.send;
1229
+ XMLHttpRequest.prototype.open = function injectXMLHttpRequest(method, url, async, username, password) {
1230
+ try {
1231
+ var _airTracker2_config;
1232
+ var requestId = generateRandomId();
1233
+ this.__requestId = requestId;
1234
+ var urlString = _instanceof(url, URL) ? url.href : new URL(url, window.location.href).href;
1235
+ if (!checkIfInWhiteList2(urlString, (_airTracker2_config = airTracker2.config) === null || _airTracker2_config === void 0 ? void 0 : _airTracker2_config.enableRecordAPIPerformanceWhitelist)) {
1236
+ return originalOpen.call(this, method, url, async !== null && async !== void 0 ? async : true, username, password);
1237
+ }
1238
+ var apiPerformanceItem = {
1239
+ id: requestId,
1240
+ startTime: performance.now(),
1241
+ method: method,
1242
+ url: urlString,
1243
+ entries: [],
1244
+ initiatorType: "xmlhttprequest"
1245
+ };
1246
+ globalObject[API_PERFORMANCE_QUEUE].push(apiPerformanceItem);
1247
+ handleTimeout(requestId, airTracker2);
1248
+ return originalOpen.call(this, method, url, async !== null && async !== void 0 ? async : true, username, password);
1249
+ } catch (error) {
1250
+ airTracker2.normalLogPipeLine({
1251
+ severity: "warn" /* WARN */ ,
1252
+ eventName: "apiPerformancePluginError",
1253
+ extraInfo: {
1254
+ message: "Inject XHR open error",
1255
+ error: error
1256
+ }
1257
+ });
1258
+ return originalOpen.call(this, method, url, async !== null && async !== void 0 ? async : true, username, password);
1259
+ }
1260
+ };
1261
+ XMLHttpRequest.prototype.send = function sendXHRRequest() {
1262
+ var _this = this;
1263
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1264
+ args[_key] = arguments[_key];
1265
+ }
1266
+ try {
1267
+ var matchedApiPerformanceItem = globalObject[API_PERFORMANCE_QUEUE].find(function(item) {
1268
+ return item.id === _this.__requestId;
1269
+ });
1270
+ if (!matchedApiPerformanceItem) {
1271
+ return originalSend.apply(this, args);
1272
+ }
1273
+ var _this1 = this;
1274
+ this.addEventListener("loadend", /*#__PURE__*/ _async_to_generator(function() {
1275
+ var endTime, duration, status, responseBody, blob, parsedBody, e;
1276
+ return _ts_generator(this, function(_state) {
1277
+ switch(_state.label){
1278
+ case 0:
1279
+ endTime = performance.now();
1280
+ duration = endTime - matchedApiPerformanceItem.startTime;
1281
+ status = _this1.status;
1282
+ if (status === 0) {
1283
+ return [
1284
+ 2
1285
+ ];
1286
+ }
1287
+ matchedApiPerformanceItem.endTime = endTime;
1288
+ matchedApiPerformanceItem.duration = duration;
1289
+ matchedApiPerformanceItem.responseStatus = status;
1290
+ _state.label = 1;
1291
+ case 1:
1292
+ _state.trys.push([
1293
+ 1,
1294
+ 6,
1295
+ ,
1296
+ 7
1297
+ ]);
1298
+ if (!(_this1.responseType === "" || _this1.responseType === "text")) return [
1299
+ 3,
1300
+ 2
1301
+ ];
1302
+ responseBody = _this1.responseText;
1303
+ return [
1304
+ 3,
1305
+ 5
1306
+ ];
1307
+ case 2:
1308
+ if (!(_this1.responseType === "json")) return [
1309
+ 3,
1310
+ 3
1311
+ ];
1312
+ responseBody = _this1.response;
1313
+ return [
1314
+ 3,
1315
+ 5
1316
+ ];
1317
+ case 3:
1318
+ if (!(_this1.responseType === "blob")) return [
1319
+ 3,
1320
+ 5
1321
+ ];
1322
+ blob = _this1.response;
1323
+ if (!((blob === null || blob === void 0 ? void 0 : blob.type) === "application/json")) return [
1324
+ 3,
1325
+ 5
1326
+ ];
1327
+ return [
1328
+ 4,
1329
+ blob.text()
1330
+ ];
1331
+ case 4:
1332
+ responseBody = _state.sent();
1333
+ _state.label = 5;
1334
+ case 5:
1335
+ parsedBody = responseBody && typeof responseBody === "string" ? JSON.parse(responseBody) : responseBody;
1336
+ if (parsedBody && isGraphQLError(parsedBody)) {
1337
+ matchedApiPerformanceItem.errorType = "graphqlError";
1338
+ matchedApiPerformanceItem.errorDetail = parsedBody.errors;
1339
+ }
1340
+ return [
1341
+ 3,
1342
+ 7
1343
+ ];
1344
+ case 6:
1345
+ e = _state.sent();
1346
+ airTracker2.normalLogPipeLine({
1347
+ severity: "warn" /* WARN */ ,
1348
+ eventName: "apiPerformancePluginError",
1349
+ extraInfo: {
1350
+ message: "Parse response body error in XHR",
1351
+ url: matchedApiPerformanceItem === null || matchedApiPerformanceItem === void 0 ? void 0 : matchedApiPerformanceItem.url,
1352
+ error: e
1353
+ }
1354
+ });
1355
+ return [
1356
+ 3,
1357
+ 7
1358
+ ];
1359
+ case 7:
1360
+ handlePayloadAndSendLog(matchedApiPerformanceItem, airTracker2);
1361
+ return [
1362
+ 2
1363
+ ];
1364
+ }
1365
+ });
1366
+ }));
1367
+ this.addEventListener("error", function() {
1368
+ handlePayloadAndSendLog(matchedApiPerformanceItem, airTracker2, {
1369
+ exceptionType: "network-error"
1370
+ });
1371
+ });
1372
+ this.addEventListener("abort", function() {
1373
+ handlePayloadAndSendLog(matchedApiPerformanceItem, airTracker2, {
1374
+ exceptionType: "abort-error"
1375
+ });
1376
+ });
1377
+ this.addEventListener("timeout", function() {
1378
+ handlePayloadAndSendLog(matchedApiPerformanceItem, airTracker2, {
1379
+ exceptionType: "timeout-error"
1380
+ });
1381
+ });
1382
+ return originalSend.apply(this, args);
1383
+ } catch (error) {
1384
+ airTracker2.normalLogPipeLine({
1385
+ severity: "warn" /* WARN */ ,
1386
+ eventName: "apiPerformancePluginError",
1387
+ extraInfo: {
1388
+ message: "InjectXHR send error",
1389
+ error: error
1390
+ }
1391
+ });
1392
+ throw error;
1393
+ }
1394
+ };
1395
+ };
1396
+ var injectFetch = function(airTracker2) {
1397
+ var originalFetch = window.fetch;
1398
+ window.fetch = /*#__PURE__*/ _async_to_generator(function() {
1399
+ var _len, args, _key, _airTracker2_config, apiPerformanceItem, url, _this, startTime, id, response, endTime, clonedResponse, responseBody, error, error1, exceptionType;
1400
+ var _arguments = arguments;
1401
+ return _ts_generator(this, function(_state) {
1402
+ switch(_state.label){
1403
+ case 0:
1404
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1405
+ args[_key] = _arguments[_key];
1406
+ }
1407
+ url = new URL(_instanceof(args[0], Request) ? args[0].url : String(args[0]), window.location.href).href;
1408
+ if (!!checkIfInWhiteList2(url, (_airTracker2_config = airTracker2.config) === null || _airTracker2_config === void 0 ? void 0 : _airTracker2_config.enableRecordAPIPerformanceWhitelist)) return [
1409
+ 3,
1410
+ 2
1411
+ ];
1412
+ return [
1413
+ 4,
1414
+ originalFetch.apply(this, args)
1415
+ ];
1416
+ case 1:
1417
+ return [
1418
+ 2,
1419
+ _state.sent()
1420
+ ];
1421
+ case 2:
1422
+ _state.trys.push([
1423
+ 2,
1424
+ 9,
1425
+ ,
1426
+ 10
1427
+ ]);
1428
+ startTime = performance.now();
1429
+ id = generateRandomId();
1430
+ apiPerformanceItem = {
1431
+ id: id,
1432
+ startTime: startTime,
1433
+ method: ((_this = _instanceof(args[0], Request) ? args[0] : args[1]) === null || _this === void 0 ? void 0 : _this.method) || "GET",
1434
+ url: url,
1435
+ entries: [],
1436
+ initiatorType: "fetch"
1437
+ };
1438
+ globalObject[API_PERFORMANCE_QUEUE].push(apiPerformanceItem);
1439
+ handleTimeout(id, airTracker2);
1440
+ return [
1441
+ 4,
1442
+ originalFetch.apply(this, args)
1443
+ ];
1444
+ case 3:
1445
+ response = _state.sent();
1446
+ endTime = performance.now();
1447
+ apiPerformanceItem.endTime = endTime;
1448
+ apiPerformanceItem.duration = endTime - startTime;
1449
+ apiPerformanceItem.responseStatus = response.status;
1450
+ clonedResponse = response.clone();
1451
+ _state.label = 4;
1452
+ case 4:
1453
+ _state.trys.push([
1454
+ 4,
1455
+ 7,
1456
+ ,
1457
+ 8
1458
+ ]);
1459
+ if (!clonedResponse.ok) return [
1460
+ 3,
1461
+ 6
1462
+ ];
1463
+ return [
1464
+ 4,
1465
+ clonedResponse.json()
1466
+ ];
1467
+ case 5:
1468
+ responseBody = _state.sent();
1469
+ if (responseBody && isGraphQLError(responseBody)) {
1470
+ apiPerformanceItem.errorType = "graphqlError";
1471
+ apiPerformanceItem.errorDetail = responseBody.errors;
1472
+ }
1473
+ _state.label = 6;
1474
+ case 6:
1475
+ return [
1476
+ 3,
1477
+ 8
1478
+ ];
1479
+ case 7:
1480
+ error = _state.sent();
1481
+ airTracker2.normalLogPipeLine({
1482
+ severity: "warn" /* WARN */ ,
1483
+ eventName: "apiPerformancePluginError",
1484
+ extraInfo: {
1485
+ message: "Parse response body error in fetch",
1486
+ url: apiPerformanceItem === null || apiPerformanceItem === void 0 ? void 0 : apiPerformanceItem.url,
1487
+ error: error
1488
+ }
1489
+ });
1490
+ return [
1491
+ 3,
1492
+ 8
1493
+ ];
1494
+ case 8:
1495
+ handlePayloadAndSendLog(apiPerformanceItem, airTracker2);
1496
+ return [
1497
+ 2,
1498
+ response
1499
+ ];
1500
+ case 9:
1501
+ error1 = _state.sent();
1502
+ if (apiPerformanceItem && apiPerformanceItem.id && globalObject[API_PERFORMANCE_QUEUE].find(function(item) {
1503
+ return item.id === (apiPerformanceItem === null || apiPerformanceItem === void 0 ? void 0 : apiPerformanceItem.id);
1504
+ })) {
1505
+ exceptionType = "fetch-error";
1506
+ if (_instanceof(error1, TypeError)) {
1507
+ exceptionType = "network-error";
1508
+ } else if (_instanceof(error1, DOMException) && error1.name === "AbortError") {
1509
+ exceptionType = "abort-error";
1510
+ }
1511
+ handlePayloadAndSendLog(apiPerformanceItem, airTracker2, {
1512
+ exceptionType: exceptionType
1513
+ });
1514
+ } else {
1515
+ airTracker2.normalLogPipeLine({
1516
+ severity: "warn" /* WARN */ ,
1517
+ eventName: "apiPerformancePluginError",
1518
+ extraInfo: {
1519
+ message: "Inject fetch error",
1520
+ error: error1
1521
+ }
1522
+ });
1523
+ }
1524
+ throw error1;
1525
+ case 10:
1526
+ return [
1527
+ 2
1528
+ ];
1529
+ }
1530
+ });
1531
+ });
1532
+ };
1533
+ var setUpAPIPerformancePlugin = function(airTracker2) {
1534
+ var _window;
1535
+ injectXMLHttpRequest(airTracker2);
1536
+ injectFetch(airTracker2);
1537
+ if ((_window = window) === null || _window === void 0 ? void 0 : _window.PerformanceObserver) {
1538
+ var observer4 = new window.PerformanceObserver(function(list) {
1539
+ var entries = list.getEntries();
1540
+ entries.forEach(function(entry) {
1541
+ var resourceEntry = entry;
1542
+ if (resourceEntry.initiatorType === "fetch" || resourceEntry.initiatorType === "xmlhttprequest") {
1543
+ var items = globalObject[API_PERFORMANCE_QUEUE].filter(function(item) {
1544
+ return item.url === resourceEntry.name;
1545
+ });
1546
+ items.forEach(function(item) {
1547
+ item.entries.push(resourceEntry);
1548
+ });
1549
+ }
1550
+ });
1551
+ });
1552
+ observer4.observe({
1553
+ entryTypes: [
1554
+ "resource"
1555
+ ],
1556
+ buffered: true
1557
+ });
1558
+ } else {
1559
+ airTracker2.normalLogPipeLine({
1560
+ severity: "warn" /* WARN */ ,
1561
+ eventName: "apiPerformancePluginError",
1562
+ extraInfo: {
1563
+ error: "PerformanceObserver Not Supported"
1564
+ }
1565
+ });
1566
+ }
1567
+ };
1568
+ var apiPerformancePlugin = new AirTrackerPlugin({
1569
+ name: "apiPerformancePlugin",
1570
+ setUp: /*#__PURE__*/ function() {
1571
+ var _ref = _async_to_generator(function(airTracker2) {
1572
+ var _airTracker2_config, _airTracker2_config1;
1573
+ return _ts_generator(this, function(_state) {
1574
+ if (globalObject[API_PERFORMANCE_PLUGIN_LOADED]) {
1575
+ return [
1576
+ 2
1577
+ ];
1578
+ }
1579
+ if (((_airTracker2_config = airTracker2.config) === null || _airTracker2_config === void 0 ? void 0 : _airTracker2_config.enableRecordAPIPerformance) && Math.random() < (((_airTracker2_config1 = airTracker2.config) === null || _airTracker2_config1 === void 0 ? void 0 : _airTracker2_config1.enableRecordAPIPerformancePercentage) || 0)) {
1580
+ globalObject[API_PERFORMANCE_PLUGIN_LOADED] = true;
1581
+ setUpAPIPerformancePlugin(airTracker2);
1582
+ }
1583
+ return [
1584
+ 2
1585
+ ];
1586
+ });
1587
+ });
1588
+ return function(airTracker2) {
1589
+ return _ref.apply(this, arguments);
1590
+ };
1591
+ }()
1592
+ });
1593
+ // src/util/version.ts
1594
+ var SDK_VERSION = "3.1.0";
1595
+ // src/airTracker.ts
1596
+ var AirTracker = /*#__PURE__*/ function() {
1597
+ function AirTracker(param) {
1598
+ var _this = this;
1599
+ var config = param.config, _param_plugins = param.plugins, plugins = _param_plugins === void 0 ? [] : _param_plugins;
1600
+ _class_call_check(this, AirTracker);
1601
+ this.config = DEFAULT_CONFIG;
1602
+ this.lifeCycle = new EventEmitter();
1603
+ this.plugins = [];
1604
+ this._commonData = DEFAULT_COMMON_DATA;
1605
+ this._MFECommonDataMap = {};
1606
+ // customized speed log
1607
+ this.timeMap = {};
1608
+ this.packedDataConvert = function(param) {
1609
+ var severity = param.severity, eventName = param.eventName, extraInfo = param.extraInfo;
1610
+ var _location, _location1;
1611
+ var packedData = _object_spread({
1612
+ severity: severity,
1613
+ eventName: eventName,
1614
+ currentHref: _this.config.hideSearchParams ? (((_location = location) === null || _location === void 0 ? void 0 : _location.href) || "").split("?")[0] || "" : ((_location1 = location) === null || _location1 === void 0 ? void 0 : _location1.href) || ""
1615
+ }, extraInfo);
1616
+ if (_this.config.isWebappContainer) {
1617
+ packedData.MFEName = getMFEName(_this);
1618
+ }
1619
+ return packedData;
1620
+ };
1621
+ this.normalPipelineObj = createPipeline([
1622
+ throttlePipe(this, 8),
1623
+ errorLogLimitPipe(this),
1624
+ sendNormalLogPipe(this)
1625
+ ]);
1626
+ this.observerPipelineObj = createPipeline([
1627
+ throttlePipe(this, 8),
1628
+ sendMetricsLogPipe(this)
1629
+ ]);
1630
+ this.immediateSendPipe = sendNormalLogPipe(this);
1631
+ this.observerPipeline = function(param) {
1632
+ var severity = param.severity, eventName = param.eventName, extraInfo = param.extraInfo;
1633
+ var packedData = _this.packedDataConvert({
1634
+ severity: severity,
1635
+ eventName: eventName,
1636
+ extraInfo: extraInfo
1637
+ });
1638
+ return _this.observerPipelineObj(packedData);
1639
+ };
1640
+ this.normalLogPipeLine = function(param) {
1641
+ var severity = param.severity, eventName = param.eventName, extraInfo = param.extraInfo;
1642
+ var packedData = _this.packedDataConvert({
1643
+ severity: severity,
1644
+ eventName: eventName,
1645
+ extraInfo: extraInfo
1646
+ });
1647
+ if (_this.config.disableThrottle) {
1648
+ return _this.immediateSendPipe(packedData);
1649
+ } else {
1650
+ return _this.normalPipelineObj(packedData);
1651
+ }
1652
+ };
1653
+ this.ImmediatePipeline = function(param) {
1654
+ var severity = param.severity, eventName = param.eventName, extraInfo = param.extraInfo;
1655
+ var packedData = _this.packedDataConvert({
1656
+ severity: severity,
1657
+ eventName: eventName,
1658
+ extraInfo: extraInfo
1659
+ });
1660
+ return _this.immediateSendPipe(packedData);
1661
+ };
1662
+ this.plugins = _to_consumable_array(plugins);
1663
+ this.setConfig(config);
1664
+ this.initCommonData(config);
1665
+ this.lifeCycle.emit(lifeCycleEventName.onInit);
1666
+ if (config.enableErrorMonitoring) {
1667
+ this.plugins.push(errorDetectionPlugin);
1668
+ }
1669
+ if ((config === null || config === void 0 ? void 0 : config.assetSpeedMonitoringWhiteList) && config.assetSpeedMonitoringWhiteList.length > 0 || config.isWebappContainer) {
1670
+ this.plugins.push(assetSpeedPlugin);
1671
+ }
1672
+ if (config === null || config === void 0 ? void 0 : config.enableDetectPageChange) {
1673
+ this.plugins.push(onPageChangePlugin);
1674
+ }
1675
+ if (config === null || config === void 0 ? void 0 : config.enableRecordPageRetention) {
1676
+ this.plugins.push(onPageRetentionPlugin);
1677
+ }
1678
+ if ((config === null || config === void 0 ? void 0 : config.enableRecordAPIPerformance) && (config === null || config === void 0 ? void 0 : config.enableRecordAPIPerformancePercentage) && config.enableRecordAPIPerformancePercentage > 0 && config.enableRecordAPIPerformancePercentage <= 1) {
1679
+ this.plugins.push(apiPerformancePlugin);
1680
+ }
1681
+ this.installPlugins();
1682
+ }
1683
+ _create_class(AirTracker, [
1684
+ {
1685
+ key: "installPlugins",
1686
+ value: function installPlugins() {
1687
+ var _this = this;
1688
+ this.plugins.forEach(function(item) {
1689
+ item.patch(_this);
1690
+ });
1691
+ }
1692
+ },
1693
+ {
1694
+ key: "commonData",
1695
+ get: function get() {
1696
+ return this._commonData;
1697
+ }
1698
+ },
1699
+ {
1700
+ key: "MFECommonDataMap",
1701
+ get: function get() {
1702
+ return this._MFECommonDataMap;
1703
+ }
1704
+ },
1705
+ {
1706
+ key: "initCommonData",
1707
+ value: function initCommonData(config) {
1708
+ this._commonData.sessionId = config.useSessionStorageForSessionId ? getSessionId() : generateUId();
1709
+ this._commonData.deviceId = getDeviceId() || UNKNOWN_VALUE;
1710
+ this._commonData.riskDeviceId = getRiskDeviceId();
1711
+ this._commonData.networkType = getNetworkType() || "unknown" /* unknown */ ;
1712
+ this._commonData.env = config.env || this._commonData.env;
1713
+ this._commonData.accountId = config.accountId || UNKNOWN_VALUE;
1714
+ this._commonData.appVersion = config.appVersion;
1715
+ this._commonData.appName = config.appName;
1716
+ this._commonData.sdkVersion = SDK_VERSION;
1717
+ this.lifeCycle.emit(lifeCycleEventName.onCommonDataInit, this.commonData);
1718
+ }
1719
+ },
1720
+ {
1721
+ key: "updateCommonDataBasedOnConfig",
1722
+ value: function updateCommonDataBasedOnConfig(config) {
1723
+ this.lifeCycle.emit(lifeCycleEventName.onCommonUpdated, this._commonData);
1724
+ this._commonData.env = config.env || this._commonData.env;
1725
+ this._commonData.appName = config.appName || this._commonData.appName;
1726
+ this._commonData.env = config.env || this._commonData.env;
1727
+ this._commonData.accountId = config.accountId || this._commonData.accountId;
1728
+ this._commonData.appVersion = config.appVersion || this._commonData.appVersion;
1729
+ }
1730
+ },
1731
+ {
1732
+ // Can add extra common data based on developers' needs
1733
+ key: "updateCommonData",
1734
+ value: function updateCommonData(extraData) {
1735
+ this.lifeCycle.emit(lifeCycleEventName.onCommonUpdated, this._commonData);
1736
+ this._commonData = _object_spread({}, this._commonData, extraData);
1737
+ }
1738
+ },
1739
+ {
1740
+ key: "removeCommonDataByKey",
1741
+ value: function removeCommonDataByKey(keys) {
1742
+ var _this = this;
1743
+ this.lifeCycle.emit(lifeCycleEventName.onCommonUpdated, this._commonData);
1744
+ setTimeout(function() {
1745
+ keys.forEach(function(item) {
1746
+ delete _this._commonData[item];
1747
+ });
1748
+ }, 1e3);
1749
+ }
1750
+ },
1751
+ {
1752
+ // only worked if isWebappContainer is true
1753
+ key: "addToMFECommonData",
1754
+ value: function addToMFECommonData(param) {
1755
+ var MFEName = param.MFEName, MFECommonData = param.MFECommonData;
1756
+ var _this__MFECommonDataMap;
1757
+ if (!this.config.isWebappContainer) {
1758
+ return;
1759
+ }
1760
+ if (!MFEName || !MFECommonData) {
1761
+ return;
1762
+ }
1763
+ this._MFECommonDataMap = _object_spread_props(_object_spread({}, this._MFECommonDataMap || {}), _define_property({}, MFEName, _object_spread({}, ((_this__MFECommonDataMap = this._MFECommonDataMap) === null || _this__MFECommonDataMap === void 0 ? void 0 : _this__MFECommonDataMap[MFEName]) || {}, MFECommonData)));
1764
+ }
1765
+ },
1766
+ {
1767
+ // support set config later
1768
+ key: "setConfig",
1769
+ value: function setConfig(config) {
1770
+ var _this = this;
1771
+ if (this.config.isWebappContainer) {
1772
+ return;
1773
+ }
1774
+ var setValue = function(key, value) {
1775
+ _this.config[key] = value;
1776
+ };
1777
+ Object.entries(config).forEach(function(item) {
1778
+ var _item = _sliced_to_array(item, 2), key = _item[0], val = _item[1];
1779
+ if ((typeof val === "undefined" ? "undefined" : _type_of(val)) !== void 0) {
1780
+ setValue(key, val);
1781
+ }
1782
+ });
1783
+ this.lifeCycle.emit(lifeCycleEventName.onConfigInit, this.config);
1784
+ this.updateCommonDataBasedOnConfig(config);
1785
+ }
1786
+ },
1787
+ {
1788
+ // send verbose level log
1789
+ key: "verbose",
1790
+ value: function verbose(eventName, extraInfo) {
1791
+ this.normalLogPipeLine({
1792
+ severity: "verbose" /* VERBOSE */ ,
1793
+ eventName: eventName,
1794
+ extraInfo: extraInfo
1795
+ });
1796
+ }
1797
+ },
1798
+ {
1799
+ // send HTTP request log
1800
+ key: "httpLog",
1801
+ value: function httpLog(eventName, extraInfo) {
1802
+ this.normalLogPipeLine({
1803
+ severity: "http" /* HTTP */ ,
1804
+ eventName: eventName,
1805
+ extraInfo: extraInfo
1806
+ });
1807
+ }
1808
+ },
1809
+ {
1810
+ // send info level log
1811
+ key: "info",
1812
+ value: function info(eventName, extraInfo) {
1813
+ this.normalLogPipeLine({
1814
+ severity: "info" /* INFO */ ,
1815
+ eventName: eventName,
1816
+ extraInfo: extraInfo
1817
+ });
1818
+ }
1819
+ },
1820
+ {
1821
+ // send warn level log
1822
+ key: "warn",
1823
+ value: function warn(eventName, extraInfo) {
1824
+ this.normalLogPipeLine({
1825
+ severity: "warn" /* WARN */ ,
1826
+ eventName: eventName,
1827
+ extraInfo: extraInfo
1828
+ });
1829
+ }
1830
+ },
1831
+ {
1832
+ // send error level log
1833
+ key: "error",
1834
+ value: function error(eventName, extraInfo) {
1835
+ console.error("error", eventName);
1836
+ this.normalLogPipeLine({
1837
+ severity: "error" /* ERROR */ ,
1838
+ eventName: eventName,
1839
+ extraInfo: extraInfo
1840
+ });
1841
+ }
1842
+ },
1843
+ {
1844
+ // send business related log, usually used for data analysis
1845
+ // all the logs with isBusinessData == true, will be sync to bigQuery / looker
1846
+ key: "businessLog",
1847
+ value: function businessLog(eventName, extraInfo) {
1848
+ this.normalLogPipeLine({
1849
+ severity: "info" /* INFO */ ,
1850
+ eventName: eventName,
1851
+ extraInfo: _object_spread_props(_object_spread({}, extraInfo), {
1852
+ isBusinessLog: true
1853
+ })
1854
+ });
1855
+ }
1856
+ },
1857
+ {
1858
+ // duration: milliseconds
1859
+ key: "reportDuration",
1860
+ value: function reportDuration(eventName, duration, extraInfo) {
1861
+ if (typeof eventName !== "string") {
1862
+ console.warn("reportDuration: eventName (first param) must be a string");
1863
+ return;
1864
+ }
1865
+ if (typeof duration !== "number") {
1866
+ console.warn("reportDuration: duration (second param) must be number");
1867
+ return;
1868
+ }
1869
+ if (duration < 0 || duration > 6e4) {
1870
+ console.warn("reportDuration: duration (second param) must between 0 and 60000");
1871
+ return;
1872
+ }
1873
+ this.normalLogPipeLine({
1874
+ severity: "speed" /* SPEED */ ,
1875
+ eventName: eventName,
1876
+ extraInfo: _object_spread({
1877
+ duration: duration
1878
+ }, extraInfo)
1879
+ });
1880
+ }
1881
+ },
1882
+ {
1883
+ key: "getTimerKey",
1884
+ value: function getTimerKey(eventName) {
1885
+ var MFEName = getMFEName(this);
1886
+ return this.config.isWebappContainer ? "".concat(MFEName, "_").concat(eventName) : eventName;
1887
+ }
1888
+ },
1889
+ {
1890
+ key: "timeStart",
1891
+ value: function timeStart(eventName) {
1892
+ if (typeof eventName !== "string") {
1893
+ console.warn("time: first param must be a string");
1894
+ return;
1895
+ }
1896
+ if (this.timeMap[this.getTimerKey(eventName)]) {
1897
+ console.warn("Timer ".concat(eventName, " already exists"));
1898
+ }
1899
+ this.timeMap[this.getTimerKey(eventName)] = Date.now();
1900
+ }
1901
+ },
1902
+ {
1903
+ key: "timeEnd",
1904
+ value: function timeEnd(eventName, delta) {
1905
+ if (typeof eventName !== "string") {
1906
+ console.warn("timeEnd: first param must be a string");
1907
+ return;
1908
+ }
1909
+ if (this.timeMap[this.getTimerKey(eventName)]) {
1910
+ var duration = Date.now() - this.timeMap[this.getTimerKey(eventName)] + (delta || 0);
1911
+ this.normalLogPipeLine({
1912
+ severity: "speed" /* SPEED */ ,
1913
+ eventName: eventName,
1914
+ extraInfo: {
1915
+ duration: duration
1916
+ }
1917
+ });
1918
+ delete this.timeMap[this.getTimerKey(eventName)];
1919
+ } else {
1920
+ console.warn("Timer key :".concat(eventName, " does not exist"));
1921
+ }
1922
+ }
1923
+ },
1924
+ {
1925
+ // only worked if isWebappContainer is true
1926
+ key: "addToAssetSpeedWhiteListByMFE",
1927
+ value: function addToAssetSpeedWhiteListByMFE(param) {
1928
+ var MFEName = param.MFEName, whiteList = param.whiteList;
1929
+ var _this_config_assetSpeedMonitoringWhiteListByMFE;
1930
+ if (!this.config.isWebappContainer) {
1931
+ return;
1932
+ }
1933
+ if (!MFEName || !(whiteList === null || whiteList === void 0 ? void 0 : whiteList.length)) {
1934
+ return;
1935
+ }
1936
+ if (!this.config.assetSpeedMonitoringWhiteListByMFE) {
1937
+ this.config.assetSpeedMonitoringWhiteListByMFE = {};
1938
+ }
1939
+ if (!((_this_config_assetSpeedMonitoringWhiteListByMFE = this.config.assetSpeedMonitoringWhiteListByMFE) === null || _this_config_assetSpeedMonitoringWhiteListByMFE === void 0 ? void 0 : _this_config_assetSpeedMonitoringWhiteListByMFE[MFEName])) {
1940
+ this.config.assetSpeedMonitoringWhiteListByMFE = _object_spread_props(_object_spread({}, this.config.assetSpeedMonitoringWhiteListByMFE), _define_property({}, MFEName, whiteList));
1941
+ } else {
1942
+ var _this_config_assetSpeedMonitoringWhiteListByMFE_MFEName;
1943
+ var _this_config_assetSpeedMonitoringWhiteListByMFE_MFEName1, _this_config_assetSpeedMonitoringWhiteListByMFE1;
1944
+ (_this_config_assetSpeedMonitoringWhiteListByMFE1 = this.config.assetSpeedMonitoringWhiteListByMFE) === null || _this_config_assetSpeedMonitoringWhiteListByMFE1 === void 0 ? void 0 : (_this_config_assetSpeedMonitoringWhiteListByMFE_MFEName1 = _this_config_assetSpeedMonitoringWhiteListByMFE1[MFEName]) === null || _this_config_assetSpeedMonitoringWhiteListByMFE_MFEName1 === void 0 ? void 0 : (_this_config_assetSpeedMonitoringWhiteListByMFE_MFEName = _this_config_assetSpeedMonitoringWhiteListByMFE_MFEName1).push.apply(_this_config_assetSpeedMonitoringWhiteListByMFE_MFEName, _to_consumable_array(whiteList));
1945
+ }
1946
+ }
1947
+ },
1948
+ {
1949
+ // please call destroy from your app root component when your app unmount
1950
+ key: "destroy",
1951
+ value: function destroy() {
1952
+ if (this.config.isWebappContainer) {
1953
+ return;
1954
+ }
1955
+ this.plugins.forEach(function(item) {
1956
+ item.uninstall();
1957
+ });
1958
+ }
1959
+ }
1960
+ ]);
1961
+ return AirTracker;
1962
+ }();
1963
+ // src/index.ts
1964
+ var src_default = AirTracker;
1965
+
1966
+ /******************************************************************************
1967
+ Copyright (c) Microsoft Corporation.
1968
+
1969
+ Permission to use, copy, modify, and/or distribute this software for any
1970
+ purpose with or without fee is hereby granted.
1971
+
1972
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1973
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1974
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1975
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1976
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1977
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1978
+ PERFORMANCE OF THIS SOFTWARE.
1979
+ ***************************************************************************** */
1980
+ /* global Reflect, Promise, SuppressedError, Symbol */
1981
+
1982
+ var extendStatics = function(d, b) {
1983
+ extendStatics = Object.setPrototypeOf ||
1984
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
1985
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
1986
+ return extendStatics(d, b);
1987
+ };
1988
+
1989
+ function __extends(d, b) {
1990
+ if (typeof b !== "function" && b !== null)
1991
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
1992
+ extendStatics(d, b);
1993
+ function __() { this.constructor = d; }
1994
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1995
+ }
1996
+
1997
+ var __assign = function() {
1998
+ __assign = Object.assign || function __assign(t) {
1999
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
2000
+ s = arguments[i];
2001
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
2002
+ }
2003
+ return t;
2004
+ };
2005
+ return __assign.apply(this, arguments);
2006
+ };
2007
+
2008
+ function __awaiter(thisArg, _arguments, P, generator) {
2009
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2010
+ return new (P || (P = Promise))(function (resolve, reject) {
2011
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2012
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2013
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2014
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
2015
+ });
2016
+ }
2017
+
2018
+ function __generator(thisArg, body) {
2019
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
2020
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
2021
+ function verb(n) { return function (v) { return step([n, v]); }; }
2022
+ function step(op) {
2023
+ if (f) throw new TypeError("Generator is already executing.");
2024
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
2025
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
2026
+ if (y = 0, t) op = [op[0] & 2, t.value];
2027
+ switch (op[0]) {
2028
+ case 0: case 1: t = op; break;
2029
+ case 4: _.label++; return { value: op[1], done: false };
2030
+ case 5: _.label++; y = op[1]; op = [0]; continue;
2031
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
2032
+ default:
2033
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
2034
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
2035
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
2036
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
2037
+ if (t[2]) _.ops.pop();
2038
+ _.trys.pop(); continue;
2039
+ }
2040
+ op = body.call(thisArg, _);
2041
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
2042
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2043
+ }
2044
+ }
2045
+
2046
+ function __spreadArray(to, from, pack) {
2047
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
2048
+ if (ar || !(i in from)) {
2049
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
2050
+ ar[i] = from[i];
2051
+ }
2052
+ }
2053
+ return to.concat(ar || Array.prototype.slice.call(from));
2054
+ }
2055
+
2056
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
2057
+ var e = new Error(message);
2058
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
2059
+ };
2060
+
2061
+ var name = "@airwallex/components-sdk";
2062
+ var version = "1.30.2";
2063
+ var main = "./lib/index.js";
2064
+ var module$1 = "./lib/index.mjs";
2065
+ var types = "./lib/index.d.ts";
2066
+ var files = [
2067
+ "lib/**"
2068
+ ];
2069
+ var license = "MIT";
2070
+ var scripts = {
2071
+ "load-types": "node ./load-types.js && yarn prettier -w src/types/*d.ts",
2072
+ prebuild: "yarn clean",
2073
+ build: "yarn rollup --config",
2074
+ postbuild: "yarn bundle-types",
2075
+ "bundle-types": "dts-bundle-generator -o ./lib/index.d.ts ./src/index.ts",
2076
+ clean: "rm -rf dist lib",
2077
+ lint: "eslint \"src/**/*.ts*\"",
2078
+ test: "jest",
2079
+ sonar: "sonar-scanner",
2080
+ release: "semantic-release",
2081
+ "lint-stage": "lint-staged",
2082
+ prepare: "husky"
2083
+ };
2084
+ var prettier = {
2085
+ semi: true,
2086
+ singleQuote: true,
2087
+ printWidth: 80,
2088
+ trailingComma: "all"
2089
+ };
2090
+ var publishConfig = {
2091
+ access: "public"
2092
+ };
2093
+ var devDependencies = {
2094
+ "@babel/preset-typescript": "^7.18.6",
2095
+ "@rollup/plugin-commonjs": "^25.0.7",
2096
+ "@rollup/plugin-json": "^6.1.0",
2097
+ "@rollup/plugin-node-resolve": "^15.2.3",
2098
+ "@rollup/plugin-terser": "^0.4.4",
2099
+ "@rollup/plugin-typescript": "^11.1.6",
2100
+ "@semantic-release/changelog": "^5.0.1",
2101
+ "@semantic-release/commit-analyzer": "^8.0.1",
2102
+ "@semantic-release/git": "^9.0.0",
2103
+ "@semantic-release/gitlab": "^6.1.0",
2104
+ "@semantic-release/release-notes-generator": "^9.0.0",
2105
+ "@swc/core": "^1.3.46",
2106
+ "@types/jest": "^29.5.0",
2107
+ "@typescript-eslint/eslint-plugin": "^5.57.0",
2108
+ "@typescript-eslint/parser": "^5.57.0",
2109
+ "dts-bundle-generator": "^9.0.0",
2110
+ eslint: "^7.23.0",
2111
+ "eslint-config-prettier": "^8.3.0",
2112
+ "eslint-plugin-prettier": "^5.1.3",
2113
+ husky: "^9.0.11",
2114
+ jest: "^29.5.0",
2115
+ "jest-environment-jsdom": "^29.5.0",
2116
+ "lint-staged": "^15.2.7",
2117
+ prettier: "^3.3.2",
2118
+ rollup: "^4.9.6",
2119
+ "semantic-release": "^17.3.8",
2120
+ "sonarqube-scanner": "^3.0.1",
2121
+ "ts-jest": "^29.0.5",
2122
+ "ts-loader": "^9.5.1",
2123
+ tslib: "^2.6.2",
2124
+ typescript: "^4.5.2"
2125
+ };
2126
+ var dependencies = {
2127
+ "@airwallex/airtracker": "^3.0.0"
2128
+ };
2129
+ var packageJson = {
2130
+ name: name,
2131
+ version: version,
2132
+ main: main,
2133
+ module: module$1,
2134
+ types: types,
2135
+ files: files,
2136
+ license: license,
2137
+ scripts: scripts,
2138
+ prettier: prettier,
2139
+ "lint-staged": {
2140
+ "src/**/*.{ts,tsx}": [
2141
+ "yarn lint"
2142
+ ],
2143
+ "src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": "prettier --write"
2144
+ },
2145
+ publishConfig: publishConfig,
2146
+ devDependencies: devDependencies,
2147
+ dependencies: dependencies
2148
+ };
2149
+
2150
+ var airTrackerENV = {
2151
+ dev: Environment.staging,
2152
+ staging: Environment.staging,
2153
+ demo: Environment.demo,
2154
+ prod: Environment.production
2155
+ };
2156
+ var initializeAirTracker = function (env, clientId) {
2157
+ if (env === void 0) { env = Environment.production; }
2158
+ if (!window._AirwallexSDKs.airTracker) {
2159
+ window._AirwallexSDKs.airTracker = new src_default({
2160
+ config: {
2161
+ appName: 'components-sdk',
2162
+ appVersion: packageJson.version,
2163
+ env: airTrackerENV[env] || Environment.production
2164
+ }
2165
+ });
2166
+ window._AirwallexSDKs.airTracker.updateCommonData({ clientId: clientId });
2167
+ }
2168
+ return window._AirwallexSDKs.airTracker;
2169
+ };
2170
+ var maskPII = function (data) {
2171
+ if (typeof data !== 'object') {
2172
+ return data;
2173
+ }
2174
+ try {
2175
+ var result_1 = JSON.parse(JSON.stringify(data));
2176
+ Object.keys(result_1).forEach(function (key) {
2177
+ if (typeof key === 'string' &&
2178
+ ['auth', 'code'].some(function (sens) { return key.includes(sens); })) {
2179
+ result_1[key] = '***';
2180
+ }
2181
+ });
2182
+ return result_1;
2183
+ }
2184
+ catch (_a) {
2185
+ return data;
2186
+ }
2187
+ };
2188
+ var logError = function (eventName, data) {
2189
+ var _a, _b;
2190
+ (_b = (_a = window._AirwallexSDKs) === null || _a === void 0 ? void 0 : _a.airTracker) === null || _b === void 0 ? void 0 : _b.error(eventName, __assign(__assign({}, data), { context: 'components-sdk' }));
2191
+ };
2192
+ var logWarning = function (eventName, data) {
2193
+ var _a;
2194
+ (_a = window._AirwallexSDKs.airTracker) === null || _a === void 0 ? void 0 : _a.warn(eventName, __assign(__assign({}, data), { context: 'components-sdk' }));
2195
+ };
2196
+ var logInfo = function (eventName, data) {
2197
+ var _a;
2198
+ (_a = window._AirwallexSDKs.airTracker) === null || _a === void 0 ? void 0 : _a.info(eventName, __assign(__assign({}, data), { context: 'components-sdk' }));
2199
+ };
2200
+
2201
+ var LoadScriptError = /** @class */ (function (_super) {
2202
+ __extends(LoadScriptError, _super);
2203
+ function LoadScriptError(message) {
2204
+ var _this = _super.call(this, message) || this;
2205
+ _this.code = 'LOAD_SCRIPT_ERROR';
2206
+ return _this;
2207
+ }
2208
+ return LoadScriptError;
2209
+ }(Error));
2210
+
2211
+ var _a, _b;
2212
+ var ENV;
2213
+ (function (ENV) {
2214
+ ENV["dev"] = "dev";
2215
+ ENV["staging"] = "staging";
2216
+ ENV["demo"] = "demo";
2217
+ ENV["prod"] = "prod";
2218
+ ENV["sandbox"] = "sandbox";
2219
+ })(ENV || (ENV = {}));
2220
+ var PA_STATIC_HOST = (_a = {},
2221
+ _a[ENV.dev] = 'https://checkout-staging.airwallex.com',
2222
+ _a[ENV.staging] = 'https://checkout-staging.airwallex.com',
2223
+ _a[ENV.demo] = 'https://checkout-demo.airwallex.com',
2224
+ _a[ENV.prod] = 'https://checkout.airwallex.com',
2225
+ _a[ENV.sandbox] = 'https://checkout.sandbox.airwallex.com',
2226
+ _a);
2227
+ var STATIC_HOST = (_b = {},
2228
+ _b[ENV.dev] = 'https://static-staging.airwallex.com',
2229
+ _b[ENV.staging] = 'https://static-staging.airwallex.com',
2230
+ _b[ENV.demo] = 'https://static-demo.airwallex.com',
2231
+ _b[ENV.prod] = 'https://static.airwallex.com',
2232
+ _b[ENV.sandbox] = 'https://static.sandbox.airwallex.com',
2233
+ _b);
2234
+ var SDK_CONTROLLER = 'sdkController';
2235
+ var PAYMENTS = 'payments';
2236
+ var SDK_URL_MAPPING = {
2237
+ kyc: '/widgets/kyc/sdk/v1/index.js',
2238
+ rfi: '/widgets/kycRfi/sdk/v1/index.js',
2239
+ paymentsKyb: '/widgets/paymentsKyb/sdk/v1/index.js',
2240
+ sdkController: '/widgets/sdk-controller/sdk/v1/index.js',
2241
+ payouts: '/widgets/payouts/sdk/v1/index.js',
2242
+ payments: '/assets/elements.bundle.min.js',
2243
+ sca: '/hosted-sca/sdk/v1/index.js',
2244
+ taxForm: '/widgets/taxForm/sdk/v1/index.js',
2245
+ billing: '/widgets/checkout/sdk/v1/index.js'
2246
+ };
2247
+ var ELEMENT_TO_SDK = {
2248
+ // legacy
2249
+ kyc: 'kyc',
2250
+ paymentsKyb: 'paymentsKyb',
2251
+ // rfi elements
2252
+ kycRfi: 'rfi',
2253
+ transactionRfi: 'rfi',
2254
+ paymentEnablementRfi: 'rfi',
2255
+ lendingRfi: 'rfi',
2256
+ mrmRfi: 'rfi',
2257
+ // payouts elements
2258
+ payoutForm: 'payouts',
2259
+ beneficiaryForm: 'payouts',
2260
+ // payment elements
2261
+ hpp: 'payments',
2262
+ cvc: 'payments',
2263
+ card: 'payments',
2264
+ expiry: 'payments',
2265
+ dropIn: 'payments',
2266
+ cardNumber: 'payments',
2267
+ applePayButton: 'payments',
2268
+ googlePayButton: 'payments',
2269
+ krCardNumber: 'payments',
2270
+ krCardIdentifier: 'payments',
2271
+ krCardExpiry: 'payments',
2272
+ krCardPswFirstTwo: 'payments',
2273
+ // sca elements
2274
+ scaSetup: 'sca',
2275
+ scaVerify: 'sca',
2276
+ scaManagement: 'sca',
2277
+ taxForm: 'taxForm',
2278
+ // billing elements
2279
+ embeddedCheckout: 'billing'
2280
+ };
2281
+ var ELEMENT_GROUP_TO_ELEMENT = {
2282
+ payments: [
2283
+ 'hpp',
2284
+ 'cvc',
2285
+ 'card',
2286
+ 'expiry',
2287
+ 'dropIn',
2288
+ 'cardNumber',
2289
+ 'applePayButton',
2290
+ 'googlePayButton',
2291
+ 'krCardNumber',
2292
+ 'krCardIdentifier',
2293
+ 'krCardExpiry',
2294
+ 'krCardPswFirstTwo',
2295
+ ],
2296
+ payouts: ['payoutForm', 'beneficiaryForm'],
2297
+ onboarding: ['kyc', 'paymentsKyb'],
2298
+ risk: [
2299
+ 'scaSetup',
2300
+ 'scaVerify',
2301
+ 'scaManagement',
2302
+ 'transactionRfi',
2303
+ 'kycRfi',
2304
+ 'paymentEnablementRfi',
2305
+ 'lendingRfi',
2306
+ 'mrmRfi',
2307
+ ],
2308
+ billing: ['embeddedCheckout']
2309
+ };
2310
+ var SDK_DEPENDENCIES = {
2311
+ billing: ['payments']
2312
+ };
2313
+ var DOMAIN_FUNCTIONS_NAMESPACES = ['payments', 'sca'];
2314
+
2315
+ var InvalidStaticResourceError = /** @class */ (function (_super) {
2316
+ __extends(InvalidStaticResourceError, _super);
2317
+ function InvalidStaticResourceError(message) {
2318
+ var _this = _super.call(this, message) || this;
2319
+ _this.code = 'INVALID_STATIC_RESOURCE_ERROR';
2320
+ return _this;
2321
+ }
2322
+ return InvalidStaticResourceError;
2323
+ }(Error));
2324
+
2325
+ var timestamp = Date.now();
2326
+ var isElementGroup = function (name) { return Object.keys(ELEMENT_GROUP_TO_ELEMENT).includes(name); };
2327
+ var sleep = function (delay) {
2328
+ if (delay === void 0) { delay = 500; }
2329
+ return new Promise(function (resolve) { return window.setTimeout(resolve, delay); });
2330
+ };
2331
+ var getSDKByElementName = function (elementName) {
2332
+ return ELEMENT_TO_SDK[elementName];
2333
+ };
2334
+ var getHost = function (name, env) {
2335
+ var host = name === PAYMENTS ? PA_STATIC_HOST : STATIC_HOST;
2336
+ return host[env] || host.prod;
2337
+ };
2338
+ /**
2339
+ * get the elements and sdks that need registry by controller
2340
+ * @param enabledElements the enabledElements passed in init params
2341
+ * @returns array of deduplicated elementName pair with sdkName
2342
+ */
2343
+ var getSDKsByEnabledElements = function (enabledElements) {
2344
+ // e.g., ['hpp', 'payoutForm', 'kyc', 'kyc']
2345
+ var usedElements = enabledElements.reduce(function (elementArr, enabledEle) {
2346
+ return elementArr.concat(isElementGroup(enabledEle)
2347
+ ? ELEMENT_GROUP_TO_ELEMENT[enabledEle]
2348
+ : enabledEle);
2349
+ }, []);
2350
+ return Array.from(new Set(usedElements)).map(function (elementName) { return ({
2351
+ elementName: elementName,
2352
+ sdkName: getSDKByElementName(elementName)
2353
+ }); });
2354
+ };
2355
+ var getFunctionsByEnabledElements = function (enabledElements) {
2356
+ return Array.from(new Set(getSDKsByEnabledElements(enabledElements)
2357
+ .map(function (_a) {
2358
+ var sdkName = _a.sdkName;
2359
+ return sdkName;
2360
+ })
2361
+ .filter(function (usedSdkName) {
2362
+ return DOMAIN_FUNCTIONS_NAMESPACES.includes(usedSdkName);
2363
+ })));
2364
+ };
2365
+ var getWindowSDKInstanceName = function (name) {
2366
+ return name === 'payments' ? 'payment' : name;
2367
+ };
2368
+ /**
2369
+ * get the CDN url of a specific package
2370
+ * @param name declare the element name
2371
+ * @param env the environment of package
2372
+ * @returns string the CDN url
2373
+ */
2374
+ var getSDKUrl = function (_a) {
2375
+ var name = _a.name, _b = _a.env, env = _b === void 0 ? ENV.prod : _b;
2376
+ var staticHost = getHost(name, env);
2377
+ var elementUri = SDK_URL_MAPPING[name];
2378
+ if (!elementUri) {
2379
+ logError('[components-sdk] Element static resource not found', {
2380
+ sdkName: name
2381
+ });
2382
+ throw new InvalidStaticResourceError("Element ".concat(name, " static resource URL is invalid."));
2383
+ }
2384
+ return "".concat(staticHost).concat(elementUri, "?ts=").concat(timestamp);
2385
+ };
2386
+ var getFunctionsInstanceWithNamespace = function () {
2387
+ return DOMAIN_FUNCTIONS_NAMESPACES.reduce(function (result, namespace) {
2388
+ var _a;
2389
+ return (__assign(__assign({}, result), (_a = {}, _a[namespace] = window._AirwallexSDKs.__controller__.internalSDKs[namespace], _a)));
2390
+ }, {});
2391
+ };
2392
+ var getSDKDependencies = function (sdkName) {
2393
+ return SDK_DEPENDENCIES[sdkName] || [];
2394
+ };
2395
+ var now = function () { return Math.floor(performance.now()); };
2396
+
2397
+ var createScript = function (url) {
2398
+ var script = document.createElement('script');
2399
+ script.src = url;
2400
+ script.type = 'module';
2401
+ var parentDom = document.head || document.body;
2402
+ parentDom.appendChild(script);
2403
+ return script;
2404
+ };
2405
+ var MAX_RETRY_COUNT = 3;
2406
+ var loadScript = function (url) { return __awaiter(void 0, void 0, void 0, function () {
2407
+ var retryCount, tryToResolve;
2408
+ return __generator(this, function (_a) {
2409
+ switch (_a.label) {
2410
+ case 0:
2411
+ if (typeof window === 'undefined') {
2412
+ throw new Error('Please load script in browser environment');
2413
+ }
2414
+ retryCount = 0;
2415
+ tryToResolve = function () { return __awaiter(void 0, void 0, void 0, function () {
2416
+ var start, urlObj, script;
2417
+ return __generator(this, function (_a) {
2418
+ start = now();
2419
+ if (retryCount > 0 && url.includes('?ts=')) {
2420
+ urlObj = new URL(url, window.location.href);
2421
+ urlObj.searchParams.set('ts', "".concat(Date.now()));
2422
+ url = urlObj.toString();
2423
+ }
2424
+ script = createScript(url);
2425
+ return [2 /*return*/, new Promise(function (resolve, reject) {
2426
+ script.addEventListener('load', function () {
2427
+ var end = now();
2428
+ logInfo('[components-sdk] SDK script loaded', {
2429
+ scriptUrl: url,
2430
+ start: start,
2431
+ latency: end - start,
2432
+ end: end,
2433
+ retryCount: retryCount
2434
+ });
2435
+ resolve(true);
2436
+ });
2437
+ script.addEventListener('error', function (err) {
2438
+ script.remove();
2439
+ console.error(err);
2440
+ var end = now();
2441
+ logError('[components-sdk] Failed to load script', {
2442
+ scriptUrl: url,
2443
+ error: err,
2444
+ start: start,
2445
+ latency: end - start,
2446
+ end: end,
2447
+ retryCount: retryCount
2448
+ });
2449
+ reject(new LoadScriptError("Failed to load Airwallex SDK scripts: ".concat(url)));
2450
+ });
2451
+ })];
2452
+ });
2453
+ }); };
2454
+ _a.label = 1;
2455
+ case 1:
2456
+ if (!(retryCount < MAX_RETRY_COUNT)) return [3 /*break*/, 7];
2457
+ _a.label = 2;
2458
+ case 2:
2459
+ _a.trys.push([2, 4, , 6]);
2460
+ return [4 /*yield*/, tryToResolve()];
2461
+ case 3: return [2 /*return*/, _a.sent()];
2462
+ case 4:
2463
+ _a.sent();
2464
+ retryCount++;
2465
+ return [4 /*yield*/, sleep()];
2466
+ case 5:
2467
+ _a.sent();
2468
+ return [3 /*break*/, 6];
2469
+ case 6: return [3 /*break*/, 1];
2470
+ case 7:
2471
+ logError('[components-sdk] Failed to load script after retry', {
2472
+ scriptUrl: url,
2473
+ retryCount: retryCount
2474
+ });
2475
+ throw new LoadScriptError("Failed to load Airwallex SDK scripts: ".concat(url));
2476
+ }
2477
+ });
2478
+ }); };
2479
+
2480
+ var InstanceNotFoundError = /** @class */ (function (_super) {
2481
+ __extends(InstanceNotFoundError, _super);
2482
+ function InstanceNotFoundError(message) {
2483
+ var _this = _super.call(this, message) || this;
2484
+ _this.code = 'INSTANCE_NOT_FOUND_ERROR';
2485
+ return _this;
2486
+ }
2487
+ return InstanceNotFoundError;
2488
+ }(Error));
2489
+
2490
+ var initPromise$1;
2491
+ /**
2492
+ * ensure one script one promise
2493
+ */
2494
+ var promiseMap = new Map();
2495
+ /**
2496
+ * get the Promise to load the element script
2497
+ * @param scriptName declare the SDK or Functions namespace
2498
+ * @param env the resource url
2499
+ * @returns Promise to load the script
2500
+ */
2501
+ var getLoadScriptPromise = function (_a) {
2502
+ var env = _a.env, scriptName = _a.scriptName;
2503
+ var url = getSDKUrl({ name: scriptName, env: env });
2504
+ // if promise was made
2505
+ var sdkPromise = promiseMap.get(scriptName);
2506
+ if (sdkPromise) {
2507
+ return sdkPromise;
2508
+ }
2509
+ var loadScriptPromise = loadScript(url);
2510
+ promiseMap.set(scriptName, loadScriptPromise);
2511
+ return loadScriptPromise;
2512
+ };
2513
+ /**
2514
+ * Load an SDK script along with its dependencies
2515
+ * @param scriptName the SDK name to load
2516
+ * @param env the environment
2517
+ * @returns Promise that resolves when the SDK and all its dependencies are loaded
2518
+ */
2519
+ var loadSDKWithDependencies = function (_a) {
2520
+ var env = _a.env, scriptName = _a.scriptName;
2521
+ return __awaiter(void 0, void 0, void 0, function () {
2522
+ var dependencies;
2523
+ return __generator(this, function (_b) {
2524
+ switch (_b.label) {
2525
+ case 0:
2526
+ dependencies = getSDKDependencies(scriptName);
2527
+ if (!(dependencies.length > 0)) return [3 /*break*/, 2];
2528
+ return [4 /*yield*/, Promise.all(dependencies.map(function (dep) { return getLoadScriptPromise({ env: env, scriptName: dep }); }))];
2529
+ case 1:
2530
+ _b.sent();
2531
+ _b.label = 2;
2532
+ case 2: return [2 /*return*/, getLoadScriptPromise({ env: env, scriptName: scriptName })];
2533
+ }
2534
+ });
2535
+ });
2536
+ };
2537
+ /**
2538
+ * SDK init, load controller script
2539
+ * @param options SDK init options
2540
+ * @returns Promise to load the script
2541
+ */
2542
+ var init = function (options) { return __awaiter(void 0, void 0, void 0, function () {
2543
+ return __generator(this, function (_a) {
2544
+ if (typeof window === 'undefined') {
2545
+ throw new Error('Please call the `init()` function in a browser environment.');
2546
+ }
2547
+ // initialize airTracker
2548
+ initializeAirTracker(options.env, options.clientId);
2549
+ logInfo('[components-sdk] SDK init start', {
2550
+ options: maskPII(options),
2551
+ start: now()
2552
+ });
2553
+ initPromise$1 = new Promise(function (resolve, reject) {
2554
+ var _a;
2555
+ var initOptions = __assign(__assign({}, options), { env: options.env && ENV[options.env] ? options.env : ENV.prod });
2556
+ window.AirwallexComponentsSDK.__env__ = initOptions.env;
2557
+ // load SDK controller script
2558
+ var controllerPromise = getLoadScriptPromise({
2559
+ env: initOptions.env,
2560
+ scriptName: SDK_CONTROLLER
2561
+ }).then(function () { return window._AirwallexSDKs.__controller__.init(initOptions); });
2562
+ // For old version backward compatibility
2563
+ var enabledElements = (_a = options.enabledElements) !== null && _a !== void 0 ? _a : [];
2564
+ var functionsNamespaces = getFunctionsByEnabledElements(enabledElements);
2565
+ // load SDK functions scripts
2566
+ var functionsPromises = functionsNamespaces.map(function (functionsNamespace) {
2567
+ return getLoadScriptPromise({
2568
+ env: initOptions.env,
2569
+ scriptName: functionsNamespace
2570
+ })
2571
+ .then(function () { return controllerPromise; })
2572
+ .then(function () {
2573
+ var instance = window._AirwallexSDKs[getWindowSDKInstanceName(functionsNamespace)];
2574
+ if (!instance) {
2575
+ logError('[components-sdk] SDK instance not found', {
2576
+ functionsNamespace: functionsNamespace,
2577
+ windowSDKInstanceName: getWindowSDKInstanceName(functionsNamespace)
2578
+ });
2579
+ throw new InstanceNotFoundError("SDK instance not found");
2580
+ }
2581
+ return window._AirwallexSDKs.__controller__.registerFunctions({
2582
+ functionsNamespace: functionsNamespace,
2583
+ instance: instance
2584
+ });
2585
+ });
2586
+ });
2587
+ // load SDK elements scripts
2588
+ var enabledSDKs = getSDKsByEnabledElements(enabledElements);
2589
+ var elementsPromises = enabledSDKs.map(function (_a) {
2590
+ var sdkNamespace = _a.sdkName, elementName = _a.elementName;
2591
+ return loadSDKWithDependencies({
2592
+ scriptName: sdkNamespace,
2593
+ env: initOptions.env
2594
+ })
2595
+ .then(function () { return controllerPromise; })
2596
+ .then(function () {
2597
+ var instance = window._AirwallexSDKs[getWindowSDKInstanceName(sdkNamespace)];
2598
+ if (!instance) {
2599
+ logError('[components-sdk] SDK instance not found', {
2600
+ sdkName: sdkNamespace,
2601
+ windowSDKInstanceName: getWindowSDKInstanceName(sdkNamespace)
2602
+ });
2603
+ throw new InstanceNotFoundError("SDK instance not found");
2604
+ }
2605
+ return window._AirwallexSDKs.__controller__.registerElement({
2606
+ sdkName: sdkNamespace,
2607
+ elementName: elementName,
2608
+ instance: instance
2609
+ });
2610
+ });
2611
+ });
2612
+ Promise.all(__spreadArray(__spreadArray([controllerPromise], functionsPromises, true), elementsPromises, true))
2613
+ .then(function () {
2614
+ logInfo('[components-sdk] SDK initialized', {
2615
+ options: maskPII(options),
2616
+ start: now()
2617
+ });
2618
+ resolve(getFunctionsInstanceWithNamespace());
2619
+ })["catch"](function (error) {
2620
+ if (!error.code) {
2621
+ logError('[components-sdk] Unexpected errors when init', { error: error });
2622
+ }
2623
+ reject(error);
2624
+ });
2625
+ });
2626
+ return [2 /*return*/, initPromise$1];
2627
+ });
2628
+ }); };
2629
+ /**
2630
+ * load SDK element script and call SDK instance.createElement.
2631
+ * @param elementName the element name to create
2632
+ * @param options createElement options
2633
+ * @returns return type of SDK instance.createElement
2634
+ */
2635
+ var createElement = function (elementName, options) { return __awaiter(void 0, void 0, void 0, function () {
2636
+ var sdkName, start, elementInstance, end, error_1;
2637
+ return __generator(this, function (_a) {
2638
+ switch (_a.label) {
2639
+ case 0:
2640
+ if (!elementName) {
2641
+ throw new Error('Element type is missing. Please specify a valid element.');
2642
+ }
2643
+ logInfo('[components-sdk] SDK createElement start', {
2644
+ elementName: elementName,
2645
+ options: maskPII(options),
2646
+ timestamp: now()
2647
+ });
2648
+ if (!initPromise$1) {
2649
+ logWarning('[components-sdk] Did not call init before createElement');
2650
+ throw new Error('Please initialize the Element before creating it.');
2651
+ }
2652
+ return [4 /*yield*/, initPromise$1];
2653
+ case 1:
2654
+ _a.sent();
2655
+ sdkName = getSDKByElementName(elementName);
2656
+ if (!sdkName) {
2657
+ throw new Error("`createElement()` with type `".concat(elementName, "` is not supported. Please specify a valid Element type."));
2658
+ }
2659
+ start = now();
2660
+ _a.label = 2;
2661
+ case 2:
2662
+ _a.trys.push([2, 6, , 7]);
2663
+ return [4 /*yield*/, loadSDKWithDependencies({
2664
+ scriptName: sdkName,
2665
+ env: window.AirwallexComponentsSDK.__env__ || ENV.prod
2666
+ })];
2667
+ case 3:
2668
+ _a.sent();
2669
+ return [4 /*yield*/, window._AirwallexSDKs.__controller__.registerElement({
2670
+ sdkName: sdkName,
2671
+ elementName: elementName,
2672
+ instance: window._AirwallexSDKs[getWindowSDKInstanceName(sdkName)]
2673
+ })];
2674
+ case 4:
2675
+ _a.sent();
2676
+ return [4 /*yield*/, window._AirwallexSDKs.__controller__.createElement(elementName, options)];
2677
+ case 5:
2678
+ elementInstance = _a.sent();
2679
+ end = now();
2680
+ logInfo('[components-sdk] SDK createElement being called', {
2681
+ elementName: elementName,
2682
+ options: maskPII(options),
2683
+ start: start,
2684
+ latency: end - start,
2685
+ end: end
2686
+ });
2687
+ return [3 /*break*/, 7];
2688
+ case 6:
2689
+ error_1 = _a.sent();
2690
+ if (!error_1.code) {
2691
+ logError('[components-sdk] Unexpected errors when createElement', {
2692
+ error: error_1
2693
+ });
2694
+ }
2695
+ else {
2696
+ throw error_1;
2697
+ }
2698
+ return [3 /*break*/, 7];
2699
+ case 7: return [2 /*return*/, elementInstance];
2700
+ }
2701
+ });
2702
+ }); };
2703
+
2704
+ /**
2705
+ * List of scripts to prefetch
2706
+ */
2707
+ var PREFETCH_SCRIPT_LIST = [SDK_CONTROLLER, PAYMENTS];
2708
+ /**
2709
+ * Prefetch scripts by preload link, only for production as there's no environment context before SDK init
2710
+ */
2711
+ var prefetchScripts = function () {
2712
+ PREFETCH_SCRIPT_LIST.forEach(function (scriptName) {
2713
+ var url = getSDKUrl({ name: scriptName, env: ENV.prod });
2714
+ var preloadLink = document.createElement('link');
2715
+ preloadLink.href = url;
2716
+ preloadLink.rel = 'modulepreload';
2717
+ preloadLink.as = 'script';
2718
+ var parentDom = document.head || document.body;
2719
+ parentDom.appendChild(preloadLink);
2720
+ });
2721
+ };
2722
+ /**
2723
+ * @airwallex/components-sdk may run in node environment, e.g., in Next.js
2724
+ * Prefetch scripts only in browser environment
2725
+ */
2726
+ var isNode = typeof document === 'undefined' || typeof window === 'undefined';
2727
+ if (!isNode) {
2728
+ if (document.readyState === 'loading') {
2729
+ document.addEventListener('DOMContentLoaded', prefetchScripts);
2730
+ }
2731
+ else {
2732
+ prefetchScripts();
2733
+ }
2734
+ }
2735
+
2736
+ if (typeof window !== 'undefined') {
2737
+ if (!window.AirwallexComponentsSDK) {
2738
+ Object.defineProperties(window, {
2739
+ AirwallexComponentsSDK: {
2740
+ value: {},
2741
+ writable: false
2742
+ },
2743
+ _AirwallexSDKs: {
2744
+ value: {},
2745
+ writable: false
2746
+ }
2747
+ });
2748
+ }
2749
+ window.AirwallexComponentsSDK.init = init;
2750
+ window.AirwallexComponentsSDK.createElement = createElement;
2751
+ }
2752
+
2753
+ const { onChange: airwallexStoreOnChange, reset: airwallexStoreReset, state: airwallexStore, } = zonosStore.createStore(() => ({
2754
+ clientSecret: null,
2755
+ currency: null,
2756
+ hasPaymentError: false,
2757
+ isReady: false,
2758
+ paymentConfirmed: false,
2759
+ paymentIntentId: null,
2760
+ }));
2761
+ /**
2762
+ * Populate the store from a collect checkout session response.
2763
+ *
2764
+ * @returns `true` when the session uses Airwallex and has the data required to
2765
+ * render the payment element.
2766
+ */
2767
+ const airwallexStoreSetFromSession = (checkoutSession) => {
2768
+ if (checkoutSession.paymentProcessor !== 'AIRWALLEX') {
2769
+ return false;
2770
+ }
2771
+ // Only overwrite when the session provides a value — the client secret /
2772
+ // payment intent id may already have been seeded from the payment-intent
2773
+ // create response, which is more reliable than a follow-up session fetch.
2774
+ if (checkoutSession.clientSecret) {
2775
+ airwallexStore.clientSecret = checkoutSession.clientSecret;
2776
+ }
2777
+ if (checkoutSession.paymentIntentId) {
2778
+ airwallexStore.paymentIntentId = checkoutSession.paymentIntentId;
2779
+ }
2780
+ if (!airwallexStore.clientSecret) {
2781
+ handleFetch.logError('Airwallex checkout session is missing the client secret');
2782
+ return false;
2783
+ }
2784
+ return true;
2785
+ };
2786
+ /**
2787
+ * Map a Zonos locale to an Airwallex-supported locale. Locales without an
2788
+ * Airwallex equivalent (e.g. Norwegian, Vietnamese, Turkish, Hebrew) fall back
2789
+ * to English.
2790
+ */
2791
+ const airwallexLocaleByCode = {
2792
+ ar: 'ar',
2793
+ da: 'da',
2794
+ de: 'de',
2795
+ en: 'en',
2796
+ es: 'es',
2797
+ fr: 'fr',
2798
+ id: 'id',
2799
+ it: 'it',
2800
+ ja: 'ja',
2801
+ ko: 'ko',
2802
+ nl: 'nl',
2803
+ pl: 'pl',
2804
+ pt: 'pt',
2805
+ ru: 'ru',
2806
+ sv: 'sv',
2807
+ zh: 'zh',
2808
+ };
2809
+ const airwallexStoreGetLocale = (locale) => airwallexLocaleByCode[locale] || 'en';
2810
+ // Ensure the SDK is only initialized once, even across re-renders/components.
2811
+ let initPromise = null;
2812
+ /**
2813
+ * Load and initialize the Airwallex components SDK (idempotent). Uses the `prod`
2814
+ * environment only when the API is in production and the checkout mode is `LIVE`
2815
+ * (mirrors how PayPal decides production vs. sandbox), otherwise `demo`, so the
2816
+ * SDK environment matches the payment intents created by the checkout backend.
2817
+ * Also uses the shopper's selected locale from localization.
2818
+ *
2819
+ * @returns `true` once the SDK is ready to create elements.
2820
+ */
2821
+ const airwallexStoreInitSdk = async () => {
2822
+ if (airwallexStore.isReady) {
2823
+ return true;
2824
+ }
2825
+ if (!initPromise) {
2826
+ // Production only when the API is in production environment and the checkout
2827
+ // mode is `LIVE` (not sandbox) — same rule as the PayPal integration.
2828
+ const isProduction = (!zonosStore.zonosStore.zonosMode || zonosStore.zonosStore.zonosMode === 'production') &&
2829
+ zonosStore.zonosStore.checkoutSettings.mode === 'LIVE';
2830
+ initPromise = init({
2831
+ enabledElements: ['payments'],
2832
+ env: isProduction ? 'prod' : 'demo',
2833
+ locale: airwallexStoreGetLocale(localization.localizationStore.selectedLocale),
2834
+ })
2835
+ .then(() => {
2836
+ airwallexStore.isReady = true;
2837
+ VarianceTest.log('Airwallex SDK initialized');
2838
+ return true;
2839
+ })
2840
+ .catch((err) => {
2841
+ handleFetch.logError(err);
2842
+ // Allow a later retry by clearing the cached promise.
2843
+ initPromise = null;
2844
+ return false;
2845
+ });
2846
+ }
2847
+ return initPromise;
2848
+ };
2849
+ /**
2850
+ * Statuses that mean the payment has gone through (or is on its way with no
2851
+ * further action required from the customer) — i.e. the order should move to the
2852
+ * finish step rather than render the payment form.
2853
+ */
2854
+ const airwallexPaidStatuses = [
2855
+ 'SUCCEEDED',
2856
+ 'REQUIRES_CAPTURE',
2857
+ 'PENDING_REVIEW',
2858
+ 'PENDING',
2859
+ ];
2860
+ /**
2861
+ * Whether the given status means the payment is settled or in progress (no
2862
+ * further customer action required).
2863
+ */
2864
+ const airwallexStoreIsPaidStatus = (status) => !!status && airwallexPaidStatuses.includes(status);
2865
+ /**
2866
+ * Map an Airwallex payment intent status to a customer-facing message and an
2867
+ * error flag — the Airwallex equivalent of `stripeStoreMessageBasedOnStatus`.
2868
+ * @see https://www.airwallex.com/docs/payments/reference/payment-statuses
2869
+ */
2870
+ const airwallexStoreMessageBasedOnStatus = (status) => {
2871
+ switch (status) {
2872
+ // The payment is complete.
2873
+ case 'SUCCEEDED': {
2874
+ return {
2875
+ isError: false,
2876
+ messages: [
2877
+ localization.translate('Thank you for submitting your payment. We appreciate your prompt attention.'),
2878
+ '',
2879
+ localization.translate('A confirmation email with your payment details has been sent for your records. If you have any questions or need support, our team is here to help.'),
2880
+ ],
2881
+ };
2882
+ }
2883
+ // Authorized / pending the final result — no further action required.
2884
+ case 'PENDING':
2885
+ case 'PENDING_REVIEW':
2886
+ case 'REQUIRES_CAPTURE': {
2887
+ return {
2888
+ isError: false,
2889
+ messages: [
2890
+ localization.translate("Payment processing. We'll update you when payment is received."),
2891
+ ],
2892
+ };
2893
+ }
2894
+ // Waiting for further customer action (e.g. 3DS verification).
2895
+ case 'REQUIRES_CUSTOMER_ACTION': {
2896
+ return {
2897
+ isError: false,
2898
+ messages: [
2899
+ localization.translate('Your selected payment method requires additional verification. Please follow the instructions provided by your payment provider to complete the transaction.'),
2900
+ ],
2901
+ };
2902
+ }
2903
+ // Not paid (awaiting a payment method) or canceled.
2904
+ case 'CANCELLED':
2905
+ case 'REQUIRES_PAYMENT_METHOD': {
2906
+ return {
2907
+ isError: true,
2908
+ messages: [
2909
+ localization.translate('Payment failed. Please reload the page and try another payment method.'),
2910
+ ],
2911
+ };
2912
+ }
2913
+ default: {
2914
+ return {
2915
+ isError: true,
2916
+ messages: [localization.translate('Something went wrong.')],
2917
+ };
2918
+ }
2919
+ }
2920
+ };
2921
+ /**
2922
+ * Retrieve the latest Airwallex payment intent status by id.
2923
+ *
2924
+ * @returns the status, or `null` when the lookup failed.
2925
+ */
2926
+ const airwallexStoreRetrievePaymentIntent = async (paymentIntentId) => {
2927
+ const { errors, json } = await handleFetch.handleFetch('/api/zonos-elements/collect/airwallex-payment-intent', {
2928
+ body: {
2929
+ paymentIntentId,
2930
+ },
2931
+ method: 'POST',
2932
+ });
2933
+ if (errors.length || !json) {
2934
+ handleFetch.logError('Failed to retrieve Airwallex payment intent', errors);
2935
+ return { status: null };
2936
+ }
2937
+ return { status: json.airwallexPaymentIntent.status };
2938
+ };
2939
+
2940
+ const { reset: collectStoreReset, state: collectStore } = zonosStore.createStore(() => ({
2941
+ amountDutyTaxFeeTotal: null,
2942
+ amountTotalPaid: null,
2943
+ collectLogoUrl: null,
2944
+ isFetchingShippingInfo: true,
2945
+ landedCostShortId: null,
2946
+ originCompanyName: null,
2947
+ partyBillingId: null,
2948
+ paymentProcessor: null,
2949
+ shippingAddress: null,
2950
+ }));
2951
+ const collectStoreInitShippingInfo = async ({ landedCostId, retries = 5, }) => {
2952
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2953
+ collectStore.isFetchingShippingInfo = true;
2954
+ const response = await handleFetch.handleFetch('/api/zonos-elements/collect/get-shipping-info-by-lc-id', {
2955
+ body: {
2956
+ landedCostId,
2957
+ },
2958
+ method: 'POST',
2959
+ });
2960
+ if (response.errors.length) {
2961
+ if (retries > 0) {
2962
+ // Wait for 1 second before retrying
2963
+ await new Promise(resolve => setTimeout(resolve, 1000));
2964
+ // Keep retrying until we get the shipping address or we run out of retries
2965
+ return collectStoreInitShippingInfo({
2966
+ landedCostId,
2967
+ retries: retries - 1,
2968
+ });
2969
+ }
2970
+ return null;
2971
+ }
2972
+ collectStore.landedCostShortId = ((_a = response.json) === null || _a === void 0 ? void 0 : _a.landedCostShortId) || null;
2973
+ collectStore.isFetchingShippingInfo = false;
2974
+ collectStore.shippingAddress = ((_b = response.json) === null || _b === void 0 ? void 0 : _b.shipping) || null;
2975
+ const landedCost = (_c = cart.cartStore.checkoutSession) === null || _c === void 0 ? void 0 : _c.landedCost;
2976
+ const checkoutSessionSubtotals = (_d = cart.cartStore.checkoutSession) === null || _d === void 0 ? void 0 : _d.subtotals;
2977
+ const amountTotalPaid = (((_e = landedCost === null || landedCost === void 0 ? void 0 : landedCost.amountSubtotals) === null || _e === void 0 ? void 0 : _e.shipping) || 0) +
2978
+ (((_f = landedCost === null || landedCost === void 0 ? void 0 : landedCost.amountSubtotals) === null || _f === void 0 ? void 0 : _f.items) || 0);
2979
+ // Convert the amount to the presentment currency
2980
+ collectStore.amountTotalPaid =
2981
+ amountTotalPaid * (((_g = checkoutSessionSubtotals === null || checkoutSessionSubtotals === void 0 ? void 0 : checkoutSessionSubtotals.exchangeRate) === null || _g === void 0 ? void 0 : _g.rate) || 1);
2982
+ collectStore.amountDutyTaxFeeTotal =
2983
+ ((checkoutSessionSubtotals === null || checkoutSessionSubtotals === void 0 ? void 0 : checkoutSessionSubtotals.duties) || 0) +
2984
+ ((checkoutSessionSubtotals === null || checkoutSessionSubtotals === void 0 ? void 0 : checkoutSessionSubtotals.taxes) || 0) +
2985
+ ((checkoutSessionSubtotals === null || checkoutSessionSubtotals === void 0 ? void 0 : checkoutSessionSubtotals.fees) || 0);
2986
+ collectStore.originCompanyName = ((_j = (_h = response.json) === null || _h === void 0 ? void 0 : _h.origin) === null || _j === void 0 ? void 0 : _j.companyName) || null;
2987
+ collectStore.collectLogoUrl = ((_k = response.json) === null || _k === void 0 ? void 0 : _k.collectLogoUrl) || null;
2988
+ if (collectStore.amountTotalPaid === 0) {
2989
+ void handleFetch.sendErrorLog({
2990
+ endpoint: 'COLLECT_NO_TOTAL_PAID',
2991
+ errors: [],
2992
+ metadata: {
2993
+ landedCostId,
2994
+ organizationId: zonosStore.zonosStore.organizationId,
2995
+ },
2996
+ });
2997
+ }
2998
+ };
2999
+ const collectStoreAsyncAddressUpdate = async () => {
3000
+ var _a, _b, _c, _d;
3001
+ if (!((_a = cart.stripeStore.stripeBillingAddressEventData) === null || _a === void 0 ? void 0 : _a.complete)) {
3002
+ return {
3003
+ partiesCreated: false,
3004
+ };
3005
+ }
3006
+ const landedCostRootId = (_c = (_b = cart.cartStore.checkoutSession) === null || _b === void 0 ? void 0 : _b.landedCost) === null || _c === void 0 ? void 0 : _c.rootId;
3007
+ if (!landedCostRootId) {
3008
+ // do nothing if we don't have selected landed cost
3009
+ void handleFetch.sendErrorLog({
3010
+ endpoint: 'PF_NO_SELECTED_LANDED_COST',
3011
+ errors: ['No selected landed cost'],
3012
+ metadata: {
3013
+ allLogs: VarianceTest.allLogs,
3014
+ cartId: window.Zonos.cartId,
3015
+ checkoutSessionId: localization.storageStore.checkoutSessionId,
3016
+ },
3017
+ });
3018
+ return {
3019
+ partiesCreated: false,
3020
+ };
3021
+ }
3022
+ if (!localization.storageStore.checkoutSessionId) {
3023
+ void handleFetch.sendErrorLog({
3024
+ endpoint: 'COLLECT_NO_CHECKOUT_SESSION_ID',
3025
+ errors: ['No checkout session id'],
3026
+ metadata: {
3027
+ allLogs: VarianceTest.allLogs,
3028
+ cartId: window.Zonos.cartId,
3029
+ landedCostRootId,
3030
+ },
3031
+ });
3032
+ return {
3033
+ partiesCreated: false,
3034
+ };
3035
+ }
3036
+ const billingAddress = cart.stripeStoreBuildAddressForPartyCreate({
3037
+ address: cart.stripeStore.stripeBillingAddressEventData.value.address,
3038
+ firstName: cart.stripeStore.stripeBillingAddressEventData.value.firstName,
3039
+ lastName: cart.stripeStore.stripeBillingAddressEventData.value.lastName,
3040
+ name: cart.stripeStore.stripeBillingAddressEventData.value.name,
3041
+ phone: cart.stripeStore.stripeBillingAddressEventData.value.phone,
3042
+ });
3043
+ const isE2ETest = new URLSearchParams(window.location.search).get('zonosE2ETest') === '1';
3044
+ const { errors, json } = await handleFetch.handleFetch('/api/zonos-elements/create-billing-party', {
3045
+ body: {
3046
+ billingAddress,
3047
+ checkoutSessionId: localization.storageStore.checkoutSessionId,
3048
+ companyName: cart.stripeStore.companyName,
3049
+ email: ((_d = cart.stripeStore.stripeLinkEventData) === null || _d === void 0 ? void 0 : _d.value.email) || '',
3050
+ isTest: isE2ETest,
3051
+ rootId: landedCostRootId,
3052
+ },
3053
+ method: 'POST',
3054
+ });
3055
+ if (errors.length || !json) {
3056
+ handleFetch.logError('Error occurs when creating billing party', JSON.stringify(errors, null, 2));
3057
+ void handleFetch.sendErrorLog({
3058
+ endpoint: 'COLLECT_BILLING_PARTY_CREATE_FAILED',
3059
+ errors: ['[COLLECT] Failed to create billing party'],
3060
+ metadata: {
3061
+ allLogs: VarianceTest.allLogs,
3062
+ cartId: window.Zonos.cartId,
3063
+ checkoutSessionId: localization.storageStore.checkoutSessionId,
3064
+ errors,
3065
+ json,
3066
+ },
3067
+ });
3068
+ return {
3069
+ partiesCreated: false,
3070
+ };
3071
+ }
3072
+ collectStore.partyBillingId = json.billToPartyId;
3073
+ return {
3074
+ partiesCreated: true,
3075
+ };
3076
+ };
3077
+ const collectStoreUpdateSelectedShippingOption = async (checkoutSession) => {
3078
+ const landedCost = checkoutSession.landedCost;
3079
+ if (!landedCost) {
3080
+ return false;
3081
+ }
3082
+ // Convert the landed cost to the format that cartStore expects
3083
+ cart.cartStore.landedCostData = [
3084
+ Object.assign(Object.assign({}, checkoutSession), { landedCost: Object.assign({}, landedCost), landedCostId: landedCost.id }),
3085
+ ];
3086
+ return cart.cartStoreUpdateSelectedShippingOption({
3087
+ // No need to update checkout session again, we already called it when starting collect, only need to apply subtotals here to utilize the cart store
3088
+ applySubtotalsOnly: true,
3089
+ landedCostId: landedCost.id,
3090
+ selectedShippingOption: landedCost.shipmentRating,
3091
+ });
3092
+ };
3093
+
3094
+ exports.airwallexStore = airwallexStore;
3095
+ exports.airwallexStoreGetLocale = airwallexStoreGetLocale;
3096
+ exports.airwallexStoreInitSdk = airwallexStoreInitSdk;
3097
+ exports.airwallexStoreIsPaidStatus = airwallexStoreIsPaidStatus;
3098
+ exports.airwallexStoreMessageBasedOnStatus = airwallexStoreMessageBasedOnStatus;
3099
+ exports.airwallexStoreOnChange = airwallexStoreOnChange;
3100
+ exports.airwallexStoreReset = airwallexStoreReset;
3101
+ exports.airwallexStoreRetrievePaymentIntent = airwallexStoreRetrievePaymentIntent;
3102
+ exports.airwallexStoreSetFromSession = airwallexStoreSetFromSession;
3103
+ exports.collectStore = collectStore;
3104
+ exports.collectStoreAsyncAddressUpdate = collectStoreAsyncAddressUpdate;
3105
+ exports.collectStoreInitShippingInfo = collectStoreInitShippingInfo;
3106
+ exports.collectStoreUpdateSelectedShippingOption = collectStoreUpdateSelectedShippingOption;
3107
+ exports.createElement = createElement;