@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,176 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { ZeroXKeyError, ZeroXKeyErrorCodes } from '@0xkey-io/sdk-types';
3
+ import { consumePKCEVerifier } from './storage.mjs';
4
+ import { OAUTH_PROVIDER_CONFIGS } from './config.mjs';
5
+
6
+ /**
7
+ * Unified OAuth completion handler.
8
+ * Routes to the appropriate completion handler based on params:
9
+ * Priority: onAddProvider > onOauthSuccess > callbacks.onOauthRedirect > completeOauth
10
+ *
11
+ * This is the core completion logic used by both popup and redirect flows.
12
+ */
13
+ function completeOAuthFlow(_x) {
14
+ return _completeOAuthFlow.apply(this, arguments);
15
+ }
16
+ /**
17
+ * Completes OAuth flow in popup - handles both PKCE and non-PKCE providers
18
+ */
19
+ function _completeOAuthFlow() {
20
+ _completeOAuthFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(params) {
21
+ var provider, publicKey, oidcToken, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider;
22
+ return _regenerator().w(function (_context) {
23
+ while (1) switch (_context.n) {
24
+ case 0:
25
+ provider = params.provider, publicKey = params.publicKey, oidcToken = params.oidcToken, sessionKey = params.sessionKey, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, onAddProvider = params.onAddProvider;
26
+ if (!onAddProvider) {
27
+ _context.n = 2;
28
+ break;
29
+ }
30
+ _context.n = 1;
31
+ return onAddProvider(oidcToken);
32
+ case 1:
33
+ _context.n = 5;
34
+ break;
35
+ case 2:
36
+ if (!onOauthSuccess) {
37
+ _context.n = 3;
38
+ break;
39
+ }
40
+ onOauthSuccess(_objectSpread2({
41
+ publicKey: publicKey,
42
+ oidcToken: oidcToken,
43
+ providerName: provider
44
+ }, sessionKey && {
45
+ sessionKey: sessionKey
46
+ }));
47
+ _context.n = 5;
48
+ break;
49
+ case 3:
50
+ if (!(callbacks !== null && callbacks !== void 0 && callbacks.onOauthRedirect)) {
51
+ _context.n = 4;
52
+ break;
53
+ }
54
+ callbacks.onOauthRedirect(_objectSpread2({
55
+ idToken: oidcToken,
56
+ publicKey: publicKey
57
+ }, sessionKey && {
58
+ sessionKey: sessionKey
59
+ }));
60
+ _context.n = 5;
61
+ break;
62
+ case 4:
63
+ _context.n = 5;
64
+ return completeOauth(_objectSpread2({
65
+ oidcToken: oidcToken,
66
+ publicKey: publicKey,
67
+ providerName: provider
68
+ }, sessionKey && {
69
+ sessionKey: sessionKey
70
+ }));
71
+ case 5:
72
+ return _context.a(2);
73
+ }
74
+ }, _callee);
75
+ }));
76
+ return _completeOAuthFlow.apply(this, arguments);
77
+ }
78
+ function completeOAuthPopup(_x2) {
79
+ return _completeOAuthPopup.apply(this, arguments);
80
+ }
81
+ /**
82
+ * Unified PKCE flow handler for all PKCE-based OAuth providers.
83
+ * Handles the complete PKCE flow: verifier retrieval, token exchange, and completion routing.
84
+ *
85
+ * This function abstracts the common logic shared between popup and redirect flows
86
+ * for Facebook, Discord, and Twitter/X.
87
+ *
88
+ * @param params - The PKCE flow parameters
89
+ * @returns A promise that resolves when the flow is complete
90
+ */
91
+ function _completeOAuthPopup() {
92
+ _completeOAuthPopup = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(params) {
93
+ var provider, publicKey, result, callbacks, completeOauth, onOauthSuccess, exchangeCodeForToken, config;
94
+ return _regenerator().w(function (_context2) {
95
+ while (1) switch (_context2.n) {
96
+ case 0:
97
+ provider = params.provider, publicKey = params.publicKey, result = params.result, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, exchangeCodeForToken = params.exchangeCodeForToken;
98
+ config = OAUTH_PROVIDER_CONFIGS[provider];
99
+ if (!config.usesPKCE) {
100
+ _context2.n = 3;
101
+ break;
102
+ }
103
+ if (exchangeCodeForToken) {
104
+ _context2.n = 1;
105
+ break;
106
+ }
107
+ throw new ZeroXKeyError("exchangeCodeForToken is required for PKCE providers", ZeroXKeyErrorCodes.INTERNAL_ERROR);
108
+ case 1:
109
+ _context2.n = 2;
110
+ return completePKCEFlow({
111
+ publicKey: publicKey,
112
+ providerName: provider,
113
+ sessionKey: result.sessionKey,
114
+ callbacks: callbacks,
115
+ completeOauth: completeOauth,
116
+ onOauthSuccess: onOauthSuccess,
117
+ exchangeCodeForToken: exchangeCodeForToken
118
+ });
119
+ case 2:
120
+ _context2.n = 4;
121
+ break;
122
+ case 3:
123
+ _context2.n = 4;
124
+ return completeOAuthFlow({
125
+ provider: provider,
126
+ publicKey: publicKey,
127
+ oidcToken: result.idToken,
128
+ sessionKey: result.sessionKey,
129
+ callbacks: callbacks,
130
+ completeOauth: completeOauth,
131
+ onOauthSuccess: onOauthSuccess
132
+ });
133
+ case 4:
134
+ return _context2.a(2);
135
+ }
136
+ }, _callee2);
137
+ }));
138
+ return _completeOAuthPopup.apply(this, arguments);
139
+ }
140
+ function completePKCEFlow(_x3) {
141
+ return _completePKCEFlow.apply(this, arguments);
142
+ }
143
+ function _completePKCEFlow() {
144
+ _completePKCEFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(_ref) {
145
+ var publicKey, providerName, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider, exchangeCodeForToken, verifier, oidcToken;
146
+ return _regenerator().w(function (_context3) {
147
+ while (1) switch (_context3.n) {
148
+ case 0:
149
+ publicKey = _ref.publicKey, providerName = _ref.providerName, sessionKey = _ref.sessionKey, callbacks = _ref.callbacks, completeOauth = _ref.completeOauth, onOauthSuccess = _ref.onOauthSuccess, onAddProvider = _ref.onAddProvider, exchangeCodeForToken = _ref.exchangeCodeForToken;
150
+ // Consume the verifier (retrieves and removes from storage)
151
+ verifier = consumePKCEVerifier(providerName); // Exchange the code for an OIDC token using the provider-specific function
152
+ _context3.n = 1;
153
+ return exchangeCodeForToken(verifier);
154
+ case 1:
155
+ oidcToken = _context3.v;
156
+ _context3.n = 2;
157
+ return completeOAuthFlow({
158
+ provider: providerName,
159
+ publicKey: publicKey,
160
+ oidcToken: oidcToken,
161
+ sessionKey: sessionKey,
162
+ callbacks: callbacks,
163
+ completeOauth: completeOauth,
164
+ onOauthSuccess: onOauthSuccess,
165
+ onAddProvider: onAddProvider
166
+ });
167
+ case 2:
168
+ return _context3.a(2);
169
+ }
170
+ }, _callee3);
171
+ }));
172
+ return _completePKCEFlow.apply(this, arguments);
173
+ }
174
+
175
+ export { completeOAuthFlow, completeOAuthPopup, completePKCEFlow };
176
+ //# sourceMappingURL=completion.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.mjs","sources":["../../../src/utils/oauth/completion.ts"],"sourcesContent":[null],"names":["completeOAuthFlow","_x","_completeOAuthFlow","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","params","provider","publicKey","oidcToken","sessionKey","callbacks","completeOauth","onOauthSuccess","onAddProvider","w","_context","n","_objectSpread","providerName","onOauthRedirect","idToken","a","completeOAuthPopup","_x2","_completeOAuthPopup","_callee2","result","exchangeCodeForToken","config","_context2","OAUTH_PROVIDER_CONFIGS","usesPKCE","ZeroXKeyError","ZeroXKeyErrorCodes","INTERNAL_ERROR","completePKCEFlow","_x3","_completePKCEFlow","_callee3","_ref","verifier","_context3","consumePKCEVerifier","v"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { OAuthProviders } from "@0xkey-io/sdk-types";
2
+ export declare const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
3
+ export declare const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
4
+ export declare const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
5
+ export declare const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
6
+ export declare const APPLE_AUTH_SCRIPT_URL = "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js";
7
+ export declare const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
8
+ export declare const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
9
+ export declare const popupWidth = 500;
10
+ export declare const popupHeight = 600;
11
+ /**
12
+ * OAuth provider configuration for unified OAuth flow handling
13
+ */
14
+ export interface OAuthProviderConfig {
15
+ /** The provider identifier */
16
+ provider: OAuthProviders;
17
+ /** The base OAuth authorization URL */
18
+ authUrl: string;
19
+ /** OAuth scopes to request */
20
+ scopes: string;
21
+ /** Whether this provider uses PKCE */
22
+ usesPKCE: boolean;
23
+ /** Response type for the OAuth request */
24
+ responseType: string;
25
+ /** Optional response mode (e.g., 'fragment' for Apple) */
26
+ responseMode?: string;
27
+ /** Whether to include nonce in the URL params (vs state) */
28
+ nonceInParams?: boolean;
29
+ }
30
+ /**
31
+ * Pre-configured OAuth provider settings
32
+ */
33
+ export declare const OAUTH_PROVIDER_CONFIGS: Record<OAuthProviders, OAuthProviderConfig>;
34
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,gBAAgB,yCAAyC,CAAC;AACvE,eAAO,MAAM,UAAU,qCAAqC,CAAC;AAC7D,eAAO,MAAM,eAAe,iDAAiD,CAAC;AAC9E,eAAO,MAAM,cAAc,6CAA6C,CAAC;AACzE,eAAO,MAAM,qBAAqB,yFACsD,CAAC;AACzF,eAAO,MAAM,iBAAiB,gDAAgD,CAAC;AAC/E,eAAO,MAAM,kBAAkB,wDACwB,CAAC;AAExD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,cAAc,EACd,mBAAmB,CA2CpB,CAAC"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var sdkTypes = require('@0xkey-io/sdk-types');
4
+
5
+ const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
6
+ const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
7
+ const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
8
+ const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
9
+ const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
10
+ const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
11
+ const popupWidth = 500;
12
+ const popupHeight = 600;
13
+ /**
14
+ * Pre-configured OAuth provider settings
15
+ */
16
+ const OAUTH_PROVIDER_CONFIGS = {
17
+ [sdkTypes.OAuthProviders.GOOGLE]: {
18
+ provider: sdkTypes.OAuthProviders.GOOGLE,
19
+ authUrl: GOOGLE_AUTH_URL,
20
+ scopes: "openid email profile",
21
+ usesPKCE: false,
22
+ responseType: "id_token",
23
+ nonceInParams: true
24
+ },
25
+ [sdkTypes.OAuthProviders.APPLE]: {
26
+ provider: sdkTypes.OAuthProviders.APPLE,
27
+ authUrl: APPLE_AUTH_URL,
28
+ scopes: "",
29
+ usesPKCE: false,
30
+ responseType: "code id_token",
31
+ responseMode: "fragment",
32
+ nonceInParams: true
33
+ },
34
+ [sdkTypes.OAuthProviders.FACEBOOK]: {
35
+ provider: sdkTypes.OAuthProviders.FACEBOOK,
36
+ authUrl: FACEBOOK_AUTH_URL,
37
+ scopes: "openid",
38
+ usesPKCE: true,
39
+ responseType: "code",
40
+ nonceInParams: true
41
+ },
42
+ [sdkTypes.OAuthProviders.DISCORD]: {
43
+ provider: sdkTypes.OAuthProviders.DISCORD,
44
+ authUrl: DISCORD_AUTH_URL,
45
+ scopes: "identify email",
46
+ usesPKCE: true,
47
+ responseType: "code",
48
+ nonceInParams: false
49
+ },
50
+ [sdkTypes.OAuthProviders.X]: {
51
+ provider: sdkTypes.OAuthProviders.X,
52
+ authUrl: X_AUTH_URL,
53
+ scopes: "tweet.read users.read",
54
+ usesPKCE: true,
55
+ responseType: "code",
56
+ nonceInParams: false
57
+ }
58
+ };
59
+
60
+ exports.APPLE_AUTH_URL = APPLE_AUTH_URL;
61
+ exports.DISCORD_AUTH_URL = DISCORD_AUTH_URL;
62
+ exports.FACEBOOK_AUTH_URL = FACEBOOK_AUTH_URL;
63
+ exports.FACEBOOK_GRAPH_URL = FACEBOOK_GRAPH_URL;
64
+ exports.GOOGLE_AUTH_URL = GOOGLE_AUTH_URL;
65
+ exports.OAUTH_PROVIDER_CONFIGS = OAUTH_PROVIDER_CONFIGS;
66
+ exports.X_AUTH_URL = X_AUTH_URL;
67
+ exports.popupHeight = popupHeight;
68
+ exports.popupWidth = popupWidth;
69
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;;AAEO,MAAMA,gBAAgB,GAAG;AACzB,MAAMC,UAAU,GAAG;AACnB,MAAMC,eAAe,GAAG;AACxB,MAAMC,cAAc,GAAG;AAGvB,MAAMC,iBAAiB,GAAG;AAC1B,MAAMC,kBAAkB,GAC7B;AAEK,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;AAsB3B;;AAEG;AACI,MAAMC,sBAAsB,GAG/B;EACF,CAACC,uBAAc,CAACC,MAAM,GAAG;IACvBC,QAAQ,EAAEF,uBAAc,CAACC,MAAM;AAC/BE,IAAAA,OAAO,EAAEV,eAAe;AACxBW,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,UAAU;AACxBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACQ,KAAK,GAAG;IACtBN,QAAQ,EAAEF,uBAAc,CAACQ,KAAK;AAC9BL,IAAAA,OAAO,EAAET,cAAc;AACvBU,IAAAA,MAAM,EAAE,EAAE;AACVC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,eAAe;AAC7BG,IAAAA,YAAY,EAAE,UAAU;AACxBF,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACU,QAAQ,GAAG;IACzBR,QAAQ,EAAEF,uBAAc,CAACU,QAAQ;AACjCP,IAAAA,OAAO,EAAER,iBAAiB;AAC1BS,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACW,OAAO,GAAG;IACxBT,QAAQ,EAAEF,uBAAc,CAACW,OAAO;AAChCR,IAAAA,OAAO,EAAEZ,gBAAgB;AACzBa,IAAAA,MAAM,EAAE,gBAAgB;AACxBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACY,CAAC,GAAG;IAClBV,QAAQ,EAAEF,uBAAc,CAACY,CAAC;AAC1BT,IAAAA,OAAO,EAAEX,UAAU;AACnBY,IAAAA,MAAM,EAAE,uBAAuB;AAC/BC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;AAChB;;;;;;;;;;;;;"}
@@ -0,0 +1,54 @@
1
+ import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { OAuthProviders } from '@0xkey-io/sdk-types';
3
+
4
+ var DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
5
+ var X_AUTH_URL = "https://x.com/i/oauth2/authorize";
6
+ var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
7
+ var APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
8
+ var FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
9
+ var FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
10
+ var popupWidth = 500;
11
+ var popupHeight = 600;
12
+ /**
13
+ * Pre-configured OAuth provider settings
14
+ */
15
+ var OAUTH_PROVIDER_CONFIGS = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, OAuthProviders.GOOGLE, {
16
+ provider: OAuthProviders.GOOGLE,
17
+ authUrl: GOOGLE_AUTH_URL,
18
+ scopes: "openid email profile",
19
+ usesPKCE: false,
20
+ responseType: "id_token",
21
+ nonceInParams: true
22
+ }), OAuthProviders.APPLE, {
23
+ provider: OAuthProviders.APPLE,
24
+ authUrl: APPLE_AUTH_URL,
25
+ scopes: "",
26
+ usesPKCE: false,
27
+ responseType: "code id_token",
28
+ responseMode: "fragment",
29
+ nonceInParams: true
30
+ }), OAuthProviders.FACEBOOK, {
31
+ provider: OAuthProviders.FACEBOOK,
32
+ authUrl: FACEBOOK_AUTH_URL,
33
+ scopes: "openid",
34
+ usesPKCE: true,
35
+ responseType: "code",
36
+ nonceInParams: true
37
+ }), OAuthProviders.DISCORD, {
38
+ provider: OAuthProviders.DISCORD,
39
+ authUrl: DISCORD_AUTH_URL,
40
+ scopes: "identify email",
41
+ usesPKCE: true,
42
+ responseType: "code",
43
+ nonceInParams: false
44
+ }), OAuthProviders.X, {
45
+ provider: OAuthProviders.X,
46
+ authUrl: X_AUTH_URL,
47
+ scopes: "tweet.read users.read",
48
+ usesPKCE: true,
49
+ responseType: "code",
50
+ nonceInParams: false
51
+ });
52
+
53
+ export { APPLE_AUTH_URL, DISCORD_AUTH_URL, FACEBOOK_AUTH_URL, FACEBOOK_GRAPH_URL, GOOGLE_AUTH_URL, OAUTH_PROVIDER_CONFIGS, X_AUTH_URL, popupHeight, popupWidth };
54
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","_defineProperty","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;AAEO,IAAMA,gBAAgB,GAAG;AACzB,IAAMC,UAAU,GAAG;AACnB,IAAMC,eAAe,GAAG;AACxB,IAAMC,cAAc,GAAG;AAGvB,IAAMC,iBAAiB,GAAG;AAC1B,IAAMC,kBAAkB,GAC7B;AAEK,IAAMC,UAAU,GAAG;AACnB,IAAMC,WAAW,GAAG;AAsB3B;;AAEG;IACUC,sBAAsB,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EAIhCC,cAAc,CAACC,MAAM,EAAG;EACvBC,QAAQ,EAAEF,cAAc,CAACC,MAAM;AAC/BE,EAAAA,OAAO,EAAEX,eAAe;AACxBY,EAAAA,MAAM,EAAE,sBAAsB;AAC9BC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,UAAU;AACxBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACQ,KAAK,EAAG;EACtBN,QAAQ,EAAEF,cAAc,CAACQ,KAAK;AAC9BL,EAAAA,OAAO,EAAEV,cAAc;AACvBW,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,eAAe;AAC7BG,EAAAA,YAAY,EAAE,UAAU;AACxBF,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACU,QAAQ,EAAG;EACzBR,QAAQ,EAAEF,cAAc,CAACU,QAAQ;AACjCP,EAAAA,OAAO,EAAET,iBAAiB;AAC1BU,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACW,OAAO,EAAG;EACxBT,QAAQ,EAAEF,cAAc,CAACW,OAAO;AAChCR,EAAAA,OAAO,EAAEb,gBAAgB;AACzBc,EAAAA,MAAM,EAAE,gBAAgB;AACxBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACY,CAAC,EAAG;EAClBV,QAAQ,EAAEF,cAAc,CAACY,CAAC;AAC1BT,EAAAA,OAAO,EAAEZ,UAAU;AACnBa,EAAAA,MAAM,EAAE,uBAAuB;AAC/BC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA;;;;"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Capitalizes the first letter of a provider name
3
+ * @param provider - The provider name (e.g., "facebook", "discord")
4
+ * @returns The capitalized provider name (e.g., "Facebook", "Discord")
5
+ */
6
+ export declare function capitalizeProviderName(provider: string): string;
7
+ /**
8
+ * Gets the FontAwesome icon for an OAuth provider
9
+ * @param provider - The provider name
10
+ * @returns The FontAwesome icon definition
11
+ */
12
+ export declare function getProviderIcon(provider: string | null | undefined): import("@fortawesome/free-brands-svg-icons").IconDefinition;
13
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/helpers.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,+DAclE"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var sdkTypes = require('@0xkey-io/sdk-types');
4
+ var freeBrandsSvgIcons = require('@fortawesome/free-brands-svg-icons');
5
+
6
+ /**
7
+ * Capitalizes the first letter of a provider name
8
+ * @param provider - The provider name (e.g., "facebook", "discord")
9
+ * @returns The capitalized provider name (e.g., "Facebook", "Discord")
10
+ */
11
+ function capitalizeProviderName(provider) {
12
+ if (!provider) return "Provider";
13
+ return provider.charAt(0).toUpperCase() + provider.slice(1);
14
+ }
15
+ /**
16
+ * Gets the FontAwesome icon for an OAuth provider
17
+ * @param provider - The provider name
18
+ * @returns The FontAwesome icon definition
19
+ */
20
+ function getProviderIcon(provider) {
21
+ switch (provider) {
22
+ case sdkTypes.OAuthProviders.FACEBOOK:
23
+ return freeBrandsSvgIcons.faFacebook;
24
+ case sdkTypes.OAuthProviders.DISCORD:
25
+ return freeBrandsSvgIcons.faDiscord;
26
+ case sdkTypes.OAuthProviders.X:
27
+ return freeBrandsSvgIcons.faXTwitter;
28
+ case sdkTypes.OAuthProviders.APPLE:
29
+ return freeBrandsSvgIcons.faApple;
30
+ case sdkTypes.OAuthProviders.GOOGLE:
31
+ default:
32
+ return freeBrandsSvgIcons.faGoogle;
33
+ }
34
+ }
35
+
36
+ exports.capitalizeProviderName = capitalizeProviderName;
37
+ exports.getProviderIcon = getProviderIcon;
38
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/utils/oauth/helpers.ts"],"sourcesContent":[null],"names":["capitalizeProviderName","provider","charAt","toUpperCase","slice","getProviderIcon","OAuthProviders","FACEBOOK","faFacebook","DISCORD","faDiscord","X","faXTwitter","APPLE","faApple","GOOGLE","faGoogle"],"mappings":";;;;;AASA;;;;AAIG;AACG,SAAUA,sBAAsBA,CAACC,QAAgB,EAAA;AACrD,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAO,UAAU;AAChC,EAAA,OAAOA,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC;AAC7D;AAEA;;;;AAIG;AACG,SAAUC,eAAeA,CAACJ,QAAmC,EAAA;AACjE,EAAA,QAAQA,QAAQ;IACd,KAAKK,uBAAc,CAACC,QAAQ;AAC1B,MAAA,OAAOC,6BAAU;IACnB,KAAKF,uBAAc,CAACG,OAAO;AACzB,MAAA,OAAOC,4BAAS;IAClB,KAAKJ,uBAAc,CAACK,CAAC;AACnB,MAAA,OAAOC,6BAAU;IACnB,KAAKN,uBAAc,CAACO,KAAK;AACvB,MAAA,OAAOC,0BAAO;IAChB,KAAKR,uBAAc,CAACS,MAAM;AAC1B,IAAA;AACE,MAAA,OAAOC,2BAAQ;AACnB;AACF;;;;;"}
@@ -0,0 +1,35 @@
1
+ import { OAuthProviders } from '@0xkey-io/sdk-types';
2
+ import { faGoogle, faApple, faXTwitter, faDiscord, faFacebook } from '@fortawesome/free-brands-svg-icons';
3
+
4
+ /**
5
+ * Capitalizes the first letter of a provider name
6
+ * @param provider - The provider name (e.g., "facebook", "discord")
7
+ * @returns The capitalized provider name (e.g., "Facebook", "Discord")
8
+ */
9
+ function capitalizeProviderName(provider) {
10
+ if (!provider) return "Provider";
11
+ return provider.charAt(0).toUpperCase() + provider.slice(1);
12
+ }
13
+ /**
14
+ * Gets the FontAwesome icon for an OAuth provider
15
+ * @param provider - The provider name
16
+ * @returns The FontAwesome icon definition
17
+ */
18
+ function getProviderIcon(provider) {
19
+ switch (provider) {
20
+ case OAuthProviders.FACEBOOK:
21
+ return faFacebook;
22
+ case OAuthProviders.DISCORD:
23
+ return faDiscord;
24
+ case OAuthProviders.X:
25
+ return faXTwitter;
26
+ case OAuthProviders.APPLE:
27
+ return faApple;
28
+ case OAuthProviders.GOOGLE:
29
+ default:
30
+ return faGoogle;
31
+ }
32
+ }
33
+
34
+ export { capitalizeProviderName, getProviderIcon };
35
+ //# sourceMappingURL=helpers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.mjs","sources":["../../../src/utils/oauth/helpers.ts"],"sourcesContent":[null],"names":["capitalizeProviderName","provider","charAt","toUpperCase","slice","getProviderIcon","OAuthProviders","FACEBOOK","faFacebook","DISCORD","faDiscord","X","faXTwitter","APPLE","faApple","GOOGLE","faGoogle"],"mappings":";;;AASA;;;;AAIG;AACG,SAAUA,sBAAsBA,CAACC,QAAgB,EAAA;AACrD,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAO,UAAU;AAChC,EAAA,OAAOA,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC;AAC7D;AAEA;;;;AAIG;AACG,SAAUC,eAAeA,CAACJ,QAAmC,EAAA;AACjE,EAAA,QAAQA,QAAQ;IACd,KAAKK,cAAc,CAACC,QAAQ;AAC1B,MAAA,OAAOC,UAAU;IACnB,KAAKF,cAAc,CAACG,OAAO;AACzB,MAAA,OAAOC,SAAS;IAClB,KAAKJ,cAAc,CAACK,CAAC;AACnB,MAAA,OAAOC,UAAU;IACnB,KAAKN,cAAc,CAACO,KAAK;AACvB,MAAA,OAAOC,OAAO;IAChB,KAAKR,cAAc,CAACS,MAAM;AAC1B,IAAA;AACE,MAAA,OAAOC,QAAQ;AACnB;AACF;;;;"}
@@ -0,0 +1,7 @@
1
+ export * from "./storage";
2
+ export * from "./config";
3
+ export * from "./url";
4
+ export * from "./completion";
5
+ export * from "./pkce";
6
+ export * from "./helpers";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generates a PKCE challenge pair (verifier and code challenge)
3
+ */
4
+ export declare function generateChallengePair(): Promise<{
5
+ verifier: string;
6
+ codeChallenge: string;
7
+ }>;
8
+ /**
9
+ * Exchanges Facebook authorization code for token
10
+ */
11
+ export declare function exchangeFacebookCodeForToken(clientId: string, redirectUri: string, code: string, codeVerifier: string): Promise<{
12
+ id_token: string;
13
+ }>;
14
+ //# sourceMappingURL=pkce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/pkce.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAkBD;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB/B"}
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var config = require('./config.js');
4
+
5
+ /**
6
+ * Generates a PKCE challenge pair (verifier and code challenge)
7
+ */
8
+ async function generateChallengePair() {
9
+ const randomBytes = new Uint8Array(32);
10
+ window.crypto.getRandomValues(randomBytes);
11
+ const verifier = btoa(String.fromCharCode(...randomBytes)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
12
+ const encoder = new TextEncoder();
13
+ const data = encoder.encode(verifier);
14
+ const digest = await window.crypto.subtle.digest("SHA-256", data);
15
+ const base64Challenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
16
+ return {
17
+ verifier,
18
+ codeChallenge: base64Challenge
19
+ };
20
+ }
21
+ /**
22
+ * Exchanges Facebook authorization code for token
23
+ */
24
+ async function exchangeFacebookCodeForToken(clientId, redirectUri, code, codeVerifier) {
25
+ const params = new URLSearchParams({
26
+ client_id: clientId,
27
+ redirect_uri: redirectUri,
28
+ code_verifier: codeVerifier,
29
+ code: code,
30
+ grant_type: "authorization_code"
31
+ });
32
+ const response = await fetch(config.FACEBOOK_GRAPH_URL, {
33
+ method: "POST",
34
+ headers: {
35
+ "Content-Type": "application/x-www-form-urlencoded"
36
+ },
37
+ body: params.toString()
38
+ });
39
+ if (!response.ok) {
40
+ const errorData = await response.json();
41
+ throw new Error(`Facebook token exchange failed: ${JSON.stringify(errorData)}`);
42
+ }
43
+ return await response.json();
44
+ }
45
+
46
+ exports.exchangeFacebookCodeForToken = exchangeFacebookCodeForToken;
47
+ exports.generateChallengePair = generateChallengePair;
48
+ //# sourceMappingURL=pkce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pkce.js","sources":["../../../src/utils/oauth/pkce.ts"],"sourcesContent":[null],"names":["generateChallengePair","randomBytes","Uint8Array","window","crypto","getRandomValues","verifier","btoa","String","fromCharCode","replace","encoder","TextEncoder","data","encode","digest","subtle","base64Challenge","codeChallenge","exchangeFacebookCodeForToken","clientId","redirectUri","code","codeVerifier","params","URLSearchParams","client_id","redirect_uri","code_verifier","grant_type","response","fetch","FACEBOOK_GRAPH_URL","method","headers","body","toString","ok","errorData","json","Error","JSON","stringify"],"mappings":";;;;AAEA;;AAEG;AACI,eAAeA,qBAAqBA,GAAA;AAIzC,EAAA,MAAMC,WAAW,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;AACtCC,EAAAA,MAAM,CAACC,MAAM,CAACC,eAAe,CAACJ,WAAW,CAAC;AAC1C,EAAA,MAAMK,QAAQ,GAAGC,IAAI,CAACC,MAAM,CAACC,YAAY,CAAC,GAAGR,WAAW,CAAC,CAAC,CACvDS,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAErB,EAAA,MAAMC,OAAO,GAAG,IAAIC,WAAW,EAAE;AACjC,EAAA,MAAMC,IAAI,GAAGF,OAAO,CAACG,MAAM,CAACR,QAAQ,CAAC;AACrC,EAAA,MAAMS,MAAM,GAAG,MAAMZ,MAAM,CAACC,MAAM,CAACY,MAAM,CAACD,MAAM,CAAC,SAAS,EAAEF,IAAI,CAAC;AAEjE,EAAA,MAAMI,eAAe,GAAGV,IAAI,CAACC,MAAM,CAACC,YAAY,CAAC,GAAG,IAAIP,UAAU,CAACa,MAAM,CAAC,CAAC,CAAC,CACzEL,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAErB,OAAO;IAAEJ,QAAQ;AAAEY,IAAAA,aAAa,EAAED;GAAiB;AACrD;AAEA;;AAEG;AACI,eAAeE,4BAA4BA,CAChDC,QAAgB,EAChBC,WAAmB,EACnBC,IAAY,EACZC,YAAoB,EAAA;AAEpB,EAAA,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAAC;AACjCC,IAAAA,SAAS,EAAEN,QAAQ;AACnBO,IAAAA,YAAY,EAAEN,WAAW;AACzBO,IAAAA,aAAa,EAAEL,YAAY;AAC3BD,IAAAA,IAAI,EAAEA,IAAI;AACVO,IAAAA,UAAU,EAAE;AACb,GAAA,CAAC;AAEF,EAAA,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACC,yBAAkB,EAAE;AAC/CC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,OAAO,EAAE;AACP,MAAA,cAAc,EAAE;KACjB;AACDC,IAAAA,IAAI,EAAEX,MAAM,CAACY,QAAQ;AACtB,GAAA,CAAC;AAEF,EAAA,IAAI,CAACN,QAAQ,CAACO,EAAE,EAAE;AAChB,IAAA,MAAMC,SAAS,GAAG,MAAMR,QAAQ,CAACS,IAAI,EAAE;IACvC,MAAM,IAAIC,KAAK,CACb,CAAA,gCAAA,EAAmCC,IAAI,CAACC,SAAS,CAACJ,SAAS,CAAC,CAAA,CAAE,CAC/D;AACH,EAAA;AAEA,EAAA,OAAO,MAAMR,QAAQ,CAACS,IAAI,EAAE;AAC9B;;;;;"}
@@ -0,0 +1,85 @@
1
+ import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { FACEBOOK_GRAPH_URL } from './config.mjs';
3
+
4
+ /**
5
+ * Generates a PKCE challenge pair (verifier and code challenge)
6
+ */
7
+ function generateChallengePair() {
8
+ return _generateChallengePair.apply(this, arguments);
9
+ }
10
+ /**
11
+ * Exchanges Facebook authorization code for token
12
+ */
13
+ function _generateChallengePair() {
14
+ _generateChallengePair = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
15
+ var randomBytes, verifier, encoder, data, digest, base64Challenge;
16
+ return _regenerator().w(function (_context) {
17
+ while (1) switch (_context.n) {
18
+ case 0:
19
+ randomBytes = new Uint8Array(32);
20
+ window.crypto.getRandomValues(randomBytes);
21
+ verifier = btoa(String.fromCharCode.apply(String, _toConsumableArray(randomBytes))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
22
+ encoder = new TextEncoder();
23
+ data = encoder.encode(verifier);
24
+ _context.n = 1;
25
+ return window.crypto.subtle.digest("SHA-256", data);
26
+ case 1:
27
+ digest = _context.v;
28
+ base64Challenge = btoa(String.fromCharCode.apply(String, _toConsumableArray(new Uint8Array(digest)))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
29
+ return _context.a(2, {
30
+ verifier: verifier,
31
+ codeChallenge: base64Challenge
32
+ });
33
+ }
34
+ }, _callee);
35
+ }));
36
+ return _generateChallengePair.apply(this, arguments);
37
+ }
38
+ function exchangeFacebookCodeForToken(_x, _x2, _x3, _x4) {
39
+ return _exchangeFacebookCodeForToken.apply(this, arguments);
40
+ }
41
+ function _exchangeFacebookCodeForToken() {
42
+ _exchangeFacebookCodeForToken = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(clientId, redirectUri, code, codeVerifier) {
43
+ var params, response, errorData;
44
+ return _regenerator().w(function (_context2) {
45
+ while (1) switch (_context2.n) {
46
+ case 0:
47
+ params = new URLSearchParams({
48
+ client_id: clientId,
49
+ redirect_uri: redirectUri,
50
+ code_verifier: codeVerifier,
51
+ code: code,
52
+ grant_type: "authorization_code"
53
+ });
54
+ _context2.n = 1;
55
+ return fetch(FACEBOOK_GRAPH_URL, {
56
+ method: "POST",
57
+ headers: {
58
+ "Content-Type": "application/x-www-form-urlencoded"
59
+ },
60
+ body: params.toString()
61
+ });
62
+ case 1:
63
+ response = _context2.v;
64
+ if (response.ok) {
65
+ _context2.n = 3;
66
+ break;
67
+ }
68
+ _context2.n = 2;
69
+ return response.json();
70
+ case 2:
71
+ errorData = _context2.v;
72
+ throw new Error("Facebook token exchange failed: ".concat(JSON.stringify(errorData)));
73
+ case 3:
74
+ _context2.n = 4;
75
+ return response.json();
76
+ case 4:
77
+ return _context2.a(2, _context2.v);
78
+ }
79
+ }, _callee2);
80
+ }));
81
+ return _exchangeFacebookCodeForToken.apply(this, arguments);
82
+ }
83
+
84
+ export { exchangeFacebookCodeForToken, generateChallengePair };
85
+ //# sourceMappingURL=pkce.mjs.map