@spare-technologies/spare-link 0.1.0-beta.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 (648) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/LICENSE +21 -0
  3. package/README.md +173 -0
  4. package/assets/fonts/MetroSans-Bold.otf +0 -0
  5. package/assets/fonts/MetroSans-Light.otf +0 -0
  6. package/assets/fonts/MetroSans-Medium.otf +0 -0
  7. package/assets/fonts/MetroSans-Regular.otf +0 -0
  8. package/assets/fonts/MetroSans-SemiBold.otf +0 -0
  9. package/assets/images/altareq_logo_mini.png +0 -0
  10. package/assets/images/altareq_logo_transparent_bg.png +0 -0
  11. package/assets/images/altareq_logo_white_bg.png +0 -0
  12. package/assets/images/spare_logo.png +0 -0
  13. package/lib/commonjs/core/client/link-api-client.js +297 -0
  14. package/lib/commonjs/core/client/link-api-client.js.map +1 -0
  15. package/lib/commonjs/core/errors/payment-api-error.js +35 -0
  16. package/lib/commonjs/core/errors/payment-api-error.js.map +1 -0
  17. package/lib/commonjs/core/models/index.js +2 -0
  18. package/lib/commonjs/core/models/index.js.map +1 -0
  19. package/lib/commonjs/core/models/link-session-status.js +14 -0
  20. package/lib/commonjs/core/models/link-session-status.js.map +1 -0
  21. package/lib/commonjs/core/models/payment-return-params.js +42 -0
  22. package/lib/commonjs/core/models/payment-return-params.js.map +1 -0
  23. package/lib/commonjs/core/models/payment-type.js +45 -0
  24. package/lib/commonjs/core/models/payment-type.js.map +1 -0
  25. package/lib/commonjs/core/models/wire-mappers.js +277 -0
  26. package/lib/commonjs/core/models/wire-mappers.js.map +1 -0
  27. package/lib/commonjs/core/services/consent-presenter.js +150 -0
  28. package/lib/commonjs/core/services/consent-presenter.js.map +1 -0
  29. package/lib/commonjs/core/services/execute-resume-if-needed.js +216 -0
  30. package/lib/commonjs/core/services/execute-resume-if-needed.js.map +1 -0
  31. package/lib/commonjs/core/services/multi-payment-rules-presenter.js +151 -0
  32. package/lib/commonjs/core/services/multi-payment-rules-presenter.js.map +1 -0
  33. package/lib/commonjs/core/services/payment-flow-controller.js +547 -0
  34. package/lib/commonjs/core/services/payment-flow-controller.js.map +1 -0
  35. package/lib/commonjs/core/services/payment-flow-state.js +110 -0
  36. package/lib/commonjs/core/services/payment-flow-state.js.map +1 -0
  37. package/lib/commonjs/core/services/payment-result-mapper.js +49 -0
  38. package/lib/commonjs/core/services/payment-result-mapper.js.map +1 -0
  39. package/lib/commonjs/core/services/pending-session-store.js +6 -0
  40. package/lib/commonjs/core/services/pending-session-store.js.map +1 -0
  41. package/lib/commonjs/core/services/presentation-utils.js +11 -0
  42. package/lib/commonjs/core/services/presentation-utils.js.map +1 -0
  43. package/lib/commonjs/core/services/redirect-buffer.js +40 -0
  44. package/lib/commonjs/core/services/redirect-buffer.js.map +1 -0
  45. package/lib/commonjs/core/services/user-friendly-messages.js +46 -0
  46. package/lib/commonjs/core/services/user-friendly-messages.js.map +1 -0
  47. package/lib/commonjs/index.js +294 -0
  48. package/lib/commonjs/index.js.map +1 -0
  49. package/lib/commonjs/internal/bank-redirect.js +53 -0
  50. package/lib/commonjs/internal/bank-redirect.js.map +1 -0
  51. package/lib/commonjs/internal/deep-link-listener.js +39 -0
  52. package/lib/commonjs/internal/deep-link-listener.js.map +1 -0
  53. package/lib/commonjs/internal/event-emitter.js +36 -0
  54. package/lib/commonjs/internal/event-emitter.js.map +1 -0
  55. package/lib/commonjs/internal/index.js +34 -0
  56. package/lib/commonjs/internal/index.js.map +1 -0
  57. package/lib/commonjs/internal/logger.js +67 -0
  58. package/lib/commonjs/internal/logger.js.map +1 -0
  59. package/lib/commonjs/internal/redact-uri.js +25 -0
  60. package/lib/commonjs/internal/redact-uri.js.map +1 -0
  61. package/lib/commonjs/internal/secure-store-pending-session-store.js +92 -0
  62. package/lib/commonjs/internal/secure-store-pending-session-store.js.map +1 -0
  63. package/lib/commonjs/internal/telemetry-collector.js +80 -0
  64. package/lib/commonjs/internal/telemetry-collector.js.map +1 -0
  65. package/lib/commonjs/package.json +1 -0
  66. package/lib/commonjs/public/constants.js +21 -0
  67. package/lib/commonjs/public/constants.js.map +1 -0
  68. package/lib/commonjs/public/index.js +152 -0
  69. package/lib/commonjs/public/index.js.map +1 -0
  70. package/lib/commonjs/public/payment-result.js +48 -0
  71. package/lib/commonjs/public/payment-result.js.map +1 -0
  72. package/lib/commonjs/public/recovery-result.js +40 -0
  73. package/lib/commonjs/public/recovery-result.js.map +1 -0
  74. package/lib/commonjs/public/spare-link-callbacks.js +6 -0
  75. package/lib/commonjs/public/spare-link-callbacks.js.map +1 -0
  76. package/lib/commonjs/public/spare-link-config.js +62 -0
  77. package/lib/commonjs/public/spare-link-config.js.map +1 -0
  78. package/lib/commonjs/public/spare-link-event.js +120 -0
  79. package/lib/commonjs/public/spare-link-event.js.map +1 -0
  80. package/lib/commonjs/public/spare-link-host-api.js +6 -0
  81. package/lib/commonjs/public/spare-link-host-api.js.map +1 -0
  82. package/lib/commonjs/public/spare-link-instance.js +285 -0
  83. package/lib/commonjs/public/spare-link-instance.js.map +1 -0
  84. package/lib/commonjs/public/spare-link-session.js +26 -0
  85. package/lib/commonjs/public/spare-link-session.js.map +1 -0
  86. package/lib/commonjs/public/spare-link.js +31 -0
  87. package/lib/commonjs/public/spare-link.js.map +1 -0
  88. package/lib/commonjs/ui/consent/charge-bearer-display.js +99 -0
  89. package/lib/commonjs/ui/consent/charge-bearer-display.js.map +1 -0
  90. package/lib/commonjs/ui/consent/consent-accordion.js +94 -0
  91. package/lib/commonjs/ui/consent/consent-accordion.js.map +1 -0
  92. package/lib/commonjs/ui/consent/consent-summary-section.js +27 -0
  93. package/lib/commonjs/ui/consent/consent-summary-section.js.map +1 -0
  94. package/lib/commonjs/ui/consent/cop-information.js +168 -0
  95. package/lib/commonjs/ui/consent/cop-information.js.map +1 -0
  96. package/lib/commonjs/ui/consent/international-payment-summary.js +98 -0
  97. package/lib/commonjs/ui/consent/international-payment-summary.js.map +1 -0
  98. package/lib/commonjs/ui/consent/label-value-rows.js +59 -0
  99. package/lib/commonjs/ui/consent/label-value-rows.js.map +1 -0
  100. package/lib/commonjs/ui/consent/multi-payment-rules-list.js +130 -0
  101. package/lib/commonjs/ui/consent/multi-payment-rules-list.js.map +1 -0
  102. package/lib/commonjs/ui/consent/multi-payment-summary.js +99 -0
  103. package/lib/commonjs/ui/consent/multi-payment-summary.js.map +1 -0
  104. package/lib/commonjs/ui/consent/single-payment-summary.js +158 -0
  105. package/lib/commonjs/ui/consent/single-payment-summary.js.map +1 -0
  106. package/lib/commonjs/ui/consent/terms-link.js +35 -0
  107. package/lib/commonjs/ui/consent/terms-link.js.map +1 -0
  108. package/lib/commonjs/ui/hooks/use-payment-flow-state.js +16 -0
  109. package/lib/commonjs/ui/hooks/use-payment-flow-state.js.map +1 -0
  110. package/lib/commonjs/ui/payment-flow-page.js +235 -0
  111. package/lib/commonjs/ui/payment-flow-page.js.map +1 -0
  112. package/lib/commonjs/ui/screens/bank-selection-screen.js +215 -0
  113. package/lib/commonjs/ui/screens/bank-selection-screen.js.map +1 -0
  114. package/lib/commonjs/ui/screens/consent-details-screen.js +124 -0
  115. package/lib/commonjs/ui/screens/consent-details-screen.js.map +1 -0
  116. package/lib/commonjs/ui/screens/index.js +48 -0
  117. package/lib/commonjs/ui/screens/index.js.map +1 -0
  118. package/lib/commonjs/ui/screens/mandate-setup-success-screen.js +79 -0
  119. package/lib/commonjs/ui/screens/mandate-setup-success-screen.js.map +1 -0
  120. package/lib/commonjs/ui/screens/redirect-handoff-screen.js +42 -0
  121. package/lib/commonjs/ui/screens/redirect-handoff-screen.js.map +1 -0
  122. package/lib/commonjs/ui/screens/result-screen.js +83 -0
  123. package/lib/commonjs/ui/screens/result-screen.js.map +1 -0
  124. package/lib/commonjs/ui/screens/resume-processing-screen.js +109 -0
  125. package/lib/commonjs/ui/screens/resume-processing-screen.js.map +1 -0
  126. package/lib/commonjs/ui/spare-link-host.js +354 -0
  127. package/lib/commonjs/ui/spare-link-host.js.map +1 -0
  128. package/lib/commonjs/ui/theme/assets.js +20 -0
  129. package/lib/commonjs/ui/theme/assets.js.map +1 -0
  130. package/lib/commonjs/ui/theme/colors.js +36 -0
  131. package/lib/commonjs/ui/theme/colors.js.map +1 -0
  132. package/lib/commonjs/ui/theme/fonts.js +29 -0
  133. package/lib/commonjs/ui/theme/fonts.js.map +1 -0
  134. package/lib/commonjs/ui/theme/index.js +53 -0
  135. package/lib/commonjs/ui/theme/index.js.map +1 -0
  136. package/lib/commonjs/ui/theme/typography.js +76 -0
  137. package/lib/commonjs/ui/theme/typography.js.map +1 -0
  138. package/lib/commonjs/ui/widgets/footer.js +144 -0
  139. package/lib/commonjs/ui/widgets/footer.js.map +1 -0
  140. package/lib/commonjs/ui/widgets/gradient-spinner.js +172 -0
  141. package/lib/commonjs/ui/widgets/gradient-spinner.js.map +1 -0
  142. package/lib/commonjs/ui/widgets/handoff-screen-layout.js +77 -0
  143. package/lib/commonjs/ui/widgets/handoff-screen-layout.js.map +1 -0
  144. package/lib/commonjs/ui/widgets/index.js +41 -0
  145. package/lib/commonjs/ui/widgets/index.js.map +1 -0
  146. package/lib/commonjs/ui/widgets/layout-w-header.js +106 -0
  147. package/lib/commonjs/ui/widgets/layout-w-header.js.map +1 -0
  148. package/lib/commonjs/ui/widgets/modal-dismiss-button.js +47 -0
  149. package/lib/commonjs/ui/widgets/modal-dismiss-button.js.map +1 -0
  150. package/lib/commonjs/ui/widgets/stepper.js +124 -0
  151. package/lib/commonjs/ui/widgets/stepper.js.map +1 -0
  152. package/lib/commonjs/version.js +14 -0
  153. package/lib/commonjs/version.js.map +1 -0
  154. package/lib/module/core/client/link-api-client.js +292 -0
  155. package/lib/module/core/client/link-api-client.js.map +1 -0
  156. package/lib/module/core/errors/payment-api-error.js +29 -0
  157. package/lib/module/core/errors/payment-api-error.js.map +1 -0
  158. package/lib/module/core/models/index.js +2 -0
  159. package/lib/module/core/models/index.js.map +1 -0
  160. package/lib/module/core/models/link-session-status.js +10 -0
  161. package/lib/module/core/models/link-session-status.js.map +1 -0
  162. package/lib/module/core/models/payment-return-params.js +37 -0
  163. package/lib/module/core/models/payment-return-params.js.map +1 -0
  164. package/lib/module/core/models/payment-type.js +36 -0
  165. package/lib/module/core/models/payment-type.js.map +1 -0
  166. package/lib/module/core/models/wire-mappers.js +263 -0
  167. package/lib/module/core/models/wire-mappers.js.map +1 -0
  168. package/lib/module/core/services/consent-presenter.js +140 -0
  169. package/lib/module/core/services/consent-presenter.js.map +1 -0
  170. package/lib/module/core/services/execute-resume-if-needed.js +211 -0
  171. package/lib/module/core/services/execute-resume-if-needed.js.map +1 -0
  172. package/lib/module/core/services/multi-payment-rules-presenter.js +146 -0
  173. package/lib/module/core/services/multi-payment-rules-presenter.js.map +1 -0
  174. package/lib/module/core/services/payment-flow-controller.js +544 -0
  175. package/lib/module/core/services/payment-flow-controller.js.map +1 -0
  176. package/lib/module/core/services/payment-flow-state.js +106 -0
  177. package/lib/module/core/services/payment-flow-state.js.map +1 -0
  178. package/lib/module/core/services/payment-result-mapper.js +45 -0
  179. package/lib/module/core/services/payment-result-mapper.js.map +1 -0
  180. package/lib/module/core/services/pending-session-store.js +4 -0
  181. package/lib/module/core/services/pending-session-store.js.map +1 -0
  182. package/lib/module/core/services/presentation-utils.js +7 -0
  183. package/lib/module/core/services/presentation-utils.js.map +1 -0
  184. package/lib/module/core/services/redirect-buffer.js +33 -0
  185. package/lib/module/core/services/redirect-buffer.js.map +1 -0
  186. package/lib/module/core/services/user-friendly-messages.js +42 -0
  187. package/lib/module/core/services/user-friendly-messages.js.map +1 -0
  188. package/lib/module/index.js +40 -0
  189. package/lib/module/index.js.map +1 -0
  190. package/lib/module/internal/bank-redirect.js +49 -0
  191. package/lib/module/internal/bank-redirect.js.map +1 -0
  192. package/lib/module/internal/deep-link-listener.js +34 -0
  193. package/lib/module/internal/deep-link-listener.js.map +1 -0
  194. package/lib/module/internal/event-emitter.js +32 -0
  195. package/lib/module/internal/event-emitter.js.map +1 -0
  196. package/lib/module/internal/index.js +7 -0
  197. package/lib/module/internal/index.js.map +1 -0
  198. package/lib/module/internal/logger.js +61 -0
  199. package/lib/module/internal/logger.js.map +1 -0
  200. package/lib/module/internal/redact-uri.js +21 -0
  201. package/lib/module/internal/redact-uri.js.map +1 -0
  202. package/lib/module/internal/secure-store-pending-session-store.js +88 -0
  203. package/lib/module/internal/secure-store-pending-session-store.js.map +1 -0
  204. package/lib/module/internal/telemetry-collector.js +75 -0
  205. package/lib/module/internal/telemetry-collector.js.map +1 -0
  206. package/lib/module/package.json +1 -0
  207. package/lib/module/public/constants.js +17 -0
  208. package/lib/module/public/constants.js.map +1 -0
  209. package/lib/module/public/index.js +11 -0
  210. package/lib/module/public/index.js.map +1 -0
  211. package/lib/module/public/payment-result.js +41 -0
  212. package/lib/module/public/payment-result.js.map +1 -0
  213. package/lib/module/public/recovery-result.js +34 -0
  214. package/lib/module/public/recovery-result.js.map +1 -0
  215. package/lib/module/public/spare-link-callbacks.js +4 -0
  216. package/lib/module/public/spare-link-callbacks.js.map +1 -0
  217. package/lib/module/public/spare-link-config.js +54 -0
  218. package/lib/module/public/spare-link-config.js.map +1 -0
  219. package/lib/module/public/spare-link-event.js +115 -0
  220. package/lib/module/public/spare-link-event.js.map +1 -0
  221. package/lib/module/public/spare-link-host-api.js +4 -0
  222. package/lib/module/public/spare-link-host-api.js.map +1 -0
  223. package/lib/module/public/spare-link-instance.js +273 -0
  224. package/lib/module/public/spare-link-instance.js.map +1 -0
  225. package/lib/module/public/spare-link-session.js +21 -0
  226. package/lib/module/public/spare-link-session.js.map +1 -0
  227. package/lib/module/public/spare-link.js +4 -0
  228. package/lib/module/public/spare-link.js.map +1 -0
  229. package/lib/module/ui/consent/charge-bearer-display.js +95 -0
  230. package/lib/module/ui/consent/charge-bearer-display.js.map +1 -0
  231. package/lib/module/ui/consent/consent-accordion.js +90 -0
  232. package/lib/module/ui/consent/consent-accordion.js.map +1 -0
  233. package/lib/module/ui/consent/consent-summary-section.js +23 -0
  234. package/lib/module/ui/consent/consent-summary-section.js.map +1 -0
  235. package/lib/module/ui/consent/cop-information.js +165 -0
  236. package/lib/module/ui/consent/cop-information.js.map +1 -0
  237. package/lib/module/ui/consent/international-payment-summary.js +94 -0
  238. package/lib/module/ui/consent/international-payment-summary.js.map +1 -0
  239. package/lib/module/ui/consent/label-value-rows.js +55 -0
  240. package/lib/module/ui/consent/label-value-rows.js.map +1 -0
  241. package/lib/module/ui/consent/multi-payment-rules-list.js +125 -0
  242. package/lib/module/ui/consent/multi-payment-rules-list.js.map +1 -0
  243. package/lib/module/ui/consent/multi-payment-summary.js +95 -0
  244. package/lib/module/ui/consent/multi-payment-summary.js.map +1 -0
  245. package/lib/module/ui/consent/single-payment-summary.js +154 -0
  246. package/lib/module/ui/consent/single-payment-summary.js.map +1 -0
  247. package/lib/module/ui/consent/terms-link.js +31 -0
  248. package/lib/module/ui/consent/terms-link.js.map +1 -0
  249. package/lib/module/ui/hooks/use-payment-flow-state.js +12 -0
  250. package/lib/module/ui/hooks/use-payment-flow-state.js.map +1 -0
  251. package/lib/module/ui/payment-flow-page.js +232 -0
  252. package/lib/module/ui/payment-flow-page.js.map +1 -0
  253. package/lib/module/ui/screens/bank-selection-screen.js +211 -0
  254. package/lib/module/ui/screens/bank-selection-screen.js.map +1 -0
  255. package/lib/module/ui/screens/consent-details-screen.js +120 -0
  256. package/lib/module/ui/screens/consent-details-screen.js.map +1 -0
  257. package/lib/module/ui/screens/index.js +9 -0
  258. package/lib/module/ui/screens/index.js.map +1 -0
  259. package/lib/module/ui/screens/mandate-setup-success-screen.js +75 -0
  260. package/lib/module/ui/screens/mandate-setup-success-screen.js.map +1 -0
  261. package/lib/module/ui/screens/redirect-handoff-screen.js +39 -0
  262. package/lib/module/ui/screens/redirect-handoff-screen.js.map +1 -0
  263. package/lib/module/ui/screens/result-screen.js +79 -0
  264. package/lib/module/ui/screens/result-screen.js.map +1 -0
  265. package/lib/module/ui/screens/resume-processing-screen.js +105 -0
  266. package/lib/module/ui/screens/resume-processing-screen.js.map +1 -0
  267. package/lib/module/ui/spare-link-host.js +350 -0
  268. package/lib/module/ui/spare-link-host.js.map +1 -0
  269. package/lib/module/ui/theme/assets.js +16 -0
  270. package/lib/module/ui/theme/assets.js.map +1 -0
  271. package/lib/module/ui/theme/colors.js +32 -0
  272. package/lib/module/ui/theme/colors.js.map +1 -0
  273. package/lib/module/ui/theme/fonts.js +23 -0
  274. package/lib/module/ui/theme/fonts.js.map +1 -0
  275. package/lib/module/ui/theme/index.js +13 -0
  276. package/lib/module/ui/theme/index.js.map +1 -0
  277. package/lib/module/ui/theme/typography.js +49 -0
  278. package/lib/module/ui/theme/typography.js.map +1 -0
  279. package/lib/module/ui/widgets/footer.js +140 -0
  280. package/lib/module/ui/widgets/footer.js.map +1 -0
  281. package/lib/module/ui/widgets/gradient-spinner.js +168 -0
  282. package/lib/module/ui/widgets/gradient-spinner.js.map +1 -0
  283. package/lib/module/ui/widgets/handoff-screen-layout.js +73 -0
  284. package/lib/module/ui/widgets/handoff-screen-layout.js.map +1 -0
  285. package/lib/module/ui/widgets/index.js +8 -0
  286. package/lib/module/ui/widgets/index.js.map +1 -0
  287. package/lib/module/ui/widgets/layout-w-header.js +102 -0
  288. package/lib/module/ui/widgets/layout-w-header.js.map +1 -0
  289. package/lib/module/ui/widgets/modal-dismiss-button.js +43 -0
  290. package/lib/module/ui/widgets/modal-dismiss-button.js.map +1 -0
  291. package/lib/module/ui/widgets/stepper.js +120 -0
  292. package/lib/module/ui/widgets/stepper.js.map +1 -0
  293. package/lib/module/version.js +10 -0
  294. package/lib/module/version.js.map +1 -0
  295. package/lib/typescript/commonjs/core/client/link-api-client.d.ts +70 -0
  296. package/lib/typescript/commonjs/core/client/link-api-client.d.ts.map +1 -0
  297. package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts +15 -0
  298. package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts.map +1 -0
  299. package/lib/typescript/commonjs/core/models/index.d.ts +124 -0
  300. package/lib/typescript/commonjs/core/models/index.d.ts.map +1 -0
  301. package/lib/typescript/commonjs/core/models/link-session-status.d.ts +6 -0
  302. package/lib/typescript/commonjs/core/models/link-session-status.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/core/models/payment-return-params.d.ts +15 -0
  304. package/lib/typescript/commonjs/core/models/payment-return-params.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/core/models/payment-type.d.ts +18 -0
  306. package/lib/typescript/commonjs/core/models/payment-type.d.ts.map +1 -0
  307. package/lib/typescript/commonjs/core/models/wire-mappers.d.ts +19 -0
  308. package/lib/typescript/commonjs/core/models/wire-mappers.d.ts.map +1 -0
  309. package/lib/typescript/commonjs/core/services/consent-presenter.d.ts +67 -0
  310. package/lib/typescript/commonjs/core/services/consent-presenter.d.ts.map +1 -0
  311. package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts +32 -0
  312. package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts.map +1 -0
  313. package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts +9 -0
  314. package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts.map +1 -0
  315. package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts +146 -0
  316. package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts.map +1 -0
  317. package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts +64 -0
  318. package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts +5 -0
  320. package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/core/services/pending-session-store.d.ts +12 -0
  322. package/lib/typescript/commonjs/core/services/pending-session-store.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/core/services/presentation-utils.d.ts +5 -0
  324. package/lib/typescript/commonjs/core/services/presentation-utils.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts +6 -0
  326. package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts.map +1 -0
  327. package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts +6 -0
  328. package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/index.d.ts +19 -0
  330. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/internal/bank-redirect.d.ts +6 -0
  332. package/lib/typescript/commonjs/internal/bank-redirect.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/internal/deep-link-listener.d.ts +3 -0
  334. package/lib/typescript/commonjs/internal/deep-link-listener.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/internal/event-emitter.d.ts +13 -0
  336. package/lib/typescript/commonjs/internal/event-emitter.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/internal/index.d.ts +5 -0
  338. package/lib/typescript/commonjs/internal/index.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/internal/logger.d.ts +23 -0
  340. package/lib/typescript/commonjs/internal/logger.d.ts.map +1 -0
  341. package/lib/typescript/commonjs/internal/redact-uri.d.ts +3 -0
  342. package/lib/typescript/commonjs/internal/redact-uri.d.ts.map +1 -0
  343. package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts +33 -0
  344. package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts.map +1 -0
  345. package/lib/typescript/commonjs/internal/telemetry-collector.d.ts +2 -0
  346. package/lib/typescript/commonjs/internal/telemetry-collector.d.ts.map +1 -0
  347. package/lib/typescript/commonjs/package.json +1 -0
  348. package/lib/typescript/commonjs/public/constants.d.ts +12 -0
  349. package/lib/typescript/commonjs/public/constants.d.ts.map +1 -0
  350. package/lib/typescript/commonjs/public/index.d.ts +11 -0
  351. package/lib/typescript/commonjs/public/index.d.ts.map +1 -0
  352. package/lib/typescript/commonjs/public/payment-result.d.ts +43 -0
  353. package/lib/typescript/commonjs/public/payment-result.d.ts.map +1 -0
  354. package/lib/typescript/commonjs/public/recovery-result.d.ts +36 -0
  355. package/lib/typescript/commonjs/public/recovery-result.d.ts.map +1 -0
  356. package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts +14 -0
  357. package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/public/spare-link-config.d.ts +49 -0
  359. package/lib/typescript/commonjs/public/spare-link-config.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/public/spare-link-event.d.ts +90 -0
  361. package/lib/typescript/commonjs/public/spare-link-event.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/public/spare-link-host-api.d.ts +29 -0
  363. package/lib/typescript/commonjs/public/spare-link-host-api.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/public/spare-link-instance.d.ts +89 -0
  365. package/lib/typescript/commonjs/public/spare-link-instance.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/public/spare-link-session.d.ts +20 -0
  367. package/lib/typescript/commonjs/public/spare-link-session.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/public/spare-link.d.ts +3 -0
  369. package/lib/typescript/commonjs/public/spare-link.d.ts.map +1 -0
  370. package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts +5 -0
  371. package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts.map +1 -0
  372. package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts +10 -0
  373. package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts.map +1 -0
  374. package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts +6 -0
  375. package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts.map +1 -0
  376. package/lib/typescript/commonjs/ui/consent/cop-information.d.ts +6 -0
  377. package/lib/typescript/commonjs/ui/consent/cop-information.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts +6 -0
  379. package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts.map +1 -0
  380. package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts +10 -0
  381. package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts.map +1 -0
  382. package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts +15 -0
  383. package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts.map +1 -0
  384. package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts +6 -0
  385. package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts.map +1 -0
  386. package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts +6 -0
  387. package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts.map +1 -0
  388. package/lib/typescript/commonjs/ui/consent/terms-link.d.ts +2 -0
  389. package/lib/typescript/commonjs/ui/consent/terms-link.d.ts.map +1 -0
  390. package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts +9 -0
  391. package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts.map +1 -0
  392. package/lib/typescript/commonjs/ui/payment-flow-page.d.ts +20 -0
  393. package/lib/typescript/commonjs/ui/payment-flow-page.d.ts.map +1 -0
  394. package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts +15 -0
  395. package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts.map +1 -0
  396. package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts +13 -0
  397. package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts.map +1 -0
  398. package/lib/typescript/commonjs/ui/screens/index.d.ts +7 -0
  399. package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -0
  400. package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts +10 -0
  401. package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts.map +1 -0
  402. package/lib/typescript/commonjs/ui/screens/redirect-handoff-screen.d.ts +3 -0
  403. package/lib/typescript/commonjs/ui/screens/redirect-handoff-screen.d.ts.map +1 -0
  404. package/lib/typescript/commonjs/ui/screens/result-screen.d.ts +7 -0
  405. package/lib/typescript/commonjs/ui/screens/result-screen.d.ts.map +1 -0
  406. package/lib/typescript/commonjs/ui/screens/resume-processing-screen.d.ts +10 -0
  407. package/lib/typescript/commonjs/ui/screens/resume-processing-screen.d.ts.map +1 -0
  408. package/lib/typescript/commonjs/ui/spare-link-host.d.ts +23 -0
  409. package/lib/typescript/commonjs/ui/spare-link-host.d.ts.map +1 -0
  410. package/lib/typescript/commonjs/ui/theme/assets.d.ts +15 -0
  411. package/lib/typescript/commonjs/ui/theme/assets.d.ts.map +1 -0
  412. package/lib/typescript/commonjs/ui/theme/colors.d.ts +31 -0
  413. package/lib/typescript/commonjs/ui/theme/colors.d.ts.map +1 -0
  414. package/lib/typescript/commonjs/ui/theme/fonts.d.ts +12 -0
  415. package/lib/typescript/commonjs/ui/theme/fonts.d.ts.map +1 -0
  416. package/lib/typescript/commonjs/ui/theme/index.d.ts +11 -0
  417. package/lib/typescript/commonjs/ui/theme/index.d.ts.map +1 -0
  418. package/lib/typescript/commonjs/ui/theme/typography.d.ts +12 -0
  419. package/lib/typescript/commonjs/ui/theme/typography.d.ts.map +1 -0
  420. package/lib/typescript/commonjs/ui/widgets/footer.d.ts +23 -0
  421. package/lib/typescript/commonjs/ui/widgets/footer.d.ts.map +1 -0
  422. package/lib/typescript/commonjs/ui/widgets/gradient-spinner.d.ts +13 -0
  423. package/lib/typescript/commonjs/ui/widgets/gradient-spinner.d.ts.map +1 -0
  424. package/lib/typescript/commonjs/ui/widgets/handoff-screen-layout.d.ts +11 -0
  425. package/lib/typescript/commonjs/ui/widgets/handoff-screen-layout.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/ui/widgets/index.d.ts +6 -0
  427. package/lib/typescript/commonjs/ui/widgets/index.d.ts.map +1 -0
  428. package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts +20 -0
  429. package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts.map +1 -0
  430. package/lib/typescript/commonjs/ui/widgets/modal-dismiss-button.d.ts +6 -0
  431. package/lib/typescript/commonjs/ui/widgets/modal-dismiss-button.d.ts.map +1 -0
  432. package/lib/typescript/commonjs/ui/widgets/stepper.d.ts +15 -0
  433. package/lib/typescript/commonjs/ui/widgets/stepper.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/version.d.ts +8 -0
  435. package/lib/typescript/commonjs/version.d.ts.map +1 -0
  436. package/lib/typescript/module/core/client/link-api-client.d.ts +70 -0
  437. package/lib/typescript/module/core/client/link-api-client.d.ts.map +1 -0
  438. package/lib/typescript/module/core/errors/payment-api-error.d.ts +15 -0
  439. package/lib/typescript/module/core/errors/payment-api-error.d.ts.map +1 -0
  440. package/lib/typescript/module/core/models/index.d.ts +124 -0
  441. package/lib/typescript/module/core/models/index.d.ts.map +1 -0
  442. package/lib/typescript/module/core/models/link-session-status.d.ts +6 -0
  443. package/lib/typescript/module/core/models/link-session-status.d.ts.map +1 -0
  444. package/lib/typescript/module/core/models/payment-return-params.d.ts +15 -0
  445. package/lib/typescript/module/core/models/payment-return-params.d.ts.map +1 -0
  446. package/lib/typescript/module/core/models/payment-type.d.ts +18 -0
  447. package/lib/typescript/module/core/models/payment-type.d.ts.map +1 -0
  448. package/lib/typescript/module/core/models/wire-mappers.d.ts +19 -0
  449. package/lib/typescript/module/core/models/wire-mappers.d.ts.map +1 -0
  450. package/lib/typescript/module/core/services/consent-presenter.d.ts +67 -0
  451. package/lib/typescript/module/core/services/consent-presenter.d.ts.map +1 -0
  452. package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts +32 -0
  453. package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts.map +1 -0
  454. package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts +9 -0
  455. package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts.map +1 -0
  456. package/lib/typescript/module/core/services/payment-flow-controller.d.ts +146 -0
  457. package/lib/typescript/module/core/services/payment-flow-controller.d.ts.map +1 -0
  458. package/lib/typescript/module/core/services/payment-flow-state.d.ts +64 -0
  459. package/lib/typescript/module/core/services/payment-flow-state.d.ts.map +1 -0
  460. package/lib/typescript/module/core/services/payment-result-mapper.d.ts +5 -0
  461. package/lib/typescript/module/core/services/payment-result-mapper.d.ts.map +1 -0
  462. package/lib/typescript/module/core/services/pending-session-store.d.ts +12 -0
  463. package/lib/typescript/module/core/services/pending-session-store.d.ts.map +1 -0
  464. package/lib/typescript/module/core/services/presentation-utils.d.ts +5 -0
  465. package/lib/typescript/module/core/services/presentation-utils.d.ts.map +1 -0
  466. package/lib/typescript/module/core/services/redirect-buffer.d.ts +6 -0
  467. package/lib/typescript/module/core/services/redirect-buffer.d.ts.map +1 -0
  468. package/lib/typescript/module/core/services/user-friendly-messages.d.ts +6 -0
  469. package/lib/typescript/module/core/services/user-friendly-messages.d.ts.map +1 -0
  470. package/lib/typescript/module/index.d.ts +19 -0
  471. package/lib/typescript/module/index.d.ts.map +1 -0
  472. package/lib/typescript/module/internal/bank-redirect.d.ts +6 -0
  473. package/lib/typescript/module/internal/bank-redirect.d.ts.map +1 -0
  474. package/lib/typescript/module/internal/deep-link-listener.d.ts +3 -0
  475. package/lib/typescript/module/internal/deep-link-listener.d.ts.map +1 -0
  476. package/lib/typescript/module/internal/event-emitter.d.ts +13 -0
  477. package/lib/typescript/module/internal/event-emitter.d.ts.map +1 -0
  478. package/lib/typescript/module/internal/index.d.ts +5 -0
  479. package/lib/typescript/module/internal/index.d.ts.map +1 -0
  480. package/lib/typescript/module/internal/logger.d.ts +23 -0
  481. package/lib/typescript/module/internal/logger.d.ts.map +1 -0
  482. package/lib/typescript/module/internal/redact-uri.d.ts +3 -0
  483. package/lib/typescript/module/internal/redact-uri.d.ts.map +1 -0
  484. package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts +33 -0
  485. package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts.map +1 -0
  486. package/lib/typescript/module/internal/telemetry-collector.d.ts +2 -0
  487. package/lib/typescript/module/internal/telemetry-collector.d.ts.map +1 -0
  488. package/lib/typescript/module/package.json +1 -0
  489. package/lib/typescript/module/public/constants.d.ts +12 -0
  490. package/lib/typescript/module/public/constants.d.ts.map +1 -0
  491. package/lib/typescript/module/public/index.d.ts +11 -0
  492. package/lib/typescript/module/public/index.d.ts.map +1 -0
  493. package/lib/typescript/module/public/payment-result.d.ts +43 -0
  494. package/lib/typescript/module/public/payment-result.d.ts.map +1 -0
  495. package/lib/typescript/module/public/recovery-result.d.ts +36 -0
  496. package/lib/typescript/module/public/recovery-result.d.ts.map +1 -0
  497. package/lib/typescript/module/public/spare-link-callbacks.d.ts +14 -0
  498. package/lib/typescript/module/public/spare-link-callbacks.d.ts.map +1 -0
  499. package/lib/typescript/module/public/spare-link-config.d.ts +49 -0
  500. package/lib/typescript/module/public/spare-link-config.d.ts.map +1 -0
  501. package/lib/typescript/module/public/spare-link-event.d.ts +90 -0
  502. package/lib/typescript/module/public/spare-link-event.d.ts.map +1 -0
  503. package/lib/typescript/module/public/spare-link-host-api.d.ts +29 -0
  504. package/lib/typescript/module/public/spare-link-host-api.d.ts.map +1 -0
  505. package/lib/typescript/module/public/spare-link-instance.d.ts +89 -0
  506. package/lib/typescript/module/public/spare-link-instance.d.ts.map +1 -0
  507. package/lib/typescript/module/public/spare-link-session.d.ts +20 -0
  508. package/lib/typescript/module/public/spare-link-session.d.ts.map +1 -0
  509. package/lib/typescript/module/public/spare-link.d.ts +3 -0
  510. package/lib/typescript/module/public/spare-link.d.ts.map +1 -0
  511. package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts +5 -0
  512. package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts.map +1 -0
  513. package/lib/typescript/module/ui/consent/consent-accordion.d.ts +10 -0
  514. package/lib/typescript/module/ui/consent/consent-accordion.d.ts.map +1 -0
  515. package/lib/typescript/module/ui/consent/consent-summary-section.d.ts +6 -0
  516. package/lib/typescript/module/ui/consent/consent-summary-section.d.ts.map +1 -0
  517. package/lib/typescript/module/ui/consent/cop-information.d.ts +6 -0
  518. package/lib/typescript/module/ui/consent/cop-information.d.ts.map +1 -0
  519. package/lib/typescript/module/ui/consent/international-payment-summary.d.ts +6 -0
  520. package/lib/typescript/module/ui/consent/international-payment-summary.d.ts.map +1 -0
  521. package/lib/typescript/module/ui/consent/label-value-rows.d.ts +10 -0
  522. package/lib/typescript/module/ui/consent/label-value-rows.d.ts.map +1 -0
  523. package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts +15 -0
  524. package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts.map +1 -0
  525. package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts +6 -0
  526. package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts.map +1 -0
  527. package/lib/typescript/module/ui/consent/single-payment-summary.d.ts +6 -0
  528. package/lib/typescript/module/ui/consent/single-payment-summary.d.ts.map +1 -0
  529. package/lib/typescript/module/ui/consent/terms-link.d.ts +2 -0
  530. package/lib/typescript/module/ui/consent/terms-link.d.ts.map +1 -0
  531. package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts +9 -0
  532. package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts.map +1 -0
  533. package/lib/typescript/module/ui/payment-flow-page.d.ts +20 -0
  534. package/lib/typescript/module/ui/payment-flow-page.d.ts.map +1 -0
  535. package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts +15 -0
  536. package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts.map +1 -0
  537. package/lib/typescript/module/ui/screens/consent-details-screen.d.ts +13 -0
  538. package/lib/typescript/module/ui/screens/consent-details-screen.d.ts.map +1 -0
  539. package/lib/typescript/module/ui/screens/index.d.ts +7 -0
  540. package/lib/typescript/module/ui/screens/index.d.ts.map +1 -0
  541. package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts +10 -0
  542. package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts.map +1 -0
  543. package/lib/typescript/module/ui/screens/redirect-handoff-screen.d.ts +3 -0
  544. package/lib/typescript/module/ui/screens/redirect-handoff-screen.d.ts.map +1 -0
  545. package/lib/typescript/module/ui/screens/result-screen.d.ts +7 -0
  546. package/lib/typescript/module/ui/screens/result-screen.d.ts.map +1 -0
  547. package/lib/typescript/module/ui/screens/resume-processing-screen.d.ts +10 -0
  548. package/lib/typescript/module/ui/screens/resume-processing-screen.d.ts.map +1 -0
  549. package/lib/typescript/module/ui/spare-link-host.d.ts +23 -0
  550. package/lib/typescript/module/ui/spare-link-host.d.ts.map +1 -0
  551. package/lib/typescript/module/ui/theme/assets.d.ts +15 -0
  552. package/lib/typescript/module/ui/theme/assets.d.ts.map +1 -0
  553. package/lib/typescript/module/ui/theme/colors.d.ts +31 -0
  554. package/lib/typescript/module/ui/theme/colors.d.ts.map +1 -0
  555. package/lib/typescript/module/ui/theme/fonts.d.ts +12 -0
  556. package/lib/typescript/module/ui/theme/fonts.d.ts.map +1 -0
  557. package/lib/typescript/module/ui/theme/index.d.ts +11 -0
  558. package/lib/typescript/module/ui/theme/index.d.ts.map +1 -0
  559. package/lib/typescript/module/ui/theme/typography.d.ts +12 -0
  560. package/lib/typescript/module/ui/theme/typography.d.ts.map +1 -0
  561. package/lib/typescript/module/ui/widgets/footer.d.ts +23 -0
  562. package/lib/typescript/module/ui/widgets/footer.d.ts.map +1 -0
  563. package/lib/typescript/module/ui/widgets/gradient-spinner.d.ts +13 -0
  564. package/lib/typescript/module/ui/widgets/gradient-spinner.d.ts.map +1 -0
  565. package/lib/typescript/module/ui/widgets/handoff-screen-layout.d.ts +11 -0
  566. package/lib/typescript/module/ui/widgets/handoff-screen-layout.d.ts.map +1 -0
  567. package/lib/typescript/module/ui/widgets/index.d.ts +6 -0
  568. package/lib/typescript/module/ui/widgets/index.d.ts.map +1 -0
  569. package/lib/typescript/module/ui/widgets/layout-w-header.d.ts +20 -0
  570. package/lib/typescript/module/ui/widgets/layout-w-header.d.ts.map +1 -0
  571. package/lib/typescript/module/ui/widgets/modal-dismiss-button.d.ts +6 -0
  572. package/lib/typescript/module/ui/widgets/modal-dismiss-button.d.ts.map +1 -0
  573. package/lib/typescript/module/ui/widgets/stepper.d.ts +15 -0
  574. package/lib/typescript/module/ui/widgets/stepper.d.ts.map +1 -0
  575. package/lib/typescript/module/version.d.ts +8 -0
  576. package/lib/typescript/module/version.d.ts.map +1 -0
  577. package/package.json +124 -0
  578. package/plugins/with-spare-link.js +98 -0
  579. package/src/core/client/link-api-client.ts +414 -0
  580. package/src/core/errors/payment-api-error.ts +35 -0
  581. package/src/core/models/index.ts +139 -0
  582. package/src/core/models/link-session-status.ts +7 -0
  583. package/src/core/models/payment-return-params.ts +34 -0
  584. package/src/core/models/payment-type.ts +54 -0
  585. package/src/core/models/wire-mappers.ts +315 -0
  586. package/src/core/services/consent-presenter.ts +213 -0
  587. package/src/core/services/execute-resume-if-needed.ts +243 -0
  588. package/src/core/services/multi-payment-rules-presenter.ts +158 -0
  589. package/src/core/services/payment-flow-controller.ts +607 -0
  590. package/src/core/services/payment-flow-state.ts +124 -0
  591. package/src/core/services/payment-result-mapper.ts +41 -0
  592. package/src/core/services/pending-session-store.ts +12 -0
  593. package/src/core/services/presentation-utils.ts +4 -0
  594. package/src/core/services/redirect-buffer.ts +34 -0
  595. package/src/core/services/user-friendly-messages.ts +39 -0
  596. package/src/index.ts +115 -0
  597. package/src/internal/bank-redirect.ts +61 -0
  598. package/src/internal/deep-link-listener.ts +31 -0
  599. package/src/internal/event-emitter.ts +42 -0
  600. package/src/internal/index.ts +4 -0
  601. package/src/internal/logger.ts +81 -0
  602. package/src/internal/redact-uri.ts +18 -0
  603. package/src/internal/secure-store-pending-session-store.ts +131 -0
  604. package/src/internal/telemetry-collector.ts +90 -0
  605. package/src/public/constants.ts +14 -0
  606. package/src/public/index.ts +80 -0
  607. package/src/public/payment-result.ts +61 -0
  608. package/src/public/recovery-result.ts +49 -0
  609. package/src/public/spare-link-callbacks.ts +20 -0
  610. package/src/public/spare-link-config.ts +87 -0
  611. package/src/public/spare-link-event.ts +146 -0
  612. package/src/public/spare-link-host-api.ts +28 -0
  613. package/src/public/spare-link-instance.ts +289 -0
  614. package/src/public/spare-link-session.ts +28 -0
  615. package/src/public/spare-link.ts +2 -0
  616. package/src/ui/consent/charge-bearer-display.tsx +68 -0
  617. package/src/ui/consent/consent-accordion.tsx +89 -0
  618. package/src/ui/consent/consent-summary-section.tsx +19 -0
  619. package/src/ui/consent/cop-information.tsx +121 -0
  620. package/src/ui/consent/international-payment-summary.tsx +83 -0
  621. package/src/ui/consent/label-value-rows.tsx +50 -0
  622. package/src/ui/consent/multi-payment-rules-list.tsx +138 -0
  623. package/src/ui/consent/multi-payment-summary.tsx +82 -0
  624. package/src/ui/consent/single-payment-summary.tsx +123 -0
  625. package/src/ui/consent/terms-link.tsx +27 -0
  626. package/src/ui/hooks/use-payment-flow-state.ts +16 -0
  627. package/src/ui/payment-flow-page.tsx +254 -0
  628. package/src/ui/screens/bank-selection-screen.tsx +209 -0
  629. package/src/ui/screens/consent-details-screen.tsx +106 -0
  630. package/src/ui/screens/index.ts +12 -0
  631. package/src/ui/screens/mandate-setup-success-screen.tsx +72 -0
  632. package/src/ui/screens/redirect-handoff-screen.tsx +33 -0
  633. package/src/ui/screens/result-screen.tsx +71 -0
  634. package/src/ui/screens/resume-processing-screen.tsx +111 -0
  635. package/src/ui/spare-link-host.tsx +394 -0
  636. package/src/ui/theme/assets.ts +17 -0
  637. package/src/ui/theme/colors.ts +32 -0
  638. package/src/ui/theme/fonts.ts +25 -0
  639. package/src/ui/theme/index.ts +11 -0
  640. package/src/ui/theme/typography.ts +47 -0
  641. package/src/ui/widgets/footer.tsx +138 -0
  642. package/src/ui/widgets/gradient-spinner.tsx +156 -0
  643. package/src/ui/widgets/handoff-screen-layout.tsx +70 -0
  644. package/src/ui/widgets/index.ts +5 -0
  645. package/src/ui/widgets/layout-w-header.tsx +89 -0
  646. package/src/ui/widgets/modal-dismiss-button.tsx +44 -0
  647. package/src/ui/widgets/stepper.tsx +126 -0
  648. package/src/version.ts +7 -0
@@ -0,0 +1,67 @@
1
+ import type { CopResponse } from '../models';
2
+ import { type ConsentUiVariant, type PaymentType } from '../models/payment-type';
3
+ import { type LabelValueRow } from './multi-payment-rules-presenter';
4
+ import type { PaymentFlowState } from './payment-flow-state';
5
+ export { formatAmount } from './presentation-utils';
6
+ /** CoP match outcome, normalized from {@link CopResponse.matchIndicator}. */
7
+ export type CopMatchIndicator = 'match' | 'partialMatch' | 'noMatch' | 'unknown';
8
+ /** User-facing Confirmation-of-Payee copy for the consent screen. */
9
+ export interface CopDisplayData {
10
+ statusLabel: string;
11
+ indicator: CopMatchIndicator;
12
+ maskedName?: string;
13
+ paragraphs: string[];
14
+ }
15
+ interface ConsentSummaryDataBase {
16
+ bankName: string;
17
+ variant: ConsentUiVariant;
18
+ }
19
+ /** Domestic single instant payment consent summary. */
20
+ export interface SinglePaymentSummaryData extends ConsentSummaryDataBase {
21
+ variant: 'singlePayment';
22
+ formattedAmount: string;
23
+ iban: string;
24
+ paymentReference: string | undefined;
25
+ paymentPurpose: string | undefined;
26
+ creditorName: string | undefined;
27
+ isCopLoading: boolean;
28
+ copDisplay: CopDisplayData | undefined;
29
+ }
30
+ /** Multi-payment (mandate) consent summary. */
31
+ export interface MultiPaymentSummaryData extends ConsentSummaryDataBase {
32
+ variant: 'multiPayment';
33
+ paymentType: PaymentType;
34
+ creditorType: string;
35
+ externalReference: string;
36
+ paymentPurpose: string | undefined;
37
+ rulesTitle: string;
38
+ rules: LabelValueRow[];
39
+ iban: string;
40
+ creditorName: string | undefined;
41
+ }
42
+ /** International payment consent summary. */
43
+ export interface InternationalPaymentSummaryData extends ConsentSummaryDataBase {
44
+ variant: 'international';
45
+ formattedAmount: string;
46
+ iban: string;
47
+ paymentReference: string | undefined;
48
+ paymentPurpose: string | undefined;
49
+ priority: string | undefined;
50
+ chargeBearer: string | undefined;
51
+ creditorName: string | undefined;
52
+ }
53
+ export type ConsentSummaryData = SinglePaymentSummaryData | InternationalPaymentSummaryData | MultiPaymentSummaryData;
54
+ /** @deprecated Use {@link ConsentSummaryData} instead. */
55
+ export type ConsentDisplayData = SinglePaymentSummaryData;
56
+ declare function present(value: string | undefined, fallback?: string): string;
57
+ export { present as presentField };
58
+ /**
59
+ * Maps a {@link CopResponse} to consent-screen copy. Ported from the Flutter
60
+ * SDK's `ConsentPresenter.formatCop`. Returns unavailable messaging when there
61
+ * is no response (API error or not yet fetched).
62
+ */
63
+ export declare function formatCop(response: CopResponse | undefined): CopDisplayData;
64
+ export declare function summaryFromState(state: PaymentFlowState): ConsentSummaryData | null;
65
+ /** @deprecated Use {@link summaryFromState} instead. */
66
+ export declare function presentConsent(state: PaymentFlowState): SinglePaymentSummaryData | null;
67
+ //# sourceMappingURL=consent-presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consent-presenter.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/consent-presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjF,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,OAAO,EAAE,eAAe,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,cAAc,GAAG,SAAS,CAAC;CACxC;AAED,+CAA+C;AAC/C,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACrE,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,6CAA6C;AAC7C,MAAM,WAAW,+BAAgC,SAAQ,sBAAsB;IAC7E,OAAO,EAAE,eAAe,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,+BAA+B,GAC/B,uBAAuB,CAAC;AAE5B,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAE1D,iBAAS,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAM,GAAG,MAAM,CAGlE;AAED,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC;AAwBnC;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,cAAc,CAgC3E;AAOD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI,CAsDnF;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,wBAAwB,GAAG,IAAI,CAIvF"}
@@ -0,0 +1,32 @@
1
+ import type { PaymentResult } from '../../public/payment-result';
2
+ import type { SpareLinkCallbacks } from '../../public/spare-link-callbacks';
3
+ import { type SpareLinkResumeConfig } from '../../public/spare-link-config';
4
+ import { PaymentFlowController } from './payment-flow-controller';
5
+ import type { PendingSessionStore } from './pending-session-store';
6
+ export declare const MAX_RECOVERABLE_AGE_MS: number;
7
+ export interface ResumeSessionArgs {
8
+ config: SpareLinkResumeConfig;
9
+ callbacks?: SpareLinkCallbacks;
10
+ }
11
+ export interface ResumeSessionDeps {
12
+ pendingSessionStore: PendingSessionStore;
13
+ /** True when a live modal flow is already mounted. */
14
+ isFlowActive: () => boolean;
15
+ /** Open the SDK modal parked at awaitingCallback for non-terminal recovery. */
16
+ openRecoveryFlow: (args: {
17
+ controller: PaymentFlowController;
18
+ config: SpareLinkResumeConfig & {
19
+ linkToken: string;
20
+ };
21
+ callbacks?: SpareLinkCallbacks;
22
+ }) => void;
23
+ now?: () => number;
24
+ }
25
+ /**
26
+ * Cold-start recovery orchestrator — mirrors Flutter `SpareLink.resumeIfNeeded`.
27
+ * Returns a terminal {@link PaymentResult}, `null` when nothing to do / still
28
+ * pending, and opens the recovery UI via `openRecoveryFlow` for non-terminal
29
+ * sessions that need user-visible awaiting state.
30
+ */
31
+ export declare function executeResumeIfNeeded(args: ResumeSessionArgs, deps: ResumeSessionDeps): Promise<PaymentResult | null>;
32
+ //# sourceMappingURL=execute-resume-if-needed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-resume-if-needed.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/execute-resume-if-needed.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,sDAAsD;IACtD,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,+EAA+E;IAC/E,gBAAgB,EAAE,CAAC,IAAI,EAAE;QACvB,UAAU,EAAE,qBAAqB,CAAC;QAClC,MAAM,EAAE,qBAAqB,GAAG;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,SAAS,CAAC,EAAE,kBAAkB,CAAC;KAChC,KAAK,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AA6ED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA0H/B"}
@@ -0,0 +1,9 @@
1
+ import type { PaymentInstructions } from '../models';
2
+ import { PaymentType } from '../models/payment-type';
3
+ export interface LabelValueRow {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ export declare function buildMultiPaymentRules(type: PaymentType, instructions: PaymentInstructions): LabelValueRow[];
8
+ export declare function rulesSectionTitle(type: PaymentType): string;
9
+ //# sourceMappingURL=multi-payment-rules-presenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-payment-rules-presenter.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/multi-payment-rules-presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AA6HD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,mBAAmB,GAChC,aAAa,EAAE,CAejB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAK3D"}
@@ -0,0 +1,146 @@
1
+ import type { PaymentEnvironment } from '../../public/spare-link-config';
2
+ /** Simple string tag for internal controller callbacks — not the public SpareLinkEvent. */
3
+ type PaymentFlowEventTag = 'initialized' | 'sessionLoaded' | 'consentStarted' | 'redirectToBank' | 'bankCallbackReceived' | 'succeeded' | 'failed' | 'cancelled' | 'abandoned';
4
+ import type { LinkApiClient } from '../client/link-api-client';
5
+ import type { CopResponse, LinkSessionResponse, ProviderSummary } from '../models';
6
+ import { type PaymentFlowState } from './payment-flow-state';
7
+ import type { PendingSessionStore } from './pending-session-store';
8
+ /** Minimum surface required from a `Clock` injected for testability. */
9
+ export interface Clock {
10
+ now(): number;
11
+ }
12
+ export interface PaymentFlowControllerOptions {
13
+ sessionToken: string;
14
+ apiClient: LinkApiClient;
15
+ pendingSessionStore?: PendingSessionStore;
16
+ awaitingCallbackTimeoutMs?: number;
17
+ /**
18
+ * Deployment environment. In `sandbox`, the controller treats a non-terminal
19
+ * `/link/status` response during awaitingCallback as success: the sandbox bank
20
+ * authorizes consent but never settles the payment, so the status endpoint
21
+ * stays non-terminal forever and the flow could otherwise only ever time out.
22
+ * Production keeps strict terminal-only behavior. Defaults to `production`.
23
+ */
24
+ environment?: PaymentEnvironment;
25
+ /**
26
+ * Interval for the sandbox awaiting-callback status poll. Ignored outside
27
+ * sandbox. Defaults to {@link DEFAULT_AWAITING_CALLBACK_POLL_MS}.
28
+ */
29
+ awaitingCallbackPollMs?: number;
30
+ /** Optional clock injection for deterministic timeout tests. */
31
+ clock?: Clock;
32
+ /** Telemetry collector — called once before POST /link/consent. */
33
+ collectTelemetry?: () => Promise<Record<string, unknown>>;
34
+ /** UUID generator used for the consent Idempotency-Key. */
35
+ uuid?: () => string;
36
+ /** Callback for internal flow event tags. Exceptions are swallowed. */
37
+ onEvent?: (event: PaymentFlowEventTag) => void;
38
+ }
39
+ type Listener = (state: PaymentFlowState) => void;
40
+ /**
41
+ * Drives the payment flow state machine. Exposes a `subscribe`/`unsubscribe`
42
+ * API so React's `useSyncExternalStore` can bridge to a hook.
43
+ *
44
+ * `subscribe` fires the listener synchronously with the current state so new
45
+ * subscribers don't miss the initial snapshot.
46
+ */
47
+ export declare class PaymentFlowController {
48
+ readonly sessionToken: string;
49
+ readonly apiClient: LinkApiClient;
50
+ readonly pendingSessionStore?: PendingSessionStore;
51
+ private readonly awaitingCallbackTimeoutMs;
52
+ private readonly environment;
53
+ private readonly awaitingCallbackPollMs;
54
+ private readonly clock;
55
+ private readonly collectTelemetry?;
56
+ private readonly uuid;
57
+ private readonly onEventCallback?;
58
+ private _state;
59
+ private _listeners;
60
+ private _consentIdempotencyKey;
61
+ private _callbackTimer;
62
+ private _awaitingCallbackStartedAtMs;
63
+ /** Last provider the user selected — retained so success/awaiting states that
64
+ * arrive without it (poll/callback) can still report `bankId`. */
65
+ private _selectedProvider;
66
+ private _disposed;
67
+ /** Re-entrance guard — second `hydrate()` returns the in-flight promise. */
68
+ private _hydratePromise;
69
+ /** Consecutive `pollStatus` transport failures since the last successful response. */
70
+ private _pollStatusConsecutiveFailures;
71
+ constructor(opts: PaymentFlowControllerOptions);
72
+ get state(): PaymentFlowState;
73
+ get awaitingCallbackStartedAtMs(): number | undefined;
74
+ /**
75
+ * Register a listener. The listener is invoked synchronously with the
76
+ * current state so new subscribers have the initial snapshot, then again
77
+ * on every subsequent change.
78
+ */
79
+ subscribe(listener: Listener): () => void;
80
+ private setState;
81
+ fireEvent(event: PaymentFlowEventTag): void;
82
+ private cancelCallbackTimeout;
83
+ private startCallbackTimeout;
84
+ /**
85
+ * `GET /link` + `GET /link/providers`, then transitions to bankSelection.
86
+ * Re-entrant: a second concurrent call returns the in-flight promise instead
87
+ * of firing duplicate requests.
88
+ */
89
+ hydrate(): Promise<void>;
90
+ private _doHydrate;
91
+ /** Move bankSelection → consentDetails. */
92
+ selectBank(bankId: string): void;
93
+ /**
94
+ * Best-effort Confirmation-of-Payee fetch — never blocks {@link selectBank}
95
+ * or fails the flow. Mirrors the Flutter controller: gated to UAE + un-verified
96
+ * sessions, and the result is merged into the consentDetails state only if the
97
+ * user is still on that screen for the same provider. Ported from
98
+ * `payment_flow_controller.dart:_loadCopInBackground`.
99
+ */
100
+ private loadCopInBackground;
101
+ private shouldPerformCop;
102
+ /** `POST /link/consent`, persists pending record, transitions to redirecting. */
103
+ confirmConsent(): Promise<void>;
104
+ /**
105
+ * Parses a callback URI and transitions to succeeded / failed. Accepts either
106
+ * a `URL` instance or a string. A malformed URI resolves to
107
+ * `failed('invalid_callback')` instead of throwing.
108
+ */
109
+ handleCallback(uri: URL | string): void;
110
+ /** Best-effort cancel — PATCH /link with action=cancel, then transitions to cancelled. */
111
+ cancel(): Promise<void>;
112
+ /** Best-effort error report — sets failed state immediately, PATCH is fire-and-forget. */
113
+ reportError(code: string): Promise<void>;
114
+ private patchTokenBestEffort;
115
+ /**
116
+ * UI calls this after handing off to the bank — starts the 5-minute timeout
117
+ * and pins the awaiting-callback start time.
118
+ */
119
+ setAwaitingCallbackState(args?: {
120
+ providerName?: string;
121
+ }): void;
122
+ /**
123
+ * Best-effort status polling. Transitions to a terminal state on
124
+ * `completed | failed | cancelled | expired`; otherwise leaves the flow in
125
+ * the current phase. After {@link POLL_STATUS_MAX_CONSECUTIVE_FAILURES}
126
+ * consecutive transport failures the controller gives up with
127
+ * `failed('network_error')` to stop hammering an unreachable backend.
128
+ */
129
+ pollStatus(): Promise<void>;
130
+ /** Best-effort telemetry — never throws, never changes state. */
131
+ postTelemetry(payload: Record<string, unknown>): Promise<void>;
132
+ /** Best-effort CoP — returns result or null on failure. */
133
+ getCoP(providerId?: string): Promise<CopResponse | null>;
134
+ private postTelemetryAutomatic;
135
+ /** Returns the active providers list — convenience for the UI layer. */
136
+ get providers(): ProviderSummary[];
137
+ /** Returns the active session, if any. */
138
+ get session(): LinkSessionResponse | undefined;
139
+ /**
140
+ * Releases resources: cancels timers, clears listeners, and aborts the
141
+ * underlying API client's in-flight fetches. Idempotent.
142
+ */
143
+ dispose(): void;
144
+ }
145
+ export {};
146
+ //# sourceMappingURL=payment-flow-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-flow-controller.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/payment-flow-controller.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,2FAA2F;AAC3F,KAAK,mBAAmB,GACpB,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,sBAAsB,GACtB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAmB,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIpG,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,wEAAwE;AACxE,MAAM,WAAW,KAAK;IACpB,GAAG,IAAI,MAAM,CAAC;CACf;AAYD,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAChD;AAED,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAQlD;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAyC;IAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAuC;IAExE,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,cAAc,CAA4C;IAClE,OAAO,CAAC,4BAA4B,CAAqB;IACzD;uEACmE;IACnE,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAS;IAC1B,4EAA4E;IAC5E,OAAO,CAAC,eAAe,CAA4B;IACnD,sFAAsF;IACtF,OAAO,CAAC,8BAA8B,CAAK;gBAE/B,IAAI,EAAE,4BAA4B;IAgB9C,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAED,IAAI,2BAA2B,IAAI,MAAM,GAAG,SAAS,CAEpD;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAYzC,OAAO,CAAC,QAAQ;IAgBhB,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAU3C,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;IAU5B;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YASV,UAAU;IAoBxB,2CAA2C;IAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA6BhC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,gBAAgB;IAOxB,iFAAiF;IAC3E,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDrC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI;IAkEvC,0FAA0F;IACpF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,0FAA0F;IACpF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAOhC,oBAAoB;IAelC;;;OAGG;IACH,wBAAwB,CAAC,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,IAAI;IAYpE;;;;;;OAMG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoEjC,iEAAiE;IAC3D,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpE,2DAA2D;IACrD,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAQhD,sBAAsB;IAapC,wEAAwE;IACxE,IAAI,SAAS,IAAI,eAAe,EAAE,CAEjC;IAED,0CAA0C;IAC1C,IAAI,OAAO,IAAI,mBAAmB,GAAG,SAAS,CAE7C;IAED;;;OAGG;IACH,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,64 @@
1
+ import type { ConsentResponse, CopResponse, LinkSessionResponse, ProviderSummary } from '../models';
2
+ /** Phases the payment flow controller transitions through. */
3
+ export type PaymentFlowPhase = 'idle' | 'hydrating' | 'bankSelection' | 'consentDetails' | 'redirecting' | 'awaitingCallback' | 'succeeded' | 'failed' | 'cancelled';
4
+ export interface PaymentFlowState {
5
+ phase: PaymentFlowPhase;
6
+ session?: LinkSessionResponse;
7
+ providers: ProviderSummary[];
8
+ selectedProvider?: ProviderSummary;
9
+ consent?: ConsentResponse;
10
+ /** Confirmation-of-Payee result, threaded into the consentDetails phase. */
11
+ copResponse?: CopResponse;
12
+ /** True while Confirmation-of-Payee is loading for domestic SIP. */
13
+ isCopLoading?: boolean;
14
+ /**
15
+ * True when this session was actually eligible for Confirmation-of-Payee
16
+ * (UAE tenant, unverified, payment type supports it) — as opposed to
17
+ * merely supporting it by payment type. Lets the presenter distinguish
18
+ * "not applicable" from "was attempted but the response never arrived".
19
+ */
20
+ copApplicable?: boolean;
21
+ exchangeCode?: string;
22
+ linkSessionId?: string;
23
+ merchantRef?: string;
24
+ errorCode?: string;
25
+ errorMessage?: string;
26
+ providerName?: string;
27
+ }
28
+ export declare const PaymentFlowStates: {
29
+ readonly idle: () => PaymentFlowState;
30
+ readonly hydrating: () => PaymentFlowState;
31
+ readonly bankSelection: (args: {
32
+ session: LinkSessionResponse;
33
+ providers: ProviderSummary[];
34
+ }) => PaymentFlowState;
35
+ readonly consentDetails: (args: {
36
+ session: LinkSessionResponse;
37
+ selectedProvider: ProviderSummary;
38
+ copResponse?: CopResponse;
39
+ isCopLoading?: boolean;
40
+ copApplicable?: boolean;
41
+ }) => PaymentFlowState;
42
+ readonly redirecting: (args: {
43
+ consent: ConsentResponse;
44
+ selectedProvider?: ProviderSummary;
45
+ }) => PaymentFlowState;
46
+ readonly awaitingCallback: (args: {
47
+ providerName?: string;
48
+ session?: LinkSessionResponse;
49
+ selectedProvider?: ProviderSummary;
50
+ }) => PaymentFlowState;
51
+ readonly succeeded: (args: {
52
+ exchangeCode?: string;
53
+ linkSessionId?: string;
54
+ merchantRef?: string;
55
+ selectedProvider?: ProviderSummary;
56
+ session?: LinkSessionResponse;
57
+ }) => PaymentFlowState;
58
+ readonly failed: (args: {
59
+ errorCode: string;
60
+ errorMessage?: string;
61
+ }) => PaymentFlowState;
62
+ readonly cancelled: () => PaymentFlowState;
63
+ };
64
+ //# sourceMappingURL=payment-flow-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-flow-state.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/payment-flow-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEpG,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,kBAAkB,GAClB,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,eAAe,CAAC;IACnC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,4EAA4E;IAC5E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,eAAO,MAAM,iBAAiB;yBACpB,gBAAgB;8BAGX,gBAAgB;mCAGT;QAClB,OAAO,EAAE,mBAAmB,CAAC;QAC7B,SAAS,EAAE,eAAe,EAAE,CAAC;KAC9B,KAAG,gBAAgB;oCAGC;QACnB,OAAO,EAAE,mBAAmB,CAAC;QAC7B,gBAAgB,EAAE,eAAe,CAAC;QAClC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,KAAG,gBAAgB;iCAWF;QAChB,OAAO,EAAE,eAAe,CAAC;QACzB,gBAAgB,CAAC,EAAE,eAAe,CAAC;KACpC,KAAG,gBAAgB;sCAQG;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,gBAAgB,CAAC,EAAE,eAAe,CAAC;KACpC,KAAG,gBAAgB;+BASJ;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,eAAe,CAAC;QACnC,OAAO,CAAC,EAAE,mBAAmB,CAAC;KAC/B,KAAG,gBAAgB;4BAWP;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAG,gBAAgB;8BAQ/D,gBAAgB;CAGrB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { PaymentResult } from '../../public/payment-result';
2
+ import type { PaymentFlowState } from './payment-flow-state';
3
+ /** Map a terminal controller state to a {@link PaymentResult}. */
4
+ export declare function paymentResultFromFlowState(state: PaymentFlowState, linkToken: string, bankId?: string): PaymentResult | null;
5
+ //# sourceMappingURL=payment-result-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-result-mapper.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/payment-result-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAOjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,kEAAkE;AAClE,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,GAAG,IAAI,CA0BtB"}
@@ -0,0 +1,12 @@
1
+ import type { PendingSessionRecord } from '../models';
2
+ /**
3
+ * Persistence abstraction the controller uses to survive cold-start.
4
+ * Production impl: `SecureStorePendingSessionStore` (expo-secure-store) —
5
+ * added in Phase 3. Tests use harness's `InMemoryPendingSessionStore`.
6
+ */
7
+ export interface PendingSessionStore {
8
+ save(record: PendingSessionRecord): Promise<void>;
9
+ load(): Promise<PendingSessionRecord | null>;
10
+ clear(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=pending-session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-session-store.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/pending-session-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,5 @@
1
+ export declare function formatAmount(value: {
2
+ amount: string;
3
+ currency: string;
4
+ } | undefined): string;
5
+ //# sourceMappingURL=presentation-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation-utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/presentation-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,MAAM,CAG5F"}
@@ -0,0 +1,6 @@
1
+ export declare function setBufferedRedirect(uri: string): void;
2
+ export declare function peekBufferedRedirect(): string | null;
3
+ export declare function consumeBufferedRedirect(): string | null;
4
+ /** @internal Clears buffer state between tests. */
5
+ export declare function resetRedirectBufferForTests(): void;
6
+ //# sourceMappingURL=redirect-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect-buffer.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/redirect-buffer.ts"],"names":[],"mappings":"AASA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAOvD;AAED,mDAAmD;AACnD,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Maps machine-readable error codes to safe user-facing copy.
3
+ * Raw backend or bank messages must never be shown directly.
4
+ */
5
+ export declare function userFriendlyMessageFor(errorCode: string): string;
6
+ //# sourceMappingURL=user-friendly-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-friendly-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/user-friendly-messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAkChE"}
@@ -0,0 +1,19 @@
1
+ export { SDK_VERSION } from './version';
2
+ export * from './public';
3
+ export { PaymentApiError, isPaymentApiError } from './core/errors/payment-api-error';
4
+ export type { CreatePaymentRequestInput, AmountDto, PaymentInstructions, PaymentScheduleEntry, PeriodicSchedule, PeriodicControls, CurrencyRequest, LinkSessionResponse, ConsentResponse, LinkStatusResponse, CopResponse, TelemetryResponse, PatchTokenResponse, ProviderCountry, ProviderSummary, PendingSessionRecord, } from './core/models';
5
+ export { isPaymentReturnCallbackUri, extractPaymentReturnErrorCode, } from './core/models/payment-return-params';
6
+ export { LinkApiClient, type LinkApiClientOptions } from './core/client/link-api-client';
7
+ export { PaymentFlowController, type PaymentFlowControllerOptions, type Clock, } from './core/services/payment-flow-controller';
8
+ export { PaymentFlowStates, type PaymentFlowPhase, type PaymentFlowState, } from './core/services/payment-flow-state';
9
+ export type { PendingSessionStore } from './core/services/pending-session-store';
10
+ export { presentConsent, summaryFromState, formatAmount, formatCop, type ConsentSummaryData, type SinglePaymentSummaryData, type InternationalPaymentSummaryData, type MultiPaymentSummaryData, type ConsentDisplayData, type CopDisplayData, type CopMatchIndicator, } from './core/services/consent-presenter';
11
+ export { buildMultiPaymentRules, rulesSectionTitle, type LabelValueRow, } from './core/services/multi-payment-rules-presenter';
12
+ export { isMultiPayment, isInternational, supportsConfirmationOfPayee, resolvedPaymentType, consentUiVariant, PaymentType, type ConsentUiVariant, } from './core/models/payment-type';
13
+ export { SpareLinkHost, type SpareLinkHostProps, } from './ui/spare-link-host';
14
+ export { PaymentFlowPage, type PaymentFlowPageProps } from './ui/payment-flow-page';
15
+ export { usePaymentFlowState } from './ui/hooks/use-payment-flow-state';
16
+ export { BankSelectionScreen, type BankSelectionScreenProps, ConsentDetailsScreen, type ConsentDetailsScreenProps, RedirectHandoffScreen, ResumeProcessingScreen, type ResumeProcessingScreenProps, ResultScreen, type ResultScreenProps, MandateSetupSuccessScreen, type MandateSetupSuccessScreenProps, } from './ui/screens';
17
+ export { Colors, Typography, Spacing, FONT_FAMILY } from './ui/theme';
18
+ export { collectTelemetry, launchBankRedirect, type BankRedirectArgs, SecureStorePendingSessionStore, useSpareLinkDeepLinks, } from './internal';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGrF,YAAY,EACV,yBAAyB,EACzB,SAAS,EACT,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGzF,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,KAAK,GACX,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,oCAAoC,CAAC;AAG5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,iBAAiB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,aAAa,GACnB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EACL,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,YAAY,EACZ,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,KAAK,8BAA8B,GACpC,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface BankRedirectArgs {
2
+ authorizationUrl: string;
3
+ mobileAppUrl?: string;
4
+ }
5
+ export declare function launchBankRedirect(args: BankRedirectArgs): Promise<void>;
6
+ //# sourceMappingURL=bank-redirect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bank-redirect.d.ts","sourceRoot":"","sources":["../../../../src/internal/bank-redirect.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B9E"}
@@ -0,0 +1,3 @@
1
+ import type { SpareLink } from '../public/spare-link-instance';
2
+ export declare function useSpareLinkDeepLinks(spareLink: SpareLink): void;
3
+ //# sourceMappingURL=deep-link-listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-link-listener.d.ts","sourceRoot":"","sources":["../../../../src/internal/deep-link-listener.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAsBhE"}
@@ -0,0 +1,13 @@
1
+ /** Minimal typed pub/sub — TypeScript equivalent of Dart's broadcast Stream. */
2
+ export type Unsubscribe = () => void;
3
+ export interface EventEmitter<T> {
4
+ /** Subscribe to events. Returns an unsubscribe function. */
5
+ subscribe(listener: (event: T) => void): Unsubscribe;
6
+ /** Alias for {@link subscribe} — mirrors Flutter's `Stream.listen`. */
7
+ listen(listener: (event: T) => void): Unsubscribe;
8
+ }
9
+ export declare function createEventEmitter<T>(): EventEmitter<T> & {
10
+ emit(event: T): void;
11
+ dispose(): void;
12
+ };
13
+ //# sourceMappingURL=event-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../../src/internal/event-emitter.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,4DAA4D;IAC5D,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,WAAW,CAAC;IACrD,uEAAuE;IACvE,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,WAAW,CAAC;CACnD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACrB,OAAO,IAAI,IAAI,CAAC;CACjB,CA4BA"}
@@ -0,0 +1,5 @@
1
+ export { collectTelemetry } from './telemetry-collector';
2
+ export { launchBankRedirect, type BankRedirectArgs } from './bank-redirect';
3
+ export { SecureStorePendingSessionStore } from './secure-store-pending-session-store';
4
+ export { useSpareLinkDeepLinks } from './deep-link-listener';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ export type SpareLinkLogLevel = 'fine' | 'info' | 'warning' | 'severe';
2
+ export interface SpareLinkLogRecord {
3
+ level: SpareLinkLogLevel;
4
+ loggerName: string;
5
+ message: string;
6
+ time: Date;
7
+ }
8
+ export type SpareLinkLogSink = (record: SpareLinkLogRecord) => void;
9
+ /** Configure SDK logging — mirrors Flutter `Logger.root.level` + `onRecord.listen`. */
10
+ export declare function configureSpareLinkLogging(opts: {
11
+ level?: SpareLinkLogLevel;
12
+ sink?: SpareLinkLogSink;
13
+ }): void;
14
+ /** @internal test helper */
15
+ export declare function resetSpareLinkLoggingForTests(): void;
16
+ export interface SpareLinkLogger {
17
+ fine(message: string): void;
18
+ info(message: string): void;
19
+ warning(message: string): void;
20
+ severe(message: string): void;
21
+ }
22
+ export declare function createLogger(loggerName: string): SpareLinkLogger;
23
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../src/internal/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AASvE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;AA6BpE,uFAAuF;AACvF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;CACzB,GAAG,IAAI,CAKP;AAED,4BAA4B;AAC5B,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAYhE"}
@@ -0,0 +1,3 @@
1
+ /** Redacts sensitive query params before logging bank-return URIs. */
2
+ export declare function redactPaymentReturnUri(uri: string): string;
3
+ //# sourceMappingURL=redact-uri.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-uri.d.ts","sourceRoot":"","sources":["../../../../src/internal/redact-uri.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc1D"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Production `PendingSessionStore` backed by expo-secure-store. Persists a
3
+ * single in-flight payment session so the SDK can recover after cold start.
4
+ */
5
+ import type { PendingSessionRecord } from '../core/models';
6
+ import type { PendingSessionStore } from '../core/services/pending-session-store';
7
+ export interface SecureStoreModule {
8
+ getItemAsync(key: string): Promise<string | null>;
9
+ setItemAsync(key: string, value: string): Promise<void>;
10
+ deleteItemAsync(key: string): Promise<void>;
11
+ }
12
+ export declare class SecureStorePendingSessionStore implements PendingSessionStore {
13
+ private secureStore;
14
+ private readonly loader;
15
+ /**
16
+ * Promise chain serializing every write/clear so a `clear()` racing a
17
+ * partial `save()` can't leave the store in a half-written state.
18
+ */
19
+ private writeQueue;
20
+ /**
21
+ * @param moduleLoader Optional override returning the secure-store module.
22
+ * Defaults to dynamically importing `expo-secure-store`.
23
+ * Tests inject an in-memory fake.
24
+ */
25
+ constructor(moduleLoader?: () => Promise<SecureStoreModule>);
26
+ private get module();
27
+ /** Serializes write operations so save+clear can't interleave. */
28
+ private enqueueWrite;
29
+ save(record: PendingSessionRecord): Promise<void>;
30
+ load(): Promise<PendingSessionRecord | null>;
31
+ clear(): Promise<void>;
32
+ }
33
+ //# sourceMappingURL=secure-store-pending-session-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure-store-pending-session-store.d.ts","sourceRoot":"","sources":["../../../../src/internal/secure-store-pending-session-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAclF,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAcD,qBAAa,8BAA+B,YAAW,mBAAmB;IACxE,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAoC;IAEtD;;;;OAIG;gBACS,YAAY,GAAE,MAAM,OAAO,CAAC,iBAAiB,CAAiB;IAI1E,OAAO,KAAK,MAAM,GAGjB;IAED,kEAAkE;IAClE,OAAO,CAAC,YAAY;IAQpB,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3C,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA6BlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAavB"}
@@ -0,0 +1,2 @@
1
+ export declare function collectTelemetry(): Promise<Record<string, unknown>>;
2
+ //# sourceMappingURL=telemetry-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-collector.d.ts","sourceRoot":"","sources":["../../../../src/internal/telemetry-collector.ts"],"names":[],"mappings":"AA2CA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8CzE"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Max non-terminal `resumeIfNeeded` recovery attempts before the SDK gives up
3
+ * and resolves the flow as failed with code `recovery_exhausted`.
4
+ */
5
+ export declare const kMaxRecoveryAttempts: 3;
6
+ /** Default per-request HTTP timeout in milliseconds (15s). */
7
+ export declare const DEFAULT_REQUEST_TIMEOUT_MS: 15000;
8
+ /** How long the SDK waits for a bank callback before auto-failing with `session_timeout`. */
9
+ export declare const DEFAULT_AWAITING_CALLBACK_TIMEOUT_MS: number;
10
+ /** Polling interval while the flow is in awaitingCallback (status endpoint). */
11
+ export declare const DEFAULT_AWAITING_CALLBACK_POLL_MS = 10000;
12
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/public/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAG,CAAU,CAAC;AAE/C,8DAA8D;AAC9D,eAAO,MAAM,0BAA0B,EAAG,KAAe,CAAC;AAE1D,6FAA6F;AAC7F,eAAO,MAAM,oCAAoC,QAAgB,CAAC;AAElE,gFAAgF;AAChF,eAAO,MAAM,iCAAiC,QAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { type PaymentEnvironment, type SpareApiTenant, type SpareLinkConfig, type SpareLinkResumeConfig, defaultBaseUrlFor, tenantCountryCode, resolvedBaseUrl, resolvedResumeBaseUrl, assertValidConfig, } from './spare-link-config';
2
+ export { type SpareLinkEvent, type SpareLinkEventType, type SpareLinkInitialized, type SpareLinkSessionLoaded, type SpareLinkConsentStarted, type SpareLinkRedirectToBank, type SpareLinkBankCallbackReceived, type SpareLinkSucceeded, type SpareLinkFailed, type SpareLinkCancelled, type SpareLinkAbandoned, SPARE_LINK_EVENT_TYPES, isSpareLinkEvent, SpareLinkEvents, } from './spare-link-event';
3
+ export { type PaymentStatus, type PaymentResult, type PaymentSuccess, type PaymentCancelled, type PaymentFailed, type PaymentAbandoned, paymentSuccess, paymentCancelled, paymentFailed, paymentAbandoned, } from './payment-result';
4
+ export type { SpareLinkCallbacks, SpareLinkSuccessCallback, SpareLinkExitCallback, SpareLinkEventCallback, } from './spare-link-callbacks';
5
+ export type { RecoveryResult, NoRecoveryReason, NoRecoveryNeeded, SessionRecovered, RecoveryAwaitingUser, } from './recovery-result';
6
+ export { isSessionRecovered, isNoRecoveryNeeded, isRecoveryAwaitingUser, } from './recovery-result';
7
+ export { SpareLinkSession } from './spare-link-session';
8
+ export { SpareLink, type SpareLinkOptions } from './spare-link-instance';
9
+ export { kMaxRecoveryAttempts, DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_AWAITING_CALLBACK_TIMEOUT_MS, DEFAULT_AWAITING_CALLBACK_POLL_MS, } from './constants';
10
+ export { configureSpareLinkLogging, createLogger, type SpareLinkLogLevel, type SpareLinkLogRecord, type SpareLinkLogSink, type SpareLinkLogger, } from '../internal/logger';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,oCAAoC,EACpC,iCAAiC,GAClC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC"}