@coinflowlabs/react 5.16.0 → 5.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +4 -0
  2. package/build/cjs/CoinflowVenmoButton.d.ts +27 -0
  3. package/build/cjs/CoinflowVenmoButton.js +94 -0
  4. package/build/cjs/CoinflowVenmoButton.js.map +1 -0
  5. package/build/cjs/card-form/CoinflowCardFormV2.d.ts +2 -0
  6. package/build/cjs/card-form/CoinflowCardFormV2.js.map +1 -1
  7. package/build/cjs/common/CoinflowPurchaseProtectionHeaders.d.ts +2 -0
  8. package/build/cjs/common/CoinflowPurchaseProtectionHeaders.js +4 -1
  9. package/build/cjs/common/CoinflowPurchaseProtectionHeaders.js.map +1 -1
  10. package/build/cjs/common/Forter.d.ts +10 -0
  11. package/build/cjs/common/Forter.js +130 -0
  12. package/build/cjs/common/Forter.js.map +1 -0
  13. package/build/cjs/common/index.d.ts +1 -0
  14. package/build/cjs/common/index.js +5 -0
  15. package/build/cjs/common/index.js.map +1 -1
  16. package/build/cjs/index.d.ts +1 -0
  17. package/build/cjs/index.js +1 -0
  18. package/build/cjs/index.js.map +1 -1
  19. package/build/esm/CoinflowVenmoButton.d.ts +27 -0
  20. package/build/esm/CoinflowVenmoButton.js +90 -0
  21. package/build/esm/CoinflowVenmoButton.js.map +1 -0
  22. package/build/esm/card-form/CoinflowCardFormV2.d.ts +2 -0
  23. package/build/esm/card-form/CoinflowCardFormV2.js.map +1 -1
  24. package/build/esm/common/CoinflowPurchaseProtectionHeaders.d.ts +2 -0
  25. package/build/esm/common/CoinflowPurchaseProtectionHeaders.js +3 -0
  26. package/build/esm/common/CoinflowPurchaseProtectionHeaders.js.map +1 -1
  27. package/build/esm/common/Forter.d.ts +10 -0
  28. package/build/esm/common/Forter.js +125 -0
  29. package/build/esm/common/Forter.js.map +1 -0
  30. package/build/esm/common/index.d.ts +1 -0
  31. package/build/esm/common/index.js +1 -0
  32. package/build/esm/common/index.js.map +1 -1
  33. package/build/esm/index.d.ts +1 -0
  34. package/build/esm/index.js +1 -0
  35. package/build/esm/index.js.map +1 -1
  36. package/build/tsconfig.cjs.tsbuildinfo +1 -1
  37. package/build/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -80,6 +80,10 @@ Props:
80
80
 
81
81
  # Changelog
82
82
 
83
+ ## 5.17.0
84
+
85
+ - Added `CoinflowVenmoButton` to let merchants embed the Venmo button in their own checkout UI
86
+
83
87
  ## 5.16.0
84
88
 
85
89
  - Added `CoinflowPayPalButton` to let merchants embed the PayPal button in their own checkout UI
@@ -0,0 +1,27 @@
1
+ import { CoinflowPurchaseProps } from './common';
2
+ import React from 'react';
3
+ import { MobileWalletButtonProps } from './MobileWalletButton';
4
+ export type CoinflowVenmoButtonProps = CoinflowPurchaseProps & MobileWalletButtonProps & {
5
+ /** Phone number tied to the Venmo account, used to create the order. */
6
+ phoneNumber?: {
7
+ countryCode: string;
8
+ nationalNumber: string;
9
+ };
10
+ /** Saved Venmo account token, used to create the order directly. */
11
+ token?: string;
12
+ /**
13
+ * Fires once the Venmo purchase is approved/complete, with the resulting
14
+ * payment. Use it to drive your own post-purchase UI (the hosted iframe
15
+ * shows its own "purchase complete" screen; the standalone button doesn't).
16
+ */
17
+ onApprove: (info: {
18
+ paymentId: string;
19
+ }) => void;
20
+ };
21
+ /**
22
+ * Standalone Venmo button merchants can embed in their own checkout UI. Unlike
23
+ * PayPal, Venmo's approval flow runs in a popup window rather than an in-page
24
+ * overlay, so the button iframe stays inline — there's no overlay element to
25
+ * position over and no `overlayId` prop.
26
+ */
27
+ export declare function CoinflowVenmoButton(props: CoinflowVenmoButtonProps): React.JSX.Element;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoinflowVenmoButton = CoinflowVenmoButton;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("./common");
6
+ const react_1 = tslib_1.__importStar(require("react"));
7
+ const CoinflowIFrame_1 = require("./CoinflowIFrame");
8
+ /**
9
+ * Standalone Venmo button merchants can embed in their own checkout UI. Unlike
10
+ * PayPal, Venmo's approval flow runs in a popup window rather than an in-page
11
+ * overlay, so the button iframe stays inline — there's no overlay element to
12
+ * position over and no `overlayId` prop.
13
+ */
14
+ function CoinflowVenmoButton(props) {
15
+ const { onError, onApprove, env, email, phoneNumber, token } = props;
16
+ const iframeRef = (0, react_1.useRef)(null);
17
+ const [loaded, setLoaded] = (0, react_1.useState)(false);
18
+ const handleHeightChangeId = (0, CoinflowIFrame_1.useRandomHandleHeightChangeId)();
19
+ const hasIdentifier = Boolean(email || phoneNumber || token);
20
+ const iframeProps = (0, react_1.useMemo)(() => {
21
+ const walletPubkey = (0, common_1.getWalletPubkey)(props);
22
+ return {
23
+ ...props,
24
+ email: undefined,
25
+ walletPubkey,
26
+ transaction: undefined,
27
+ routePrefix: 'form',
28
+ route: `/venmo/${props.merchantId}`,
29
+ handleHeightChangeId,
30
+ };
31
+ }, [handleHeightChangeId, props]);
32
+ const identifierMessage = (0, react_1.useMemo)(() => JSON.stringify({
33
+ method: 'venmoIdentifier',
34
+ email: email || undefined,
35
+ phoneNumber: phoneNumber || undefined,
36
+ token: token || undefined,
37
+ }), [email, phoneNumber, token]);
38
+ (0, react_1.useEffect)(() => {
39
+ iframeRef.current
40
+ ?.listenForMessage(data => {
41
+ try {
42
+ return JSON.parse(data).method === 'loaded';
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ })
48
+ .then(() => setLoaded(true))
49
+ .catch(() => undefined);
50
+ }, []);
51
+ (0, react_1.useEffect)(() => {
52
+ if (!loaded)
53
+ return;
54
+ iframeRef.current?.postMessage(identifierMessage);
55
+ }, [loaded, identifierMessage]);
56
+ const messageHandlers = (0, react_1.useMemo)(() => ({
57
+ ...(0, common_1.getHandlers)(props),
58
+ handleHeightChange: props.handleHeightChange,
59
+ }), [props]);
60
+ (0, react_1.useEffect)(() => {
61
+ if (!onError && !onApprove)
62
+ return;
63
+ const expectedOrigin = new URL(common_1.CoinflowUtils.getCoinflowBaseUrl(env))
64
+ .origin;
65
+ const handler = (e) => {
66
+ if (e.origin !== expectedOrigin)
67
+ return;
68
+ if (typeof e.data !== 'string')
69
+ return;
70
+ try {
71
+ const res = JSON.parse(e.data);
72
+ if (typeof res?.data === 'string' && res.data.startsWith('ERROR'))
73
+ onError?.(res.info ?? res.data);
74
+ else if (res?.method === 'success')
75
+ onApprove(res.info ?? {});
76
+ }
77
+ catch {
78
+ // Ignore non-JSON messages.
79
+ }
80
+ };
81
+ window.addEventListener('message', handler);
82
+ return () => window.removeEventListener('message', handler);
83
+ }, [onError, onApprove, env]);
84
+ const containerStyle = {
85
+ position: 'relative',
86
+ height: '100%',
87
+ ...(hasIdentifier
88
+ ? {}
89
+ : { opacity: 0.5, pointerEvents: 'none', cursor: 'not-allowed' }),
90
+ };
91
+ return (react_1.default.createElement("div", { style: containerStyle },
92
+ react_1.default.createElement(CoinflowIFrame_1.CoinflowIFrame, { ref: iframeRef, ...iframeProps, ...messageHandlers })));
93
+ }
94
+ //# sourceMappingURL=CoinflowVenmoButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowVenmoButton.js","sourceRoot":"","sources":["../../src/CoinflowVenmoButton.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface CardFormTokenResponse {
17
17
  token: string;
18
18
  expMonth?: string;
19
19
  expYear?: string;
20
+ /** Forter device token captured in the card-form iframe; forward it as the `x-forter-token` header on your charge request so Forter can score the transaction. Absent if the Forter SDK has not loaded. */
21
+ forterToken?: string;
20
22
  }
21
23
  export interface CardFormRef {
22
24
  tokenize(): Promise<CardFormTokenResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowCardFormV2.js","sourceRoot":"","sources":["../../../src/card-form/CoinflowCardFormV2.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoinflowCardFormV2.js","sourceRoot":"","sources":["../../../src/card-form/CoinflowCardFormV2.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  export declare const DEVICE_ID_HEADER = "x-device-id";
2
2
  export declare const SESSION_ID_HEADER = "x-session-id";
3
3
  export declare const REFERRER_HEADER = "x-coinflow-referrer";
4
+ export declare const FORTER_TOKEN_HEADER = "x-forter-token";
4
5
  export type CoinflowProtectionHeadersType = {
5
6
  [DEVICE_ID_HEADER]: string | null;
6
7
  [SESSION_ID_HEADER]: string | null;
8
+ [FORTER_TOKEN_HEADER]: string | null;
7
9
  };
8
10
  export declare function getCoinflowProtectionHeaders(): CoinflowProtectionHeadersType;
9
11
  export type CoinflowPurchaseHeadersType = CoinflowProtectionHeadersType & {
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REFERRER_HEADER = exports.SESSION_ID_HEADER = exports.DEVICE_ID_HEADER = void 0;
3
+ exports.FORTER_TOKEN_HEADER = exports.REFERRER_HEADER = exports.SESSION_ID_HEADER = exports.DEVICE_ID_HEADER = void 0;
4
4
  exports.getCoinflowProtectionHeaders = getCoinflowProtectionHeaders;
5
5
  exports.getCoinflowPurchaseHeaders = getCoinflowPurchaseHeaders;
6
6
  const tslib_1 = require("tslib");
7
7
  const NSure_1 = tslib_1.__importDefault(require("./NSure"));
8
8
  const CoinflowProtectionSession_1 = require("./CoinflowProtectionSession");
9
+ const Forter_1 = tslib_1.__importDefault(require("./Forter"));
9
10
  exports.DEVICE_ID_HEADER = 'x-device-id';
10
11
  exports.SESSION_ID_HEADER = 'x-session-id';
11
12
  exports.REFERRER_HEADER = 'x-coinflow-referrer';
13
+ exports.FORTER_TOKEN_HEADER = 'x-forter-token';
12
14
  function getCoinflowProtectionHeaders() {
13
15
  return {
14
16
  [exports.DEVICE_ID_HEADER]: (0, NSure_1.default)(),
15
17
  [exports.SESSION_ID_HEADER]: (0, CoinflowProtectionSession_1.getProtectionSessionId)(),
18
+ [exports.FORTER_TOKEN_HEADER]: (0, Forter_1.default)(),
16
19
  };
17
20
  }
18
21
  function getReferrer() {
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowPurchaseProtectionHeaders.js","sourceRoot":"","sources":["../../../src/common/CoinflowPurchaseProtectionHeaders.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAuC;AACvC,2EAAmE;AAEtD,QAAA,gBAAgB,GAAG,aAAa,CAAC;AACjC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,eAAe,GAAG,qBAAqB,CAAC;AAOrD;IACE,OAAO;QACL,CAAC,QAAA,gBAAgB,CAAC,EAAE,IAAA,eAAgB,GAAE;QACtC,CAAC,QAAA,iBAAiB,CAAC,EAAE,IAAA,kDAAsB,GAAE;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAMD;IACE,OAAO;QACL,GAAG,4BAA4B,EAAE;QACjC,CAAC,QAAA,eAAe,CAAC,EAAE,WAAW,EAAE;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CoinflowPurchaseProtectionHeaders.js","sourceRoot":"","sources":["../../../src/common/CoinflowPurchaseProtectionHeaders.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAuC;AACvC,2EAAmE;AACnE,8DAAsC;AAEzB,QAAA,gBAAgB,GAAG,aAAa,CAAC;AACjC,QAAA,iBAAiB,GAAG,cAAc,CAAC;AACnC,QAAA,eAAe,GAAG,qBAAqB,CAAC;AACxC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC;AAQpD;IACE,OAAO;QACL,CAAC,QAAA,gBAAgB,CAAC,EAAE,IAAA,eAAgB,GAAE;QACtC,CAAC,QAAA,iBAAiB,CAAC,EAAE,IAAA,kDAAsB,GAAE;QAC7C,CAAC,QAAA,mBAAmB,CAAC,EAAE,IAAA,gBAAc,GAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAMD;IACE,OAAO;QACL,GAAG,4BAA4B,EAAE;QACjC,CAAC,QAAA,eAAe,CAAC,EAAE,WAAW,EAAE;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function getForterToken(): string | null;
2
+ export declare function captureForterToken({ timeoutMs, intervalMs, }?: {
3
+ timeoutMs?: number;
4
+ intervalMs?: number;
5
+ }): void;
6
+ export declare function awaitForterToken({ timeoutMs, intervalMs, }?: {
7
+ timeoutMs?: number;
8
+ intervalMs?: number;
9
+ }): Promise<string | null>;
10
+ export default getForterToken;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getForterToken = getForterToken;
4
+ exports.captureForterToken = captureForterToken;
5
+ exports.awaitForterToken = awaitForterToken;
6
+ const FORTER_COOKIE_NAME = 'forterToken';
7
+ // Defense-in-depth: the attacker-influenceable cookie is later sent as the `x-forter-token` header / Forter `forterTokenCookie`; since tokens are opaque, long, uncontrolled-alphabet strings, don't use a narrow allowlist — just bound the length and reject control / CR / LF chars that could enable header injection.
8
+ const MAX_FORTER_TOKEN_LENGTH = 1024;
9
+ // eslint-disable-next-line no-control-regex
10
+ const FORTER_TOKEN_UNSAFE_PATTERN = /[\x00-\x1F\x7F]/;
11
+ // Forter sets the `forterToken` cookie asynchronously and some WebViews (notably React Native) only surface it transiently/late, so a just-in-time checkout read often comes back empty even when nSure and Verisoul succeed; cache and prefer the captured token (see captureForterToken) as Verisoul does, and keep it current latest-wins since Forter re-emits a more complete token after its handshake (later `ftr:tokenReady` events overwrite it and the cookie poll keeps refreshing) rather than freezing on the first partial token.
12
+ let cachedForterToken = null;
13
+ // Whether `cachedForterToken` came from the authoritative `ftr:tokenReady` event, the reliable source in cross-origin iframes / WebViews where the cookie is partitioned or stale, so a cookie read must never clobber an event-sourced value.
14
+ let cachedFromEvent = false;
15
+ // Ensures only one cookie-poll loop runs at a time (captureForterToken can be called from several mounted protection components).
16
+ let pollActive = false;
17
+ function sanitizeForterToken(raw) {
18
+ if (!raw)
19
+ return null;
20
+ let token = raw;
21
+ try {
22
+ token = decodeURIComponent(raw);
23
+ }
24
+ catch {
25
+ // keep raw if it isn't valid percent-encoding
26
+ }
27
+ if (!token)
28
+ return null;
29
+ if (token.length > MAX_FORTER_TOKEN_LENGTH)
30
+ return null;
31
+ if (FORTER_TOKEN_UNSAFE_PATTERN.test(token))
32
+ return null;
33
+ return token;
34
+ }
35
+ // Reads the Forter cookie. Matches `forterToken` exactly, then falls back to any `*forter*token*` cookie name in case Forter changes/prefixes it.
36
+ function readForterCookie() {
37
+ if (typeof document === 'undefined' || !document.cookie)
38
+ return null;
39
+ let fallback = null;
40
+ for (const part of document.cookie.split(';')) {
41
+ const eq = part.indexOf('=');
42
+ if (eq === -1)
43
+ continue;
44
+ const name = part.slice(0, eq).trim();
45
+ const value = part.slice(eq + 1);
46
+ if (name === FORTER_COOKIE_NAME)
47
+ return value;
48
+ const lower = name.toLowerCase();
49
+ if (lower.includes('forter') && lower.includes('token'))
50
+ fallback = value;
51
+ }
52
+ return fallback;
53
+ }
54
+ function getForterToken() {
55
+ return cachedForterToken ?? sanitizeForterToken(readForterCookie());
56
+ }
57
+ // Forter dispatches `ftr:tokenReady` on `document` with the token in `event.detail` once computed; this is cookie-INDEPENDENT and so the reliable source in cross-origin iframes / WebViews where the forterToken cookie is partitioned/blocked (the cookie still works as a fallback on web).
58
+ const FORTER_TOKEN_READY_EVENT = 'ftr:tokenReady';
59
+ function handleForterTokenReady(event) {
60
+ const detail = event.detail;
61
+ const token = typeof detail === 'string' ? sanitizeForterToken(detail) : null;
62
+ if (!token)
63
+ return;
64
+ // Latest-wins: stay subscribed so each re-emission overwrites the cache with the newer, more complete token (see note on cachedForterToken).
65
+ cachedForterToken = token;
66
+ cachedFromEvent = true;
67
+ }
68
+ // Capture and cache the Forter token shortly after the SDK script is injected so it is available to getForterToken() by checkout time: primary source is the `ftr:tokenReady` event and the cookie is polled as a fallback, and if neither surfaces log a diagnostic (cookie names + Forter globals only — never values) to reveal whether the SDK exposes the token at all in this context.
69
+ function captureForterToken({ timeoutMs = 15000, intervalMs = 250, } = {}) {
70
+ if (typeof window === 'undefined')
71
+ return;
72
+ // Stay subscribed for the page lifetime so every `ftr:tokenReady` overwrites the cache (latest-wins); addEventListener dedupes the same handler, so calling this from multiple mounts registers it only once.
73
+ if (typeof document !== 'undefined') {
74
+ document.addEventListener(FORTER_TOKEN_READY_EVENT, handleForterTokenReady);
75
+ }
76
+ if (pollActive)
77
+ return;
78
+ pollActive = true;
79
+ const start = Date.now();
80
+ const tick = () => {
81
+ // Keep refreshing from the cookie (latest-wins among cookie reads) until the window closes, but never clobber an event-sourced token — the event is authoritative where the cookie is partitioned / stale.
82
+ if (!cachedFromEvent) {
83
+ const token = sanitizeForterToken(readForterCookie());
84
+ if (token)
85
+ cachedForterToken = token;
86
+ }
87
+ if (Date.now() - start >= timeoutMs) {
88
+ pollActive = false;
89
+ if (!cachedForterToken)
90
+ logForterTokenMissing();
91
+ return;
92
+ }
93
+ window.setTimeout(tick, intervalMs);
94
+ };
95
+ tick();
96
+ }
97
+ function logForterTokenMissing() {
98
+ if (typeof document === 'undefined')
99
+ return;
100
+ const cookieNames = (document.cookie || '')
101
+ .split(';')
102
+ .map(part => part.split('=')[0].trim())
103
+ .filter(Boolean);
104
+ const forterGlobals = typeof window !== 'undefined'
105
+ ? Object.keys(window).filter(key => /ftr|forter/i.test(key))
106
+ : [];
107
+ console.warn('[forter] token never surfaced after init.', 'cookieNames:', cookieNames, 'forterGlobals:', forterGlobals);
108
+ }
109
+ // Resolve once a Forter token is available, or after `timeoutMs` if it never surfaces: Forter issues its device token asynchronously (~1s after the SDK loads, via `ftr:tokenReady` / forterToken cookie), so a fast charge — notably saved-card / "1-click" purchases — can read getForterToken() before it exists and send an empty x-forter-token, so await this at charge time to populate the header; fail-open by resolving to whatever getForterToken() returns at the deadline (possibly null) rather than blocking the purchase, and return immediately when a token is already cached so it adds no latency in the common case.
110
+ async function awaitForterToken({ timeoutMs = 2000, intervalMs = 100, } = {}) {
111
+ const existing = getForterToken();
112
+ if (existing)
113
+ return existing;
114
+ if (typeof window === 'undefined')
115
+ return null;
116
+ return new Promise(resolve => {
117
+ const start = Date.now();
118
+ const poll = () => {
119
+ const token = getForterToken();
120
+ if (token)
121
+ return resolve(token);
122
+ if (Date.now() - start >= timeoutMs)
123
+ return resolve(getForterToken());
124
+ window.setTimeout(poll, intervalMs);
125
+ };
126
+ window.setTimeout(poll, intervalMs);
127
+ });
128
+ }
129
+ exports.default = getForterToken;
130
+ //# sourceMappingURL=Forter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Forter.js","sourceRoot":"","sources":["../../../src/common/Forter.ts"],"names":[],"mappings":";;;;;AAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC;AAEzC,2TAA2T;AAC3T,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,4CAA4C;AAC5C,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;AAEtD,ghBAAghB;AAChhB,IAAI,iBAAiB,GAAkB,IAAI,CAAC;AAC5C,+OAA+O;AAC/O,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,kIAAkI;AAClI,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,SAAS,mBAAmB,CAAC,GAA8B;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,IAAI,CAAC;QACH,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB;QAAE,OAAO,IAAI,CAAC;IACxD,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kJAAkJ;AAClJ,SAAS,gBAAgB;IACvB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAErE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,QAAQ,GAAG,KAAK,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;IACE,OAAO,iBAAiB,IAAI,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,+RAA+R;AAC/R,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAElD,SAAS,sBAAsB,CAAC,KAAY;IAC1C,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,6IAA6I;IAC7I,iBAAiB,GAAG,KAAK,CAAC;IAC1B,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,6XAA6X;AAC7X,4BAAmC,EACjC,SAAS,GAAG,KAAM,EAClB,UAAU,GAAG,GAAG,GACjB,GAA8C,EAAE;IAC/C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO;IAE1C,8MAA8M;IAC9M,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,UAAU;QAAE,OAAO;IACvB,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,2MAA2M;QAC3M,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK;gBAAE,iBAAiB,GAAG,KAAK,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC;YACpC,UAAU,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,iBAAiB;gBAAE,qBAAqB,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAS,qBAAqB;IAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;SACxC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACtC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,aAAa,GACjB,OAAO,MAAM,KAAK,WAAW;QAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,IAAI,CACV,2CAA2C,EAC3C,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,aAAa,CACd,CAAC;AACJ,CAAC;AAED,0mBAA0mB;AACnmB,KAAK,2BAA2B,EACrC,SAAS,GAAG,IAAK,EACjB,UAAU,GAAG,GAAG,GACjB,GAA8C,EAAE;IAC/C,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE/C,OAAO,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;YAC/B,IAAI,KAAK;gBAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,SAAS;gBAAE,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;kBAEc,cAAc"}
@@ -11,3 +11,4 @@ export * from './types/nftCartItem';
11
11
  export * from './types/cryptoCartItem';
12
12
  export * from './CoinflowPurchaseProtectionHeaders';
13
13
  export * from './CoinflowProtectionInit';
14
+ export { default as getForterToken, captureForterToken, awaitForterToken, } from './Forter';
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awaitForterToken = exports.captureForterToken = exports.getForterToken = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  tslib_1.__exportStar(require("./CoinflowTypes"), exports);
5
6
  tslib_1.__exportStar(require("./CoinflowUtils"), exports);
@@ -14,4 +15,8 @@ tslib_1.__exportStar(require("./types/nftCartItem"), exports);
14
15
  tslib_1.__exportStar(require("./types/cryptoCartItem"), exports);
15
16
  tslib_1.__exportStar(require("./CoinflowPurchaseProtectionHeaders"), exports);
16
17
  tslib_1.__exportStar(require("./CoinflowProtectionInit"), exports);
18
+ var Forter_1 = require("./Forter");
19
+ Object.defineProperty(exports, "getForterToken", { enumerable: true, get: function () { return tslib_1.__importDefault(Forter_1).default; } });
20
+ Object.defineProperty(exports, "captureForterToken", { enumerable: true, get: function () { return Forter_1.captureForterToken; } });
21
+ Object.defineProperty(exports, "awaitForterToken", { enumerable: true, get: function () { return Forter_1.awaitForterToken; } });
17
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,0DAAgC;AAChC,uEAA6C;AAC7C,qDAA2B;AAC3B,8DAAoC;AACpC,qEAA2C;AAC3C,2DAAiC;AACjC,4DAAkC;AAClC,mEAAyC;AACzC,8DAAoC;AACpC,iEAAuC;AACvC,8EAAoD;AACpD,mEAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":";;;;AAAA,0DAAgC;AAChC,0DAAgC;AAChC,uEAA6C;AAC7C,qDAA2B;AAC3B,8DAAoC;AACpC,qEAA2C;AAC3C,2DAAiC;AACjC,4DAAkC;AAClC,mEAAyC;AACzC,8DAAoC;AACpC,iEAAuC;AACvC,8EAAoD;AACpD,mEAAyC;AACzC,mCAIkB;AAHhB,iIAAA,OAAO,OAAkB;AACzB,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA"}
@@ -12,3 +12,4 @@ export * from './card-form/CoinflowCardFormV2';
12
12
  export * from './CoinflowApplePayButton';
13
13
  export * from './CoinflowGooglePayButton';
14
14
  export * from './CoinflowPayPalButton';
15
+ export * from './CoinflowVenmoButton';
@@ -15,4 +15,5 @@ tslib_1.__exportStar(require("./card-form/CoinflowCardFormV2"), exports);
15
15
  tslib_1.__exportStar(require("./CoinflowApplePayButton"), exports);
16
16
  tslib_1.__exportStar(require("./CoinflowGooglePayButton"), exports);
17
17
  tslib_1.__exportStar(require("./CoinflowPayPalButton"), exports);
18
+ tslib_1.__exportStar(require("./CoinflowVenmoButton"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,mDAAyB;AACzB,2DAAiC;AACjC,oEAA0C;AAC1C,oEAA0C;AAC1C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C;AAC7C,6EAAmD;AACnD,yEAA+C;AAC/C,mEAAyC;AACzC,oEAA0C;AAC1C,iEAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,mDAAyB;AACzB,2DAAiC;AACjC,oEAA0C;AAC1C,oEAA0C;AAC1C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C;AAC7C,6EAAmD;AACnD,yEAA+C;AAC/C,mEAAyC;AACzC,oEAA0C;AAC1C,iEAAuC;AACvC,gEAAsC"}
@@ -0,0 +1,27 @@
1
+ import { CoinflowPurchaseProps } from './common';
2
+ import React from 'react';
3
+ import { MobileWalletButtonProps } from './MobileWalletButton';
4
+ export type CoinflowVenmoButtonProps = CoinflowPurchaseProps & MobileWalletButtonProps & {
5
+ /** Phone number tied to the Venmo account, used to create the order. */
6
+ phoneNumber?: {
7
+ countryCode: string;
8
+ nationalNumber: string;
9
+ };
10
+ /** Saved Venmo account token, used to create the order directly. */
11
+ token?: string;
12
+ /**
13
+ * Fires once the Venmo purchase is approved/complete, with the resulting
14
+ * payment. Use it to drive your own post-purchase UI (the hosted iframe
15
+ * shows its own "purchase complete" screen; the standalone button doesn't).
16
+ */
17
+ onApprove: (info: {
18
+ paymentId: string;
19
+ }) => void;
20
+ };
21
+ /**
22
+ * Standalone Venmo button merchants can embed in their own checkout UI. Unlike
23
+ * PayPal, Venmo's approval flow runs in a popup window rather than an in-page
24
+ * overlay, so the button iframe stays inline — there's no overlay element to
25
+ * position over and no `overlayId` prop.
26
+ */
27
+ export declare function CoinflowVenmoButton(props: CoinflowVenmoButtonProps): React.JSX.Element;
@@ -0,0 +1,90 @@
1
+ import { CoinflowUtils, getHandlers, getWalletPubkey, } from './common';
2
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
3
+ import { CoinflowIFrame, useRandomHandleHeightChangeId, } from './CoinflowIFrame';
4
+ /**
5
+ * Standalone Venmo button merchants can embed in their own checkout UI. Unlike
6
+ * PayPal, Venmo's approval flow runs in a popup window rather than an in-page
7
+ * overlay, so the button iframe stays inline — there's no overlay element to
8
+ * position over and no `overlayId` prop.
9
+ */
10
+ export function CoinflowVenmoButton(props) {
11
+ const { onError, onApprove, env, email, phoneNumber, token } = props;
12
+ const iframeRef = useRef(null);
13
+ const [loaded, setLoaded] = useState(false);
14
+ const handleHeightChangeId = useRandomHandleHeightChangeId();
15
+ const hasIdentifier = Boolean(email || phoneNumber || token);
16
+ const iframeProps = useMemo(() => {
17
+ const walletPubkey = getWalletPubkey(props);
18
+ return {
19
+ ...props,
20
+ email: undefined,
21
+ walletPubkey,
22
+ transaction: undefined,
23
+ routePrefix: 'form',
24
+ route: `/venmo/${props.merchantId}`,
25
+ handleHeightChangeId,
26
+ };
27
+ }, [handleHeightChangeId, props]);
28
+ const identifierMessage = useMemo(() => JSON.stringify({
29
+ method: 'venmoIdentifier',
30
+ email: email || undefined,
31
+ phoneNumber: phoneNumber || undefined,
32
+ token: token || undefined,
33
+ }), [email, phoneNumber, token]);
34
+ useEffect(() => {
35
+ iframeRef.current
36
+ ?.listenForMessage(data => {
37
+ try {
38
+ return JSON.parse(data).method === 'loaded';
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ })
44
+ .then(() => setLoaded(true))
45
+ .catch(() => undefined);
46
+ }, []);
47
+ useEffect(() => {
48
+ if (!loaded)
49
+ return;
50
+ iframeRef.current?.postMessage(identifierMessage);
51
+ }, [loaded, identifierMessage]);
52
+ const messageHandlers = useMemo(() => ({
53
+ ...getHandlers(props),
54
+ handleHeightChange: props.handleHeightChange,
55
+ }), [props]);
56
+ useEffect(() => {
57
+ if (!onError && !onApprove)
58
+ return;
59
+ const expectedOrigin = new URL(CoinflowUtils.getCoinflowBaseUrl(env))
60
+ .origin;
61
+ const handler = (e) => {
62
+ if (e.origin !== expectedOrigin)
63
+ return;
64
+ if (typeof e.data !== 'string')
65
+ return;
66
+ try {
67
+ const res = JSON.parse(e.data);
68
+ if (typeof res?.data === 'string' && res.data.startsWith('ERROR'))
69
+ onError?.(res.info ?? res.data);
70
+ else if (res?.method === 'success')
71
+ onApprove(res.info ?? {});
72
+ }
73
+ catch {
74
+ // Ignore non-JSON messages.
75
+ }
76
+ };
77
+ window.addEventListener('message', handler);
78
+ return () => window.removeEventListener('message', handler);
79
+ }, [onError, onApprove, env]);
80
+ const containerStyle = {
81
+ position: 'relative',
82
+ height: '100%',
83
+ ...(hasIdentifier
84
+ ? {}
85
+ : { opacity: 0.5, pointerEvents: 'none', cursor: 'not-allowed' }),
86
+ };
87
+ return (React.createElement("div", { style: containerStyle },
88
+ React.createElement(CoinflowIFrame, { ref: iframeRef, ...iframeProps, ...messageHandlers })));
89
+ }
90
+ //# sourceMappingURL=CoinflowVenmoButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowVenmoButton.js","sourceRoot":"","sources":["../../src/CoinflowVenmoButton.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface CardFormTokenResponse {
17
17
  token: string;
18
18
  expMonth?: string;
19
19
  expYear?: string;
20
+ /** Forter device token captured in the card-form iframe; forward it as the `x-forter-token` header on your charge request so Forter can score the transaction. Absent if the Forter SDK has not loaded. */
21
+ forterToken?: string;
20
22
  }
21
23
  export interface CardFormRef {
22
24
  tokenize(): Promise<CardFormTokenResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowCardFormV2.js","sourceRoot":"","sources":["../../../src/card-form/CoinflowCardFormV2.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoinflowCardFormV2.js","sourceRoot":"","sources":["../../../src/card-form/CoinflowCardFormV2.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  export declare const DEVICE_ID_HEADER = "x-device-id";
2
2
  export declare const SESSION_ID_HEADER = "x-session-id";
3
3
  export declare const REFERRER_HEADER = "x-coinflow-referrer";
4
+ export declare const FORTER_TOKEN_HEADER = "x-forter-token";
4
5
  export type CoinflowProtectionHeadersType = {
5
6
  [DEVICE_ID_HEADER]: string | null;
6
7
  [SESSION_ID_HEADER]: string | null;
8
+ [FORTER_TOKEN_HEADER]: string | null;
7
9
  };
8
10
  export declare function getCoinflowProtectionHeaders(): CoinflowProtectionHeadersType;
9
11
  export type CoinflowPurchaseHeadersType = CoinflowProtectionHeadersType & {
@@ -1,12 +1,15 @@
1
1
  import getNSureDeviceId from './NSure';
2
2
  import { getProtectionSessionId } from './CoinflowProtectionSession';
3
+ import getForterToken from './Forter';
3
4
  export const DEVICE_ID_HEADER = 'x-device-id';
4
5
  export const SESSION_ID_HEADER = 'x-session-id';
5
6
  export const REFERRER_HEADER = 'x-coinflow-referrer';
7
+ export const FORTER_TOKEN_HEADER = 'x-forter-token';
6
8
  export function getCoinflowProtectionHeaders() {
7
9
  return {
8
10
  [DEVICE_ID_HEADER]: getNSureDeviceId(),
9
11
  [SESSION_ID_HEADER]: getProtectionSessionId(),
12
+ [FORTER_TOKEN_HEADER]: getForterToken(),
10
13
  };
11
14
  }
12
15
  function getReferrer() {
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowPurchaseProtectionHeaders.js","sourceRoot":"","sources":["../../../src/common/CoinflowPurchaseProtectionHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,SAAS,CAAC;AACvC,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AAEnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAOrD,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE;QACtC,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,GAAG,4BAA4B,EAAE;QACjC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE;KACjC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CoinflowPurchaseProtectionHeaders.js","sourceRoot":"","sources":["../../../src/common/CoinflowPurchaseProtectionHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,SAAS,CAAC;AACvC,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,cAAc,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAC;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAQpD,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE;QACtC,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE;QAC7C,CAAC,mBAAmB,CAAC,EAAE,cAAc,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,GAAG,4BAA4B,EAAE;QACjC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE;KACjC,CAAC;AACJ,CAAC"}