@justifi/webcomponents 6.7.3 → 6.8.0

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 (287) hide show
  1. package/dist/cjs/{Business-uoeKyW_a.js → Business-CB8EVrhD.js} +1 -0
  2. package/dist/cjs/{GooglePay-CbKCUEfb.js → Plaid-DxPvVu0H.js} +53 -0
  3. package/dist/cjs/{bank-account-document-form-inputs_8.cjs.entry.js → bank-account-document-form-inputs_9.cjs.entry.js} +330 -8
  4. package/dist/cjs/{business-additional-questions-schema-BtOuMq_U.js → business-additional-questions-schema-Cnh6AXQU.js} +3 -3
  5. package/dist/cjs/{business-form-options-D1r-wJpo.js → business-form-options-B3CbEmdc.js} +1 -1
  6. package/dist/cjs/{business-identity-schema-CMvq6f8m.js → business-identity-schema-0jg2Thn9.js} +2 -2
  7. package/dist/cjs/{business.service-DR4Ce5XV.js → business.service-zGEitIbP.js} +2 -2
  8. package/dist/cjs/{check-pkg-version-Bs_9oZb4.js → check-pkg-version-DKH70uPq.js} +11 -10
  9. package/dist/cjs/{checkout.service-CQqd4X4y.js → checkout.service-DT13pWxH.js} +2 -2
  10. package/dist/cjs/checkouts-list-core.cjs.entry.js +2 -2
  11. package/dist/cjs/{country-config-DGi9t3Ma.js → country-config-ETD-7Wb7.js} +1 -1
  12. package/dist/cjs/custom-popper_2.cjs.entry.js +48 -17
  13. package/dist/cjs/{dispute.service-aok1_zRv.js → dispute.service-GDUl1Wjs.js} +2 -2
  14. package/dist/cjs/form-alert_5.cjs.entry.js +3 -3
  15. package/dist/cjs/form-control-number-masked_3.cjs.entry.js +2 -2
  16. package/dist/cjs/form-control-number_3.cjs.entry.js +6 -6
  17. package/dist/cjs/{get-business-CtsxSYA6.js → get-business-CP0ALW9n.js} +1 -1
  18. package/dist/cjs/{get-payment-details-tCICJHBb.js → get-payment-details-IA5Toi7Z.js} +3 -3
  19. package/dist/cjs/{get-subaccounts-BcsCQAVN.js → get-subaccounts-DNMZjAyT.js} +3 -3
  20. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  21. package/dist/cjs/{input-handlers-DaRKFvGI.js → input-handlers-gV1LyFy3.js} +1 -1
  22. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +15 -15
  23. package/dist/cjs/justifi-additional-questions-form-step_9.cjs.entry.js +31 -18
  24. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +220 -290
  25. package/dist/cjs/justifi-bank-account-billing-form-simple_3.cjs.entry.js +4 -4
  26. package/dist/cjs/justifi-business-details.cjs.entry.js +6 -6
  27. package/dist/cjs/justifi-business-form.cjs.entry.js +10 -10
  28. package/dist/cjs/justifi-checkout.cjs.entry.js +12 -12
  29. package/dist/cjs/justifi-checkouts-list-filters.cjs.entry.js +9 -9
  30. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +7 -7
  31. package/dist/cjs/justifi-dispute-management.cjs.entry.js +5 -5
  32. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +5 -5
  33. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +4 -4
  34. package/dist/cjs/justifi-order-terminals.cjs.entry.js +10 -10
  35. package/dist/cjs/justifi-payment-details.cjs.entry.js +6 -6
  36. package/dist/cjs/justifi-payment-provisioning-core.cjs.entry.js +1 -1
  37. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +5 -5
  38. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +6 -6
  39. package/dist/cjs/justifi-payments-list.cjs.entry.js +6 -6
  40. package/dist/cjs/justifi-payout-details.cjs.entry.js +6 -6
  41. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +6 -6
  42. package/dist/cjs/justifi-payouts-list.cjs.entry.js +7 -7
  43. package/dist/cjs/justifi-refund-payment.cjs.entry.js +10 -10
  44. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +7 -7
  45. package/dist/cjs/justifi-terminal-orders-list-filters.cjs.entry.js +10 -10
  46. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +6 -6
  47. package/dist/cjs/justifi-terminals-list-filters.cjs.entry.js +7 -7
  48. package/dist/cjs/justifi-terminals-list.cjs.entry.js +7 -7
  49. package/dist/cjs/loader.cjs.js +1 -1
  50. package/dist/cjs/{package-DcGEg97O.js → package-B4vs5j7c.js} +1 -1
  51. package/dist/cjs/payment-details-core.cjs.entry.js +3 -3
  52. package/dist/cjs/{payment.service-B4ACB8Q3.js → payment.service-QODfB293.js} +2 -2
  53. package/dist/cjs/payments-list-core.cjs.entry.js +2 -2
  54. package/dist/cjs/{payout.service-qVbNnemO.js → payout.service-k7GBuYzk.js} +2 -2
  55. package/dist/cjs/payouts-list-core.cjs.entry.js +2 -2
  56. package/dist/cjs/plaid-icon-DTpONc_Q.js +46 -0
  57. package/dist/cjs/{schema-validations-DYYDrVol.js → schema-validations-BakyfJpE.js} +3 -3
  58. package/dist/cjs/terminal-orders-list-core.cjs.entry.js +3 -3
  59. package/dist/cjs/{terminal-orders-table-C2jG4WQa.js → terminal-orders-table-C6j6Mx_r.js} +4 -4
  60. package/dist/cjs/{terminal.service-D1ohedi-.js → terminal.service-A90K3XNq.js} +2 -2
  61. package/dist/cjs/terminals-list-core.cjs.entry.js +2 -2
  62. package/dist/cjs/webcomponents.cjs.js +1 -1
  63. package/dist/collection/api/Analytics.js +8 -7
  64. package/dist/collection/api/Business.js +1 -0
  65. package/dist/collection/api/Plaid.js +50 -0
  66. package/dist/collection/api/index.js +1 -0
  67. package/dist/collection/api/services/plaid.service.js +13 -0
  68. package/dist/collection/collection-manifest.json +1 -0
  69. package/dist/collection/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.js +20 -5
  70. package/dist/collection/components/business-forms/payment-provisioning/plaid-verification/plaid-verification.js +433 -0
  71. package/dist/collection/components/modular-checkout/sub-components/plaid-payment-method.js +4 -51
  72. package/dist/collection/ui-components/custom-popper/custom-popper.js +52 -18
  73. package/dist/docs.json +145 -4
  74. package/dist/esm/{Business-CHJTjG_5.js → Business-GgW1g7FQ.js} +1 -0
  75. package/dist/esm/{GooglePay-5EiPffHy.js → Plaid-CBrksnBN.js} +52 -1
  76. package/dist/esm/{bank-account-document-form-inputs_8.entry.js → bank-account-document-form-inputs_9.entry.js} +329 -8
  77. package/dist/esm/{business-additional-questions-schema-DQb10ehS.js → business-additional-questions-schema-CQ8CuEfQ.js} +3 -3
  78. package/dist/esm/{business-form-options-Bm89rMmk.js → business-form-options-DamBLV7N.js} +1 -1
  79. package/dist/esm/{business-identity-schema-CaMnpPqx.js → business-identity-schema-BTyJz7M9.js} +2 -2
  80. package/dist/esm/{business.service-C7smiL6_.js → business.service-BWm7Kqs4.js} +2 -2
  81. package/dist/esm/{check-pkg-version-DIZ2yD72.js → check-pkg-version-CioeuqLV.js} +11 -10
  82. package/dist/esm/{checkout.service-CYq6KXZv.js → checkout.service-D4Mljqjr.js} +2 -2
  83. package/dist/esm/checkouts-list-core.entry.js +2 -2
  84. package/dist/esm/{country-config-CQxaTFuP.js → country-config-D-9YmU94.js} +1 -1
  85. package/dist/esm/custom-popper_2.entry.js +48 -17
  86. package/dist/esm/{dispute.service-D7Dv8LTn.js → dispute.service-ZpqfPDC0.js} +2 -2
  87. package/dist/esm/form-alert_5.entry.js +3 -3
  88. package/dist/esm/form-control-number-masked_3.entry.js +2 -2
  89. package/dist/esm/form-control-number_3.entry.js +6 -6
  90. package/dist/esm/{get-business-BAmwId14.js → get-business-BMB2IxN_.js} +1 -1
  91. package/dist/esm/{get-payment-details-CPJZp31y.js → get-payment-details-B71Qi6mF.js} +2 -2
  92. package/dist/esm/{get-subaccounts-CqMFocN0.js → get-subaccounts-DXJdRbWg.js} +2 -2
  93. package/dist/esm/hidden-input_2.entry.js +1 -1
  94. package/dist/esm/{input-handlers-AgwQ-yKX.js → input-handlers-CzWCJ849.js} +1 -1
  95. package/dist/esm/internal-tokenize-payment-method_7.entry.js +4 -4
  96. package/dist/esm/justifi-additional-questions-form-step_9.entry.js +25 -12
  97. package/dist/esm/justifi-apple-pay_8.entry.js +6 -76
  98. package/dist/esm/justifi-bank-account-billing-form-simple_3.entry.js +4 -4
  99. package/dist/esm/justifi-business-details.entry.js +6 -6
  100. package/dist/esm/justifi-business-form.entry.js +10 -10
  101. package/dist/esm/justifi-checkout.entry.js +4 -4
  102. package/dist/esm/justifi-checkouts-list-filters.entry.js +2 -2
  103. package/dist/esm/justifi-checkouts-list.entry.js +6 -6
  104. package/dist/esm/justifi-dispute-management.entry.js +5 -5
  105. package/dist/esm/justifi-dispute-notification_3.entry.js +5 -5
  106. package/dist/esm/justifi-gross-payment-chart.entry.js +4 -4
  107. package/dist/esm/justifi-order-terminals.entry.js +7 -7
  108. package/dist/esm/justifi-payment-details.entry.js +6 -6
  109. package/dist/esm/justifi-payment-provisioning-core.entry.js +1 -1
  110. package/dist/esm/justifi-payment-provisioning.entry.js +5 -5
  111. package/dist/esm/justifi-payment-transactions-list.entry.js +5 -5
  112. package/dist/esm/justifi-payments-list.entry.js +5 -5
  113. package/dist/esm/justifi-payout-details.entry.js +5 -5
  114. package/dist/esm/justifi-payout-transactions-list.entry.js +5 -5
  115. package/dist/esm/justifi-payouts-list.entry.js +6 -6
  116. package/dist/esm/justifi-refund-payment.entry.js +6 -6
  117. package/dist/esm/justifi-season-interruption-insurance.entry.js +4 -4
  118. package/dist/esm/justifi-terminal-orders-list-filters.entry.js +2 -2
  119. package/dist/esm/justifi-terminal-orders-list.entry.js +5 -5
  120. package/dist/esm/justifi-terminals-list-filters.entry.js +2 -2
  121. package/dist/esm/justifi-terminals-list.entry.js +6 -6
  122. package/dist/esm/loader.js +1 -1
  123. package/dist/esm/{package-ZkBwsSuI.js → package-CekpA_KC.js} +1 -1
  124. package/dist/esm/payment-details-core.entry.js +2 -2
  125. package/dist/esm/{payment.service-BGf8F56_.js → payment.service-C2lFq1yV.js} +2 -2
  126. package/dist/esm/payments-list-core.entry.js +2 -2
  127. package/dist/esm/{payout.service-Co3xg-7j.js → payout.service-ChupMPKT.js} +2 -2
  128. package/dist/esm/payouts-list-core.entry.js +2 -2
  129. package/dist/esm/plaid-icon-wJLd-2NX.js +43 -0
  130. package/dist/esm/{schema-validations-jBrJ0mYI.js → schema-validations-CfHWzMvr.js} +3 -3
  131. package/dist/esm/terminal-orders-list-core.entry.js +3 -3
  132. package/dist/esm/{terminal-orders-table-uNYLd8i5.js → terminal-orders-table-B4_RAxxx.js} +2 -2
  133. package/dist/esm/{terminal.service-Cxs-IO0Z.js → terminal.service-DqibXFHt.js} +2 -2
  134. package/dist/esm/terminals-list-core.entry.js +2 -2
  135. package/dist/esm/webcomponents.js +1 -1
  136. package/dist/module/Analytics.js +9 -8
  137. package/dist/module/Business.js +1 -0
  138. package/dist/module/{Refund.js → Plaid.js} +51 -1
  139. package/dist/module/bank-account-document-inputs.js +1 -1
  140. package/dist/module/business-additional-questions-form-step.js +1 -1
  141. package/dist/module/business-bank-account-form-step.js +46 -25
  142. package/dist/module/business-core-info-form-step.js +1 -1
  143. package/dist/module/business-owners-form-step.js +1 -1
  144. package/dist/module/business-representative-form-step.js +1 -1
  145. package/dist/module/business-terms-conditions-form-step.js +1 -1
  146. package/dist/module/business.service.js +1 -1
  147. package/dist/module/checkout.service.js +1 -1
  148. package/dist/module/checkout.store.js +1 -1
  149. package/dist/module/checkouts-list-core2.js +1 -1
  150. package/dist/module/custom-popper2.js +50 -17
  151. package/dist/module/dispute-management-core.js +1 -1
  152. package/dist/module/dispute-response-actions.js +1 -1
  153. package/dist/module/dispute-response.js +1 -1
  154. package/dist/module/get-business.js +1 -1
  155. package/dist/module/get-payment-details.js +1 -1
  156. package/dist/module/get-payout-csv.js +1 -1
  157. package/dist/module/get-subaccounts.js +1 -1
  158. package/dist/module/google-pay.js +1 -1
  159. package/dist/module/internal-tokenize-payment-method2.js +1 -1
  160. package/dist/module/justifi-business-details.js +1 -1
  161. package/dist/module/justifi-business-form.js +1 -1
  162. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  163. package/dist/module/justifi-checkouts-list.js +1 -1
  164. package/dist/module/justifi-dispute-management.js +1 -1
  165. package/dist/module/justifi-gross-payment-chart.js +1 -1
  166. package/dist/module/justifi-order-terminals.js +1 -1
  167. package/dist/module/justifi-payment-details.js +1 -1
  168. package/dist/module/justifi-payment-provisioning.js +69 -63
  169. package/dist/module/justifi-payment-transactions-list.js +1 -1
  170. package/dist/module/justifi-payments-list.js +1 -1
  171. package/dist/module/justifi-payout-details.js +1 -1
  172. package/dist/module/justifi-payout-transactions-list.js +1 -1
  173. package/dist/module/justifi-payouts-list.js +1 -1
  174. package/dist/module/justifi-refund-payment.js +1 -1
  175. package/dist/module/justifi-season-interruption-insurance.js +1 -1
  176. package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
  177. package/dist/module/justifi-terminal-orders-list.js +1 -1
  178. package/dist/module/justifi-terminals-list-filters.js +1 -1
  179. package/dist/module/justifi-terminals-list.js +1 -1
  180. package/dist/module/legal-address-form-step.js +1 -1
  181. package/dist/module/modular-checkout.js +2 -2
  182. package/dist/module/package.js +1 -1
  183. package/dist/module/payment-details-core2.js +1 -1
  184. package/dist/module/payment-provisioning-actions.js +1 -1
  185. package/dist/module/payment-provisioning-core.js +67 -61
  186. package/dist/module/payment-provisioning-form-steps.js +62 -56
  187. package/dist/module/payment.service.js +1 -1
  188. package/dist/module/payments-list-core2.js +1 -1
  189. package/dist/module/payout.service.js +1 -1
  190. package/dist/module/payouts-list-core2.js +1 -1
  191. package/dist/module/plaid-icon.js +3 -0
  192. package/dist/module/plaid-payment-method.js +3 -53
  193. package/dist/module/plaid-verification.d.ts +11 -0
  194. package/dist/module/plaid-verification.js +6 -0
  195. package/dist/module/plaid-verification2.js +358 -0
  196. package/dist/module/plaid.service.js +14 -1
  197. package/dist/module/terminal-orders-list-core2.js +1 -1
  198. package/dist/module/terminal.service.js +1 -1
  199. package/dist/module/terminals-list-core2.js +1 -1
  200. package/dist/module/utils4.js +1 -1
  201. package/dist/types/api/Analytics.d.ts +1 -0
  202. package/dist/types/api/BankAccount.d.ts +1 -0
  203. package/dist/types/api/Business.d.ts +2 -0
  204. package/dist/types/api/Plaid.d.ts +54 -0
  205. package/dist/types/api/index.d.ts +1 -0
  206. package/dist/types/api/services/plaid.service.d.ts +8 -0
  207. package/dist/types/components/business-forms/payment-provisioning/bank-account/business-bank-account-form-step.d.ts +2 -0
  208. package/dist/types/components/business-forms/payment-provisioning/plaid-verification/plaid-verification.d.ts +36 -0
  209. package/dist/types/components/modular-checkout/sub-components/plaid-payment-method.d.ts +1 -25
  210. package/dist/types/components.d.ts +40 -1
  211. package/dist/types/ui-components/custom-popper/custom-popper.d.ts +4 -0
  212. package/dist/webcomponents/{p-BXdZKjdB.js → p--cI8fPJx.js} +1 -1
  213. package/dist/webcomponents/{p-66e8b443.entry.js → p-02f360c5.entry.js} +1 -1
  214. package/dist/webcomponents/{p-d0d6d1cc.entry.js → p-073ca03f.entry.js} +1 -1
  215. package/dist/webcomponents/{p-e9daf75f.entry.js → p-0eb97b54.entry.js} +1 -1
  216. package/dist/webcomponents/p-0fcb7ebb.entry.js +1 -0
  217. package/dist/webcomponents/{p-b2371f43.entry.js → p-110bec2e.entry.js} +1 -1
  218. package/dist/webcomponents/{p-931ea171.entry.js → p-1ec3d1e7.entry.js} +1 -1
  219. package/dist/webcomponents/{p-86db9040.entry.js → p-20cab5fe.entry.js} +1 -1
  220. package/dist/webcomponents/{p-a9b493c1.entry.js → p-238ba771.entry.js} +1 -1
  221. package/dist/webcomponents/{p-e11c7df0.entry.js → p-2454c140.entry.js} +1 -1
  222. package/dist/webcomponents/{p-5af4bb01.entry.js → p-25666afe.entry.js} +1 -1
  223. package/dist/webcomponents/{p-f5f46f2d.entry.js → p-26430bfe.entry.js} +1 -1
  224. package/dist/webcomponents/p-33ab9174.entry.js +1 -0
  225. package/dist/webcomponents/{p-f13c4a88.entry.js → p-3a254390.entry.js} +1 -1
  226. package/dist/webcomponents/p-4a802f82.entry.js +1 -0
  227. package/dist/webcomponents/p-4b928d2e.entry.js +1 -0
  228. package/dist/webcomponents/{p-252bd81d.entry.js → p-4d3e4e56.entry.js} +1 -1
  229. package/dist/webcomponents/{p-7184c2f8.entry.js → p-5ae3401d.entry.js} +1 -1
  230. package/dist/webcomponents/{p-4165281d.entry.js → p-7068c2ad.entry.js} +1 -1
  231. package/dist/webcomponents/{p-4786d1ea.entry.js → p-785e8ef7.entry.js} +1 -1
  232. package/dist/webcomponents/{p-50f16cca.entry.js → p-81bbd944.entry.js} +1 -1
  233. package/dist/webcomponents/{p-3d2495df.entry.js → p-8ac883e4.entry.js} +1 -1
  234. package/dist/webcomponents/{p-6ed0be7f.entry.js → p-8e6f2dc8.entry.js} +1 -1
  235. package/dist/webcomponents/{p-53be30e9.entry.js → p-8ed4f485.entry.js} +1 -1
  236. package/dist/webcomponents/p-922ddfb4.entry.js +1 -0
  237. package/dist/webcomponents/p-9643fe36.entry.js +1 -0
  238. package/dist/webcomponents/{p-Ce785aMx.js → p-B1AMrMly.js} +1 -1
  239. package/dist/webcomponents/{p-DDjKoqh6.js → p-BRPbLfCN.js} +1 -1
  240. package/dist/webcomponents/{p-BAu40WfT.js → p-BZbvHgMz.js} +1 -1
  241. package/dist/webcomponents/{p-APob2Eta.js → p-Bj9n56jK.js} +1 -1
  242. package/dist/webcomponents/p-By-Mu1IX.js +1 -0
  243. package/dist/webcomponents/p-C0dMwnDO.js +1 -0
  244. package/dist/webcomponents/p-C3RQHKL5.js +1 -0
  245. package/dist/webcomponents/{p-DBOsYeYk.js → p-CWyW004b.js} +1 -1
  246. package/dist/webcomponents/p-CekpA_KC.js +1 -0
  247. package/dist/webcomponents/p-CkYB1zGe.js +1 -0
  248. package/dist/webcomponents/p-D-07jgNC.js +1 -0
  249. package/dist/webcomponents/{p-C-LV3hNf.js → p-DCwnBXF7.js} +1 -1
  250. package/dist/webcomponents/p-DKemQxaE.js +1 -0
  251. package/dist/webcomponents/{p-CHJTjG_5.js → p-GgW1g7FQ.js} +1 -1
  252. package/dist/webcomponents/{p-NO0z-S2W.js → p-MVBgKFOv.js} +1 -1
  253. package/dist/webcomponents/{p-mhEMV8M-.js → p-Y-EhaLdV.js} +1 -1
  254. package/dist/webcomponents/{p-e5651bb1.entry.js → p-aa02e3d7.entry.js} +1 -1
  255. package/dist/webcomponents/p-adbe280f.entry.js +1 -0
  256. package/dist/webcomponents/{p-ea0cd47d.entry.js → p-af11ac6a.entry.js} +1 -1
  257. package/dist/webcomponents/{p-73b9cc29.entry.js → p-bbffb17f.entry.js} +1 -1
  258. package/dist/webcomponents/{p-782ccafb.entry.js → p-c0829d61.entry.js} +1 -1
  259. package/dist/webcomponents/{p-001ce9f8.entry.js → p-c2db5db6.entry.js} +1 -1
  260. package/dist/webcomponents/{p-79d1d6b3.entry.js → p-d4535236.entry.js} +1 -1
  261. package/dist/webcomponents/{p-e1a8785d.entry.js → p-d5827cb2.entry.js} +1 -1
  262. package/dist/webcomponents/{p-1eefdd41.entry.js → p-ed9db5b2.entry.js} +1 -1
  263. package/dist/webcomponents/{p-c11512e7.entry.js → p-f1e012f6.entry.js} +1 -1
  264. package/dist/webcomponents/{p-1dbf3473.entry.js → p-f1f0f100.entry.js} +1 -1
  265. package/dist/webcomponents/{p-7c4fa66f.entry.js → p-f5b7c322.entry.js} +1 -1
  266. package/dist/webcomponents/{p-bc56446a.entry.js → p-f9475bb0.entry.js} +1 -1
  267. package/dist/webcomponents/{p-4d7a2565.entry.js → p-ff1cff1d.entry.js} +1 -1
  268. package/dist/webcomponents/{p-D81X4BBI.js → p-g0kDRH6Z.js} +1 -1
  269. package/dist/webcomponents/{p-Bz97Ujvk.js → p-m_Ly-YPk.js} +1 -1
  270. package/dist/webcomponents/p-wSi5d4-j.js +1 -0
  271. package/dist/webcomponents/{p-BhvkOTYA.js → p-ygekUw3Q.js} +1 -1
  272. package/dist/webcomponents/webcomponents.esm.js +1 -1
  273. package/package.json +2 -1
  274. package/dist/webcomponents/p-0fb3fd77.entry.js +0 -1
  275. package/dist/webcomponents/p-198d2941.entry.js +0 -1
  276. package/dist/webcomponents/p-52203b01.entry.js +0 -1
  277. package/dist/webcomponents/p-639e5ce9.entry.js +0 -1
  278. package/dist/webcomponents/p-7ec771bc.entry.js +0 -1
  279. package/dist/webcomponents/p-D0PhRMmy.js +0 -1
  280. package/dist/webcomponents/p-DLLFAj4z.js +0 -1
  281. package/dist/webcomponents/p-DpkIbI5R.js +0 -1
  282. package/dist/webcomponents/p-MBH9QO2m.js +0 -1
  283. package/dist/webcomponents/p-ZkBwsSuI.js +0 -1
  284. package/dist/webcomponents/p-_LSWCi-4.js +0 -1
  285. package/dist/webcomponents/p-c5afb831.entry.js +0 -1
  286. package/dist/webcomponents/p-d55c348b.entry.js +0 -1
  287. package/dist/webcomponents/p-y-FoILTI.js +0 -1
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-12-26T15:42:35",
2
+ "timestamp": "2026-01-14T17:41:32",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.38.3",
@@ -1139,7 +1139,7 @@
1139
1139
  }
1140
1140
  ],
1141
1141
  "optional": false,
1142
- "required": true,
1142
+ "required": false,
1143
1143
  "getter": false,
1144
1144
  "setter": false
1145
1145
  },
@@ -7600,6 +7600,7 @@
7600
7600
  ],
7601
7601
  "dependencies": [
7602
7602
  "form-control-tooltip",
7603
+ "plaid-verification",
7603
7604
  "bank-account-form-inputs-canada",
7604
7605
  "bank-account-form-inputs",
7605
7606
  "business-documents-on-file",
@@ -7608,6 +7609,7 @@
7608
7609
  "dependencyGraph": {
7609
7610
  "justifi-business-bank-account-form-step": [
7610
7611
  "form-control-tooltip",
7612
+ "plaid-verification",
7611
7613
  "bank-account-form-inputs-canada",
7612
7614
  "bank-account-form-inputs",
7613
7615
  "business-documents-on-file",
@@ -15148,6 +15150,7 @@
15148
15150
  ],
15149
15151
  "justifi-business-bank-account-form-step": [
15150
15152
  "form-control-tooltip",
15153
+ "plaid-verification",
15151
15154
  "bank-account-form-inputs-canada",
15152
15155
  "bank-account-form-inputs",
15153
15156
  "business-documents-on-file",
@@ -15502,6 +15505,7 @@
15502
15505
  ],
15503
15506
  "justifi-business-bank-account-form-step": [
15504
15507
  "form-control-tooltip",
15508
+ "plaid-verification",
15505
15509
  "bank-account-form-inputs-canada",
15506
15510
  "bank-account-form-inputs",
15507
15511
  "business-documents-on-file",
@@ -15993,6 +15997,7 @@
15993
15997
  ],
15994
15998
  "justifi-business-bank-account-form-step": [
15995
15999
  "form-control-tooltip",
16000
+ "plaid-verification",
15996
16001
  "bank-account-form-inputs-canada",
15997
16002
  "bank-account-form-inputs",
15998
16003
  "business-documents-on-file",
@@ -16973,8 +16978,9 @@
16973
16978
  "id": "global::Promise"
16974
16979
  },
16975
16980
  "PlaidError": {
16976
- "location": "global",
16977
- "id": "global::PlaidError"
16981
+ "location": "import",
16982
+ "path": "../../../api/Plaid",
16983
+ "id": "src/api/Plaid.ts::PlaidError"
16978
16984
  }
16979
16985
  },
16980
16986
  "return": "Promise<PlaidError>"
@@ -21485,6 +21491,136 @@
21485
21491
  ]
21486
21492
  }
21487
21493
  },
21494
+ {
21495
+ "filePath": "src/components/business-forms/payment-provisioning/plaid-verification/plaid-verification.tsx",
21496
+ "encapsulation": "none",
21497
+ "tag": "plaid-verification",
21498
+ "readme": "# plaid-verification\n\n\n",
21499
+ "docs": "",
21500
+ "docsTags": [],
21501
+ "usage": {},
21502
+ "props": [
21503
+ {
21504
+ "name": "accountId",
21505
+ "type": "string",
21506
+ "complexType": {
21507
+ "original": "string",
21508
+ "resolved": "string",
21509
+ "references": {}
21510
+ },
21511
+ "mutable": false,
21512
+ "attr": "account-id",
21513
+ "reflectToAttr": false,
21514
+ "docs": "",
21515
+ "docsTags": [],
21516
+ "values": [
21517
+ {
21518
+ "type": "string"
21519
+ }
21520
+ ],
21521
+ "optional": false,
21522
+ "required": false,
21523
+ "getter": false,
21524
+ "setter": false
21525
+ },
21526
+ {
21527
+ "name": "authToken",
21528
+ "type": "string",
21529
+ "complexType": {
21530
+ "original": "string",
21531
+ "resolved": "string",
21532
+ "references": {}
21533
+ },
21534
+ "mutable": false,
21535
+ "attr": "auth-token",
21536
+ "reflectToAttr": false,
21537
+ "docs": "",
21538
+ "docsTags": [],
21539
+ "values": [
21540
+ {
21541
+ "type": "string"
21542
+ }
21543
+ ],
21544
+ "optional": false,
21545
+ "required": false,
21546
+ "getter": false,
21547
+ "setter": false
21548
+ },
21549
+ {
21550
+ "name": "businessId",
21551
+ "type": "string",
21552
+ "complexType": {
21553
+ "original": "string",
21554
+ "resolved": "string",
21555
+ "references": {}
21556
+ },
21557
+ "mutable": false,
21558
+ "attr": "business-id",
21559
+ "reflectToAttr": false,
21560
+ "docs": "",
21561
+ "docsTags": [],
21562
+ "values": [
21563
+ {
21564
+ "type": "string"
21565
+ }
21566
+ ],
21567
+ "optional": false,
21568
+ "required": false,
21569
+ "getter": false,
21570
+ "setter": false
21571
+ }
21572
+ ],
21573
+ "methods": [],
21574
+ "events": [
21575
+ {
21576
+ "event": "plaidVerificationError",
21577
+ "detail": "PlaidError",
21578
+ "bubbles": true,
21579
+ "complexType": {
21580
+ "original": "PlaidError",
21581
+ "resolved": "PlaidError",
21582
+ "references": {
21583
+ "PlaidError": {
21584
+ "location": "import",
21585
+ "path": "../../../../api/Plaid",
21586
+ "id": "src/api/Plaid.ts::PlaidError"
21587
+ }
21588
+ }
21589
+ },
21590
+ "cancelable": true,
21591
+ "composed": true,
21592
+ "docs": "",
21593
+ "docsTags": []
21594
+ },
21595
+ {
21596
+ "event": "plaidVerificationSuccess",
21597
+ "detail": "{ publicToken: string; bankAccount: any; }",
21598
+ "bubbles": true,
21599
+ "complexType": {
21600
+ "original": "{ publicToken: string, bankAccount: any }",
21601
+ "resolved": "{ publicToken: string; bankAccount: any; }",
21602
+ "references": {}
21603
+ },
21604
+ "cancelable": true,
21605
+ "composed": true,
21606
+ "docs": "",
21607
+ "docsTags": []
21608
+ }
21609
+ ],
21610
+ "listeners": [],
21611
+ "styles": [],
21612
+ "slots": [],
21613
+ "parts": [],
21614
+ "dependents": [
21615
+ "justifi-business-bank-account-form-step"
21616
+ ],
21617
+ "dependencies": [],
21618
+ "dependencyGraph": {
21619
+ "justifi-business-bank-account-form-step": [
21620
+ "plaid-verification"
21621
+ ]
21622
+ }
21623
+ },
21488
21624
  {
21489
21625
  "filePath": "src/components/business-details/representative-details/representative-details.tsx",
21490
21626
  "encapsulation": "none",
@@ -22178,6 +22314,11 @@
22178
22314
  "docstring": "",
22179
22315
  "path": "src/api/index.ts"
22180
22316
  },
22317
+ "src/api/Plaid.ts::PlaidError": {
22318
+ "declaration": "export interface PlaidError {\n code: PlaidErrorCodes;\n message: string;\n severity: ComponentErrorSeverity;\n originalError?: any;\n retryable: boolean;\n userAction?: string;\n}",
22319
+ "docstring": "",
22320
+ "path": "src/api/Plaid.ts"
22321
+ },
22181
22322
  "src/components/modular-checkout/ModularCheckout.ts::Hook": {
22182
22323
  "declaration": "(\n data: T,\n resolve: (data: T) => void,\n reject: () => void,\n) => void",
22183
22324
  "docstring": "",
@@ -496,6 +496,7 @@ class Business {
496
496
  this.website_url = business.website_url;
497
497
  this.date_of_incorporation = business.date_of_incorporation;
498
498
  this.country_of_establishment = normalizeCountry(business.country_of_establishment);
499
+ this.bank_account_verification = business.bank_account_verification;
499
500
  }
500
501
  get payload() {
501
502
  return {
@@ -2,6 +2,7 @@ import { f as formatCurrency } from './utils-CDaVtz_6.js';
2
2
  import { a as DisputeStatus } from './Dispute-BH0Xfn-F.js';
3
3
  import { c as createStore } from './index-cDVGjRkU.js';
4
4
  import { P as PAYMENT_METHODS } from './index-DkoufM1t.js';
5
+ import { C as ComponentErrorSeverity } from './ComponentError-Cjcsf8ku.js';
5
6
 
6
7
  class Completion {
7
8
  constructor(data) {
@@ -991,4 +992,54 @@ class GooglePayHelpers {
991
992
  }
992
993
  }
993
994
 
994
- export { ApplePayConfig as A, onChange as B, Checkout as C, onAnyChange as D, EntityDocumentType as E, getAvailablePaymentMethodTypes as F, GooglePayConfig as G, getCheckoutState as H, ICheckoutStatus as I, Payment as P, RefundReasons as R, SubAccount as S, TerminalOrderStatus as T, ICheckoutPaymentModeParam as a, TerminalOrderType as b, checkoutStore as c, ITerminalStatus as d, Payout as e, Terminal as f, PaymentStatuses as g, PaymentBalanceTransaction as h, PayoutBalanceTransaction as i, TerminalOrder as j, TerminalModel as k, RefundPayload as l, EntityDocumentStorage as m, EntityDocument as n, ApplePayHelpers as o, ApplePayPaymentRequest as p, ApplePaySessionStatus as q, ApplePayButtonStyle as r, ApplePayButtonType as s, ApplePayMerchantCapability as t, GooglePayHelpers as u, GooglePayPaymentDataRequest as v, GooglePayButtonSizeMode as w, GooglePayButtonStyle as x, GooglePayButtonType as y, GooglePayEnvironment as z };
995
+ // Plaid-specific error codes
996
+ var PlaidErrorCodes;
997
+ (function (PlaidErrorCodes) {
998
+ PlaidErrorCodes["PLAID_SDK_LOAD_FAILED"] = "plaid-sdk-load-failed";
999
+ PlaidErrorCodes["PLAID_LINK_INIT_FAILED"] = "plaid-link-init-failed";
1000
+ PlaidErrorCodes["PLAID_LINK_TOKEN_FAILED"] = "plaid-link-token-failed";
1001
+ PlaidErrorCodes["PLAID_AUTHENTICATION_FAILED"] = "plaid-authentication-failed";
1002
+ PlaidErrorCodes["PLAID_BANK_NOT_SUPPORTED"] = "plaid-bank-not-supported";
1003
+ PlaidErrorCodes["PLAID_TOKEN_EXPIRED"] = "plaid-token-expired";
1004
+ PlaidErrorCodes["PLAID_NETWORK_ERROR"] = "plaid-network-error";
1005
+ PlaidErrorCodes["PLAID_USER_CANCELLED"] = "plaid-user-cancelled";
1006
+ PlaidErrorCodes["PLAID_TIMEOUT"] = "plaid-timeout";
1007
+ PlaidErrorCodes["PLAID_INVALID_CREDENTIALS"] = "plaid-invalid-credentials";
1008
+ PlaidErrorCodes["PLAID_ACCOUNT_LOCKED"] = "plaid-account-locked";
1009
+ PlaidErrorCodes["PLAID_MAINTENANCE"] = "plaid-maintenance";
1010
+ PlaidErrorCodes["PLAID_RATE_LIMITED"] = "plaid-rate-limited";
1011
+ })(PlaidErrorCodes || (PlaidErrorCodes = {}));
1012
+ // Plaid error message mapping
1013
+ const PLAID_ERROR_MESSAGES = {
1014
+ [PlaidErrorCodes.PLAID_SDK_LOAD_FAILED]: 'Unable to load Plaid. Please refresh the page and try again.',
1015
+ [PlaidErrorCodes.PLAID_LINK_INIT_FAILED]: 'Unable to initialize bank connection. Please try again.',
1016
+ [PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED]: 'Unable to connect to bank service. Please try again.',
1017
+ [PlaidErrorCodes.PLAID_AUTHENTICATION_FAILED]: 'Bank authentication failed. Please try again.',
1018
+ [PlaidErrorCodes.PLAID_BANK_NOT_SUPPORTED]: 'Your bank is not currently supported. Please try a different payment method.',
1019
+ [PlaidErrorCodes.PLAID_TOKEN_EXPIRED]: 'Your bank session has expired. Please reconnect your account.',
1020
+ [PlaidErrorCodes.PLAID_NETWORK_ERROR]: 'Network connection issue. Please check your internet connection and try again.',
1021
+ [PlaidErrorCodes.PLAID_USER_CANCELLED]: 'Bank connection was cancelled. Click to try again.',
1022
+ [PlaidErrorCodes.PLAID_TIMEOUT]: 'Bank connection timed out. Please try again.',
1023
+ [PlaidErrorCodes.PLAID_INVALID_CREDENTIALS]: 'Invalid bank credentials. Please check your username and password.',
1024
+ [PlaidErrorCodes.PLAID_ACCOUNT_LOCKED]: 'Your bank account is temporarily locked. Please contact your bank.',
1025
+ [PlaidErrorCodes.PLAID_MAINTENANCE]: 'Bank service is temporarily unavailable. Please try again later.',
1026
+ [PlaidErrorCodes.PLAID_RATE_LIMITED]: 'Too many connection attempts. Please wait a moment and try again.',
1027
+ };
1028
+ // Plaid error severity mapping
1029
+ const PLAID_ERROR_SEVERITY = {
1030
+ [PlaidErrorCodes.PLAID_SDK_LOAD_FAILED]: ComponentErrorSeverity.ERROR,
1031
+ [PlaidErrorCodes.PLAID_LINK_INIT_FAILED]: ComponentErrorSeverity.ERROR,
1032
+ [PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED]: ComponentErrorSeverity.ERROR,
1033
+ [PlaidErrorCodes.PLAID_AUTHENTICATION_FAILED]: ComponentErrorSeverity.ERROR,
1034
+ [PlaidErrorCodes.PLAID_BANK_NOT_SUPPORTED]: ComponentErrorSeverity.WARNING,
1035
+ [PlaidErrorCodes.PLAID_TOKEN_EXPIRED]: ComponentErrorSeverity.WARNING,
1036
+ [PlaidErrorCodes.PLAID_NETWORK_ERROR]: ComponentErrorSeverity.WARNING,
1037
+ [PlaidErrorCodes.PLAID_USER_CANCELLED]: ComponentErrorSeverity.INFO,
1038
+ [PlaidErrorCodes.PLAID_TIMEOUT]: ComponentErrorSeverity.WARNING,
1039
+ [PlaidErrorCodes.PLAID_INVALID_CREDENTIALS]: ComponentErrorSeverity.ERROR,
1040
+ [PlaidErrorCodes.PLAID_ACCOUNT_LOCKED]: ComponentErrorSeverity.ERROR,
1041
+ [PlaidErrorCodes.PLAID_MAINTENANCE]: ComponentErrorSeverity.WARNING,
1042
+ [PlaidErrorCodes.PLAID_RATE_LIMITED]: ComponentErrorSeverity.WARNING,
1043
+ };
1044
+
1045
+ export { ApplePayConfig as A, GooglePayButtonStyle as B, Checkout as C, GooglePayButtonType as D, EntityDocumentType as E, GooglePayEnvironment as F, GooglePayConfig as G, onChange as H, ICheckoutStatus as I, onAnyChange as J, getAvailablePaymentMethodTypes as K, getCheckoutState as L, Payment as P, RefundReasons as R, SubAccount as S, TerminalOrderStatus as T, ICheckoutPaymentModeParam as a, TerminalOrderType as b, checkoutStore as c, ITerminalStatus as d, Payout as e, Terminal as f, PaymentStatuses as g, PaymentBalanceTransaction as h, PayoutBalanceTransaction as i, TerminalOrder as j, TerminalModel as k, RefundPayload as l, PLAID_ERROR_SEVERITY as m, PLAID_ERROR_MESSAGES as n, PlaidErrorCodes as o, EntityDocumentStorage as p, EntityDocument as q, ApplePayHelpers as r, ApplePayPaymentRequest as s, ApplePaySessionStatus as t, ApplePayButtonStyle as u, ApplePayButtonType as v, ApplePayMerchantCapability as w, GooglePayHelpers as x, GooglePayPaymentDataRequest as y, GooglePayButtonSizeMode as z };
@@ -1,12 +1,12 @@
1
1
  import { r as registerInstance, h, H as Host, c as createEvent, g as getElement } from './index-CV0Pyo1O.js';
2
2
  import './config-state-kKn89dp1.js';
3
3
  import './dinero-HXpYMWUU.js';
4
- import './ComponentError-Cjcsf8ku.js';
5
- import { E as EntityDocumentType } from './GooglePay-5EiPffHy.js';
4
+ import { C as ComponentErrorSeverity } from './ComponentError-Cjcsf8ku.js';
5
+ import { E as EntityDocumentType, m as PLAID_ERROR_SEVERITY, n as PLAID_ERROR_MESSAGES, o as PlaidErrorCodes } from './Plaid-CBrksnBN.js';
6
6
  import './Pagination-CLHwhyvu.js';
7
- import './Business-CHJTjG_5.js';
7
+ import './Business-GgW1g7FQ.js';
8
8
  import './Dispute-BH0Xfn-F.js';
9
- import { a as bankAccountTypeOptions } from './business-form-options-Bm89rMmk.js';
9
+ import { a as bankAccountTypeOptions } from './business-form-options-DamBLV7N.js';
10
10
  import './event-types-XYgDHrVL.js';
11
11
  import { n as numberOnlyHandler } from './utils-BnjCmwMr.js';
12
12
  import { B as text, $ as card, D as heading2, ap as table, P as tableHeadCell, ay as tableCell, U as input, V as label, R as inputInvalid, S as inputDisabled, T as inputFocused, ag as buttonSecondary } from './parts-DrquDBSk.js';
@@ -14,11 +14,14 @@ import { s as snakeCaseToHumanReadable, e as formatDate, d as formatTime } from
14
14
  import { S as Skeleton } from './skeleton-D9UXuoik.js';
15
15
  import './event-types-CZfYo5-1.js';
16
16
  import { F as FormControlErrorText } from './form-control-error-text-CTQxgr7_.js';
17
- import { u as updateFormValues, a as updateAddressFormValues, b as updateDateOfBirthFormValues } from './input-handlers-AgwQ-yKX.js';
17
+ import { u as updateFormValues, a as updateAddressFormValues, b as updateDateOfBirthFormValues } from './input-handlers-CzWCJ849.js';
18
18
  import { P as PHONE_MASKS, I as IDENTITY_MASKS } from './form-input-masks-CVaOFfrI.js';
19
- import { c as countryLabels } from './country-config-CQxaTFuP.js';
19
+ import { c as countryLabels } from './country-config-D-9YmU94.js';
20
20
  import { c as makeGetIdentity, d as makePatchIdentity, e as makePostIdentity } from './payment-provisioning-actions-ONP8lDnV.js';
21
- import { I as IdentityService } from './business.service-C7smiL6_.js';
21
+ import { I as IdentityService } from './business.service-BWm7Kqs4.js';
22
+ import { B as Button } from './button-DMeChykB.js';
23
+ import { S as StyledHost } from './styled-host-D6byRazK.js';
24
+ import { P as PlaidService, p as plaidIconSvg } from './plaid-icon-wJLd-2NX.js';
22
25
  import './index-cDVGjRkU.js';
23
26
  import './index-DkoufM1t.js';
24
27
  import './utils-BeQLScSm.js';
@@ -198,4 +201,322 @@ const BusinessOwnerForm = class {
198
201
  }
199
202
  };
200
203
 
201
- export { BankAccountDocumentFormInputs as bank_account_document_form_inputs, BankAccountFormInputs as bank_account_form_inputs, BankAccountFormInputsCanada as bank_account_form_inputs_canada, BankAccountReadOnlyValue as bank_account_read_only_value, BusinessDocumentsOnFile as business_documents_on_file, FileInput as form_control_file, RepresentativeFormInputs as justifi_business_representative_form_inputs, BusinessOwnerForm as justifi_owner_form };
204
+ const PlaidVerification = class {
205
+ constructor(hostRef) {
206
+ registerInstance(this, hostRef);
207
+ this.plaidVerificationSuccess = createEvent(this, "plaidVerificationSuccess", 7);
208
+ this.plaidVerificationError = createEvent(this, "plaidVerificationError", 7);
209
+ this.linkToken = null;
210
+ this.linkTokenId = null;
211
+ this.plaidLink = null;
212
+ this.isAuthenticating = false;
213
+ this.isSuccess = false;
214
+ this.error = null;
215
+ this.isLoading = false;
216
+ this.plaidService = new PlaidService();
217
+ this.abortController = null;
218
+ this.timeoutId = null;
219
+ this.initializePlaidLink = async () => {
220
+ try {
221
+ // Check if Plaid is available globally
222
+ if (typeof window.Plaid === 'undefined') {
223
+ this.handleError({
224
+ code: PlaidErrorCodes.PLAID_SDK_LOAD_FAILED,
225
+ message: PLAID_ERROR_MESSAGES[PlaidErrorCodes.PLAID_SDK_LOAD_FAILED],
226
+ severity: PLAID_ERROR_SEVERITY[PlaidErrorCodes.PLAID_SDK_LOAD_FAILED],
227
+ retryable: true,
228
+ userAction: 'Refresh the page and try again',
229
+ });
230
+ return;
231
+ }
232
+ // Get link token from backend
233
+ await this.getLinkToken();
234
+ if (!this.linkToken) {
235
+ this.handleError({
236
+ code: PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED,
237
+ message: PLAID_ERROR_MESSAGES[PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED],
238
+ severity: PLAID_ERROR_SEVERITY[PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED],
239
+ retryable: true,
240
+ userAction: 'Click to try again',
241
+ });
242
+ return;
243
+ }
244
+ // Initialize Plaid Link
245
+ const Plaid = window.Plaid;
246
+ this.plaidLink = Plaid.create({
247
+ token: this.linkToken,
248
+ onSuccess: this.handlePlaidSuccess,
249
+ onExit: this.handlePlaidExit,
250
+ onEvent: this.handlePlaidEvent,
251
+ onLoad: this.handlePlaidLoad,
252
+ });
253
+ }
254
+ catch (error) {
255
+ this.handleError({
256
+ code: PlaidErrorCodes.PLAID_LINK_INIT_FAILED,
257
+ message: PLAID_ERROR_MESSAGES[PlaidErrorCodes.PLAID_LINK_INIT_FAILED],
258
+ severity: PLAID_ERROR_SEVERITY[PlaidErrorCodes.PLAID_LINK_INIT_FAILED],
259
+ originalError: error,
260
+ retryable: true,
261
+ userAction: 'Click to try again',
262
+ });
263
+ }
264
+ };
265
+ this.getLinkToken = async () => {
266
+ var _a, _b, _c, _d;
267
+ try {
268
+ if (!this.authToken || !this.accountId) {
269
+ this.handleError({
270
+ code: PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED,
271
+ message: 'Missing authentication. Please provide authToken and accountId.',
272
+ severity: ComponentErrorSeverity.ERROR,
273
+ retryable: false,
274
+ userAction: 'Provide required props',
275
+ });
276
+ return;
277
+ }
278
+ // Create abort controller for timeout handling
279
+ this.abortController = new AbortController();
280
+ // Set timeout for the request
281
+ this.timeoutId = setTimeout(() => {
282
+ var _a;
283
+ (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
284
+ }, 30000); // 30 second timeout
285
+ const response = await this.plaidService.getLinkTokenForVerification(this.authToken, this.businessId, this.abortController.signal);
286
+ // Clear timeout
287
+ if (this.timeoutId) {
288
+ clearTimeout(this.timeoutId);
289
+ this.timeoutId = null;
290
+ }
291
+ if (response.error) {
292
+ const errorMessage = typeof response.error === 'string'
293
+ ? response.error
294
+ : response.error.message || 'Failed to get link token';
295
+ throw new Error(errorMessage);
296
+ }
297
+ this.linkToken = response.data.link_token;
298
+ this.linkTokenId = response.data.id;
299
+ }
300
+ catch (error) {
301
+ // Clear timeout
302
+ if (this.timeoutId) {
303
+ clearTimeout(this.timeoutId);
304
+ this.timeoutId = null;
305
+ }
306
+ let errorCode = PlaidErrorCodes.PLAID_LINK_TOKEN_FAILED;
307
+ let message = PLAID_ERROR_MESSAGES[errorCode];
308
+ let retryable = true;
309
+ // Handle specific error types
310
+ if (error.name === 'AbortError') {
311
+ errorCode = PlaidErrorCodes.PLAID_TIMEOUT;
312
+ message = PLAID_ERROR_MESSAGES[errorCode];
313
+ retryable = true;
314
+ }
315
+ else if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('network')) || ((_b = error.message) === null || _b === void 0 ? void 0 : _b.includes('fetch'))) {
316
+ errorCode = PlaidErrorCodes.PLAID_NETWORK_ERROR;
317
+ message = PLAID_ERROR_MESSAGES[errorCode];
318
+ retryable = true;
319
+ }
320
+ else if (((_c = error.message) === null || _c === void 0 ? void 0 : _c.includes('401')) || ((_d = error.message) === null || _d === void 0 ? void 0 : _d.includes('unauthorized'))) {
321
+ errorCode = PlaidErrorCodes.PLAID_INVALID_CREDENTIALS;
322
+ message = 'Authentication failed. Please check your credentials.';
323
+ retryable = false;
324
+ }
325
+ this.handleError({
326
+ code: errorCode,
327
+ message: message,
328
+ severity: PLAID_ERROR_SEVERITY[errorCode],
329
+ originalError: error,
330
+ retryable,
331
+ userAction: retryable ? 'Click to try again' : 'Check your credentials',
332
+ });
333
+ }
334
+ };
335
+ this.openPlaidLink = () => {
336
+ if (this.plaidLink && this.linkToken) {
337
+ this.isAuthenticating = true;
338
+ this.clearError();
339
+ this.plaidLink.open();
340
+ }
341
+ };
342
+ this.handlePlaidSuccess = async (publicToken, _metadata) => {
343
+ var _a;
344
+ this.isAuthenticating = false;
345
+ this.isLoading = true;
346
+ this.clearError();
347
+ try {
348
+ // Send publicToken to backend
349
+ const response = await this.plaidService.postPlaidVerifiedBankAccountData(this.authToken, this.businessId, { public_token: publicToken, link_token_id: this.linkTokenId }, (_a = this.abortController) === null || _a === void 0 ? void 0 : _a.signal);
350
+ if (response.error) {
351
+ const errorMessage = typeof response.error === 'string'
352
+ ? response.error
353
+ : response.error.message || 'Failed to verify bank account';
354
+ throw new Error(errorMessage);
355
+ }
356
+ // Success - display success message
357
+ this.isSuccess = true;
358
+ this.isLoading = false;
359
+ // Emit success event
360
+ this.plaidVerificationSuccess.emit({ publicToken, bankAccount: response.data });
361
+ }
362
+ catch (error) {
363
+ this.isLoading = false;
364
+ this.handleError({
365
+ code: PlaidErrorCodes.PLAID_AUTHENTICATION_FAILED,
366
+ message: (error === null || error === void 0 ? void 0 : error.message) || 'Failed to verify bank account',
367
+ severity: PLAID_ERROR_SEVERITY[PlaidErrorCodes.PLAID_AUTHENTICATION_FAILED],
368
+ originalError: error,
369
+ retryable: true,
370
+ userAction: 'Click to try again',
371
+ });
372
+ }
373
+ };
374
+ this.handlePlaidExit = (err, _metadata) => {
375
+ this.isAuthenticating = false;
376
+ if (err) {
377
+ this.handlePlaidError(err);
378
+ }
379
+ };
380
+ this.handlePlaidEvent = (eventName, metadata) => {
381
+ // Handle specific events if needed
382
+ switch (eventName) {
383
+ case 'OPEN':
384
+ this.isAuthenticating = true;
385
+ break;
386
+ case 'CLOSE':
387
+ this.isAuthenticating = false;
388
+ break;
389
+ case 'ERROR':
390
+ this.handlePlaidError(metadata);
391
+ break;
392
+ }
393
+ };
394
+ this.handlePlaidLoad = () => {
395
+ // Plaid Link loaded successfully
396
+ };
397
+ this.handlePlaidError = (error) => {
398
+ let errorCode = PlaidErrorCodes.PLAID_AUTHENTICATION_FAILED;
399
+ let message = PLAID_ERROR_MESSAGES[errorCode];
400
+ let retryable = true;
401
+ let userAction = 'Click to try again';
402
+ // Map Plaid error codes to our error codes
403
+ if (error.error_code) {
404
+ switch (error.error_code) {
405
+ case 'INVALID_CREDENTIALS':
406
+ errorCode = PlaidErrorCodes.PLAID_INVALID_CREDENTIALS;
407
+ message = PLAID_ERROR_MESSAGES[errorCode];
408
+ retryable = true;
409
+ break;
410
+ case 'ITEM_LOGIN_REQUIRED':
411
+ errorCode = PlaidErrorCodes.PLAID_INVALID_CREDENTIALS;
412
+ message = 'Your bank requires re-authentication. Please try again.';
413
+ retryable = true;
414
+ break;
415
+ case 'ITEM_LOCKED':
416
+ errorCode = PlaidErrorCodes.PLAID_ACCOUNT_LOCKED;
417
+ message = PLAID_ERROR_MESSAGES[errorCode];
418
+ retryable = false;
419
+ userAction = 'Contact your bank';
420
+ break;
421
+ case 'INSTITUTION_NOT_RESPONDING':
422
+ errorCode = PlaidErrorCodes.PLAID_MAINTENANCE;
423
+ message = PLAID_ERROR_MESSAGES[errorCode];
424
+ retryable = true;
425
+ break;
426
+ case 'RATE_LIMIT_EXCEEDED':
427
+ errorCode = PlaidErrorCodes.PLAID_RATE_LIMITED;
428
+ message = PLAID_ERROR_MESSAGES[errorCode];
429
+ retryable = true;
430
+ break;
431
+ default:
432
+ if (error.error_message) {
433
+ message = error.error_message;
434
+ }
435
+ break;
436
+ }
437
+ }
438
+ this.handleError({
439
+ code: errorCode,
440
+ message,
441
+ severity: PLAID_ERROR_SEVERITY[errorCode],
442
+ originalError: error,
443
+ retryable,
444
+ userAction,
445
+ });
446
+ this.isAuthenticating = false;
447
+ };
448
+ this.handleError = (plaidError) => {
449
+ this.error = plaidError;
450
+ this.isLoading = false;
451
+ // Emit error event for parent components
452
+ this.plaidVerificationError.emit(plaidError);
453
+ console.error('Plaid verification error:', plaidError);
454
+ };
455
+ this.clearError = () => {
456
+ if (this.error) {
457
+ this.error = null;
458
+ }
459
+ };
460
+ }
461
+ componentDidRender() {
462
+ if (!this.scriptRef)
463
+ return;
464
+ this.scriptRef.onload = () => {
465
+ this.initializePlaidLink();
466
+ };
467
+ this.scriptRef.onerror = () => {
468
+ this.handleError({
469
+ code: PlaidErrorCodes.PLAID_SDK_LOAD_FAILED,
470
+ message: PLAID_ERROR_MESSAGES[PlaidErrorCodes.PLAID_SDK_LOAD_FAILED],
471
+ severity: PLAID_ERROR_SEVERITY[PlaidErrorCodes.PLAID_SDK_LOAD_FAILED],
472
+ retryable: true,
473
+ userAction: 'Refresh the page and try again',
474
+ });
475
+ };
476
+ }
477
+ disconnectedCallback() {
478
+ // Clean up timeouts and abort controllers
479
+ if (this.timeoutId) {
480
+ clearTimeout(this.timeoutId);
481
+ }
482
+ if (this.abortController) {
483
+ this.abortController.abort();
484
+ }
485
+ }
486
+ render() {
487
+ const renderErrorState = () => {
488
+ if (!this.error)
489
+ return null;
490
+ const errorClass = this.error.severity === ComponentErrorSeverity.ERROR
491
+ ? 'text-danger'
492
+ : this.error.severity === ComponentErrorSeverity.WARNING
493
+ ? 'text-warning'
494
+ : 'text-info';
495
+ return (h("div", { class: `${errorClass} mt-2` }, h("small", null, this.error.message), h("br", null), this.error.userAction && (h("small", { class: "text-muted" }, this.error.userAction))));
496
+ };
497
+ const renderStatusState = () => {
498
+ if (this.error)
499
+ return null;
500
+ if (this.isLoading) {
501
+ return (h("div", { class: "text-info mt-2" }, h("small", null, "Verifying bank account...")));
502
+ }
503
+ if (this.isSuccess) {
504
+ return (h("div", { class: "text-success mt-2" }, h("small", null, "\u2713 Bank account verified successfully")));
505
+ }
506
+ if (this.isAuthenticating) {
507
+ return (h("div", { class: "text-info mt-2" }, h("small", null, "Connecting to your bank...")));
508
+ }
509
+ return null;
510
+ };
511
+ const plaidLogo = (h("img", { class: "plaid-logo-img", src: plaidIconSvg, alt: "Plaid", title: "Plaid", style: {
512
+ display: 'inline',
513
+ width: '20px',
514
+ height: '20px',
515
+ marginLeft: '5px',
516
+ marginTop: '-2px',
517
+ } }));
518
+ return (h(StyledHost, null, h("script", { src: "https://cdn.plaid.com/link/v2/stable/link-initialize.js", async: true, ref: (el) => (this.scriptRef = el) }), h("div", null, h("div", { class: "mb-3" }, h(Button, { variant: "secondary", type: "button", onClick: (event) => { event.preventDefault(); this.openPlaidLink(); }, disabled: this.isLoading, part: buttonSecondary }, "Link Bank Account with ", plaidLogo)), renderErrorState(), renderStatusState())));
519
+ }
520
+ };
521
+
522
+ export { BankAccountDocumentFormInputs as bank_account_document_form_inputs, BankAccountFormInputs as bank_account_form_inputs, BankAccountFormInputsCanada as bank_account_form_inputs_canada, BankAccountReadOnlyValue as bank_account_read_only_value, BusinessDocumentsOnFile as business_documents_on_file, FileInput as form_control_file, RepresentativeFormInputs as justifi_business_representative_form_inputs, BusinessOwnerForm as justifi_owner_form, PlaidVerification as plaid_verification };
@@ -1,7 +1,7 @@
1
1
  import { c as create$3, a as create$6 } from './index.esm-IWS0494Y.js';
2
- import { m as makeTaxIdValidation, d as dateOfIncorporationValidation, i as industryValidation, b as businessClassificationValidation, a as doingBusinessAsValidation, p as phoneValidation, e as emailValidation, w as websiteUrlValidation, c as businessNameValidation, t as taxIdValidation, o as otherPaymentDetailsValidation, f as whenServiceReceivedValidation, r as revenueValidation, g as paymentVolumeValidation } from './schema-validations-jBrJ0mYI.js';
3
- import { C as CountryCode } from './Business-CHJTjG_5.js';
4
- import { c as countryLabels } from './country-config-CQxaTFuP.js';
2
+ import { m as makeTaxIdValidation, d as dateOfIncorporationValidation, i as industryValidation, b as businessClassificationValidation, a as doingBusinessAsValidation, p as phoneValidation, e as emailValidation, w as websiteUrlValidation, c as businessNameValidation, t as taxIdValidation, o as otherPaymentDetailsValidation, f as whenServiceReceivedValidation, r as revenueValidation, g as paymentVolumeValidation } from './schema-validations-CfHWzMvr.js';
3
+ import { C as CountryCode } from './Business-GgW1g7FQ.js';
4
+ import { c as countryLabels } from './country-config-D-9YmU94.js';
5
5
 
6
6
  // Base schema (no country-specific rules for classification/tax id)
7
7
  const baseBusinessCoreInfoSchema = (allowOptionalFields) => {
@@ -1,4 +1,4 @@
1
- import { a as BusinessClassification } from './Business-CHJTjG_5.js';
1
+ import { a as BusinessClassification } from './Business-GgW1g7FQ.js';
2
2
 
3
3
  const businessClassificationOptions = [
4
4
  {