@wirexapp/card-sdk-core 0.1.0-beta.1 → 0.1.0-beta.3
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/CHANGELOG.md +26 -0
- package/dist/collectElement.d.ts +1 -2
- package/dist/collectElement.d.ts.map +1 -1
- package/dist/collectElement.js.map +1 -1
- package/dist/collectGroup.d.ts.map +1 -1
- package/dist/collectGroup.js.map +1 -1
- package/dist/frameChannel.d.ts +4 -0
- package/dist/frameChannel.d.ts.map +1 -1
- package/dist/frameChannel.js +10 -4
- package/dist/frameChannel.js.map +1 -1
- package/dist/frameUrl.d.ts +1 -1
- package/dist/frameUrl.d.ts.map +1 -1
- package/dist/frameUrl.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +115 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/walletElement.d.ts +73 -0
- package/dist/walletElement.d.ts.map +1 -0
- package/dist/walletElement.js +133 -0
- package/dist/walletElement.js.map +1 -0
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @wirexapp/card-sdk-core
|
|
2
2
|
|
|
3
|
+
## 0.1.0-beta.3
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- da3aa2e: Add wallet top-up (Apple Pay / Google Pay) capability — `@wirexapp/card-wallet-topup-web`.
|
|
8
|
+
|
|
9
|
+
New hosted checkout model per docs/WALLET-TOPUP-DESIGN.md: a Wirex-served frame renders the transaction review (amounts fetched from the backend by estimation id — the host cannot spoof them) and the wallet buttons under Wirex's single merchant identity, so partners need no Apple/Google onboarding. Public API: `checkWalletAvailability()` (Phase-A probe, cached per session) and `createWalletTopUpForm()` (mount / update / destroy, results via callbacks with an execute watchdog and a designed-in `threeDsRequired` fallback into `@wirexapp/card-3ds-web`). React bindings: `useWalletAvailability()` + `<WalletTopUpForm />`. Protocol additions are purely additive within v1 (new init modes + wallet event types). Frame-side backend paths are the frontend contract proposal (§9) pending backend agreement.
|
|
10
|
+
|
|
11
|
+
## 0.1.0-beta.2
|
|
12
|
+
|
|
13
|
+
### Minor Changes
|
|
14
|
+
|
|
15
|
+
- d627675: Reveal copy-button appearance tokens: `copyIconSize`, `colorCopyIcon`,
|
|
16
|
+
`colorCopyIconHover`, `colorCopyIconCopied` (same validated color/length
|
|
17
|
+
grammar as every other token; older frames drop them silently). The frame's
|
|
18
|
+
copy/check glyphs, copied-state timing (2s) and pop-in animation now match
|
|
19
|
+
the Wirex app's native CopyButton.
|
|
20
|
+
|
|
21
|
+
`card-react` additionally re-exports the reveal capability types core does
|
|
22
|
+
not cover (`PciRevealAuth`, `PciRevealElement`, `PciRevealElementConfig`),
|
|
23
|
+
so hosts writing auth helpers can import everything from the one package.
|
|
24
|
+
|
|
25
|
+
New reveal `onCopied` callback (element config + `CardReveal` prop): fires
|
|
26
|
+
when the user copies a row inside the frame, carrying the field name ONLY —
|
|
27
|
+
never the value — so hosts can restore their copy-click analytics.
|
|
28
|
+
|
|
3
29
|
## 0.1.0-beta.1
|
|
4
30
|
|
|
5
31
|
### Minor Changes
|
package/dist/collectElement.d.ts
CHANGED
|
@@ -2,8 +2,7 @@ import type { PciAppearance, PciCollectChangeState, PciCollectProfile, PciFrameS
|
|
|
2
2
|
export interface PciCollectAuth {
|
|
3
3
|
/** Called right before every backend hop so the frame always gets a fresh
|
|
4
4
|
* access token. By design the frame authenticates with the caller's bearer —
|
|
5
|
-
* the
|
|
6
|
-
* its own user's bearer). There is no publishable-key layer. */
|
|
5
|
+
* the host passes its own user's bearer. There is no publishable-key layer. */
|
|
7
6
|
getBearerToken: () => Promise<string>;
|
|
8
7
|
}
|
|
9
8
|
export interface PciCollectElementConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectElement.d.ts","sourceRoot":"","sources":["../src/collectElement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EAEjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"collectElement.d.ts","sourceRoot":"","sources":["../src/collectElement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EAEjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B;;oFAEgF;IAChF,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;4DAC4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC5E,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC7F;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB;IAQvD,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBlD,wDAAwD;IAClD,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAsBjF,8EAA8E;IACxE,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAkBjG,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectElement.js","sourceRoot":"","sources":["../src/collectElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"collectElement.js","sourceRoot":"","sources":["../src/collectElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectGroup.d.ts","sourceRoot":"","sources":["../src/collectGroup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"collectGroup.d.ts","sourceRoot":"","sources":["../src/collectGroup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,aAAa,EAEb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACnD;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;CACjB;AAOD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,mBAAmB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkF;IACzG,OAAO,CAAC,KAAK,CAA2B;gBAE5B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB;IAK3D,2EAA2E;IAC3E,KAAK,CAAC,IAAI,EAAE,mBAAmB,GAAG,eAAe;IAsCjD,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAIb,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAuB3E,sBAAsB,CAAC,MAAM,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAmBjG,OAAO,IAAI,IAAI;CAIhB"}
|
package/dist/collectGroup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectGroup.js","sourceRoot":"","sources":["../src/collectGroup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"collectGroup.js","sourceRoot":"","sources":["../src/collectGroup.ts"],"names":[],"mappings":"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"}
|
package/dist/frameChannel.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export interface PciFrameChannelOptions {
|
|
|
9
9
|
/** Grant `allow="clipboard-write"` — only the reveal frame's in-frame copy
|
|
10
10
|
* buttons need it; collect frames must not (least privilege). */
|
|
11
11
|
allowClipboard?: boolean;
|
|
12
|
+
/** Grant `allow="payment"` — required for `ApplePaySession` / Payment Request
|
|
13
|
+
* in a cross-origin iframe. Wallet frames only (least privilege). */
|
|
14
|
+
allowPayment?: boolean;
|
|
12
15
|
}
|
|
13
16
|
/**
|
|
14
17
|
* Owns one PCI iframe: creates it, verifies every incoming message against
|
|
@@ -26,6 +29,7 @@ export declare class PciFrameChannel {
|
|
|
26
29
|
private destroyed;
|
|
27
30
|
private readonly extraFragment;
|
|
28
31
|
private readonly allowClipboard;
|
|
32
|
+
private readonly allowPayment;
|
|
29
33
|
private readyTimer;
|
|
30
34
|
private readyListener;
|
|
31
35
|
private readyReject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameChannel.d.ts","sourceRoot":"","sources":["../src/frameChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,
|
|
1
|
+
{"version":3,"file":"frameChannel.d.ts","sourceRoot":"","sources":["../src/frameChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AAKpB,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEb,KAAK,EAAE,aAAa;CAKjC;AAOD,6EAA6E;AAC7E,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAQzF,MAAM,WAAW,sBAAsB;IACrC;sEACkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;0EACsE;IACtE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuD;IACjF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsD;IACtF,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAGvC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,aAAa,CAA2D;IAChF,OAAO,CAAC,WAAW,CAAyC;gBAG1D,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC1C,OAAO,GAAE,sBAA2B;IAStC,OAAO,CAAC,mBAAmB;IAO3B,0EAA0E;IAC1E,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;IAInE;yCACqC;IACrC,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyD5C,2DAA2D;IAC3D,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,qBAAqB,EAAE,GAAG,GAAG,SAAS,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA2BvG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,OAAO,IAAI,IAAI;IAoBf,OAAO,CAAC,aAAa;CA2BtB"}
|
package/dist/frameChannel.js
CHANGED
|
@@ -32,6 +32,7 @@ export class PciFrameChannel {
|
|
|
32
32
|
this.frameUrl = frameUrl;
|
|
33
33
|
this.extraFragment = extraFragment;
|
|
34
34
|
this.allowClipboard = options.allowClipboard ?? false;
|
|
35
|
+
this.allowPayment = options.allowPayment ?? false;
|
|
35
36
|
}
|
|
36
37
|
removeReadyListener() {
|
|
37
38
|
if (!this.readyListener)
|
|
@@ -61,10 +62,15 @@ export class PciFrameChannel {
|
|
|
61
62
|
.join('');
|
|
62
63
|
iframe.src = `${this.frameUrl}#channel=${this.channelId}&parent=${encodeURIComponent(window.location.origin)}${extra}`;
|
|
63
64
|
iframe.title = 'Wirex secure card frame';
|
|
64
|
-
//
|
|
65
|
-
// frames
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
// Least-privilege permissions policy: clipboard for reveal's copy buttons,
|
|
66
|
+
// payment for the wallet frames' ApplePaySession / Payment Request. Collect
|
|
67
|
+
// frames get neither.
|
|
68
|
+
const allow = [
|
|
69
|
+
this.allowClipboard ? 'clipboard-write' : null,
|
|
70
|
+
this.allowPayment ? 'payment' : null,
|
|
71
|
+
].filter(Boolean);
|
|
72
|
+
if (allow.length > 0)
|
|
73
|
+
iframe.allow = allow.join('; ');
|
|
68
74
|
iframe.style.border = '0';
|
|
69
75
|
iframe.style.display = 'block';
|
|
70
76
|
iframe.style.width = '100%';
|
package/dist/frameChannel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameChannel.js","sourceRoot":"","sources":["../src/frameChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAIrB,MAAM,
|
|
1
|
+
{"version":3,"file":"frameChannel.js","sourceRoot":"","sources":["../src/frameChannel.ts"],"names":[],"mappings":"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"}
|
package/dist/frameUrl.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export interface PciSdkConfig {
|
|
|
34
34
|
*/
|
|
35
35
|
clientId?: string;
|
|
36
36
|
}
|
|
37
|
-
export type PciFrameDocument = 'collect' | 'collect-field' | 'reveal';
|
|
37
|
+
export type PciFrameDocument = 'collect' | 'collect-field' | 'reveal' | 'wallet-probe' | 'wallet-checkout';
|
|
38
38
|
/** Resolve the frame origin: explicit `frameOrigin` override (local dev) wins,
|
|
39
39
|
* otherwise the named environment (default `'prod'`). Unknown environments
|
|
40
40
|
* throw — a misconfigured host must fail loudly, never fall back silently. */
|
package/dist/frameUrl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameUrl.d.ts","sourceRoot":"","sources":["../src/frameUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;iEACiE;AACjE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAQpD,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0DACsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"frameUrl.d.ts","sourceRoot":"","sources":["../src/frameUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;iEACiE;AACjE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAQpD,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;0DACsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,eAAe,GACf,QAAQ,GACR,cAAc,GACd,iBAAiB,CAAC;AAEtB;;+EAE+E;AAC/E,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,KAAG,MAUzD,CAAC;AAEF;;;2EAG2E;AAC3E,eAAO,MAAM,aAAa,GAAI,QAAQ,YAAY,EAAE,UAAU,gBAAgB,KAAG,MAKhF,CAAC"}
|
package/dist/frameUrl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frameUrl.js","sourceRoot":"","sources":["../src/frameUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,mBAAmB,GAAmC;IAC1D,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,6BAA6B;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"frameUrl.js","sourceRoot":"","sources":["../src/frameUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,mBAAmB,GAAmC;IAC1D,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,6BAA6B;CACpC,CAAC;AAuCF;;+EAE+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAoB,EAAU,EAAE;IACjE,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;IACjD,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,iCAAiC,WAAW,sCAAsC,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;2EAG2E;AAC3E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAoB,EAAE,QAA0B,EAAU,EAAE;IACxF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,OAAO,GAAG,MAAM,GAAG,SAAS,IAAI,QAAQ,QAAQ,KAAK,EAAE,CAAC;AAC1D,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { PciCollectGroup } from './collectGroup.js';
|
|
|
16
16
|
export { PciFrameChannel, PciFrameRequestError } from './frameChannel.js';
|
|
17
17
|
export type { PciEnvironment, PciFrameDocument, PciSdkConfig } from './frameUrl.js';
|
|
18
18
|
export { buildFrameUrl, resolveFrameOrigin } from './frameUrl.js';
|
|
19
|
-
export type { PciAppearance, PciAppearanceVariables, PciBrandBadgeAppearance, PciCardBrand, PciCollectChangeState, PciCollectFieldInitConfig, PciCollectFieldName, PciCollectInitConfig, PciCollectProfile, PciFrameAuth, PciFrameError, PciFrameStrings, PciFrameToHostMessage, PciHostToFrameMessage, PciInitConfig, PciRevealField, PciRevealInitConfig, PciRevealState, PciRevealStatus, PciTokenizeOctRequest, PciTokenizeOctResult, PciTokenizeRequest, PciTokenizeTopUpRequest, PciTokenizeTopUpResult, } from './protocol.js';
|
|
19
|
+
export type { PciAppearance, PciAppearanceVariables, PciBrandBadgeAppearance, PciCardBrand, PciCollectChangeState, PciCollectFieldInitConfig, PciCollectFieldName, PciCollectInitConfig, PciCollectProfile, PciFrameAuth, PciFrameError, PciFrameStrings, PciFrameToHostMessage, PciHostToFrameMessage, PciInitConfig, PciRevealField, PciRevealInitConfig, PciRevealState, PciRevealStatus, PciTokenizeOctRequest, PciTokenizeOctResult, PciTokenizeRequest, PciTokenizeTopUpRequest, PciTokenizeTopUpResult, PciWalletAvailability, PciWalletButtonAppearance, PciWalletCheckoutInitConfig, PciWalletCheckoutState, PciWalletProbeInitConfig, PciWalletSessionRef, PciWalletTopUpResultDto, } from './protocol.js';
|
|
20
20
|
export { PCI_PROTOCOL_VERSION } from './protocol.js';
|
|
21
|
+
export type { PciWalletTopUpElementConfig, PciWalletTopUpResult, PciWalletTopUpSession, } from './walletElement.js';
|
|
22
|
+
export { PciWalletTopUpElement, probeWalletAvailability } from './walletElement.js';
|
|
21
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EACV,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,4 +14,5 @@ export { PciCollectGroup } from './collectGroup.js';
|
|
|
14
14
|
export { PciFrameChannel, PciFrameRequestError } from './frameChannel.js';
|
|
15
15
|
export { buildFrameUrl, resolveFrameOrigin } from './frameUrl.js';
|
|
16
16
|
export { PCI_PROTOCOL_VERSION } from './protocol.js';
|
|
17
|
+
export { PciWalletTopUpElement, probeWalletAvailability } from './walletElement.js';
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAkC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMlD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -112,6 +112,20 @@ export interface PciAppearanceVariables {
|
|
|
112
112
|
spacingUnit?: string;
|
|
113
113
|
/** Min height of an input control (the field "pill"). */
|
|
114
114
|
controlMinHeight?: string;
|
|
115
|
+
/** Wallet review screen: divider line between the amount rows. */
|
|
116
|
+
colorDivider?: string;
|
|
117
|
+
/** Wallet review screen: emphasis colour of the total ("you pay") value. */
|
|
118
|
+
colorEmphasis?: string;
|
|
119
|
+
/** Reveal frame: square size of the copy-button glyph (e.g. `24px`).
|
|
120
|
+
* Default `20px`. */
|
|
121
|
+
copyIconSize?: string;
|
|
122
|
+
/** Reveal frame: copy-button glyph colour. Defaults to `colorLabel`. */
|
|
123
|
+
colorCopyIcon?: string;
|
|
124
|
+
/** Reveal frame: copy-button glyph colour on hover. Defaults to `colorText`. */
|
|
125
|
+
colorCopyIconHover?: string;
|
|
126
|
+
/** Reveal frame: glyph colour of the transient "copied" checkmark.
|
|
127
|
+
* Defaults to `colorFocus`. */
|
|
128
|
+
colorCopyIconCopied?: string;
|
|
115
129
|
}
|
|
116
130
|
/**
|
|
117
131
|
* Card-brand indicator (Visa/Mastercard) shown inside the card-number field.
|
|
@@ -130,7 +144,7 @@ export interface PciBrandBadgeAppearance {
|
|
|
130
144
|
* the label colour (`colorLabel`). Logo style only. Default `color`. */
|
|
131
145
|
tone?: 'color' | 'mono';
|
|
132
146
|
/** Badge plate colour behind the mark. Default `transparent` (no plate);
|
|
133
|
-
* set e.g. `#FFFFFF` for a white chip
|
|
147
|
+
* set e.g. `#FFFFFF` for a white chip behind the logo. */
|
|
134
148
|
background?: string;
|
|
135
149
|
/** Corner radius of the plate — a length or percentage. `50%` (default)
|
|
136
150
|
* gives a circle, `4px` a rounded square. */
|
|
@@ -151,8 +165,8 @@ export interface PciAppearance {
|
|
|
151
165
|
}
|
|
152
166
|
/** Auth material the frame needs to reach the backend directly. By design the
|
|
153
167
|
* frame uses the caller's access token (bearer); reveal adds the existing
|
|
154
|
-
* `action_token`.
|
|
155
|
-
*
|
|
168
|
+
* `action_token`. The host supplies its own user's bearer — no
|
|
169
|
+
* publishable-key / session JWT. */
|
|
156
170
|
/**
|
|
157
171
|
* Per-user auth material passed from the host into a frame. Note there are NO
|
|
158
172
|
* API URLs here: the frame service owns its own endpoints (injected as
|
|
@@ -209,7 +223,67 @@ export interface PciRevealInitConfig {
|
|
|
209
223
|
appearance?: PciAppearance;
|
|
210
224
|
strings?: PciFrameStrings;
|
|
211
225
|
}
|
|
212
|
-
|
|
226
|
+
/** Availability probe — no transaction context, no backend calls. The `init`
|
|
227
|
+
* request's result carries `PciWalletAvailability`. */
|
|
228
|
+
export interface PciWalletProbeInitConfig {
|
|
229
|
+
mode: 'wallet-probe';
|
|
230
|
+
}
|
|
231
|
+
export interface PciWalletAvailability {
|
|
232
|
+
applePay: boolean;
|
|
233
|
+
googlePay: boolean;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Wallet-button presentation presets. Both wallets brand-control their buttons,
|
|
237
|
+
* so only their allowed presets are exposed — validated in-frame like every
|
|
238
|
+
* other appearance input; arbitrary restyling is impossible by mechanism.
|
|
239
|
+
*/
|
|
240
|
+
export interface PciWalletButtonAppearance {
|
|
241
|
+
applePay?: {
|
|
242
|
+
style?: 'black' | 'white' | 'white-outline';
|
|
243
|
+
type?: 'plain' | 'top-up' | 'buy';
|
|
244
|
+
};
|
|
245
|
+
googlePay?: {
|
|
246
|
+
color?: 'black' | 'white';
|
|
247
|
+
type?: 'plain' | 'pay' | 'buy';
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Wallet checkout frame init. The host passes ONLY the estimation reference and
|
|
252
|
+
* the checkout token (short-lived, estimation-scoped, minted by the estimate
|
|
253
|
+
* call) — the frame fetches the estimation view and the wallet config from the
|
|
254
|
+
* backend itself. No amounts, no API URLs, nothing in the frame URL.
|
|
255
|
+
*/
|
|
256
|
+
export interface PciWalletCheckoutInitConfig {
|
|
257
|
+
mode: 'wallet-checkout';
|
|
258
|
+
estimationId: string;
|
|
259
|
+
checkoutToken: string;
|
|
260
|
+
appearance?: PciAppearance;
|
|
261
|
+
buttons?: PciWalletButtonAppearance;
|
|
262
|
+
strings?: PciFrameStrings;
|
|
263
|
+
}
|
|
264
|
+
/** Fresh estimation reference for re-arming a mounted checkout frame
|
|
265
|
+
* (e.g. after the previous estimation expired). */
|
|
266
|
+
export interface PciWalletSessionRef {
|
|
267
|
+
estimationId: string;
|
|
268
|
+
checkoutToken: string;
|
|
269
|
+
}
|
|
270
|
+
export type PciWalletCheckoutState = 'loading' | 'ready' | 'sheet-open' | 'executing';
|
|
271
|
+
/**
|
|
272
|
+
* Terminal outcome of one wallet payment attempt. `threeDsRequired` is the
|
|
273
|
+
* designed-in fallback (WALLET-TOPUP-DESIGN.md D6): feed `url` into
|
|
274
|
+
* `@wirexapp/card-3ds-web`. A UX signal only — the money-moved truth is the
|
|
275
|
+
* partner backend's webhook / status check.
|
|
276
|
+
*/
|
|
277
|
+
export type PciWalletTopUpResultDto = {
|
|
278
|
+
kind: 'completed' | 'pending' | 'failed';
|
|
279
|
+
topupId: string;
|
|
280
|
+
status: string;
|
|
281
|
+
} | {
|
|
282
|
+
kind: 'threeDsRequired';
|
|
283
|
+
topupId: string;
|
|
284
|
+
url: string;
|
|
285
|
+
};
|
|
286
|
+
export type PciInitConfig = PciCollectInitConfig | PciCollectFieldInitConfig | PciRevealInitConfig | PciWalletProbeInitConfig | PciWalletCheckoutInitConfig;
|
|
213
287
|
/** Extra non-sensitive data merged into the tokenize call by the frame. */
|
|
214
288
|
export interface PciTokenizeTopUpRequest {
|
|
215
289
|
kind: 'topup';
|
|
@@ -271,6 +345,13 @@ export type PciHostToFrameMessage = Envelope & ({
|
|
|
271
345
|
type: 'tokenize';
|
|
272
346
|
requestId: string;
|
|
273
347
|
payload: PciTokenizeRequest;
|
|
348
|
+
}
|
|
349
|
+
/** Re-arm a mounted wallet checkout frame with a fresh estimation — the
|
|
350
|
+
* frame refetches and re-renders; no remount. */
|
|
351
|
+
| {
|
|
352
|
+
type: 'wallet-update';
|
|
353
|
+
requestId: string;
|
|
354
|
+
session: PciWalletSessionRef;
|
|
274
355
|
});
|
|
275
356
|
export type PciFrameToHostMessage = Envelope & ({
|
|
276
357
|
type: 'ready';
|
|
@@ -283,6 +364,36 @@ export type PciFrameToHostMessage = Envelope & ({
|
|
|
283
364
|
} | {
|
|
284
365
|
type: 'reveal-state';
|
|
285
366
|
state: PciRevealState;
|
|
367
|
+
}
|
|
368
|
+
/** The user copied a field's value INSIDE the reveal frame. Metadata only —
|
|
369
|
+
* the field name is the entire payload (for host analytics); the value
|
|
370
|
+
* stays in-frame. Knowing a copy happened grants no clipboard access:
|
|
371
|
+
* reads are gated by browser permission prompts / user-gesture paste. */
|
|
372
|
+
| {
|
|
373
|
+
type: 'reveal-copied';
|
|
374
|
+
field: PciRevealField;
|
|
375
|
+
}
|
|
376
|
+
/** Wallet checkout lifecycle. `sheet-open` = the OS wallet sheet is up;
|
|
377
|
+
* `executing` = token obtained, execute call in flight (the host arms its
|
|
378
|
+
* watchdog on this). */
|
|
379
|
+
| {
|
|
380
|
+
type: 'wallet-state';
|
|
381
|
+
state: PciWalletCheckoutState;
|
|
382
|
+
}
|
|
383
|
+
/** The user dismissed the wallet sheet — no backend call was made. */
|
|
384
|
+
| {
|
|
385
|
+
type: 'wallet-cancelled';
|
|
386
|
+
}
|
|
387
|
+
/** The estimation reached `valid_until`; buttons are disabled until the
|
|
388
|
+
* host re-arms via `wallet-update`. */
|
|
389
|
+
| {
|
|
390
|
+
type: 'wallet-estimation-expired';
|
|
391
|
+
}
|
|
392
|
+
/** Terminal outcome of one wallet payment attempt (user-gesture-driven, so
|
|
393
|
+
* an event rather than a request/response pair). */
|
|
394
|
+
| {
|
|
395
|
+
type: 'wallet-result';
|
|
396
|
+
result: PciWalletTopUpResultDto;
|
|
286
397
|
} | {
|
|
287
398
|
type: 'result';
|
|
288
399
|
requestId: string;
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;8DAE8D;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAwB,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAE5D,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;8EAE8E;AAC9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;2EAIuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;qEAGiE;IACjE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC,CAAC;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH;;8DAE8D;AAC9D,eAAO,MAAM,oBAAoB,EAAE,MAAwB,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAE5D,uEAAuE;AACvE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;8EAE8E;AAC9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;mEAC+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;2EAIuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;qEAGiE;IACjE,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC,CAAC;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;0BACsB;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;oCACgC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;0EACsE;IACtE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;6EACyE;IACzE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB;+DAC2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;kDAC8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;wDAEoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAED;;;qCAGqC;AACrC;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf;wFACoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB;;uEAEmE;IACnE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAgBD;wDACwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,eAAe,CAAC;QAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;KACnC,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;KAChC,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;oDACoD;AACpD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,mBAAmB,GACnB,wBAAwB,GACxB,2BAA2B,CAAC;AAEhC,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,cAAc,EAAE;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,GAAG;IACnF,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB;;4DAEwD;IACxD,cAAc,CAAC,EAAE,mBAAmB,EAAE,CAAC;CACxC,CAAC;AAEF,mFAAmF;AACnF,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,QAAQ;IAChB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAC1C,CACI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE;AACtE;kDACkD;GAChD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAC7E,CAAC;AAEJ,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAC1C,CACI;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,qBAAqB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE;AACjD;;;0EAG0E;GACxE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE;AAClD;;yBAEyB;GACvB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,sBAAsB,CAAA;CAAE;AACzD,sEAAsE;GACpE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B;wCACwC;GACtC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE;AACvC;qDACqD;GACnD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CACzE,CAAC"}
|
package/dist/protocol.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;8DAE8D;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAW,eAAe,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import type { PciAppearance, PciFrameStrings, PciWalletAvailability, PciWalletButtonAppearance, PciWalletCheckoutState, PciWalletTopUpResultDto } from './protocol.js';
|
|
2
|
+
export interface PciWalletTopUpSession {
|
|
3
|
+
/** From the partner backend's estimate call. */
|
|
4
|
+
estimationId: string;
|
|
5
|
+
/**
|
|
6
|
+
* Called at mount/update time so a refreshed estimation can re-arm the
|
|
7
|
+
* element. The token is the frame flow's only credential (short-lived,
|
|
8
|
+
* estimation-scoped, single successful execute) — it authorizes the frame's
|
|
9
|
+
* backend calls: estimation view, wallet config, validate-merchant, execute.
|
|
10
|
+
*/
|
|
11
|
+
getCheckoutToken: () => Promise<string>;
|
|
12
|
+
}
|
|
13
|
+
export type PciWalletTopUpResult = PciWalletTopUpResultDto;
|
|
14
|
+
export interface PciWalletTopUpElementConfig {
|
|
15
|
+
session: PciWalletTopUpSession;
|
|
16
|
+
appearance?: PciAppearance;
|
|
17
|
+
buttons?: PciWalletButtonAppearance;
|
|
18
|
+
strings?: PciFrameStrings;
|
|
19
|
+
/** Estimation + wallet config loaded, review screen rendered. */
|
|
20
|
+
onReady?: () => void;
|
|
21
|
+
onStateChange?: (state: PciWalletCheckoutState) => void;
|
|
22
|
+
/** The user dismissed the wallet sheet — no backend call was made. */
|
|
23
|
+
onCancel?: () => void;
|
|
24
|
+
/** The estimation expired in view. Re-estimate through your backend and call
|
|
25
|
+
* `update()` with the fresh estimation — no remount needed. */
|
|
26
|
+
onEstimationExpired?: () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Terminal outcome of one payment attempt. A UX signal only — reconcile the
|
|
29
|
+
* money-moved truth on your backend (webhook / status API). The
|
|
30
|
+
* `threeDsRequired` variant is the designed-in fallback: feed its `url` into
|
|
31
|
+
* `@wirexapp/card-3ds-web`.
|
|
32
|
+
*/
|
|
33
|
+
onResult: (result: PciWalletTopUpResult) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Execute-phase watchdog (ms, default 90_000). If the frame reported
|
|
36
|
+
* `executing` and no result arrived in time (lost message, hung request),
|
|
37
|
+
* `onResult` fires once with `{ kind: 'pending', status: 'watchdog_timeout' }`
|
|
38
|
+
* instead of hanging the user.
|
|
39
|
+
*/
|
|
40
|
+
executeTimeoutMs?: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The wallet checkout element — review screen + wallet buttons in one
|
|
44
|
+
* Wirex-served iframe. `mount()` resolves when the frame has fetched the
|
|
45
|
+
* estimation and rendered; payment attempts are user-gesture-driven inside the
|
|
46
|
+
* frame and surface through the config callbacks.
|
|
47
|
+
*/
|
|
48
|
+
export declare class PciWalletTopUpElement {
|
|
49
|
+
private readonly config;
|
|
50
|
+
private readonly channel;
|
|
51
|
+
private session;
|
|
52
|
+
private watchdog;
|
|
53
|
+
/** One terminal outcome per payment attempt; re-armed when a new sheet opens. */
|
|
54
|
+
private attemptSettled;
|
|
55
|
+
constructor(frameUrl: string, config: PciWalletTopUpElementConfig);
|
|
56
|
+
mount(container: HTMLElement): Promise<void>;
|
|
57
|
+
/** Re-arm a mounted element with a fresh estimation (typically after
|
|
58
|
+
* `onEstimationExpired`) — the frame refetches and re-renders in place. */
|
|
59
|
+
update(session: PciWalletTopUpSession): Promise<void>;
|
|
60
|
+
destroy(): void;
|
|
61
|
+
private armWatchdog;
|
|
62
|
+
private clearWatchdog;
|
|
63
|
+
private settle;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Phase-A availability probe: mounts a hidden probe frame that runs
|
|
67
|
+
* `ApplePaySession.canMakePayments()` / Google Pay `isReadyToPay()`
|
|
68
|
+
* (cryptogram-only) and reports booleans. No transaction context, no backend
|
|
69
|
+
* calls. Callers cache the result per page session — see
|
|
70
|
+
* `checkWalletAvailability` in `@wirexapp/card-wallet-topup-web`.
|
|
71
|
+
*/
|
|
72
|
+
export declare const probeWalletAvailability: (frameUrl: string) => Promise<PciWalletAvailability>;
|
|
73
|
+
//# sourceMappingURL=walletElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletElement.d.ts","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE3D,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACxD,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;oEACgE;IAChE,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACjD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAA8C;IAC9D,iFAAiF;IACjF,OAAO,CAAC,cAAc,CAAS;gBAEnB,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B;IA2B3D,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD;gFAC4E;IACtE,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,MAAM;CAMf;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,qBAAqB,CAqB7F,CAAC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet top-up (Apple Pay / Google Pay) host-side machinery: the checkout
|
|
3
|
+
* element that mounts the Wirex-hosted wallet frame, and the availability
|
|
4
|
+
* probe. Design: docs/WALLET-TOPUP-DESIGN.md.
|
|
5
|
+
*
|
|
6
|
+
* Unlike collect/reveal this is not CHD isolation — wallet tokens are
|
|
7
|
+
* encrypted, gateway-bound blobs. The frame exists for (a) Apple Pay's origin
|
|
8
|
+
* binding: the wallet JS must run on a Wirex-registered domain, so partners
|
|
9
|
+
* skip Apple onboarding entirely; and (b) amount integrity: the frame fetches
|
|
10
|
+
* the estimation from the backend itself, so the review screen shows
|
|
11
|
+
* backend-priced amounts the host page cannot spoof.
|
|
12
|
+
*/
|
|
13
|
+
import { PciFrameChannel } from './frameChannel.js';
|
|
14
|
+
const EXECUTE_WATCHDOG_MS = 90000;
|
|
15
|
+
/**
|
|
16
|
+
* The wallet checkout element — review screen + wallet buttons in one
|
|
17
|
+
* Wirex-served iframe. `mount()` resolves when the frame has fetched the
|
|
18
|
+
* estimation and rendered; payment attempts are user-gesture-driven inside the
|
|
19
|
+
* frame and surface through the config callbacks.
|
|
20
|
+
*/
|
|
21
|
+
export class PciWalletTopUpElement {
|
|
22
|
+
constructor(frameUrl, config) {
|
|
23
|
+
this.watchdog = null;
|
|
24
|
+
/** One terminal outcome per payment attempt; re-armed when a new sheet opens. */
|
|
25
|
+
this.attemptSettled = false;
|
|
26
|
+
this.config = config;
|
|
27
|
+
this.session = config.session;
|
|
28
|
+
this.channel = new PciFrameChannel(frameUrl, {}, { allowPayment: true });
|
|
29
|
+
this.channel.onMessage(message => {
|
|
30
|
+
switch (message.type) {
|
|
31
|
+
case 'wallet-state':
|
|
32
|
+
if (message.state === 'sheet-open')
|
|
33
|
+
this.attemptSettled = false;
|
|
34
|
+
if (message.state === 'executing')
|
|
35
|
+
this.armWatchdog();
|
|
36
|
+
this.config.onStateChange?.(message.state);
|
|
37
|
+
break;
|
|
38
|
+
case 'wallet-cancelled':
|
|
39
|
+
this.clearWatchdog();
|
|
40
|
+
this.config.onCancel?.();
|
|
41
|
+
break;
|
|
42
|
+
case 'wallet-estimation-expired':
|
|
43
|
+
this.config.onEstimationExpired?.();
|
|
44
|
+
break;
|
|
45
|
+
case 'wallet-result':
|
|
46
|
+
this.settle(message.result);
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async mount(container) {
|
|
54
|
+
await this.channel.mount(container);
|
|
55
|
+
await this.channel.request({
|
|
56
|
+
type: 'init',
|
|
57
|
+
config: {
|
|
58
|
+
mode: 'wallet-checkout',
|
|
59
|
+
estimationId: this.session.estimationId,
|
|
60
|
+
checkoutToken: await this.session.getCheckoutToken(),
|
|
61
|
+
appearance: this.config.appearance,
|
|
62
|
+
buttons: this.config.buttons,
|
|
63
|
+
strings: this.config.strings,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
this.config.onReady?.();
|
|
67
|
+
}
|
|
68
|
+
/** Re-arm a mounted element with a fresh estimation (typically after
|
|
69
|
+
* `onEstimationExpired`) — the frame refetches and re-renders in place. */
|
|
70
|
+
async update(session) {
|
|
71
|
+
this.session = session;
|
|
72
|
+
await this.channel.request({
|
|
73
|
+
type: 'wallet-update',
|
|
74
|
+
session: {
|
|
75
|
+
estimationId: session.estimationId,
|
|
76
|
+
checkoutToken: await session.getCheckoutToken(),
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
destroy() {
|
|
81
|
+
this.clearWatchdog();
|
|
82
|
+
this.channel.destroy();
|
|
83
|
+
}
|
|
84
|
+
armWatchdog() {
|
|
85
|
+
this.clearWatchdog();
|
|
86
|
+
this.watchdog = setTimeout(() => {
|
|
87
|
+
this.settle({ kind: 'pending', topupId: '', status: 'watchdog_timeout' });
|
|
88
|
+
}, this.config.executeTimeoutMs ?? EXECUTE_WATCHDOG_MS);
|
|
89
|
+
}
|
|
90
|
+
clearWatchdog() {
|
|
91
|
+
if (this.watchdog) {
|
|
92
|
+
clearTimeout(this.watchdog);
|
|
93
|
+
this.watchdog = null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
settle(result) {
|
|
97
|
+
if (this.attemptSettled)
|
|
98
|
+
return;
|
|
99
|
+
this.attemptSettled = true;
|
|
100
|
+
this.clearWatchdog();
|
|
101
|
+
this.config.onResult(result);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Phase-A availability probe: mounts a hidden probe frame that runs
|
|
106
|
+
* `ApplePaySession.canMakePayments()` / Google Pay `isReadyToPay()`
|
|
107
|
+
* (cryptogram-only) and reports booleans. No transaction context, no backend
|
|
108
|
+
* calls. Callers cache the result per page session — see
|
|
109
|
+
* `checkWalletAvailability` in `@wirexapp/card-wallet-topup-web`.
|
|
110
|
+
*/
|
|
111
|
+
export const probeWalletAvailability = async (frameUrl) => {
|
|
112
|
+
// Zero-sized but not display:none/visibility:hidden — some wallet
|
|
113
|
+
// availability checks report unavailable inside hidden documents.
|
|
114
|
+
const container = document.createElement('div');
|
|
115
|
+
container.style.position = 'fixed';
|
|
116
|
+
container.style.width = '0';
|
|
117
|
+
container.style.height = '0';
|
|
118
|
+
container.style.overflow = 'hidden';
|
|
119
|
+
document.body.appendChild(container);
|
|
120
|
+
const channel = new PciFrameChannel(frameUrl, {}, { allowPayment: true });
|
|
121
|
+
try {
|
|
122
|
+
await channel.mount(container);
|
|
123
|
+
return await channel.request({
|
|
124
|
+
type: 'init',
|
|
125
|
+
config: { mode: 'wallet-probe' },
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
channel.destroy();
|
|
130
|
+
container.remove();
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=walletElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletElement.js","sourceRoot":"","sources":["../src/walletElement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAqDjD,MAAM,mBAAmB,GAAG,KAAM,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IAQhC,YAAY,QAAgB,EAAE,MAAmC;QAJzD,aAAQ,GAAyC,IAAI,CAAC;QAC9D,iFAAiF;QACzE,mBAAc,GAAG,KAAK,CAAC;QAG7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YAC/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,cAAc;oBACjB,IAAI,OAAO,CAAC,KAAK,KAAK,YAAY;wBAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oBAChE,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW;wBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,kBAAkB;oBACrB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACzB,MAAM;gBACR,KAAK,2BAA2B;oBAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;oBACpC,MAAM;gBACR,KAAK,eAAe;oBAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5B,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAsB;QAChC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE;gBACN,IAAI,EAAE,iBAAiB;gBACvB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvC,aAAa,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACpD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED;gFAC4E;IAC5E,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE;gBACP,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,aAAa,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;aAChD;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC5E,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,MAA4B;QACzC,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,QAAgB,EAAkC,EAAE;IAChG,kEAAkE;IAClE,kEAAkE;IAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;IAC7B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,MAAM,OAAO,CAAC,OAAO,CAAwB;YAClD,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;SACjC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,SAAS,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wirexapp/card-sdk-core",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared foundation of the Wirex PCI card SDK: postMessage protocol, frame channel, frame-URL building, collect machinery. CHD-free.",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"README.md"
|
|
31
31
|
],
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tsc -p tsconfig.build.json",
|
|
33
|
+
"build": "tsc -p tsconfig.build.json && node ../../scripts/fix-esm-extensions.mjs dist",
|
|
34
34
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
35
|
-
"clean": "rm -rf dist",
|
|
35
|
+
"clean": "rm -rf dist tsconfig.build.tsbuildinfo",
|
|
36
36
|
"typecheck": "yarn run -T tsc --noEmit",
|
|
37
37
|
"prepublishOnly": "yarn clean && yarn build"
|
|
38
38
|
}
|