@clerk/shared 4.0.0-snapshot.v20251217194100 → 4.0.0-snapshot.v20251218183643
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/dist/runtime/alternativePhoneCode.d.mts +2 -2
- package/dist/runtime/alternativePhoneCode.d.ts +1 -1
- package/dist/runtime/authorization-errors.d.mts +2 -2
- package/dist/runtime/authorization-errors.d.ts +1 -1
- package/dist/runtime/authorization.d.mts +2 -2
- package/dist/runtime/authorization.d.ts +1 -1
- package/dist/runtime/clerkEventBus.d.mts +2 -2
- package/dist/runtime/clerkEventBus.d.ts +1 -1
- package/dist/runtime/color.d.mts +2 -2
- package/dist/runtime/color.d.ts +1 -1
- package/dist/runtime/{complexity-Bh-FcgPr.mjs → complexity-CzNKZI5c.mjs} +1 -1
- package/dist/runtime/{complexity-Bh-FcgPr.mjs.map → complexity-CzNKZI5c.mjs.map} +1 -1
- package/dist/runtime/{complexity-ChYONg95.js → complexity-DCCqEy11.js} +1 -1
- package/dist/runtime/{complexity-ChYONg95.js.map → complexity-DCCqEy11.js.map} +1 -1
- package/dist/runtime/deriveState.d.mts +2 -2
- package/dist/runtime/deriveState.d.ts +1 -1
- package/dist/runtime/dom/index.d.mts +1 -1
- package/dist/runtime/dom/waitForElement.d.mts +1 -1
- package/dist/runtime/{error-PZOXmiMQ.d.mts → error-CClf0-CM.d.mts} +2 -2
- package/dist/runtime/{error-PZOXmiMQ.d.mts.map → error-CClf0-CM.d.mts.map} +1 -1
- package/dist/runtime/{error-D_08BTAz.d.ts → error-o9rMDFII.d.ts} +2 -2
- package/dist/runtime/{error-D_08BTAz.d.ts.map → error-o9rMDFII.d.ts.map} +1 -1
- package/dist/runtime/error.d.mts +3 -3
- package/dist/runtime/error.d.ts +2 -2
- package/dist/runtime/esm-BYCxuimI.js +127 -0
- package/dist/runtime/esm-BYCxuimI.js.map +1 -0
- package/dist/runtime/esm-DEuqni59.mjs +126 -0
- package/dist/runtime/esm-DEuqni59.mjs.map +1 -0
- package/dist/runtime/globs.d.ts.map +1 -1
- package/dist/runtime/{handleValueOrFn-PpdLgNiN.d.mts → handleValueOrFn-DCe6q2n8.d.mts} +1 -1
- package/dist/runtime/{handleValueOrFn-PpdLgNiN.d.mts.map → handleValueOrFn-DCe6q2n8.d.mts.map} +1 -1
- package/dist/runtime/handleValueOrFn.d.mts +1 -1
- package/dist/runtime/{index-C32ntfvR.d.ts → index-BZAgbf9u.d.ts} +78 -8
- package/dist/runtime/index-BZAgbf9u.d.ts.map +1 -0
- package/dist/runtime/{index-Bb1t7kYz.d.mts → index-C799Ulyv.d.mts} +79 -9
- package/dist/runtime/index-C799Ulyv.d.mts.map +1 -0
- package/dist/runtime/{injectedWeb3Providers-Czuy_wR9.js → injectedWeb3EthProviders-BhelKFzu.js} +8 -8
- package/dist/runtime/injectedWeb3EthProviders-BhelKFzu.js.map +1 -0
- package/dist/runtime/{injectedWeb3Providers-C8967kn3.mjs → injectedWeb3EthProviders-C531qWpV.mjs} +7 -7
- package/dist/runtime/injectedWeb3EthProviders-C531qWpV.mjs.map +1 -0
- package/dist/runtime/injectedWeb3SolanaProviders-CUxDnwMf.js +48 -0
- package/dist/runtime/injectedWeb3SolanaProviders-CUxDnwMf.js.map +1 -0
- package/dist/runtime/injectedWeb3SolanaProviders-DtmZdl_v.mjs +42 -0
- package/dist/runtime/injectedWeb3SolanaProviders-DtmZdl_v.mjs.map +1 -0
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/componentGuards.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/componentGuards.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.mts +15 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.mts.map +1 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.ts +15 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.ts.map +1 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.js +3 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.mjs +3 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.mts +13 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.mts.map +1 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.ts +13 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.ts.map +1 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.js +3 -0
- package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.mjs +3 -0
- package/dist/runtime/internal/clerk-js/passkeys.d.mts +3 -3
- package/dist/runtime/internal/clerk-js/passkeys.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/passwords/complexity.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/passwords/complexity.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/complexity.js +1 -1
- package/dist/runtime/internal/clerk-js/passwords/complexity.mjs +1 -1
- package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/password.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/passwords/password.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/password.js +3 -3
- package/dist/runtime/internal/clerk-js/passwords/password.mjs +3 -3
- package/dist/runtime/internal/clerk-js/passwords/strength.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/passwords/strength.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/strength.js +1 -1
- package/dist/runtime/internal/clerk-js/passwords/strength.mjs +1 -1
- package/dist/runtime/internal/clerk-js/path.js +1 -1
- package/dist/runtime/internal/clerk-js/path.mjs +1 -1
- package/dist/runtime/internal/clerk-js/queryParams.d.mts +3 -3
- package/dist/runtime/internal/clerk-js/queryParams.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/querystring.js +1 -1
- package/dist/runtime/internal/clerk-js/querystring.mjs +1 -1
- package/dist/runtime/internal/clerk-js/redirectUrls.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/redirectUrls.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/redirectUrls.js +3 -3
- package/dist/runtime/internal/clerk-js/redirectUrls.mjs +3 -3
- package/dist/runtime/internal/clerk-js/sessionTasks.d.mts +3 -3
- package/dist/runtime/internal/clerk-js/sessionTasks.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/sessionTasks.js +3 -3
- package/dist/runtime/internal/clerk-js/sessionTasks.mjs +3 -3
- package/dist/runtime/internal/clerk-js/url.d.mts +3 -3
- package/dist/runtime/internal/clerk-js/url.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/url.js +3 -3
- package/dist/runtime/internal/clerk-js/url.mjs +3 -3
- package/dist/runtime/internal/clerk-js/user.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/user.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/web3.d.mts +9 -6
- package/dist/runtime/internal/clerk-js/web3.d.mts.map +1 -1
- package/dist/runtime/internal/clerk-js/web3.d.ts +8 -5
- package/dist/runtime/internal/clerk-js/web3.d.ts.map +1 -1
- package/dist/runtime/internal/clerk-js/web3.js +63 -14
- package/dist/runtime/internal/clerk-js/web3.js.map +1 -1
- package/dist/runtime/internal/clerk-js/web3.mjs +63 -14
- package/dist/runtime/internal/clerk-js/web3.mjs.map +1 -1
- package/dist/runtime/jwtPayloadParser.d.mts +2 -2
- package/dist/runtime/jwtPayloadParser.d.ts +1 -1
- package/dist/runtime/keys.d.mts +2 -2
- package/dist/runtime/keys.d.ts +1 -1
- package/dist/runtime/loadClerkJsScript.d.mts +2 -2
- package/dist/runtime/loadClerkJsScript.d.ts +1 -1
- package/dist/runtime/loadClerkJsScript.js +2 -2
- package/dist/runtime/loadClerkJsScript.mjs +2 -2
- package/dist/runtime/{moduleManager-pxNnXwxv.d.mts → moduleManager-BYIq4wgi.d.mts} +1 -1
- package/dist/runtime/{moduleManager-pxNnXwxv.d.mts.map → moduleManager-BYIq4wgi.d.mts.map} +1 -1
- package/dist/runtime/moduleManager.d.mts +1 -1
- package/dist/runtime/oauth.d.mts +2 -2
- package/dist/runtime/oauth.d.ts +1 -1
- package/dist/runtime/organization.d.mts +2 -2
- package/dist/runtime/organization.d.ts +1 -1
- package/dist/runtime/{path-BXMzEDID.js → path-BZX8wVkr.js} +1 -1
- package/dist/runtime/{path-BXMzEDID.js.map → path-BZX8wVkr.js.map} +1 -1
- package/dist/runtime/{path-B3ml2KXj.mjs → path-C9ID-JSF.mjs} +1 -1
- package/dist/runtime/{path-B3ml2KXj.mjs.map → path-C9ID-JSF.mjs.map} +1 -1
- package/dist/runtime/pathMatcher.d.mts +2 -2
- package/dist/runtime/pathMatcher.d.ts +1 -1
- package/dist/runtime/{querystring-_iskl3P0.js → querystring-B_piPsHv.js} +1 -1
- package/dist/runtime/{querystring-_iskl3P0.js.map → querystring-B_piPsHv.js.map} +1 -1
- package/dist/runtime/{querystring-B46ecpLW.mjs → querystring-Cw_OznaM.mjs} +1 -1
- package/dist/runtime/{querystring-B46ecpLW.mjs.map → querystring-Cw_OznaM.mjs.map} +1 -1
- package/dist/runtime/react/index.d.mts +3 -3
- package/dist/runtime/react/index.d.ts +2 -2
- package/dist/runtime/router.d.mts +2 -2
- package/dist/runtime/router.d.mts.map +1 -1
- package/dist/runtime/router.d.ts +1 -1
- package/dist/runtime/saml.d.mts +2 -2
- package/dist/runtime/saml.d.ts +1 -1
- package/dist/runtime/{strength-C7cS9QCW.js → strength-BoUREzC7.js} +1 -1
- package/dist/runtime/{strength-C7cS9QCW.js.map → strength-BoUREzC7.js.map} +1 -1
- package/dist/runtime/{strength-D_SzJ_Bs.mjs → strength-CmnmefF6.mjs} +1 -1
- package/dist/runtime/{strength-D_SzJ_Bs.mjs.map → strength-CmnmefF6.mjs.map} +1 -1
- package/dist/runtime/telemetry.d.mts +2 -2
- package/dist/runtime/telemetry.d.ts +1 -1
- package/dist/runtime/types/index.d.mts +3 -3
- package/dist/runtime/types/index.d.ts +2 -2
- package/dist/runtime/ui/index.d.mts +2 -2
- package/dist/runtime/ui/index.d.ts +1 -1
- package/dist/runtime/{url-B6H3YfYM.d.mts → url-8eeYgf2A.d.mts} +2 -2
- package/dist/runtime/{url-B6H3YfYM.d.mts.map → url-8eeYgf2A.d.mts.map} +1 -1
- package/dist/runtime/{url-Cf4YiXkp.mjs → url-BKWznjF0.mjs} +3 -3
- package/dist/runtime/{url-Cf4YiXkp.mjs.map → url-BKWznjF0.mjs.map} +1 -1
- package/dist/runtime/{url-DeGY-7z9.js → url-De4o_RSN.js} +3 -3
- package/dist/runtime/{url-DeGY-7z9.js.map → url-De4o_RSN.js.map} +1 -1
- package/dist/runtime/{url-oznSXRUO.d.ts → url-DnBrs0FC.d.ts} +2 -2
- package/dist/runtime/{url-oznSXRUO.d.ts.map → url-DnBrs0FC.d.ts.map} +1 -1
- package/dist/runtime/utils/index.d.mts +1 -1
- package/dist/runtime/utils/index.js +1 -1
- package/dist/runtime/utils/index.mjs +1 -1
- package/dist/runtime/{utils-Cm0NUhek.js → utils-JIOtJbTe.js} +2 -2
- package/dist/runtime/utils-JIOtJbTe.js.map +1 -0
- package/dist/runtime/{utils-DIVknyRo.mjs → utils-_GMGltn-.mjs} +2 -2
- package/dist/runtime/utils-_GMGltn-.mjs.map +1 -0
- package/dist/runtime/{versionSelector-BCYnlaG9.js → versionSelector-BtbMovl-.js} +2 -2
- package/dist/runtime/{versionSelector-BCYnlaG9.js.map → versionSelector-BtbMovl-.js.map} +1 -1
- package/dist/runtime/{versionSelector-BDdMDP_y.mjs → versionSelector-CUNYhtry.mjs} +2 -2
- package/dist/runtime/{versionSelector-BDdMDP_y.mjs.map → versionSelector-CUNYhtry.mjs.map} +1 -1
- package/dist/runtime/versionSelector.js +1 -1
- package/dist/runtime/versionSelector.mjs +1 -1
- package/dist/runtime/{waitForElement-DIzKZ_vR.d.mts → waitForElement-DOgNgQPc.d.mts} +1 -1
- package/dist/runtime/waitForElement-DOgNgQPc.d.mts.map +1 -0
- package/dist/runtime/web3.d.mts +2 -2
- package/dist/runtime/web3.d.ts +1 -1
- package/dist/runtime/web3.js +5 -0
- package/dist/runtime/web3.js.map +1 -1
- package/dist/runtime/web3.mjs +5 -0
- package/dist/runtime/web3.mjs.map +1 -1
- package/dist/types/index.d.mts +77 -7
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.d.ts +77 -7
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -1
- package/dist/runtime/index-Bb1t7kYz.d.mts.map +0 -1
- package/dist/runtime/index-C32ntfvR.d.ts.map +0 -1
- package/dist/runtime/injectedWeb3Providers-C8967kn3.mjs.map +0 -1
- package/dist/runtime/injectedWeb3Providers-Czuy_wR9.js.map +0 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.mts +0 -15
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.mts.map +0 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.ts +0 -15
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.ts.map +0 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.js +0 -3
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.mjs +0 -3
- package/dist/runtime/utils-Cm0NUhek.js.map +0 -1
- package/dist/runtime/utils-DIVknyRo.mjs.map +0 -1
- package/dist/runtime/waitForElement-DIzKZ_vR.d.mts.map +0 -1
|
@@ -1,25 +1,53 @@
|
|
|
1
|
+
const require_error = require('../../error-C4TyorFL.js');
|
|
1
2
|
require('../../errors-II8zqiVo.js');
|
|
2
3
|
const require_hex = require('../../hex-BqnWN2wZ.js');
|
|
3
|
-
const
|
|
4
|
+
const require_injectedWeb3EthProviders = require('../../injectedWeb3EthProviders-BhelKFzu.js');
|
|
5
|
+
const require_injectedWeb3SolanaProviders = require('../../injectedWeb3SolanaProviders-CUxDnwMf.js');
|
|
4
6
|
|
|
5
7
|
//#region src/internal/clerk-js/web3.ts
|
|
8
|
+
const StandardConnect = `standard:connect`;
|
|
9
|
+
const SolanaSignMessage = `solana:signMessage`;
|
|
6
10
|
function createWeb3(moduleManager) {
|
|
11
|
+
const errorThrower = require_error.buildErrorThrower({ packageName: "@clerk/shared" });
|
|
7
12
|
async function getWeb3Identifier(params) {
|
|
8
|
-
const { provider } = params;
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
|
|
13
|
+
const { provider, walletName } = params;
|
|
14
|
+
const walletProvider = await getWeb3Wallet(provider, walletName);
|
|
15
|
+
if (!walletProvider) return "";
|
|
16
|
+
if (provider === "solana") {
|
|
17
|
+
const identifiers$1 = await walletProvider.features[StandardConnect].connect();
|
|
18
|
+
return identifiers$1 && identifiers$1.accounts[0].address || "";
|
|
19
|
+
}
|
|
20
|
+
const identifiers = await walletProvider.request({ method: "eth_requestAccounts" });
|
|
12
21
|
return identifiers && identifiers[0] || "";
|
|
13
22
|
}
|
|
14
|
-
async
|
|
15
|
-
const { identifier, nonce, provider } = params;
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
18
|
-
|
|
23
|
+
const generateWeb3Signature = async (params) => {
|
|
24
|
+
const { identifier, nonce, provider, walletName = "" } = params;
|
|
25
|
+
const wallet = await getWeb3Wallet(provider, walletName);
|
|
26
|
+
if (!wallet) return "";
|
|
27
|
+
if (provider === "solana") try {
|
|
28
|
+
const solanaWallet = wallet;
|
|
29
|
+
const walletAccount = solanaWallet.accounts.find((a) => a.address === identifier);
|
|
30
|
+
if (!walletAccount) {
|
|
31
|
+
console.warn(`Wallet account with address ${identifier} not found`);
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
const signedMessages = await solanaWallet.features[SolanaSignMessage]?.signMessage({
|
|
35
|
+
account: walletAccount,
|
|
36
|
+
message: new TextEncoder().encode(nonce)
|
|
37
|
+
});
|
|
38
|
+
return signedMessages?.[0]?.signature ? btoa(String.fromCharCode(...signedMessages[0].signature)) : "";
|
|
39
|
+
} catch (err) {
|
|
40
|
+
if (err instanceof Error && err.message.includes("User rejected the request.")) throw new require_error.ClerkRuntimeError("Web3 signature request was rejected by the user.", { code: "web3_signature_request_rejected" });
|
|
41
|
+
throw new require_error.ClerkRuntimeError("An error occurred while generating the Solana signature.", {
|
|
42
|
+
code: "web3_solana_signature_generation_failed",
|
|
43
|
+
cause: err instanceof Error ? err : void 0
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return await wallet.request({
|
|
19
47
|
method: "personal_sign",
|
|
20
48
|
params: [`0x${require_hex.toHex(nonce)}`, identifier]
|
|
21
49
|
});
|
|
22
|
-
}
|
|
50
|
+
};
|
|
23
51
|
async function getMetamaskIdentifier() {
|
|
24
52
|
return await getWeb3Identifier({ provider: "metamask" });
|
|
25
53
|
}
|
|
@@ -32,6 +60,12 @@ function createWeb3(moduleManager) {
|
|
|
32
60
|
async function getBaseIdentifier() {
|
|
33
61
|
return await getWeb3Identifier({ provider: "base" });
|
|
34
62
|
}
|
|
63
|
+
async function getSolanaIdentifier(walletName) {
|
|
64
|
+
return await getWeb3Identifier({
|
|
65
|
+
provider: "solana",
|
|
66
|
+
walletName
|
|
67
|
+
});
|
|
68
|
+
}
|
|
35
69
|
async function generateSignatureWithMetamask(params) {
|
|
36
70
|
return await generateWeb3Signature({
|
|
37
71
|
...params,
|
|
@@ -56,7 +90,13 @@ function createWeb3(moduleManager) {
|
|
|
56
90
|
provider: "base"
|
|
57
91
|
});
|
|
58
92
|
}
|
|
59
|
-
async function
|
|
93
|
+
async function generateSignatureWithSolana(params) {
|
|
94
|
+
return await generateWeb3Signature({
|
|
95
|
+
...params,
|
|
96
|
+
provider: "solana"
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function getWeb3Wallet(provider, walletName) {
|
|
60
100
|
if (provider === "coinbase_wallet") {
|
|
61
101
|
const coinbaseModule = await moduleManager.import("@coinbase/wallet-sdk");
|
|
62
102
|
if (!coinbaseModule) return null;
|
|
@@ -69,7 +109,14 @@ function createWeb3(moduleManager) {
|
|
|
69
109
|
} catch {
|
|
70
110
|
return null;
|
|
71
111
|
}
|
|
72
|
-
|
|
112
|
+
if (provider === "solana") {
|
|
113
|
+
if (!walletName || walletName.length === 0) {
|
|
114
|
+
errorThrower.throw("Wallet name must be provided to get Solana wallet provider");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
return await require_injectedWeb3SolanaProviders.getInjectedWeb3SolanaProviders().get(walletName);
|
|
118
|
+
}
|
|
119
|
+
return require_injectedWeb3EthProviders.getInjectedWeb3EthProviders().get(provider);
|
|
73
120
|
}
|
|
74
121
|
return {
|
|
75
122
|
getWeb3Identifier,
|
|
@@ -78,10 +125,12 @@ function createWeb3(moduleManager) {
|
|
|
78
125
|
getCoinbaseWalletIdentifier,
|
|
79
126
|
getOKXWalletIdentifier,
|
|
80
127
|
getBaseIdentifier,
|
|
128
|
+
getSolanaIdentifier,
|
|
81
129
|
generateSignatureWithMetamask,
|
|
82
130
|
generateSignatureWithCoinbaseWallet,
|
|
83
131
|
generateSignatureWithOKXWallet,
|
|
84
|
-
generateSignatureWithBase
|
|
132
|
+
generateSignatureWithBase,
|
|
133
|
+
generateSignatureWithSolana
|
|
85
134
|
};
|
|
86
135
|
}
|
|
87
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3.js","names":["toHex","getInjectedWeb3Providers"],"sources":["../../../../src/internal/clerk-js/web3.ts"],"sourcesContent":["import type { ModuleManager } from '../../moduleManager';\nimport type { Web3Provider } from '../../types';\nimport { clerkUnsupportedEnvironmentWarning } from './errors';\nimport { toHex } from './hex';\nimport { getInjectedWeb3Providers } from './injectedWeb3Providers';\n\ntype GetWeb3IdentifierParams = {\n provider: Web3Provider;\n};\n\ntype GenerateWeb3SignatureParams = GenerateSignatureParams & {\n provider: Web3Provider;\n};\n\ntype GenerateSignatureParams = {\n identifier: string;\n nonce: string;\n};\n\nexport function createWeb3(moduleManager: ModuleManager) {\n async function getWeb3Identifier(params: GetWeb3IdentifierParams): Promise<string> {\n const { provider } = params;\n const ethereum = await getEthereumProvider(provider);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!ethereum) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n const identifiers = await ethereum.request({ method: 'eth_requestAccounts' });\n // @ts-ignore -- Provider SDKs may return unknown shape; use first address if present\n return (identifiers && identifiers[0]) || '';\n }\n\n async function generateWeb3Signature(params: GenerateWeb3SignatureParams): Promise<string> {\n const { identifier, nonce, provider } = params;\n const ethereum = await getEthereumProvider(provider);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!ethereum) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n return await ethereum.request({\n method: 'personal_sign',\n params: [`0x${toHex(nonce)}`, identifier],\n });\n }\n\n async function getMetamaskIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'metamask' });\n }\n\n async function getCoinbaseWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'coinbase_wallet' });\n }\n\n async function getOKXWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'okx_wallet' });\n }\n\n async function getBaseIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'base' });\n }\n\n async function generateSignatureWithMetamask(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'metamask' });\n }\n\n async function generateSignatureWithCoinbaseWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'coinbase_wallet' });\n }\n\n async function generateSignatureWithOKXWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'okx_wallet' });\n }\n\n async function generateSignatureWithBase(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'base' });\n }\n\n async function getEthereumProvider(provider: Web3Provider) {\n if (provider === 'coinbase_wallet') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Coinbase Wallet');\n return null;\n }\n\n const coinbaseModule = await moduleManager.import('@coinbase/wallet-sdk');\n if (!coinbaseModule) {\n return null;\n }\n const sdk = coinbaseModule.createCoinbaseWalletSDK({\n preference: {\n options: 'all',\n },\n });\n return sdk.getProvider();\n }\n if (provider === 'base') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Base');\n return null;\n }\n\n try {\n const baseModule = await moduleManager.import('@base-org/account');\n if (!baseModule) {\n return null;\n }\n\n const sdk = baseModule.createBaseAccountSDK({\n appName:\n (typeof window !== 'undefined' &&\n // @ts-expect-error missing types\n (window.Clerk as any)?.__internal_environment?.displayConfig?.applicationName) ||\n (typeof document !== 'undefined' && document.title) ||\n 'Web3 Application',\n });\n return sdk.getProvider();\n } catch {\n return null;\n }\n }\n\n return getInjectedWeb3Providers().get(provider);\n }\n\n return {\n getWeb3Identifier,\n generateWeb3Signature,\n getMetamaskIdentifier,\n getCoinbaseWalletIdentifier,\n getOKXWalletIdentifier,\n getBaseIdentifier,\n generateSignatureWithMetamask,\n generateSignatureWithCoinbaseWallet,\n generateSignatureWithOKXWallet,\n generateSignatureWithBase,\n };\n}\n"],"mappings":";;;;;AAmBA,SAAgB,WAAW,eAA8B;CACvD,eAAe,kBAAkB,QAAkD;EACjF,MAAM,EAAE,aAAa;EACrB,MAAM,WAAW,MAAM,oBAAoB,SAAS;AAGpD,MAAI,CAAC,SAGH,QAAO;EAGT,MAAM,cAAc,MAAM,SAAS,QAAQ,EAAE,QAAQ,uBAAuB,CAAC;AAE7E,SAAQ,eAAe,YAAY,MAAO;;CAG5C,eAAe,sBAAsB,QAAsD;EACzF,MAAM,EAAE,YAAY,OAAO,aAAa;EACxC,MAAM,WAAW,MAAM,oBAAoB,SAAS;AAGpD,MAAI,CAAC,SAGH,QAAO;AAGT,SAAO,MAAM,SAAS,QAAQ;GAC5B,QAAQ;GACR,QAAQ,CAAC,KAAKA,kBAAM,MAAM,IAAI,WAAW;GAC1C,CAAC;;CAGJ,eAAe,wBAAyC;AACtD,SAAO,MAAM,kBAAkB,EAAE,UAAU,YAAY,CAAC;;CAG1D,eAAe,8BAA+C;AAC5D,SAAO,MAAM,kBAAkB,EAAE,UAAU,mBAAmB,CAAC;;CAGjE,eAAe,yBAA0C;AACvD,SAAO,MAAM,kBAAkB,EAAE,UAAU,cAAc,CAAC;;CAG5D,eAAe,oBAAqC;AAClD,SAAO,MAAM,kBAAkB,EAAE,UAAU,QAAQ,CAAC;;CAGtD,eAAe,8BAA8B,QAAkD;AAC7F,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAY,CAAC;;CAGzE,eAAe,oCAAoC,QAAkD;AACnG,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAmB,CAAC;;CAGhF,eAAe,+BAA+B,QAAkD;AAC9F,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAc,CAAC;;CAG3E,eAAe,0BAA0B,QAAkD;AACzF,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAQ,CAAC;;CAGrE,eAAe,oBAAoB,UAAwB;AACzD,MAAI,aAAa,mBAAmB;GAMlC,MAAM,iBAAiB,MAAM,cAAc,OAAO,uBAAuB;AACzE,OAAI,CAAC,eACH,QAAO;AAOT,UALY,eAAe,wBAAwB,EACjD,YAAY,EACV,SAAS,OACV,EACF,CAAC,CACS,aAAa;;AAE1B,MAAI,aAAa,OAMf,KAAI;GACF,MAAM,aAAa,MAAM,cAAc,OAAO,oBAAoB;AAClE,OAAI,CAAC,WACH,QAAO;AAWT,UARY,WAAW,qBAAqB,EAC1C,SACG,OAAO,WAAW,eAEhB,OAAO,OAAe,wBAAwB,eAAe,mBAC/D,OAAO,aAAa,eAAe,SAAS,SAC7C,oBACH,CAAC,CACS,aAAa;UAClB;AACN,UAAO;;AAIX,SAAOC,wDAA0B,CAAC,IAAI,SAAS;;AAGjD,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
1
|
+
{"version":3,"file":"web3.js","names":["buildErrorThrower","identifiers","generateWeb3Signature: GenerateSignature","ClerkRuntimeError","toHex","getInjectedWeb3SolanaProviders","getInjectedWeb3EthProviders"],"sources":["../../../../src/internal/clerk-js/web3.ts"],"sourcesContent":["import type { SolanaWalletAdapterWallet } from '@solana/wallet-standard';\n\nimport { buildErrorThrower, ClerkRuntimeError } from '@/error';\n\nimport type { ModuleManager } from '../../moduleManager';\nimport type { GenerateSignature, Web3Provider } from '../../types';\nimport { clerkUnsupportedEnvironmentWarning } from './errors';\nimport { toHex } from './hex';\nimport { getInjectedWeb3EthProviders } from './injectedWeb3EthProviders';\nimport { getInjectedWeb3SolanaProviders } from './injectedWeb3SolanaProviders';\n\ntype GetWeb3IdentifierParams = {\n provider: Web3Provider;\n walletName?: string;\n};\n\n// '@solana/wallet-standard'\nconst StandardConnect = `standard:connect`;\nconst SolanaSignMessage = `solana:signMessage`;\n\ntype GenerateSignatureParams = {\n identifier: string;\n nonce: string;\n};\n\ntype GenerateSolanaSignatureParams = GenerateSignatureParams & {\n walletName: string;\n};\n\nexport function createWeb3(moduleManager: ModuleManager) {\n const errorThrower = buildErrorThrower({\n packageName: '@clerk/shared',\n });\n\n async function getWeb3Identifier(params: GetWeb3IdentifierParams): Promise<string> {\n const { provider, walletName } = params;\n const walletProvider = await getWeb3Wallet(provider, walletName);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!walletProvider) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n if (provider === 'solana') {\n const identifiers = await walletProvider.features[StandardConnect].connect();\n return (identifiers && identifiers.accounts[0].address) || '';\n }\n\n // Ethereum providers\n const identifiers = await walletProvider.request({ method: 'eth_requestAccounts' });\n // @ts-ignore -- Provider SDKs may return unknown shape; use first address if present\n return (identifiers && identifiers[0]) || '';\n }\n\n const generateWeb3Signature: GenerateSignature = async (params): Promise<string> => {\n const { identifier, nonce, provider, walletName = '' } = params;\n const wallet = await getWeb3Wallet(provider, walletName);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!wallet) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n if (provider === 'solana') {\n try {\n const solanaWallet = wallet as SolanaWalletAdapterWallet;\n const walletAccount = solanaWallet.accounts.find(a => a.address === identifier);\n if (!walletAccount) {\n console.warn(`Wallet account with address ${identifier} not found`);\n return '';\n }\n const signedMessages = await solanaWallet.features[SolanaSignMessage]?.signMessage({\n account: walletAccount,\n message: new TextEncoder().encode(nonce),\n });\n // Convert signature Uint8Array to base64 string\n return signedMessages?.[0]?.signature ? btoa(String.fromCharCode(...signedMessages[0].signature)) : '';\n } catch (err) {\n if (err instanceof Error && err.message.includes('User rejected the request.')) {\n throw new ClerkRuntimeError('Web3 signature request was rejected by the user.', {\n code: 'web3_signature_request_rejected',\n });\n }\n throw new ClerkRuntimeError('An error occurred while generating the Solana signature.', {\n code: 'web3_solana_signature_generation_failed',\n cause: err instanceof Error ? err : undefined,\n });\n }\n }\n\n return await wallet.request({\n method: 'personal_sign',\n params: [`0x${toHex(nonce)}`, identifier],\n });\n };\n\n async function getMetamaskIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'metamask' });\n }\n\n async function getCoinbaseWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'coinbase_wallet' });\n }\n\n async function getOKXWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'okx_wallet' });\n }\n\n async function getBaseIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'base' });\n }\n\n async function getSolanaIdentifier(walletName: string): Promise<string> {\n return await getWeb3Identifier({ provider: 'solana', walletName });\n }\n\n async function generateSignatureWithMetamask(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'metamask' });\n }\n\n async function generateSignatureWithCoinbaseWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'coinbase_wallet' });\n }\n\n async function generateSignatureWithOKXWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'okx_wallet' });\n }\n\n async function generateSignatureWithBase(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'base' });\n }\n async function generateSignatureWithSolana(params: GenerateSolanaSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'solana' });\n }\n\n async function getWeb3Wallet(provider: Web3Provider, walletName?: string) {\n if (provider === 'coinbase_wallet') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Coinbase Wallet');\n return null;\n }\n\n const coinbaseModule = await moduleManager.import('@coinbase/wallet-sdk');\n if (!coinbaseModule) {\n return null;\n }\n const sdk = coinbaseModule.createCoinbaseWalletSDK({\n preference: {\n options: 'all',\n },\n });\n return sdk.getProvider();\n }\n if (provider === 'base') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Base');\n return null;\n }\n\n try {\n const baseModule = await moduleManager.import('@base-org/account');\n if (!baseModule) {\n return null;\n }\n\n const sdk = baseModule.createBaseAccountSDK({\n appName:\n (typeof window !== 'undefined' &&\n // @ts-expect-error missing types\n (window.Clerk as any)?.__internal_environment?.displayConfig?.applicationName) ||\n (typeof document !== 'undefined' && document.title) ||\n 'Web3 Application',\n });\n return sdk.getProvider();\n } catch {\n return null;\n }\n }\n\n if (provider === 'solana') {\n if (!walletName || walletName.length === 0) {\n errorThrower.throw('Wallet name must be provided to get Solana wallet provider');\n return;\n }\n return await getInjectedWeb3SolanaProviders().get(walletName);\n }\n\n return getInjectedWeb3EthProviders().get(provider);\n }\n\n return {\n getWeb3Identifier,\n generateWeb3Signature,\n getMetamaskIdentifier,\n getCoinbaseWalletIdentifier,\n getOKXWalletIdentifier,\n getBaseIdentifier,\n getSolanaIdentifier,\n generateSignatureWithMetamask,\n generateSignatureWithCoinbaseWallet,\n generateSignatureWithOKXWallet,\n generateSignatureWithBase,\n generateSignatureWithSolana,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,25 +1,53 @@
|
|
|
1
|
+
import { b as buildErrorThrower, g as ClerkRuntimeError } from "../../error-D6MGXq-n.mjs";
|
|
1
2
|
import "../../errors-Rum4SQ26.mjs";
|
|
2
3
|
import { t as toHex } from "../../hex-vIQQeRT9.mjs";
|
|
3
|
-
import { t as
|
|
4
|
+
import { t as getInjectedWeb3EthProviders } from "../../injectedWeb3EthProviders-C531qWpV.mjs";
|
|
5
|
+
import { t as getInjectedWeb3SolanaProviders } from "../../injectedWeb3SolanaProviders-DtmZdl_v.mjs";
|
|
4
6
|
|
|
5
7
|
//#region src/internal/clerk-js/web3.ts
|
|
8
|
+
const StandardConnect = `standard:connect`;
|
|
9
|
+
const SolanaSignMessage = `solana:signMessage`;
|
|
6
10
|
function createWeb3(moduleManager) {
|
|
11
|
+
const errorThrower = buildErrorThrower({ packageName: "@clerk/shared" });
|
|
7
12
|
async function getWeb3Identifier(params) {
|
|
8
|
-
const { provider } = params;
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
|
|
13
|
+
const { provider, walletName } = params;
|
|
14
|
+
const walletProvider = await getWeb3Wallet(provider, walletName);
|
|
15
|
+
if (!walletProvider) return "";
|
|
16
|
+
if (provider === "solana") {
|
|
17
|
+
const identifiers$1 = await walletProvider.features[StandardConnect].connect();
|
|
18
|
+
return identifiers$1 && identifiers$1.accounts[0].address || "";
|
|
19
|
+
}
|
|
20
|
+
const identifiers = await walletProvider.request({ method: "eth_requestAccounts" });
|
|
12
21
|
return identifiers && identifiers[0] || "";
|
|
13
22
|
}
|
|
14
|
-
async
|
|
15
|
-
const { identifier, nonce, provider } = params;
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
18
|
-
|
|
23
|
+
const generateWeb3Signature = async (params) => {
|
|
24
|
+
const { identifier, nonce, provider, walletName = "" } = params;
|
|
25
|
+
const wallet = await getWeb3Wallet(provider, walletName);
|
|
26
|
+
if (!wallet) return "";
|
|
27
|
+
if (provider === "solana") try {
|
|
28
|
+
const solanaWallet = wallet;
|
|
29
|
+
const walletAccount = solanaWallet.accounts.find((a) => a.address === identifier);
|
|
30
|
+
if (!walletAccount) {
|
|
31
|
+
console.warn(`Wallet account with address ${identifier} not found`);
|
|
32
|
+
return "";
|
|
33
|
+
}
|
|
34
|
+
const signedMessages = await solanaWallet.features[SolanaSignMessage]?.signMessage({
|
|
35
|
+
account: walletAccount,
|
|
36
|
+
message: new TextEncoder().encode(nonce)
|
|
37
|
+
});
|
|
38
|
+
return signedMessages?.[0]?.signature ? btoa(String.fromCharCode(...signedMessages[0].signature)) : "";
|
|
39
|
+
} catch (err) {
|
|
40
|
+
if (err instanceof Error && err.message.includes("User rejected the request.")) throw new ClerkRuntimeError("Web3 signature request was rejected by the user.", { code: "web3_signature_request_rejected" });
|
|
41
|
+
throw new ClerkRuntimeError("An error occurred while generating the Solana signature.", {
|
|
42
|
+
code: "web3_solana_signature_generation_failed",
|
|
43
|
+
cause: err instanceof Error ? err : void 0
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return await wallet.request({
|
|
19
47
|
method: "personal_sign",
|
|
20
48
|
params: [`0x${toHex(nonce)}`, identifier]
|
|
21
49
|
});
|
|
22
|
-
}
|
|
50
|
+
};
|
|
23
51
|
async function getMetamaskIdentifier() {
|
|
24
52
|
return await getWeb3Identifier({ provider: "metamask" });
|
|
25
53
|
}
|
|
@@ -32,6 +60,12 @@ function createWeb3(moduleManager) {
|
|
|
32
60
|
async function getBaseIdentifier() {
|
|
33
61
|
return await getWeb3Identifier({ provider: "base" });
|
|
34
62
|
}
|
|
63
|
+
async function getSolanaIdentifier(walletName) {
|
|
64
|
+
return await getWeb3Identifier({
|
|
65
|
+
provider: "solana",
|
|
66
|
+
walletName
|
|
67
|
+
});
|
|
68
|
+
}
|
|
35
69
|
async function generateSignatureWithMetamask(params) {
|
|
36
70
|
return await generateWeb3Signature({
|
|
37
71
|
...params,
|
|
@@ -56,7 +90,13 @@ function createWeb3(moduleManager) {
|
|
|
56
90
|
provider: "base"
|
|
57
91
|
});
|
|
58
92
|
}
|
|
59
|
-
async function
|
|
93
|
+
async function generateSignatureWithSolana(params) {
|
|
94
|
+
return await generateWeb3Signature({
|
|
95
|
+
...params,
|
|
96
|
+
provider: "solana"
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function getWeb3Wallet(provider, walletName) {
|
|
60
100
|
if (provider === "coinbase_wallet") {
|
|
61
101
|
const coinbaseModule = await moduleManager.import("@coinbase/wallet-sdk");
|
|
62
102
|
if (!coinbaseModule) return null;
|
|
@@ -69,7 +109,14 @@ function createWeb3(moduleManager) {
|
|
|
69
109
|
} catch {
|
|
70
110
|
return null;
|
|
71
111
|
}
|
|
72
|
-
|
|
112
|
+
if (provider === "solana") {
|
|
113
|
+
if (!walletName || walletName.length === 0) {
|
|
114
|
+
errorThrower.throw("Wallet name must be provided to get Solana wallet provider");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
return await getInjectedWeb3SolanaProviders().get(walletName);
|
|
118
|
+
}
|
|
119
|
+
return getInjectedWeb3EthProviders().get(provider);
|
|
73
120
|
}
|
|
74
121
|
return {
|
|
75
122
|
getWeb3Identifier,
|
|
@@ -78,10 +125,12 @@ function createWeb3(moduleManager) {
|
|
|
78
125
|
getCoinbaseWalletIdentifier,
|
|
79
126
|
getOKXWalletIdentifier,
|
|
80
127
|
getBaseIdentifier,
|
|
128
|
+
getSolanaIdentifier,
|
|
81
129
|
generateSignatureWithMetamask,
|
|
82
130
|
generateSignatureWithCoinbaseWallet,
|
|
83
131
|
generateSignatureWithOKXWallet,
|
|
84
|
-
generateSignatureWithBase
|
|
132
|
+
generateSignatureWithBase,
|
|
133
|
+
generateSignatureWithSolana
|
|
85
134
|
};
|
|
86
135
|
}
|
|
87
136
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web3.mjs","names":[],"sources":["../../../../src/internal/clerk-js/web3.ts"],"sourcesContent":["import type { ModuleManager } from '../../moduleManager';\nimport type { Web3Provider } from '../../types';\nimport { clerkUnsupportedEnvironmentWarning } from './errors';\nimport { toHex } from './hex';\nimport { getInjectedWeb3Providers } from './injectedWeb3Providers';\n\ntype GetWeb3IdentifierParams = {\n provider: Web3Provider;\n};\n\ntype GenerateWeb3SignatureParams = GenerateSignatureParams & {\n provider: Web3Provider;\n};\n\ntype GenerateSignatureParams = {\n identifier: string;\n nonce: string;\n};\n\nexport function createWeb3(moduleManager: ModuleManager) {\n async function getWeb3Identifier(params: GetWeb3IdentifierParams): Promise<string> {\n const { provider } = params;\n const ethereum = await getEthereumProvider(provider);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!ethereum) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n const identifiers = await ethereum.request({ method: 'eth_requestAccounts' });\n // @ts-ignore -- Provider SDKs may return unknown shape; use first address if present\n return (identifiers && identifiers[0]) || '';\n }\n\n async function generateWeb3Signature(params: GenerateWeb3SignatureParams): Promise<string> {\n const { identifier, nonce, provider } = params;\n const ethereum = await getEthereumProvider(provider);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!ethereum) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n return await ethereum.request({\n method: 'personal_sign',\n params: [`0x${toHex(nonce)}`, identifier],\n });\n }\n\n async function getMetamaskIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'metamask' });\n }\n\n async function getCoinbaseWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'coinbase_wallet' });\n }\n\n async function getOKXWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'okx_wallet' });\n }\n\n async function getBaseIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'base' });\n }\n\n async function generateSignatureWithMetamask(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'metamask' });\n }\n\n async function generateSignatureWithCoinbaseWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'coinbase_wallet' });\n }\n\n async function generateSignatureWithOKXWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'okx_wallet' });\n }\n\n async function generateSignatureWithBase(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'base' });\n }\n\n async function getEthereumProvider(provider: Web3Provider) {\n if (provider === 'coinbase_wallet') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Coinbase Wallet');\n return null;\n }\n\n const coinbaseModule = await moduleManager.import('@coinbase/wallet-sdk');\n if (!coinbaseModule) {\n return null;\n }\n const sdk = coinbaseModule.createCoinbaseWalletSDK({\n preference: {\n options: 'all',\n },\n });\n return sdk.getProvider();\n }\n if (provider === 'base') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Base');\n return null;\n }\n\n try {\n const baseModule = await moduleManager.import('@base-org/account');\n if (!baseModule) {\n return null;\n }\n\n const sdk = baseModule.createBaseAccountSDK({\n appName:\n (typeof window !== 'undefined' &&\n // @ts-expect-error missing types\n (window.Clerk as any)?.__internal_environment?.displayConfig?.applicationName) ||\n (typeof document !== 'undefined' && document.title) ||\n 'Web3 Application',\n });\n return sdk.getProvider();\n } catch {\n return null;\n }\n }\n\n return getInjectedWeb3Providers().get(provider);\n }\n\n return {\n getWeb3Identifier,\n generateWeb3Signature,\n getMetamaskIdentifier,\n getCoinbaseWalletIdentifier,\n getOKXWalletIdentifier,\n getBaseIdentifier,\n generateSignatureWithMetamask,\n generateSignatureWithCoinbaseWallet,\n generateSignatureWithOKXWallet,\n generateSignatureWithBase,\n };\n}\n"],"mappings":";;;;;AAmBA,SAAgB,WAAW,eAA8B;CACvD,eAAe,kBAAkB,QAAkD;EACjF,MAAM,EAAE,aAAa;EACrB,MAAM,WAAW,MAAM,oBAAoB,SAAS;AAGpD,MAAI,CAAC,SAGH,QAAO;EAGT,MAAM,cAAc,MAAM,SAAS,QAAQ,EAAE,QAAQ,uBAAuB,CAAC;AAE7E,SAAQ,eAAe,YAAY,MAAO;;CAG5C,eAAe,sBAAsB,QAAsD;EACzF,MAAM,EAAE,YAAY,OAAO,aAAa;EACxC,MAAM,WAAW,MAAM,oBAAoB,SAAS;AAGpD,MAAI,CAAC,SAGH,QAAO;AAGT,SAAO,MAAM,SAAS,QAAQ;GAC5B,QAAQ;GACR,QAAQ,CAAC,KAAK,MAAM,MAAM,IAAI,WAAW;GAC1C,CAAC;;CAGJ,eAAe,wBAAyC;AACtD,SAAO,MAAM,kBAAkB,EAAE,UAAU,YAAY,CAAC;;CAG1D,eAAe,8BAA+C;AAC5D,SAAO,MAAM,kBAAkB,EAAE,UAAU,mBAAmB,CAAC;;CAGjE,eAAe,yBAA0C;AACvD,SAAO,MAAM,kBAAkB,EAAE,UAAU,cAAc,CAAC;;CAG5D,eAAe,oBAAqC;AAClD,SAAO,MAAM,kBAAkB,EAAE,UAAU,QAAQ,CAAC;;CAGtD,eAAe,8BAA8B,QAAkD;AAC7F,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAY,CAAC;;CAGzE,eAAe,oCAAoC,QAAkD;AACnG,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAmB,CAAC;;CAGhF,eAAe,+BAA+B,QAAkD;AAC9F,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAc,CAAC;;CAG3E,eAAe,0BAA0B,QAAkD;AACzF,SAAO,MAAM,sBAAsB;GAAE,GAAG;GAAQ,UAAU;GAAQ,CAAC;;CAGrE,eAAe,oBAAoB,UAAwB;AACzD,MAAI,aAAa,mBAAmB;GAMlC,MAAM,iBAAiB,MAAM,cAAc,OAAO,uBAAuB;AACzE,OAAI,CAAC,eACH,QAAO;AAOT,UALY,eAAe,wBAAwB,EACjD,YAAY,EACV,SAAS,OACV,EACF,CAAC,CACS,aAAa;;AAE1B,MAAI,aAAa,OAMf,KAAI;GACF,MAAM,aAAa,MAAM,cAAc,OAAO,oBAAoB;AAClE,OAAI,CAAC,WACH,QAAO;AAWT,UARY,WAAW,qBAAqB,EAC1C,SACG,OAAO,WAAW,eAEhB,OAAO,OAAe,wBAAwB,eAAe,mBAC/D,OAAO,aAAa,eAAe,SAAS,SAC7C,oBACH,CAAC,CACS,aAAa;UAClB;AACN,UAAO;;AAIX,SAAO,0BAA0B,CAAC,IAAI,SAAS;;AAGjD,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD"}
|
|
1
|
+
{"version":3,"file":"web3.mjs","names":["identifiers","generateWeb3Signature: GenerateSignature"],"sources":["../../../../src/internal/clerk-js/web3.ts"],"sourcesContent":["import type { SolanaWalletAdapterWallet } from '@solana/wallet-standard';\n\nimport { buildErrorThrower, ClerkRuntimeError } from '@/error';\n\nimport type { ModuleManager } from '../../moduleManager';\nimport type { GenerateSignature, Web3Provider } from '../../types';\nimport { clerkUnsupportedEnvironmentWarning } from './errors';\nimport { toHex } from './hex';\nimport { getInjectedWeb3EthProviders } from './injectedWeb3EthProviders';\nimport { getInjectedWeb3SolanaProviders } from './injectedWeb3SolanaProviders';\n\ntype GetWeb3IdentifierParams = {\n provider: Web3Provider;\n walletName?: string;\n};\n\n// '@solana/wallet-standard'\nconst StandardConnect = `standard:connect`;\nconst SolanaSignMessage = `solana:signMessage`;\n\ntype GenerateSignatureParams = {\n identifier: string;\n nonce: string;\n};\n\ntype GenerateSolanaSignatureParams = GenerateSignatureParams & {\n walletName: string;\n};\n\nexport function createWeb3(moduleManager: ModuleManager) {\n const errorThrower = buildErrorThrower({\n packageName: '@clerk/shared',\n });\n\n async function getWeb3Identifier(params: GetWeb3IdentifierParams): Promise<string> {\n const { provider, walletName } = params;\n const walletProvider = await getWeb3Wallet(provider, walletName);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!walletProvider) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n if (provider === 'solana') {\n const identifiers = await walletProvider.features[StandardConnect].connect();\n return (identifiers && identifiers.accounts[0].address) || '';\n }\n\n // Ethereum providers\n const identifiers = await walletProvider.request({ method: 'eth_requestAccounts' });\n // @ts-ignore -- Provider SDKs may return unknown shape; use first address if present\n return (identifiers && identifiers[0]) || '';\n }\n\n const generateWeb3Signature: GenerateSignature = async (params): Promise<string> => {\n const { identifier, nonce, provider, walletName = '' } = params;\n const wallet = await getWeb3Wallet(provider, walletName);\n\n // TODO - core-3: Improve error handling for the case when the provider is not found\n if (!wallet) {\n // If a plugin for the requested provider is not found,\n // the flow will fail as it has been the expected behavior so far.\n return '';\n }\n\n if (provider === 'solana') {\n try {\n const solanaWallet = wallet as SolanaWalletAdapterWallet;\n const walletAccount = solanaWallet.accounts.find(a => a.address === identifier);\n if (!walletAccount) {\n console.warn(`Wallet account with address ${identifier} not found`);\n return '';\n }\n const signedMessages = await solanaWallet.features[SolanaSignMessage]?.signMessage({\n account: walletAccount,\n message: new TextEncoder().encode(nonce),\n });\n // Convert signature Uint8Array to base64 string\n return signedMessages?.[0]?.signature ? btoa(String.fromCharCode(...signedMessages[0].signature)) : '';\n } catch (err) {\n if (err instanceof Error && err.message.includes('User rejected the request.')) {\n throw new ClerkRuntimeError('Web3 signature request was rejected by the user.', {\n code: 'web3_signature_request_rejected',\n });\n }\n throw new ClerkRuntimeError('An error occurred while generating the Solana signature.', {\n code: 'web3_solana_signature_generation_failed',\n cause: err instanceof Error ? err : undefined,\n });\n }\n }\n\n return await wallet.request({\n method: 'personal_sign',\n params: [`0x${toHex(nonce)}`, identifier],\n });\n };\n\n async function getMetamaskIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'metamask' });\n }\n\n async function getCoinbaseWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'coinbase_wallet' });\n }\n\n async function getOKXWalletIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'okx_wallet' });\n }\n\n async function getBaseIdentifier(): Promise<string> {\n return await getWeb3Identifier({ provider: 'base' });\n }\n\n async function getSolanaIdentifier(walletName: string): Promise<string> {\n return await getWeb3Identifier({ provider: 'solana', walletName });\n }\n\n async function generateSignatureWithMetamask(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'metamask' });\n }\n\n async function generateSignatureWithCoinbaseWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'coinbase_wallet' });\n }\n\n async function generateSignatureWithOKXWallet(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'okx_wallet' });\n }\n\n async function generateSignatureWithBase(params: GenerateSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'base' });\n }\n async function generateSignatureWithSolana(params: GenerateSolanaSignatureParams): Promise<string> {\n return await generateWeb3Signature({ ...params, provider: 'solana' });\n }\n\n async function getWeb3Wallet(provider: Web3Provider, walletName?: string) {\n if (provider === 'coinbase_wallet') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Coinbase Wallet');\n return null;\n }\n\n const coinbaseModule = await moduleManager.import('@coinbase/wallet-sdk');\n if (!coinbaseModule) {\n return null;\n }\n const sdk = coinbaseModule.createCoinbaseWalletSDK({\n preference: {\n options: 'all',\n },\n });\n return sdk.getProvider();\n }\n if (provider === 'base') {\n if (__BUILD_DISABLE_RHC__) {\n clerkUnsupportedEnvironmentWarning('Base');\n return null;\n }\n\n try {\n const baseModule = await moduleManager.import('@base-org/account');\n if (!baseModule) {\n return null;\n }\n\n const sdk = baseModule.createBaseAccountSDK({\n appName:\n (typeof window !== 'undefined' &&\n // @ts-expect-error missing types\n (window.Clerk as any)?.__internal_environment?.displayConfig?.applicationName) ||\n (typeof document !== 'undefined' && document.title) ||\n 'Web3 Application',\n });\n return sdk.getProvider();\n } catch {\n return null;\n }\n }\n\n if (provider === 'solana') {\n if (!walletName || walletName.length === 0) {\n errorThrower.throw('Wallet name must be provided to get Solana wallet provider');\n return;\n }\n return await getInjectedWeb3SolanaProviders().get(walletName);\n }\n\n return getInjectedWeb3EthProviders().get(provider);\n }\n\n return {\n getWeb3Identifier,\n generateWeb3Signature,\n getMetamaskIdentifier,\n getCoinbaseWalletIdentifier,\n getOKXWalletIdentifier,\n getBaseIdentifier,\n getSolanaIdentifier,\n generateSignatureWithMetamask,\n generateSignatureWithCoinbaseWallet,\n generateSignatureWithOKXWallet,\n generateSignatureWithBase,\n generateSignatureWithSolana,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as SharedSignedInAuthObjectProperties,
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { C as SharedSignedInAuthObjectProperties, Xi as JwtPayload } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/jwtPayloadParser.d.ts
|
|
5
5
|
declare const parsePermissions: ({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as SharedSignedInAuthObjectProperties,
|
|
1
|
+
import { C as SharedSignedInAuthObjectProperties, Xi as JwtPayload } from "./index-BZAgbf9u.js";
|
|
2
2
|
import "./moduleManager-WB15hU3T.js";
|
|
3
3
|
|
|
4
4
|
//#region src/jwtPayloadParser.d.ts
|
package/dist/runtime/keys.d.mts
CHANGED
package/dist/runtime/keys.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { xt as SDKMetadata } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/loadClerkJsScript.d.ts
|
|
5
5
|
type LoadClerkJsScriptOptions = {
|
|
@@ -8,7 +8,7 @@ const require_loadScript = require('./loadScript-CW1MV2O0.js');
|
|
|
8
8
|
const require_proxy = require('./proxy-BVlsuX5g.js');
|
|
9
9
|
require('./instance-DykLn3Pi.js');
|
|
10
10
|
const require_url = require('./url-DwWU8E5q.js');
|
|
11
|
-
const require_versionSelector = require('./versionSelector-
|
|
11
|
+
const require_versionSelector = require('./versionSelector-BtbMovl-.js');
|
|
12
12
|
|
|
13
13
|
//#region src/loadClerkJsScript.ts
|
|
14
14
|
const { isDevOrStagingUrl } = require_keys.createDevOrStagingUrlCache();
|
|
@@ -147,7 +147,7 @@ const clerkUiScriptUrl = (opts) => {
|
|
|
147
147
|
publishableKey,
|
|
148
148
|
proxyUrl,
|
|
149
149
|
domain
|
|
150
|
-
})}/npm/@clerk/ui@${require_versionSelector.versionSelector(clerkUiVersion, "1.0.0-snapshot.
|
|
150
|
+
})}/npm/@clerk/ui@${require_versionSelector.versionSelector(clerkUiVersion, "1.0.0-snapshot.v20251218183643")}/dist/ui.browser.js`;
|
|
151
151
|
};
|
|
152
152
|
const buildClerkJsScriptAttributes = (options) => {
|
|
153
153
|
const obj = {};
|
|
@@ -8,7 +8,7 @@ import { t as loadScript } from "./loadScript-CHWOPTAN.mjs";
|
|
|
8
8
|
import { i as proxyUrlToAbsoluteURL, r as isValidProxyUrl } from "./proxy-C0HjCApu.mjs";
|
|
9
9
|
import "./instance-DniYMiU-.mjs";
|
|
10
10
|
import { t as addClerkPrefix } from "./url-DasDWsj9.mjs";
|
|
11
|
-
import { n as versionSelector } from "./versionSelector-
|
|
11
|
+
import { n as versionSelector } from "./versionSelector-CUNYhtry.mjs";
|
|
12
12
|
|
|
13
13
|
//#region src/loadClerkJsScript.ts
|
|
14
14
|
const { isDevOrStagingUrl } = createDevOrStagingUrlCache();
|
|
@@ -147,7 +147,7 @@ const clerkUiScriptUrl = (opts) => {
|
|
|
147
147
|
publishableKey,
|
|
148
148
|
proxyUrl,
|
|
149
149
|
domain
|
|
150
|
-
})}/npm/@clerk/ui@${versionSelector(clerkUiVersion, "1.0.0-snapshot.
|
|
150
|
+
})}/npm/@clerk/ui@${versionSelector(clerkUiVersion, "1.0.0-snapshot.v20251218183643")}/dist/ui.browser.js`;
|
|
151
151
|
};
|
|
152
152
|
const buildClerkJsScriptAttributes = (options) => {
|
|
153
153
|
const obj = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moduleManager-
|
|
1
|
+
{"version":3,"file":"moduleManager-BYIq4wgi.d.mts","names":[],"sources":["../../src/moduleManager.ts"],"sourcesContent":[],"mappings":";;;;;;;KAEY,yBAAA;4BAAyB;uCAAA;8BAAA;iCAAA;8BAAA;;AAAzB,KAQA,gBAAA,GARA,MAQyB,yBARA;AAAA,UAUpB,aAAA,CAVoB;EAAA,MAAA,EAAA,CAAA,UAWhB,gBAXgB,CAAA,CAAA,MAAA,EAWU,CAXV,EAAA,GAWgB,OAXhB,CAWwB,yBAXxB,CAWkD,CAXlD,CAAA,GAAA,SAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ImportableModuleToTypeMap, r as ModuleManager, t as ImportableModule } from "./moduleManager-
|
|
1
|
+
import { n as ImportableModuleToTypeMap, r as ModuleManager, t as ImportableModule } from "./moduleManager-BYIq4wgi.mjs";
|
|
2
2
|
export { ImportableModule, ImportableModuleToTypeMap, ModuleManager };
|
package/dist/runtime/oauth.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { ld as OAuthProvider, ud as OAuthProviderData, wu as OAuthStrategy } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/oauth.d.ts
|
|
5
5
|
declare const OAUTH_PROVIDERS: OAuthProviderData[];
|
package/dist/runtime/oauth.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ld as OAuthProvider, ud as OAuthProviderData, wu as OAuthStrategy } from "./index-BZAgbf9u.js";
|
|
2
2
|
import "./moduleManager-WB15hU3T.js";
|
|
3
3
|
|
|
4
4
|
//#region src/oauth.d.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { ta as OrganizationMembershipResource } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/organization.d.ts
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-
|
|
1
|
+
{"version":3,"file":"path-BZX8wVkr.js","names":[],"sources":["../../src/internal/clerk-js/path.ts"],"sourcesContent":["const SEPARATOR = '/';\nconst MULTIPLE_SEPARATOR_REGEX = new RegExp(SEPARATOR + '{1,}', 'g');\n\ntype PathString = string | null | undefined;\n\nexport function joinPaths(a: PathString, b: PathString): string {\n return [a, b]\n .filter(p => p)\n .join(SEPARATOR)\n .replace(MULTIPLE_SEPARATOR_REGEX, SEPARATOR);\n}\n"],"mappings":";;AAAA,MAAM,YAAY;AAClB,MAAM,2BAA2B,IAAI,OAAO,YAAY,QAAQ,IAAI;AAIpE,SAAgB,UAAU,GAAe,GAAuB;AAC9D,QAAO,CAAC,GAAG,EAAE,CACV,QAAO,MAAK,EAAE,CACd,KAAK,UAAU,CACf,QAAQ,0BAA0B,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-
|
|
1
|
+
{"version":3,"file":"path-C9ID-JSF.mjs","names":[],"sources":["../../src/internal/clerk-js/path.ts"],"sourcesContent":["const SEPARATOR = '/';\nconst MULTIPLE_SEPARATOR_REGEX = new RegExp(SEPARATOR + '{1,}', 'g');\n\ntype PathString = string | null | undefined;\n\nexport function joinPaths(a: PathString, b: PathString): string {\n return [a, b]\n .filter(p => p)\n .join(SEPARATOR)\n .replace(MULTIPLE_SEPARATOR_REGEX, SEPARATOR);\n}\n"],"mappings":";AAAA,MAAM,YAAY;AAClB,MAAM,2BAA2B,IAAI,OAAO,YAAY,QAAQ,IAAI;AAIpE,SAAgB,UAAU,GAAe,GAAuB;AAC9D,QAAO,CAAC,GAAG,EAAE,CACV,QAAO,MAAK,EAAE,CACd,KAAK,UAAU,CACf,QAAQ,0BAA0B,UAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { cf as Autocomplete } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/pathMatcher.d.ts
|
|
5
5
|
type WithPathPatternWildcard<T = string> = `${T & string}(.*)`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"querystring-
|
|
1
|
+
{"version":3,"file":"querystring-B_piPsHv.js","names":["queryParamsObject: { [key: string]: string | string[] }"],"sources":["../../src/internal/clerk-js/querystring.ts"],"sourcesContent":["export const getQueryParams = (queryString: string) => {\n const queryParamsObject: { [key: string]: string | string[] } = {};\n const queryParams = new URLSearchParams(queryString);\n queryParams.forEach((value, key) => {\n if (key in queryParamsObject) {\n // If the key already exists, we need to handle it as an array\n const existingValue = queryParamsObject[key];\n if (Array.isArray(existingValue)) {\n existingValue.push(value);\n } else {\n queryParamsObject[key] = [existingValue, value];\n }\n } else {\n queryParamsObject[key] = value;\n }\n });\n return queryParamsObject as Record<string, string>;\n};\n\ntype StringifyQueryParamsOptions = {\n keyEncoder?: (key: string) => string;\n};\n\n// TODO @userland-errors:\nexport const stringifyQueryParams = (\n params:\n | Record<string, string | undefined | null | object | boolean | Array<string | undefined | null>>\n | null\n | undefined\n | string,\n opts: StringifyQueryParamsOptions = {},\n) => {\n if (params === null || params === undefined) {\n return '';\n }\n if (!params || typeof params !== 'object') {\n return '';\n }\n\n const queryParams = new URLSearchParams();\n\n Object.keys(params).forEach(key => {\n const encodedKey = opts.keyEncoder ? opts.keyEncoder(key) : key;\n const value = params[key];\n if (Array.isArray(value)) {\n value.forEach(v => v !== undefined && queryParams.append(encodedKey, v || ''));\n } else if (value === undefined) {\n return;\n } else if (typeof value === 'object' && value !== null) {\n queryParams.append(encodedKey, JSON.stringify(value));\n } else {\n queryParams.append(encodedKey, String(value ?? ''));\n }\n });\n\n return queryParams.toString();\n};\n"],"mappings":";;AAAA,MAAa,kBAAkB,gBAAwB;CACrD,MAAMA,oBAA0D,EAAE;AAElE,CADoB,IAAI,gBAAgB,YAAY,CACxC,SAAS,OAAO,QAAQ;AAClC,MAAI,OAAO,mBAAmB;GAE5B,MAAM,gBAAgB,kBAAkB;AACxC,OAAI,MAAM,QAAQ,cAAc,CAC9B,eAAc,KAAK,MAAM;OAEzB,mBAAkB,OAAO,CAAC,eAAe,MAAM;QAGjD,mBAAkB,OAAO;GAE3B;AACF,QAAO;;AAQT,MAAa,wBACX,QAKA,OAAoC,EAAE,KACnC;AACH,KAAI,WAAW,QAAQ,WAAW,OAChC,QAAO;AAET,KAAI,CAAC,UAAU,OAAO,WAAW,SAC/B,QAAO;CAGT,MAAM,cAAc,IAAI,iBAAiB;AAEzC,QAAO,KAAK,OAAO,CAAC,SAAQ,QAAO;EACjC,MAAM,aAAa,KAAK,aAAa,KAAK,WAAW,IAAI,GAAG;EAC5D,MAAM,QAAQ,OAAO;AACrB,MAAI,MAAM,QAAQ,MAAM,CACtB,OAAM,SAAQ,MAAK,MAAM,UAAa,YAAY,OAAO,YAAY,KAAK,GAAG,CAAC;WACrE,UAAU,OACnB;WACS,OAAO,UAAU,YAAY,UAAU,KAChD,aAAY,OAAO,YAAY,KAAK,UAAU,MAAM,CAAC;MAErD,aAAY,OAAO,YAAY,OAAO,SAAS,GAAG,CAAC;GAErD;AAEF,QAAO,YAAY,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"querystring-
|
|
1
|
+
{"version":3,"file":"querystring-Cw_OznaM.mjs","names":["queryParamsObject: { [key: string]: string | string[] }"],"sources":["../../src/internal/clerk-js/querystring.ts"],"sourcesContent":["export const getQueryParams = (queryString: string) => {\n const queryParamsObject: { [key: string]: string | string[] } = {};\n const queryParams = new URLSearchParams(queryString);\n queryParams.forEach((value, key) => {\n if (key in queryParamsObject) {\n // If the key already exists, we need to handle it as an array\n const existingValue = queryParamsObject[key];\n if (Array.isArray(existingValue)) {\n existingValue.push(value);\n } else {\n queryParamsObject[key] = [existingValue, value];\n }\n } else {\n queryParamsObject[key] = value;\n }\n });\n return queryParamsObject as Record<string, string>;\n};\n\ntype StringifyQueryParamsOptions = {\n keyEncoder?: (key: string) => string;\n};\n\n// TODO @userland-errors:\nexport const stringifyQueryParams = (\n params:\n | Record<string, string | undefined | null | object | boolean | Array<string | undefined | null>>\n | null\n | undefined\n | string,\n opts: StringifyQueryParamsOptions = {},\n) => {\n if (params === null || params === undefined) {\n return '';\n }\n if (!params || typeof params !== 'object') {\n return '';\n }\n\n const queryParams = new URLSearchParams();\n\n Object.keys(params).forEach(key => {\n const encodedKey = opts.keyEncoder ? opts.keyEncoder(key) : key;\n const value = params[key];\n if (Array.isArray(value)) {\n value.forEach(v => v !== undefined && queryParams.append(encodedKey, v || ''));\n } else if (value === undefined) {\n return;\n } else if (typeof value === 'object' && value !== null) {\n queryParams.append(encodedKey, JSON.stringify(value));\n } else {\n queryParams.append(encodedKey, String(value ?? ''));\n }\n });\n\n return queryParams.toString();\n};\n"],"mappings":";AAAA,MAAa,kBAAkB,gBAAwB;CACrD,MAAMA,oBAA0D,EAAE;AAElE,CADoB,IAAI,gBAAgB,YAAY,CACxC,SAAS,OAAO,QAAQ;AAClC,MAAI,OAAO,mBAAmB;GAE5B,MAAM,gBAAgB,kBAAkB;AACxC,OAAI,MAAM,QAAQ,cAAc,CAC9B,eAAc,KAAK,MAAM;OAEzB,mBAAkB,OAAO,CAAC,eAAe,MAAM;QAGjD,mBAAkB,OAAO;GAE3B;AACF,QAAO;;AAQT,MAAa,wBACX,QAKA,OAAoC,EAAE,KACnC;AACH,KAAI,WAAW,QAAQ,WAAW,OAChC,QAAO;AAET,KAAI,CAAC,UAAU,OAAO,WAAW,SAC/B,QAAO;CAGT,MAAM,cAAc,IAAI,iBAAiB;AAEzC,QAAO,KAAK,OAAO,CAAC,SAAQ,QAAO;EACjC,MAAM,aAAa,KAAK,aAAa,KAAK,WAAW,IAAI,GAAG;EAC5D,MAAM,QAAQ,OAAO;AACrB,MAAI,MAAM,QAAQ,MAAM,CACtB,OAAM,SAAQ,MAAK,MAAM,UAAa,YAAY,OAAO,YAAY,KAAK,GAAG,CAAC;WACrE,UAAU,OACnB;WACS,OAAO,UAAU,YAAY,UAAU,KAChD,aAAY,OAAO,YAAY,KAAK,UAAU,MAAM,CAAC;MAErD,aAAY,OAAO,YAAY,OAAO,SAAS,GAAG,CAAC;GAErD;AAEF,QAAO,YAAY,UAAU"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../moduleManager-
|
|
3
|
-
import "../error-
|
|
1
|
+
import { Cd as BillingCheckoutResource, Ef as ClerkPaginatedResponse, Hd as BillingSubscriptionPlanPeriod, Id as BillingPlanResource, Kn as ClientResource, Lf as ClerkAPIResponseError, Lo as OrganizationInvitationResource, Md as BillingPaymentMethodResource, Mo as SessionVerificationLevel, Pd as BillingPaymentResource, Qa as GetUserOrganizationSuggestionsParams, Qd as ForPayerType, R as CheckoutSignalValue, Rd as BillingStatementResource, St as SetActive, T as APIKeyResource, U as ClerkOptions, Ud as BillingSubscriptionResource, Wa as SignedInSessionResource, Xa as GetUserOrganizationInvitationsParams, Z as CreateOrganizationParams, Za as GetUserOrganizationMembershipParams, ao as UserOrganizationInvitationResource, ca as GetInvitationsParams, et as GetAPIKeysParams, fo as OrganizationSuggestionResource, g as UseSessionReturn, h as UseSessionListReturn, ha as OrganizationResource, la as GetMembersParams, ou as OrganizationDomainResource, pl as ClerkAPIResponseError$1, qd as CheckoutFlowResource, ro as UserResource, sa as GetDomainsParams, ta as OrganizationMembershipResource, ua as GetMembershipRequestParams, ut as LoadedClerk, xa as OrganizationMembershipRequestResource, y as UseUserReturn } from "../index-C799Ulyv.mjs";
|
|
2
|
+
import "../moduleManager-BYIq4wgi.mjs";
|
|
3
|
+
import "../error-CClf0-CM.mjs";
|
|
4
4
|
import React, { PropsWithChildren, ReactNode } from "react";
|
|
5
5
|
import { dequal } from "dequal";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Cd as BillingCheckoutResource, Ef as ClerkPaginatedResponse, Hd as BillingSubscriptionPlanPeriod, Id as BillingPlanResource, Kn as ClientResource, Lf as ClerkAPIResponseError, Lo as OrganizationInvitationResource, Md as BillingPaymentMethodResource, Mo as SessionVerificationLevel, Pd as BillingPaymentResource, Qa as GetUserOrganizationSuggestionsParams, Qd as ForPayerType, R as CheckoutSignalValue, Rd as BillingStatementResource, St as SetActive, T as APIKeyResource, U as ClerkOptions, Ud as BillingSubscriptionResource, Wa as SignedInSessionResource, Xa as GetUserOrganizationInvitationsParams, Z as CreateOrganizationParams, Za as GetUserOrganizationMembershipParams, ao as UserOrganizationInvitationResource, ca as GetInvitationsParams, et as GetAPIKeysParams, fo as OrganizationSuggestionResource, g as UseSessionReturn, h as UseSessionListReturn, ha as OrganizationResource, la as GetMembersParams, ou as OrganizationDomainResource, pl as ClerkAPIResponseError$1, qd as CheckoutFlowResource, ro as UserResource, sa as GetDomainsParams, ta as OrganizationMembershipResource, ua as GetMembershipRequestParams, ut as LoadedClerk, xa as OrganizationMembershipRequestResource, y as UseUserReturn } from "../index-BZAgbf9u.js";
|
|
2
2
|
import "../moduleManager-WB15hU3T.js";
|
|
3
|
-
import "../error-
|
|
3
|
+
import "../error-o9rMDFII.js";
|
|
4
4
|
import React, { PropsWithChildren, ReactNode } from "react";
|
|
5
5
|
import { dequal } from "dequal";
|
|
6
6
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as RoutingMode, u as ClerkHostRouter } from "./index-
|
|
2
|
-
import "./moduleManager-
|
|
1
|
+
import { d as RoutingMode, u as ClerkHostRouter } from "./index-C799Ulyv.mjs";
|
|
2
|
+
import "./moduleManager-BYIq4wgi.mjs";
|
|
3
3
|
import React from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/router/router.d.ts
|