@clerk/shared 4.0.0-snapshot.v20251217165918 → 4.0.0-snapshot.v20251218165926

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 (194) hide show
  1. package/dist/runtime/alternativePhoneCode.d.mts +2 -2
  2. package/dist/runtime/alternativePhoneCode.d.ts +1 -1
  3. package/dist/runtime/authorization-errors.d.mts +2 -2
  4. package/dist/runtime/authorization-errors.d.ts +1 -1
  5. package/dist/runtime/authorization.d.mts +2 -2
  6. package/dist/runtime/authorization.d.ts +1 -1
  7. package/dist/runtime/clerkEventBus.d.mts +2 -2
  8. package/dist/runtime/clerkEventBus.d.ts +1 -1
  9. package/dist/runtime/color.d.mts +2 -2
  10. package/dist/runtime/color.d.mts.map +1 -1
  11. package/dist/runtime/color.d.ts +1 -1
  12. package/dist/runtime/{complexity-Bh-FcgPr.mjs → complexity-CzNKZI5c.mjs} +1 -1
  13. package/dist/runtime/{complexity-Bh-FcgPr.mjs.map → complexity-CzNKZI5c.mjs.map} +1 -1
  14. package/dist/runtime/{complexity-ChYONg95.js → complexity-DCCqEy11.js} +1 -1
  15. package/dist/runtime/{complexity-ChYONg95.js.map → complexity-DCCqEy11.js.map} +1 -1
  16. package/dist/runtime/deriveState.d.mts +2 -2
  17. package/dist/runtime/deriveState.d.ts +1 -1
  18. package/dist/runtime/dom/index.d.mts +1 -1
  19. package/dist/runtime/dom/waitForElement.d.mts +1 -1
  20. package/dist/runtime/{error-PZOXmiMQ.d.mts → error-CClf0-CM.d.mts} +2 -2
  21. package/dist/runtime/{error-PZOXmiMQ.d.mts.map → error-CClf0-CM.d.mts.map} +1 -1
  22. package/dist/runtime/{error-D_08BTAz.d.ts → error-o9rMDFII.d.ts} +2 -2
  23. package/dist/runtime/{error-D_08BTAz.d.ts.map → error-o9rMDFII.d.ts.map} +1 -1
  24. package/dist/runtime/error.d.mts +3 -3
  25. package/dist/runtime/error.d.ts +2 -2
  26. package/dist/runtime/esm-BYCxuimI.js +127 -0
  27. package/dist/runtime/esm-BYCxuimI.js.map +1 -0
  28. package/dist/runtime/esm-DEuqni59.mjs +126 -0
  29. package/dist/runtime/esm-DEuqni59.mjs.map +1 -0
  30. package/dist/runtime/{handleValueOrFn-PpdLgNiN.d.mts → handleValueOrFn-DCe6q2n8.d.mts} +1 -1
  31. package/dist/runtime/{handleValueOrFn-PpdLgNiN.d.mts.map → handleValueOrFn-DCe6q2n8.d.mts.map} +1 -1
  32. package/dist/runtime/handleValueOrFn.d.mts +1 -1
  33. package/dist/runtime/{index-C32ntfvR.d.ts → index-BZAgbf9u.d.ts} +78 -8
  34. package/dist/runtime/index-BZAgbf9u.d.ts.map +1 -0
  35. package/dist/runtime/{index-Bb1t7kYz.d.mts → index-C799Ulyv.d.mts} +79 -9
  36. package/dist/runtime/index-C799Ulyv.d.mts.map +1 -0
  37. package/dist/runtime/{injectedWeb3Providers-Czuy_wR9.js → injectedWeb3EthProviders-BhelKFzu.js} +8 -8
  38. package/dist/runtime/injectedWeb3EthProviders-BhelKFzu.js.map +1 -0
  39. package/dist/runtime/{injectedWeb3Providers-C8967kn3.mjs → injectedWeb3EthProviders-C531qWpV.mjs} +7 -7
  40. package/dist/runtime/injectedWeb3EthProviders-C531qWpV.mjs.map +1 -0
  41. package/dist/runtime/injectedWeb3SolanaProviders-CUxDnwMf.js +48 -0
  42. package/dist/runtime/injectedWeb3SolanaProviders-CUxDnwMf.js.map +1 -0
  43. package/dist/runtime/injectedWeb3SolanaProviders-DtmZdl_v.mjs +42 -0
  44. package/dist/runtime/injectedWeb3SolanaProviders-DtmZdl_v.mjs.map +1 -0
  45. package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.mts +2 -2
  46. package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.ts +1 -1
  47. package/dist/runtime/internal/clerk-js/componentGuards.d.mts +2 -2
  48. package/dist/runtime/internal/clerk-js/componentGuards.d.ts +1 -1
  49. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.mts +15 -0
  50. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.mts.map +1 -0
  51. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.ts +15 -0
  52. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.d.ts.map +1 -0
  53. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.js +3 -0
  54. package/dist/runtime/internal/clerk-js/injectedWeb3EthProviders.mjs +3 -0
  55. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.mts +13 -0
  56. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.mts.map +1 -0
  57. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.ts +13 -0
  58. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.d.ts.map +1 -0
  59. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.js +3 -0
  60. package/dist/runtime/internal/clerk-js/injectedWeb3SolanaProviders.mjs +3 -0
  61. package/dist/runtime/internal/clerk-js/passkeys.d.mts +3 -3
  62. package/dist/runtime/internal/clerk-js/passkeys.d.ts +2 -2
  63. package/dist/runtime/internal/clerk-js/passwords/complexity.d.mts +2 -2
  64. package/dist/runtime/internal/clerk-js/passwords/complexity.d.ts +1 -1
  65. package/dist/runtime/internal/clerk-js/passwords/complexity.js +1 -1
  66. package/dist/runtime/internal/clerk-js/passwords/complexity.mjs +1 -1
  67. package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.mts +2 -2
  68. package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.ts +1 -1
  69. package/dist/runtime/internal/clerk-js/passwords/password.d.mts +2 -2
  70. package/dist/runtime/internal/clerk-js/passwords/password.d.ts +1 -1
  71. package/dist/runtime/internal/clerk-js/passwords/password.js +3 -3
  72. package/dist/runtime/internal/clerk-js/passwords/password.mjs +3 -3
  73. package/dist/runtime/internal/clerk-js/passwords/strength.d.mts +2 -2
  74. package/dist/runtime/internal/clerk-js/passwords/strength.d.ts +1 -1
  75. package/dist/runtime/internal/clerk-js/passwords/strength.js +1 -1
  76. package/dist/runtime/internal/clerk-js/passwords/strength.mjs +1 -1
  77. package/dist/runtime/internal/clerk-js/path.js +1 -1
  78. package/dist/runtime/internal/clerk-js/path.mjs +1 -1
  79. package/dist/runtime/internal/clerk-js/queryParams.d.mts +3 -3
  80. package/dist/runtime/internal/clerk-js/queryParams.d.ts +2 -2
  81. package/dist/runtime/internal/clerk-js/querystring.js +1 -1
  82. package/dist/runtime/internal/clerk-js/querystring.mjs +1 -1
  83. package/dist/runtime/internal/clerk-js/redirectUrls.d.mts +2 -2
  84. package/dist/runtime/internal/clerk-js/redirectUrls.d.ts +1 -1
  85. package/dist/runtime/internal/clerk-js/redirectUrls.js +3 -3
  86. package/dist/runtime/internal/clerk-js/redirectUrls.mjs +3 -3
  87. package/dist/runtime/internal/clerk-js/sessionTasks.d.mts +3 -3
  88. package/dist/runtime/internal/clerk-js/sessionTasks.d.ts +2 -2
  89. package/dist/runtime/internal/clerk-js/sessionTasks.js +3 -3
  90. package/dist/runtime/internal/clerk-js/sessionTasks.mjs +3 -3
  91. package/dist/runtime/internal/clerk-js/url.d.mts +3 -3
  92. package/dist/runtime/internal/clerk-js/url.d.ts +2 -2
  93. package/dist/runtime/internal/clerk-js/url.js +3 -3
  94. package/dist/runtime/internal/clerk-js/url.mjs +3 -3
  95. package/dist/runtime/internal/clerk-js/user.d.mts +2 -2
  96. package/dist/runtime/internal/clerk-js/user.d.ts +1 -1
  97. package/dist/runtime/internal/clerk-js/web3.d.mts +9 -6
  98. package/dist/runtime/internal/clerk-js/web3.d.mts.map +1 -1
  99. package/dist/runtime/internal/clerk-js/web3.d.ts +8 -5
  100. package/dist/runtime/internal/clerk-js/web3.d.ts.map +1 -1
  101. package/dist/runtime/internal/clerk-js/web3.js +63 -14
  102. package/dist/runtime/internal/clerk-js/web3.js.map +1 -1
  103. package/dist/runtime/internal/clerk-js/web3.mjs +63 -14
  104. package/dist/runtime/internal/clerk-js/web3.mjs.map +1 -1
  105. package/dist/runtime/jwtPayloadParser.d.mts +2 -2
  106. package/dist/runtime/jwtPayloadParser.d.ts +1 -1
  107. package/dist/runtime/keys.d.mts +2 -2
  108. package/dist/runtime/keys.d.ts +1 -1
  109. package/dist/runtime/loadClerkJsScript.d.mts +2 -2
  110. package/dist/runtime/loadClerkJsScript.d.ts +1 -1
  111. package/dist/runtime/loadClerkJsScript.js +2 -2
  112. package/dist/runtime/loadClerkJsScript.mjs +2 -2
  113. package/dist/runtime/{moduleManager-pxNnXwxv.d.mts → moduleManager-BYIq4wgi.d.mts} +1 -1
  114. package/dist/runtime/{moduleManager-pxNnXwxv.d.mts.map → moduleManager-BYIq4wgi.d.mts.map} +1 -1
  115. package/dist/runtime/moduleManager.d.mts +1 -1
  116. package/dist/runtime/oauth.d.mts +2 -2
  117. package/dist/runtime/oauth.d.ts +1 -1
  118. package/dist/runtime/organization.d.mts +2 -2
  119. package/dist/runtime/organization.d.ts +1 -1
  120. package/dist/runtime/{path-BXMzEDID.js → path-BZX8wVkr.js} +1 -1
  121. package/dist/runtime/{path-BXMzEDID.js.map → path-BZX8wVkr.js.map} +1 -1
  122. package/dist/runtime/{path-B3ml2KXj.mjs → path-C9ID-JSF.mjs} +1 -1
  123. package/dist/runtime/{path-B3ml2KXj.mjs.map → path-C9ID-JSF.mjs.map} +1 -1
  124. package/dist/runtime/pathMatcher.d.mts +2 -2
  125. package/dist/runtime/pathMatcher.d.ts +1 -1
  126. package/dist/runtime/poller.d.ts.map +1 -1
  127. package/dist/runtime/{querystring-_iskl3P0.js → querystring-B_piPsHv.js} +1 -1
  128. package/dist/runtime/{querystring-_iskl3P0.js.map → querystring-B_piPsHv.js.map} +1 -1
  129. package/dist/runtime/{querystring-B46ecpLW.mjs → querystring-Cw_OznaM.mjs} +1 -1
  130. package/dist/runtime/{querystring-B46ecpLW.mjs.map → querystring-Cw_OznaM.mjs.map} +1 -1
  131. package/dist/runtime/react/index.d.mts +4 -4
  132. package/dist/runtime/react/index.d.ts +3 -3
  133. package/dist/runtime/router.d.mts +2 -2
  134. package/dist/runtime/router.d.ts +1 -1
  135. package/dist/runtime/router.d.ts.map +1 -1
  136. package/dist/runtime/saml.d.mts +2 -2
  137. package/dist/runtime/saml.d.ts +1 -1
  138. package/dist/runtime/{strength-C7cS9QCW.js → strength-BoUREzC7.js} +1 -1
  139. package/dist/runtime/{strength-C7cS9QCW.js.map → strength-BoUREzC7.js.map} +1 -1
  140. package/dist/runtime/{strength-D_SzJ_Bs.mjs → strength-CmnmefF6.mjs} +1 -1
  141. package/dist/runtime/{strength-D_SzJ_Bs.mjs.map → strength-CmnmefF6.mjs.map} +1 -1
  142. package/dist/runtime/telemetry.d.mts +2 -2
  143. package/dist/runtime/telemetry.d.ts +1 -1
  144. package/dist/runtime/types/index.d.mts +3 -3
  145. package/dist/runtime/types/index.d.ts +2 -2
  146. package/dist/runtime/ui/index.d.mts +2 -2
  147. package/dist/runtime/ui/index.d.ts +1 -1
  148. package/dist/runtime/{url-B6H3YfYM.d.mts → url-8eeYgf2A.d.mts} +2 -2
  149. package/dist/runtime/{url-B6H3YfYM.d.mts.map → url-8eeYgf2A.d.mts.map} +1 -1
  150. package/dist/runtime/{url-Cf4YiXkp.mjs → url-BKWznjF0.mjs} +3 -3
  151. package/dist/runtime/{url-Cf4YiXkp.mjs.map → url-BKWznjF0.mjs.map} +1 -1
  152. package/dist/runtime/{url-DeGY-7z9.js → url-De4o_RSN.js} +3 -3
  153. package/dist/runtime/{url-DeGY-7z9.js.map → url-De4o_RSN.js.map} +1 -1
  154. package/dist/runtime/{url-oznSXRUO.d.ts → url-DnBrs0FC.d.ts} +2 -2
  155. package/dist/runtime/{url-oznSXRUO.d.ts.map → url-DnBrs0FC.d.ts.map} +1 -1
  156. package/dist/runtime/utils/index.d.mts +1 -1
  157. package/dist/runtime/utils/index.js +1 -1
  158. package/dist/runtime/utils/index.mjs +1 -1
  159. package/dist/runtime/{utils-Cm0NUhek.js → utils-JIOtJbTe.js} +2 -2
  160. package/dist/runtime/utils-JIOtJbTe.js.map +1 -0
  161. package/dist/runtime/{utils-DIVknyRo.mjs → utils-_GMGltn-.mjs} +2 -2
  162. package/dist/runtime/utils-_GMGltn-.mjs.map +1 -0
  163. package/dist/runtime/{versionSelector-DXnG3fwO.js → versionSelector-B5q6tBm5.js} +2 -2
  164. package/dist/runtime/{versionSelector-DXnG3fwO.js.map → versionSelector-B5q6tBm5.js.map} +1 -1
  165. package/dist/runtime/{versionSelector-lDZek29R.mjs → versionSelector-D3qbhCsB.mjs} +2 -2
  166. package/dist/runtime/{versionSelector-lDZek29R.mjs.map → versionSelector-D3qbhCsB.mjs.map} +1 -1
  167. package/dist/runtime/versionSelector.js +1 -1
  168. package/dist/runtime/versionSelector.mjs +1 -1
  169. package/dist/runtime/{waitForElement-DIzKZ_vR.d.mts → waitForElement-DOgNgQPc.d.mts} +1 -1
  170. package/dist/runtime/waitForElement-DOgNgQPc.d.mts.map +1 -0
  171. package/dist/runtime/web3.d.mts +2 -2
  172. package/dist/runtime/web3.d.ts +1 -1
  173. package/dist/runtime/web3.js +5 -0
  174. package/dist/runtime/web3.js.map +1 -1
  175. package/dist/runtime/web3.mjs +5 -0
  176. package/dist/runtime/web3.mjs.map +1 -1
  177. package/dist/types/index.d.mts +77 -7
  178. package/dist/types/index.d.mts.map +1 -1
  179. package/dist/types/index.d.ts +77 -7
  180. package/dist/types/index.d.ts.map +1 -1
  181. package/package.json +5 -1
  182. package/dist/runtime/index-Bb1t7kYz.d.mts.map +0 -1
  183. package/dist/runtime/index-C32ntfvR.d.ts.map +0 -1
  184. package/dist/runtime/injectedWeb3Providers-C8967kn3.mjs.map +0 -1
  185. package/dist/runtime/injectedWeb3Providers-Czuy_wR9.js.map +0 -1
  186. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.mts +0 -15
  187. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.mts.map +0 -1
  188. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.ts +0 -15
  189. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.ts.map +0 -1
  190. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.js +0 -3
  191. package/dist/runtime/internal/clerk-js/injectedWeb3Providers.mjs +0 -3
  192. package/dist/runtime/utils-Cm0NUhek.js.map +0 -1
  193. package/dist/runtime/utils-DIVknyRo.mjs.map +0 -1
  194. 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 require_injectedWeb3Providers = require('../../injectedWeb3Providers-Czuy_wR9.js');
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 ethereum = await getEthereumProvider(provider);
10
- if (!ethereum) return "";
11
- const identifiers = await ethereum.request({ method: "eth_requestAccounts" });
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 function generateWeb3Signature(params) {
15
- const { identifier, nonce, provider } = params;
16
- const ethereum = await getEthereumProvider(provider);
17
- if (!ethereum) return "";
18
- return await ethereum.request({
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 getEthereumProvider(provider) {
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
- return require_injectedWeb3Providers.getInjectedWeb3Providers().get(provider);
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 getInjectedWeb3Providers } from "../../injectedWeb3Providers-C8967kn3.mjs";
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 ethereum = await getEthereumProvider(provider);
10
- if (!ethereum) return "";
11
- const identifiers = await ethereum.request({ method: "eth_requestAccounts" });
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 function generateWeb3Signature(params) {
15
- const { identifier, nonce, provider } = params;
16
- const ethereum = await getEthereumProvider(provider);
17
- if (!ethereum) return "";
18
- return await ethereum.request({
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 getEthereumProvider(provider) {
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
- return getInjectedWeb3Providers().get(provider);
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, Ji as JwtPayload } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
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, Ji as JwtPayload } from "./index-C32ntfvR.js";
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
@@ -1,5 +1,5 @@
1
- import { p as PublishableKey } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
1
+ import { p as PublishableKey } from "./index-C799Ulyv.mjs";
2
+ import "./moduleManager-BYIq4wgi.mjs";
3
3
 
4
4
  //#region src/keys.d.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { p as PublishableKey } from "./index-C32ntfvR.js";
1
+ import { p as PublishableKey } from "./index-BZAgbf9u.js";
2
2
  import "./moduleManager-WB15hU3T.js";
3
3
 
4
4
  //#region src/keys.d.ts
@@ -1,5 +1,5 @@
1
- import { bt as SDKMetadata } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
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 = {
@@ -1,4 +1,4 @@
1
- import { bt as SDKMetadata } from "./index-C32ntfvR.js";
1
+ import { xt as SDKMetadata } from "./index-BZAgbf9u.js";
2
2
  import "./moduleManager-WB15hU3T.js";
3
3
 
4
4
  //#region src/loadClerkJsScript.d.ts
@@ -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-DXnG3fwO.js');
11
+ const require_versionSelector = require('./versionSelector-B5q6tBm5.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.v20251217165918")}/dist/ui.browser.js`;
150
+ })}/npm/@clerk/ui@${require_versionSelector.versionSelector(clerkUiVersion, "1.0.0-snapshot.v20251218165926")}/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-lDZek29R.mjs";
11
+ import { n as versionSelector } from "./versionSelector-D3qbhCsB.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.v20251217165918")}/dist/ui.browser.js`;
150
+ })}/npm/@clerk/ui@${versionSelector(clerkUiVersion, "1.0.0-snapshot.v20251218165926")}/dist/ui.browser.js`;
151
151
  };
152
152
  const buildClerkJsScriptAttributes = (options) => {
153
153
  const obj = {};
@@ -18,4 +18,4 @@ interface ModuleManager {
18
18
  }
19
19
  //#endregion
20
20
  export { ImportableModuleToTypeMap as n, ModuleManager as r, ImportableModule as t };
21
- //# sourceMappingURL=moduleManager-pxNnXwxv.d.mts.map
21
+ //# sourceMappingURL=moduleManager-BYIq4wgi.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"moduleManager-pxNnXwxv.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
+ {"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-pxNnXwxv.mjs";
1
+ import { n as ImportableModuleToTypeMap, r as ModuleManager, t as ImportableModule } from "./moduleManager-BYIq4wgi.mjs";
2
2
  export { ImportableModule, ImportableModuleToTypeMap, ModuleManager };
@@ -1,5 +1,5 @@
1
- import { ad as OAuthProviderData, id as OAuthProvider, xu as OAuthStrategy } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
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[];
@@ -1,4 +1,4 @@
1
- import { ad as OAuthProviderData, id as OAuthProvider, xu as OAuthStrategy } from "./index-C32ntfvR.js";
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 { $i as OrganizationMembershipResource } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
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,4 +1,4 @@
1
- import { $i as OrganizationMembershipResource } from "./index-C32ntfvR.js";
1
+ import { ta as OrganizationMembershipResource } from "./index-BZAgbf9u.js";
2
2
  import "./moduleManager-WB15hU3T.js";
3
3
 
4
4
  //#region src/organization.d.ts
@@ -13,4 +13,4 @@ Object.defineProperty(exports, 'joinPaths', {
13
13
  return joinPaths;
14
14
  }
15
15
  });
16
- //# sourceMappingURL=path-BXMzEDID.js.map
16
+ //# sourceMappingURL=path-BZX8wVkr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-BXMzEDID.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
+ {"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"}
@@ -7,4 +7,4 @@ function joinPaths(a, b) {
7
7
 
8
8
  //#endregion
9
9
  export { joinPaths as t };
10
- //# sourceMappingURL=path-B3ml2KXj.mjs.map
10
+ //# sourceMappingURL=path-C9ID-JSF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-B3ml2KXj.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
+ {"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 { rf as Autocomplete } from "./index-Bb1t7kYz.mjs";
2
- import "./moduleManager-pxNnXwxv.mjs";
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,4 +1,4 @@
1
- import { rf as Autocomplete } from "./index-C32ntfvR.js";
1
+ import { cf as Autocomplete } from "./index-BZAgbf9u.js";
2
2
  import "./moduleManager-WB15hU3T.js";
3
3
 
4
4
  //#region src/pathMatcher.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"poller.d.ts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAA,GACY,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAQgB,KARJ,MAAA,GAQU;EAAG,GAAA,EAPlB,SAOkB;EAAa,IAAA,EAN9B,UAM8B;CAAsC;;;;iBAA5D,MAAA;;IAAsB,gBAAsC"}
1
+ {"version":3,"file":"poller.d.ts","names":[],"sources":["../../src/poller.ts"],"sourcesContent":[],"mappings":";KAEY,UAAA;AAAA,KACA,cAAA,GADU,CAAA,IAAA,EACc,UADd,EAAA,GAC6B,OAD7B,CAAA,OAAA,CAAA;AACV,KACA,SAAA,GADc,CAAA,EAAA,EACG,cADO,EAAe,GACH,OADU,CAAA,IAAA,CAAA;AAC1D,KAEK,aAAA,GAFgB;EAEhB,SAAA,EAAA,MAAa;AAIlB,CAAA;AAQgB,KARJ,MAAA,GAQU;EAAG,GAAA,EAPlB,SAOkB;EAAa,IAAA,EAN9B,UAM8B;CAAsC;;;;iBAA5D,MAAA;;IAAsB,gBAAsC"}
@@ -39,4 +39,4 @@ Object.defineProperty(exports, 'stringifyQueryParams', {
39
39
  return stringifyQueryParams;
40
40
  }
41
41
  });
42
- //# sourceMappingURL=querystring-_iskl3P0.js.map
42
+ //# sourceMappingURL=querystring-B_piPsHv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"querystring-_iskl3P0.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
+ {"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"}
@@ -27,4 +27,4 @@ const stringifyQueryParams = (params, opts = {}) => {
27
27
 
28
28
  //#endregion
29
29
  export { stringifyQueryParams as n, getQueryParams as t };
30
- //# sourceMappingURL=querystring-B46ecpLW.mjs.map
30
+ //# sourceMappingURL=querystring-Cw_OznaM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"querystring-B46ecpLW.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
+ {"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 { $ as GetAPIKeysParams, $i as OrganizationMembershipResource, Ao as SessionVerificationLevel, Dd as BillingPaymentMethodResource, Fo as OrganizationInvitationResource, Gn as ClientResource, H as ClerkOptions, Ha as SignedInSessionResource, Hd as CheckoutFlowResource, Ja as GetUserOrganizationInvitationsParams, L as CheckoutSignalValue, Ld as BillingSubscriptionPlanPeriod, Mf as ClerkAPIResponseError, Nd as BillingStatementResource, Rd as BillingSubscriptionResource, T as APIKeyResource, X as CreateOrganizationParams, Xa as GetUserOrganizationSuggestionsParams, Ya as GetUserOrganizationMembershipParams, aa as GetDomainsParams, ca as GetMembershipRequestParams, g as UseSessionReturn, h as UseSessionListReturn, jd as BillingPlanResource, kd as BillingPaymentResource, lt as LoadedClerk, oa as GetInvitationsParams, pa as OrganizationResource, qd as ForPayerType, ro as UserOrganizationInvitationResource, ru as OrganizationDomainResource, sa as GetMembersParams, to as UserResource, ul as ClerkAPIResponseError$1, uo as OrganizationSuggestionResource, vd as BillingCheckoutResource, xf as ClerkPaginatedResponse, xt as SetActive, y as UseUserReturn, ya as OrganizationMembershipRequestResource } from "../index-Bb1t7kYz.mjs";
2
- import "../moduleManager-pxNnXwxv.mjs";
3
- import "../error-PZOXmiMQ.mjs";
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
 
@@ -640,7 +640,7 @@ declare function useAttemptToEnableOrganizations(caller: 'useOrganization' | 'us
640
640
  /**
641
641
  * @internal
642
642
  */
643
- declare const useSafeLayoutEffect: typeof React.useLayoutEffect;
643
+ declare const useSafeLayoutEffect: typeof React.useEffect;
644
644
  //#endregion
645
645
  //#region src/react/hooks/useSession.d.ts
646
646
  type UseSession = () => UseSessionReturn;