@spare-technologies/spare-link 0.1.0-beta.0 → 1.0.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 (561) hide show
  1. package/README.md +119 -81
  2. package/lib/commonjs/core/models/payment-return-params.js +245 -20
  3. package/lib/commonjs/core/models/payment-return-params.js.map +1 -1
  4. package/lib/commonjs/core/models/pending-session-record.js +2 -0
  5. package/lib/commonjs/core/models/pending-session-record.js.map +1 -0
  6. package/lib/commonjs/core/services/hosted-flow-controller.js +333 -0
  7. package/lib/commonjs/core/services/hosted-flow-controller.js.map +1 -0
  8. package/lib/commonjs/core/services/hosted-flow-state.js +96 -0
  9. package/lib/commonjs/core/services/hosted-flow-state.js.map +1 -0
  10. package/lib/commonjs/index.js +42 -164
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/internal/hosted/bridge-message.js +107 -0
  13. package/lib/commonjs/internal/hosted/bridge-message.js.map +1 -0
  14. package/lib/commonjs/internal/hosted/hosted-url.js +41 -0
  15. package/lib/commonjs/internal/hosted/hosted-url.js.map +1 -0
  16. package/lib/commonjs/internal/index.js +0 -7
  17. package/lib/commonjs/internal/index.js.map +1 -1
  18. package/lib/commonjs/internal/redact-uri.js +59 -15
  19. package/lib/commonjs/internal/redact-uri.js.map +1 -1
  20. package/lib/commonjs/internal/secure-store-pending-session-store.js +20 -25
  21. package/lib/commonjs/internal/secure-store-pending-session-store.js.map +1 -1
  22. package/lib/commonjs/internal/url-parts.js +145 -0
  23. package/lib/commonjs/internal/url-parts.js.map +1 -0
  24. package/lib/commonjs/public/index.js +0 -37
  25. package/lib/commonjs/public/index.js.map +1 -1
  26. package/lib/commonjs/public/payment-result.js +16 -4
  27. package/lib/commonjs/public/payment-result.js.map +1 -1
  28. package/lib/commonjs/public/recovery-result.js +7 -18
  29. package/lib/commonjs/public/recovery-result.js.map +1 -1
  30. package/lib/commonjs/public/spare-link-config.js +41 -16
  31. package/lib/commonjs/public/spare-link-config.js.map +1 -1
  32. package/lib/commonjs/public/spare-link-event.js +27 -33
  33. package/lib/commonjs/public/spare-link-event.js.map +1 -1
  34. package/lib/commonjs/public/spare-link-instance.js +67 -77
  35. package/lib/commonjs/public/spare-link-instance.js.map +1 -1
  36. package/lib/commonjs/public/spare-link-session.js +2 -9
  37. package/lib/commonjs/public/spare-link-session.js.map +1 -1
  38. package/lib/commonjs/public/spare-link.js +0 -12
  39. package/lib/commonjs/public/spare-link.js.map +1 -1
  40. package/lib/commonjs/ui/hooks/{use-payment-flow-state.js → use-hosted-flow-state.js} +4 -4
  41. package/lib/commonjs/ui/hooks/use-hosted-flow-state.js.map +1 -0
  42. package/lib/commonjs/ui/hosted/hosted-payment-page.js +177 -0
  43. package/lib/commonjs/ui/hosted/hosted-payment-page.js.map +1 -0
  44. package/lib/commonjs/ui/hosted/hosted-payment-webview.js +168 -0
  45. package/lib/commonjs/ui/hosted/hosted-payment-webview.js.map +1 -0
  46. package/lib/commonjs/ui/screens/index.js +3 -17
  47. package/lib/commonjs/ui/screens/index.js.map +1 -1
  48. package/lib/commonjs/ui/screens/page-unavailable-screen.js +101 -0
  49. package/lib/commonjs/ui/screens/page-unavailable-screen.js.map +1 -0
  50. package/lib/commonjs/ui/spare-link-host.js +220 -234
  51. package/lib/commonjs/ui/spare-link-host.js.map +1 -1
  52. package/lib/commonjs/ui/widgets/index.js +3 -10
  53. package/lib/commonjs/ui/widgets/index.js.map +1 -1
  54. package/lib/commonjs/version.js +7 -5
  55. package/lib/commonjs/version.js.map +1 -1
  56. package/lib/module/core/models/payment-return-params.js +235 -20
  57. package/lib/module/core/models/payment-return-params.js.map +1 -1
  58. package/lib/module/core/models/pending-session-record.js +2 -0
  59. package/lib/module/core/models/pending-session-record.js.map +1 -0
  60. package/lib/module/core/services/hosted-flow-controller.js +328 -0
  61. package/lib/module/core/services/hosted-flow-controller.js.map +1 -0
  62. package/lib/module/core/services/hosted-flow-state.js +91 -0
  63. package/lib/module/core/services/hosted-flow-state.js.map +1 -0
  64. package/lib/module/index.js +8 -22
  65. package/lib/module/index.js.map +1 -1
  66. package/lib/module/internal/hosted/bridge-message.js +104 -0
  67. package/lib/module/internal/hosted/bridge-message.js.map +1 -0
  68. package/lib/module/internal/hosted/hosted-url.js +36 -0
  69. package/lib/module/internal/hosted/hosted-url.js.map +1 -0
  70. package/lib/module/internal/index.js +0 -1
  71. package/lib/module/internal/index.js.map +1 -1
  72. package/lib/module/internal/redact-uri.js +59 -15
  73. package/lib/module/internal/redact-uri.js.map +1 -1
  74. package/lib/module/internal/secure-store-pending-session-store.js +20 -25
  75. package/lib/module/internal/secure-store-pending-session-store.js.map +1 -1
  76. package/lib/module/internal/url-parts.js +139 -0
  77. package/lib/module/internal/url-parts.js.map +1 -0
  78. package/lib/module/public/index.js +2 -3
  79. package/lib/module/public/index.js.map +1 -1
  80. package/lib/module/public/payment-result.js +16 -4
  81. package/lib/module/public/payment-result.js.map +1 -1
  82. package/lib/module/public/recovery-result.js +7 -17
  83. package/lib/module/public/recovery-result.js.map +1 -1
  84. package/lib/module/public/spare-link-config.js +42 -15
  85. package/lib/module/public/spare-link-config.js.map +1 -1
  86. package/lib/module/public/spare-link-event.js +27 -33
  87. package/lib/module/public/spare-link-event.js.map +1 -1
  88. package/lib/module/public/spare-link-instance.js +68 -72
  89. package/lib/module/public/spare-link-instance.js.map +1 -1
  90. package/lib/module/public/spare-link-session.js +2 -9
  91. package/lib/module/public/spare-link-session.js.map +1 -1
  92. package/lib/module/public/spare-link.js +1 -1
  93. package/lib/module/public/spare-link.js.map +1 -1
  94. package/lib/module/ui/hooks/{use-payment-flow-state.js → use-hosted-flow-state.js} +3 -3
  95. package/lib/module/ui/hooks/use-hosted-flow-state.js.map +1 -0
  96. package/lib/module/ui/hosted/hosted-payment-page.js +175 -0
  97. package/lib/module/ui/hosted/hosted-payment-page.js.map +1 -0
  98. package/lib/module/ui/hosted/hosted-payment-webview.js +163 -0
  99. package/lib/module/ui/hosted/hosted-payment-webview.js.map +1 -0
  100. package/lib/module/ui/screens/index.js +1 -3
  101. package/lib/module/ui/screens/index.js.map +1 -1
  102. package/lib/module/ui/screens/page-unavailable-screen.js +97 -0
  103. package/lib/module/ui/screens/page-unavailable-screen.js.map +1 -0
  104. package/lib/module/ui/spare-link-host.js +221 -236
  105. package/lib/module/ui/spare-link-host.js.map +1 -1
  106. package/lib/module/ui/widgets/index.js +1 -2
  107. package/lib/module/ui/widgets/index.js.map +1 -1
  108. package/lib/module/version.js +7 -5
  109. package/lib/module/version.js.map +1 -1
  110. package/lib/typescript/commonjs/core/models/index.d.ts +1 -123
  111. package/lib/typescript/commonjs/core/models/index.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/core/models/payment-return-params.d.ts +91 -8
  113. package/lib/typescript/commonjs/core/models/payment-return-params.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/core/models/pending-session-record.d.ts +11 -0
  115. package/lib/typescript/commonjs/core/models/pending-session-record.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/core/services/hosted-flow-controller.d.ts +119 -0
  117. package/lib/typescript/commonjs/core/services/hosted-flow-controller.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/core/services/hosted-flow-state.d.ts +75 -0
  119. package/lib/typescript/commonjs/core/services/hosted-flow-state.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/index.d.ts +5 -14
  121. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/internal/hosted/bridge-message.d.ts +44 -0
  123. package/lib/typescript/commonjs/internal/hosted/bridge-message.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/internal/hosted/hosted-url.d.ts +30 -0
  125. package/lib/typescript/commonjs/internal/hosted/hosted-url.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/internal/index.d.ts +0 -1
  127. package/lib/typescript/commonjs/internal/index.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/internal/redact-uri.d.ts +21 -1
  129. package/lib/typescript/commonjs/internal/redact-uri.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts +3 -2
  131. package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/internal/url-parts.d.ts +46 -0
  133. package/lib/typescript/commonjs/internal/url-parts.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/public/index.d.ts +4 -6
  135. package/lib/typescript/commonjs/public/index.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/public/payment-result.d.ts +50 -12
  137. package/lib/typescript/commonjs/public/payment-result.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/public/recovery-result.d.ts +11 -20
  139. package/lib/typescript/commonjs/public/recovery-result.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/public/spare-link-config.d.ts +13 -31
  141. package/lib/typescript/commonjs/public/spare-link-config.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/public/spare-link-event.d.ts +29 -31
  143. package/lib/typescript/commonjs/public/spare-link-event.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/public/spare-link-host-api.d.ts +1 -12
  145. package/lib/typescript/commonjs/public/spare-link-host-api.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/public/spare-link-instance.d.ts +26 -20
  147. package/lib/typescript/commonjs/public/spare-link-instance.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/public/spare-link-session.d.ts +3 -8
  149. package/lib/typescript/commonjs/public/spare-link-session.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/public/spare-link.d.ts +1 -1
  151. package/lib/typescript/commonjs/public/spare-link.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/ui/hooks/use-hosted-flow-state.d.ts +9 -0
  153. package/lib/typescript/commonjs/ui/hooks/use-hosted-flow-state.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/ui/hosted/hosted-payment-page.d.ts +17 -0
  155. package/lib/typescript/commonjs/ui/hosted/hosted-payment-page.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/ui/hosted/hosted-payment-webview.d.ts +43 -0
  157. package/lib/typescript/commonjs/ui/hosted/hosted-payment-webview.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/ui/screens/index.d.ts +1 -3
  159. package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -1
  160. package/lib/typescript/commonjs/ui/screens/page-unavailable-screen.d.ts +18 -0
  161. package/lib/typescript/commonjs/ui/screens/page-unavailable-screen.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/ui/spare-link-host.d.ts +4 -5
  163. package/lib/typescript/commonjs/ui/spare-link-host.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/ui/widgets/index.d.ts +1 -2
  165. package/lib/typescript/commonjs/ui/widgets/index.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/version.d.ts +7 -5
  167. package/lib/typescript/commonjs/version.d.ts.map +1 -1
  168. package/lib/typescript/module/core/models/index.d.ts +1 -123
  169. package/lib/typescript/module/core/models/index.d.ts.map +1 -1
  170. package/lib/typescript/module/core/models/payment-return-params.d.ts +91 -8
  171. package/lib/typescript/module/core/models/payment-return-params.d.ts.map +1 -1
  172. package/lib/typescript/module/core/models/pending-session-record.d.ts +11 -0
  173. package/lib/typescript/module/core/models/pending-session-record.d.ts.map +1 -0
  174. package/lib/typescript/module/core/services/hosted-flow-controller.d.ts +119 -0
  175. package/lib/typescript/module/core/services/hosted-flow-controller.d.ts.map +1 -0
  176. package/lib/typescript/module/core/services/hosted-flow-state.d.ts +75 -0
  177. package/lib/typescript/module/core/services/hosted-flow-state.d.ts.map +1 -0
  178. package/lib/typescript/module/index.d.ts +5 -14
  179. package/lib/typescript/module/index.d.ts.map +1 -1
  180. package/lib/typescript/module/internal/hosted/bridge-message.d.ts +44 -0
  181. package/lib/typescript/module/internal/hosted/bridge-message.d.ts.map +1 -0
  182. package/lib/typescript/module/internal/hosted/hosted-url.d.ts +30 -0
  183. package/lib/typescript/module/internal/hosted/hosted-url.d.ts.map +1 -0
  184. package/lib/typescript/module/internal/index.d.ts +0 -1
  185. package/lib/typescript/module/internal/index.d.ts.map +1 -1
  186. package/lib/typescript/module/internal/redact-uri.d.ts +21 -1
  187. package/lib/typescript/module/internal/redact-uri.d.ts.map +1 -1
  188. package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts +3 -2
  189. package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts.map +1 -1
  190. package/lib/typescript/module/internal/url-parts.d.ts +46 -0
  191. package/lib/typescript/module/internal/url-parts.d.ts.map +1 -0
  192. package/lib/typescript/module/public/index.d.ts +4 -6
  193. package/lib/typescript/module/public/index.d.ts.map +1 -1
  194. package/lib/typescript/module/public/payment-result.d.ts +50 -12
  195. package/lib/typescript/module/public/payment-result.d.ts.map +1 -1
  196. package/lib/typescript/module/public/recovery-result.d.ts +11 -20
  197. package/lib/typescript/module/public/recovery-result.d.ts.map +1 -1
  198. package/lib/typescript/module/public/spare-link-config.d.ts +13 -31
  199. package/lib/typescript/module/public/spare-link-config.d.ts.map +1 -1
  200. package/lib/typescript/module/public/spare-link-event.d.ts +29 -31
  201. package/lib/typescript/module/public/spare-link-event.d.ts.map +1 -1
  202. package/lib/typescript/module/public/spare-link-host-api.d.ts +1 -12
  203. package/lib/typescript/module/public/spare-link-host-api.d.ts.map +1 -1
  204. package/lib/typescript/module/public/spare-link-instance.d.ts +26 -20
  205. package/lib/typescript/module/public/spare-link-instance.d.ts.map +1 -1
  206. package/lib/typescript/module/public/spare-link-session.d.ts +3 -8
  207. package/lib/typescript/module/public/spare-link-session.d.ts.map +1 -1
  208. package/lib/typescript/module/public/spare-link.d.ts +1 -1
  209. package/lib/typescript/module/public/spare-link.d.ts.map +1 -1
  210. package/lib/typescript/module/ui/hooks/use-hosted-flow-state.d.ts +9 -0
  211. package/lib/typescript/module/ui/hooks/use-hosted-flow-state.d.ts.map +1 -0
  212. package/lib/typescript/module/ui/hosted/hosted-payment-page.d.ts +17 -0
  213. package/lib/typescript/module/ui/hosted/hosted-payment-page.d.ts.map +1 -0
  214. package/lib/typescript/module/ui/hosted/hosted-payment-webview.d.ts +43 -0
  215. package/lib/typescript/module/ui/hosted/hosted-payment-webview.d.ts.map +1 -0
  216. package/lib/typescript/module/ui/screens/index.d.ts +1 -3
  217. package/lib/typescript/module/ui/screens/index.d.ts.map +1 -1
  218. package/lib/typescript/module/ui/screens/page-unavailable-screen.d.ts +18 -0
  219. package/lib/typescript/module/ui/screens/page-unavailable-screen.d.ts.map +1 -0
  220. package/lib/typescript/module/ui/spare-link-host.d.ts +4 -5
  221. package/lib/typescript/module/ui/spare-link-host.d.ts.map +1 -1
  222. package/lib/typescript/module/ui/widgets/index.d.ts +1 -2
  223. package/lib/typescript/module/ui/widgets/index.d.ts.map +1 -1
  224. package/lib/typescript/module/version.d.ts +7 -5
  225. package/lib/typescript/module/version.d.ts.map +1 -1
  226. package/package.json +24 -23
  227. package/plugins/with-spare-link.js +6 -26
  228. package/src/core/models/index.ts +1 -139
  229. package/src/core/models/payment-return-params.ts +269 -21
  230. package/src/core/models/pending-session-record.ts +10 -0
  231. package/src/core/services/hosted-flow-controller.ts +374 -0
  232. package/src/core/services/hosted-flow-state.ts +123 -0
  233. package/src/index.ts +20 -89
  234. package/src/internal/hosted/bridge-message.ts +106 -0
  235. package/src/internal/hosted/hosted-url.ts +33 -0
  236. package/src/internal/index.ts +0 -1
  237. package/src/internal/redact-uri.ts +69 -15
  238. package/src/internal/secure-store-pending-session-store.ts +28 -49
  239. package/src/internal/url-parts.ts +134 -0
  240. package/src/public/index.ts +2 -24
  241. package/src/public/payment-result.ts +50 -12
  242. package/src/public/recovery-result.ts +16 -25
  243. package/src/public/spare-link-config.ts +56 -43
  244. package/src/public/spare-link-event.ts +33 -42
  245. package/src/public/spare-link-host-api.ts +1 -14
  246. package/src/public/spare-link-instance.ts +57 -65
  247. package/src/public/spare-link-session.ts +4 -16
  248. package/src/public/spare-link.ts +1 -1
  249. package/src/ui/hooks/use-hosted-flow-state.ts +16 -0
  250. package/src/ui/hosted/hosted-payment-page.tsx +178 -0
  251. package/src/ui/hosted/hosted-payment-webview.tsx +164 -0
  252. package/src/ui/screens/index.ts +4 -6
  253. package/src/ui/screens/page-unavailable-screen.tsx +94 -0
  254. package/src/ui/spare-link-host.tsx +227 -247
  255. package/src/ui/widgets/index.ts +1 -2
  256. package/src/version.ts +7 -5
  257. package/CHANGELOG.md +0 -66
  258. package/lib/commonjs/core/client/link-api-client.js +0 -297
  259. package/lib/commonjs/core/client/link-api-client.js.map +0 -1
  260. package/lib/commonjs/core/errors/payment-api-error.js +0 -35
  261. package/lib/commonjs/core/errors/payment-api-error.js.map +0 -1
  262. package/lib/commonjs/core/models/link-session-status.js +0 -14
  263. package/lib/commonjs/core/models/link-session-status.js.map +0 -1
  264. package/lib/commonjs/core/models/payment-type.js +0 -45
  265. package/lib/commonjs/core/models/payment-type.js.map +0 -1
  266. package/lib/commonjs/core/models/wire-mappers.js +0 -277
  267. package/lib/commonjs/core/models/wire-mappers.js.map +0 -1
  268. package/lib/commonjs/core/services/consent-presenter.js +0 -150
  269. package/lib/commonjs/core/services/consent-presenter.js.map +0 -1
  270. package/lib/commonjs/core/services/execute-resume-if-needed.js +0 -216
  271. package/lib/commonjs/core/services/execute-resume-if-needed.js.map +0 -1
  272. package/lib/commonjs/core/services/multi-payment-rules-presenter.js +0 -151
  273. package/lib/commonjs/core/services/multi-payment-rules-presenter.js.map +0 -1
  274. package/lib/commonjs/core/services/payment-flow-controller.js +0 -547
  275. package/lib/commonjs/core/services/payment-flow-controller.js.map +0 -1
  276. package/lib/commonjs/core/services/payment-flow-state.js +0 -110
  277. package/lib/commonjs/core/services/payment-flow-state.js.map +0 -1
  278. package/lib/commonjs/core/services/payment-result-mapper.js +0 -49
  279. package/lib/commonjs/core/services/payment-result-mapper.js.map +0 -1
  280. package/lib/commonjs/core/services/presentation-utils.js +0 -11
  281. package/lib/commonjs/core/services/presentation-utils.js.map +0 -1
  282. package/lib/commonjs/core/services/redirect-buffer.js +0 -40
  283. package/lib/commonjs/core/services/redirect-buffer.js.map +0 -1
  284. package/lib/commonjs/core/services/user-friendly-messages.js +0 -46
  285. package/lib/commonjs/core/services/user-friendly-messages.js.map +0 -1
  286. package/lib/commonjs/internal/telemetry-collector.js +0 -80
  287. package/lib/commonjs/internal/telemetry-collector.js.map +0 -1
  288. package/lib/commonjs/public/constants.js +0 -21
  289. package/lib/commonjs/public/constants.js.map +0 -1
  290. package/lib/commonjs/public/spare-link-callbacks.js +0 -6
  291. package/lib/commonjs/public/spare-link-callbacks.js.map +0 -1
  292. package/lib/commonjs/ui/consent/charge-bearer-display.js +0 -99
  293. package/lib/commonjs/ui/consent/charge-bearer-display.js.map +0 -1
  294. package/lib/commonjs/ui/consent/consent-accordion.js +0 -94
  295. package/lib/commonjs/ui/consent/consent-accordion.js.map +0 -1
  296. package/lib/commonjs/ui/consent/consent-summary-section.js +0 -27
  297. package/lib/commonjs/ui/consent/consent-summary-section.js.map +0 -1
  298. package/lib/commonjs/ui/consent/cop-information.js +0 -168
  299. package/lib/commonjs/ui/consent/cop-information.js.map +0 -1
  300. package/lib/commonjs/ui/consent/international-payment-summary.js +0 -98
  301. package/lib/commonjs/ui/consent/international-payment-summary.js.map +0 -1
  302. package/lib/commonjs/ui/consent/label-value-rows.js +0 -59
  303. package/lib/commonjs/ui/consent/label-value-rows.js.map +0 -1
  304. package/lib/commonjs/ui/consent/multi-payment-rules-list.js +0 -130
  305. package/lib/commonjs/ui/consent/multi-payment-rules-list.js.map +0 -1
  306. package/lib/commonjs/ui/consent/multi-payment-summary.js +0 -99
  307. package/lib/commonjs/ui/consent/multi-payment-summary.js.map +0 -1
  308. package/lib/commonjs/ui/consent/single-payment-summary.js +0 -158
  309. package/lib/commonjs/ui/consent/single-payment-summary.js.map +0 -1
  310. package/lib/commonjs/ui/consent/terms-link.js +0 -35
  311. package/lib/commonjs/ui/consent/terms-link.js.map +0 -1
  312. package/lib/commonjs/ui/hooks/use-payment-flow-state.js.map +0 -1
  313. package/lib/commonjs/ui/payment-flow-page.js +0 -235
  314. package/lib/commonjs/ui/payment-flow-page.js.map +0 -1
  315. package/lib/commonjs/ui/screens/bank-selection-screen.js +0 -215
  316. package/lib/commonjs/ui/screens/bank-selection-screen.js.map +0 -1
  317. package/lib/commonjs/ui/screens/consent-details-screen.js +0 -124
  318. package/lib/commonjs/ui/screens/consent-details-screen.js.map +0 -1
  319. package/lib/commonjs/ui/screens/mandate-setup-success-screen.js +0 -79
  320. package/lib/commonjs/ui/screens/mandate-setup-success-screen.js.map +0 -1
  321. package/lib/commonjs/ui/widgets/layout-w-header.js +0 -106
  322. package/lib/commonjs/ui/widgets/layout-w-header.js.map +0 -1
  323. package/lib/commonjs/ui/widgets/stepper.js +0 -124
  324. package/lib/commonjs/ui/widgets/stepper.js.map +0 -1
  325. package/lib/module/core/client/link-api-client.js +0 -292
  326. package/lib/module/core/client/link-api-client.js.map +0 -1
  327. package/lib/module/core/errors/payment-api-error.js +0 -29
  328. package/lib/module/core/errors/payment-api-error.js.map +0 -1
  329. package/lib/module/core/models/link-session-status.js +0 -10
  330. package/lib/module/core/models/link-session-status.js.map +0 -1
  331. package/lib/module/core/models/payment-type.js +0 -36
  332. package/lib/module/core/models/payment-type.js.map +0 -1
  333. package/lib/module/core/models/wire-mappers.js +0 -263
  334. package/lib/module/core/models/wire-mappers.js.map +0 -1
  335. package/lib/module/core/services/consent-presenter.js +0 -140
  336. package/lib/module/core/services/consent-presenter.js.map +0 -1
  337. package/lib/module/core/services/execute-resume-if-needed.js +0 -211
  338. package/lib/module/core/services/execute-resume-if-needed.js.map +0 -1
  339. package/lib/module/core/services/multi-payment-rules-presenter.js +0 -146
  340. package/lib/module/core/services/multi-payment-rules-presenter.js.map +0 -1
  341. package/lib/module/core/services/payment-flow-controller.js +0 -544
  342. package/lib/module/core/services/payment-flow-controller.js.map +0 -1
  343. package/lib/module/core/services/payment-flow-state.js +0 -106
  344. package/lib/module/core/services/payment-flow-state.js.map +0 -1
  345. package/lib/module/core/services/payment-result-mapper.js +0 -45
  346. package/lib/module/core/services/payment-result-mapper.js.map +0 -1
  347. package/lib/module/core/services/presentation-utils.js +0 -7
  348. package/lib/module/core/services/presentation-utils.js.map +0 -1
  349. package/lib/module/core/services/redirect-buffer.js +0 -33
  350. package/lib/module/core/services/redirect-buffer.js.map +0 -1
  351. package/lib/module/core/services/user-friendly-messages.js +0 -42
  352. package/lib/module/core/services/user-friendly-messages.js.map +0 -1
  353. package/lib/module/internal/telemetry-collector.js +0 -75
  354. package/lib/module/internal/telemetry-collector.js.map +0 -1
  355. package/lib/module/public/constants.js +0 -17
  356. package/lib/module/public/constants.js.map +0 -1
  357. package/lib/module/public/spare-link-callbacks.js +0 -4
  358. package/lib/module/public/spare-link-callbacks.js.map +0 -1
  359. package/lib/module/ui/consent/charge-bearer-display.js +0 -95
  360. package/lib/module/ui/consent/charge-bearer-display.js.map +0 -1
  361. package/lib/module/ui/consent/consent-accordion.js +0 -90
  362. package/lib/module/ui/consent/consent-accordion.js.map +0 -1
  363. package/lib/module/ui/consent/consent-summary-section.js +0 -23
  364. package/lib/module/ui/consent/consent-summary-section.js.map +0 -1
  365. package/lib/module/ui/consent/cop-information.js +0 -165
  366. package/lib/module/ui/consent/cop-information.js.map +0 -1
  367. package/lib/module/ui/consent/international-payment-summary.js +0 -94
  368. package/lib/module/ui/consent/international-payment-summary.js.map +0 -1
  369. package/lib/module/ui/consent/label-value-rows.js +0 -55
  370. package/lib/module/ui/consent/label-value-rows.js.map +0 -1
  371. package/lib/module/ui/consent/multi-payment-rules-list.js +0 -125
  372. package/lib/module/ui/consent/multi-payment-rules-list.js.map +0 -1
  373. package/lib/module/ui/consent/multi-payment-summary.js +0 -95
  374. package/lib/module/ui/consent/multi-payment-summary.js.map +0 -1
  375. package/lib/module/ui/consent/single-payment-summary.js +0 -154
  376. package/lib/module/ui/consent/single-payment-summary.js.map +0 -1
  377. package/lib/module/ui/consent/terms-link.js +0 -31
  378. package/lib/module/ui/consent/terms-link.js.map +0 -1
  379. package/lib/module/ui/hooks/use-payment-flow-state.js.map +0 -1
  380. package/lib/module/ui/payment-flow-page.js +0 -232
  381. package/lib/module/ui/payment-flow-page.js.map +0 -1
  382. package/lib/module/ui/screens/bank-selection-screen.js +0 -211
  383. package/lib/module/ui/screens/bank-selection-screen.js.map +0 -1
  384. package/lib/module/ui/screens/consent-details-screen.js +0 -120
  385. package/lib/module/ui/screens/consent-details-screen.js.map +0 -1
  386. package/lib/module/ui/screens/mandate-setup-success-screen.js +0 -75
  387. package/lib/module/ui/screens/mandate-setup-success-screen.js.map +0 -1
  388. package/lib/module/ui/widgets/layout-w-header.js +0 -102
  389. package/lib/module/ui/widgets/layout-w-header.js.map +0 -1
  390. package/lib/module/ui/widgets/stepper.js +0 -120
  391. package/lib/module/ui/widgets/stepper.js.map +0 -1
  392. package/lib/typescript/commonjs/core/client/link-api-client.d.ts +0 -70
  393. package/lib/typescript/commonjs/core/client/link-api-client.d.ts.map +0 -1
  394. package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts +0 -15
  395. package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts.map +0 -1
  396. package/lib/typescript/commonjs/core/models/link-session-status.d.ts +0 -6
  397. package/lib/typescript/commonjs/core/models/link-session-status.d.ts.map +0 -1
  398. package/lib/typescript/commonjs/core/models/payment-type.d.ts +0 -18
  399. package/lib/typescript/commonjs/core/models/payment-type.d.ts.map +0 -1
  400. package/lib/typescript/commonjs/core/models/wire-mappers.d.ts +0 -19
  401. package/lib/typescript/commonjs/core/models/wire-mappers.d.ts.map +0 -1
  402. package/lib/typescript/commonjs/core/services/consent-presenter.d.ts +0 -67
  403. package/lib/typescript/commonjs/core/services/consent-presenter.d.ts.map +0 -1
  404. package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts +0 -32
  405. package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts.map +0 -1
  406. package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts +0 -9
  407. package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts.map +0 -1
  408. package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts +0 -146
  409. package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts.map +0 -1
  410. package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts +0 -64
  411. package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts.map +0 -1
  412. package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts +0 -5
  413. package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts.map +0 -1
  414. package/lib/typescript/commonjs/core/services/presentation-utils.d.ts +0 -5
  415. package/lib/typescript/commonjs/core/services/presentation-utils.d.ts.map +0 -1
  416. package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts +0 -6
  417. package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts.map +0 -1
  418. package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts +0 -6
  419. package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts.map +0 -1
  420. package/lib/typescript/commonjs/internal/telemetry-collector.d.ts +0 -2
  421. package/lib/typescript/commonjs/internal/telemetry-collector.d.ts.map +0 -1
  422. package/lib/typescript/commonjs/public/constants.d.ts +0 -12
  423. package/lib/typescript/commonjs/public/constants.d.ts.map +0 -1
  424. package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts +0 -14
  425. package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts.map +0 -1
  426. package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts +0 -5
  427. package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts.map +0 -1
  428. package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts +0 -10
  429. package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts.map +0 -1
  430. package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts +0 -6
  431. package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts.map +0 -1
  432. package/lib/typescript/commonjs/ui/consent/cop-information.d.ts +0 -6
  433. package/lib/typescript/commonjs/ui/consent/cop-information.d.ts.map +0 -1
  434. package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts +0 -6
  435. package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts.map +0 -1
  436. package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts +0 -10
  437. package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts.map +0 -1
  438. package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts +0 -15
  439. package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts.map +0 -1
  440. package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts +0 -6
  441. package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts.map +0 -1
  442. package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts +0 -6
  443. package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts.map +0 -1
  444. package/lib/typescript/commonjs/ui/consent/terms-link.d.ts +0 -2
  445. package/lib/typescript/commonjs/ui/consent/terms-link.d.ts.map +0 -1
  446. package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts +0 -9
  447. package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts.map +0 -1
  448. package/lib/typescript/commonjs/ui/payment-flow-page.d.ts +0 -20
  449. package/lib/typescript/commonjs/ui/payment-flow-page.d.ts.map +0 -1
  450. package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts +0 -15
  451. package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts.map +0 -1
  452. package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts +0 -13
  453. package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts.map +0 -1
  454. package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts +0 -10
  455. package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts.map +0 -1
  456. package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts +0 -20
  457. package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts.map +0 -1
  458. package/lib/typescript/commonjs/ui/widgets/stepper.d.ts +0 -15
  459. package/lib/typescript/commonjs/ui/widgets/stepper.d.ts.map +0 -1
  460. package/lib/typescript/module/core/client/link-api-client.d.ts +0 -70
  461. package/lib/typescript/module/core/client/link-api-client.d.ts.map +0 -1
  462. package/lib/typescript/module/core/errors/payment-api-error.d.ts +0 -15
  463. package/lib/typescript/module/core/errors/payment-api-error.d.ts.map +0 -1
  464. package/lib/typescript/module/core/models/link-session-status.d.ts +0 -6
  465. package/lib/typescript/module/core/models/link-session-status.d.ts.map +0 -1
  466. package/lib/typescript/module/core/models/payment-type.d.ts +0 -18
  467. package/lib/typescript/module/core/models/payment-type.d.ts.map +0 -1
  468. package/lib/typescript/module/core/models/wire-mappers.d.ts +0 -19
  469. package/lib/typescript/module/core/models/wire-mappers.d.ts.map +0 -1
  470. package/lib/typescript/module/core/services/consent-presenter.d.ts +0 -67
  471. package/lib/typescript/module/core/services/consent-presenter.d.ts.map +0 -1
  472. package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts +0 -32
  473. package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts.map +0 -1
  474. package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts +0 -9
  475. package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts.map +0 -1
  476. package/lib/typescript/module/core/services/payment-flow-controller.d.ts +0 -146
  477. package/lib/typescript/module/core/services/payment-flow-controller.d.ts.map +0 -1
  478. package/lib/typescript/module/core/services/payment-flow-state.d.ts +0 -64
  479. package/lib/typescript/module/core/services/payment-flow-state.d.ts.map +0 -1
  480. package/lib/typescript/module/core/services/payment-result-mapper.d.ts +0 -5
  481. package/lib/typescript/module/core/services/payment-result-mapper.d.ts.map +0 -1
  482. package/lib/typescript/module/core/services/presentation-utils.d.ts +0 -5
  483. package/lib/typescript/module/core/services/presentation-utils.d.ts.map +0 -1
  484. package/lib/typescript/module/core/services/redirect-buffer.d.ts +0 -6
  485. package/lib/typescript/module/core/services/redirect-buffer.d.ts.map +0 -1
  486. package/lib/typescript/module/core/services/user-friendly-messages.d.ts +0 -6
  487. package/lib/typescript/module/core/services/user-friendly-messages.d.ts.map +0 -1
  488. package/lib/typescript/module/internal/telemetry-collector.d.ts +0 -2
  489. package/lib/typescript/module/internal/telemetry-collector.d.ts.map +0 -1
  490. package/lib/typescript/module/public/constants.d.ts +0 -12
  491. package/lib/typescript/module/public/constants.d.ts.map +0 -1
  492. package/lib/typescript/module/public/spare-link-callbacks.d.ts +0 -14
  493. package/lib/typescript/module/public/spare-link-callbacks.d.ts.map +0 -1
  494. package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts +0 -5
  495. package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts.map +0 -1
  496. package/lib/typescript/module/ui/consent/consent-accordion.d.ts +0 -10
  497. package/lib/typescript/module/ui/consent/consent-accordion.d.ts.map +0 -1
  498. package/lib/typescript/module/ui/consent/consent-summary-section.d.ts +0 -6
  499. package/lib/typescript/module/ui/consent/consent-summary-section.d.ts.map +0 -1
  500. package/lib/typescript/module/ui/consent/cop-information.d.ts +0 -6
  501. package/lib/typescript/module/ui/consent/cop-information.d.ts.map +0 -1
  502. package/lib/typescript/module/ui/consent/international-payment-summary.d.ts +0 -6
  503. package/lib/typescript/module/ui/consent/international-payment-summary.d.ts.map +0 -1
  504. package/lib/typescript/module/ui/consent/label-value-rows.d.ts +0 -10
  505. package/lib/typescript/module/ui/consent/label-value-rows.d.ts.map +0 -1
  506. package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts +0 -15
  507. package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts.map +0 -1
  508. package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts +0 -6
  509. package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts.map +0 -1
  510. package/lib/typescript/module/ui/consent/single-payment-summary.d.ts +0 -6
  511. package/lib/typescript/module/ui/consent/single-payment-summary.d.ts.map +0 -1
  512. package/lib/typescript/module/ui/consent/terms-link.d.ts +0 -2
  513. package/lib/typescript/module/ui/consent/terms-link.d.ts.map +0 -1
  514. package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts +0 -9
  515. package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts.map +0 -1
  516. package/lib/typescript/module/ui/payment-flow-page.d.ts +0 -20
  517. package/lib/typescript/module/ui/payment-flow-page.d.ts.map +0 -1
  518. package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts +0 -15
  519. package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts.map +0 -1
  520. package/lib/typescript/module/ui/screens/consent-details-screen.d.ts +0 -13
  521. package/lib/typescript/module/ui/screens/consent-details-screen.d.ts.map +0 -1
  522. package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts +0 -10
  523. package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts.map +0 -1
  524. package/lib/typescript/module/ui/widgets/layout-w-header.d.ts +0 -20
  525. package/lib/typescript/module/ui/widgets/layout-w-header.d.ts.map +0 -1
  526. package/lib/typescript/module/ui/widgets/stepper.d.ts +0 -15
  527. package/lib/typescript/module/ui/widgets/stepper.d.ts.map +0 -1
  528. package/src/core/client/link-api-client.ts +0 -414
  529. package/src/core/errors/payment-api-error.ts +0 -35
  530. package/src/core/models/link-session-status.ts +0 -7
  531. package/src/core/models/payment-type.ts +0 -54
  532. package/src/core/models/wire-mappers.ts +0 -315
  533. package/src/core/services/consent-presenter.ts +0 -213
  534. package/src/core/services/execute-resume-if-needed.ts +0 -243
  535. package/src/core/services/multi-payment-rules-presenter.ts +0 -158
  536. package/src/core/services/payment-flow-controller.ts +0 -607
  537. package/src/core/services/payment-flow-state.ts +0 -124
  538. package/src/core/services/payment-result-mapper.ts +0 -41
  539. package/src/core/services/presentation-utils.ts +0 -4
  540. package/src/core/services/redirect-buffer.ts +0 -34
  541. package/src/core/services/user-friendly-messages.ts +0 -39
  542. package/src/internal/telemetry-collector.ts +0 -90
  543. package/src/public/constants.ts +0 -14
  544. package/src/public/spare-link-callbacks.ts +0 -20
  545. package/src/ui/consent/charge-bearer-display.tsx +0 -68
  546. package/src/ui/consent/consent-accordion.tsx +0 -89
  547. package/src/ui/consent/consent-summary-section.tsx +0 -19
  548. package/src/ui/consent/cop-information.tsx +0 -121
  549. package/src/ui/consent/international-payment-summary.tsx +0 -83
  550. package/src/ui/consent/label-value-rows.tsx +0 -50
  551. package/src/ui/consent/multi-payment-rules-list.tsx +0 -138
  552. package/src/ui/consent/multi-payment-summary.tsx +0 -82
  553. package/src/ui/consent/single-payment-summary.tsx +0 -123
  554. package/src/ui/consent/terms-link.tsx +0 -27
  555. package/src/ui/hooks/use-payment-flow-state.ts +0 -16
  556. package/src/ui/payment-flow-page.tsx +0 -254
  557. package/src/ui/screens/bank-selection-screen.tsx +0 -209
  558. package/src/ui/screens/consent-details-screen.tsx +0 -106
  559. package/src/ui/screens/mandate-setup-success-screen.tsx +0 -72
  560. package/src/ui/widgets/layout-w-header.tsx +0 -89
  561. package/src/ui/widgets/stepper.tsx +0 -126
@@ -0,0 +1 @@
1
+ {"version":3,"names":["launchBankRedirect","defaultLaunchBankRedirect","parseHostedBridgeMessage","createLogger","readPaymentReturn","HostedFlowStates","isTerminalPhase","log","DEFAULT_READY_TIMEOUT_MS","HostedFlowController","listeners","Set","constructor","options","reference","bankLauncher","url","authorizationUrl","readyTimeoutMs","currentState","loading","reportPageMounted","phase","watchForReadiness","state","subscribe","listener","add","delete","handleBridgeMessage","raw","message","info","isPagePresented","type","stopWatchingForReadiness","moveTo","hosted","attempt","openBank","cancelled","failed","errorCode","code","handleReturn","uri","outcome","report","undefined","warning","succeeded","abandoned","failToLoad","severe","unreachable","retry","giveUp","abandon","dispose","clear","readyTimer","setTimeout","clearTimeout","redirecting","awaitingCallback","next"],"sourceRoot":"../../../../src","sources":["core/services/hosted-flow-controller.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Where a hosted payment has got to.
5
+ *
6
+ * The phases the payer spends most of their time in — choosing a bank, reading
7
+ * the consent, confirming the payee — are all `hosted`: they happen inside the
8
+ * page, which does not report them, and the SDK has nothing to decide there.
9
+ */
10
+
11
+ /** Immutable snapshot of a hosted payment. */
12
+
13
+ const TERMINAL_PHASES = new Set(['succeeded', 'failed', 'cancelled', 'abandoned']);
14
+ export function isTerminalPhase(phase) {
15
+ return TERMINAL_PHASES.has(phase);
16
+ }
17
+
18
+ /** Factories for each phase, so no caller assembles a state by hand. */
19
+ export const HostedFlowStates = {
20
+ loading(reference, attempt = 1) {
21
+ return {
22
+ phase: 'loading',
23
+ reference,
24
+ attempt
25
+ };
26
+ },
27
+ hosted(reference, attempt = 1) {
28
+ return {
29
+ phase: 'hosted',
30
+ reference,
31
+ attempt
32
+ };
33
+ },
34
+ unreachable(reference, attempt = 1) {
35
+ return {
36
+ phase: 'unreachable',
37
+ reference,
38
+ attempt
39
+ };
40
+ },
41
+ redirecting(reference, attempt = 1) {
42
+ return {
43
+ phase: 'redirecting',
44
+ reference,
45
+ attempt
46
+ };
47
+ },
48
+ awaitingCallback(reference, attempt = 1) {
49
+ return {
50
+ phase: 'awaitingCallback',
51
+ reference,
52
+ attempt
53
+ };
54
+ },
55
+ succeeded(args) {
56
+ return {
57
+ phase: 'succeeded',
58
+ reference: args.reference,
59
+ attempt: args.attempt ?? 1,
60
+ ...(args.report ? {
61
+ report: args.report
62
+ } : {})
63
+ };
64
+ },
65
+ failed(args) {
66
+ return {
67
+ phase: 'failed',
68
+ reference: args.reference,
69
+ errorCode: args.errorCode,
70
+ attempt: args.attempt ?? 1,
71
+ ...(args.report ? {
72
+ report: args.report
73
+ } : {})
74
+ };
75
+ },
76
+ cancelled(reference, attempt = 1) {
77
+ return {
78
+ phase: 'cancelled',
79
+ reference,
80
+ attempt
81
+ };
82
+ },
83
+ abandoned(reference, attempt = 1) {
84
+ return {
85
+ phase: 'abandoned',
86
+ reference,
87
+ attempt
88
+ };
89
+ }
90
+ };
91
+ //# sourceMappingURL=hosted-flow-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TERMINAL_PHASES","Set","isTerminalPhase","phase","has","HostedFlowStates","loading","reference","attempt","hosted","unreachable","redirecting","awaitingCallback","succeeded","args","report","failed","errorCode","cancelled","abandoned"],"sourceRoot":"../../../../src","sources":["core/services/hosted-flow-state.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBA;;AA8BA,MAAMA,eAA6C,GAAG,IAAIC,GAAG,CAAkB,CAC7E,WAAW,EACX,QAAQ,EACR,WAAW,EACX,WAAW,CACZ,CAAC;AAEF,OAAO,SAASC,eAAeA,CAACC,KAAsB,EAAW;EAC/D,OAAOH,eAAe,CAACI,GAAG,CAACD,KAAK,CAAC;AACnC;;AAEA;AACA,OAAO,MAAME,gBAAgB,GAAG;EAC9BC,OAAOA,CAACC,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IACvD,OAAO;MAAEL,KAAK,EAAE,SAAS;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EACjD,CAAC;EACDC,MAAMA,CAACF,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IACtD,OAAO;MAAEL,KAAK,EAAE,QAAQ;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EAChD,CAAC;EACDE,WAAWA,CAACH,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IAC3D,OAAO;MAAEL,KAAK,EAAE,aAAa;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EACrD,CAAC;EACDG,WAAWA,CAACJ,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IAC3D,OAAO;MAAEL,KAAK,EAAE,aAAa;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EACrD,CAAC;EACDI,gBAAgBA,CAACL,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IAChE,OAAO;MAAEL,KAAK,EAAE,kBAAkB;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EAC1D,CAAC;EACDK,SAASA,CAACC,IAIT,EAAmB;IAClB,OAAO;MACLX,KAAK,EAAE,WAAW;MAClBI,SAAS,EAAEO,IAAI,CAACP,SAAS;MACzBC,OAAO,EAAEM,IAAI,CAACN,OAAO,IAAI,CAAC;MAC1B,IAAIM,IAAI,CAACC,MAAM,GAAG;QAAEA,MAAM,EAAED,IAAI,CAACC;MAAO,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;EACH,CAAC;EACDC,MAAMA,CAACF,IAKN,EAAmB;IAClB,OAAO;MACLX,KAAK,EAAE,QAAQ;MACfI,SAAS,EAAEO,IAAI,CAACP,SAAS;MACzBU,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBT,OAAO,EAAEM,IAAI,CAACN,OAAO,IAAI,CAAC;MAC1B,IAAIM,IAAI,CAACC,MAAM,GAAG;QAAEA,MAAM,EAAED,IAAI,CAACC;MAAO,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;EACH,CAAC;EACDG,SAASA,CAACX,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IACzD,OAAO;MAAEL,KAAK,EAAE,WAAW;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EACnD,CAAC;EACDW,SAASA,CAACZ,SAAiB,EAAEC,OAAO,GAAG,CAAC,EAAmB;IACzD,OAAO;MAAEL,KAAK,EAAE,WAAW;MAAEI,SAAS;MAAEC;IAAQ,CAAC;EACnD;AACF,CAAU","ignoreList":[]}
@@ -5,36 +5,22 @@
5
5
  export { SDK_VERSION } from "./version.js";
6
6
  export * from "./public/index.js";
7
7
 
8
- // Errors
9
- export { PaymentApiError, isPaymentApiError } from "./core/errors/payment-api-error.js";
10
-
11
- // Models (camelCase SDK shapes)
12
-
13
8
  // Bank-return URI helpers (handy for hosts implementing their own deep-link
14
9
  // router that needs to know whether a URI belongs to the payment flow).
15
- export { isPaymentReturnCallbackUri, extractPaymentReturnErrorCode } from "./core/models/payment-return-params.js";
10
+ export { isPaymentReturnCallbackUri, readPaymentReturn, extractPaymentReturnErrorCode, extractPaymentReturnErrorDescription, extractPaymentReturnErrorReason, extractPaymentReturnPaymentId, extractPaymentReturnMandateId, extractPaymentReturnReference, extractPaymentReturnMerchantRef, extractPaymentReturnSignature, isPaymentReturnSuccess, paymentReturnParams } from "./core/models/payment-return-params.js";
16
11
 
17
- // API client
18
- export { LinkApiClient } from "./core/client/link-api-client.js";
19
-
20
- // Controller + state machine
21
- export { PaymentFlowController } from "./core/services/payment-flow-controller.js";
22
- export { PaymentFlowStates } from "./core/services/payment-flow-state.js";
12
+ // Types a caller reads off a result or a state, without the machinery that
13
+ // produces them. The orchestration internals — the controller, the raw webview,
14
+ // the phase hook, the individual screens — are deliberately not exported: they
15
+ // are how `SpareLinkHost` is built, not a surface anyone should build against,
16
+ // and exporting them makes every internal rename a breaking change.
23
17
 
24
18
  // Storage interface
25
19
 
26
- // Consent presenter (UI helper, pure function)
27
- export { presentConsent, summaryFromState, formatAmount, formatCop } from "./core/services/consent-presenter.js";
28
- export { buildMultiPaymentRules, rulesSectionTitle } from "./core/services/multi-payment-rules-presenter.js";
29
- export { isMultiPayment, isInternational, supportsConfirmationOfPayee, resolvedPaymentType, consentUiVariant, PaymentType } from "./core/models/payment-type.js";
30
-
31
- // UI surface
20
+ // UI surface: one component to mount, and the theme to match it.
32
21
  export { SpareLinkHost } from "./ui/spare-link-host.js";
33
- export { PaymentFlowPage } from "./ui/payment-flow-page.js";
34
- export { usePaymentFlowState } from "./ui/hooks/use-payment-flow-state.js";
35
- export { BankSelectionScreen, ConsentDetailsScreen, RedirectHandoffScreen, ResumeProcessingScreen, ResultScreen, MandateSetupSuccessScreen } from "./ui/screens/index.js";
36
22
  export { Colors, Typography, Spacing, FONT_FAMILY } from "./ui/theme/index.js";
37
23
 
38
24
  // Native platform integration
39
- export { collectTelemetry, launchBankRedirect, SecureStorePendingSessionStore, useSpareLinkDeepLinks } from "./internal/index.js";
25
+ export { launchBankRedirect, SecureStorePendingSessionStore, useSpareLinkDeepLinks } from "./internal/index.js";
40
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_VERSION","PaymentApiError","isPaymentApiError","isPaymentReturnCallbackUri","extractPaymentReturnErrorCode","LinkApiClient","PaymentFlowController","PaymentFlowStates","presentConsent","summaryFromState","formatAmount","formatCop","buildMultiPaymentRules","rulesSectionTitle","isMultiPayment","isInternational","supportsConfirmationOfPayee","resolvedPaymentType","consentUiVariant","PaymentType","SpareLinkHost","PaymentFlowPage","usePaymentFlowState","BankSelectionScreen","ConsentDetailsScreen","RedirectHandoffScreen","ResumeProcessingScreen","ResultScreen","MandateSetupSuccessScreen","Colors","Typography","Spacing","FONT_FAMILY","collectTelemetry","launchBankRedirect","SecureStorePendingSessionStore","useSpareLinkDeepLinks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;;AAEA,SAASA,WAAW,QAAQ,cAAW;AAEvC,cAAc,mBAAU;;AAExB;AACA,SAASC,eAAe,EAAEC,iBAAiB,QAAQ,oCAAiC;;AAEpF;;AAoBA;AACA;AACA,SACEC,0BAA0B,EAC1BC,6BAA6B,QACxB,wCAAqC;;AAE5C;AACA,SAASC,aAAa,QAAmC,kCAA+B;;AAExF;AACA,SACEC,qBAAqB,QAGhB,4CAAyC;AAChD,SACEC,iBAAiB,QAGZ,uCAAoC;;AAE3C;;AAGA;AACA,SACEC,cAAc,EACdC,gBAAgB,EAChBC,YAAY,EACZC,SAAS,QAQJ,sCAAmC;AAE1C,SACEC,sBAAsB,EACtBC,iBAAiB,QAEZ,kDAA+C;AAEtD,SACEC,cAAc,EACdC,eAAe,EACfC,2BAA2B,EAC3BC,mBAAmB,EACnBC,gBAAgB,EAChBC,WAAW,QAEN,+BAA4B;;AAEnC;AACA,SACEC,aAAa,QAER,yBAAsB;AAC7B,SAASC,eAAe,QAAmC,2BAAwB;AACnF,SAASC,mBAAmB,QAAQ,sCAAmC;AACvE,SACEC,mBAAmB,EAEnBC,oBAAoB,EAEpBC,qBAAqB,EACrBC,sBAAsB,EAEtBC,YAAY,EAEZC,yBAAyB,QAEpB,uBAAc;AACrB,SAASC,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,QAAQ,qBAAY;;AAErE;AACA,SACEC,gBAAgB,EAChBC,kBAAkB,EAElBC,8BAA8B,EAC9BC,qBAAqB,QAChB,qBAAY","ignoreList":[]}
1
+ {"version":3,"names":["SDK_VERSION","isPaymentReturnCallbackUri","readPaymentReturn","extractPaymentReturnErrorCode","extractPaymentReturnErrorDescription","extractPaymentReturnErrorReason","extractPaymentReturnPaymentId","extractPaymentReturnMandateId","extractPaymentReturnReference","extractPaymentReturnMerchantRef","extractPaymentReturnSignature","isPaymentReturnSuccess","paymentReturnParams","SpareLinkHost","Colors","Typography","Spacing","FONT_FAMILY","launchBankRedirect","SecureStorePendingSessionStore","useSpareLinkDeepLinks"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;;AAEA,SAASA,WAAW,QAAQ,cAAW;AAEvC,cAAc,mBAAU;;AAExB;AACA;AACA,SAEEC,0BAA0B,EAC1BC,iBAAiB,EACjBC,6BAA6B,EAC7BC,oCAAoC,EACpCC,+BAA+B,EAC/BC,6BAA6B,EAC7BC,6BAA6B,EAC7BC,6BAA6B,EAC7BC,+BAA+B,EAC/BC,6BAA6B,EAC7BC,sBAAsB,EACtBC,mBAAmB,QACd,wCAAqC;;AAE5C;AACA;AACA;AACA;AACA;;AAGA;;AAIA;AACA,SAASC,aAAa,QAAiC,yBAAsB;AAC7E,SAASC,MAAM,EAAEC,UAAU,EAAEC,OAAO,EAAEC,WAAW,QAAQ,qBAAY;;AAErE;AACA,SACEC,kBAAkB,EAElBC,8BAA8B,EAC9BC,qBAAqB,QAChB,qBAAY","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ import { parseUrlParts } from "../url-parts.js";
4
+
5
+ /**
6
+ * Messages the hosted payment page sends to this SDK.
7
+ *
8
+ * The contract is one-way. The page never waits on a reply, so a message this
9
+ * version does not recognise is dropped rather than treated as a failure — the
10
+ * page continues, and a newer page stays usable by an older app.
11
+ *
12
+ * The page posts to `window.ReactNativeWebView.postMessage` as a JSON string,
13
+ * which arrives here as `event.nativeEvent.data`.
14
+ */
15
+
16
+ /** The payable page is interactive. */
17
+
18
+ /**
19
+ * A consent exists and the bank must now be opened outside the WebView.
20
+ *
21
+ * Banks commonly refuse to serve their authorization pages inside an embedded
22
+ * browser, and the address bar is what lets a payer tell a real bank page from
23
+ * a convincing copy.
24
+ */
25
+
26
+ /** The payer cancelled, and the request is already rejected server-side. */
27
+
28
+ /** The flow cannot continue. [code] is the key the page itself renders. */
29
+
30
+ /**
31
+ * Parses a message posted by the hosted page.
32
+ *
33
+ * Returns null for anything unrecognised. The message crosses a boundary the
34
+ * SDK does not control, so nothing here trusts its shape — the WebView message
35
+ * channel is shared with every script on the page.
36
+ */
37
+ export function parseHostedBridgeMessage(raw) {
38
+ const message = asRecord(raw);
39
+ if (!message) return null;
40
+ const type = message.type;
41
+ if (typeof type !== 'string') return null;
42
+ switch (type) {
43
+ case 'spare.ready':
44
+ return {
45
+ type: 'ready'
46
+ };
47
+ case 'spare.open_url':
48
+ {
49
+ const url = message.url;
50
+ if (typeof url !== 'string' || !isHttpsUrl(url)) return null;
51
+ return {
52
+ type: 'openUrl',
53
+ url
54
+ };
55
+ }
56
+ case 'spare.cancel':
57
+ return {
58
+ type: 'cancel'
59
+ };
60
+ case 'spare.error':
61
+ {
62
+ const code = message.code;
63
+ if (typeof code !== 'string' || code.trim().length === 0) return null;
64
+ return {
65
+ type: 'error',
66
+ code
67
+ };
68
+ }
69
+ default:
70
+ return null;
71
+ }
72
+ }
73
+
74
+ /**
75
+ * Reads the message out of whatever the WebView handed over.
76
+ *
77
+ * The page stringifies its payload, but a plain object is accepted too so the
78
+ * transport is not the thing that decides whether a valid message is understood.
79
+ */
80
+ function asRecord(raw) {
81
+ if (typeof raw === 'string') {
82
+ try {
83
+ return asRecord(JSON.parse(raw));
84
+ } catch {
85
+ return null;
86
+ }
87
+ }
88
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) return null;
89
+ return raw;
90
+ }
91
+
92
+ /**
93
+ * Whether [url] is an absolute https URL.
94
+ *
95
+ * Required before handing a URL to the OS browser: the page is trusted to name
96
+ * a bank, not to name a scheme that could reach something else on the device.
97
+ * Parsed rather than pattern-matched so `https:/\/evil` and friends cannot pass
98
+ * for an absolute URL.
99
+ */
100
+ function isHttpsUrl(url) {
101
+ const parts = parseUrlParts(url);
102
+ return parts !== null && parts.scheme === 'https' && parts.host.length > 0;
103
+ }
104
+ //# sourceMappingURL=bridge-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["parseUrlParts","parseHostedBridgeMessage","raw","message","asRecord","type","url","isHttpsUrl","code","trim","length","JSON","parse","Array","isArray","parts","scheme","host"],"sourceRoot":"../../../../src","sources":["internal/hosted/bridge-message.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iBAAc;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AAKA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAACC,GAAY,EAA8B;EACjF,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,CAAC;EAC7B,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI;EAEzB,MAAME,IAAI,GAAGF,OAAO,CAACE,IAAI;EACzB,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;EAEzC,QAAQA,IAAI;IACV,KAAK,aAAa;MAChB,OAAO;QAAEA,IAAI,EAAE;MAAQ,CAAC;IAC1B,KAAK,gBAAgB;MAAE;QACrB,MAAMC,GAAG,GAAGH,OAAO,CAACG,GAAG;QACvB,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACC,UAAU,CAACD,GAAG,CAAC,EAAE,OAAO,IAAI;QAC5D,OAAO;UAAED,IAAI,EAAE,SAAS;UAAEC;QAAI,CAAC;MACjC;IACA,KAAK,cAAc;MACjB,OAAO;QAAED,IAAI,EAAE;MAAS,CAAC;IAC3B,KAAK,aAAa;MAAE;QAClB,MAAMG,IAAI,GAAGL,OAAO,CAACK,IAAI;QACzB,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;QACrE,OAAO;UAAEL,IAAI,EAAE,OAAO;UAAEG;QAAK,CAAC;MAChC;IACA;MACE,OAAO,IAAI;EACf;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASJ,QAAQA,CAACF,GAAY,EAAkC;EAC9D,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,IAAI;MACF,OAAOE,QAAQ,CAACO,IAAI,CAACC,KAAK,CAACV,GAAG,CAAY,CAAC;IAC7C,CAAC,CAAC,MAAM;MACN,OAAO,IAAI;IACb;EACF;EACA,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,IAAIW,KAAK,CAACC,OAAO,CAACZ,GAAG,CAAC,EAAE,OAAO,IAAI;EAC9E,OAAOA,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASK,UAAUA,CAACD,GAAW,EAAW;EACxC,MAAMS,KAAK,GAAGf,aAAa,CAACM,GAAG,CAAC;EAChC,OAAOS,KAAK,KAAK,IAAI,IAAIA,KAAK,CAACC,MAAM,KAAK,OAAO,IAAID,KAAK,CAACE,IAAI,CAACP,MAAM,GAAG,CAAC;AAC5E","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import { isSameOrigin } from "../url-parts.js";
4
+
5
+ /**
6
+ * Origin channel this SDK identifies as to the hosted page.
7
+ *
8
+ * The same value must be recorded on the payment request by the merchant's
9
+ * backend, because the bank redirect that completes a payment carries no query
10
+ * string of ours and the return path is decided from the stored row.
11
+ */
12
+ export const HOSTED_ORIGIN_CHANNEL = 'sdk_react_native';
13
+
14
+ /**
15
+ * Builds the hosted payment page URL for a payment request reference.
16
+ *
17
+ * The reference is the only credential the page needs; everything else is
18
+ * resolved server-side from the row it names.
19
+ */
20
+ export function buildHostedPaymentUrl(args) {
21
+ const base = args.baseUrl.trim().replace(/\/+$/, '');
22
+ const reference = encodeURIComponent(args.reference.trim());
23
+ return `${base}/link/payment/${reference}?channel=${HOSTED_ORIGIN_CHANNEL}`;
24
+ }
25
+
26
+ /**
27
+ * Whether [url] belongs to the hosted origin derived from [baseUrl].
28
+ *
29
+ * The WebView loads only the hosted origin. Bank authentication deliberately
30
+ * happens outside it, so anything else navigating in-frame is refused rather
31
+ * than followed.
32
+ */
33
+ export function isHostedOriginUrl(args) {
34
+ return isSameOrigin(args.baseUrl, args.url);
35
+ }
36
+ //# sourceMappingURL=hosted-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isSameOrigin","HOSTED_ORIGIN_CHANNEL","buildHostedPaymentUrl","args","base","baseUrl","trim","replace","reference","encodeURIComponent","isHostedOriginUrl","url"],"sourceRoot":"../../../../src","sources":["internal/hosted/hosted-url.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,iBAAc;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAG,kBAAkB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,IAA4C,EAAU;EAC1F,MAAMC,IAAI,GAAGD,IAAI,CAACE,OAAO,CAACC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACpD,MAAMC,SAAS,GAAGC,kBAAkB,CAACN,IAAI,CAACK,SAAS,CAACF,IAAI,CAAC,CAAC,CAAC;EAC3D,OAAO,GAAGF,IAAI,iBAAiBI,SAAS,YAAYP,qBAAqB,EAAE;AAC7E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,iBAAiBA,CAACP,IAAsC,EAAW;EACjF,OAAOH,YAAY,CAACG,IAAI,CAACE,OAAO,EAAEF,IAAI,CAACQ,GAAG,CAAC;AAC7C","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- export { collectTelemetry } from "./telemetry-collector.js";
4
3
  export { launchBankRedirect } from "./bank-redirect.js";
5
4
  export { SecureStorePendingSessionStore } from "./secure-store-pending-session-store.js";
6
5
  export { useSpareLinkDeepLinks } from "./deep-link-listener.js";
@@ -1 +1 @@
1
- {"version":3,"names":["collectTelemetry","launchBankRedirect","SecureStorePendingSessionStore","useSpareLinkDeepLinks"],"sourceRoot":"../../../src","sources":["internal/index.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,0BAAuB;AACxD,SAASC,kBAAkB,QAA+B,oBAAiB;AAC3E,SAASC,8BAA8B,QAAQ,yCAAsC;AACrF,SAASC,qBAAqB,QAAQ,yBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["launchBankRedirect","SecureStorePendingSessionStore","useSpareLinkDeepLinks"],"sourceRoot":"../../../src","sources":["internal/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAA+B,oBAAiB;AAC3E,SAASC,8BAA8B,QAAQ,yCAAsC;AACrF,SAASC,qBAAqB,QAAQ,yBAAsB","ignoreList":[]}
@@ -1,21 +1,65 @@
1
1
  "use strict";
2
2
 
3
- const SENSITIVE_QUERY_KEYS = new Set(['exchange_code', 'error_description']);
3
+ /**
4
+ * Redacts the query of a bank-return URI before it is logged.
5
+ *
6
+ * Every value goes except the few that describe the outcome rather than identify
7
+ * anyone — see {@link KEPT_KEYS}. Redaction is a denylist by default rather than
8
+ * an allowlist of names to remove: an earlier version named the two keys to
9
+ * redact, so anything else the return ever carried was logged in full, and one of
10
+ * the names it knew (`exchange_code`) is not even in the contract any more.
11
+ *
12
+ * What is worth keeping in a log is the shape of the URI — its scheme, its path,
13
+ * which parameters were present — plus enough to explain the outcome.
14
+ *
15
+ * It also cannot use the global `URL`. React Native's is a stub whose
16
+ * `searchParams` returns a fresh empty instance, so `has()` was always false and
17
+ * this function returned the URI untouched on a device while redacting correctly
18
+ * under Jest, which runs on Node.
19
+ *
20
+ * The query is split here rather than read through `parseQueryParams`, because
21
+ * that decodes values and keeps only the first of a repeated key — fine for
22
+ * reading an outcome, wrong for reproducing a URI whose shape is the point.
23
+ */
4
24
 
5
- /** Redacts sensitive query params before logging bank-return URIs. */
25
+ const REDACTED = '[REDACTED]';
26
+
27
+ /**
28
+ * Parameters whose values are kept, because they say what happened rather than to
29
+ * whom.
30
+ *
31
+ * Redacting these made the log useless for the one question it gets asked. A
32
+ * return that resolves as unresolved does so because of its `status`, and a log
33
+ * reading `status=[REDACTED]` cannot tell anyone which value was not recognised.
34
+ *
35
+ * None of these identifies a payer, a payment or a request: `status` is one of a
36
+ * fixed vocabulary, and `errorCode` and `error` are keys from a fixed list. The
37
+ * identifiers — `reference`, `merchantRef`, `paymentId` — and the signature stay
38
+ * redacted, as does `error_description`, which is prose and could name a person.
39
+ */
40
+ const KEPT_KEYS = new Set(['status', 'errorCode', 'error']);
6
41
  export function redactPaymentReturnUri(uri) {
7
- try {
8
- const parsed = new URL(uri);
9
- let changed = false;
10
- for (const key of SENSITIVE_QUERY_KEYS) {
11
- if (parsed.searchParams.has(key)) {
12
- parsed.searchParams.set(key, '[REDACTED]');
13
- changed = true;
14
- }
15
- }
16
- return changed ? parsed.toString() : uri;
17
- } catch {
18
- return '[invalid-uri]';
19
- }
42
+ const queryStart = uri.indexOf('?');
43
+ const fragmentStart = uri.indexOf('#');
44
+
45
+ // No query and no fragment: nothing here carries a value.
46
+ if (queryStart === -1 && fragmentStart === -1) return uri;
47
+ const queryEnd = fragmentStart !== -1 && fragmentStart > queryStart ? fragmentStart : uri.length;
48
+ const beforeQuery = queryStart === -1 ? uri.slice(0, fragmentStart) : uri.slice(0, queryStart);
49
+ const query = queryStart === -1 ? '' : uri.slice(queryStart + 1, queryEnd);
50
+
51
+ // A fragment is dropped whole. Nothing in this SDK reads one, so its shape is
52
+ // not worth keeping, and a return that ever carried a token in one — as OAuth
53
+ // implicit flows do — must not put it in a log.
54
+ const hadFragment = fragmentStart !== -1;
55
+ const redactedQuery = query.split('&').filter(pair => pair.length > 0).map(pair => {
56
+ const eq = pair.indexOf('=');
57
+ const key = eq === -1 ? pair : pair.slice(0, eq);
58
+ if (KEPT_KEYS.has(key)) return pair;
59
+ return `${key}=${REDACTED}`;
60
+ }).join('&');
61
+ const rebuiltQuery = redactedQuery.length > 0 ? `?${redactedQuery}` : '';
62
+ const rebuiltFragment = hadFragment ? `#${REDACTED}` : '';
63
+ return `${beforeQuery}${rebuiltQuery}${rebuiltFragment}`;
20
64
  }
21
65
  //# sourceMappingURL=redact-uri.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SENSITIVE_QUERY_KEYS","Set","redactPaymentReturnUri","uri","parsed","URL","changed","key","searchParams","has","set","toString"],"sourceRoot":"../../../src","sources":["internal/redact-uri.ts"],"mappings":";;AAAA,MAAMA,oBAAoB,GAAG,IAAIC,GAAG,CAAC,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;;AAE5E;AACA,OAAO,SAASC,sBAAsBA,CAACC,GAAW,EAAU;EAC1D,IAAI;IACF,MAAMC,MAAM,GAAG,IAAIC,GAAG,CAACF,GAAG,CAAC;IAC3B,IAAIG,OAAO,GAAG,KAAK;IACnB,KAAK,MAAMC,GAAG,IAAIP,oBAAoB,EAAE;MACtC,IAAII,MAAM,CAACI,YAAY,CAACC,GAAG,CAACF,GAAG,CAAC,EAAE;QAChCH,MAAM,CAACI,YAAY,CAACE,GAAG,CAACH,GAAG,EAAE,YAAY,CAAC;QAC1CD,OAAO,GAAG,IAAI;MAChB;IACF;IACA,OAAOA,OAAO,GAAGF,MAAM,CAACO,QAAQ,CAAC,CAAC,GAAGR,GAAG;EAC1C,CAAC,CAAC,MAAM;IACN,OAAO,eAAe;EACxB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["REDACTED","KEPT_KEYS","Set","redactPaymentReturnUri","uri","queryStart","indexOf","fragmentStart","queryEnd","length","beforeQuery","slice","query","hadFragment","redactedQuery","split","filter","pair","map","eq","key","has","join","rebuiltQuery","rebuiltFragment"],"sourceRoot":"../../../src","sources":["internal/redact-uri.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMA,QAAQ,GAAG,YAAY;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAA8B,GAAG,IAAIC,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAEhF,OAAO,SAASC,sBAAsBA,CAACC,GAAW,EAAU;EAC1D,MAAMC,UAAU,GAAGD,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC;EACnC,MAAMC,aAAa,GAAGH,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC;;EAEtC;EACA,IAAID,UAAU,KAAK,CAAC,CAAC,IAAIE,aAAa,KAAK,CAAC,CAAC,EAAE,OAAOH,GAAG;EAEzD,MAAMI,QAAQ,GAAGD,aAAa,KAAK,CAAC,CAAC,IAAIA,aAAa,GAAGF,UAAU,GAAGE,aAAa,GAAGH,GAAG,CAACK,MAAM;EAEhG,MAAMC,WAAW,GAAGL,UAAU,KAAK,CAAC,CAAC,GAAGD,GAAG,CAACO,KAAK,CAAC,CAAC,EAAEJ,aAAa,CAAC,GAAGH,GAAG,CAACO,KAAK,CAAC,CAAC,EAAEN,UAAU,CAAC;EAC9F,MAAMO,KAAK,GAAGP,UAAU,KAAK,CAAC,CAAC,GAAG,EAAE,GAAGD,GAAG,CAACO,KAAK,CAACN,UAAU,GAAG,CAAC,EAAEG,QAAQ,CAAC;;EAE1E;EACA;EACA;EACA,MAAMK,WAAW,GAAGN,aAAa,KAAK,CAAC,CAAC;EAExC,MAAMO,aAAa,GAAGF,KAAK,CACxBG,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACR,MAAM,GAAG,CAAC,CAAC,CACjCS,GAAG,CAAED,IAAI,IAAK;IACb,MAAME,EAAE,GAAGF,IAAI,CAACX,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAMc,GAAG,GAAGD,EAAE,KAAK,CAAC,CAAC,GAAGF,IAAI,GAAGA,IAAI,CAACN,KAAK,CAAC,CAAC,EAAEQ,EAAE,CAAC;IAChD,IAAIlB,SAAS,CAACoB,GAAG,CAACD,GAAG,CAAC,EAAE,OAAOH,IAAI;IACnC,OAAO,GAAGG,GAAG,IAAIpB,QAAQ,EAAE;EAC7B,CAAC,CAAC,CACDsB,IAAI,CAAC,GAAG,CAAC;EAEZ,MAAMC,YAAY,GAAGT,aAAa,CAACL,MAAM,GAAG,CAAC,GAAG,IAAIK,aAAa,EAAE,GAAG,EAAE;EACxE,MAAMU,eAAe,GAAGX,WAAW,GAAG,IAAIb,QAAQ,EAAE,GAAG,EAAE;EAEzD,OAAO,GAAGU,WAAW,GAAGa,YAAY,GAAGC,eAAe,EAAE;AAC1D","ignoreList":[]}
@@ -1,20 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Production `PendingSessionStore` backed by expo-secure-store. Persists a
5
- * single in-flight payment session so the SDK can recover after cold start.
4
+ * Production `PendingSessionStore` backed by expo-secure-store. Persists the
5
+ * reference of a single in-flight payment so a cold start knows which payment
6
+ * was under way.
6
7
  */
7
8
 
8
9
  import { createLogger } from "./logger.js";
9
10
  const log = createLogger('SecureStorePendingSessionStore');
10
- const KEYS = {
11
- sessionId: 'spare_link_session_id',
12
- bankId: 'spare_link_bank_id',
13
- authUrl: 'spare_link_auth_url',
14
- consentAt: 'spare_link_consent_at',
15
- recoveryAttempts: 'spare_link_recovery_attempts',
16
- merchantRef: 'spare_link_merchant_ref'
17
- };
11
+ const KEY_REFERENCE = 'spare_link_reference';
12
+
13
+ /**
14
+ * Keys earlier versions wrote, cleared alongside our own.
15
+ *
16
+ * An app upgrading mid-payment would otherwise keep a token and session it can
17
+ * never resolve — the endpoints they addressed are gone — and the secure store
18
+ * outlives the version that wrote to it.
19
+ */
20
+ const RETIRED_KEYS = ['spare_link_token', 'spare_link_session_id', 'spare_link_bank_id', 'spare_link_auth_url', 'spare_link_consent_at', 'spare_link_recovery_attempts', 'spare_link_merchant_ref'];
18
21
  async function defaultLoader() {
19
22
  try {
20
23
  return await import('expo-secure-store');
@@ -54,34 +57,26 @@ export class SecureStorePendingSessionStore {
54
57
  save(record) {
55
58
  return this.enqueueWrite(async () => {
56
59
  const s = await this.module;
57
- await Promise.all([s.setItemAsync(KEYS.sessionId, record.sessionId), s.setItemAsync(KEYS.bankId, record.selectedBankId), s.setItemAsync(KEYS.authUrl, record.authorizationUrl), record.consentAt !== undefined ? s.setItemAsync(KEYS.consentAt, String(record.consentAt)) : s.deleteItemAsync(KEYS.consentAt), s.setItemAsync(KEYS.recoveryAttempts, String(record.recoveryAttempts)), record.merchantRef ? s.setItemAsync(KEYS.merchantRef, record.merchantRef) : s.deleteItemAsync(KEYS.merchantRef)]);
60
+ await s.setItemAsync(KEY_REFERENCE, record.reference);
58
61
  });
59
62
  }
60
63
  async load() {
61
64
  // Wait for any pending writes to settle so we read a consistent snapshot.
62
65
  await this.writeQueue.catch(() => undefined);
63
66
  const s = await this.module;
64
- const [sessionId, bankId, authUrl, consentAtRaw, attemptsRaw, merchantRef] = await Promise.all([s.getItemAsync(KEYS.sessionId), s.getItemAsync(KEYS.bankId), s.getItemAsync(KEYS.authUrl), s.getItemAsync(KEYS.consentAt), s.getItemAsync(KEYS.recoveryAttempts), s.getItemAsync(KEYS.merchantRef)]);
65
- if (!sessionId || !bankId || !authUrl) {
66
- log.fine('load: no pending session found');
67
+ const reference = await s.getItemAsync(KEY_REFERENCE);
68
+ if (!reference) {
69
+ log.fine('load: no pending payment found');
67
70
  return null;
68
71
  }
69
- const consentAt = consentAtRaw ? Number(consentAtRaw) : undefined;
70
- const recoveryAttempts = attemptsRaw ? Number(attemptsRaw) : 0;
71
- const record = {
72
- sessionId,
73
- selectedBankId: bankId,
74
- authorizationUrl: authUrl,
75
- recoveryAttempts: Number.isFinite(recoveryAttempts) ? recoveryAttempts : 0
72
+ return {
73
+ reference
76
74
  };
77
- if (consentAt !== undefined && Number.isFinite(consentAt)) record.consentAt = consentAt;
78
- if (merchantRef) record.merchantRef = merchantRef;
79
- return record;
80
75
  }
81
76
  clear() {
82
77
  return this.enqueueWrite(async () => {
83
78
  const s = await this.module;
84
- await Promise.all([s.deleteItemAsync(KEYS.sessionId), s.deleteItemAsync(KEYS.bankId), s.deleteItemAsync(KEYS.authUrl), s.deleteItemAsync(KEYS.consentAt), s.deleteItemAsync(KEYS.recoveryAttempts), s.deleteItemAsync(KEYS.merchantRef)]);
79
+ await Promise.all([s.deleteItemAsync(KEY_REFERENCE), ...RETIRED_KEYS.map(key => s.deleteItemAsync(key))]);
85
80
  });
86
81
  }
87
82
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createLogger","log","KEYS","sessionId","bankId","authUrl","consentAt","recoveryAttempts","merchantRef","defaultLoader","err","Error","message","String","SecureStorePendingSessionStore","secureStore","writeQueue","Promise","resolve","constructor","moduleLoader","loader","module","enqueueWrite","op","next","then","catch","save","record","s","all","setItemAsync","selectedBankId","authorizationUrl","undefined","deleteItemAsync","load","consentAtRaw","attemptsRaw","getItemAsync","fine","Number","isFinite","clear"],"sourceRoot":"../../../src","sources":["internal/secure-store-pending-session-store.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,QAAQ,aAAU;AAEvC,MAAMC,GAAG,GAAGD,YAAY,CAAC,gCAAgC,CAAC;AAE1D,MAAME,IAAI,GAAG;EACXC,SAAS,EAAE,uBAAuB;EAClCC,MAAM,EAAE,oBAAoB;EAC5BC,OAAO,EAAE,qBAAqB;EAC9BC,SAAS,EAAE,uBAAuB;EAClCC,gBAAgB,EAAE,8BAA8B;EAChDC,WAAW,EAAE;AACf,CAAU;AAQV,eAAeC,aAAaA,CAAA,EAA+B;EACzD,IAAI;IACF,OAAQ,MAAM,MAAM,CAAC,mBAAmB,CAAC;EAC3C,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,0FACED,GAAG,YAAYC,KAAK,GAAGD,GAAG,CAACE,OAAO,GAAGC,MAAM,CAACH,GAAG,CAAC,GAEpD,CAAC;EACH;AACF;AAEA,OAAO,MAAMI,8BAA8B,CAAgC;EACjEC,WAAW,GAAsC,IAAI;EAE7D;AACF;AACA;AACA;EACUC,UAAU,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;;EAErD;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,YAA8C,GAAGX,aAAa,EAAE;IAC1E,IAAI,CAACY,MAAM,GAAGD,YAAY;EAC5B;EAEA,IAAYE,MAAMA,CAAA,EAA+B;IAC/C,IAAI,CAAC,IAAI,CAACP,WAAW,EAAE,IAAI,CAACA,WAAW,GAAG,IAAI,CAACM,MAAM,CAAC,CAAC;IACvD,OAAO,IAAI,CAACN,WAAW;EACzB;;EAEA;EACQQ,YAAYA,CAACC,EAAuB,EAAiB;IAC3D,MAAMC,IAAI,GAAG,IAAI,CAACT,UAAU,CAACU,IAAI,CAACF,EAAE,EAAEA,EAAE,CAAC;IACzC,IAAI,CAACR,UAAU,GAAGS,IAAI,CAACE,KAAK,CAAC,MAAM;MACjC;IAAA,CACD,CAAC;IACF,OAAOF,IAAI;EACb;EAEAG,IAAIA,CAACC,MAA4B,EAAiB;IAChD,OAAO,IAAI,CAACN,YAAY,CAAC,YAAY;MACnC,MAAMO,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;MAC3B,MAAML,OAAO,CAACc,GAAG,CAAC,CAChBD,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACC,SAAS,EAAE0B,MAAM,CAAC1B,SAAS,CAAC,EAChD2B,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACE,MAAM,EAAEyB,MAAM,CAACI,cAAc,CAAC,EAClDH,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACG,OAAO,EAAEwB,MAAM,CAACK,gBAAgB,CAAC,EACrDL,MAAM,CAACvB,SAAS,KAAK6B,SAAS,GAC1BL,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACI,SAAS,EAAEO,MAAM,CAACgB,MAAM,CAACvB,SAAS,CAAC,CAAC,GACxDwB,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACI,SAAS,CAAC,EACrCwB,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACK,gBAAgB,EAAEM,MAAM,CAACgB,MAAM,CAACtB,gBAAgB,CAAC,CAAC,EACtEsB,MAAM,CAACrB,WAAW,GACdsB,CAAC,CAACE,YAAY,CAAC9B,IAAI,CAACM,WAAW,EAAEqB,MAAM,CAACrB,WAAW,CAAC,GACpDsB,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACM,WAAW,CAAC,CACxC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,MAAM6B,IAAIA,CAAA,EAAyC;IACjD;IACA,MAAM,IAAI,CAACrB,UAAU,CAACW,KAAK,CAAC,MAAMQ,SAAS,CAAC;IAC5C,MAAML,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;IAC3B,MAAM,CAACnB,SAAS,EAAEC,MAAM,EAAEC,OAAO,EAAEiC,YAAY,EAAEC,WAAW,EAAE/B,WAAW,CAAC,GAAG,MAAMS,OAAO,CAACc,GAAG,CAAC,CAC7FD,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACC,SAAS,CAAC,EAC9B2B,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACE,MAAM,CAAC,EAC3B0B,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACG,OAAO,CAAC,EAC5ByB,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACI,SAAS,CAAC,EAC9BwB,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACK,gBAAgB,CAAC,EACrCuB,CAAC,CAACU,YAAY,CAACtC,IAAI,CAACM,WAAW,CAAC,CACjC,CAAC;IACF,IAAI,CAACL,SAAS,IAAI,CAACC,MAAM,IAAI,CAACC,OAAO,EAAE;MACrCJ,GAAG,CAACwC,IAAI,CAAC,gCAAgC,CAAC;MAC1C,OAAO,IAAI;IACb;IACA,MAAMnC,SAAS,GAAGgC,YAAY,GAAGI,MAAM,CAACJ,YAAY,CAAC,GAAGH,SAAS;IACjE,MAAM5B,gBAAgB,GAAGgC,WAAW,GAAGG,MAAM,CAACH,WAAW,CAAC,GAAG,CAAC;IAC9D,MAAMV,MAA4B,GAAG;MACnC1B,SAAS;MACT8B,cAAc,EAAE7B,MAAM;MACtB8B,gBAAgB,EAAE7B,OAAO;MACzBE,gBAAgB,EAAEmC,MAAM,CAACC,QAAQ,CAACpC,gBAAgB,CAAC,GAAGA,gBAAgB,GAAG;IAC3E,CAAC;IACD,IAAID,SAAS,KAAK6B,SAAS,IAAIO,MAAM,CAACC,QAAQ,CAACrC,SAAS,CAAC,EAAEuB,MAAM,CAACvB,SAAS,GAAGA,SAAS;IACvF,IAAIE,WAAW,EAAEqB,MAAM,CAACrB,WAAW,GAAGA,WAAW;IACjD,OAAOqB,MAAM;EACf;EAEAe,KAAKA,CAAA,EAAkB;IACrB,OAAO,IAAI,CAACrB,YAAY,CAAC,YAAY;MACnC,MAAMO,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;MAC3B,MAAML,OAAO,CAACc,GAAG,CAAC,CAChBD,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACC,SAAS,CAAC,EACjC2B,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACE,MAAM,CAAC,EAC9B0B,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACG,OAAO,CAAC,EAC/ByB,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACI,SAAS,CAAC,EACjCwB,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACK,gBAAgB,CAAC,EACxCuB,CAAC,CAACM,eAAe,CAAClC,IAAI,CAACM,WAAW,CAAC,CACpC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createLogger","log","KEY_REFERENCE","RETIRED_KEYS","defaultLoader","err","Error","message","String","SecureStorePendingSessionStore","secureStore","writeQueue","Promise","resolve","constructor","moduleLoader","loader","module","enqueueWrite","op","next","then","catch","save","record","s","setItemAsync","reference","load","undefined","getItemAsync","fine","clear","all","deleteItemAsync","map","key"],"sourceRoot":"../../../src","sources":["internal/secure-store-pending-session-store.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAIA,SAASA,YAAY,QAAQ,aAAU;AAEvC,MAAMC,GAAG,GAAGD,YAAY,CAAC,gCAAgC,CAAC;AAE1D,MAAME,aAAa,GAAG,sBAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,YAAY,GAAG,CACnB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,yBAAyB,CACjB;AAQV,eAAeC,aAAaA,CAAA,EAA+B;EACzD,IAAI;IACF,OAAQ,MAAM,MAAM,CAAC,mBAAmB,CAAC;EAC3C,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,0FACED,GAAG,YAAYC,KAAK,GAAGD,GAAG,CAACE,OAAO,GAAGC,MAAM,CAACH,GAAG,CAAC,GAEpD,CAAC;EACH;AACF;AAEA,OAAO,MAAMI,8BAA8B,CAAgC;EACjEC,WAAW,GAAsC,IAAI;EAE7D;AACF;AACA;AACA;EACUC,UAAU,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;;EAErD;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,YAA8C,GAAGX,aAAa,EAAE;IAC1E,IAAI,CAACY,MAAM,GAAGD,YAAY;EAC5B;EAEA,IAAYE,MAAMA,CAAA,EAA+B;IAC/C,IAAI,CAAC,IAAI,CAACP,WAAW,EAAE,IAAI,CAACA,WAAW,GAAG,IAAI,CAACM,MAAM,CAAC,CAAC;IACvD,OAAO,IAAI,CAACN,WAAW;EACzB;;EAEA;EACQQ,YAAYA,CAACC,EAAuB,EAAiB;IAC3D,MAAMC,IAAI,GAAG,IAAI,CAACT,UAAU,CAACU,IAAI,CAACF,EAAE,EAAEA,EAAE,CAAC;IACzC,IAAI,CAACR,UAAU,GAAGS,IAAI,CAACE,KAAK,CAAC,MAAM;MACjC;IAAA,CACD,CAAC;IACF,OAAOF,IAAI;EACb;EAEAG,IAAIA,CAACC,MAA4B,EAAiB;IAChD,OAAO,IAAI,CAACN,YAAY,CAAC,YAAY;MACnC,MAAMO,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;MAC3B,MAAMQ,CAAC,CAACC,YAAY,CAACxB,aAAa,EAAEsB,MAAM,CAACG,SAAS,CAAC;IACvD,CAAC,CAAC;EACJ;EAEA,MAAMC,IAAIA,CAAA,EAAyC;IACjD;IACA,MAAM,IAAI,CAACjB,UAAU,CAACW,KAAK,CAAC,MAAMO,SAAS,CAAC;IAC5C,MAAMJ,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;IAC3B,MAAMU,SAAS,GAAG,MAAMF,CAAC,CAACK,YAAY,CAAC5B,aAAa,CAAC;IACrD,IAAI,CAACyB,SAAS,EAAE;MACd1B,GAAG,CAAC8B,IAAI,CAAC,gCAAgC,CAAC;MAC1C,OAAO,IAAI;IACb;IACA,OAAO;MAAEJ;IAAU,CAAC;EACtB;EAEAK,KAAKA,CAAA,EAAkB;IACrB,OAAO,IAAI,CAACd,YAAY,CAAC,YAAY;MACnC,MAAMO,CAAC,GAAG,MAAM,IAAI,CAACR,MAAM;MAC3B,MAAML,OAAO,CAACqB,GAAG,CAAC,CAChBR,CAAC,CAACS,eAAe,CAAChC,aAAa,CAAC,EAChC,GAAGC,YAAY,CAACgC,GAAG,CAAEC,GAAG,IAAKX,CAAC,CAACS,eAAe,CAACE,GAAG,CAAC,CAAC,CACrD,CAAC;IACJ,CAAC,CAAC;EACJ;AACF","ignoreList":[]}