sa2kit 2.0.3 → 3.0.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 (348) hide show
  1. package/README.md +1 -1
  2. package/dist/{UniversalFileService-GsP6D3Rc.d.ts → UniversalFileService-CC4d3wkc.d.ts} +2 -2
  3. package/dist/{UniversalFileService-BpvbZitV.d.mts → UniversalFileService-CzAE_G4V.d.mts} +2 -2
  4. package/dist/auth/client/index.d.mts +8 -27
  5. package/dist/auth/client/index.d.ts +8 -27
  6. package/dist/auth/client/index.js +9 -4
  7. package/dist/auth/client/index.mjs +2 -1
  8. package/dist/auth/components/index.d.mts +8 -225
  9. package/dist/auth/components/index.d.ts +8 -225
  10. package/dist/auth/components/index.js +62 -319
  11. package/dist/auth/components/index.js.map +1 -1
  12. package/dist/auth/components/index.mjs +6 -316
  13. package/dist/auth/components/index.mjs.map +1 -1
  14. package/dist/auth/hooks/index.d.mts +11 -29
  15. package/dist/auth/hooks/index.d.ts +11 -29
  16. package/dist/auth/hooks/index.js +14 -3
  17. package/dist/auth/hooks/index.mjs +4 -1
  18. package/dist/auth/index.d.mts +17 -14
  19. package/dist/auth/index.d.ts +17 -14
  20. package/dist/auth/index.js +51 -90
  21. package/dist/auth/index.mjs +8 -7
  22. package/dist/auth/rn/index.d.mts +3087 -18
  23. package/dist/auth/rn/index.d.ts +3087 -18
  24. package/dist/auth/rn/index.js +396 -477
  25. package/dist/auth/rn/index.js.map +1 -1
  26. package/dist/auth/rn/index.mjs +384 -475
  27. package/dist/auth/rn/index.mjs.map +1 -1
  28. package/dist/auth/schema/index.d.mts +3 -788
  29. package/dist/auth/schema/index.d.ts +3 -788
  30. package/dist/auth/schema/index.js +17 -9
  31. package/dist/auth/schema/index.mjs +1 -1
  32. package/dist/auth/services/index.d.mts +1 -48
  33. package/dist/auth/services/index.d.ts +1 -48
  34. package/dist/auth/services/index.js +3 -20
  35. package/dist/auth/services/index.mjs +1 -2
  36. package/dist/{base-api-client-B3wZZoaH.d.ts → base-api-client-BpmcQt4Q.d.ts} +1 -1
  37. package/dist/{base-api-client-ACKKt13v.d.mts → base-api-client-CFIhZK4C.d.mts} +1 -1
  38. package/dist/{base-api-client-ACKKt13v.d.ts → base-api-client-CFIhZK4C.d.ts} +1 -1
  39. package/dist/{base-api-client-DrL35Ea2.d.mts → base-api-client-DXLsq2yz.d.mts} +1 -1
  40. package/dist/business/index.d.mts +1 -5
  41. package/dist/business/index.d.ts +1 -5
  42. package/dist/business/index.js +34 -1135
  43. package/dist/business/index.js.map +1 -1
  44. package/dist/business/index.mjs +5 -1105
  45. package/dist/business/index.mjs.map +1 -1
  46. package/dist/calendar/routes/index.d.mts +74 -1
  47. package/dist/calendar/routes/index.d.ts +74 -1
  48. package/dist/calendar/routes/index.js +186 -97
  49. package/dist/calendar/routes/index.js.map +1 -1
  50. package/dist/calendar/routes/index.mjs +178 -99
  51. package/dist/calendar/routes/index.mjs.map +1 -1
  52. package/dist/{chunk-IIVNHQEI.mjs → chunk-5GBDDXYL.mjs} +4 -3
  53. package/dist/chunk-5GBDDXYL.mjs.map +1 -0
  54. package/dist/chunk-7E3J7VAD.mjs +3 -0
  55. package/dist/chunk-7E3J7VAD.mjs.map +1 -0
  56. package/dist/chunk-B3CZ3HXJ.mjs +126 -0
  57. package/dist/chunk-B3CZ3HXJ.mjs.map +1 -0
  58. package/dist/chunk-CAYOQDBR.js +78 -0
  59. package/dist/chunk-CAYOQDBR.js.map +1 -0
  60. package/dist/{chunk-PTMSDNGO.mjs → chunk-CX2GHCAI.mjs} +4 -75
  61. package/dist/chunk-CX2GHCAI.mjs.map +1 -0
  62. package/dist/chunk-EBHPTFG6.mjs +82 -0
  63. package/dist/chunk-EBHPTFG6.mjs.map +1 -0
  64. package/dist/chunk-FOQEQWX5.js +4 -0
  65. package/dist/chunk-FOQEQWX5.js.map +1 -0
  66. package/dist/{chunk-YGI7UU2D.mjs → chunk-G4NFB2QA.mjs} +2 -2
  67. package/dist/chunk-G4NFB2QA.mjs.map +1 -0
  68. package/dist/chunk-G5HJGXGC.mjs +39 -0
  69. package/dist/chunk-G5HJGXGC.mjs.map +1 -0
  70. package/dist/{chunk-GSNGCENJ.js → chunk-GQZHGSRR.js} +2 -39
  71. package/dist/chunk-GQZHGSRR.js.map +1 -0
  72. package/dist/chunk-GS7XLKET.js +41 -0
  73. package/dist/chunk-GS7XLKET.js.map +1 -0
  74. package/dist/{chunk-7B5SI4OF.mjs → chunk-IBWDBBX5.mjs} +4 -3
  75. package/dist/chunk-IBWDBBX5.mjs.map +1 -0
  76. package/dist/chunk-IS7O4LPI.js +146 -0
  77. package/dist/chunk-IS7O4LPI.js.map +1 -0
  78. package/dist/chunk-LGHUCQIU.js +93 -0
  79. package/dist/chunk-LGHUCQIU.js.map +1 -0
  80. package/dist/chunk-LHJKLUM7.mjs +18 -0
  81. package/dist/chunk-LHJKLUM7.mjs.map +1 -0
  82. package/dist/chunk-LKBIVQBT.mjs +34 -0
  83. package/dist/chunk-LKBIVQBT.mjs.map +1 -0
  84. package/dist/chunk-MIDXG6LS.js +32 -0
  85. package/dist/chunk-MIDXG6LS.js.map +1 -0
  86. package/dist/chunk-MWSAH7ZG.mjs +42 -0
  87. package/dist/chunk-MWSAH7ZG.mjs.map +1 -0
  88. package/dist/{chunk-HCI6JQOU.mjs → chunk-MZOGYD4N.mjs} +7 -4
  89. package/dist/chunk-MZOGYD4N.mjs.map +1 -0
  90. package/dist/chunk-NDGHXVGS.js +25 -0
  91. package/dist/chunk-NDGHXVGS.js.map +1 -0
  92. package/dist/chunk-Q5VFBPMG.mjs +76 -0
  93. package/dist/chunk-Q5VFBPMG.mjs.map +1 -0
  94. package/dist/chunk-QDUBO567.js +1148 -0
  95. package/dist/chunk-QDUBO567.js.map +1 -0
  96. package/dist/{chunk-3CSCIRQY.js → chunk-QP5N3ER6.js} +6 -5
  97. package/dist/chunk-QP5N3ER6.js.map +1 -0
  98. package/dist/chunk-RWCD2CAD.mjs +1132 -0
  99. package/dist/chunk-RWCD2CAD.mjs.map +1 -0
  100. package/dist/{chunk-VQ54PUQV.js → chunk-S37OK2QG.js} +2 -2
  101. package/dist/chunk-S37OK2QG.js.map +1 -0
  102. package/dist/chunk-S3PUP7N4.js +20 -0
  103. package/dist/chunk-S3PUP7N4.js.map +1 -0
  104. package/dist/{chunk-QQ2WFYOD.js → chunk-S6YSGVWD.js} +4 -76
  105. package/dist/chunk-S6YSGVWD.js.map +1 -0
  106. package/dist/chunk-SFDJNKWC.js +22 -0
  107. package/dist/chunk-SFDJNKWC.js.map +1 -0
  108. package/dist/chunk-TTYCVBIQ.mjs +144 -0
  109. package/dist/chunk-TTYCVBIQ.mjs.map +1 -0
  110. package/dist/{chunk-HBF4HPRK.js → chunk-TXMX6PZR.js} +7 -3
  111. package/dist/chunk-TXMX6PZR.js.map +1 -0
  112. package/dist/chunk-VHN7PF5I.js +20 -0
  113. package/dist/chunk-VHN7PF5I.js.map +1 -0
  114. package/dist/chunk-VJNDOYEC.js +41 -0
  115. package/dist/chunk-VJNDOYEC.js.map +1 -0
  116. package/dist/chunk-XBZIS3MV.mjs +13 -0
  117. package/dist/chunk-XBZIS3MV.mjs.map +1 -0
  118. package/dist/chunk-XFOZ56FB.mjs +20 -0
  119. package/dist/chunk-XFOZ56FB.mjs.map +1 -0
  120. package/dist/chunk-Z23HAXHL.js +136 -0
  121. package/dist/chunk-Z23HAXHL.js.map +1 -0
  122. package/dist/chunk-ZF7DKR5A.mjs +26 -0
  123. package/dist/chunk-ZF7DKR5A.mjs.map +1 -0
  124. package/dist/common/auth/client/index.d.mts +3239 -0
  125. package/dist/common/auth/client/index.d.ts +3239 -0
  126. package/dist/common/auth/client/index.js +26 -0
  127. package/dist/common/auth/client/index.mjs +5 -0
  128. package/dist/common/auth/components/index.d.mts +374 -0
  129. package/dist/common/auth/components/index.d.ts +374 -0
  130. package/dist/common/auth/components/index.js +70 -0
  131. package/dist/common/auth/components/index.mjs +9 -0
  132. package/dist/common/auth/hooks/index.d.mts +75 -0
  133. package/dist/common/auth/hooks/index.d.ts +75 -0
  134. package/dist/common/auth/hooks/index.js +28 -0
  135. package/dist/common/auth/hooks/index.js.map +1 -0
  136. package/dist/common/auth/hooks/index.mjs +7 -0
  137. package/dist/common/auth/hooks/index.mjs.map +1 -0
  138. package/dist/common/auth/index.d.mts +14 -6
  139. package/dist/common/auth/index.d.ts +14 -6
  140. package/dist/common/auth/index.js +17 -8
  141. package/dist/common/auth/index.mjs +4 -3
  142. package/dist/common/auth/react/index.d.mts +3056 -0
  143. package/dist/common/auth/react/index.d.ts +3056 -0
  144. package/dist/common/auth/react/index.js +31 -0
  145. package/dist/common/auth/react/index.js.map +1 -0
  146. package/dist/common/auth/react/index.mjs +21 -0
  147. package/dist/common/auth/react/index.mjs.map +1 -0
  148. package/dist/common/auth/rn/index.d.mts +3138 -0
  149. package/dist/common/auth/rn/index.d.ts +3138 -0
  150. package/dist/common/auth/rn/index.js +348 -0
  151. package/dist/common/auth/rn/index.js.map +1 -0
  152. package/dist/common/auth/rn/index.mjs +327 -0
  153. package/dist/common/auth/rn/index.mjs.map +1 -0
  154. package/dist/common/auth/schema/index.d.mts +1479 -0
  155. package/dist/common/auth/schema/index.d.ts +1479 -0
  156. package/dist/common/auth/schema/index.js +49 -0
  157. package/dist/common/auth/schema/index.js.map +1 -0
  158. package/dist/common/auth/schema/index.mjs +4 -0
  159. package/dist/common/auth/schema/index.mjs.map +1 -0
  160. package/dist/common/auth/server/index.d.mts +7 -30
  161. package/dist/common/auth/server/index.d.ts +7 -30
  162. package/dist/common/auth/server/index.js +36 -79
  163. package/dist/common/auth/server/index.mjs +2 -5
  164. package/dist/common/auth/services/index.d.mts +14 -0
  165. package/dist/common/auth/services/index.d.ts +14 -0
  166. package/dist/common/auth/services/index.js +17 -0
  167. package/dist/common/auth/services/index.js.map +1 -0
  168. package/dist/common/auth/services/index.mjs +4 -0
  169. package/dist/common/auth/services/index.mjs.map +1 -0
  170. package/dist/common/index.d.mts +13 -5
  171. package/dist/common/index.d.ts +13 -5
  172. package/dist/common/index.js +19 -16
  173. package/dist/common/index.mjs +11 -8
  174. package/dist/common/request/index.js +5 -4
  175. package/dist/common/request/index.mjs +3 -2
  176. package/dist/common/storage/index.js +13 -12
  177. package/dist/common/storage/index.mjs +3 -2
  178. package/dist/festivalCard/index.d.mts +3 -3
  179. package/dist/festivalCard/index.d.ts +3 -3
  180. package/dist/festivalCard/routes/index.d.mts +1 -1
  181. package/dist/festivalCard/routes/index.d.ts +1 -1
  182. package/dist/festivalCard/server/index.d.mts +2 -2
  183. package/dist/festivalCard/server/index.d.ts +2 -2
  184. package/dist/{festivalCardService-BFCRhJrq.d.ts → festivalCardService-B3GsnNpV.d.ts} +1 -1
  185. package/dist/{festivalCardService-GriR2VMc.d.mts → festivalCardService-CWhrLNE9.d.mts} +1 -1
  186. package/dist/{index-DPYkrKZf.d.mts → index-BcjDRcKp.d.mts} +11 -6
  187. package/dist/{index-Bnh6VqFv.d.ts → index-BlpXrrTy.d.ts} +11 -6
  188. package/dist/{index-1Ag7IBXN.d.ts → index-DZ5iJtNO.d.mts} +2 -44
  189. package/dist/{index-DdeZSeTJ.d.mts → index-DZ5iJtNO.d.ts} +2 -44
  190. package/dist/index.d.mts +6296 -40
  191. package/dist/index.d.ts +6296 -40
  192. package/dist/index.js +1378 -2508
  193. package/dist/index.js.map +1 -1
  194. package/dist/index.mjs +1073 -2203
  195. package/dist/index.mjs.map +1 -1
  196. package/dist/mmd/admin/index.d.mts +1 -1
  197. package/dist/mmd/admin/index.d.ts +1 -1
  198. package/dist/mmd/index.d.mts +1 -1
  199. package/dist/mmd/index.d.ts +1 -1
  200. package/dist/mmd/server/index.d.mts +3 -3
  201. package/dist/mmd/server/index.d.ts +3 -3
  202. package/dist/request/index.js +4 -3
  203. package/dist/request/index.mjs +2 -1
  204. package/dist/session-BCXvGCnm.d.mts +81 -0
  205. package/dist/session-BCXvGCnm.d.ts +81 -0
  206. package/dist/storage/index.js +12 -11
  207. package/dist/storage/index.mjs +2 -1
  208. package/dist/{types-DyG3ZV9V.d.mts → types-B6B210gX.d.mts} +1 -1
  209. package/dist/{types-DyG3ZV9V.d.ts → types-B6B210gX.d.ts} +1 -1
  210. package/dist/{types-BTiaMsBz.d.mts → types-Bdnte5EN.d.mts} +1 -1
  211. package/dist/{types-tQfupO6d.d.mts → types-Cs0CLvrH.d.mts} +1 -1
  212. package/dist/{types-tQfupO6d.d.ts → types-Cs0CLvrH.d.ts} +1 -1
  213. package/dist/{types-ERmJyjx8.d.ts → types-_rFX1atk.d.ts} +1 -1
  214. package/dist/types.legacy-J-j-_ig_.d.mts +25 -0
  215. package/dist/types.legacy-J-j-_ig_.d.ts +25 -0
  216. package/dist/useAuthActions-7S5dL7Oh.d.mts +77 -0
  217. package/dist/useAuthActions-7S5dL7Oh.d.ts +77 -0
  218. package/dist/vocaloidBooth/server/index.d.mts +3 -3
  219. package/dist/vocaloidBooth/server/index.d.ts +3 -3
  220. package/package.json +59 -76
  221. package/dist/auth/legacy/core/index.d.mts +0 -42
  222. package/dist/auth/legacy/core/index.d.ts +0 -42
  223. package/dist/auth/legacy/core/index.js +0 -242
  224. package/dist/auth/legacy/core/index.js.map +0 -1
  225. package/dist/auth/legacy/core/index.mjs +0 -226
  226. package/dist/auth/legacy/core/index.mjs.map +0 -1
  227. package/dist/auth/legacy/db/index.d.mts +0 -5
  228. package/dist/auth/legacy/db/index.d.ts +0 -5
  229. package/dist/auth/legacy/db/index.js +0 -261
  230. package/dist/auth/legacy/db/index.js.map +0 -1
  231. package/dist/auth/legacy/db/index.mjs +0 -250
  232. package/dist/auth/legacy/db/index.mjs.map +0 -1
  233. package/dist/auth/legacy/index.d.mts +0 -5
  234. package/dist/auth/legacy/index.d.ts +0 -5
  235. package/dist/auth/legacy/index.js +0 -1107
  236. package/dist/auth/legacy/index.js.map +0 -1
  237. package/dist/auth/legacy/index.mjs +0 -1086
  238. package/dist/auth/legacy/index.mjs.map +0 -1
  239. package/dist/auth/legacy/logic/index.d.mts +0 -9
  240. package/dist/auth/legacy/logic/index.d.ts +0 -9
  241. package/dist/auth/legacy/logic/index.js +0 -194
  242. package/dist/auth/legacy/logic/index.js.map +0 -1
  243. package/dist/auth/legacy/logic/index.mjs +0 -187
  244. package/dist/auth/legacy/logic/index.mjs.map +0 -1
  245. package/dist/auth/legacy/miniapp/index.d.mts +0 -5
  246. package/dist/auth/legacy/miniapp/index.d.ts +0 -5
  247. package/dist/auth/legacy/miniapp/index.js +0 -506
  248. package/dist/auth/legacy/miniapp/index.js.map +0 -1
  249. package/dist/auth/legacy/miniapp/index.mjs +0 -487
  250. package/dist/auth/legacy/miniapp/index.mjs.map +0 -1
  251. package/dist/auth/legacy/routes/index.d.mts +0 -53
  252. package/dist/auth/legacy/routes/index.d.ts +0 -53
  253. package/dist/auth/legacy/routes/index.js +0 -278
  254. package/dist/auth/legacy/routes/index.js.map +0 -1
  255. package/dist/auth/legacy/routes/index.mjs +0 -271
  256. package/dist/auth/legacy/routes/index.mjs.map +0 -1
  257. package/dist/auth/legacy/schema/index.d.mts +0 -401
  258. package/dist/auth/legacy/schema/index.d.ts +0 -401
  259. package/dist/auth/legacy/schema/index.js +0 -50
  260. package/dist/auth/legacy/schema/index.js.map +0 -1
  261. package/dist/auth/legacy/schema/index.mjs +0 -44
  262. package/dist/auth/legacy/schema/index.mjs.map +0 -1
  263. package/dist/auth/legacy/server/index.d.mts +0 -13
  264. package/dist/auth/legacy/server/index.d.ts +0 -13
  265. package/dist/auth/legacy/server/index.js +0 -21
  266. package/dist/auth/legacy/server/index.js.map +0 -1
  267. package/dist/auth/legacy/server/index.mjs +0 -19
  268. package/dist/auth/legacy/server/index.mjs.map +0 -1
  269. package/dist/auth/legacy/services/index.d.mts +0 -40
  270. package/dist/auth/legacy/services/index.d.ts +0 -40
  271. package/dist/auth/legacy/services/index.js +0 -258
  272. package/dist/auth/legacy/services/index.js.map +0 -1
  273. package/dist/auth/legacy/services/index.mjs +0 -252
  274. package/dist/auth/legacy/services/index.mjs.map +0 -1
  275. package/dist/auth/legacy/ui/miniapp/index.d.mts +0 -10
  276. package/dist/auth/legacy/ui/miniapp/index.d.ts +0 -10
  277. package/dist/auth/legacy/ui/miniapp/index.js +0 -298
  278. package/dist/auth/legacy/ui/miniapp/index.js.map +0 -1
  279. package/dist/auth/legacy/ui/miniapp/index.mjs +0 -290
  280. package/dist/auth/legacy/ui/miniapp/index.mjs.map +0 -1
  281. package/dist/auth/legacy/ui/web/index.d.mts +0 -22
  282. package/dist/auth/legacy/ui/web/index.d.ts +0 -22
  283. package/dist/auth/legacy/ui/web/index.js +0 -899
  284. package/dist/auth/legacy/ui/web/index.js.map +0 -1
  285. package/dist/auth/legacy/ui/web/index.mjs +0 -889
  286. package/dist/auth/legacy/ui/web/index.mjs.map +0 -1
  287. package/dist/auth/legacy/web/index.d.mts +0 -5
  288. package/dist/auth/legacy/web/index.d.ts +0 -5
  289. package/dist/auth/legacy/web/index.js +0 -1107
  290. package/dist/auth/legacy/web/index.js.map +0 -1
  291. package/dist/auth/legacy/web/index.mjs +0 -1086
  292. package/dist/auth/legacy/web/index.mjs.map +0 -1
  293. package/dist/auth/middleware/index.d.mts +0 -75
  294. package/dist/auth/middleware/index.d.ts +0 -75
  295. package/dist/auth/middleware/index.js +0 -15
  296. package/dist/auth/middleware/index.mjs +0 -6
  297. package/dist/auth/routes/index.d.mts +0 -261
  298. package/dist/auth/routes/index.d.ts +0 -261
  299. package/dist/auth/routes/index.js +0 -59
  300. package/dist/auth/routes/index.mjs +0 -6
  301. package/dist/chunk-37HYTHEC.mjs +0 -90
  302. package/dist/chunk-37HYTHEC.mjs.map +0 -1
  303. package/dist/chunk-3CSCIRQY.js.map +0 -1
  304. package/dist/chunk-5WV35FPV.js +0 -131
  305. package/dist/chunk-5WV35FPV.js.map +0 -1
  306. package/dist/chunk-7B5SI4OF.mjs.map +0 -1
  307. package/dist/chunk-DCRD5CZB.js +0 -573
  308. package/dist/chunk-DCRD5CZB.js.map +0 -1
  309. package/dist/chunk-DDX4JKFS.js +0 -19
  310. package/dist/chunk-DDX4JKFS.js.map +0 -1
  311. package/dist/chunk-DV6M7MFP.js +0 -283
  312. package/dist/chunk-DV6M7MFP.js.map +0 -1
  313. package/dist/chunk-EQXPL7TN.mjs +0 -78
  314. package/dist/chunk-EQXPL7TN.mjs.map +0 -1
  315. package/dist/chunk-GSNGCENJ.js.map +0 -1
  316. package/dist/chunk-HBF4HPRK.js.map +0 -1
  317. package/dist/chunk-HCI6JQOU.mjs.map +0 -1
  318. package/dist/chunk-I44HXJ3X.mjs +0 -17
  319. package/dist/chunk-I44HXJ3X.mjs.map +0 -1
  320. package/dist/chunk-IIVNHQEI.mjs.map +0 -1
  321. package/dist/chunk-IJ4YYWE3.mjs +0 -122
  322. package/dist/chunk-IJ4YYWE3.mjs.map +0 -1
  323. package/dist/chunk-J4BEIZUC.js +0 -92
  324. package/dist/chunk-J4BEIZUC.js.map +0 -1
  325. package/dist/chunk-OKPWFVXC.js +0 -24
  326. package/dist/chunk-OKPWFVXC.js.map +0 -1
  327. package/dist/chunk-PNOTQAYK.mjs +0 -560
  328. package/dist/chunk-PNOTQAYK.mjs.map +0 -1
  329. package/dist/chunk-PTMSDNGO.mjs.map +0 -1
  330. package/dist/chunk-Q2IAL7YV.js +0 -36
  331. package/dist/chunk-Q2IAL7YV.js.map +0 -1
  332. package/dist/chunk-QQ2WFYOD.js.map +0 -1
  333. package/dist/chunk-VQ54PUQV.js.map +0 -1
  334. package/dist/chunk-W5JEGA76.mjs +0 -33
  335. package/dist/chunk-W5JEGA76.mjs.map +0 -1
  336. package/dist/chunk-YGI7UU2D.mjs.map +0 -1
  337. package/dist/chunk-ZCLQSI5F.mjs +0 -271
  338. package/dist/chunk-ZCLQSI5F.mjs.map +0 -1
  339. package/dist/drizzle-auth-service-D-pljzCD.d.mts +0 -145
  340. package/dist/drizzle-auth-service-D3qryE_I.d.ts +0 -145
  341. package/dist/index-DNKZ7-R_.d.mts +0 -184
  342. package/dist/index-DNKZ7-R_.d.ts +0 -184
  343. package/dist/types-C5vUWf9u.d.ts +0 -70
  344. package/dist/types-IYCqCk2g.d.mts +0 -70
  345. /package/dist/{auth/middleware → common/auth/client}/index.js.map +0 -0
  346. /package/dist/{auth/middleware → common/auth/client}/index.mjs.map +0 -0
  347. /package/dist/{auth/routes → common/auth/components}/index.js.map +0 -0
  348. /package/dist/{auth/routes → common/auth/components}/index.mjs.map +0 -0
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var React2 = require('react');
3
+ var react = require('better-auth/react');
4
+ var plugins = require('better-auth/client/plugins');
5
+ var React = require('react');
4
6
 
5
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
6
8
 
7
- var React2__default = /*#__PURE__*/_interopDefault(React2);
9
+ var React__default = /*#__PURE__*/_interopDefault(React);
8
10
 
9
11
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
10
12
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
@@ -13,6 +15,383 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
13
15
  throw Error('Dynamic require of "' + x + '" is not supported');
14
16
  });
15
17
 
18
+ // src/storage/adapters/react-native-adapter.ts
19
+ var AsyncStorage = null;
20
+ try {
21
+ AsyncStorage = __require("@react-native-async-storage/async-storage").default;
22
+ } catch (e) {
23
+ }
24
+ var ReactNativeStorageAdapter = class {
25
+ constructor() {
26
+ this.listeners = /* @__PURE__ */ new Map();
27
+ }
28
+ async getItem(key) {
29
+ if (!AsyncStorage) return null;
30
+ try {
31
+ return await AsyncStorage.getItem(key);
32
+ } catch (error) {
33
+ console.error('[ReactNativeStorage] Error getting item "' + key + '":', error);
34
+ return null;
35
+ }
36
+ }
37
+ async setItem(key, value) {
38
+ if (!AsyncStorage) {
39
+ throw new Error("AsyncStorage is not available");
40
+ }
41
+ try {
42
+ await AsyncStorage.setItem(key, value);
43
+ this.notifyListeners(key, value);
44
+ } catch (error) {
45
+ console.error('[ReactNativeStorage] Error setting item "' + key + '":', error);
46
+ throw error;
47
+ }
48
+ }
49
+ async removeItem(key) {
50
+ if (!AsyncStorage) {
51
+ throw new Error("AsyncStorage is not available");
52
+ }
53
+ try {
54
+ await AsyncStorage.removeItem(key);
55
+ this.notifyListeners(key, null);
56
+ } catch (error) {
57
+ console.error('[ReactNativeStorage] Error removing item "' + key + '":', error);
58
+ throw error;
59
+ }
60
+ }
61
+ async clear() {
62
+ if (!AsyncStorage) {
63
+ throw new Error("AsyncStorage is not available");
64
+ }
65
+ try {
66
+ await AsyncStorage.clear();
67
+ } catch (error) {
68
+ console.error("[ReactNativeStorage] Error clearing storage:", error);
69
+ throw error;
70
+ }
71
+ }
72
+ addChangeListener(callback) {
73
+ if (!this.listeners.has("*")) {
74
+ this.listeners.set("*", /* @__PURE__ */ new Set());
75
+ }
76
+ this.listeners.get("*").add(callback);
77
+ return () => {
78
+ this.listeners.get("*")?.delete(callback);
79
+ };
80
+ }
81
+ notifyListeners(key, value) {
82
+ const globalListeners = this.listeners.get("*");
83
+ if (globalListeners) {
84
+ globalListeners.forEach((callback) => callback(key, value));
85
+ }
86
+ }
87
+ };
88
+
89
+ // src/common/auth/rn/token-storage.ts
90
+ var RN_BEARER_TOKEN_KEY = "sa2kit_auth_bearer_token";
91
+ var storageOverride = null;
92
+ var defaultStorage = new ReactNativeStorageAdapter();
93
+ function storage() {
94
+ return storageOverride ?? defaultStorage;
95
+ }
96
+ function setRnBearerTokenStorage(next) {
97
+ storageOverride = next;
98
+ }
99
+ async function getRnBearerToken() {
100
+ return storage().getItem(RN_BEARER_TOKEN_KEY);
101
+ }
102
+ async function setRnBearerToken(token) {
103
+ await storage().setItem(RN_BEARER_TOKEN_KEY, token);
104
+ }
105
+ async function clearRnBearerToken() {
106
+ await storage().removeItem(RN_BEARER_TOKEN_KEY);
107
+ }
108
+
109
+ // src/common/auth/rn/create-rn-auth-client.ts
110
+ function normalizeRnAuthBaseUrl(authApiBase) {
111
+ const trimmed = authApiBase.replace(/\/+$/, "");
112
+ if (trimmed.endsWith("/api/auth")) {
113
+ return {
114
+ baseURL: trimmed.slice(0, -"/api/auth".length),
115
+ basePath: "/api/auth"
116
+ };
117
+ }
118
+ if (trimmed.endsWith("/api")) {
119
+ return {
120
+ baseURL: trimmed.slice(0, -"/api".length),
121
+ basePath: "/api/auth"
122
+ };
123
+ }
124
+ return {
125
+ baseURL: trimmed,
126
+ basePath: "/api/auth"
127
+ };
128
+ }
129
+ function buildSa2kitRnAuthClient(options) {
130
+ return react.createAuthClient({
131
+ baseURL: options.baseURL.replace(/\/+$/, ""),
132
+ basePath: options.basePath ?? "/api/auth",
133
+ plugins: [plugins.emailOTPClient(), plugins.phoneNumberClient()],
134
+ disableDefaultFetchPlugins: false,
135
+ fetchOptions: {
136
+ credentials: "omit",
137
+ onRequest: async (ctx) => {
138
+ const token = await getRnBearerToken();
139
+ if (token) {
140
+ ctx.headers.set("Authorization", `Bearer ${token}`);
141
+ }
142
+ return ctx;
143
+ },
144
+ onResponse: async (ctx) => {
145
+ const token = ctx.response.headers.get("set-auth-token");
146
+ if (token) {
147
+ await setRnBearerToken(token);
148
+ }
149
+ return ctx;
150
+ }
151
+ }
152
+ });
153
+ }
154
+ var cachedClient = null;
155
+ var cachedKey = "";
156
+ function cacheKey(options) {
157
+ return `${options.baseURL}|${options.basePath ?? "/api/auth"}`;
158
+ }
159
+ function createSa2kitRnAuthClient(options) {
160
+ const key = cacheKey(options);
161
+ if (cachedClient && cachedKey === key) {
162
+ return cachedClient;
163
+ }
164
+ cachedClient = buildSa2kitRnAuthClient(options);
165
+ cachedKey = key;
166
+ return cachedClient;
167
+ }
168
+ function createSa2kitRnAuthClientFromApiBase(authApiBase) {
169
+ const { baseURL, basePath } = normalizeRnAuthBaseUrl(authApiBase);
170
+ return createSa2kitRnAuthClient({ baseURL, basePath });
171
+ }
172
+ async function initSa2kitRnAuthClient(options) {
173
+ const client = typeof options === "string" ? createSa2kitRnAuthClientFromApiBase(options) : createSa2kitRnAuthClient(options);
174
+ const token = await getRnBearerToken();
175
+ if (token) {
176
+ try {
177
+ await client.getSession();
178
+ } catch {
179
+ await clearRnBearerToken();
180
+ }
181
+ }
182
+ return client;
183
+ }
184
+ async function signOutSa2kitRnAuthClient(client) {
185
+ try {
186
+ await client.signOut();
187
+ } finally {
188
+ await clearRnBearerToken();
189
+ }
190
+ }
191
+ function resetSa2kitRnAuthClientCache() {
192
+ cachedClient = null;
193
+ cachedKey = "";
194
+ }
195
+
196
+ // src/common/auth/components/utils.ts
197
+ function validatePhoneNumber(phone) {
198
+ return /^1[3-9]\d{9}$/.test(phone.trim());
199
+ }
200
+ function validateEmail(email) {
201
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email.trim());
202
+ }
203
+ function getAuthClientError(result, fallback) {
204
+ const r = result;
205
+ if (!r?.error) return null;
206
+ return r.error.message ?? r.error.statusText ?? fallback;
207
+ }
208
+ function errorMessage(error, fallback) {
209
+ if (error instanceof Error && error.message) return error.message;
210
+ if (typeof error === "string") return error;
211
+ return fallback;
212
+ }
213
+
214
+ // src/common/auth/rn/sign-in.ts
215
+ function clientApi(client) {
216
+ return client;
217
+ }
218
+ async function signInWithRnAuthClient(authClient, account, password) {
219
+ const trimmed = account.trim();
220
+ try {
221
+ if (validatePhoneNumber(trimmed)) {
222
+ const result = await clientApi(authClient).signIn.phoneNumber({
223
+ phoneNumber: trimmed,
224
+ password
225
+ });
226
+ const err = getAuthClientError(result, "\u767B\u5F55\u5931\u8D25");
227
+ return err ? { success: false, error: err } : { success: true };
228
+ }
229
+ if (validateEmail(trimmed)) {
230
+ const result = await clientApi(authClient).signIn.email({
231
+ email: trimmed,
232
+ password
233
+ });
234
+ const err = getAuthClientError(result, "\u767B\u5F55\u5931\u8D25");
235
+ return err ? { success: false, error: err } : { success: true };
236
+ }
237
+ return { success: false, error: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u6216\u90AE\u7BB1" };
238
+ } catch (e) {
239
+ return { success: false, error: errorMessage(e, "\u767B\u5F55\u5931\u8D25") };
240
+ }
241
+ }
242
+ var ReactNative = __require("react-native");
243
+ var { ActivityIndicator, Pressable, Text, TextInput, View, StyleSheet } = ReactNative;
244
+ var defaultStyles = StyleSheet.create({
245
+ label: { fontSize: 12, color: "#8b98a5", marginBottom: 6, marginTop: 12 },
246
+ input: {
247
+ borderWidth: 1,
248
+ borderColor: "rgba(255,255,255,0.12)",
249
+ borderRadius: 10,
250
+ paddingHorizontal: 12,
251
+ paddingVertical: 10,
252
+ color: "#e8edf2",
253
+ backgroundColor: "rgba(0,0,0,0.2)",
254
+ fontSize: 15
255
+ },
256
+ err: { color: "#f87171", marginTop: 10, fontSize: 14 },
257
+ btn: {
258
+ marginTop: 14,
259
+ paddingVertical: 12,
260
+ borderRadius: 10,
261
+ alignItems: "center",
262
+ borderWidth: 1,
263
+ borderColor: "rgba(255,255,255,0.12)",
264
+ backgroundColor: "rgba(255,255,255,0.08)"
265
+ },
266
+ primary: { backgroundColor: "#3d9eff", borderColor: "transparent" },
267
+ disabled: { opacity: 0.6 },
268
+ btnTextPrimary: { color: "#fff", fontSize: 15, fontWeight: "600" },
269
+ centerInline: { paddingVertical: 24, alignItems: "center" }
270
+ });
271
+ var DEFAULT_LABELS = {
272
+ authApiBase: "\u8BA4\u8BC1 API \u6839\u5730\u5740\uFF08\u542B /api\uFF09",
273
+ account: "\u624B\u673A\u53F7 / \u90AE\u7BB1",
274
+ password: "\u5BC6\u7801",
275
+ submit: "\u767B\u5F55"
276
+ };
277
+ function RnAccountLoginForm({
278
+ authApiBase,
279
+ defaultAuthApiBase = "",
280
+ onAuthApiBaseChange,
281
+ submitting = false,
282
+ error = "",
283
+ onError,
284
+ onSuccess,
285
+ theme,
286
+ labels: labelsProp,
287
+ placeholders
288
+ }) {
289
+ const labels = {
290
+ ...DEFAULT_LABELS,
291
+ account: labelsProp?.account ?? labelsProp?.phone ?? labelsProp?.email ?? DEFAULT_LABELS.account,
292
+ ...labelsProp
293
+ };
294
+ const [authClient, setAuthClient] = React.useState(null);
295
+ const [account, setAccount] = React.useState("");
296
+ const [password, setPassword] = React.useState("");
297
+ const [loading, setLoading] = React.useState(false);
298
+ React.useEffect(() => {
299
+ let cancelled = false;
300
+ const base = authApiBase.trim() || defaultAuthApiBase;
301
+ if (!base) {
302
+ setAuthClient(null);
303
+ return;
304
+ }
305
+ resetSa2kitRnAuthClientCache();
306
+ initSa2kitRnAuthClient(base).then((client) => {
307
+ if (!cancelled) setAuthClient(client);
308
+ });
309
+ return () => {
310
+ cancelled = true;
311
+ };
312
+ }, [authApiBase, defaultAuthApiBase]);
313
+ const handleSubmit = React.useCallback(async () => {
314
+ if (!authClient) return;
315
+ onError?.("");
316
+ setLoading(true);
317
+ try {
318
+ const trimmedAccount = account.trim();
319
+ if (!trimmedAccount || !password) {
320
+ onError?.("\u8BF7\u586B\u5199\u8D26\u53F7\u548C\u5BC6\u7801");
321
+ return;
322
+ }
323
+ const result = await signInWithRnAuthClient(authClient, trimmedAccount, password);
324
+ if (!result.success) {
325
+ onError?.(result.error);
326
+ return;
327
+ }
328
+ const token = await getRnBearerToken();
329
+ if (!token) {
330
+ onError?.("\u767B\u5F55\u6210\u529F\u4F46\u672A\u83B7\u53D6\u5230 Bearer token");
331
+ return;
332
+ }
333
+ await onSuccess(token);
334
+ } finally {
335
+ setLoading(false);
336
+ }
337
+ }, [account, authClient, onError, onSuccess, password]);
338
+ const authApiField = onAuthApiBaseChange ? /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.authApiBase), /* @__PURE__ */ React__default.default.createElement(
339
+ TextInput,
340
+ {
341
+ style: [defaultStyles.input, theme?.input, theme?.inputContainer],
342
+ value: authApiBase,
343
+ onChangeText: onAuthApiBaseChange,
344
+ autoCapitalize: "none",
345
+ autoCorrect: false,
346
+ placeholder: placeholders?.authApiBase ?? defaultAuthApiBase,
347
+ placeholderTextColor: "#6b7a8a"
348
+ }
349
+ )) : null;
350
+ if (!authClient) {
351
+ return /* @__PURE__ */ React__default.default.createElement(View, { style: [defaultStyles.centerInline, theme?.loadingContainer] }, /* @__PURE__ */ React__default.default.createElement(ActivityIndicator, null));
352
+ }
353
+ const busy = loading || submitting;
354
+ return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, authApiField, /* @__PURE__ */ React__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.account), /* @__PURE__ */ React__default.default.createElement(
355
+ TextInput,
356
+ {
357
+ style: [defaultStyles.input, theme?.input, theme?.inputContainer],
358
+ value: account,
359
+ onChangeText: setAccount,
360
+ keyboardType: "email-address",
361
+ autoCapitalize: "none",
362
+ autoCorrect: false,
363
+ placeholder: placeholders?.account ?? placeholders?.phone ?? "\u624B\u673A\u53F7\u6216\u90AE\u7BB1",
364
+ placeholderTextColor: "#6b7a8a"
365
+ }
366
+ ), /* @__PURE__ */ React__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.password), /* @__PURE__ */ React__default.default.createElement(
367
+ TextInput,
368
+ {
369
+ style: [defaultStyles.input, theme?.input, theme?.inputContainer],
370
+ value: password,
371
+ onChangeText: setPassword,
372
+ secureTextEntry: true,
373
+ autoCapitalize: "none",
374
+ autoCorrect: false,
375
+ placeholder: placeholders?.password ?? "\u5BC6\u7801",
376
+ placeholderTextColor: "#6b7a8a"
377
+ }
378
+ ), error ? /* @__PURE__ */ React__default.default.createElement(Text, { style: [defaultStyles.err, theme?.error] }, error) : null, /* @__PURE__ */ React__default.default.createElement(
379
+ Pressable,
380
+ {
381
+ style: [
382
+ defaultStyles.btn,
383
+ defaultStyles.primary,
384
+ theme?.button,
385
+ theme?.buttonPrimary,
386
+ busy && (theme?.buttonDisabled ?? defaultStyles.disabled)
387
+ ],
388
+ onPress: () => void handleSubmit(),
389
+ disabled: busy
390
+ },
391
+ busy ? /* @__PURE__ */ React__default.default.createElement(ActivityIndicator, { color: "#fff" }) : /* @__PURE__ */ React__default.default.createElement(Text, { style: [defaultStyles.btnTextPrimary, theme?.buttonTextPrimary] }, labels.submit)
392
+ ));
393
+ }
394
+
16
395
  // src/common/auth/client/types.ts
17
396
  var STORAGE_KEYS = {
18
397
  AUTH_TOKEN: "auth_token",
@@ -29,8 +408,8 @@ var API_ROUTES = {
29
408
 
30
409
  // src/common/auth/client/base-api-client.ts
31
410
  var BaseApiClient = class {
32
- constructor(storage, request, baseUrl) {
33
- this.storage = storage;
411
+ constructor(storage2, request, baseUrl) {
412
+ this.storage = storage2;
34
413
  this.request = request;
35
414
  this.baseUrl = baseUrl;
36
415
  this.token = null;
@@ -222,77 +601,6 @@ var BaseApiClient = class {
222
601
  }
223
602
  };
224
603
 
225
- // src/storage/adapters/react-native-adapter.ts
226
- var AsyncStorage = null;
227
- try {
228
- AsyncStorage = __require("@react-native-async-storage/async-storage").default;
229
- } catch (e) {
230
- }
231
- var ReactNativeStorageAdapter = class {
232
- constructor() {
233
- this.listeners = /* @__PURE__ */ new Map();
234
- }
235
- async getItem(key) {
236
- if (!AsyncStorage) return null;
237
- try {
238
- return await AsyncStorage.getItem(key);
239
- } catch (error) {
240
- console.error('[ReactNativeStorage] Error getting item "' + key + '":', error);
241
- return null;
242
- }
243
- }
244
- async setItem(key, value) {
245
- if (!AsyncStorage) {
246
- throw new Error("AsyncStorage is not available");
247
- }
248
- try {
249
- await AsyncStorage.setItem(key, value);
250
- this.notifyListeners(key, value);
251
- } catch (error) {
252
- console.error('[ReactNativeStorage] Error setting item "' + key + '":', error);
253
- throw error;
254
- }
255
- }
256
- async removeItem(key) {
257
- if (!AsyncStorage) {
258
- throw new Error("AsyncStorage is not available");
259
- }
260
- try {
261
- await AsyncStorage.removeItem(key);
262
- this.notifyListeners(key, null);
263
- } catch (error) {
264
- console.error('[ReactNativeStorage] Error removing item "' + key + '":', error);
265
- throw error;
266
- }
267
- }
268
- async clear() {
269
- if (!AsyncStorage) {
270
- throw new Error("AsyncStorage is not available");
271
- }
272
- try {
273
- await AsyncStorage.clear();
274
- } catch (error) {
275
- console.error("[ReactNativeStorage] Error clearing storage:", error);
276
- throw error;
277
- }
278
- }
279
- addChangeListener(callback) {
280
- if (!this.listeners.has("*")) {
281
- this.listeners.set("*", /* @__PURE__ */ new Set());
282
- }
283
- this.listeners.get("*").add(callback);
284
- return () => {
285
- this.listeners.get("*")?.delete(callback);
286
- };
287
- }
288
- notifyListeners(key, value) {
289
- const globalListeners = this.listeners.get("*");
290
- if (globalListeners) {
291
- globalListeners.forEach((callback) => callback(key, value));
292
- }
293
- }
294
- };
295
-
296
604
  // src/request/adapters/react-native-adapter.ts
297
605
  var ReactNativeRequestAdapter = class {
298
606
  async request(config) {
@@ -329,7 +637,7 @@ var ReactNativeRequestAdapter = class {
329
637
  }
330
638
  };
331
639
 
332
- // src/common/auth/rn/client.ts
640
+ // src/common/auth/rn/legacy-client.ts
333
641
  var cached = null;
334
642
  var cachedBase = "";
335
643
  function createRnAuthClient(authApiBase) {
@@ -356,410 +664,21 @@ function resetRnAuthClientCache() {
356
664
  cachedBase = "";
357
665
  }
358
666
 
359
- // src/business/auth-legacy/utils/authUtils.ts
360
- function validatePhoneNumber(phone) {
361
- return /^1[3-9]\d{9}$/.test(phone);
362
- }
363
-
364
- // src/business/auth-legacy/rn/legacy-login.ts
365
- async function loginWithLegacyPhone(authApiBase, phone, password) {
366
- const trimmedPhone = phone.trim();
367
- if (!trimmedPhone || !password) {
368
- return { success: false, message: "\u8BF7\u586B\u5199\u624B\u673A\u53F7\u548C\u5BC6\u7801" };
369
- }
370
- if (!validatePhoneNumber(trimmedPhone)) {
371
- return { success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7" };
372
- }
373
- const base = authApiBase.replace(/\/+$/, "");
374
- const adapter = new ReactNativeRequestAdapter();
375
- const data = await adapter.request({
376
- url: `${base}/auth/login`,
377
- method: "POST",
378
- body: { phone: trimmedPhone, password }
379
- });
380
- if (!data.success) {
381
- return {
382
- success: false,
383
- message: data.message ?? "\u767B\u5F55\u5931\u8D25"
384
- };
385
- }
386
- const token = data.sessionToken ?? data.data?.sessionToken;
387
- if (!token || token.length < 8) {
388
- return { success: false, message: "\u767B\u5F55\u6210\u529F\u4F46\u672A\u8FD4\u56DE\u6709\u6548\u4F1A\u8BDD\u4EE4\u724C" };
389
- }
390
- return { success: true, token };
391
- }
392
- function isPhoneAccount(account) {
393
- return validatePhoneNumber(account.trim());
394
- }
395
- function useAuth(apiClient) {
396
- const [user, setUser] = React2.useState(null);
397
- const [isLoggedIn, setIsLoggedIn] = React2.useState(false);
398
- const [loading, setLoading] = React2.useState(false);
399
- const [checkingAuth, setCheckingAuth] = React2.useState(true);
400
- const [error, setError] = React2.useState(null);
401
- const checkAuthStatus = React2.useCallback(async () => {
402
- try {
403
- setCheckingAuth(true);
404
- setError(null);
405
- const isAuth = await apiClient.isAuthenticated();
406
- if (isAuth) {
407
- const response = await apiClient.getCurrentUser();
408
- if (response.success && response.data) {
409
- setUser(response.data);
410
- setIsLoggedIn(true);
411
- } else {
412
- await apiClient.clearUserData();
413
- setUser(null);
414
- setIsLoggedIn(false);
415
- }
416
- } else {
417
- setUser(null);
418
- setIsLoggedIn(false);
419
- }
420
- } catch (err) {
421
- console.error("\u68C0\u67E5\u767B\u5F55\u72B6\u6001\u5931\u8D25:", err);
422
- setError(err instanceof Error ? err.message : "\u68C0\u67E5\u767B\u5F55\u72B6\u6001\u5931\u8D25");
423
- setUser(null);
424
- setIsLoggedIn(false);
425
- } finally {
426
- setCheckingAuth(false);
427
- }
428
- }, [apiClient]);
429
- const login = React2.useCallback(
430
- async (email, password) => {
431
- setLoading(true);
432
- setError(null);
433
- try {
434
- const response = await apiClient.login(email, password);
435
- if (response.success && response.data) {
436
- setUser(response.data.user);
437
- setIsLoggedIn(true);
438
- return { success: true };
439
- } else {
440
- const errorMsg = response.error || "\u767B\u5F55\u5931\u8D25";
441
- setError(errorMsg);
442
- return { success: false, error: errorMsg };
443
- }
444
- } catch (err) {
445
- const errorMsg = err instanceof Error ? err.message : "\u767B\u5F55\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5";
446
- setError(errorMsg);
447
- return { success: false, error: errorMsg };
448
- } finally {
449
- setLoading(false);
450
- }
451
- },
452
- [apiClient]
453
- );
454
- const register = React2.useCallback(
455
- async (email, password, username) => {
456
- setLoading(true);
457
- setError(null);
458
- try {
459
- const response = await apiClient.register(email, password, username);
460
- if (response.success && response.data) {
461
- setUser(response.data.user);
462
- setIsLoggedIn(true);
463
- return { success: true };
464
- } else {
465
- const errorMsg = response.error || "\u6CE8\u518C\u5931\u8D25";
466
- setError(errorMsg);
467
- return { success: false, error: errorMsg };
468
- }
469
- } catch (err) {
470
- const errorMsg = err instanceof Error ? err.message : "\u6CE8\u518C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5";
471
- setError(errorMsg);
472
- return { success: false, error: errorMsg };
473
- } finally {
474
- setLoading(false);
475
- }
476
- },
477
- [apiClient]
478
- );
479
- const logout = React2.useCallback(async () => {
480
- setLoading(true);
481
- setError(null);
482
- try {
483
- await apiClient.logout();
484
- setUser(null);
485
- setIsLoggedIn(false);
486
- } catch (err) {
487
- console.error("\u767B\u51FA\u5931\u8D25:", err);
488
- setError(err instanceof Error ? err.message : "\u767B\u51FA\u5931\u8D25");
489
- setUser(null);
490
- setIsLoggedIn(false);
491
- } finally {
492
- setLoading(false);
493
- }
494
- }, [apiClient]);
495
- const clearError = React2.useCallback(() => {
496
- setError(null);
497
- }, []);
498
- React2.useEffect(() => {
499
- checkAuthStatus();
500
- }, [checkAuthStatus]);
501
- return {
502
- // 状态
503
- user,
504
- isLoggedIn,
505
- loading,
506
- checkingAuth,
507
- error,
508
- // 操作方法
509
- login,
510
- register,
511
- logout,
512
- refresh: checkAuthStatus,
513
- clearError
514
- };
515
- }
516
-
517
- // src/common/auth/components/LoginForm.tsx
518
- function LoginForm({ apiClient, onSuccess, onError, children }) {
519
- const { login, loading, error: authError, clearError } = useAuth(apiClient);
520
- const [email, setEmail] = React2.useState("");
521
- const [password, setPassword] = React2.useState("");
522
- const handleSubmit = async (e) => {
523
- if (e) {
524
- e.preventDefault();
525
- }
526
- clearError();
527
- const result = await login(email, password);
528
- if (result.success) {
529
- const currentUser = apiClient.getUser();
530
- if (currentUser) {
531
- onSuccess?.(currentUser);
532
- }
533
- } else {
534
- onError?.(result.error || "\u767B\u5F55\u5931\u8D25");
535
- }
536
- };
537
- const state = {
538
- email,
539
- password,
540
- loading,
541
- error: authError,
542
- handleEmailChange: setEmail,
543
- handlePasswordChange: setPassword,
544
- handleSubmit
545
- };
546
- return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, children(state));
547
- }
548
-
549
- // src/business/auth-legacy/rn/components/AccountLoginForm.tsx
550
- var ReactNative = __require("react-native");
551
- var { ActivityIndicator, Pressable, Text, TextInput, View, StyleSheet } = ReactNative;
552
- var defaultStyles = StyleSheet.create({
553
- label: { fontSize: 12, color: "#8b98a5", marginBottom: 6, marginTop: 12 },
554
- input: {
555
- borderWidth: 1,
556
- borderColor: "rgba(255,255,255,0.12)",
557
- borderRadius: 10,
558
- paddingHorizontal: 12,
559
- paddingVertical: 10,
560
- color: "#e8edf2",
561
- backgroundColor: "rgba(0,0,0,0.2)",
562
- fontSize: 15
563
- },
564
- err: { color: "#f87171", marginTop: 10, fontSize: 14 },
565
- btn: {
566
- marginTop: 14,
567
- paddingVertical: 12,
568
- borderRadius: 10,
569
- alignItems: "center",
570
- borderWidth: 1,
571
- borderColor: "rgba(255,255,255,0.12)",
572
- backgroundColor: "rgba(255,255,255,0.08)"
573
- },
574
- primary: { backgroundColor: "#3d9eff", borderColor: "transparent" },
575
- disabled: { opacity: 0.6 },
576
- btnTextPrimary: { color: "#fff", fontSize: 15, fontWeight: "600" },
577
- centerInline: { paddingVertical: 24, alignItems: "center" }
578
- });
579
- var DEFAULT_LABELS = {
580
- authApiBase: "\u8BA4\u8BC1 API \u6839\u5730\u5740\uFF08\u542B /api\uFF09",
581
- phone: "\u624B\u673A\u53F7",
582
- email: "\u90AE\u7BB1",
583
- password: "\u5BC6\u7801",
584
- submit: "\u767B\u5F55"
585
- };
586
- function RnAccountLoginForm({
587
- authApiBase,
588
- defaultAuthApiBase = "",
589
- onAuthApiBaseChange,
590
- submitting = false,
591
- error = "",
592
- onError,
593
- onSuccess,
594
- theme,
595
- labels: labelsProp,
596
- placeholders
597
- }) {
598
- const labels = { ...DEFAULT_LABELS, ...labelsProp };
599
- const [apiClient, setApiClient] = React2.useState(null);
600
- const [account, setAccount] = React2.useState("");
601
- const [password, setPassword] = React2.useState("");
602
- const [useLegacyPhone, setUseLegacyPhone] = React2.useState(true);
603
- React2.useEffect(() => {
604
- let cancelled = false;
605
- const base = authApiBase.trim() || defaultAuthApiBase;
606
- if (!base) {
607
- setApiClient(null);
608
- return;
609
- }
610
- resetRnAuthClientCache();
611
- initRnAuthClient(base).then((c) => {
612
- if (!cancelled) {
613
- setApiClient(c);
614
- }
615
- });
616
- return () => {
617
- cancelled = true;
618
- };
619
- }, [authApiBase, defaultAuthApiBase]);
620
- React2.useEffect(() => {
621
- const trimmed = account.trim();
622
- if (!trimmed) {
623
- setUseLegacyPhone(true);
624
- return;
625
- }
626
- setUseLegacyPhone(isPhoneAccount(trimmed));
627
- }, [account]);
628
- const handleLegacySubmit = React2.useCallback(async () => {
629
- const base = authApiBase.trim() || defaultAuthApiBase;
630
- onError?.("");
631
- const result = await loginWithLegacyPhone(base, account, password);
632
- if (!result.success || !result.token) {
633
- onError?.(result.message ?? "\u767B\u5F55\u5931\u8D25");
634
- return;
635
- }
636
- await onSuccess(result.token);
637
- }, [account, authApiBase, defaultAuthApiBase, onError, onSuccess, password]);
638
- const authApiField = onAuthApiBaseChange ? /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.authApiBase), /* @__PURE__ */ React2__default.default.createElement(
639
- TextInput,
640
- {
641
- style: [defaultStyles.input, theme?.input, theme?.inputContainer],
642
- value: authApiBase,
643
- onChangeText: onAuthApiBaseChange,
644
- autoCapitalize: "none",
645
- autoCorrect: false,
646
- placeholder: placeholders?.authApiBase ?? defaultAuthApiBase,
647
- placeholderTextColor: "#6b7a8a"
648
- }
649
- )) : null;
650
- if (!apiClient) {
651
- return /* @__PURE__ */ React2__default.default.createElement(View, { style: [defaultStyles.centerInline, theme?.loadingContainer] }, /* @__PURE__ */ React2__default.default.createElement(ActivityIndicator, null));
652
- }
653
- if (useLegacyPhone) {
654
- return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, authApiField, /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.phone), /* @__PURE__ */ React2__default.default.createElement(
655
- TextInput,
656
- {
657
- style: [defaultStyles.input, theme?.input, theme?.inputContainer],
658
- value: account,
659
- onChangeText: setAccount,
660
- keyboardType: "phone-pad",
661
- autoCapitalize: "none",
662
- autoCorrect: false,
663
- placeholder: placeholders?.phone ?? "13800138000",
664
- placeholderTextColor: "#6b7a8a"
665
- }
666
- ), /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.password), /* @__PURE__ */ React2__default.default.createElement(
667
- TextInput,
668
- {
669
- style: [defaultStyles.input, theme?.input, theme?.inputContainer],
670
- value: password,
671
- onChangeText: setPassword,
672
- secureTextEntry: true,
673
- autoCapitalize: "none",
674
- autoCorrect: false,
675
- placeholder: placeholders?.password ?? "\u5BC6\u7801",
676
- placeholderTextColor: "#6b7a8a"
677
- }
678
- ), error ? /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.err, theme?.error] }, error) : null, /* @__PURE__ */ React2__default.default.createElement(
679
- Pressable,
680
- {
681
- style: [
682
- defaultStyles.btn,
683
- defaultStyles.primary,
684
- theme?.button,
685
- theme?.buttonPrimary,
686
- submitting && (theme?.buttonDisabled ?? defaultStyles.disabled)
687
- ],
688
- onPress: handleLegacySubmit,
689
- disabled: submitting
690
- },
691
- submitting ? /* @__PURE__ */ React2__default.default.createElement(ActivityIndicator, { color: "#fff" }) : /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.btnTextPrimary, theme?.buttonTextPrimary] }, labels.submit)
692
- ));
693
- }
694
- return /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, authApiField, /* @__PURE__ */ React2__default.default.createElement(
695
- LoginForm,
696
- {
697
- apiClient,
698
- onSuccess: () => {
699
- const tok = apiClient.getToken();
700
- if (tok) {
701
- void onSuccess(tok);
702
- } else {
703
- onError?.("\u767B\u5F55\u6210\u529F\u4F46\u672A\u83B7\u53D6\u5230\u4EE4\u724C");
704
- }
705
- },
706
- onError: (msg) => onError?.(msg)
707
- },
708
- ({
709
- email,
710
- password: pwd,
711
- loading,
712
- error: formErr,
713
- handleEmailChange,
714
- handlePasswordChange,
715
- handleSubmit
716
- }) => /* @__PURE__ */ React2__default.default.createElement(React2__default.default.Fragment, null, /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.email), /* @__PURE__ */ React2__default.default.createElement(
717
- TextInput,
718
- {
719
- style: [defaultStyles.input, theme?.input, theme?.inputContainer],
720
- value: email,
721
- onChangeText: handleEmailChange,
722
- keyboardType: "email-address",
723
- autoCapitalize: "none",
724
- autoCorrect: false,
725
- placeholder: placeholders?.email ?? "user@example.com",
726
- placeholderTextColor: "#6b7a8a"
727
- }
728
- ), /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.label, theme?.label] }, labels.password), /* @__PURE__ */ React2__default.default.createElement(
729
- TextInput,
730
- {
731
- style: [defaultStyles.input, theme?.input, theme?.inputContainer],
732
- value: pwd,
733
- onChangeText: handlePasswordChange,
734
- secureTextEntry: true,
735
- autoCapitalize: "none",
736
- autoCorrect: false,
737
- placeholder: placeholders?.password ?? "\u5BC6\u7801",
738
- placeholderTextColor: "#6b7a8a"
739
- }
740
- ), formErr || error ? /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.err, theme?.error] }, formErr ?? error) : null, /* @__PURE__ */ React2__default.default.createElement(
741
- Pressable,
742
- {
743
- style: [
744
- defaultStyles.btn,
745
- defaultStyles.primary,
746
- theme?.button,
747
- theme?.buttonPrimary,
748
- (loading || submitting) && (theme?.buttonDisabled ?? defaultStyles.disabled)
749
- ],
750
- onPress: () => handleSubmit(),
751
- disabled: loading || submitting
752
- },
753
- loading || submitting ? /* @__PURE__ */ React2__default.default.createElement(ActivityIndicator, { color: "#fff" }) : /* @__PURE__ */ React2__default.default.createElement(Text, { style: [defaultStyles.btnTextPrimary, theme?.buttonTextPrimary] }, labels.submit)
754
- ))
755
- ));
756
- }
757
-
667
+ exports.RN_BEARER_TOKEN_KEY = RN_BEARER_TOKEN_KEY;
758
668
  exports.RnAccountLoginForm = RnAccountLoginForm;
669
+ exports.clearRnBearerToken = clearRnBearerToken;
759
670
  exports.createRnAuthClient = createRnAuthClient;
671
+ exports.createSa2kitRnAuthClient = createSa2kitRnAuthClient;
672
+ exports.createSa2kitRnAuthClientFromApiBase = createSa2kitRnAuthClientFromApiBase;
673
+ exports.getRnBearerToken = getRnBearerToken;
760
674
  exports.initRnAuthClient = initRnAuthClient;
761
- exports.isPhoneAccount = isPhoneAccount;
762
- exports.loginWithLegacyPhone = loginWithLegacyPhone;
675
+ exports.initSa2kitRnAuthClient = initSa2kitRnAuthClient;
676
+ exports.normalizeRnAuthBaseUrl = normalizeRnAuthBaseUrl;
763
677
  exports.resetRnAuthClientCache = resetRnAuthClientCache;
678
+ exports.resetSa2kitRnAuthClientCache = resetSa2kitRnAuthClientCache;
679
+ exports.setRnBearerToken = setRnBearerToken;
680
+ exports.setRnBearerTokenStorage = setRnBearerTokenStorage;
681
+ exports.signInWithRnAuthClient = signInWithRnAuthClient;
682
+ exports.signOutSa2kitRnAuthClient = signOutSa2kitRnAuthClient;
764
683
  //# sourceMappingURL=index.js.map
765
684
  //# sourceMappingURL=index.js.map