@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.
- package/README.md +119 -81
- package/lib/commonjs/core/models/payment-return-params.js +245 -20
- package/lib/commonjs/core/models/payment-return-params.js.map +1 -1
- package/lib/commonjs/core/models/pending-session-record.js +2 -0
- package/lib/commonjs/core/models/pending-session-record.js.map +1 -0
- package/lib/commonjs/core/services/hosted-flow-controller.js +333 -0
- package/lib/commonjs/core/services/hosted-flow-controller.js.map +1 -0
- package/lib/commonjs/core/services/hosted-flow-state.js +96 -0
- package/lib/commonjs/core/services/hosted-flow-state.js.map +1 -0
- package/lib/commonjs/index.js +42 -164
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/hosted/bridge-message.js +107 -0
- package/lib/commonjs/internal/hosted/bridge-message.js.map +1 -0
- package/lib/commonjs/internal/hosted/hosted-url.js +41 -0
- package/lib/commonjs/internal/hosted/hosted-url.js.map +1 -0
- package/lib/commonjs/internal/index.js +0 -7
- package/lib/commonjs/internal/index.js.map +1 -1
- package/lib/commonjs/internal/redact-uri.js +59 -15
- package/lib/commonjs/internal/redact-uri.js.map +1 -1
- package/lib/commonjs/internal/secure-store-pending-session-store.js +20 -25
- package/lib/commonjs/internal/secure-store-pending-session-store.js.map +1 -1
- package/lib/commonjs/internal/url-parts.js +145 -0
- package/lib/commonjs/internal/url-parts.js.map +1 -0
- package/lib/commonjs/public/index.js +0 -37
- package/lib/commonjs/public/index.js.map +1 -1
- package/lib/commonjs/public/payment-result.js +16 -4
- package/lib/commonjs/public/payment-result.js.map +1 -1
- package/lib/commonjs/public/recovery-result.js +7 -18
- package/lib/commonjs/public/recovery-result.js.map +1 -1
- package/lib/commonjs/public/spare-link-config.js +41 -16
- package/lib/commonjs/public/spare-link-config.js.map +1 -1
- package/lib/commonjs/public/spare-link-event.js +27 -33
- package/lib/commonjs/public/spare-link-event.js.map +1 -1
- package/lib/commonjs/public/spare-link-instance.js +67 -77
- package/lib/commonjs/public/spare-link-instance.js.map +1 -1
- package/lib/commonjs/public/spare-link-session.js +2 -9
- package/lib/commonjs/public/spare-link-session.js.map +1 -1
- package/lib/commonjs/public/spare-link.js +0 -12
- package/lib/commonjs/public/spare-link.js.map +1 -1
- package/lib/commonjs/ui/hooks/{use-payment-flow-state.js → use-hosted-flow-state.js} +4 -4
- package/lib/commonjs/ui/hooks/use-hosted-flow-state.js.map +1 -0
- package/lib/commonjs/ui/hosted/hosted-payment-page.js +177 -0
- package/lib/commonjs/ui/hosted/hosted-payment-page.js.map +1 -0
- package/lib/commonjs/ui/hosted/hosted-payment-webview.js +168 -0
- package/lib/commonjs/ui/hosted/hosted-payment-webview.js.map +1 -0
- package/lib/commonjs/ui/screens/index.js +3 -17
- package/lib/commonjs/ui/screens/index.js.map +1 -1
- package/lib/commonjs/ui/screens/page-unavailable-screen.js +101 -0
- package/lib/commonjs/ui/screens/page-unavailable-screen.js.map +1 -0
- package/lib/commonjs/ui/spare-link-host.js +220 -234
- package/lib/commonjs/ui/spare-link-host.js.map +1 -1
- package/lib/commonjs/ui/widgets/index.js +3 -10
- package/lib/commonjs/ui/widgets/index.js.map +1 -1
- package/lib/commonjs/version.js +7 -5
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/core/models/payment-return-params.js +235 -20
- package/lib/module/core/models/payment-return-params.js.map +1 -1
- package/lib/module/core/models/pending-session-record.js +2 -0
- package/lib/module/core/models/pending-session-record.js.map +1 -0
- package/lib/module/core/services/hosted-flow-controller.js +328 -0
- package/lib/module/core/services/hosted-flow-controller.js.map +1 -0
- package/lib/module/core/services/hosted-flow-state.js +91 -0
- package/lib/module/core/services/hosted-flow-state.js.map +1 -0
- package/lib/module/index.js +8 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/hosted/bridge-message.js +104 -0
- package/lib/module/internal/hosted/bridge-message.js.map +1 -0
- package/lib/module/internal/hosted/hosted-url.js +36 -0
- package/lib/module/internal/hosted/hosted-url.js.map +1 -0
- package/lib/module/internal/index.js +0 -1
- package/lib/module/internal/index.js.map +1 -1
- package/lib/module/internal/redact-uri.js +59 -15
- package/lib/module/internal/redact-uri.js.map +1 -1
- package/lib/module/internal/secure-store-pending-session-store.js +20 -25
- package/lib/module/internal/secure-store-pending-session-store.js.map +1 -1
- package/lib/module/internal/url-parts.js +139 -0
- package/lib/module/internal/url-parts.js.map +1 -0
- package/lib/module/public/index.js +2 -3
- package/lib/module/public/index.js.map +1 -1
- package/lib/module/public/payment-result.js +16 -4
- package/lib/module/public/payment-result.js.map +1 -1
- package/lib/module/public/recovery-result.js +7 -17
- package/lib/module/public/recovery-result.js.map +1 -1
- package/lib/module/public/spare-link-config.js +42 -15
- package/lib/module/public/spare-link-config.js.map +1 -1
- package/lib/module/public/spare-link-event.js +27 -33
- package/lib/module/public/spare-link-event.js.map +1 -1
- package/lib/module/public/spare-link-instance.js +68 -72
- package/lib/module/public/spare-link-instance.js.map +1 -1
- package/lib/module/public/spare-link-session.js +2 -9
- package/lib/module/public/spare-link-session.js.map +1 -1
- package/lib/module/public/spare-link.js +1 -1
- package/lib/module/public/spare-link.js.map +1 -1
- package/lib/module/ui/hooks/{use-payment-flow-state.js → use-hosted-flow-state.js} +3 -3
- package/lib/module/ui/hooks/use-hosted-flow-state.js.map +1 -0
- package/lib/module/ui/hosted/hosted-payment-page.js +175 -0
- package/lib/module/ui/hosted/hosted-payment-page.js.map +1 -0
- package/lib/module/ui/hosted/hosted-payment-webview.js +163 -0
- package/lib/module/ui/hosted/hosted-payment-webview.js.map +1 -0
- package/lib/module/ui/screens/index.js +1 -3
- package/lib/module/ui/screens/index.js.map +1 -1
- package/lib/module/ui/screens/page-unavailable-screen.js +97 -0
- package/lib/module/ui/screens/page-unavailable-screen.js.map +1 -0
- package/lib/module/ui/spare-link-host.js +221 -236
- package/lib/module/ui/spare-link-host.js.map +1 -1
- package/lib/module/ui/widgets/index.js +1 -2
- package/lib/module/ui/widgets/index.js.map +1 -1
- package/lib/module/version.js +7 -5
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/commonjs/core/models/index.d.ts +1 -123
- package/lib/typescript/commonjs/core/models/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/core/models/payment-return-params.d.ts +91 -8
- package/lib/typescript/commonjs/core/models/payment-return-params.d.ts.map +1 -1
- package/lib/typescript/commonjs/core/models/pending-session-record.d.ts +11 -0
- package/lib/typescript/commonjs/core/models/pending-session-record.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/services/hosted-flow-controller.d.ts +119 -0
- package/lib/typescript/commonjs/core/services/hosted-flow-controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/core/services/hosted-flow-state.d.ts +75 -0
- package/lib/typescript/commonjs/core/services/hosted-flow-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +5 -14
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/internal/hosted/bridge-message.d.ts +44 -0
- package/lib/typescript/commonjs/internal/hosted/bridge-message.d.ts.map +1 -0
- package/lib/typescript/commonjs/internal/hosted/hosted-url.d.ts +30 -0
- package/lib/typescript/commonjs/internal/hosted/hosted-url.d.ts.map +1 -0
- package/lib/typescript/commonjs/internal/index.d.ts +0 -1
- package/lib/typescript/commonjs/internal/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/internal/redact-uri.d.ts +21 -1
- package/lib/typescript/commonjs/internal/redact-uri.d.ts.map +1 -1
- package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts +3 -2
- package/lib/typescript/commonjs/internal/secure-store-pending-session-store.d.ts.map +1 -1
- package/lib/typescript/commonjs/internal/url-parts.d.ts +46 -0
- package/lib/typescript/commonjs/internal/url-parts.d.ts.map +1 -0
- package/lib/typescript/commonjs/public/index.d.ts +4 -6
- package/lib/typescript/commonjs/public/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/payment-result.d.ts +50 -12
- package/lib/typescript/commonjs/public/payment-result.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/recovery-result.d.ts +11 -20
- package/lib/typescript/commonjs/public/recovery-result.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link-config.d.ts +13 -31
- package/lib/typescript/commonjs/public/spare-link-config.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link-event.d.ts +29 -31
- package/lib/typescript/commonjs/public/spare-link-event.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link-host-api.d.ts +1 -12
- package/lib/typescript/commonjs/public/spare-link-host-api.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link-instance.d.ts +26 -20
- package/lib/typescript/commonjs/public/spare-link-instance.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link-session.d.ts +3 -8
- package/lib/typescript/commonjs/public/spare-link-session.d.ts.map +1 -1
- package/lib/typescript/commonjs/public/spare-link.d.ts +1 -1
- package/lib/typescript/commonjs/public/spare-link.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/use-hosted-flow-state.d.ts +9 -0
- package/lib/typescript/commonjs/ui/hooks/use-hosted-flow-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hosted/hosted-payment-page.d.ts +17 -0
- package/lib/typescript/commonjs/ui/hosted/hosted-payment-page.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hosted/hosted-payment-webview.d.ts +43 -0
- package/lib/typescript/commonjs/ui/hosted/hosted-payment-webview.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/index.d.ts +1 -3
- package/lib/typescript/commonjs/ui/screens/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/page-unavailable-screen.d.ts +18 -0
- package/lib/typescript/commonjs/ui/screens/page-unavailable-screen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/spare-link-host.d.ts +4 -5
- package/lib/typescript/commonjs/ui/spare-link-host.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/widgets/index.d.ts +1 -2
- package/lib/typescript/commonjs/ui/widgets/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/version.d.ts +7 -5
- package/lib/typescript/commonjs/version.d.ts.map +1 -1
- package/lib/typescript/module/core/models/index.d.ts +1 -123
- package/lib/typescript/module/core/models/index.d.ts.map +1 -1
- package/lib/typescript/module/core/models/payment-return-params.d.ts +91 -8
- package/lib/typescript/module/core/models/payment-return-params.d.ts.map +1 -1
- package/lib/typescript/module/core/models/pending-session-record.d.ts +11 -0
- package/lib/typescript/module/core/models/pending-session-record.d.ts.map +1 -0
- package/lib/typescript/module/core/services/hosted-flow-controller.d.ts +119 -0
- package/lib/typescript/module/core/services/hosted-flow-controller.d.ts.map +1 -0
- package/lib/typescript/module/core/services/hosted-flow-state.d.ts +75 -0
- package/lib/typescript/module/core/services/hosted-flow-state.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +5 -14
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/internal/hosted/bridge-message.d.ts +44 -0
- package/lib/typescript/module/internal/hosted/bridge-message.d.ts.map +1 -0
- package/lib/typescript/module/internal/hosted/hosted-url.d.ts +30 -0
- package/lib/typescript/module/internal/hosted/hosted-url.d.ts.map +1 -0
- package/lib/typescript/module/internal/index.d.ts +0 -1
- package/lib/typescript/module/internal/index.d.ts.map +1 -1
- package/lib/typescript/module/internal/redact-uri.d.ts +21 -1
- package/lib/typescript/module/internal/redact-uri.d.ts.map +1 -1
- package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts +3 -2
- package/lib/typescript/module/internal/secure-store-pending-session-store.d.ts.map +1 -1
- package/lib/typescript/module/internal/url-parts.d.ts +46 -0
- package/lib/typescript/module/internal/url-parts.d.ts.map +1 -0
- package/lib/typescript/module/public/index.d.ts +4 -6
- package/lib/typescript/module/public/index.d.ts.map +1 -1
- package/lib/typescript/module/public/payment-result.d.ts +50 -12
- package/lib/typescript/module/public/payment-result.d.ts.map +1 -1
- package/lib/typescript/module/public/recovery-result.d.ts +11 -20
- package/lib/typescript/module/public/recovery-result.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link-config.d.ts +13 -31
- package/lib/typescript/module/public/spare-link-config.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link-event.d.ts +29 -31
- package/lib/typescript/module/public/spare-link-event.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link-host-api.d.ts +1 -12
- package/lib/typescript/module/public/spare-link-host-api.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link-instance.d.ts +26 -20
- package/lib/typescript/module/public/spare-link-instance.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link-session.d.ts +3 -8
- package/lib/typescript/module/public/spare-link-session.d.ts.map +1 -1
- package/lib/typescript/module/public/spare-link.d.ts +1 -1
- package/lib/typescript/module/public/spare-link.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/use-hosted-flow-state.d.ts +9 -0
- package/lib/typescript/module/ui/hooks/use-hosted-flow-state.d.ts.map +1 -0
- package/lib/typescript/module/ui/hosted/hosted-payment-page.d.ts +17 -0
- package/lib/typescript/module/ui/hosted/hosted-payment-page.d.ts.map +1 -0
- package/lib/typescript/module/ui/hosted/hosted-payment-webview.d.ts +43 -0
- package/lib/typescript/module/ui/hosted/hosted-payment-webview.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/index.d.ts +1 -3
- package/lib/typescript/module/ui/screens/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/page-unavailable-screen.d.ts +18 -0
- package/lib/typescript/module/ui/screens/page-unavailable-screen.d.ts.map +1 -0
- package/lib/typescript/module/ui/spare-link-host.d.ts +4 -5
- package/lib/typescript/module/ui/spare-link-host.d.ts.map +1 -1
- package/lib/typescript/module/ui/widgets/index.d.ts +1 -2
- package/lib/typescript/module/ui/widgets/index.d.ts.map +1 -1
- package/lib/typescript/module/version.d.ts +7 -5
- package/lib/typescript/module/version.d.ts.map +1 -1
- package/package.json +24 -23
- package/plugins/with-spare-link.js +6 -26
- package/src/core/models/index.ts +1 -139
- package/src/core/models/payment-return-params.ts +269 -21
- package/src/core/models/pending-session-record.ts +10 -0
- package/src/core/services/hosted-flow-controller.ts +374 -0
- package/src/core/services/hosted-flow-state.ts +123 -0
- package/src/index.ts +20 -89
- package/src/internal/hosted/bridge-message.ts +106 -0
- package/src/internal/hosted/hosted-url.ts +33 -0
- package/src/internal/index.ts +0 -1
- package/src/internal/redact-uri.ts +69 -15
- package/src/internal/secure-store-pending-session-store.ts +28 -49
- package/src/internal/url-parts.ts +134 -0
- package/src/public/index.ts +2 -24
- package/src/public/payment-result.ts +50 -12
- package/src/public/recovery-result.ts +16 -25
- package/src/public/spare-link-config.ts +56 -43
- package/src/public/spare-link-event.ts +33 -42
- package/src/public/spare-link-host-api.ts +1 -14
- package/src/public/spare-link-instance.ts +57 -65
- package/src/public/spare-link-session.ts +4 -16
- package/src/public/spare-link.ts +1 -1
- package/src/ui/hooks/use-hosted-flow-state.ts +16 -0
- package/src/ui/hosted/hosted-payment-page.tsx +178 -0
- package/src/ui/hosted/hosted-payment-webview.tsx +164 -0
- package/src/ui/screens/index.ts +4 -6
- package/src/ui/screens/page-unavailable-screen.tsx +94 -0
- package/src/ui/spare-link-host.tsx +227 -247
- package/src/ui/widgets/index.ts +1 -2
- package/src/version.ts +7 -5
- package/CHANGELOG.md +0 -66
- package/lib/commonjs/core/client/link-api-client.js +0 -297
- package/lib/commonjs/core/client/link-api-client.js.map +0 -1
- package/lib/commonjs/core/errors/payment-api-error.js +0 -35
- package/lib/commonjs/core/errors/payment-api-error.js.map +0 -1
- package/lib/commonjs/core/models/link-session-status.js +0 -14
- package/lib/commonjs/core/models/link-session-status.js.map +0 -1
- package/lib/commonjs/core/models/payment-type.js +0 -45
- package/lib/commonjs/core/models/payment-type.js.map +0 -1
- package/lib/commonjs/core/models/wire-mappers.js +0 -277
- package/lib/commonjs/core/models/wire-mappers.js.map +0 -1
- package/lib/commonjs/core/services/consent-presenter.js +0 -150
- package/lib/commonjs/core/services/consent-presenter.js.map +0 -1
- package/lib/commonjs/core/services/execute-resume-if-needed.js +0 -216
- package/lib/commonjs/core/services/execute-resume-if-needed.js.map +0 -1
- package/lib/commonjs/core/services/multi-payment-rules-presenter.js +0 -151
- package/lib/commonjs/core/services/multi-payment-rules-presenter.js.map +0 -1
- package/lib/commonjs/core/services/payment-flow-controller.js +0 -547
- package/lib/commonjs/core/services/payment-flow-controller.js.map +0 -1
- package/lib/commonjs/core/services/payment-flow-state.js +0 -110
- package/lib/commonjs/core/services/payment-flow-state.js.map +0 -1
- package/lib/commonjs/core/services/payment-result-mapper.js +0 -49
- package/lib/commonjs/core/services/payment-result-mapper.js.map +0 -1
- package/lib/commonjs/core/services/presentation-utils.js +0 -11
- package/lib/commonjs/core/services/presentation-utils.js.map +0 -1
- package/lib/commonjs/core/services/redirect-buffer.js +0 -40
- package/lib/commonjs/core/services/redirect-buffer.js.map +0 -1
- package/lib/commonjs/core/services/user-friendly-messages.js +0 -46
- package/lib/commonjs/core/services/user-friendly-messages.js.map +0 -1
- package/lib/commonjs/internal/telemetry-collector.js +0 -80
- package/lib/commonjs/internal/telemetry-collector.js.map +0 -1
- package/lib/commonjs/public/constants.js +0 -21
- package/lib/commonjs/public/constants.js.map +0 -1
- package/lib/commonjs/public/spare-link-callbacks.js +0 -6
- package/lib/commonjs/public/spare-link-callbacks.js.map +0 -1
- package/lib/commonjs/ui/consent/charge-bearer-display.js +0 -99
- package/lib/commonjs/ui/consent/charge-bearer-display.js.map +0 -1
- package/lib/commonjs/ui/consent/consent-accordion.js +0 -94
- package/lib/commonjs/ui/consent/consent-accordion.js.map +0 -1
- package/lib/commonjs/ui/consent/consent-summary-section.js +0 -27
- package/lib/commonjs/ui/consent/consent-summary-section.js.map +0 -1
- package/lib/commonjs/ui/consent/cop-information.js +0 -168
- package/lib/commonjs/ui/consent/cop-information.js.map +0 -1
- package/lib/commonjs/ui/consent/international-payment-summary.js +0 -98
- package/lib/commonjs/ui/consent/international-payment-summary.js.map +0 -1
- package/lib/commonjs/ui/consent/label-value-rows.js +0 -59
- package/lib/commonjs/ui/consent/label-value-rows.js.map +0 -1
- package/lib/commonjs/ui/consent/multi-payment-rules-list.js +0 -130
- package/lib/commonjs/ui/consent/multi-payment-rules-list.js.map +0 -1
- package/lib/commonjs/ui/consent/multi-payment-summary.js +0 -99
- package/lib/commonjs/ui/consent/multi-payment-summary.js.map +0 -1
- package/lib/commonjs/ui/consent/single-payment-summary.js +0 -158
- package/lib/commonjs/ui/consent/single-payment-summary.js.map +0 -1
- package/lib/commonjs/ui/consent/terms-link.js +0 -35
- package/lib/commonjs/ui/consent/terms-link.js.map +0 -1
- package/lib/commonjs/ui/hooks/use-payment-flow-state.js.map +0 -1
- package/lib/commonjs/ui/payment-flow-page.js +0 -235
- package/lib/commonjs/ui/payment-flow-page.js.map +0 -1
- package/lib/commonjs/ui/screens/bank-selection-screen.js +0 -215
- package/lib/commonjs/ui/screens/bank-selection-screen.js.map +0 -1
- package/lib/commonjs/ui/screens/consent-details-screen.js +0 -124
- package/lib/commonjs/ui/screens/consent-details-screen.js.map +0 -1
- package/lib/commonjs/ui/screens/mandate-setup-success-screen.js +0 -79
- package/lib/commonjs/ui/screens/mandate-setup-success-screen.js.map +0 -1
- package/lib/commonjs/ui/widgets/layout-w-header.js +0 -106
- package/lib/commonjs/ui/widgets/layout-w-header.js.map +0 -1
- package/lib/commonjs/ui/widgets/stepper.js +0 -124
- package/lib/commonjs/ui/widgets/stepper.js.map +0 -1
- package/lib/module/core/client/link-api-client.js +0 -292
- package/lib/module/core/client/link-api-client.js.map +0 -1
- package/lib/module/core/errors/payment-api-error.js +0 -29
- package/lib/module/core/errors/payment-api-error.js.map +0 -1
- package/lib/module/core/models/link-session-status.js +0 -10
- package/lib/module/core/models/link-session-status.js.map +0 -1
- package/lib/module/core/models/payment-type.js +0 -36
- package/lib/module/core/models/payment-type.js.map +0 -1
- package/lib/module/core/models/wire-mappers.js +0 -263
- package/lib/module/core/models/wire-mappers.js.map +0 -1
- package/lib/module/core/services/consent-presenter.js +0 -140
- package/lib/module/core/services/consent-presenter.js.map +0 -1
- package/lib/module/core/services/execute-resume-if-needed.js +0 -211
- package/lib/module/core/services/execute-resume-if-needed.js.map +0 -1
- package/lib/module/core/services/multi-payment-rules-presenter.js +0 -146
- package/lib/module/core/services/multi-payment-rules-presenter.js.map +0 -1
- package/lib/module/core/services/payment-flow-controller.js +0 -544
- package/lib/module/core/services/payment-flow-controller.js.map +0 -1
- package/lib/module/core/services/payment-flow-state.js +0 -106
- package/lib/module/core/services/payment-flow-state.js.map +0 -1
- package/lib/module/core/services/payment-result-mapper.js +0 -45
- package/lib/module/core/services/payment-result-mapper.js.map +0 -1
- package/lib/module/core/services/presentation-utils.js +0 -7
- package/lib/module/core/services/presentation-utils.js.map +0 -1
- package/lib/module/core/services/redirect-buffer.js +0 -33
- package/lib/module/core/services/redirect-buffer.js.map +0 -1
- package/lib/module/core/services/user-friendly-messages.js +0 -42
- package/lib/module/core/services/user-friendly-messages.js.map +0 -1
- package/lib/module/internal/telemetry-collector.js +0 -75
- package/lib/module/internal/telemetry-collector.js.map +0 -1
- package/lib/module/public/constants.js +0 -17
- package/lib/module/public/constants.js.map +0 -1
- package/lib/module/public/spare-link-callbacks.js +0 -4
- package/lib/module/public/spare-link-callbacks.js.map +0 -1
- package/lib/module/ui/consent/charge-bearer-display.js +0 -95
- package/lib/module/ui/consent/charge-bearer-display.js.map +0 -1
- package/lib/module/ui/consent/consent-accordion.js +0 -90
- package/lib/module/ui/consent/consent-accordion.js.map +0 -1
- package/lib/module/ui/consent/consent-summary-section.js +0 -23
- package/lib/module/ui/consent/consent-summary-section.js.map +0 -1
- package/lib/module/ui/consent/cop-information.js +0 -165
- package/lib/module/ui/consent/cop-information.js.map +0 -1
- package/lib/module/ui/consent/international-payment-summary.js +0 -94
- package/lib/module/ui/consent/international-payment-summary.js.map +0 -1
- package/lib/module/ui/consent/label-value-rows.js +0 -55
- package/lib/module/ui/consent/label-value-rows.js.map +0 -1
- package/lib/module/ui/consent/multi-payment-rules-list.js +0 -125
- package/lib/module/ui/consent/multi-payment-rules-list.js.map +0 -1
- package/lib/module/ui/consent/multi-payment-summary.js +0 -95
- package/lib/module/ui/consent/multi-payment-summary.js.map +0 -1
- package/lib/module/ui/consent/single-payment-summary.js +0 -154
- package/lib/module/ui/consent/single-payment-summary.js.map +0 -1
- package/lib/module/ui/consent/terms-link.js +0 -31
- package/lib/module/ui/consent/terms-link.js.map +0 -1
- package/lib/module/ui/hooks/use-payment-flow-state.js.map +0 -1
- package/lib/module/ui/payment-flow-page.js +0 -232
- package/lib/module/ui/payment-flow-page.js.map +0 -1
- package/lib/module/ui/screens/bank-selection-screen.js +0 -211
- package/lib/module/ui/screens/bank-selection-screen.js.map +0 -1
- package/lib/module/ui/screens/consent-details-screen.js +0 -120
- package/lib/module/ui/screens/consent-details-screen.js.map +0 -1
- package/lib/module/ui/screens/mandate-setup-success-screen.js +0 -75
- package/lib/module/ui/screens/mandate-setup-success-screen.js.map +0 -1
- package/lib/module/ui/widgets/layout-w-header.js +0 -102
- package/lib/module/ui/widgets/layout-w-header.js.map +0 -1
- package/lib/module/ui/widgets/stepper.js +0 -120
- package/lib/module/ui/widgets/stepper.js.map +0 -1
- package/lib/typescript/commonjs/core/client/link-api-client.d.ts +0 -70
- package/lib/typescript/commonjs/core/client/link-api-client.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts +0 -15
- package/lib/typescript/commonjs/core/errors/payment-api-error.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/models/link-session-status.d.ts +0 -6
- package/lib/typescript/commonjs/core/models/link-session-status.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/models/payment-type.d.ts +0 -18
- package/lib/typescript/commonjs/core/models/payment-type.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/models/wire-mappers.d.ts +0 -19
- package/lib/typescript/commonjs/core/models/wire-mappers.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/consent-presenter.d.ts +0 -67
- package/lib/typescript/commonjs/core/services/consent-presenter.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts +0 -32
- package/lib/typescript/commonjs/core/services/execute-resume-if-needed.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts +0 -9
- package/lib/typescript/commonjs/core/services/multi-payment-rules-presenter.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts +0 -146
- package/lib/typescript/commonjs/core/services/payment-flow-controller.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts +0 -64
- package/lib/typescript/commonjs/core/services/payment-flow-state.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts +0 -5
- package/lib/typescript/commonjs/core/services/payment-result-mapper.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/presentation-utils.d.ts +0 -5
- package/lib/typescript/commonjs/core/services/presentation-utils.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts +0 -6
- package/lib/typescript/commonjs/core/services/redirect-buffer.d.ts.map +0 -1
- package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts +0 -6
- package/lib/typescript/commonjs/core/services/user-friendly-messages.d.ts.map +0 -1
- package/lib/typescript/commonjs/internal/telemetry-collector.d.ts +0 -2
- package/lib/typescript/commonjs/internal/telemetry-collector.d.ts.map +0 -1
- package/lib/typescript/commonjs/public/constants.d.ts +0 -12
- package/lib/typescript/commonjs/public/constants.d.ts.map +0 -1
- package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts +0 -14
- package/lib/typescript/commonjs/public/spare-link-callbacks.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts +0 -5
- package/lib/typescript/commonjs/ui/consent/charge-bearer-display.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts +0 -10
- package/lib/typescript/commonjs/ui/consent/consent-accordion.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts +0 -6
- package/lib/typescript/commonjs/ui/consent/consent-summary-section.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/cop-information.d.ts +0 -6
- package/lib/typescript/commonjs/ui/consent/cop-information.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts +0 -6
- package/lib/typescript/commonjs/ui/consent/international-payment-summary.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts +0 -10
- package/lib/typescript/commonjs/ui/consent/label-value-rows.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts +0 -15
- package/lib/typescript/commonjs/ui/consent/multi-payment-rules-list.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts +0 -6
- package/lib/typescript/commonjs/ui/consent/multi-payment-summary.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts +0 -6
- package/lib/typescript/commonjs/ui/consent/single-payment-summary.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/consent/terms-link.d.ts +0 -2
- package/lib/typescript/commonjs/ui/consent/terms-link.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts +0 -9
- package/lib/typescript/commonjs/ui/hooks/use-payment-flow-state.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/payment-flow-page.d.ts +0 -20
- package/lib/typescript/commonjs/ui/payment-flow-page.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts +0 -15
- package/lib/typescript/commonjs/ui/screens/bank-selection-screen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts +0 -13
- package/lib/typescript/commonjs/ui/screens/consent-details-screen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts +0 -10
- package/lib/typescript/commonjs/ui/screens/mandate-setup-success-screen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts +0 -20
- package/lib/typescript/commonjs/ui/widgets/layout-w-header.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/widgets/stepper.d.ts +0 -15
- package/lib/typescript/commonjs/ui/widgets/stepper.d.ts.map +0 -1
- package/lib/typescript/module/core/client/link-api-client.d.ts +0 -70
- package/lib/typescript/module/core/client/link-api-client.d.ts.map +0 -1
- package/lib/typescript/module/core/errors/payment-api-error.d.ts +0 -15
- package/lib/typescript/module/core/errors/payment-api-error.d.ts.map +0 -1
- package/lib/typescript/module/core/models/link-session-status.d.ts +0 -6
- package/lib/typescript/module/core/models/link-session-status.d.ts.map +0 -1
- package/lib/typescript/module/core/models/payment-type.d.ts +0 -18
- package/lib/typescript/module/core/models/payment-type.d.ts.map +0 -1
- package/lib/typescript/module/core/models/wire-mappers.d.ts +0 -19
- package/lib/typescript/module/core/models/wire-mappers.d.ts.map +0 -1
- package/lib/typescript/module/core/services/consent-presenter.d.ts +0 -67
- package/lib/typescript/module/core/services/consent-presenter.d.ts.map +0 -1
- package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts +0 -32
- package/lib/typescript/module/core/services/execute-resume-if-needed.d.ts.map +0 -1
- package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts +0 -9
- package/lib/typescript/module/core/services/multi-payment-rules-presenter.d.ts.map +0 -1
- package/lib/typescript/module/core/services/payment-flow-controller.d.ts +0 -146
- package/lib/typescript/module/core/services/payment-flow-controller.d.ts.map +0 -1
- package/lib/typescript/module/core/services/payment-flow-state.d.ts +0 -64
- package/lib/typescript/module/core/services/payment-flow-state.d.ts.map +0 -1
- package/lib/typescript/module/core/services/payment-result-mapper.d.ts +0 -5
- package/lib/typescript/module/core/services/payment-result-mapper.d.ts.map +0 -1
- package/lib/typescript/module/core/services/presentation-utils.d.ts +0 -5
- package/lib/typescript/module/core/services/presentation-utils.d.ts.map +0 -1
- package/lib/typescript/module/core/services/redirect-buffer.d.ts +0 -6
- package/lib/typescript/module/core/services/redirect-buffer.d.ts.map +0 -1
- package/lib/typescript/module/core/services/user-friendly-messages.d.ts +0 -6
- package/lib/typescript/module/core/services/user-friendly-messages.d.ts.map +0 -1
- package/lib/typescript/module/internal/telemetry-collector.d.ts +0 -2
- package/lib/typescript/module/internal/telemetry-collector.d.ts.map +0 -1
- package/lib/typescript/module/public/constants.d.ts +0 -12
- package/lib/typescript/module/public/constants.d.ts.map +0 -1
- package/lib/typescript/module/public/spare-link-callbacks.d.ts +0 -14
- package/lib/typescript/module/public/spare-link-callbacks.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts +0 -5
- package/lib/typescript/module/ui/consent/charge-bearer-display.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/consent-accordion.d.ts +0 -10
- package/lib/typescript/module/ui/consent/consent-accordion.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/consent-summary-section.d.ts +0 -6
- package/lib/typescript/module/ui/consent/consent-summary-section.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/cop-information.d.ts +0 -6
- package/lib/typescript/module/ui/consent/cop-information.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/international-payment-summary.d.ts +0 -6
- package/lib/typescript/module/ui/consent/international-payment-summary.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/label-value-rows.d.ts +0 -10
- package/lib/typescript/module/ui/consent/label-value-rows.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts +0 -15
- package/lib/typescript/module/ui/consent/multi-payment-rules-list.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts +0 -6
- package/lib/typescript/module/ui/consent/multi-payment-summary.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/single-payment-summary.d.ts +0 -6
- package/lib/typescript/module/ui/consent/single-payment-summary.d.ts.map +0 -1
- package/lib/typescript/module/ui/consent/terms-link.d.ts +0 -2
- package/lib/typescript/module/ui/consent/terms-link.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts +0 -9
- package/lib/typescript/module/ui/hooks/use-payment-flow-state.d.ts.map +0 -1
- package/lib/typescript/module/ui/payment-flow-page.d.ts +0 -20
- package/lib/typescript/module/ui/payment-flow-page.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts +0 -15
- package/lib/typescript/module/ui/screens/bank-selection-screen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/consent-details-screen.d.ts +0 -13
- package/lib/typescript/module/ui/screens/consent-details-screen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts +0 -10
- package/lib/typescript/module/ui/screens/mandate-setup-success-screen.d.ts.map +0 -1
- package/lib/typescript/module/ui/widgets/layout-w-header.d.ts +0 -20
- package/lib/typescript/module/ui/widgets/layout-w-header.d.ts.map +0 -1
- package/lib/typescript/module/ui/widgets/stepper.d.ts +0 -15
- package/lib/typescript/module/ui/widgets/stepper.d.ts.map +0 -1
- package/src/core/client/link-api-client.ts +0 -414
- package/src/core/errors/payment-api-error.ts +0 -35
- package/src/core/models/link-session-status.ts +0 -7
- package/src/core/models/payment-type.ts +0 -54
- package/src/core/models/wire-mappers.ts +0 -315
- package/src/core/services/consent-presenter.ts +0 -213
- package/src/core/services/execute-resume-if-needed.ts +0 -243
- package/src/core/services/multi-payment-rules-presenter.ts +0 -158
- package/src/core/services/payment-flow-controller.ts +0 -607
- package/src/core/services/payment-flow-state.ts +0 -124
- package/src/core/services/payment-result-mapper.ts +0 -41
- package/src/core/services/presentation-utils.ts +0 -4
- package/src/core/services/redirect-buffer.ts +0 -34
- package/src/core/services/user-friendly-messages.ts +0 -39
- package/src/internal/telemetry-collector.ts +0 -90
- package/src/public/constants.ts +0 -14
- package/src/public/spare-link-callbacks.ts +0 -20
- package/src/ui/consent/charge-bearer-display.tsx +0 -68
- package/src/ui/consent/consent-accordion.tsx +0 -89
- package/src/ui/consent/consent-summary-section.tsx +0 -19
- package/src/ui/consent/cop-information.tsx +0 -121
- package/src/ui/consent/international-payment-summary.tsx +0 -83
- package/src/ui/consent/label-value-rows.tsx +0 -50
- package/src/ui/consent/multi-payment-rules-list.tsx +0 -138
- package/src/ui/consent/multi-payment-summary.tsx +0 -82
- package/src/ui/consent/single-payment-summary.tsx +0 -123
- package/src/ui/consent/terms-link.tsx +0 -27
- package/src/ui/hooks/use-payment-flow-state.ts +0 -16
- package/src/ui/payment-flow-page.tsx +0 -254
- package/src/ui/screens/bank-selection-screen.tsx +0 -209
- package/src/ui/screens/consent-details-screen.tsx +0 -106
- package/src/ui/screens/mandate-setup-success-screen.tsx +0 -72
- package/src/ui/widgets/layout-w-header.tsx +0 -89
- package/src/ui/widgets/stepper.tsx +0 -126
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { PaymentReturnReport } from '../models/payment-return-params.js';
|
|
2
|
+
/**
|
|
3
|
+
* Where a hosted payment has got to.
|
|
4
|
+
*
|
|
5
|
+
* The phases the payer spends most of their time in — choosing a bank, reading
|
|
6
|
+
* the consent, confirming the payee — are all `hosted`: they happen inside the
|
|
7
|
+
* page, which does not report them, and the SDK has nothing to decide there.
|
|
8
|
+
*/
|
|
9
|
+
export type HostedFlowPhase =
|
|
10
|
+
/** The page is being fetched. Nothing is interactive yet. */
|
|
11
|
+
'loading'
|
|
12
|
+
/** The page is interactive and the payer is working through it. */
|
|
13
|
+
| 'hosted'
|
|
14
|
+
/**
|
|
15
|
+
* The page could not be loaded, or loaded and never became interactive.
|
|
16
|
+
*
|
|
17
|
+
* Deliberately not terminal. Nothing has been attempted — no consent, no bank,
|
|
18
|
+
* no money — so the payer is offered the page again rather than told their
|
|
19
|
+
* payment failed, and the flow stays open while they decide.
|
|
20
|
+
*/
|
|
21
|
+
| 'unreachable'
|
|
22
|
+
/** A consent exists and the bank is being opened outside the WebView. */
|
|
23
|
+
| 'redirecting'
|
|
24
|
+
/** The bank has the payer. The next thing to happen is a deep link home. */
|
|
25
|
+
| 'awaitingCallback' | 'succeeded' | 'failed' | 'cancelled'
|
|
26
|
+
/** The payer left before the flow resolved either way. */
|
|
27
|
+
| 'abandoned';
|
|
28
|
+
/** Immutable snapshot of a hosted payment. */
|
|
29
|
+
export interface HostedFlowState {
|
|
30
|
+
readonly phase: HostedFlowPhase;
|
|
31
|
+
/**
|
|
32
|
+
* The payment request this flow is paying. Also what the merchant's backend
|
|
33
|
+
* reads the authoritative result by.
|
|
34
|
+
*/
|
|
35
|
+
readonly reference: string;
|
|
36
|
+
/**
|
|
37
|
+
* Everything the return deep link reported — the merchant's reference, the
|
|
38
|
+
* payment id, the signature, the failure detail.
|
|
39
|
+
*
|
|
40
|
+
* Carried whole so a parameter added to the return contract reaches the caller
|
|
41
|
+
* without threading a new field through every factory below.
|
|
42
|
+
*/
|
|
43
|
+
readonly report?: PaymentReturnReport;
|
|
44
|
+
readonly errorCode?: string;
|
|
45
|
+
/**
|
|
46
|
+
* How many times the page has been asked for, starting at 1.
|
|
47
|
+
*
|
|
48
|
+
* The screen keys the webview on this so a retry mounts a fresh one; reusing
|
|
49
|
+
* the failed instance would show the payer the same dead frame.
|
|
50
|
+
*/
|
|
51
|
+
readonly attempt: number;
|
|
52
|
+
}
|
|
53
|
+
export declare function isTerminalPhase(phase: HostedFlowPhase): boolean;
|
|
54
|
+
/** Factories for each phase, so no caller assembles a state by hand. */
|
|
55
|
+
export declare const HostedFlowStates: {
|
|
56
|
+
readonly loading: (reference: string, attempt?: number) => HostedFlowState;
|
|
57
|
+
readonly hosted: (reference: string, attempt?: number) => HostedFlowState;
|
|
58
|
+
readonly unreachable: (reference: string, attempt?: number) => HostedFlowState;
|
|
59
|
+
readonly redirecting: (reference: string, attempt?: number) => HostedFlowState;
|
|
60
|
+
readonly awaitingCallback: (reference: string, attempt?: number) => HostedFlowState;
|
|
61
|
+
readonly succeeded: (args: {
|
|
62
|
+
reference: string;
|
|
63
|
+
report?: PaymentReturnReport;
|
|
64
|
+
attempt?: number;
|
|
65
|
+
}) => HostedFlowState;
|
|
66
|
+
readonly failed: (args: {
|
|
67
|
+
reference: string;
|
|
68
|
+
errorCode: string;
|
|
69
|
+
report?: PaymentReturnReport;
|
|
70
|
+
attempt?: number;
|
|
71
|
+
}) => HostedFlowState;
|
|
72
|
+
readonly cancelled: (reference: string, attempt?: number) => HostedFlowState;
|
|
73
|
+
readonly abandoned: (reference: string, attempt?: number) => HostedFlowState;
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=hosted-flow-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-flow-state.d.ts","sourceRoot":"","sources":["../../../../../src/core/services/hosted-flow-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,MAAM,eAAe;AACzB,6DAA6D;AAC3D,SAAS;AACX,mEAAmE;GACjE,QAAQ;AACV;;;;;;GAMG;GACD,aAAa;AACf,yEAAyE;GACvE,aAAa;AACf,4EAA4E;GAC1E,kBAAkB,GAClB,WAAW,GACX,QAAQ,GACR,WAAW;AACb,0DAA0D;GACxD,WAAW,CAAC;AAEhB,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAEtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAE/D;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB;kCACR,MAAM,uBAAgB,eAAe;iCAGtC,MAAM,uBAAgB,eAAe;sCAGhC,MAAM,uBAAgB,eAAe;sCAGrC,MAAM,uBAAgB,eAAe;2CAGhC,MAAM,uBAAgB,eAAe;+BAGjD;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,eAAe;4BAQN;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,mBAAmB,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAG,eAAe;oCASE,MAAM,uBAAgB,eAAe;oCAGrC,MAAM,uBAAgB,eAAe;CAGlD,CAAC"}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
export { SDK_VERSION } from './version.js';
|
|
2
2
|
export * from './public/index.js';
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
5
|
-
export { isPaymentReturnCallbackUri, extractPaymentReturnErrorCode, } from './core/models/payment-return-params.js';
|
|
6
|
-
export { LinkApiClient, type LinkApiClientOptions } from './core/client/link-api-client.js';
|
|
7
|
-
export { PaymentFlowController, type PaymentFlowControllerOptions, type Clock, } from './core/services/payment-flow-controller.js';
|
|
8
|
-
export { PaymentFlowStates, type PaymentFlowPhase, type PaymentFlowState, } from './core/services/payment-flow-state.js';
|
|
3
|
+
export { type PaymentReturnReport, isPaymentReturnCallbackUri, readPaymentReturn, extractPaymentReturnErrorCode, extractPaymentReturnErrorDescription, extractPaymentReturnErrorReason, extractPaymentReturnPaymentId, extractPaymentReturnMandateId, extractPaymentReturnReference, extractPaymentReturnMerchantRef, extractPaymentReturnSignature, isPaymentReturnSuccess, paymentReturnParams, } from './core/models/payment-return-params.js';
|
|
4
|
+
export type { HostedFlowPhase, HostedFlowState } from './core/services/hosted-flow-state.js';
|
|
9
5
|
export type { PendingSessionStore } from './core/services/pending-session-store.js';
|
|
10
|
-
export
|
|
11
|
-
export {
|
|
12
|
-
export { isMultiPayment, isInternational, supportsConfirmationOfPayee, resolvedPaymentType, consentUiVariant, PaymentType, type ConsentUiVariant, } from './core/models/payment-type.js';
|
|
13
|
-
export { SpareLinkHost, type SpareLinkHostProps, } from './ui/spare-link-host.js';
|
|
14
|
-
export { PaymentFlowPage, type PaymentFlowPageProps } from './ui/payment-flow-page.js';
|
|
15
|
-
export { usePaymentFlowState } from './ui/hooks/use-payment-flow-state.js';
|
|
16
|
-
export { BankSelectionScreen, type BankSelectionScreenProps, ConsentDetailsScreen, type ConsentDetailsScreenProps, RedirectHandoffScreen, ResumeProcessingScreen, type ResumeProcessingScreenProps, ResultScreen, type ResultScreenProps, MandateSetupSuccessScreen, type MandateSetupSuccessScreenProps, } from './ui/screens/index.js';
|
|
6
|
+
export type { PendingSessionRecord } from './core/models/index.js';
|
|
7
|
+
export { SpareLinkHost, type SpareLinkHostProps } from './ui/spare-link-host.js';
|
|
17
8
|
export { Colors, Typography, Spacing, FONT_FAMILY } from './ui/theme/index.js';
|
|
18
|
-
export {
|
|
9
|
+
export { launchBankRedirect, type BankRedirectArgs, SecureStorePendingSessionStore, useSpareLinkDeepLinks, } from './internal/index.js';
|
|
19
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAW,CAAC;AAExC,cAAc,mBAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAW,CAAC;AAExC,cAAc,mBAAU,CAAC;AAIzB,OAAO,EACL,KAAK,mBAAmB,EACxB,0BAA0B,EAC1B,iBAAiB,EACjB,6BAA6B,EAC7B,oCAAoC,EACpC,+BAA+B,EAC/B,6BAA6B,EAC7B,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,wCAAqC,CAAC;AAO7C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sCAAmC,CAAC;AAG1F,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAAuC,CAAC;AACjF,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAe,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAsB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAY,CAAC;AAGtE,OAAO,EACL,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,8BAA8B,EAC9B,qBAAqB,GACtB,MAAM,qBAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Messages the hosted payment page sends to this SDK.
|
|
3
|
+
*
|
|
4
|
+
* The contract is one-way. The page never waits on a reply, so a message this
|
|
5
|
+
* version does not recognise is dropped rather than treated as a failure — the
|
|
6
|
+
* page continues, and a newer page stays usable by an older app.
|
|
7
|
+
*
|
|
8
|
+
* The page posts to `window.ReactNativeWebView.postMessage` as a JSON string,
|
|
9
|
+
* which arrives here as `event.nativeEvent.data`.
|
|
10
|
+
*/
|
|
11
|
+
export type HostedBridgeMessage = HostedReady | HostedOpenUrl | HostedCancel | HostedError;
|
|
12
|
+
/** The payable page is interactive. */
|
|
13
|
+
export interface HostedReady {
|
|
14
|
+
readonly type: 'ready';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A consent exists and the bank must now be opened outside the WebView.
|
|
18
|
+
*
|
|
19
|
+
* Banks commonly refuse to serve their authorization pages inside an embedded
|
|
20
|
+
* browser, and the address bar is what lets a payer tell a real bank page from
|
|
21
|
+
* a convincing copy.
|
|
22
|
+
*/
|
|
23
|
+
export interface HostedOpenUrl {
|
|
24
|
+
readonly type: 'openUrl';
|
|
25
|
+
readonly url: string;
|
|
26
|
+
}
|
|
27
|
+
/** The payer cancelled, and the request is already rejected server-side. */
|
|
28
|
+
export interface HostedCancel {
|
|
29
|
+
readonly type: 'cancel';
|
|
30
|
+
}
|
|
31
|
+
/** The flow cannot continue. [code] is the key the page itself renders. */
|
|
32
|
+
export interface HostedError {
|
|
33
|
+
readonly type: 'error';
|
|
34
|
+
readonly code: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parses a message posted by the hosted page.
|
|
38
|
+
*
|
|
39
|
+
* Returns null for anything unrecognised. The message crosses a boundary the
|
|
40
|
+
* SDK does not control, so nothing here trusts its shape — the WebView message
|
|
41
|
+
* channel is shared with every script on the page.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseHostedBridgeMessage(raw: unknown): HostedBridgeMessage | null;
|
|
44
|
+
//# sourceMappingURL=bridge-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-message.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hosted/bridge-message.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,CAAC;AAE3F,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAyBjF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin channel this SDK identifies as to the hosted page.
|
|
3
|
+
*
|
|
4
|
+
* The same value must be recorded on the payment request by the merchant's
|
|
5
|
+
* backend, because the bank redirect that completes a payment carries no query
|
|
6
|
+
* string of ours and the return path is decided from the stored row.
|
|
7
|
+
*/
|
|
8
|
+
export declare const HOSTED_ORIGIN_CHANNEL = "sdk_react_native";
|
|
9
|
+
/**
|
|
10
|
+
* Builds the hosted payment page URL for a payment request reference.
|
|
11
|
+
*
|
|
12
|
+
* The reference is the only credential the page needs; everything else is
|
|
13
|
+
* resolved server-side from the row it names.
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildHostedPaymentUrl(args: {
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
reference: string;
|
|
18
|
+
}): string;
|
|
19
|
+
/**
|
|
20
|
+
* Whether [url] belongs to the hosted origin derived from [baseUrl].
|
|
21
|
+
*
|
|
22
|
+
* The WebView loads only the hosted origin. Bank authentication deliberately
|
|
23
|
+
* happens outside it, so anything else navigating in-frame is refused rather
|
|
24
|
+
* than followed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isHostedOriginUrl(args: {
|
|
27
|
+
baseUrl: string;
|
|
28
|
+
url: string;
|
|
29
|
+
}): boolean;
|
|
30
|
+
//# sourceMappingURL=hosted-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-url.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hosted/hosted-url.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAI1F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAEjF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { collectTelemetry } from './telemetry-collector.js';
|
|
2
1
|
export { launchBankRedirect, type BankRedirectArgs } from './bank-redirect.js';
|
|
3
2
|
export { SecureStorePendingSessionStore } from './secure-store-pending-session-store.js';
|
|
4
3
|
export { useSpareLinkDeepLinks } from './deep-link-listener.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAiB,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAsC,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAsB,CAAC"}
|
|
@@ -1,3 +1,23 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Redacts the query of a bank-return URI before it is logged.
|
|
3
|
+
*
|
|
4
|
+
* Every value goes except the few that describe the outcome rather than identify
|
|
5
|
+
* anyone — see {@link KEPT_KEYS}. Redaction is a denylist by default rather than
|
|
6
|
+
* an allowlist of names to remove: an earlier version named the two keys to
|
|
7
|
+
* redact, so anything else the return ever carried was logged in full, and one of
|
|
8
|
+
* the names it knew (`exchange_code`) is not even in the contract any more.
|
|
9
|
+
*
|
|
10
|
+
* What is worth keeping in a log is the shape of the URI — its scheme, its path,
|
|
11
|
+
* which parameters were present — plus enough to explain the outcome.
|
|
12
|
+
*
|
|
13
|
+
* It also cannot use the global `URL`. React Native's is a stub whose
|
|
14
|
+
* `searchParams` returns a fresh empty instance, so `has()` was always false and
|
|
15
|
+
* this function returned the URI untouched on a device while redacting correctly
|
|
16
|
+
* under Jest, which runs on Node.
|
|
17
|
+
*
|
|
18
|
+
* The query is split here rather than read through `parseQueryParams`, because
|
|
19
|
+
* that decodes values and keeps only the first of a repeated key — fine for
|
|
20
|
+
* reading an outcome, wrong for reproducing a URI whose shape is the point.
|
|
21
|
+
*/
|
|
2
22
|
export declare function redactPaymentReturnUri(uri: string): string;
|
|
3
23
|
//# sourceMappingURL=redact-uri.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact-uri.d.ts","sourceRoot":"","sources":["../../../../src/internal/redact-uri.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redact-uri.d.ts","sourceRoot":"","sources":["../../../../src/internal/redact-uri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAmBH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgC1D"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Production `PendingSessionStore` backed by expo-secure-store. Persists
|
|
3
|
-
* single in-flight payment
|
|
2
|
+
* Production `PendingSessionStore` backed by expo-secure-store. Persists the
|
|
3
|
+
* reference of a single in-flight payment so a cold start knows which payment
|
|
4
|
+
* was under way.
|
|
4
5
|
*/
|
|
5
6
|
import type { PendingSessionRecord } from '../core/models/index.js';
|
|
6
7
|
import type { PendingSessionStore } from '../core/services/pending-session-store.js';
|
|
@@ -1 +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
|
|
1
|
+
{"version":3,"file":"secure-store-pending-session-store.d.ts","sourceRoot":"","sources":["../../../../src/internal/secure-store-pending-session-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAAwC,CAAC;AAwBlF,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;IAO3C,IAAI,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAYlD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CASvB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal URL parsing that does not go through the global `URL`.
|
|
3
|
+
*
|
|
4
|
+
* React Native ships a stub: every component accessor — `protocol`, `hostname`,
|
|
5
|
+
* `port`, `origin`, `search`, `pathname` — throws "not implemented", and
|
|
6
|
+
* `searchParams` returns a fresh empty instance that never reads the URL it was
|
|
7
|
+
* constructed from (`react-native/Libraries/Blob/URL.js`, installed globally by
|
|
8
|
+
* `setUpXHR.js`). Code written against the standard therefore behaves correctly
|
|
9
|
+
* under Jest, which runs on Node's real `URL`, and silently reads nothing on a
|
|
10
|
+
* device.
|
|
11
|
+
*
|
|
12
|
+
* The SDK parses what it needs itself rather than asking the host app to install
|
|
13
|
+
* a polyfill whose presence it cannot verify — an origin check that quietly
|
|
14
|
+
* stops comparing hosts is worse than one that was never written.
|
|
15
|
+
*/
|
|
16
|
+
/** The parts of a URL this SDK compares origins on. */
|
|
17
|
+
export interface UrlParts {
|
|
18
|
+
/** Lower-cased, without the trailing colon. */
|
|
19
|
+
scheme: string;
|
|
20
|
+
/** Lower-cased host, without userinfo. IPv6 hosts keep their brackets. */
|
|
21
|
+
host: string;
|
|
22
|
+
/** The explicit port, or the scheme's default where it has one. */
|
|
23
|
+
port: number | undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Splits [url] into the parts an origin comparison needs, or null if it has no
|
|
27
|
+
* authority to compare.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseUrlParts(url: string): UrlParts | null;
|
|
30
|
+
/**
|
|
31
|
+
* Whether two URLs share a scheme, host and port.
|
|
32
|
+
*
|
|
33
|
+
* Both must carry an authority, so a relative path never matches an absolute
|
|
34
|
+
* URL: `/link/payment/x` names no origin and must not be read as naming this one.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isSameOrigin(a: string, b: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Reads the query string of [url] into a plain object.
|
|
39
|
+
*
|
|
40
|
+
* The first occurrence of a repeated key wins, matching `URLSearchParams.get`.
|
|
41
|
+
* A value the SDK cannot decode is kept in its raw form rather than dropping the
|
|
42
|
+
* parameter: callers compare against known literals, and a mangled value should
|
|
43
|
+
* fail that comparison rather than read as absent.
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseQueryParams(url: string): Record<string, string>;
|
|
46
|
+
//# sourceMappingURL=url-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-parts.d.ts","sourceRoot":"","sources":["../../../../src/internal/url-parts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA0B1D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBpE"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
export { type PaymentEnvironment, type SpareApiTenant, type SpareLinkConfig,
|
|
2
|
-
export { type SpareLinkEvent, type SpareLinkEventType, type SpareLinkInitialized, type
|
|
1
|
+
export { type PaymentEnvironment, type SpareApiTenant, type SpareLinkConfig, defaultBaseUrlFor, tenantCountryCode, resolvedBaseUrl, assertValidConfig, } from './spare-link-config.js';
|
|
2
|
+
export { type SpareLinkEvent, type SpareLinkEventType, type SpareLinkInitialized, type SpareLinkPageReady, type SpareLinkRedirectToBank, type SpareLinkBankCallbackReceived, type SpareLinkSucceeded, type SpareLinkFailed, type SpareLinkCancelled, type SpareLinkAbandoned, SPARE_LINK_EVENT_TYPES, isSpareLinkEvent, SpareLinkEvents, } from './spare-link-event.js';
|
|
3
3
|
export { type PaymentStatus, type PaymentResult, type PaymentSuccess, type PaymentCancelled, type PaymentFailed, type PaymentAbandoned, paymentSuccess, paymentCancelled, paymentFailed, paymentAbandoned, } from './payment-result.js';
|
|
4
|
-
export type {
|
|
5
|
-
export
|
|
6
|
-
export { isSessionRecovered, isNoRecoveryNeeded, isRecoveryAwaitingUser, } from './recovery-result.js';
|
|
4
|
+
export type { RecoveryResult, NoRecoveryReason, NoRecoveryNeeded, SessionRecovered, } from './recovery-result.js';
|
|
5
|
+
export { isSessionRecovered, isNoRecoveryNeeded } from './recovery-result.js';
|
|
7
6
|
export { SpareLinkSession } from './spare-link-session.js';
|
|
8
7
|
export { SpareLink, type SpareLinkOptions } from './spare-link-instance.js';
|
|
9
|
-
export { kMaxRecoveryAttempts, DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_AWAITING_CALLBACK_TIMEOUT_MS, DEFAULT_AWAITING_CALLBACK_POLL_MS, } from './constants.js';
|
|
10
8
|
export { configureSpareLinkLogging, createLogger, type SpareLinkLogLevel, type SpareLinkLogRecord, type SpareLinkLogSink, type SpareLinkLogger, } from '../internal/logger.js';
|
|
11
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +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,
|
|
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,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,wBAAqB,CAAC;AAE7B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,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,uBAAoB,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,qBAAkB,CAAC;AAE1B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,sBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAmB,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAsB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAAuB,CAAC;AAEzE,OAAO,EACL,yBAAyB,EACzB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,uBAAoB,CAAC"}
|
|
@@ -1,26 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Terminal outcome of a payment flow — narrow on the `status` field.
|
|
3
|
+
*
|
|
4
|
+
* Every result here is read off a deep link, which is interceptable by design
|
|
5
|
+
* and names no bank identifiers. It reports what happened rather than attesting
|
|
6
|
+
* to it: confirm with your backend via `GET /payment-requests/{reference}`
|
|
7
|
+
* before acting on one.
|
|
3
8
|
*/
|
|
4
9
|
export type PaymentStatus = 'success' | 'cancelled' | 'failed' | 'abandoned';
|
|
5
10
|
interface PaymentResultBase {
|
|
6
11
|
status: PaymentStatus;
|
|
7
|
-
/** The
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
/** The payment request this flow was paying, and what your backend reads the
|
|
13
|
+
* authoritative result by. */
|
|
14
|
+
reference: string;
|
|
15
|
+
/** The merchant's own reference for the attempt, when the return named one. */
|
|
16
|
+
merchantRef?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Spare's identifier for the payment, present on a reported success.
|
|
19
|
+
*
|
|
20
|
+
* Distinct from `reference`, which names the request. This is what an order
|
|
21
|
+
* records.
|
|
22
|
+
*/
|
|
23
|
+
paymentId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Spare's identifier for a mandate, present when the flow created one.
|
|
26
|
+
*
|
|
27
|
+
* A return names a payment or a mandate, never both. Read whichever is set
|
|
28
|
+
* rather than assuming which the flow produced.
|
|
29
|
+
*/
|
|
30
|
+
mandateId?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The return's signature: an ES256 JWS whose payload is the return URL, every
|
|
33
|
+
* parameter included.
|
|
34
|
+
*
|
|
35
|
+
* The only part of the return that cannot be forged. Verify it against Spare's
|
|
36
|
+
* public key on your backend before acting on the outcome — the SDK holds no
|
|
37
|
+
* keys and passes it through unchecked.
|
|
38
|
+
*/
|
|
39
|
+
signature?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The machine-readable reason a payment did not complete, e.g. `user_cancelled`.
|
|
42
|
+
*
|
|
43
|
+
* Alongside `errorCode`, which is often generic where this is not.
|
|
44
|
+
*/
|
|
45
|
+
errorReason?: string;
|
|
11
46
|
message?: string;
|
|
12
47
|
errorCode?: string;
|
|
13
48
|
resolvedAtMs?: number;
|
|
14
49
|
}
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
50
|
+
/**
|
|
51
|
+
* The return reported a completed payment.
|
|
52
|
+
*
|
|
53
|
+
* Treat this as a prompt to confirm with your backend, not as settlement.
|
|
54
|
+
*/
|
|
18
55
|
export interface PaymentSuccess extends PaymentResultBase {
|
|
19
56
|
status: 'success';
|
|
20
|
-
exchangeCode?: string;
|
|
21
|
-
merchantRef?: string;
|
|
22
|
-
/** API payment type string (e.g. `FixedPeriodicSchedule`), when available. Mirrors Flutter's `paymentType`. */
|
|
23
|
-
paymentType?: string;
|
|
24
57
|
}
|
|
25
58
|
export interface PaymentCancelled extends PaymentResultBase {
|
|
26
59
|
status: 'cancelled';
|
|
@@ -30,7 +63,12 @@ export interface PaymentFailed extends PaymentResultBase {
|
|
|
30
63
|
status: 'failed';
|
|
31
64
|
errorCode: string;
|
|
32
65
|
}
|
|
33
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* The payer left before the flow resolved either way.
|
|
68
|
+
*
|
|
69
|
+
* A payment already at the bank may still complete after this, so it is not a
|
|
70
|
+
* failure — only your backend knows how it ended.
|
|
71
|
+
*/
|
|
34
72
|
export interface PaymentAbandoned extends PaymentResultBase {
|
|
35
73
|
status: 'abandoned';
|
|
36
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-result.d.ts","sourceRoot":"","sources":["../../../../src/public/payment-result.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"payment-result.d.ts","sourceRoot":"","sources":["../../../../src/public/payment-result.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE7E,UAAU,iBAAiB;IACzB,MAAM,EAAE,aAAa,CAAC;IACtB;mCAC+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAIjG,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,cAAc,CAEnF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAEzF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,aAAa,CAEhF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,gBAAgB,CAEzF"}
|
|
@@ -1,36 +1,27 @@
|
|
|
1
1
|
import type { PaymentResult } from './payment-result.js';
|
|
2
2
|
/**
|
|
3
3
|
* Why {@link SpareLink.resumeIfNeeded} did not recover a terminal session.
|
|
4
|
-
* Mirrors Flutter's `NoRecoveryReason`.
|
|
5
|
-
*/
|
|
6
|
-
export type NoRecoveryReason = 'noPendingSession' | 'flowAlreadyActive' | 'persistenceUnavailable';
|
|
7
|
-
/**
|
|
8
|
-
* Outcome of {@link SpareLink.resumeIfNeeded}.
|
|
9
4
|
*
|
|
10
|
-
*
|
|
5
|
+
* `outcomeUnknown` is the one that carries weight: a payment was pending and no
|
|
6
|
+
* return arrived, so **it may have completed**. The SDK holds no credentials and
|
|
7
|
+
* has nothing to ask with — the reference is handed back for your backend to
|
|
8
|
+
* resolve.
|
|
11
9
|
*/
|
|
12
|
-
export type
|
|
13
|
-
/**
|
|
10
|
+
export type NoRecoveryReason = 'noPendingSession' | 'flowAlreadyActive' | 'persistenceUnavailable' | 'outcomeUnknown';
|
|
11
|
+
/** Outcome of {@link SpareLink.resumeIfNeeded}. */
|
|
12
|
+
export type RecoveryResult = NoRecoveryNeeded | SessionRecovered;
|
|
13
|
+
/** No pending payment was resolved to a terminal outcome. */
|
|
14
14
|
export interface NoRecoveryNeeded {
|
|
15
15
|
readonly kind: 'none';
|
|
16
16
|
readonly reason: NoRecoveryReason;
|
|
17
|
+
/** The pending payment's reference, when `reason` is `outcomeUnknown`. */
|
|
18
|
+
readonly reference?: string;
|
|
17
19
|
}
|
|
18
|
-
/** A pending
|
|
20
|
+
/** A pending payment was resolved to a terminal {@link PaymentResult}. */
|
|
19
21
|
export interface SessionRecovered {
|
|
20
22
|
readonly kind: 'recovered';
|
|
21
23
|
readonly result: PaymentResult;
|
|
22
24
|
}
|
|
23
|
-
/**
|
|
24
|
-
* A pending session is non-terminal and the SDK opened its recovery UI —
|
|
25
|
-
* the integrator should treat this as in-progress, not "nothing happened".
|
|
26
|
-
* The terminal outcome arrives later via `SpareLink.events` /
|
|
27
|
-
* `spareLink.emitTerminal`, not as a second `resumeIfNeeded` resolution.
|
|
28
|
-
*/
|
|
29
|
-
export interface RecoveryAwaitingUser {
|
|
30
|
-
readonly kind: 'awaitingUser';
|
|
31
|
-
readonly linkToken: string;
|
|
32
|
-
}
|
|
33
25
|
export declare function isSessionRecovered(r: RecoveryResult): r is SessionRecovered;
|
|
34
26
|
export declare function isNoRecoveryNeeded(r: RecoveryResult): r is NoRecoveryNeeded;
|
|
35
|
-
export declare function isRecoveryAwaitingUser(r: RecoveryResult): r is RecoveryAwaitingUser;
|
|
36
27
|
//# sourceMappingURL=recovery-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-result.d.ts","sourceRoot":"","sources":["../../../../src/public/recovery-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"recovery-result.d.ts","sourceRoot":"","sources":["../../../../src/public/recovery-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAkB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,CAAC;AAErB,mDAAmD;AACnD,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAEjE,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,gBAAgB,CAE3E;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,gBAAgB,CAE3E"}
|
|
@@ -1,49 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Deployment environment for the Spare Link API
|
|
3
|
-
*
|
|
4
|
-
* Each value maps to a default base URL
|
|
5
|
-
* the SDK will hit unless `baseUrl` is overridden in {@link SpareLinkConfig}.
|
|
2
|
+
* Deployment environment for the Spare Link API, which is also where the hosted
|
|
3
|
+
* payment page is served from.
|
|
6
4
|
*/
|
|
7
|
-
export type PaymentEnvironment = 'sandbox' | 'production';
|
|
5
|
+
export type PaymentEnvironment = 'local' | 'dev' | 'sandbox' | 'production';
|
|
8
6
|
export declare function defaultBaseUrlFor(env: PaymentEnvironment): string;
|
|
9
7
|
/** Spare API tenant — one country per tenant. */
|
|
10
8
|
export type SpareApiTenant = 'ksa' | 'uae' | 'bah';
|
|
11
9
|
export declare function tenantCountryCode(t: SpareApiTenant): string;
|
|
12
|
-
/** Configuration
|
|
10
|
+
/** Configuration for a Spare Link instance. */
|
|
13
11
|
export interface SpareLinkConfig {
|
|
14
|
-
/**
|
|
15
|
-
linkToken: string;
|
|
16
|
-
/** Target environment (sandbox vs production). */
|
|
12
|
+
/** Target environment. Selects the host the hosted page is loaded from. */
|
|
17
13
|
environment: PaymentEnvironment;
|
|
18
|
-
/** Tenant (country). */
|
|
19
|
-
tenant: SpareApiTenant;
|
|
20
14
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
15
|
+
* Tenant (country). The hosted flow currently serves UAE only; the value is
|
|
16
|
+
* kept for that selection and for the tenants that follow.
|
|
23
17
|
*/
|
|
18
|
+
tenant: SpareApiTenant;
|
|
19
|
+
/** Override the host. Set for a physical device pointed at a local API. */
|
|
24
20
|
baseUrl?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Inject a custom fetch implementation for advanced cases (cert pinning,
|
|
27
|
-
* request logging). Defaults to `globalThis.fetch`.
|
|
28
|
-
*/
|
|
29
|
-
fetch?: typeof fetch;
|
|
30
|
-
/** Per-request timeout in milliseconds. Defaults to 15000. */
|
|
31
|
-
requestTimeoutMs?: number;
|
|
32
21
|
}
|
|
33
22
|
/** Resolved base URL: explicit `baseUrl` if provided, else the environment default. */
|
|
34
23
|
export declare function resolvedBaseUrl(config: SpareLinkConfig): string;
|
|
35
24
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
25
|
+
* Throws if a config cannot be honoured.
|
|
26
|
+
*
|
|
27
|
+
* Called from {@link SpareLink}'s constructor, so a bad value fails where it was
|
|
28
|
+
* written rather than reaching the webview as a URL nobody meant.
|
|
38
29
|
*/
|
|
39
|
-
export interface SpareLinkResumeConfig {
|
|
40
|
-
environment: PaymentEnvironment;
|
|
41
|
-
tenant: SpareApiTenant;
|
|
42
|
-
baseUrl?: string;
|
|
43
|
-
fetch?: typeof fetch;
|
|
44
|
-
requestTimeoutMs?: number;
|
|
45
|
-
}
|
|
46
|
-
export declare function resolvedResumeBaseUrl(config: SpareLinkResumeConfig): string;
|
|
47
|
-
/** Throws if a SpareLinkConfig is structurally invalid. */
|
|
48
30
|
export declare function assertValidConfig(config: SpareLinkConfig): void;
|
|
49
31
|
//# sourceMappingURL=spare-link-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spare-link-config.d.ts","sourceRoot":"","sources":["../../../../src/public/spare-link-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spare-link-config.d.ts","sourceRoot":"","sources":["../../../../src/public/spare-link-config.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC;AA+B5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAEjE;AAED,iDAAiD;AACjD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAQnD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAE3D;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,2EAA2E;IAC3E,WAAW,EAAE,kBAAkB,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAE/D;AAWD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAU/D"}
|