@springmicro/auth 0.1.9 → 0.2.0-alpha.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 (135) hide show
  1. package/dist/Index-652aeb8c-BTQ1rBi7.js +2818 -0
  2. package/dist/Index-c419311f-BOZhAAW3.js +1054 -0
  3. package/dist/Web3Auth-hACKSouN.js +32769 -0
  4. package/dist/alphawallet-B7eovdf-.js +26 -0
  5. package/dist/apexwallet-ysP20G9D.js +93 -0
  6. package/dist/atoken-BBnNTzcz.js +27 -0
  7. package/dist/bifrostwallet-CNNBO92h.js +11 -0
  8. package/dist/binance-DvPgAzCw.js +14 -0
  9. package/dist/bitget-DZOUrwgy.js +4 -0
  10. package/dist/bitpie-C_uxmEzw.js +25 -0
  11. package/dist/bitski-DpzkHNkv.js +4 -0
  12. package/dist/blockwallet-BL69cqkA.js +8 -0
  13. package/dist/brave-DnRzMQYW.js +35 -0
  14. package/dist/ccip-c78d2f16-DLcRlwod.js +165 -0
  15. package/dist/coin98wallet-CkFdOvXt.js +4 -0
  16. package/dist/coinbase-CaGNx5if.js +9 -0
  17. package/dist/core-9rK8tWud.js +7 -0
  18. package/dist/defiwallet-0AsgJBSy.js +10 -0
  19. package/dist/detected-CX_JZaUk.js +6 -0
  20. package/dist/echooo-CmaetT_Z.js +14 -0
  21. package/dist/enkrypt-BibtwvK7.js +20 -0
  22. package/dist/exodus-BxzkDWWP.js +4 -0
  23. package/dist/fordefi-CvKyVwhI.js +6 -0
  24. package/dist/foxwallet-D7c_LDTf.js +4 -0
  25. package/dist/frame-CDfNmjUy.js +7 -0
  26. package/dist/frontier-DqKNSj2z.js +8 -0
  27. package/dist/huobiwallet-CxSwqa5L.js +14 -0
  28. package/dist/hyperpay-nmHE3WqM.js +7 -0
  29. package/dist/icon-2Zqy7pqQ.js +8 -0
  30. package/dist/icon-CGWI1Ies.js +43 -0
  31. package/dist/icon-C_O4nprO.js +9 -0
  32. package/dist/icon-DbgmZCnU.js +9 -0
  33. package/dist/icon-cAd7RhSC.js +9 -0
  34. package/dist/icon-duCa3gfT.js +11 -0
  35. package/dist/imtoken-yENtOTS3.js +17 -0
  36. package/dist/index-021f6a62-Zz543EDB.js +2583 -0
  37. package/dist/index-40a497ea-Bn2mC0r7.js +1010 -0
  38. package/dist/index-BHkXn9Ss.js +4010 -0
  39. package/dist/index-BaYEABY7.js +7089 -0
  40. package/dist/index-BtLU53lm.js +6023 -0
  41. package/dist/index-CynP9H3X.js +6188 -0
  42. package/dist/index-Dg8m-Szw.js +31 -0
  43. package/dist/index-Dt6M8ha9.js +161 -0
  44. package/dist/index-DtJfAdfq.js +5822 -0
  45. package/dist/index-klU8YB0c.js +1983 -0
  46. package/dist/index.d.ts +124 -0
  47. package/dist/index.js +5 -43
  48. package/dist/index.umd.cjs +1937 -1
  49. package/dist/infinitywallet-C8J4FUYw.js +42 -0
  50. package/dist/kayros-AIrUK1za.js +27 -0
  51. package/dist/lif3wallet-C5D6r8pg.js +41 -0
  52. package/dist/liquality-nbCtErVq.js +16 -0
  53. package/dist/mathwallet-CWkivCXo.js +50 -0
  54. package/dist/meetone-kKmvI8md.js +13 -0
  55. package/dist/metamask-BN7yiDV1.js +64 -0
  56. package/dist/mykey-CQZ6UcLH.js +13 -0
  57. package/dist/number-BXHWhlom.js +1529 -0
  58. package/dist/okxwallet-CJLVogh2.js +8 -0
  59. package/dist/oneInch-CciyZ4Pz.js +72 -0
  60. package/dist/onekey-Dal8kYjU.js +9 -0
  61. package/dist/opera-DnKg-TJU.js +24 -0
  62. package/dist/ownbit-BshJUVuW.js +18 -0
  63. package/dist/phantom-CJ8dIcov.js +35 -0
  64. package/dist/rabby-D4thTcd6.js +27 -0
  65. package/dist/rainbow-mXld6yWV.js +69 -0
  66. package/dist/roninwallet-ZyYrd-D1.js +9 -0
  67. package/dist/safeheron-Eg1Jb29V.js +23 -0
  68. package/dist/safepal-DVIKy94N.js +105 -0
  69. package/dist/sequence-BS2IbtDg.js +70 -0
  70. package/dist/stablewallet-jyB079Wb.js +20 -0
  71. package/dist/status-FrAvQjfn.js +4 -0
  72. package/dist/subwallet-DMvFqKyY.js +25 -0
  73. package/dist/talisman-Bp8zUXqB.js +16 -0
  74. package/dist/tallywallet-B4OS9nIr.js +16 -0
  75. package/dist/tokenary-C7jjcbQa.js +18 -0
  76. package/dist/tokenpocket-9ZRPmAFA.js +28 -0
  77. package/dist/tp-V2em5bdl.js +13 -0
  78. package/dist/transactionRequest-be6a8ea9-CUKWo5mx.js +1117 -0
  79. package/dist/trust-gPypS1O7.js +11 -0
  80. package/dist/xdefi-COVIyGz4.js +38 -0
  81. package/dist/zeal-DxHbDqm0.js +9 -0
  82. package/dist/zerion-BfW0UElc.js +8 -0
  83. package/dist/zodiacpilot-CrId6F4w.js +6 -0
  84. package/package.json +35 -15
  85. package/src/auth/config.ts +0 -2
  86. package/src/components/SignUp.tsx +442 -0
  87. package/src/components/forms/AgreementModal.tsx +88 -0
  88. package/src/components/forms/CaptchaController.tsx +94 -0
  89. package/src/components/forms/CaptchaModal.jsx +171 -0
  90. package/src/components/forms/CaptchaWidget.jsx +146 -0
  91. package/src/components/forms/PasswordChecker.ts +88 -0
  92. package/src/components/forms/SendCodeInput.tsx +149 -0
  93. package/src/components/forms/SignUpFormItem.tsx +704 -0
  94. package/src/components/forms/util/application-api.ts +155 -0
  95. package/src/components/forms/util/auth-api.ts +198 -0
  96. package/src/components/forms/util/auth-util.tsx +346 -0
  97. package/src/components/forms/util/core.ts +493 -0
  98. package/src/components/forms/util/invitation-api.ts +132 -0
  99. package/src/components/forms/util/provider.tsx +603 -0
  100. package/src/components/forms/util/user-api.ts +303 -0
  101. package/src/components/provider/AdfsLoginButton.jsx +38 -0
  102. package/src/components/provider/AlipayLoginButton.jsx +38 -0
  103. package/src/components/provider/AppleLoginButton.jsx +38 -0
  104. package/src/components/provider/AzureADB2CLoginButton.jsx +38 -0
  105. package/src/components/provider/AzureADLoginButton.jsx +38 -0
  106. package/src/components/provider/BaiduLoginButton.jsx +38 -0
  107. package/src/components/provider/BilibiliLoginButton.jsx +37 -0
  108. package/src/components/provider/CasdoorLoginButton.jsx +38 -0
  109. package/src/components/provider/DingTalkLoginButton.jsx +37 -0
  110. package/src/components/provider/DouyinLoginButton.jsx +38 -0
  111. package/src/components/provider/FacebookLoginButton.jsx +37 -0
  112. package/src/components/provider/GitHubLoginButton.jsx +37 -0
  113. package/src/components/provider/GitLabLoginButton.jsx +38 -0
  114. package/src/components/provider/GiteeLoginButton.jsx +34 -0
  115. package/src/components/provider/GoogleLoginButton.jsx +68 -0
  116. package/src/components/provider/InfoflowLoginButton.jsx +38 -0
  117. package/src/components/provider/LarkLoginButton.jsx +38 -0
  118. package/src/components/provider/LinkedInLoginButton.jsx +37 -0
  119. package/src/components/provider/LoginButton.jsx +33 -0
  120. package/src/components/provider/OktaLoginButton.jsx +38 -0
  121. package/src/components/provider/Provider.jsx +3 -0
  122. package/src/components/provider/ProviderButton.jsx +327 -0
  123. package/src/components/provider/QqLoginButton.jsx +31 -0
  124. package/src/components/provider/SelfLoginButton.jsx +47 -0
  125. package/src/components/provider/SlackLoginButton.jsx +38 -0
  126. package/src/components/provider/SteamLoginButton.jsx +38 -0
  127. package/src/components/provider/WeComLoginButton.jsx +34 -0
  128. package/src/components/provider/Web3Auth.jsx +365 -0
  129. package/src/components/provider/WechatLoginButton.jsx +37 -0
  130. package/src/components/provider/WeiboLoginButton.jsx +34 -0
  131. package/src/components/util.tsx +173 -0
  132. package/src/i18n/en/signup.json +48 -0
  133. package/src/i18n/index.ts +17 -0
  134. package/src/index.tsx +6 -1
  135. package/vite.config.ts +33 -25
@@ -0,0 +1,11 @@
1
+ const s = `
2
+ <svg width="100%" height="100%"
3
+ viewBox="0 0 40 40"
4
+ xmlns="http://www.w3.org/2000/svg"
5
+ >
6
+ <path d="m1.36250526 6.825c-1.36250526 2.675-1.36250526 6.175-1.36250526 13.175s0 10.5 1.36250526 13.1750526c1.2 2.35 3.11249474 4.2624211 5.46249474 5.4624211 2.675 1.3625263 6.175 1.3625263 13.175 1.3625263s10.5 0 13.1750526-1.3625263c2.35-1.2 4.2624211-3.1124211 5.4624211-5.4624211 1.3625263-2.6750526 1.3625263-6.1750526 1.3625263-13.1750526s0-10.5-1.3625263-13.175c-1.2-2.35-3.1124211-4.26249474-5.4624211-5.46249474-2.6750526-1.36250526-6.1750526-1.36250526-13.1750526-1.36250526s-10.5 0-13.175 1.36250526c-2.35 1.2-4.26249474 3.11249474-5.46249474 5.46249474zm28.61875794 3.9624737c.35 0 .6812631.1437895.9250526.3875789.2436842.25.3812631.5874737.3751557.9311579-.0626294 3.7250527-.2064189 6.5750527-.4751557 8.8312632-.2625263 2.2563158-.6563158 3.9312631-1.25 5.2875789-.4.9062106-.8937895 1.6562106-1.4750526 2.2936842-.7812632.8437895-1.6749474 1.4563158-2.65 2.037579-.4168421.2492631-.8502106.4953684-1.3048421.7535789-.97.5508421-2.0365264 1.1565264-3.2451579 1.9651579-.4374737.2936842-1.0062106.2936842-1.4436843 0-1.2271578-.8181052-2.3077894-1.4312631-3.2866315-1.9865263-.2176842-.1234737-.4303158-.2441052-.6384211-.3634737-1.1436842-.6625263-2.1749474-1.2937894-3.0749474-2.2063158-.6-.6-1.1187368-1.3312631-1.5312631-2.2-.5625158-1.1625263-.94376843-2.5687368-1.22501054-4.3874736-.37501052-2.4312632-.56250526-5.6125264-.63146616-10.0250527-.0060391-.3436842.12521353-.6811579.3689609-.9311579.24374737-.2437894.5812526-.3875789.9312526-.3875789h.5375263c1.6562106.0063158 5.3124211-.1562105 8.4749474-2.61871581.4687369-.36250526 1.1250526-.36250526 1.5937895 0 3.1625263 2.46250531 6.8187368 2.62503161 8.4812631 2.61871581zm-2.9062106 14.6063158c.4062106-.837579.7437895-1.9937895 1-3.6563158.3062106-1.9874737.4937895-4.6874737.5812632-8.3624211-1.95-.0563158-5.3-.4312631-8.4937895-2.5812631-3.1936842 2.1436842-6.5436842 2.5187368-8.4874737 2.5812631.0687369 3.0374737.2062106 5.4.4249474 7.2562106.25 2.1125263.6063158 3.5437894 1.05 4.55.2937895.6687368.6188421 1.15 1.0063158 1.5749473.5187368.5688421 1.1749474 1.037579 2.0687368 1.5750527.3707369.222421.7794737.4537894 1.2244211.7056842.7927368.4486315 1.7003158.9623158 2.7130526 1.6068421.9941053-.634 1.8886316-1.1424211 2.6721053-1.5877895.2362105-.1342105.4622105-.2627368.6778947-.3872632 1.1-.6312631 1.9125263-1.1562105 2.5187369-1.7687368.4063157-.4187368.7375789-.8749474 1.0437894-1.5062105z" fill="#3375bb" fill-rule="evenodd"/>
7
+ </svg>
8
+ `;
9
+ export {
10
+ s as default
11
+ };
@@ -0,0 +1,38 @@
1
+ const C = `<svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M0 6.39161C0 2.86162 2.86162 0 6.39161 0H25.6084C29.1384 0 32 2.86162 32 6.39161V25.6084C32 29.1384 29.1384 32 25.6084 32H6.39161C2.86162 32 0 29.1384 0 25.6084V6.39161Z"
4
+ fill="url(#paint0_linear_5147_39366)"
5
+ />
6
+ <path
7
+ d="M17.9111 17.198C16.4278 18.1222 14.4423 18.5981 12.4314 18.4964C10.7408 18.4133 9.35416 17.8033 8.51574 16.8006C7.77866 15.9042 7.49304 14.7213 7.68652 13.3604C7.7521 12.9082 7.88649 12.4687 8.08501 12.0574L8.11265 11.9996C8.80858 10.6557 9.8414 9.51667 11.1094 8.69468C12.3775 7.87269 13.8371 7.39605 15.3445 7.31166C16.852 7.22728 18.3553 7.53807 19.7067 8.21343C21.0581 8.88879 22.2108 9.90546 23.0515 11.1634C23.8922 12.4213 24.3919 13.8771 24.5013 15.3875C24.6108 16.898 24.3263 18.4109 23.6758 19.7776C23.0253 21.1442 22.0312 22.3174 20.7915 23.1817C19.5517 24.046 18.1089 24.5716 16.6051 24.7068L16.6973 25.7673C18.3856 25.6164 20.0057 25.027 21.3979 24.057C22.79 23.0871 23.9062 21.7701 24.6366 20.2358C25.3669 18.7015 25.6861 17.0028 25.5628 15.3071C25.4395 13.6114 24.8779 11.9771 23.9334 10.5653C22.9888 9.15357 21.6939 8.01297 20.1761 7.25591C18.6584 6.49886 16.9702 6.15146 15.2779 6.24795C13.5856 6.34444 11.9475 6.88149 10.5251 7.80618C9.10267 8.73087 7.94494 10.0113 7.16597 11.5214L7.12911 11.5976C6.88285 12.1081 6.71659 12.6536 6.63619 13.2149C6.40586 14.8737 6.76288 16.3501 7.69574 17.4868C8.71613 18.7298 10.3769 19.4691 12.3693 19.5662C14.7947 19.6886 17.2063 19.0255 18.9177 17.8056L17.9111 17.198Z"
8
+ fill="white"
9
+ />
10
+ <path
11
+ d="M19.9398 18.4041C18.9746 19.245 16.7312 20.7699 13.0089 20.9778C8.84216 21.2089 7.10542 19.8504 7.0893 19.8365L6.75301 20.2524L7.0916 19.8434L6.41211 20.6613C6.48582 20.7237 8.15114 22.073 12.0623 22.073C12.3824 22.073 12.7187 22.073 13.0688 22.0452C17.5673 21.7934 20.0388 19.8249 20.9003 18.984L19.9398 18.4041Z"
12
+ fill="white"
13
+ />
14
+ <path
15
+ d="M21.7454 19.5039C21.1748 20.2563 20.4723 20.8983 19.6724 21.3984C16.8531 23.2236 13.2668 23.4593 10.7561 23.3322L10.7031 24.3973C11.1246 24.4181 11.53 24.4273 11.9239 24.4273C19.0044 24.4273 21.8652 21.1928 22.6645 20.0376L21.7431 19.4946"
16
+ fill="white"
17
+ />
18
+ <path
19
+ d="M21.4768 15.4712C21.9462 15.4712 22.3267 15.0895 22.3267 14.6187C22.3267 14.1479 21.9462 13.7662 21.4768 13.7662C21.0075 13.7662 20.627 14.1479 20.627 14.6187C20.627 15.0895 21.0075 15.4712 21.4768 15.4712Z"
20
+ fill="white"
21
+ />
22
+ <defs>
23
+ <linearGradient
24
+ id="paint0_linear_5147_39366"
25
+ x1="13.7762"
26
+ y1="-3.85649"
27
+ x2="-11.5874"
28
+ y2="19.3182"
29
+ gradientUnits="userSpaceOnUse"
30
+ >
31
+ <stop stop-color="#4476F2" />
32
+ <stop offset="1" stop-color="#2041E0" />
33
+ </linearGradient>
34
+ </defs>
35
+ </svg>`;
36
+ export {
37
+ C as default
38
+ };
@@ -0,0 +1,9 @@
1
+ const t = `<svg width="100%" height="100%" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="10.3333" fill="#00FFFF"/>
3
+ <path d="M7.44031 24.5598H24.5597V16.8561H10.8642C8.97323 16.8561 7.44031 18.389 7.44031 20.28V24.5598Z" fill="#0B1821"/>
4
+ <path d="M24.5597 7.44043H7.44031V15.1442H21.1358C23.0268 15.1442 24.5597 13.6112 24.5597 11.7203V7.44043Z" fill="#0B1821"/>
5
+ </svg>
6
+ `;
7
+ export {
8
+ t as default
9
+ };
@@ -0,0 +1,8 @@
1
+ const C = `<svg width="100%" height="100%" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 140.8C0 91.5154 0 66.8731 9.59143 48.0488C18.0283 31.4906 31.4906 18.0283 48.0488 9.59143C66.8731 0 91.5154 0 140.8 0H371.2C420.485 0 445.127 0 463.951 9.59143C480.509 18.0283 493.972 31.4906 502.409 48.0488C512 66.8731 512 91.5154 512 140.8V371.2C512 420.485 512 445.127 502.409 463.951C493.972 480.509 480.509 493.972 463.951 502.409C445.127 512 420.485 512 371.2 512H140.8C91.5154 512 66.8731 512 48.0488 502.409C31.4906 493.972 18.0283 480.509 9.59143 463.951C0 445.127 0 420.485 0 371.2V140.8Z" fill="#2962EF"/>
3
+ <path d="M111.048 128C102.274 128 98.8931 138.85 106.256 143.382L290.443 254.441C295.034 257.267 301.157 256.15 304.319 251.909L385.301 145.594C390.807 138.208 385.244 128 375.713 128H111.048Z" fill="white"/>
4
+ <path d="M400.538 384C409.311 384 412.78 373.092 405.419 368.561L221.178 257.516C216.587 254.69 210.612 255.948 207.452 260.188L126.312 366.482C120.808 373.866 126.545 384 136.074 384H400.538Z" fill="white"/>
5
+ </svg>`;
6
+ export {
7
+ C as default
8
+ };
@@ -0,0 +1,6 @@
1
+ const A = `<svg width="100%" height="100%" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <image width="48" height="48" x="0" y="0" href="data:image/png;base64,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" />
3
+ </svg>`;
4
+ export {
5
+ A as default
6
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springmicro/auth",
3
- "version": "0.1.9",
3
+ "version": "0.2.0-alpha.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -10,29 +10,49 @@
10
10
  "main": "dist/index.js",
11
11
  "types": "dist/index.d.ts",
12
12
  "scripts": {
13
- "dev": "vite",
13
+ "dev": "vite build --watch",
14
14
  "build": "rm -rf dist && vite build",
15
15
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
16
16
  "preview": "vite preview"
17
17
  },
18
- "dependencies": {
19
- "auth-astro": "^4.1.1",
20
- "react": "^18.2.0",
21
- "react-dom": "^18.2.0"
18
+ "peerDependencies": {
19
+ "auth-astro": "^4.1.0",
20
+ "react": "^18.0.0",
21
+ "react-dom": "^18.0.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/node": "^20.12.8",
25
- "@types/react": "^18.2.66",
26
- "@types/react-dom": "^18.2.22",
27
- "@typescript-eslint/eslint-plugin": "^7.2.0",
28
- "@typescript-eslint/parser": "^7.2.0",
24
+ "@types/node": "^20.14.9",
25
+ "@types/react": "^18.3.3",
26
+ "@types/react-dom": "^18.3.0",
27
+ "@typescript-eslint/eslint-plugin": "^7.14.1",
28
+ "@typescript-eslint/parser": "^7.14.1",
29
29
  "@vitejs/plugin-react": "^4.2.1",
30
- "eslint": "^8.57.0",
30
+ "auth-astro": "^4.1.1",
31
+ "eslint": "^9.5.0",
31
32
  "eslint-plugin-react-hooks": "^4.6.0",
32
33
  "eslint-plugin-react-refresh": "^0.4.6",
33
- "typescript": "^5.2.2",
34
- "vite": "^5.2.0",
34
+ "i18next": "^23.11.2",
35
+ "i18next-browser-languagedetector": "^7.2.1",
36
+ "react-i18next": "^14.1.2",
37
+ "typescript": "^5.5.2",
38
+ "vite": "^5.3.1",
35
39
  "vite-plugin-dts": "^3.9.0"
36
40
  },
37
- "gitHead": "68c03879e19bc3f7381bfad0663c14f85c32514b"
41
+ "dependencies": {
42
+ "@metamask/eth-sig-util": "^7.0.1",
43
+ "@web3-onboard/coinbase": "^2.2.7",
44
+ "@web3-onboard/core": "^2.21.6",
45
+ "@web3-onboard/frontier": "^2.0.4",
46
+ "@web3-onboard/gnosis": "^2.2.2",
47
+ "@web3-onboard/infinity-wallet": "^2.0.4",
48
+ "@web3-onboard/injected-wallets": "^2.10.16",
49
+ "@web3-onboard/taho": "^2.0.5",
50
+ "@web3-onboard/trust": "^2.0.4",
51
+ "buffer": "^6.0.3",
52
+ "libphonenumber-js": "^1.10.61",
53
+ "react-google-one-tap-login": "^0.1.1",
54
+ "react-social-login-buttons": "^4.1.0",
55
+ "uuid": "^9.0.1"
56
+ },
57
+ "gitHead": "99d420d7d0ad1b78e03e986fa190e89e793d43b3"
38
58
  }
@@ -63,14 +63,12 @@ const getAuthConfig = ({
63
63
  };
64
64
  },
65
65
  },
66
- // ...add more providers here
67
66
  ],
68
67
  pages: {
69
68
  signIn: "/sign-in",
70
69
  },
71
70
  callbacks: {
72
71
  async jwt({ token, account, user }: NextAuthJWT) {
73
- console.log("JWT", token, account, user);
74
72
  // Persist the OAuth access_token and or the user id to the token right after signin
75
73
  if (account) {
76
74
  token.accessToken = account.access_token ?? "";
@@ -0,0 +1,442 @@
1
+ import React from "react";
2
+ import * as Setting from "./forms/util/core";
3
+ import * as AuthBackend from "./forms/util/auth-api";
4
+ import * as ApplicationBackend from "./forms/util/application-api";
5
+ import * as AuthUtil from "./forms/util/auth-util";
6
+ import * as InvitationBackend from "./forms/util/invitation-api";
7
+ import * as UserBackend from "./forms/util/user-api";
8
+ import type { Invitation } from "./forms/util/invitation-api";
9
+ import type { Application } from "./forms/util/provider";
10
+ import { renderFormItem } from "./forms/SignUpFormItem";
11
+ import { I18nextProvider, useTranslation } from "react-i18next";
12
+ import i18n from "../i18n";
13
+ import {
14
+ type SignupItem,
15
+ getDefaultValues,
16
+ getFormProps,
17
+ getIcon,
18
+ getZod,
19
+ getPasswordVisibilityRecord,
20
+ getKey,
21
+ getType,
22
+ requiresCode,
23
+ } from "./util";
24
+
25
+ export type SignUpFormState = {
26
+ applicationName?: string | null;
27
+ name?: string;
28
+ password?: string;
29
+ confirm?: string;
30
+ username?: string;
31
+ email: string;
32
+ phone: string;
33
+ emailOrPhoneMode?: string;
34
+ countryCode: string;
35
+ emailCode: string;
36
+ phoneCode: string;
37
+ validEmail: boolean;
38
+ validPhone: boolean;
39
+ region: string;
40
+ isTermsOfUseVisible?: boolean;
41
+ termsOfUseContent: string;
42
+ invitationCode?: string;
43
+ invitation?: Invitation;
44
+ msg?: string;
45
+ agreement?: boolean;
46
+ };
47
+
48
+ type SignUpFormProps = {
49
+ application: Application | null;
50
+ applicationName?: string;
51
+
52
+ // onUpdateAccount: (account: Account) => void;
53
+ onUpdateApplication: (application: Application | null) => void;
54
+ };
55
+ type Account = any;
56
+
57
+ function SignUpForm(props: SignUpFormProps) {
58
+ const { t, i18n } = useTranslation();
59
+ const [state, setState] = React.useState<SignUpFormState>({
60
+ applicationName: props.applicationName ?? null,
61
+ email: "",
62
+ phone: "",
63
+ emailOrPhoneMode: "",
64
+ countryCode: "",
65
+ emailCode: "",
66
+ phoneCode: "",
67
+ validEmail: false,
68
+ validPhone: false,
69
+ region: "",
70
+ isTermsOfUseVisible: false,
71
+ termsOfUseContent: "",
72
+ });
73
+ const form = React.useRef();
74
+
75
+ const getApplication = (applicationName?: string) => {
76
+ if (applicationName === undefined) {
77
+ return;
78
+ }
79
+
80
+ ApplicationBackend.getApplication("admin", applicationName).then(
81
+ (res: any) => {
82
+ if (res.status === "error") {
83
+ Setting.showMessage("error", res.msg);
84
+ return;
85
+ }
86
+
87
+ onUpdateApplication(res.data);
88
+ }
89
+ );
90
+ };
91
+ const getApplicationLogin = (oAuthParams: any) => {
92
+ AuthBackend.getApplicationLogin(oAuthParams).then((res) => {
93
+ if (res.status === "ok") {
94
+ const application = res.data;
95
+ onUpdateApplication(application);
96
+ } else {
97
+ onUpdateApplication(null);
98
+ setState({
99
+ ...state,
100
+ msg: res.msg,
101
+ });
102
+ }
103
+ });
104
+ };
105
+
106
+ const getApplicationObj = () => {
107
+ return props.application;
108
+ };
109
+
110
+ const getInvitationCodeInfo = (
111
+ invitationCode: string,
112
+ application: string
113
+ ) => {
114
+ InvitationBackend.getInvitationCodeInfo(invitationCode, application).then(
115
+ (res: any) => {
116
+ if (res.status === "error") {
117
+ Setting.showMessage("error", res.msg);
118
+ return;
119
+ }
120
+ setState({ ...state, invitation: res.data });
121
+ }
122
+ );
123
+ };
124
+
125
+ // const onUpdateAccount = (account: Account) => {
126
+ // props.onUpdateAccount(account);
127
+ // };
128
+
129
+ const onUpdateApplication = (application: Application | null) => {
130
+ props.onUpdateApplication(application);
131
+ };
132
+
133
+ React.useEffect(() => {
134
+ const oAuthParams = AuthUtil.getOAuthGetParameters();
135
+ if (oAuthParams !== null) {
136
+ const signinUrl = window.location.pathname.replace(
137
+ "/signup/oauth/authorize",
138
+ "/login/oauth/authorize"
139
+ );
140
+ sessionStorage.setItem("signinUrl", signinUrl + window.location.search);
141
+ }
142
+
143
+ if (getApplicationObj() === undefined) {
144
+ if (state.applicationName !== null) {
145
+ getApplication(state.applicationName);
146
+
147
+ const sp = new URLSearchParams(window.location.search);
148
+ if (sp.has("invitationCode")) {
149
+ const invitationCode = sp.get("invitationCode") ?? "";
150
+ setState({ ...state, invitationCode });
151
+ if (invitationCode !== "") {
152
+ getInvitationCodeInfo(
153
+ invitationCode,
154
+ "admin/" + state.applicationName
155
+ );
156
+ }
157
+ }
158
+ } else if (oAuthParams !== null) {
159
+ getApplicationLogin(oAuthParams);
160
+ } else {
161
+ Setting.showMessage(
162
+ "error",
163
+ `Unknown application name: ${state.applicationName}`
164
+ );
165
+ onUpdateApplication(null);
166
+ }
167
+ }
168
+ }, []);
169
+
170
+ const application = getApplicationObj();
171
+ if (application === undefined || application === null) {
172
+ return null;
173
+ }
174
+ // return <div>SIGN UP</div>;
175
+ return application.signupItems?.map((signupItem, idx) => {
176
+ return (
177
+ <div key={idx}>
178
+ {renderFormItem(application, signupItem, state, setState, t)}
179
+ </div>
180
+ );
181
+ });
182
+ }
183
+
184
+ type SignUpState = {
185
+ application: Application | null;
186
+ };
187
+
188
+ type SignUpProps = {
189
+ applicationName: string;
190
+ casdoorApiRoot: string;
191
+ springmicroApiRoot?: string;
192
+ };
193
+
194
+ export function SignUp({
195
+ applicationName,
196
+ casdoorApiRoot,
197
+ springmicroApiRoot,
198
+ }: SignUpProps) {
199
+ Setting.ROOT_URLS.casdoor = casdoorApiRoot;
200
+ if (springmicroApiRoot) {
201
+ Setting.ROOT_URLS.springmicro = springmicroApiRoot;
202
+ }
203
+ const [state, setState] = React.useState<SignUpState>({ application: null });
204
+
205
+ const getApplication = () => {
206
+ ApplicationBackend.getApplication("admin", applicationName).then(
207
+ (res: any) => {
208
+ console.log(res);
209
+ if (res.status === "error") {
210
+ Setting.showMessage("error", res.msg);
211
+ return;
212
+ }
213
+
214
+ setState({
215
+ application: res.data,
216
+ });
217
+ }
218
+ );
219
+ };
220
+
221
+ React.useEffect(() => {
222
+ // console.log(i18n.t("signup.username"));
223
+ getApplication();
224
+ }, []);
225
+
226
+ if (state.application === undefined) return <></>;
227
+ return (
228
+ <I18nextProvider i18n={i18n}>
229
+ <SignUpForm
230
+ application={state.application}
231
+ onUpdateApplication={(application) => {
232
+ setState({
233
+ application: application,
234
+ });
235
+ }}
236
+ />
237
+ </I18nextProvider>
238
+ );
239
+ }
240
+
241
+ interface SignUpContextType {
242
+ application: Application;
243
+ getDefaultValues: typeof getDefaultValues;
244
+ getFormProps: typeof getFormProps;
245
+ icon: (
246
+ signupItem: SignupItem,
247
+ Button: React.JSX.ElementType
248
+ ) => React.JSX.Element | null;
249
+ getZod: typeof getZod;
250
+ getKey: typeof getKey;
251
+ type: (signupItem: SignupItem) => string;
252
+ sendCode: typeof UserBackend.sendCode;
253
+ requiresCode: typeof requiresCode;
254
+ getCaptcha: typeof UserBackend.getCaptcha;
255
+ // updateApplication: (updates: Partial<Application>) => void;
256
+ }
257
+
258
+ const SignUpContext = React.createContext<SignUpContextType | undefined>(
259
+ undefined
260
+ );
261
+
262
+ export function SignUpProvider({
263
+ applicationName,
264
+ casdoorApiRoot,
265
+ springmicroApiRoot,
266
+ children,
267
+ }: React.PropsWithChildren<SignUpProps>) {
268
+ const { t, i18n } = useTranslation();
269
+ Setting.ROOT_URLS.casdoor = casdoorApiRoot;
270
+ if (springmicroApiRoot) {
271
+ Setting.ROOT_URLS.springmicro = springmicroApiRoot;
272
+ }
273
+ const [state, setState] = React.useState<
274
+ SignUpState & Partial<SignUpFormState>
275
+ >({ application: null });
276
+ const [togglePasswordVisibility, setTogglePasswordVisibility] =
277
+ React.useState<Record<string, boolean>>({});
278
+
279
+ const getApplication = () => {
280
+ ApplicationBackend.getApplication("admin", applicationName).then(
281
+ (res: any) => {
282
+ console.log(res);
283
+ if (res.status === "error") {
284
+ Setting.showMessage("error", res.msg);
285
+ return;
286
+ }
287
+
288
+ setState({
289
+ application: res.data,
290
+ });
291
+ }
292
+ );
293
+ };
294
+
295
+ const onUpdateApplication = (application: Application) => {
296
+ setState({
297
+ application: application,
298
+ });
299
+ };
300
+
301
+ const getInvitationCodeInfo = (
302
+ invitationCode: string,
303
+ application: string
304
+ ) => {
305
+ InvitationBackend.getInvitationCodeInfo(invitationCode, application).then(
306
+ (res: any) => {
307
+ if (res.status === "error") {
308
+ Setting.showMessage("error", res.msg);
309
+ return;
310
+ }
311
+ setState({ ...state, invitation: res.data });
312
+ }
313
+ );
314
+ };
315
+
316
+ const getApplicationLogin = (oAuthParams: any) => {
317
+ AuthBackend.getApplicationLogin(oAuthParams).then((res) => {
318
+ if (res.status === "ok") {
319
+ const application = res.data;
320
+ onUpdateApplication(application);
321
+ } else {
322
+ onUpdateApplication(null);
323
+ setState({
324
+ ...state,
325
+ msg: res.msg,
326
+ });
327
+ }
328
+ });
329
+ };
330
+
331
+ const icon = (item: SignupItem, Button: React.JSX.ElementType) => {
332
+ return getIcon(
333
+ item,
334
+ {
335
+ password: {
336
+ state: togglePasswordVisibility,
337
+ setState: setTogglePasswordVisibility,
338
+ },
339
+ },
340
+ Button
341
+ );
342
+ };
343
+
344
+ const type = (item: SignupItem) => {
345
+ return getType(item, {
346
+ hidePassword: togglePasswordVisibility,
347
+ });
348
+ };
349
+
350
+ const sendCode = UserBackend.sendCode;
351
+ const getCaptcha = UserBackend.getCaptcha;
352
+
353
+ React.useEffect(() => {
354
+ // console.log(i18n.t("signup.username"));
355
+ getApplication();
356
+ }, []);
357
+
358
+ React.useEffect(() => {
359
+ if (state.application) {
360
+ setTogglePasswordVisibility(
361
+ getPasswordVisibilityRecord(state.application.signupItems)
362
+ );
363
+ }
364
+ }, [state.application]);
365
+
366
+ React.useEffect(() => {
367
+ const oAuthParams = AuthUtil.getOAuthGetParameters();
368
+ if (oAuthParams !== null) {
369
+ const signinUrl = window.location.pathname.replace(
370
+ "/signup/oauth/authorize",
371
+ "/login/oauth/authorize"
372
+ );
373
+ sessionStorage.setItem("signinUrl", signinUrl + window.location.search);
374
+ }
375
+
376
+ if (state.application === undefined) {
377
+ if (state.applicationName !== null) {
378
+ getApplication();
379
+
380
+ const sp = new URLSearchParams(window.location.search);
381
+ if (sp.has("invitationCode")) {
382
+ const invitationCode = sp.get("invitationCode") ?? "";
383
+ setState({ ...state, invitationCode });
384
+ if (invitationCode !== "") {
385
+ getInvitationCodeInfo(
386
+ invitationCode,
387
+ "admin/" + state.applicationName
388
+ );
389
+ }
390
+ }
391
+ } else if (oAuthParams !== null) {
392
+ getApplicationLogin(oAuthParams);
393
+ } else {
394
+ Setting.showMessage(
395
+ "error",
396
+ `Unknown application name: ${state.applicationName}`
397
+ );
398
+ onUpdateApplication(null);
399
+ }
400
+ }
401
+ }, []);
402
+
403
+ // const application = getApplicationObj();
404
+ if (state.application === undefined || state.application === null) {
405
+ return null;
406
+ }
407
+ // return <div>SIGN UP</div>;
408
+ // return state.application.signupItems?.map((signupItem, idx) => {
409
+ // return (
410
+ // <div key={idx}>
411
+ // {renderFormItem(state.application, signupItem, state, setState, t)}
412
+ // </div>
413
+ // );
414
+ // });
415
+
416
+ return (
417
+ <SignUpContext.Provider
418
+ value={{
419
+ application: state.application,
420
+ getDefaultValues,
421
+ getFormProps,
422
+ icon,
423
+ getZod,
424
+ getKey,
425
+ type,
426
+ sendCode,
427
+ requiresCode,
428
+ getCaptcha,
429
+ }}
430
+ >
431
+ {children}
432
+ </SignUpContext.Provider>
433
+ );
434
+ }
435
+
436
+ export const useSignUp = (): SignUpContextType => {
437
+ const context = React.useContext(SignUpContext);
438
+ if (!context) {
439
+ throw new Error("useSignUp must be used within a SignUpProvider");
440
+ }
441
+ return context;
442
+ };