sa2kit 2.0.4 → 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 (347) hide show
  1. package/dist/{UniversalFileService-GsP6D3Rc.d.ts → UniversalFileService-CC4d3wkc.d.ts} +2 -2
  2. package/dist/{UniversalFileService-BpvbZitV.d.mts → UniversalFileService-CzAE_G4V.d.mts} +2 -2
  3. package/dist/auth/client/index.d.mts +8 -27
  4. package/dist/auth/client/index.d.ts +8 -27
  5. package/dist/auth/client/index.js +9 -4
  6. package/dist/auth/client/index.mjs +2 -1
  7. package/dist/auth/components/index.d.mts +8 -225
  8. package/dist/auth/components/index.d.ts +8 -225
  9. package/dist/auth/components/index.js +62 -319
  10. package/dist/auth/components/index.js.map +1 -1
  11. package/dist/auth/components/index.mjs +6 -316
  12. package/dist/auth/components/index.mjs.map +1 -1
  13. package/dist/auth/hooks/index.d.mts +11 -29
  14. package/dist/auth/hooks/index.d.ts +11 -29
  15. package/dist/auth/hooks/index.js +14 -3
  16. package/dist/auth/hooks/index.mjs +4 -1
  17. package/dist/auth/index.d.mts +17 -14
  18. package/dist/auth/index.d.ts +17 -14
  19. package/dist/auth/index.js +51 -90
  20. package/dist/auth/index.mjs +8 -7
  21. package/dist/auth/rn/index.d.mts +3087 -18
  22. package/dist/auth/rn/index.d.ts +3087 -18
  23. package/dist/auth/rn/index.js +396 -477
  24. package/dist/auth/rn/index.js.map +1 -1
  25. package/dist/auth/rn/index.mjs +384 -475
  26. package/dist/auth/rn/index.mjs.map +1 -1
  27. package/dist/auth/schema/index.d.mts +3 -788
  28. package/dist/auth/schema/index.d.ts +3 -788
  29. package/dist/auth/schema/index.js +17 -9
  30. package/dist/auth/schema/index.mjs +1 -1
  31. package/dist/auth/services/index.d.mts +1 -48
  32. package/dist/auth/services/index.d.ts +1 -48
  33. package/dist/auth/services/index.js +3 -20
  34. package/dist/auth/services/index.mjs +1 -2
  35. package/dist/{base-api-client-B3wZZoaH.d.ts → base-api-client-BpmcQt4Q.d.ts} +1 -1
  36. package/dist/{base-api-client-ACKKt13v.d.mts → base-api-client-CFIhZK4C.d.mts} +1 -1
  37. package/dist/{base-api-client-ACKKt13v.d.ts → base-api-client-CFIhZK4C.d.ts} +1 -1
  38. package/dist/{base-api-client-DrL35Ea2.d.mts → base-api-client-DXLsq2yz.d.mts} +1 -1
  39. package/dist/business/index.d.mts +1 -5
  40. package/dist/business/index.d.ts +1 -5
  41. package/dist/business/index.js +34 -1135
  42. package/dist/business/index.js.map +1 -1
  43. package/dist/business/index.mjs +5 -1105
  44. package/dist/business/index.mjs.map +1 -1
  45. package/dist/calendar/routes/index.d.mts +74 -1
  46. package/dist/calendar/routes/index.d.ts +74 -1
  47. package/dist/calendar/routes/index.js +186 -97
  48. package/dist/calendar/routes/index.js.map +1 -1
  49. package/dist/calendar/routes/index.mjs +178 -99
  50. package/dist/calendar/routes/index.mjs.map +1 -1
  51. package/dist/{chunk-IIVNHQEI.mjs → chunk-5GBDDXYL.mjs} +4 -3
  52. package/dist/chunk-5GBDDXYL.mjs.map +1 -0
  53. package/dist/chunk-7E3J7VAD.mjs +3 -0
  54. package/dist/chunk-7E3J7VAD.mjs.map +1 -0
  55. package/dist/chunk-B3CZ3HXJ.mjs +126 -0
  56. package/dist/chunk-B3CZ3HXJ.mjs.map +1 -0
  57. package/dist/chunk-CAYOQDBR.js +78 -0
  58. package/dist/chunk-CAYOQDBR.js.map +1 -0
  59. package/dist/{chunk-PTMSDNGO.mjs → chunk-CX2GHCAI.mjs} +4 -75
  60. package/dist/chunk-CX2GHCAI.mjs.map +1 -0
  61. package/dist/chunk-EBHPTFG6.mjs +82 -0
  62. package/dist/chunk-EBHPTFG6.mjs.map +1 -0
  63. package/dist/chunk-FOQEQWX5.js +4 -0
  64. package/dist/chunk-FOQEQWX5.js.map +1 -0
  65. package/dist/{chunk-YGI7UU2D.mjs → chunk-G4NFB2QA.mjs} +2 -2
  66. package/dist/chunk-G4NFB2QA.mjs.map +1 -0
  67. package/dist/chunk-G5HJGXGC.mjs +39 -0
  68. package/dist/chunk-G5HJGXGC.mjs.map +1 -0
  69. package/dist/{chunk-GSNGCENJ.js → chunk-GQZHGSRR.js} +2 -39
  70. package/dist/chunk-GQZHGSRR.js.map +1 -0
  71. package/dist/chunk-GS7XLKET.js +41 -0
  72. package/dist/chunk-GS7XLKET.js.map +1 -0
  73. package/dist/{chunk-7B5SI4OF.mjs → chunk-IBWDBBX5.mjs} +4 -3
  74. package/dist/chunk-IBWDBBX5.mjs.map +1 -0
  75. package/dist/chunk-IS7O4LPI.js +146 -0
  76. package/dist/chunk-IS7O4LPI.js.map +1 -0
  77. package/dist/chunk-LGHUCQIU.js +93 -0
  78. package/dist/chunk-LGHUCQIU.js.map +1 -0
  79. package/dist/chunk-LHJKLUM7.mjs +18 -0
  80. package/dist/chunk-LHJKLUM7.mjs.map +1 -0
  81. package/dist/chunk-LKBIVQBT.mjs +34 -0
  82. package/dist/chunk-LKBIVQBT.mjs.map +1 -0
  83. package/dist/chunk-MIDXG6LS.js +32 -0
  84. package/dist/chunk-MIDXG6LS.js.map +1 -0
  85. package/dist/chunk-MWSAH7ZG.mjs +42 -0
  86. package/dist/chunk-MWSAH7ZG.mjs.map +1 -0
  87. package/dist/{chunk-HCI6JQOU.mjs → chunk-MZOGYD4N.mjs} +7 -4
  88. package/dist/chunk-MZOGYD4N.mjs.map +1 -0
  89. package/dist/chunk-NDGHXVGS.js +25 -0
  90. package/dist/chunk-NDGHXVGS.js.map +1 -0
  91. package/dist/chunk-Q5VFBPMG.mjs +76 -0
  92. package/dist/chunk-Q5VFBPMG.mjs.map +1 -0
  93. package/dist/chunk-QDUBO567.js +1148 -0
  94. package/dist/chunk-QDUBO567.js.map +1 -0
  95. package/dist/{chunk-3CSCIRQY.js → chunk-QP5N3ER6.js} +6 -5
  96. package/dist/chunk-QP5N3ER6.js.map +1 -0
  97. package/dist/chunk-RWCD2CAD.mjs +1132 -0
  98. package/dist/chunk-RWCD2CAD.mjs.map +1 -0
  99. package/dist/{chunk-VQ54PUQV.js → chunk-S37OK2QG.js} +2 -2
  100. package/dist/chunk-S37OK2QG.js.map +1 -0
  101. package/dist/chunk-S3PUP7N4.js +20 -0
  102. package/dist/chunk-S3PUP7N4.js.map +1 -0
  103. package/dist/{chunk-QQ2WFYOD.js → chunk-S6YSGVWD.js} +4 -76
  104. package/dist/chunk-S6YSGVWD.js.map +1 -0
  105. package/dist/chunk-SFDJNKWC.js +22 -0
  106. package/dist/chunk-SFDJNKWC.js.map +1 -0
  107. package/dist/chunk-TTYCVBIQ.mjs +144 -0
  108. package/dist/chunk-TTYCVBIQ.mjs.map +1 -0
  109. package/dist/{chunk-HBF4HPRK.js → chunk-TXMX6PZR.js} +7 -3
  110. package/dist/chunk-TXMX6PZR.js.map +1 -0
  111. package/dist/chunk-VHN7PF5I.js +20 -0
  112. package/dist/chunk-VHN7PF5I.js.map +1 -0
  113. package/dist/chunk-VJNDOYEC.js +41 -0
  114. package/dist/chunk-VJNDOYEC.js.map +1 -0
  115. package/dist/chunk-XBZIS3MV.mjs +13 -0
  116. package/dist/chunk-XBZIS3MV.mjs.map +1 -0
  117. package/dist/chunk-XFOZ56FB.mjs +20 -0
  118. package/dist/chunk-XFOZ56FB.mjs.map +1 -0
  119. package/dist/chunk-Z23HAXHL.js +136 -0
  120. package/dist/chunk-Z23HAXHL.js.map +1 -0
  121. package/dist/chunk-ZF7DKR5A.mjs +26 -0
  122. package/dist/chunk-ZF7DKR5A.mjs.map +1 -0
  123. package/dist/common/auth/client/index.d.mts +3239 -0
  124. package/dist/common/auth/client/index.d.ts +3239 -0
  125. package/dist/common/auth/client/index.js +26 -0
  126. package/dist/common/auth/client/index.mjs +5 -0
  127. package/dist/common/auth/components/index.d.mts +374 -0
  128. package/dist/common/auth/components/index.d.ts +374 -0
  129. package/dist/common/auth/components/index.js +70 -0
  130. package/dist/common/auth/components/index.mjs +9 -0
  131. package/dist/common/auth/hooks/index.d.mts +75 -0
  132. package/dist/common/auth/hooks/index.d.ts +75 -0
  133. package/dist/common/auth/hooks/index.js +28 -0
  134. package/dist/common/auth/hooks/index.js.map +1 -0
  135. package/dist/common/auth/hooks/index.mjs +7 -0
  136. package/dist/common/auth/hooks/index.mjs.map +1 -0
  137. package/dist/common/auth/index.d.mts +14 -6
  138. package/dist/common/auth/index.d.ts +14 -6
  139. package/dist/common/auth/index.js +17 -8
  140. package/dist/common/auth/index.mjs +4 -3
  141. package/dist/common/auth/react/index.d.mts +3056 -0
  142. package/dist/common/auth/react/index.d.ts +3056 -0
  143. package/dist/common/auth/react/index.js +31 -0
  144. package/dist/common/auth/react/index.js.map +1 -0
  145. package/dist/common/auth/react/index.mjs +21 -0
  146. package/dist/common/auth/react/index.mjs.map +1 -0
  147. package/dist/common/auth/rn/index.d.mts +3138 -0
  148. package/dist/common/auth/rn/index.d.ts +3138 -0
  149. package/dist/common/auth/rn/index.js +348 -0
  150. package/dist/common/auth/rn/index.js.map +1 -0
  151. package/dist/common/auth/rn/index.mjs +327 -0
  152. package/dist/common/auth/rn/index.mjs.map +1 -0
  153. package/dist/common/auth/schema/index.d.mts +1479 -0
  154. package/dist/common/auth/schema/index.d.ts +1479 -0
  155. package/dist/common/auth/schema/index.js +49 -0
  156. package/dist/common/auth/schema/index.js.map +1 -0
  157. package/dist/common/auth/schema/index.mjs +4 -0
  158. package/dist/common/auth/schema/index.mjs.map +1 -0
  159. package/dist/common/auth/server/index.d.mts +7 -30
  160. package/dist/common/auth/server/index.d.ts +7 -30
  161. package/dist/common/auth/server/index.js +36 -79
  162. package/dist/common/auth/server/index.mjs +2 -5
  163. package/dist/common/auth/services/index.d.mts +14 -0
  164. package/dist/common/auth/services/index.d.ts +14 -0
  165. package/dist/common/auth/services/index.js +17 -0
  166. package/dist/common/auth/services/index.js.map +1 -0
  167. package/dist/common/auth/services/index.mjs +4 -0
  168. package/dist/common/auth/services/index.mjs.map +1 -0
  169. package/dist/common/index.d.mts +13 -5
  170. package/dist/common/index.d.ts +13 -5
  171. package/dist/common/index.js +19 -16
  172. package/dist/common/index.mjs +11 -8
  173. package/dist/common/request/index.js +5 -4
  174. package/dist/common/request/index.mjs +3 -2
  175. package/dist/common/storage/index.js +13 -12
  176. package/dist/common/storage/index.mjs +3 -2
  177. package/dist/festivalCard/index.d.mts +3 -3
  178. package/dist/festivalCard/index.d.ts +3 -3
  179. package/dist/festivalCard/routes/index.d.mts +1 -1
  180. package/dist/festivalCard/routes/index.d.ts +1 -1
  181. package/dist/festivalCard/server/index.d.mts +2 -2
  182. package/dist/festivalCard/server/index.d.ts +2 -2
  183. package/dist/{festivalCardService-BFCRhJrq.d.ts → festivalCardService-B3GsnNpV.d.ts} +1 -1
  184. package/dist/{festivalCardService-GriR2VMc.d.mts → festivalCardService-CWhrLNE9.d.mts} +1 -1
  185. package/dist/{index-DPYkrKZf.d.mts → index-BcjDRcKp.d.mts} +11 -6
  186. package/dist/{index-Bnh6VqFv.d.ts → index-BlpXrrTy.d.ts} +11 -6
  187. package/dist/{index-1Ag7IBXN.d.ts → index-DZ5iJtNO.d.mts} +2 -44
  188. package/dist/{index-DdeZSeTJ.d.mts → index-DZ5iJtNO.d.ts} +2 -44
  189. package/dist/index.d.mts +6296 -40
  190. package/dist/index.d.ts +6296 -40
  191. package/dist/index.js +1378 -2508
  192. package/dist/index.js.map +1 -1
  193. package/dist/index.mjs +1073 -2203
  194. package/dist/index.mjs.map +1 -1
  195. package/dist/mmd/admin/index.d.mts +1 -1
  196. package/dist/mmd/admin/index.d.ts +1 -1
  197. package/dist/mmd/index.d.mts +1 -1
  198. package/dist/mmd/index.d.ts +1 -1
  199. package/dist/mmd/server/index.d.mts +3 -3
  200. package/dist/mmd/server/index.d.ts +3 -3
  201. package/dist/request/index.js +4 -3
  202. package/dist/request/index.mjs +2 -1
  203. package/dist/session-BCXvGCnm.d.mts +81 -0
  204. package/dist/session-BCXvGCnm.d.ts +81 -0
  205. package/dist/storage/index.js +12 -11
  206. package/dist/storage/index.mjs +2 -1
  207. package/dist/{types-DyG3ZV9V.d.mts → types-B6B210gX.d.mts} +1 -1
  208. package/dist/{types-DyG3ZV9V.d.ts → types-B6B210gX.d.ts} +1 -1
  209. package/dist/{types-BTiaMsBz.d.mts → types-Bdnte5EN.d.mts} +1 -1
  210. package/dist/{types-tQfupO6d.d.mts → types-Cs0CLvrH.d.mts} +1 -1
  211. package/dist/{types-tQfupO6d.d.ts → types-Cs0CLvrH.d.ts} +1 -1
  212. package/dist/{types-ERmJyjx8.d.ts → types-_rFX1atk.d.ts} +1 -1
  213. package/dist/types.legacy-J-j-_ig_.d.mts +25 -0
  214. package/dist/types.legacy-J-j-_ig_.d.ts +25 -0
  215. package/dist/useAuthActions-7S5dL7Oh.d.mts +77 -0
  216. package/dist/useAuthActions-7S5dL7Oh.d.ts +77 -0
  217. package/dist/vocaloidBooth/server/index.d.mts +3 -3
  218. package/dist/vocaloidBooth/server/index.d.ts +3 -3
  219. package/package.json +44 -76
  220. package/dist/auth/legacy/core/index.d.mts +0 -42
  221. package/dist/auth/legacy/core/index.d.ts +0 -42
  222. package/dist/auth/legacy/core/index.js +0 -242
  223. package/dist/auth/legacy/core/index.js.map +0 -1
  224. package/dist/auth/legacy/core/index.mjs +0 -226
  225. package/dist/auth/legacy/core/index.mjs.map +0 -1
  226. package/dist/auth/legacy/db/index.d.mts +0 -5
  227. package/dist/auth/legacy/db/index.d.ts +0 -5
  228. package/dist/auth/legacy/db/index.js +0 -261
  229. package/dist/auth/legacy/db/index.js.map +0 -1
  230. package/dist/auth/legacy/db/index.mjs +0 -250
  231. package/dist/auth/legacy/db/index.mjs.map +0 -1
  232. package/dist/auth/legacy/index.d.mts +0 -5
  233. package/dist/auth/legacy/index.d.ts +0 -5
  234. package/dist/auth/legacy/index.js +0 -1107
  235. package/dist/auth/legacy/index.js.map +0 -1
  236. package/dist/auth/legacy/index.mjs +0 -1086
  237. package/dist/auth/legacy/index.mjs.map +0 -1
  238. package/dist/auth/legacy/logic/index.d.mts +0 -9
  239. package/dist/auth/legacy/logic/index.d.ts +0 -9
  240. package/dist/auth/legacy/logic/index.js +0 -194
  241. package/dist/auth/legacy/logic/index.js.map +0 -1
  242. package/dist/auth/legacy/logic/index.mjs +0 -187
  243. package/dist/auth/legacy/logic/index.mjs.map +0 -1
  244. package/dist/auth/legacy/miniapp/index.d.mts +0 -5
  245. package/dist/auth/legacy/miniapp/index.d.ts +0 -5
  246. package/dist/auth/legacy/miniapp/index.js +0 -506
  247. package/dist/auth/legacy/miniapp/index.js.map +0 -1
  248. package/dist/auth/legacy/miniapp/index.mjs +0 -487
  249. package/dist/auth/legacy/miniapp/index.mjs.map +0 -1
  250. package/dist/auth/legacy/routes/index.d.mts +0 -53
  251. package/dist/auth/legacy/routes/index.d.ts +0 -53
  252. package/dist/auth/legacy/routes/index.js +0 -278
  253. package/dist/auth/legacy/routes/index.js.map +0 -1
  254. package/dist/auth/legacy/routes/index.mjs +0 -271
  255. package/dist/auth/legacy/routes/index.mjs.map +0 -1
  256. package/dist/auth/legacy/schema/index.d.mts +0 -401
  257. package/dist/auth/legacy/schema/index.d.ts +0 -401
  258. package/dist/auth/legacy/schema/index.js +0 -50
  259. package/dist/auth/legacy/schema/index.js.map +0 -1
  260. package/dist/auth/legacy/schema/index.mjs +0 -44
  261. package/dist/auth/legacy/schema/index.mjs.map +0 -1
  262. package/dist/auth/legacy/server/index.d.mts +0 -13
  263. package/dist/auth/legacy/server/index.d.ts +0 -13
  264. package/dist/auth/legacy/server/index.js +0 -21
  265. package/dist/auth/legacy/server/index.js.map +0 -1
  266. package/dist/auth/legacy/server/index.mjs +0 -19
  267. package/dist/auth/legacy/server/index.mjs.map +0 -1
  268. package/dist/auth/legacy/services/index.d.mts +0 -40
  269. package/dist/auth/legacy/services/index.d.ts +0 -40
  270. package/dist/auth/legacy/services/index.js +0 -258
  271. package/dist/auth/legacy/services/index.js.map +0 -1
  272. package/dist/auth/legacy/services/index.mjs +0 -252
  273. package/dist/auth/legacy/services/index.mjs.map +0 -1
  274. package/dist/auth/legacy/ui/miniapp/index.d.mts +0 -10
  275. package/dist/auth/legacy/ui/miniapp/index.d.ts +0 -10
  276. package/dist/auth/legacy/ui/miniapp/index.js +0 -298
  277. package/dist/auth/legacy/ui/miniapp/index.js.map +0 -1
  278. package/dist/auth/legacy/ui/miniapp/index.mjs +0 -290
  279. package/dist/auth/legacy/ui/miniapp/index.mjs.map +0 -1
  280. package/dist/auth/legacy/ui/web/index.d.mts +0 -22
  281. package/dist/auth/legacy/ui/web/index.d.ts +0 -22
  282. package/dist/auth/legacy/ui/web/index.js +0 -899
  283. package/dist/auth/legacy/ui/web/index.js.map +0 -1
  284. package/dist/auth/legacy/ui/web/index.mjs +0 -889
  285. package/dist/auth/legacy/ui/web/index.mjs.map +0 -1
  286. package/dist/auth/legacy/web/index.d.mts +0 -5
  287. package/dist/auth/legacy/web/index.d.ts +0 -5
  288. package/dist/auth/legacy/web/index.js +0 -1107
  289. package/dist/auth/legacy/web/index.js.map +0 -1
  290. package/dist/auth/legacy/web/index.mjs +0 -1086
  291. package/dist/auth/legacy/web/index.mjs.map +0 -1
  292. package/dist/auth/middleware/index.d.mts +0 -75
  293. package/dist/auth/middleware/index.d.ts +0 -75
  294. package/dist/auth/middleware/index.js +0 -15
  295. package/dist/auth/middleware/index.mjs +0 -6
  296. package/dist/auth/routes/index.d.mts +0 -261
  297. package/dist/auth/routes/index.d.ts +0 -261
  298. package/dist/auth/routes/index.js +0 -59
  299. package/dist/auth/routes/index.mjs +0 -6
  300. package/dist/chunk-37HYTHEC.mjs +0 -90
  301. package/dist/chunk-37HYTHEC.mjs.map +0 -1
  302. package/dist/chunk-3CSCIRQY.js.map +0 -1
  303. package/dist/chunk-5WV35FPV.js +0 -131
  304. package/dist/chunk-5WV35FPV.js.map +0 -1
  305. package/dist/chunk-7B5SI4OF.mjs.map +0 -1
  306. package/dist/chunk-DCRD5CZB.js +0 -573
  307. package/dist/chunk-DCRD5CZB.js.map +0 -1
  308. package/dist/chunk-DDX4JKFS.js +0 -19
  309. package/dist/chunk-DDX4JKFS.js.map +0 -1
  310. package/dist/chunk-DV6M7MFP.js +0 -283
  311. package/dist/chunk-DV6M7MFP.js.map +0 -1
  312. package/dist/chunk-EQXPL7TN.mjs +0 -78
  313. package/dist/chunk-EQXPL7TN.mjs.map +0 -1
  314. package/dist/chunk-GSNGCENJ.js.map +0 -1
  315. package/dist/chunk-HBF4HPRK.js.map +0 -1
  316. package/dist/chunk-HCI6JQOU.mjs.map +0 -1
  317. package/dist/chunk-I44HXJ3X.mjs +0 -17
  318. package/dist/chunk-I44HXJ3X.mjs.map +0 -1
  319. package/dist/chunk-IIVNHQEI.mjs.map +0 -1
  320. package/dist/chunk-IJ4YYWE3.mjs +0 -122
  321. package/dist/chunk-IJ4YYWE3.mjs.map +0 -1
  322. package/dist/chunk-J4BEIZUC.js +0 -92
  323. package/dist/chunk-J4BEIZUC.js.map +0 -1
  324. package/dist/chunk-OKPWFVXC.js +0 -24
  325. package/dist/chunk-OKPWFVXC.js.map +0 -1
  326. package/dist/chunk-PNOTQAYK.mjs +0 -560
  327. package/dist/chunk-PNOTQAYK.mjs.map +0 -1
  328. package/dist/chunk-PTMSDNGO.mjs.map +0 -1
  329. package/dist/chunk-Q2IAL7YV.js +0 -36
  330. package/dist/chunk-Q2IAL7YV.js.map +0 -1
  331. package/dist/chunk-QQ2WFYOD.js.map +0 -1
  332. package/dist/chunk-VQ54PUQV.js.map +0 -1
  333. package/dist/chunk-W5JEGA76.mjs +0 -33
  334. package/dist/chunk-W5JEGA76.mjs.map +0 -1
  335. package/dist/chunk-YGI7UU2D.mjs.map +0 -1
  336. package/dist/chunk-ZCLQSI5F.mjs +0 -271
  337. package/dist/chunk-ZCLQSI5F.mjs.map +0 -1
  338. package/dist/drizzle-auth-service-D-pljzCD.d.mts +0 -145
  339. package/dist/drizzle-auth-service-D3qryE_I.d.ts +0 -145
  340. package/dist/index-DNKZ7-R_.d.mts +0 -184
  341. package/dist/index-DNKZ7-R_.d.ts +0 -184
  342. package/dist/types-C5vUWf9u.d.ts +0 -70
  343. package/dist/types-IYCqCk2g.d.mts +0 -70
  344. /package/dist/{auth/middleware → common/auth/client}/index.js.map +0 -0
  345. /package/dist/{auth/middleware → common/auth/client}/index.mjs.map +0 -0
  346. /package/dist/{auth/routes → common/auth/components}/index.js.map +0 -0
  347. /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