@frak-labs/core-sdk 1.0.2-beta.64c76510 → 1.0.2-beta.75bb63ae
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 +0 -1
- package/package.json +4 -4
- package/src/actions/ensureIdentity.ts +3 -3
- package/src/actions/openSso.ts +4 -4
- package/src/actions/referral/processReferral.test.ts +38 -22
- package/src/actions/referral/processReferral.ts +6 -4
- package/src/actions/referral/referralInteraction.test.ts +7 -7
- package/src/actions/referral/referralInteraction.ts +1 -1
- package/src/actions/sendInteraction.ts +1 -1
- package/src/actions/trackPurchaseStatus.test.ts +4 -4
- package/src/actions/trackPurchaseStatus.ts +3 -3
- package/src/actions/wrapper/siweAuthenticate.test.ts +1 -5
- package/src/actions/wrapper/siweAuthenticate.ts +25 -1
- package/src/clients/createIFrameFrakClient.ts +5 -21
- package/src/clients/index.ts +0 -1
- package/src/clients/transports/iframeLifecycleManager.test.ts +10 -10
- package/src/clients/transports/iframeLifecycleManager.ts +3 -3
- package/src/config/index.ts +3 -0
- package/src/{utils → config}/sdkConfigStore.ts +1 -1
- package/src/{utils/constants.test.ts → constants.test.ts} +1 -6
- package/src/context/address.ts +76 -0
- package/src/{utils/FrakContext.test.ts → context/frakContext.test.ts} +4 -2
- package/src/{utils/FrakContext.ts → context/frakContext.ts} +4 -4
- package/src/{utils → context}/frakContextV2Codec.test.ts +1 -1
- package/src/{utils → context}/frakContextV2Codec.ts +6 -6
- package/src/context/index.ts +6 -0
- package/src/index.ts +17 -22
- package/src/stubs/rrweb.ts +8 -4
- package/src/types/client.ts +0 -3
- package/src/types/config.ts +11 -0
- package/src/types/index.ts +1 -0
- package/src/utils/{deepLinkWithFallback.ts → browser/deepLinkWithFallback.ts} +1 -1
- package/src/utils/{inAppBrowser.ts → browser/inAppBrowser.ts} +13 -0
- package/src/utils/browser/index.ts +13 -0
- package/src/utils/{formatAmount.test.ts → format/formatAmount.test.ts} +1 -1
- package/src/utils/{formatAmount.ts → format/formatAmount.ts} +1 -1
- package/src/utils/{getCurrencyAmountKey.test.ts → format/getCurrencyAmountKey.test.ts} +2 -2
- package/src/utils/{getCurrencyAmountKey.ts → format/getCurrencyAmountKey.ts} +1 -1
- package/src/utils/{getSupportedCurrency.test.ts → format/getSupportedCurrency.test.ts} +2 -2
- package/src/utils/{getSupportedCurrency.ts → format/getSupportedCurrency.ts} +2 -2
- package/src/utils/{getSupportedLocale.test.ts → format/getSupportedLocale.test.ts} +3 -3
- package/src/utils/{getSupportedLocale.ts → format/getSupportedLocale.ts} +2 -2
- package/src/utils/format/index.ts +4 -0
- package/src/utils/{iframeHelper.test.ts → iframe/iframeHelper.test.ts} +3 -3
- package/src/utils/{iframeHelper.ts → iframe/iframeHelper.ts} +3 -3
- package/src/utils/iframe/index.ts +6 -0
- package/src/utils/index.ts +31 -24
- package/src/utils/sso/index.ts +6 -0
- package/src/utils/{sso.ts → sso/sso.ts} +2 -2
- package/cdn/bundle.js +0 -14
- package/dist/actions-DihYM-OG.js +0 -1
- package/dist/actions-cYbmqewX.cjs +0 -1
- package/dist/actions.cjs +0 -1
- package/dist/actions.d.cts +0 -3
- package/dist/actions.d.ts +0 -3
- package/dist/actions.js +0 -1
- package/dist/bundle.cjs +0 -1
- package/dist/bundle.d.cts +0 -4
- package/dist/bundle.d.ts +0 -4
- package/dist/bundle.js +0 -1
- package/dist/index-BhBuaCRl.d.cts +0 -707
- package/dist/index-BsBbSMxk.d.cts +0 -646
- package/dist/index-CeX1Tl7W.d.ts +0 -707
- package/dist/index-quaxtKRh.d.ts +0 -646
- package/dist/index.cjs +0 -1
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -1
- package/dist/openSso-DyUQew2K.d.ts +0 -1392
- package/dist/openSso-rQhLhPbq.d.cts +0 -1392
- package/dist/sdkConfigStore-BXzz5PlK.js +0 -1
- package/dist/sdkConfigStore-DDL_fjYX.cjs +0 -1
- package/dist/src-CMaRNkkJ.cjs +0 -13
- package/dist/src-DMFOQMm6.js +0 -13
- package/src/clients/DebugInfo.test.ts +0 -418
- package/src/clients/DebugInfo.ts +0 -182
- package/src/utils/computeLegacyProductId.ts +0 -11
- /package/src/{utils → clients}/ssoUrlListener.test.ts +0 -0
- /package/src/{utils → clients}/ssoUrlListener.ts +0 -0
- /package/src/{utils → config}/backendUrl.test.ts +0 -0
- /package/src/{utils → config}/backendUrl.ts +0 -0
- /package/src/{utils → config}/clientId.test.ts +0 -0
- /package/src/{utils → config}/clientId.ts +0 -0
- /package/src/{utils → config}/sdkConfigStore.test.ts +0 -0
- /package/src/{utils/constants.ts → constants.ts} +0 -0
- /package/src/{utils → context}/mergeAttribution.test.ts +0 -0
- /package/src/{utils → context}/mergeAttribution.ts +0 -0
- /package/src/utils/{deepLinkWithFallback.test.ts → browser/deepLinkWithFallback.test.ts} +0 -0
package/src/clients/DebugInfo.ts
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FrakRpcError,
|
|
3
|
-
type RpcMessage,
|
|
4
|
-
type RpcResponse,
|
|
5
|
-
} from "@frak-labs/frame-connector";
|
|
6
|
-
import type { FrakWalletSdkConfig } from "../types";
|
|
7
|
-
|
|
8
|
-
type IframeStatus = {
|
|
9
|
-
loading: boolean;
|
|
10
|
-
url: string | null;
|
|
11
|
-
readyState: number;
|
|
12
|
-
contentWindow: boolean;
|
|
13
|
-
isConnected: boolean;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
type DebugInfo = {
|
|
17
|
-
timestamp: string;
|
|
18
|
-
encodedUrl: string;
|
|
19
|
-
navigatorInfo: string;
|
|
20
|
-
encodedConfig: string;
|
|
21
|
-
iframeStatus: string;
|
|
22
|
-
lastRequest: string;
|
|
23
|
-
lastResponse: string;
|
|
24
|
-
clientStatus: string;
|
|
25
|
-
error: string;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
type NavigatorInfo = {
|
|
29
|
-
userAgent: string;
|
|
30
|
-
language: string;
|
|
31
|
-
onLine: boolean;
|
|
32
|
-
screenWidth: number;
|
|
33
|
-
screenHeight: number;
|
|
34
|
-
pixelRatio: number;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
/** @ignore */
|
|
38
|
-
export class DebugInfoGatherer {
|
|
39
|
-
private config?: FrakWalletSdkConfig;
|
|
40
|
-
private iframe?: HTMLIFrameElement;
|
|
41
|
-
private isSetupDone = false;
|
|
42
|
-
private lastResponse: null | {
|
|
43
|
-
message: RpcMessage;
|
|
44
|
-
response: RpcResponse;
|
|
45
|
-
timestamp: number;
|
|
46
|
-
} = null;
|
|
47
|
-
private lastRequest: null | {
|
|
48
|
-
event: RpcMessage;
|
|
49
|
-
timestamp: number;
|
|
50
|
-
} = null;
|
|
51
|
-
|
|
52
|
-
constructor(config?: FrakWalletSdkConfig, iframe?: HTMLIFrameElement) {
|
|
53
|
-
this.config = config;
|
|
54
|
-
this.iframe = iframe;
|
|
55
|
-
this.lastRequest = null;
|
|
56
|
-
this.lastResponse = null;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Update communication logs
|
|
60
|
-
public setLastResponse(message: RpcMessage, response: RpcResponse) {
|
|
61
|
-
this.lastResponse = {
|
|
62
|
-
message,
|
|
63
|
-
response,
|
|
64
|
-
timestamp: Date.now(),
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
public setLastRequest(event: RpcMessage) {
|
|
68
|
-
this.lastRequest = { event, timestamp: Date.now() };
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Update connection status
|
|
72
|
-
public updateSetupStatus(status: boolean) {
|
|
73
|
-
this.isSetupDone = status;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private base64Encode(data: object): string {
|
|
77
|
-
try {
|
|
78
|
-
return btoa(JSON.stringify(data));
|
|
79
|
-
} catch (err) {
|
|
80
|
-
console.warn("Failed to encode debug data", err);
|
|
81
|
-
return btoa("Failed to encode data");
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Extract information from the iframe status
|
|
87
|
-
*/
|
|
88
|
-
private getIframeStatus(): IframeStatus | null {
|
|
89
|
-
if (!this.iframe) {
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
loading: this.iframe.hasAttribute("loading"),
|
|
94
|
-
url: this.iframe.src,
|
|
95
|
-
readyState: this.iframe.contentDocument?.readyState
|
|
96
|
-
? this.iframe.contentDocument.readyState === "complete"
|
|
97
|
-
? 1
|
|
98
|
-
: 0
|
|
99
|
-
: -1,
|
|
100
|
-
contentWindow: !!this.iframe.contentWindow,
|
|
101
|
-
isConnected: this.iframe.isConnected,
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
private getNavigatorInfo(): NavigatorInfo | null {
|
|
106
|
-
if (!navigator) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
userAgent: navigator.userAgent,
|
|
111
|
-
language: navigator.language,
|
|
112
|
-
onLine: navigator.onLine,
|
|
113
|
-
screenWidth: window.screen.width,
|
|
114
|
-
screenHeight: window.screen.height,
|
|
115
|
-
pixelRatio: window.devicePixelRatio,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
private gatherDebugInfo(error: Error | unknown): DebugInfo {
|
|
120
|
-
const iframeStatus = this.getIframeStatus();
|
|
121
|
-
const navigatorInfo = this.getNavigatorInfo();
|
|
122
|
-
|
|
123
|
-
// Format the error in a readable format
|
|
124
|
-
let formattedError = "Unknown";
|
|
125
|
-
if (error instanceof FrakRpcError) {
|
|
126
|
-
formattedError = `FrakRpcError: ${error.code} '${error.message}'`;
|
|
127
|
-
} else if (error instanceof Error) {
|
|
128
|
-
formattedError = error.message;
|
|
129
|
-
} else if (typeof error === "string") {
|
|
130
|
-
formattedError = error;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Craft the debug info
|
|
134
|
-
const debugInfo: DebugInfo = {
|
|
135
|
-
timestamp: new Date().toISOString(),
|
|
136
|
-
encodedUrl: btoa(window.location.href),
|
|
137
|
-
encodedConfig: this.config
|
|
138
|
-
? this.base64Encode(this.config)
|
|
139
|
-
: "no-config",
|
|
140
|
-
navigatorInfo: navigatorInfo
|
|
141
|
-
? this.base64Encode(navigatorInfo)
|
|
142
|
-
: "no-navigator",
|
|
143
|
-
iframeStatus: iframeStatus
|
|
144
|
-
? this.base64Encode(iframeStatus)
|
|
145
|
-
: "not-iframe",
|
|
146
|
-
lastRequest: this.lastRequest
|
|
147
|
-
? this.base64Encode(this.lastRequest)
|
|
148
|
-
: "No Frak request logged",
|
|
149
|
-
lastResponse: this.lastResponse
|
|
150
|
-
? this.base64Encode(this.lastResponse)
|
|
151
|
-
: "No Frak response logged",
|
|
152
|
-
clientStatus: this.isSetupDone ? "setup" : "not-setup",
|
|
153
|
-
error: formattedError,
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
return debugInfo;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
public static empty(): DebugInfoGatherer {
|
|
160
|
-
return new DebugInfoGatherer();
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Format Frak debug information
|
|
165
|
-
*/
|
|
166
|
-
public formatDebugInfo(error: Error | unknown | string): string {
|
|
167
|
-
const debugInfo = this.gatherDebugInfo(error);
|
|
168
|
-
return `
|
|
169
|
-
Debug Information:
|
|
170
|
-
-----------------
|
|
171
|
-
Timestamp: ${debugInfo.timestamp}
|
|
172
|
-
URL: ${debugInfo.encodedUrl}
|
|
173
|
-
Config: ${debugInfo.encodedConfig}
|
|
174
|
-
Navigator Info: ${debugInfo.navigatorInfo}
|
|
175
|
-
IFrame Status: ${debugInfo.iframeStatus}
|
|
176
|
-
Last Request: ${debugInfo.lastRequest}
|
|
177
|
-
Last Response: ${debugInfo.lastResponse}
|
|
178
|
-
Client Status: ${debugInfo.clientStatus}
|
|
179
|
-
Error: ${debugInfo.error}
|
|
180
|
-
`.trim();
|
|
181
|
-
}
|
|
182
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { keccak256, toHex } from "viem";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Compute the legacy product id from a domain
|
|
5
|
-
* @ignore
|
|
6
|
-
*/
|
|
7
|
-
export function computeLegacyProductId({ domain }: { domain?: string } = {}) {
|
|
8
|
-
const effectiveDomain = domain ?? window.location.host;
|
|
9
|
-
const normalizedDomain = effectiveDomain.replace("www.", "");
|
|
10
|
-
return keccak256(toHex(normalizedDomain));
|
|
11
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|