@0xkey-io/react-wallet-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/LICENSE +201 -0
  2. package/README.MD +116 -0
  3. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +307 -0
  4. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
  5. package/dist/components/auth/Action.d.ts +10 -0
  6. package/dist/components/auth/Action.d.ts.map +1 -0
  7. package/dist/components/auth/Action.js +76 -0
  8. package/dist/components/auth/Action.js.map +1 -0
  9. package/dist/components/auth/Action.mjs +97 -0
  10. package/dist/components/auth/Action.mjs.map +1 -0
  11. package/dist/components/auth/Email.d.ts +6 -0
  12. package/dist/components/auth/Email.d.ts.map +1 -0
  13. package/dist/components/auth/Email.js +77 -0
  14. package/dist/components/auth/Email.js.map +1 -0
  15. package/dist/components/auth/Email.mjs +98 -0
  16. package/dist/components/auth/Email.mjs.map +1 -0
  17. package/dist/components/auth/OAuth.d.ts +13 -0
  18. package/dist/components/auth/OAuth.d.ts.map +1 -0
  19. package/dist/components/auth/OAuth.js +63 -0
  20. package/dist/components/auth/OAuth.js.map +1 -0
  21. package/dist/components/auth/OAuth.mjs +68 -0
  22. package/dist/components/auth/OAuth.mjs.map +1 -0
  23. package/dist/components/auth/OTP.d.ts +21 -0
  24. package/dist/components/auth/OTP.d.ts.map +1 -0
  25. package/dist/components/auth/OTP.js +218 -0
  26. package/dist/components/auth/OTP.js.map +1 -0
  27. package/dist/components/auth/OTP.mjs +301 -0
  28. package/dist/components/auth/OTP.mjs.map +1 -0
  29. package/dist/components/auth/OrSeparator.d.ts +2 -0
  30. package/dist/components/auth/OrSeparator.d.ts.map +1 -0
  31. package/dist/components/auth/OrSeparator.js +20 -0
  32. package/dist/components/auth/OrSeparator.js.map +1 -0
  33. package/dist/components/auth/OrSeparator.mjs +18 -0
  34. package/dist/components/auth/OrSeparator.mjs.map +1 -0
  35. package/dist/components/auth/Passkey.d.ts +7 -0
  36. package/dist/components/auth/Passkey.d.ts.map +1 -0
  37. package/dist/components/auth/Passkey.js +34 -0
  38. package/dist/components/auth/Passkey.js.map +1 -0
  39. package/dist/components/auth/Passkey.mjs +30 -0
  40. package/dist/components/auth/Passkey.mjs.map +1 -0
  41. package/dist/components/auth/Phone.d.ts +6 -0
  42. package/dist/components/auth/Phone.d.ts.map +1 -0
  43. package/dist/components/auth/Phone.js +67 -0
  44. package/dist/components/auth/Phone.js.map +1 -0
  45. package/dist/components/auth/Phone.mjs +92 -0
  46. package/dist/components/auth/Phone.mjs.map +1 -0
  47. package/dist/components/auth/Wallet.d.ts +34 -0
  48. package/dist/components/auth/Wallet.d.ts.map +1 -0
  49. package/dist/components/auth/Wallet.js +517 -0
  50. package/dist/components/auth/Wallet.js.map +1 -0
  51. package/dist/components/auth/Wallet.mjs +618 -0
  52. package/dist/components/auth/Wallet.mjs.map +1 -0
  53. package/dist/components/auth/index.d.ts +9 -0
  54. package/dist/components/auth/index.d.ts.map +1 -0
  55. package/dist/components/auth/index.js +457 -0
  56. package/dist/components/auth/index.js.map +1 -0
  57. package/dist/components/auth/index.mjs +672 -0
  58. package/dist/components/auth/index.mjs.map +1 -0
  59. package/dist/components/design/Buttons.d.ts +29 -0
  60. package/dist/components/design/Buttons.d.ts.map +1 -0
  61. package/dist/components/design/Buttons.js +87 -0
  62. package/dist/components/design/Buttons.js.map +1 -0
  63. package/dist/components/design/Buttons.mjs +79 -0
  64. package/dist/components/design/Buttons.mjs.map +1 -0
  65. package/dist/components/design/Failure.d.ts +9 -0
  66. package/dist/components/design/Failure.d.ts.map +1 -0
  67. package/dist/components/design/Failure.js +33 -0
  68. package/dist/components/design/Failure.js.map +1 -0
  69. package/dist/components/design/Failure.mjs +34 -0
  70. package/dist/components/design/Failure.mjs.map +1 -0
  71. package/dist/components/design/Inputs.d.ts +9 -0
  72. package/dist/components/design/Inputs.d.ts.map +1 -0
  73. package/dist/components/design/Inputs.js +135 -0
  74. package/dist/components/design/Inputs.js.map +1 -0
  75. package/dist/components/design/Inputs.mjs +133 -0
  76. package/dist/components/design/Inputs.mjs.map +1 -0
  77. package/dist/components/design/Lottie/Dynamic.d.ts +2 -0
  78. package/dist/components/design/Lottie/Dynamic.d.ts.map +1 -0
  79. package/dist/components/design/Lottie/Dynamic.js +9 -0
  80. package/dist/components/design/Lottie/Dynamic.js.map +1 -0
  81. package/dist/components/design/Lottie/Dynamic.mjs +24 -0
  82. package/dist/components/design/Lottie/Dynamic.mjs.map +1 -0
  83. package/dist/components/design/Lottie/Wrapper.d.ts +8 -0
  84. package/dist/components/design/Lottie/Wrapper.d.ts.map +1 -0
  85. package/dist/components/design/Lottie/Wrapper.js +26 -0
  86. package/dist/components/design/Lottie/Wrapper.js.map +1 -0
  87. package/dist/components/design/Lottie/Wrapper.mjs +42 -0
  88. package/dist/components/design/Lottie/Wrapper.mjs.map +1 -0
  89. package/dist/components/design/Spinners.d.ts +9 -0
  90. package/dist/components/design/Spinners.d.ts.map +1 -0
  91. package/dist/components/design/Spinners.js +38 -0
  92. package/dist/components/design/Spinners.js.map +1 -0
  93. package/dist/components/design/Spinners.mjs +37 -0
  94. package/dist/components/design/Spinners.mjs.map +1 -0
  95. package/dist/components/design/Success.d.ts +8 -0
  96. package/dist/components/design/Success.d.ts.map +1 -0
  97. package/dist/components/design/Success.js +82 -0
  98. package/dist/components/design/Success.js.map +1 -0
  99. package/dist/components/design/Success.mjs +86 -0
  100. package/dist/components/design/Success.mjs.map +1 -0
  101. package/dist/components/design/Svg.d.ts +13 -0
  102. package/dist/components/design/Svg.d.ts.map +1 -0
  103. package/dist/components/design/Svg.js +165 -0
  104. package/dist/components/design/Svg.js.map +1 -0
  105. package/dist/components/design/Svg.mjs +161 -0
  106. package/dist/components/design/Svg.mjs.map +1 -0
  107. package/dist/components/export/Export.d.ts +13 -0
  108. package/dist/components/export/Export.d.ts.map +1 -0
  109. package/dist/components/export/Export.js +169 -0
  110. package/dist/components/export/Export.js.map +1 -0
  111. package/dist/components/export/Export.mjs +213 -0
  112. package/dist/components/export/Export.mjs.map +1 -0
  113. package/dist/components/export/ExportWarning.d.ts +15 -0
  114. package/dist/components/export/ExportWarning.d.ts.map +1 -0
  115. package/dist/components/export/ExportWarning.js +141 -0
  116. package/dist/components/export/ExportWarning.js.map +1 -0
  117. package/dist/components/export/ExportWarning.mjs +174 -0
  118. package/dist/components/export/ExportWarning.mjs.map +1 -0
  119. package/dist/components/import/Import.d.ts +20 -0
  120. package/dist/components/import/Import.d.ts.map +1 -0
  121. package/dist/components/import/Import.js +290 -0
  122. package/dist/components/import/Import.js.map +1 -0
  123. package/dist/components/import/Import.mjs +422 -0
  124. package/dist/components/import/Import.mjs.map +1 -0
  125. package/dist/components/onramp/OnRamp.d.ts +14 -0
  126. package/dist/components/onramp/OnRamp.d.ts.map +1 -0
  127. package/dist/components/onramp/OnRamp.js +61 -0
  128. package/dist/components/onramp/OnRamp.js.map +1 -0
  129. package/dist/components/onramp/OnRamp.mjs +79 -0
  130. package/dist/components/onramp/OnRamp.mjs.map +1 -0
  131. package/dist/components/send-transaction/SendTransaction.d.ts +12 -0
  132. package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -0
  133. package/dist/components/send-transaction/SendTransaction.js +65 -0
  134. package/dist/components/send-transaction/SendTransaction.js.map +1 -0
  135. package/dist/components/send-transaction/SendTransaction.mjs +89 -0
  136. package/dist/components/send-transaction/SendTransaction.mjs.map +1 -0
  137. package/dist/components/send-transaction/helpers.d.ts +4 -0
  138. package/dist/components/send-transaction/helpers.d.ts.map +1 -0
  139. package/dist/components/send-transaction/helpers.js +37 -0
  140. package/dist/components/send-transaction/helpers.js.map +1 -0
  141. package/dist/components/send-transaction/helpers.mjs +34 -0
  142. package/dist/components/send-transaction/helpers.mjs.map +1 -0
  143. package/dist/components/sign/Message.d.ts +18 -0
  144. package/dist/components/sign/Message.d.ts.map +1 -0
  145. package/dist/components/sign/Message.js +132 -0
  146. package/dist/components/sign/Message.js.map +1 -0
  147. package/dist/components/sign/Message.mjs +148 -0
  148. package/dist/components/sign/Message.mjs.map +1 -0
  149. package/dist/components/user/ConnectWallet.d.ts +8 -0
  150. package/dist/components/user/ConnectWallet.d.ts.map +1 -0
  151. package/dist/components/user/ConnectWallet.js +114 -0
  152. package/dist/components/user/ConnectWallet.js.map +1 -0
  153. package/dist/components/user/ConnectWallet.mjs +194 -0
  154. package/dist/components/user/ConnectWallet.mjs.map +1 -0
  155. package/dist/components/user/RemoveEmail.d.ts +12 -0
  156. package/dist/components/user/RemoveEmail.d.ts.map +1 -0
  157. package/dist/components/user/RemoveEmail.js +105 -0
  158. package/dist/components/user/RemoveEmail.js.map +1 -0
  159. package/dist/components/user/RemoveEmail.mjs +124 -0
  160. package/dist/components/user/RemoveEmail.mjs.map +1 -0
  161. package/dist/components/user/RemoveOAuthProvider.d.ts +12 -0
  162. package/dist/components/user/RemoveOAuthProvider.d.ts.map +1 -0
  163. package/dist/components/user/RemoveOAuthProvider.js +110 -0
  164. package/dist/components/user/RemoveOAuthProvider.js.map +1 -0
  165. package/dist/components/user/RemoveOAuthProvider.mjs +131 -0
  166. package/dist/components/user/RemoveOAuthProvider.mjs.map +1 -0
  167. package/dist/components/user/RemovePasskey.d.ts +12 -0
  168. package/dist/components/user/RemovePasskey.d.ts.map +1 -0
  169. package/dist/components/user/RemovePasskey.js +114 -0
  170. package/dist/components/user/RemovePasskey.js.map +1 -0
  171. package/dist/components/user/RemovePasskey.mjs +135 -0
  172. package/dist/components/user/RemovePasskey.mjs.map +1 -0
  173. package/dist/components/user/RemovePhoneNumber.d.ts +12 -0
  174. package/dist/components/user/RemovePhoneNumber.d.ts.map +1 -0
  175. package/dist/components/user/RemovePhoneNumber.js +105 -0
  176. package/dist/components/user/RemovePhoneNumber.js.map +1 -0
  177. package/dist/components/user/RemovePhoneNumber.mjs +124 -0
  178. package/dist/components/user/RemovePhoneNumber.mjs.map +1 -0
  179. package/dist/components/user/UpdateEmail.d.ts +12 -0
  180. package/dist/components/user/UpdateEmail.d.ts.map +1 -0
  181. package/dist/components/user/UpdateEmail.js +154 -0
  182. package/dist/components/user/UpdateEmail.js.map +1 -0
  183. package/dist/components/user/UpdateEmail.mjs +197 -0
  184. package/dist/components/user/UpdateEmail.mjs.map +1 -0
  185. package/dist/components/user/UpdatePhoneNumber.d.ts +12 -0
  186. package/dist/components/user/UpdatePhoneNumber.d.ts.map +1 -0
  187. package/dist/components/user/UpdatePhoneNumber.js +151 -0
  188. package/dist/components/user/UpdatePhoneNumber.js.map +1 -0
  189. package/dist/components/user/UpdatePhoneNumber.mjs +198 -0
  190. package/dist/components/user/UpdatePhoneNumber.mjs.map +1 -0
  191. package/dist/components/user/UpdateUserName.d.ts +13 -0
  192. package/dist/components/user/UpdateUserName.d.ts.map +1 -0
  193. package/dist/components/user/UpdateUserName.js +113 -0
  194. package/dist/components/user/UpdateUserName.js.map +1 -0
  195. package/dist/components/user/UpdateUserName.mjs +139 -0
  196. package/dist/components/user/UpdateUserName.mjs.map +1 -0
  197. package/dist/components/verify/Verify.d.ts +9 -0
  198. package/dist/components/verify/Verify.d.ts.map +1 -0
  199. package/dist/components/verify/Verify.js +121 -0
  200. package/dist/components/verify/Verify.js.map +1 -0
  201. package/dist/components/verify/Verify.mjs +149 -0
  202. package/dist/components/verify/Verify.mjs.map +1 -0
  203. package/dist/index.d.ts +25 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +74 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/index.mjs +8 -0
  208. package/dist/index.mjs.map +1 -0
  209. package/dist/providers/ZeroXKeyProvider.d.ts +9 -0
  210. package/dist/providers/ZeroXKeyProvider.d.ts.map +1 -0
  211. package/dist/providers/ZeroXKeyProvider.js +36 -0
  212. package/dist/providers/ZeroXKeyProvider.js.map +1 -0
  213. package/dist/providers/ZeroXKeyProvider.mjs +34 -0
  214. package/dist/providers/ZeroXKeyProvider.mjs.map +1 -0
  215. package/dist/providers/client/Hook.d.ts +4 -0
  216. package/dist/providers/client/Hook.d.ts.map +1 -0
  217. package/dist/providers/client/Hook.js +15 -0
  218. package/dist/providers/client/Hook.js.map +1 -0
  219. package/dist/providers/client/Hook.mjs +13 -0
  220. package/dist/providers/client/Hook.mjs.map +1 -0
  221. package/dist/providers/client/Provider.d.ts +39 -0
  222. package/dist/providers/client/Provider.d.ts.map +1 -0
  223. package/dist/providers/client/Provider.js +3934 -0
  224. package/dist/providers/client/Provider.js.map +1 -0
  225. package/dist/providers/client/Provider.mjs +6895 -0
  226. package/dist/providers/client/Provider.mjs.map +1 -0
  227. package/dist/providers/client/Types.d.ts +711 -0
  228. package/dist/providers/client/Types.d.ts.map +1 -0
  229. package/dist/providers/client/Types.js +10 -0
  230. package/dist/providers/client/Types.js.map +1 -0
  231. package/dist/providers/client/Types.mjs +8 -0
  232. package/dist/providers/client/Types.mjs.map +1 -0
  233. package/dist/providers/index.d.ts +5 -0
  234. package/dist/providers/index.d.ts.map +1 -0
  235. package/dist/providers/modal/Hook.d.ts +4 -0
  236. package/dist/providers/modal/Hook.d.ts.map +1 -0
  237. package/dist/providers/modal/Hook.js +15 -0
  238. package/dist/providers/modal/Hook.js.map +1 -0
  239. package/dist/providers/modal/Hook.mjs +13 -0
  240. package/dist/providers/modal/Hook.mjs.map +1 -0
  241. package/dist/providers/modal/Provider.d.ts +27 -0
  242. package/dist/providers/modal/Provider.d.ts.map +1 -0
  243. package/dist/providers/modal/Provider.js +48 -0
  244. package/dist/providers/modal/Provider.js.map +1 -0
  245. package/dist/providers/modal/Provider.mjs +68 -0
  246. package/dist/providers/modal/Provider.mjs.map +1 -0
  247. package/dist/providers/modal/Root.d.ts +7 -0
  248. package/dist/providers/modal/Root.d.ts.map +1 -0
  249. package/dist/providers/modal/Root.js +345 -0
  250. package/dist/providers/modal/Root.js.map +1 -0
  251. package/dist/providers/modal/Root.mjs +352 -0
  252. package/dist/providers/modal/Root.mjs.map +1 -0
  253. package/dist/providers/theme/Overrides.d.ts +18 -0
  254. package/dist/providers/theme/Overrides.d.ts.map +1 -0
  255. package/dist/providers/theme/Overrides.js +35 -0
  256. package/dist/providers/theme/Overrides.js.map +1 -0
  257. package/dist/providers/theme/Overrides.mjs +37 -0
  258. package/dist/providers/theme/Overrides.mjs.map +1 -0
  259. package/dist/styles.css +1 -0
  260. package/dist/tests/oauth-test.d.ts +2 -0
  261. package/dist/tests/oauth-test.d.ts.map +1 -0
  262. package/dist/tests/timers-test.d.ts +2 -0
  263. package/dist/tests/timers-test.d.ts.map +1 -0
  264. package/dist/tests/utils-test.d.ts +2 -0
  265. package/dist/tests/utils-test.d.ts.map +1 -0
  266. package/dist/typedoc-entry/index.d.ts +5 -0
  267. package/dist/typedoc-entry/index.d.ts.map +1 -0
  268. package/dist/types/base.d.ts +178 -0
  269. package/dist/types/base.d.ts.map +1 -0
  270. package/dist/types/base.js +55 -0
  271. package/dist/types/base.js.map +1 -0
  272. package/dist/types/base.mjs +50 -0
  273. package/dist/types/base.mjs.map +1 -0
  274. package/dist/types/method-types.d.ts +258 -0
  275. package/dist/types/method-types.d.ts.map +1 -0
  276. package/dist/utils/oauth/completion.d.ts +132 -0
  277. package/dist/utils/oauth/completion.d.ts.map +1 -0
  278. package/dist/utils/oauth/completion.js +136 -0
  279. package/dist/utils/oauth/completion.js.map +1 -0
  280. package/dist/utils/oauth/completion.mjs +176 -0
  281. package/dist/utils/oauth/completion.mjs.map +1 -0
  282. package/dist/utils/oauth/config.d.ts +34 -0
  283. package/dist/utils/oauth/config.d.ts.map +1 -0
  284. package/dist/utils/oauth/config.js +69 -0
  285. package/dist/utils/oauth/config.js.map +1 -0
  286. package/dist/utils/oauth/config.mjs +54 -0
  287. package/dist/utils/oauth/config.mjs.map +1 -0
  288. package/dist/utils/oauth/helpers.d.ts +13 -0
  289. package/dist/utils/oauth/helpers.d.ts.map +1 -0
  290. package/dist/utils/oauth/helpers.js +38 -0
  291. package/dist/utils/oauth/helpers.js.map +1 -0
  292. package/dist/utils/oauth/helpers.mjs +35 -0
  293. package/dist/utils/oauth/helpers.mjs.map +1 -0
  294. package/dist/utils/oauth/index.d.ts +7 -0
  295. package/dist/utils/oauth/index.d.ts.map +1 -0
  296. package/dist/utils/oauth/pkce.d.ts +14 -0
  297. package/dist/utils/oauth/pkce.d.ts.map +1 -0
  298. package/dist/utils/oauth/pkce.js +48 -0
  299. package/dist/utils/oauth/pkce.js.map +1 -0
  300. package/dist/utils/oauth/pkce.mjs +85 -0
  301. package/dist/utils/oauth/pkce.mjs.map +1 -0
  302. package/dist/utils/oauth/storage.d.ts +48 -0
  303. package/dist/utils/oauth/storage.d.ts.map +1 -0
  304. package/dist/utils/oauth/storage.js +87 -0
  305. package/dist/utils/oauth/storage.js.map +1 -0
  306. package/dist/utils/oauth/storage.mjs +78 -0
  307. package/dist/utils/oauth/storage.mjs.map +1 -0
  308. package/dist/utils/oauth/url.d.ts +94 -0
  309. package/dist/utils/oauth/url.d.ts.map +1 -0
  310. package/dist/utils/oauth/url.js +224 -0
  311. package/dist/utils/oauth/url.js.map +1 -0
  312. package/dist/utils/oauth/url.mjs +230 -0
  313. package/dist/utils/oauth/url.mjs.map +1 -0
  314. package/dist/utils/timers.d.ts +73 -0
  315. package/dist/utils/timers.d.ts.map +1 -0
  316. package/dist/utils/timers.js +133 -0
  317. package/dist/utils/timers.js.map +1 -0
  318. package/dist/utils/timers.mjs +142 -0
  319. package/dist/utils/timers.mjs.map +1 -0
  320. package/dist/utils/utils.d.ts +40 -0
  321. package/dist/utils/utils.d.ts.map +1 -0
  322. package/dist/utils/utils.js +116 -0
  323. package/dist/utils/utils.js.map +1 -0
  324. package/dist/utils/utils.mjs +164 -0
  325. package/dist/utils/utils.mjs.map +1 -0
  326. package/package.json +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkce.mjs","sources":["../../../src/utils/oauth/pkce.ts"],"sourcesContent":[null],"names":["generateChallengePair","_generateChallengePair","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","randomBytes","verifier","encoder","data","digest","base64Challenge","w","_context","n","Uint8Array","window","crypto","getRandomValues","btoa","String","fromCharCode","_toConsumableArray","replace","TextEncoder","encode","subtle","v","a","codeChallenge","exchangeFacebookCodeForToken","_x","_x2","_x3","_x4","_exchangeFacebookCodeForToken","_callee2","clientId","redirectUri","code","codeVerifier","params","response","errorData","_context2","URLSearchParams","client_id","redirect_uri","code_verifier","grant_type","fetch","FACEBOOK_GRAPH_URL","method","headers","body","toString","ok","json","Error","concat","JSON","stringify"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { OAuthProviders } from "@0xkey-io/sdk-types";
2
+ export declare const OAUTH_INTENT_ADD_PROVIDER = "addProvider";
3
+ export declare const OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
4
+ export type OAuthAddProviderMetadata = {
5
+ organizationId: string;
6
+ userId: string;
7
+ stampWith?: string;
8
+ successPageDuration?: number;
9
+ };
10
+ /** Provider type for PKCE-based OAuth */
11
+ export type PKCEProvider = OAuthProviders.FACEBOOK | OAuthProviders.DISCORD | OAuthProviders.X;
12
+ /**
13
+ * Stores OAuth add provider metadata in local storage
14
+ * Used for addOauthProvider flow if opening in-page
15
+ */
16
+ export declare function storeOAuthAddProviderMetadata(metadata: OAuthAddProviderMetadata): void;
17
+ /**
18
+ * Retrieves OAuth add provider metadata from local storage
19
+ */
20
+ export declare function getOAuthAddProviderMetadata(): OAuthAddProviderMetadata | null;
21
+ /**
22
+ * Gets the verifier key name for a PKCE provider
23
+ */
24
+ export declare function getPKCEVerifierKey(provider: PKCEProvider): string;
25
+ /**
26
+ * Retrieves and removes the PKCE verifier from local storage
27
+ * @param provider - The OAuth provider
28
+ * @returns The verifier string
29
+ * @throws ZeroXKeyError if verifier is not found
30
+ */
31
+ export declare function consumePKCEVerifier(provider: PKCEProvider): string;
32
+ /**
33
+ * Stores the PKCE verifier in local storage
34
+ * @param provider - The OAuth provider
35
+ * @param verifier - The verifier string to store
36
+ */
37
+ export declare function storePKCEVerifier(provider: PKCEProvider, verifier: string): void;
38
+ /**
39
+ * Checks if a PKCE verifier exists for a provider (without consuming it)
40
+ * @param provider - The OAuth provider
41
+ * @returns true if verifier exists
42
+ */
43
+ export declare function hasPKCEVerifier(provider: PKCEProvider): boolean;
44
+ /**
45
+ * Clears all OAuth-related data from local storage
46
+ */
47
+ export declare function clearAllOAuthData(): void;
48
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AACvD,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,YAAY,GACpB,cAAc,CAAC,QAAQ,GACvB,cAAc,CAAC,OAAO,GACtB,cAAc,CAAC,CAAC,CAAC;AAOrB;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,wBAAwB,GACjC,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,GAAG,IAAI,CAQ7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAWlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,GACf,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC"}
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ var sdkTypes = require('@0xkey-io/sdk-types');
4
+
5
+ const OAUTH_INTENT_ADD_PROVIDER = "addProvider";
6
+ const OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
7
+ // We use localStorage instead of sessionStorage to store OAuth data since the user
8
+ // might leave the current browsing context during the OAuth flow. We ran into this
9
+ // with X OAuth on Android where if the user has the X app installed, oauth would
10
+ // open the native app and when they come back to the browser, sessionStorage is gone
11
+ /**
12
+ * Stores OAuth add provider metadata in local storage
13
+ * Used for addOauthProvider flow if opening in-page
14
+ */
15
+ function storeOAuthAddProviderMetadata(metadata) {
16
+ localStorage.setItem(OAUTH_ADD_PROVIDER_METADATA_KEY, JSON.stringify(metadata));
17
+ }
18
+ /**
19
+ * Retrieves OAuth add provider metadata from local storage
20
+ */
21
+ function getOAuthAddProviderMetadata() {
22
+ const stored = localStorage.getItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
23
+ if (!stored) return null;
24
+ try {
25
+ return JSON.parse(stored);
26
+ } catch {
27
+ return null;
28
+ }
29
+ }
30
+ /**
31
+ * Gets the verifier key name for a PKCE provider
32
+ */
33
+ function getPKCEVerifierKey(provider) {
34
+ return `${provider}_verifier`;
35
+ }
36
+ /**
37
+ * Retrieves and removes the PKCE verifier from local storage
38
+ * @param provider - The OAuth provider
39
+ * @returns The verifier string
40
+ * @throws ZeroXKeyError if verifier is not found
41
+ */
42
+ function consumePKCEVerifier(provider) {
43
+ const key = getPKCEVerifierKey(provider);
44
+ const verifier = localStorage.getItem(key);
45
+ if (!verifier) {
46
+ throw new sdkTypes.ZeroXKeyError(`Missing PKCE verifier for ${provider} authentication`, sdkTypes.ZeroXKeyErrorCodes.NO_PKCE_VERIFIER_FOUND);
47
+ }
48
+ localStorage.removeItem(key);
49
+ return verifier;
50
+ }
51
+ /**
52
+ * Stores the PKCE verifier in local storage
53
+ * @param provider - The OAuth provider
54
+ * @param verifier - The verifier string to store
55
+ */
56
+ function storePKCEVerifier(provider, verifier) {
57
+ localStorage.setItem(getPKCEVerifierKey(provider), verifier);
58
+ }
59
+ /**
60
+ * Checks if a PKCE verifier exists for a provider (without consuming it)
61
+ * @param provider - The OAuth provider
62
+ * @returns true if verifier exists
63
+ */
64
+ function hasPKCEVerifier(provider) {
65
+ return localStorage.getItem(getPKCEVerifierKey(provider)) !== null;
66
+ }
67
+ /**
68
+ * Clears all OAuth-related data from local storage
69
+ */
70
+ function clearAllOAuthData() {
71
+ localStorage.removeItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
72
+ const pkceProviders = [sdkTypes.OAuthProviders.FACEBOOK, sdkTypes.OAuthProviders.DISCORD, sdkTypes.OAuthProviders.X];
73
+ for (const provider of pkceProviders) {
74
+ localStorage.removeItem(getPKCEVerifierKey(provider));
75
+ }
76
+ }
77
+
78
+ exports.OAUTH_ADD_PROVIDER_METADATA_KEY = OAUTH_ADD_PROVIDER_METADATA_KEY;
79
+ exports.OAUTH_INTENT_ADD_PROVIDER = OAUTH_INTENT_ADD_PROVIDER;
80
+ exports.clearAllOAuthData = clearAllOAuthData;
81
+ exports.consumePKCEVerifier = consumePKCEVerifier;
82
+ exports.getOAuthAddProviderMetadata = getOAuthAddProviderMetadata;
83
+ exports.getPKCEVerifierKey = getPKCEVerifierKey;
84
+ exports.hasPKCEVerifier = hasPKCEVerifier;
85
+ exports.storeOAuthAddProviderMetadata = storeOAuthAddProviderMetadata;
86
+ exports.storePKCEVerifier = storePKCEVerifier;
87
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sources":["../../../src/utils/oauth/storage.ts"],"sourcesContent":[null],"names":["OAUTH_INTENT_ADD_PROVIDER","OAUTH_ADD_PROVIDER_METADATA_KEY","storeOAuthAddProviderMetadata","metadata","localStorage","setItem","JSON","stringify","getOAuthAddProviderMetadata","stored","getItem","parse","getPKCEVerifierKey","provider","consumePKCEVerifier","key","verifier","ZeroXKeyError","ZeroXKeyErrorCodes","NO_PKCE_VERIFIER_FOUND","removeItem","storePKCEVerifier","hasPKCEVerifier","clearAllOAuthData","pkceProviders","OAuthProviders","FACEBOOK","DISCORD","X"],"mappings":";;;;AAMO,MAAMA,yBAAyB,GAAG;AAClC,MAAMC,+BAA+B,GAAG;AAe/C;AACA;AACA;AACA;AAEA;;;AAGG;AACG,SAAUC,6BAA6BA,CAC3CC,QAAkC,EAAA;EAElCC,YAAY,CAACC,OAAO,CAClBJ,+BAA+B,EAC/BK,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC,CACzB;AACH;AAEA;;AAEG;SACaK,2BAA2BA,GAAA;AACzC,EAAA,MAAMC,MAAM,GAAGL,YAAY,CAACM,OAAO,CAACT,+BAA+B,CAAC;AACpE,EAAA,IAAI,CAACQ,MAAM,EAAE,OAAO,IAAI;EACxB,IAAI;AACF,IAAA,OAAOH,IAAI,CAACK,KAAK,CAACF,MAAM,CAA6B;AACvD,EAAA,CAAC,CAAC,MAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA;;AAEG;AACG,SAAUG,kBAAkBA,CAACC,QAAsB,EAAA;EACvD,OAAO,CAAA,EAAGA,QAAQ,CAAA,SAAA,CAAW;AAC/B;AAEA;;;;;AAKG;AACG,SAAUC,mBAAmBA,CAACD,QAAsB,EAAA;AACxD,EAAA,MAAME,GAAG,GAAGH,kBAAkB,CAACC,QAAQ,CAAC;AACxC,EAAA,MAAMG,QAAQ,GAAGZ,YAAY,CAACM,OAAO,CAACK,GAAG,CAAC;EAC1C,IAAI,CAACC,QAAQ,EAAE;IACb,MAAM,IAAIC,sBAAa,CACrB,CAAA,0BAAA,EAA6BJ,QAAQ,iBAAiB,EACtDK,2BAAkB,CAACC,sBAAsB,CAC1C;AACH,EAAA;AACAf,EAAAA,YAAY,CAACgB,UAAU,CAACL,GAAG,CAAC;AAC5B,EAAA,OAAOC,QAAQ;AACjB;AAEA;;;;AAIG;AACG,SAAUK,iBAAiBA,CAC/BR,QAAsB,EACtBG,QAAgB,EAAA;EAEhBZ,YAAY,CAACC,OAAO,CAACO,kBAAkB,CAACC,QAAQ,CAAC,EAAEG,QAAQ,CAAC;AAC9D;AAEA;;;;AAIG;AACG,SAAUM,eAAeA,CAACT,QAAsB,EAAA;EACpD,OAAOT,YAAY,CAACM,OAAO,CAACE,kBAAkB,CAACC,QAAQ,CAAC,CAAC,KAAK,IAAI;AACpE;AAEA;;AAEG;SACaU,iBAAiBA,GAAA;AAC/BnB,EAAAA,YAAY,CAACgB,UAAU,CAACnB,+BAA+B,CAAC;AACxD,EAAA,MAAMuB,aAAa,GAAmB,CACpCC,uBAAc,CAACC,QAAQ,EACvBD,uBAAc,CAACE,OAAO,EACtBF,uBAAc,CAACG,CAAC,CACjB;AACD,EAAA,KAAK,MAAMf,QAAQ,IAAIW,aAAa,EAAE;AACpCpB,IAAAA,YAAY,CAACgB,UAAU,CAACR,kBAAkB,CAACC,QAAQ,CAAC,CAAC;AACvD,EAAA;AACF;;;;;;;;;;;;"}
@@ -0,0 +1,78 @@
1
+ import { OAuthProviders, ZeroXKeyError, ZeroXKeyErrorCodes } from '@0xkey-io/sdk-types';
2
+
3
+ var OAUTH_INTENT_ADD_PROVIDER = "addProvider";
4
+ var OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
5
+ // We use localStorage instead of sessionStorage to store OAuth data since the user
6
+ // might leave the current browsing context during the OAuth flow. We ran into this
7
+ // with X OAuth on Android where if the user has the X app installed, oauth would
8
+ // open the native app and when they come back to the browser, sessionStorage is gone
9
+ /**
10
+ * Stores OAuth add provider metadata in local storage
11
+ * Used for addOauthProvider flow if opening in-page
12
+ */
13
+ function storeOAuthAddProviderMetadata(metadata) {
14
+ localStorage.setItem(OAUTH_ADD_PROVIDER_METADATA_KEY, JSON.stringify(metadata));
15
+ }
16
+ /**
17
+ * Retrieves OAuth add provider metadata from local storage
18
+ */
19
+ function getOAuthAddProviderMetadata() {
20
+ var stored = localStorage.getItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
21
+ if (!stored) return null;
22
+ try {
23
+ return JSON.parse(stored);
24
+ } catch (_unused) {
25
+ return null;
26
+ }
27
+ }
28
+ /**
29
+ * Gets the verifier key name for a PKCE provider
30
+ */
31
+ function getPKCEVerifierKey(provider) {
32
+ return "".concat(provider, "_verifier");
33
+ }
34
+ /**
35
+ * Retrieves and removes the PKCE verifier from local storage
36
+ * @param provider - The OAuth provider
37
+ * @returns The verifier string
38
+ * @throws ZeroXKeyError if verifier is not found
39
+ */
40
+ function consumePKCEVerifier(provider) {
41
+ var key = getPKCEVerifierKey(provider);
42
+ var verifier = localStorage.getItem(key);
43
+ if (!verifier) {
44
+ throw new ZeroXKeyError("Missing PKCE verifier for ".concat(provider, " authentication"), ZeroXKeyErrorCodes.NO_PKCE_VERIFIER_FOUND);
45
+ }
46
+ localStorage.removeItem(key);
47
+ return verifier;
48
+ }
49
+ /**
50
+ * Stores the PKCE verifier in local storage
51
+ * @param provider - The OAuth provider
52
+ * @param verifier - The verifier string to store
53
+ */
54
+ function storePKCEVerifier(provider, verifier) {
55
+ localStorage.setItem(getPKCEVerifierKey(provider), verifier);
56
+ }
57
+ /**
58
+ * Checks if a PKCE verifier exists for a provider (without consuming it)
59
+ * @param provider - The OAuth provider
60
+ * @returns true if verifier exists
61
+ */
62
+ function hasPKCEVerifier(provider) {
63
+ return localStorage.getItem(getPKCEVerifierKey(provider)) !== null;
64
+ }
65
+ /**
66
+ * Clears all OAuth-related data from local storage
67
+ */
68
+ function clearAllOAuthData() {
69
+ localStorage.removeItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
70
+ var pkceProviders = [OAuthProviders.FACEBOOK, OAuthProviders.DISCORD, OAuthProviders.X];
71
+ for (var _i = 0, _pkceProviders = pkceProviders; _i < _pkceProviders.length; _i++) {
72
+ var provider = _pkceProviders[_i];
73
+ localStorage.removeItem(getPKCEVerifierKey(provider));
74
+ }
75
+ }
76
+
77
+ export { OAUTH_ADD_PROVIDER_METADATA_KEY, OAUTH_INTENT_ADD_PROVIDER, clearAllOAuthData, consumePKCEVerifier, getOAuthAddProviderMetadata, getPKCEVerifierKey, hasPKCEVerifier, storeOAuthAddProviderMetadata, storePKCEVerifier };
78
+ //# sourceMappingURL=storage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.mjs","sources":["../../../src/utils/oauth/storage.ts"],"sourcesContent":[null],"names":["OAUTH_INTENT_ADD_PROVIDER","OAUTH_ADD_PROVIDER_METADATA_KEY","storeOAuthAddProviderMetadata","metadata","localStorage","setItem","JSON","stringify","getOAuthAddProviderMetadata","stored","getItem","parse","_unused","getPKCEVerifierKey","provider","concat","consumePKCEVerifier","key","verifier","ZeroXKeyError","ZeroXKeyErrorCodes","NO_PKCE_VERIFIER_FOUND","removeItem","storePKCEVerifier","hasPKCEVerifier","clearAllOAuthData","pkceProviders","OAuthProviders","FACEBOOK","DISCORD","X","_i","_pkceProviders","length"],"mappings":";;AAMO,IAAMA,yBAAyB,GAAG;AAClC,IAAMC,+BAA+B,GAAG;AAe/C;AACA;AACA;AACA;AAEA;;;AAGG;AACG,SAAUC,6BAA6BA,CAC3CC,QAAkC,EAAA;EAElCC,YAAY,CAACC,OAAO,CAClBJ,+BAA+B,EAC/BK,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC,CACzB;AACH;AAEA;;AAEG;SACaK,2BAA2BA,GAAA;AACzC,EAAA,IAAMC,MAAM,GAAGL,YAAY,CAACM,OAAO,CAACT,+BAA+B,CAAC;AACpE,EAAA,IAAI,CAACQ,MAAM,EAAE,OAAO,IAAI;EACxB,IAAI;AACF,IAAA,OAAOH,IAAI,CAACK,KAAK,CAACF,MAAM,CAA6B;EACvD,CAAC,CAAC,OAAAG,OAAA,EAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA;;AAEG;AACG,SAAUC,kBAAkBA,CAACC,QAAsB,EAAA;EACvD,OAAA,EAAA,CAAAC,MAAA,CAAUD,QAAQ,EAAA,WAAA,CAAA;AACpB;AAEA;;;;;AAKG;AACG,SAAUE,mBAAmBA,CAACF,QAAsB,EAAA;AACxD,EAAA,IAAMG,GAAG,GAAGJ,kBAAkB,CAACC,QAAQ,CAAC;AACxC,EAAA,IAAMI,QAAQ,GAAGd,YAAY,CAACM,OAAO,CAACO,GAAG,CAAC;EAC1C,IAAI,CAACC,QAAQ,EAAE;IACb,MAAM,IAAIC,aAAa,CAAA,4BAAA,CAAAJ,MAAA,CACQD,QAAQ,EAAA,iBAAA,CAAA,EACrCM,kBAAkB,CAACC,sBAAsB,CAC1C;AACH,EAAA;AACAjB,EAAAA,YAAY,CAACkB,UAAU,CAACL,GAAG,CAAC;AAC5B,EAAA,OAAOC,QAAQ;AACjB;AAEA;;;;AAIG;AACG,SAAUK,iBAAiBA,CAC/BT,QAAsB,EACtBI,QAAgB,EAAA;EAEhBd,YAAY,CAACC,OAAO,CAACQ,kBAAkB,CAACC,QAAQ,CAAC,EAAEI,QAAQ,CAAC;AAC9D;AAEA;;;;AAIG;AACG,SAAUM,eAAeA,CAACV,QAAsB,EAAA;EACpD,OAAOV,YAAY,CAACM,OAAO,CAACG,kBAAkB,CAACC,QAAQ,CAAC,CAAC,KAAK,IAAI;AACpE;AAEA;;AAEG;SACaW,iBAAiBA,GAAA;AAC/BrB,EAAAA,YAAY,CAACkB,UAAU,CAACrB,+BAA+B,CAAC;AACxD,EAAA,IAAMyB,aAAa,GAAmB,CACpCC,cAAc,CAACC,QAAQ,EACvBD,cAAc,CAACE,OAAO,EACtBF,cAAc,CAACG,CAAC,CACjB;AACD,EAAA,KAAA,IAAAC,EAAA,GAAA,CAAA,EAAAC,cAAA,GAAuBN,aAAa,EAAAK,EAAA,GAAAC,cAAA,CAAAC,MAAA,EAAAF,EAAA,EAAA,EAAE;AAAjC,IAAA,IAAMjB,QAAQ,GAAAkB,cAAA,CAAAD,EAAA,CAAA;AACjB3B,IAAAA,YAAY,CAACkB,UAAU,CAACT,kBAAkB,CAACC,QAAQ,CAAC,CAAC;AACvD,EAAA;AACF;;;;"}
@@ -0,0 +1,94 @@
1
+ import { OAuthProviders } from "@0xkey-io/sdk-types";
2
+ /**
3
+ * Builds the OAuth state parameter string
4
+ */
5
+ export declare function buildOAuthState(params: {
6
+ provider: OAuthProviders;
7
+ flow: "redirect" | "popup";
8
+ publicKey: string;
9
+ nonce?: string;
10
+ additionalState?: Record<string, string> | undefined;
11
+ }): string;
12
+ /**
13
+ * Opens a centered OAuth popup window
14
+ */
15
+ export declare function openOAuthPopup(): Window | null;
16
+ /**
17
+ * Redirects to OAuth provider URL
18
+ */
19
+ export declare function redirectToOAuthProvider(url: string): Promise<never>;
20
+ /**
21
+ * Cleans up OAuth parameters from URL (removes hash and search)
22
+ */
23
+ export declare function cleanupOAuthUrl(): void;
24
+ /**
25
+ * Cleans up OAuth hash from URL but preserves search parameters
26
+ */
27
+ export declare function cleanupOAuthUrlPreserveSearch(): void;
28
+ /**
29
+ * Parses the OAuth state parameter string into an object
30
+ */
31
+ export declare function parseStateParam(stateParam: string | null | undefined): {
32
+ sessionKey?: string;
33
+ oauthIntent?: string;
34
+ provider?: string;
35
+ flow?: string;
36
+ publicKey?: string;
37
+ openModal?: string;
38
+ [key: string]: string | undefined;
39
+ };
40
+ /**
41
+ * Result from parsing an OAuth response (both popup and redirect flows)
42
+ */
43
+ export interface OAuthResponseResult {
44
+ /** The OIDC token (for non-PKCE providers) */
45
+ idToken?: string | null | undefined;
46
+ /** The authorization code (for PKCE providers) */
47
+ authCode?: string | null | undefined;
48
+ /** Session key from state */
49
+ sessionKey?: string | undefined;
50
+ /** The provider from state */
51
+ provider?: string | null;
52
+ /** Flow type from state */
53
+ flow?: string | null;
54
+ /** Public key from state */
55
+ publicKey?: string | null;
56
+ /** Open modal flag from state */
57
+ openModal?: string | null;
58
+ /** OAuth intent from state */
59
+ oauthIntent?: string | null;
60
+ /** Nonce from state */
61
+ nonce?: string | null;
62
+ /** Redirect URI used to create the authorization code. */
63
+ redirectUri?: string | null;
64
+ }
65
+ /**
66
+ * Unified OAuth response parser for both popup and redirect flows.
67
+ * Handles both:
68
+ * - PKCE flows (Facebook, Discord, X): code in search parameters
69
+ * - Non-PKCE flows (Google, Apple): id_token in hash parameters
70
+ * - Apple's non-standard hash format where state parameters are directly embedded
71
+ *
72
+ * @param url - The full URL to parse (from popup or redirect)
73
+ * @param expectedProvider - Optional provider if already known (for popup flows)
74
+ * @returns Parsed OAuth response data including tokens, codes, and state parameters, or null if invalid
75
+ */
76
+ export declare function parseOAuthResponse(url: string, expectedProvider?: OAuthProviders): OAuthResponseResult | null;
77
+ /**
78
+ * Parameters for building an OAuth URL
79
+ */
80
+ export interface BuildOAuthUrlParams {
81
+ provider: OAuthProviders;
82
+ clientId: string;
83
+ redirectUri: string;
84
+ publicKey: string;
85
+ nonce: string;
86
+ flow: "redirect" | "popup";
87
+ codeChallenge?: string | undefined;
88
+ additionalState?: Record<string, string> | undefined;
89
+ }
90
+ /**
91
+ * Builds the complete OAuth authorization URL for a provider
92
+ */
93
+ export declare function buildOAuthUrl(params: BuildOAuthUrlParams): string;
94
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACtD,GAAG,MAAM,CAkBT;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAW9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CASnE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAMpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC,CAcA;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,cAAc,GAChC,mBAAmB,GAAG,IAAI,CA6E5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA2DjE"}
@@ -0,0 +1,224 @@
1
+ 'use strict';
2
+
3
+ var sdkTypes = require('@0xkey-io/sdk-types');
4
+ var config = require('./config.js');
5
+
6
+ /**
7
+ * Builds the OAuth state parameter string
8
+ */
9
+ function buildOAuthState(params) {
10
+ const {
11
+ provider,
12
+ flow,
13
+ publicKey,
14
+ nonce,
15
+ additionalState
16
+ } = params;
17
+ let state = `provider=${provider}&flow=${flow}&publicKey=${encodeURIComponent(publicKey)}`;
18
+ if (nonce) {
19
+ state += `&nonce=${nonce}`;
20
+ }
21
+ if (additionalState) {
22
+ const extra = Object.entries(additionalState).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join("&");
23
+ if (extra) {
24
+ state += `&${extra}`;
25
+ }
26
+ }
27
+ return state;
28
+ }
29
+ /**
30
+ * Opens a centered OAuth popup window
31
+ */
32
+ function openOAuthPopup() {
33
+ const width = config.popupWidth;
34
+ const height = config.popupHeight;
35
+ const left = window.screenX + (window.innerWidth - width) / 2;
36
+ const top = window.screenY + (window.innerHeight - height) / 2;
37
+ return window.open("about:blank", "_blank", `width=${width},height=${height},top=${top},left=${left},scrollbars=yes,resizable=yes`);
38
+ }
39
+ /**
40
+ * Redirects to OAuth provider URL
41
+ */
42
+ function redirectToOAuthProvider(url) {
43
+ window.location.href = url;
44
+ const timeLimit = 5 * 60 * 1000; // 5 minutes
45
+ return new Promise((_, reject) => {
46
+ const timeout = setTimeout(() => {
47
+ reject(new Error("Authentication timed out."));
48
+ }, timeLimit);
49
+ window.addEventListener("beforeunload", () => clearTimeout(timeout));
50
+ });
51
+ }
52
+ /**
53
+ * Cleans up OAuth parameters from URL (removes hash and search)
54
+ */
55
+ function cleanupOAuthUrl() {
56
+ window.history.replaceState(null, document.title, window.location.pathname);
57
+ }
58
+ /**
59
+ * Cleans up OAuth hash from URL but preserves search parameters
60
+ */
61
+ function cleanupOAuthUrlPreserveSearch() {
62
+ window.history.replaceState(null, document.title, window.location.pathname + window.location.search);
63
+ }
64
+ /**
65
+ * Parses the OAuth state parameter string into an object
66
+ */
67
+ function parseStateParam(stateParam) {
68
+ if (!stateParam) return {};
69
+ const result = {};
70
+ const pairs = stateParam.split("&");
71
+ for (const pair of pairs) {
72
+ const [key, value] = pair.split("=");
73
+ if (key && value !== undefined) {
74
+ result[key] = decodeURIComponent(value);
75
+ }
76
+ }
77
+ return result;
78
+ }
79
+ /**
80
+ * Unified OAuth response parser for both popup and redirect flows.
81
+ * Handles both:
82
+ * - PKCE flows (Facebook, Discord, X): code in search parameters
83
+ * - Non-PKCE flows (Google, Apple): id_token in hash parameters
84
+ * - Apple's non-standard hash format where state parameters are directly embedded
85
+ *
86
+ * @param url - The full URL to parse (from popup or redirect)
87
+ * @param expectedProvider - Optional provider if already known (for popup flows)
88
+ * @returns Parsed OAuth response data including tokens, codes, and state parameters, or null if invalid
89
+ */
90
+ function parseOAuthResponse(url, expectedProvider) {
91
+ let idToken = null;
92
+ let authCode = null;
93
+ let stateString = null;
94
+ const parsedUrl = new URL(url);
95
+ const search = parsedUrl.search.substring(1); // Remove leading '?'
96
+ const hash = parsedUrl.hash.substring(1); // Remove leading '#'
97
+ // Handle PKCE flows (code in search parameters)
98
+ if (search && search.includes("code=")) {
99
+ const searchParams = new URLSearchParams(search);
100
+ authCode = searchParams.get("code");
101
+ stateString = searchParams.get("state");
102
+ }
103
+ // Handle non-PKCE flows (id_token in hash)
104
+ else if (hash) {
105
+ // Handle Apple's non-standard format: state=provider=apple&flow=redirect&...&code=...&id_token=...
106
+ if (hash.startsWith("state=provider=apple")) {
107
+ // Extract id_token from the end
108
+ const idTokenMatch = hash.match(/id_token=([^&]+)$/);
109
+ idToken = idTokenMatch ? idTokenMatch[1] : null;
110
+ // Extract state content between "state=" and "&code="
111
+ const stateEndIndex = hash.indexOf("&code=");
112
+ if (stateEndIndex !== -1) {
113
+ stateString = hash.substring(6, stateEndIndex); // Remove "state=" prefix
114
+ }
115
+ } else {
116
+ // Standard OAuth format - parse as URLSearchParams
117
+ const hashParams = new URLSearchParams(hash);
118
+ idToken = hashParams.get("id_token");
119
+ stateString = hashParams.get("state");
120
+ }
121
+ }
122
+ // Parse state parameters
123
+ const {
124
+ provider,
125
+ flow,
126
+ publicKey,
127
+ openModal,
128
+ sessionKey,
129
+ oauthIntent,
130
+ nonce,
131
+ redirectUri
132
+ } = parseStateParam(stateString);
133
+ // If we have an expected provider (popup flow), validate it matches
134
+ if (expectedProvider) {
135
+ const config$1 = config.OAUTH_PROVIDER_CONFIGS[expectedProvider];
136
+ if (config$1.usesPKCE) {
137
+ // PKCE providers must have authCode and matching provider in state
138
+ if (!authCode || !stateString || provider !== expectedProvider) {
139
+ return null;
140
+ }
141
+ } else {
142
+ // Non-PKCE providers must have idToken
143
+ if (!idToken) {
144
+ return null;
145
+ }
146
+ }
147
+ }
148
+ return {
149
+ idToken,
150
+ authCode,
151
+ provider: provider ?? null,
152
+ flow: flow ?? null,
153
+ publicKey: publicKey ?? null,
154
+ openModal: openModal ?? null,
155
+ sessionKey: sessionKey ?? undefined,
156
+ oauthIntent: oauthIntent ?? null,
157
+ nonce: nonce ?? null,
158
+ redirectUri: redirectUri ?? null
159
+ };
160
+ }
161
+ /**
162
+ * Builds the complete OAuth authorization URL for a provider
163
+ */
164
+ function buildOAuthUrl(params) {
165
+ const {
166
+ provider,
167
+ clientId,
168
+ redirectUri,
169
+ publicKey,
170
+ nonce,
171
+ flow,
172
+ codeChallenge,
173
+ additionalState
174
+ } = params;
175
+ const config$1 = config.OAUTH_PROVIDER_CONFIGS[provider];
176
+ const authUrl = new URL(config$1.authUrl);
177
+ authUrl.searchParams.set("client_id", clientId);
178
+ authUrl.searchParams.set("redirect_uri", redirectUri);
179
+ authUrl.searchParams.set("response_type", config$1.responseType);
180
+ if (config$1.scopes) {
181
+ authUrl.searchParams.set("scope", config$1.scopes);
182
+ }
183
+ if (config$1.responseMode) {
184
+ authUrl.searchParams.set("response_mode", config$1.responseMode);
185
+ }
186
+ // PKCE parameters
187
+ if (config$1.usesPKCE && codeChallenge) {
188
+ authUrl.searchParams.set("code_challenge", codeChallenge);
189
+ authUrl.searchParams.set("code_challenge_method", "S256");
190
+ }
191
+ // Nonce handling - some providers want it in URL params, others in state
192
+ if (config$1.nonceInParams) {
193
+ authUrl.searchParams.set("nonce", nonce);
194
+ }
195
+ // Google-specific: prompt for account selection
196
+ if (provider === sdkTypes.OAuthProviders.GOOGLE) {
197
+ authUrl.searchParams.set("prompt", "select_account");
198
+ }
199
+ // Build state parameter
200
+ const stateParams = {
201
+ provider,
202
+ flow,
203
+ publicKey
204
+ };
205
+ // Include nonce in state for providers that need it there (not in URL params)
206
+ if (!config$1.nonceInParams) {
207
+ stateParams.nonce = nonce;
208
+ }
209
+ if (additionalState) {
210
+ stateParams.additionalState = additionalState;
211
+ }
212
+ authUrl.searchParams.set("state", buildOAuthState(stateParams));
213
+ return authUrl.toString();
214
+ }
215
+
216
+ exports.buildOAuthState = buildOAuthState;
217
+ exports.buildOAuthUrl = buildOAuthUrl;
218
+ exports.cleanupOAuthUrl = cleanupOAuthUrl;
219
+ exports.cleanupOAuthUrlPreserveSearch = cleanupOAuthUrlPreserveSearch;
220
+ exports.openOAuthPopup = openOAuthPopup;
221
+ exports.parseOAuthResponse = parseOAuthResponse;
222
+ exports.parseStateParam = parseStateParam;
223
+ exports.redirectToOAuthProvider = redirectToOAuthProvider;
224
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sources":["../../../src/utils/oauth/url.ts"],"sourcesContent":[null],"names":["buildOAuthState","params","provider","flow","publicKey","nonce","additionalState","state","encodeURIComponent","extra","Object","entries","map","k","v","join","openOAuthPopup","width","popupWidth","height","popupHeight","left","window","screenX","innerWidth","top","screenY","innerHeight","open","redirectToOAuthProvider","url","location","href","timeLimit","Promise","_","reject","timeout","setTimeout","Error","addEventListener","clearTimeout","cleanupOAuthUrl","history","replaceState","document","title","pathname","cleanupOAuthUrlPreserveSearch","search","parseStateParam","stateParam","result","pairs","split","pair","key","value","undefined","decodeURIComponent","parseOAuthResponse","expectedProvider","idToken","authCode","stateString","parsedUrl","URL","substring","hash","includes","searchParams","URLSearchParams","get","startsWith","idTokenMatch","match","stateEndIndex","indexOf","hashParams","openModal","sessionKey","oauthIntent","redirectUri","config","OAUTH_PROVIDER_CONFIGS","usesPKCE","buildOAuthUrl","clientId","codeChallenge","authUrl","set","responseType","scopes","responseMode","nonceInParams","OAuthProviders","GOOGLE","stateParams","toString"],"mappings":"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"}