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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/hooks/useAuthActions.ts"],"names":["useCallback","getAuthClientError","errorMessage"],"mappings":"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","file":"chunk-IS7O4LPI.js","sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { errorMessage, getAuthClientError } from '../components/utils';\n\n/** Better Auth 客户端(vanilla 或 React 均可) */\nexport type AuthActionsClient = Record<string, unknown>;\n\nfunction clientApi(client: AuthActionsClient) {\n return client as {\n signIn: {\n email: (input: { email: string; password: string }) => Promise<unknown>;\n phoneNumber: (input: { phoneNumber: string; password: string }) => Promise<unknown>;\n emailOtp: (input: { email: string; otp: string }) => Promise<unknown>;\n };\n signUp: { email: (input: { email: string; password: string; name: string }) => Promise<unknown> };\n phoneNumber: {\n sendOtp: (input: { phoneNumber: string }) => Promise<unknown>;\n verify: (input: { phoneNumber: string; code: string }) => Promise<unknown>;\n requestPasswordReset: (input: { phoneNumber: string }) => Promise<unknown>;\n resetPassword: (input: { phoneNumber: string; otp: string; newPassword: string }) => Promise<unknown>;\n };\n emailOtp: {\n sendVerificationOtp: (input: {\n email: string;\n type: 'sign-in' | 'email-verification' | 'forget-password';\n }) => Promise<unknown>;\n };\n signOut: () => Promise<unknown>;\n };\n}\n\nexport function useAuthActions(authClient: AuthActionsClient) {\n const signInWithEmail = useCallback(\n async (email: string, password: string) => {\n try {\n const result = await clientApi(authClient).signIn.email({ email, password });\n const err = getAuthClientError(result, '登录失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '登录失败') };\n }\n },\n [authClient],\n );\n\n const signInWithPhonePassword = useCallback(\n async (phoneNumber: string, password: string) => {\n try {\n const result = await clientApi(authClient).signIn.phoneNumber({ phoneNumber, password });\n const err = getAuthClientError(result, '登录失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '登录失败') };\n }\n },\n [authClient],\n );\n\n const signUpWithEmail = useCallback(\n async (email: string, password: string, name: string) => {\n try {\n const result = await clientApi(authClient).signUp.email({ email, password, name });\n const err = getAuthClientError(result, '注册失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '注册失败') };\n }\n },\n [authClient],\n );\n\n const sendPhoneOtp = useCallback(\n async (phoneNumber: string) => {\n try {\n const result = await clientApi(authClient).phoneNumber.sendOtp({ phoneNumber });\n const err = getAuthClientError(result, '验证码发送失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '验证码发送失败') };\n }\n },\n [authClient],\n );\n\n const verifyPhoneOtp = useCallback(\n async (phoneNumber: string, code: string) => {\n try {\n const result = await clientApi(authClient).phoneNumber.verify({ phoneNumber, code });\n const err = getAuthClientError(result, '验证失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '验证失败') };\n }\n },\n [authClient],\n );\n\n const sendEmailOtp = useCallback(\n async (email: string, type: 'sign-in' | 'email-verification' | 'forget-password' = 'sign-in') => {\n try {\n const result = await clientApi(authClient).emailOtp.sendVerificationOtp({ email, type });\n const err = getAuthClientError(result, '验证码发送失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '验证码发送失败') };\n }\n },\n [authClient],\n );\n\n const signInWithEmailOtp = useCallback(\n async (email: string, otp: string) => {\n try {\n const result = await clientApi(authClient).signIn.emailOtp({ email, otp });\n const err = getAuthClientError(result, '登录失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '登录失败') };\n }\n },\n [authClient],\n );\n\n const requestPhonePasswordReset = useCallback(\n async (phoneNumber: string) => {\n try {\n const result = await clientApi(authClient).phoneNumber.requestPasswordReset({ phoneNumber });\n const err = getAuthClientError(result, '发送验证码失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '发送验证码失败') };\n }\n },\n [authClient],\n );\n\n const resetPhonePassword = useCallback(\n async (phoneNumber: string, otp: string, newPassword: string) => {\n try {\n const result = await clientApi(authClient).phoneNumber.resetPassword({\n phoneNumber,\n otp,\n newPassword,\n });\n const err = getAuthClientError(result, '重置密码失败');\n return err ? { success: false as const, error: err } : { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '重置密码失败') };\n }\n },\n [authClient],\n );\n\n const signOut = useCallback(async () => {\n try {\n await clientApi(authClient).signOut();\n return { success: true as const };\n } catch (e) {\n return { success: false as const, error: errorMessage(e, '退出失败') };\n }\n }, [authClient]);\n\n return {\n signInWithEmail,\n signInWithPhonePassword,\n signUpWithEmail,\n sendPhoneOtp,\n verifyPhoneOtp,\n sendEmailOtp,\n signInWithEmailOtp,\n requestPhonePasswordReset,\n resetPhonePassword,\n signOut,\n };\n}\n\nexport type UseAuthActionsReturn = ReturnType<typeof useAuthActions>;\n"]}
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var pgCore = require('drizzle-orm/pg-core');
4
+ var drizzleOrm = require('drizzle-orm');
5
+
6
+ // src/common/auth/schema/enums.ts
7
+ var userRole = pgCore.pgEnum("UserRole", ["USER", "ADMIN", "SUPER_ADMIN"]);
8
+ var user = pgCore.pgTable("user", {
9
+ id: pgCore.text("id").primaryKey().notNull(),
10
+ name: pgCore.text("name").notNull(),
11
+ email: pgCore.text("email").notNull(),
12
+ emailVerified: pgCore.boolean("emailVerified").default(false).notNull(),
13
+ image: pgCore.text("image"),
14
+ phoneNumber: pgCore.text("phoneNumber"),
15
+ phoneNumberVerified: pgCore.boolean("phoneNumberVerified").default(false),
16
+ role: userRole("role").default("USER").notNull(),
17
+ createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull(),
18
+ updatedAt: pgCore.timestamp("updatedAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
19
+ });
20
+ var session = pgCore.pgTable("session", {
21
+ id: pgCore.text("id").primaryKey().notNull(),
22
+ userId: pgCore.text("userId").notNull().references(() => user.id, { onDelete: "cascade" }),
23
+ token: pgCore.text("token").notNull(),
24
+ expiresAt: pgCore.timestamp("expiresAt", { precision: 3, mode: "date" }).notNull(),
25
+ ipAddress: pgCore.text("ipAddress"),
26
+ userAgent: pgCore.text("userAgent"),
27
+ createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull(),
28
+ updatedAt: pgCore.timestamp("updatedAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
29
+ });
30
+ var account = pgCore.pgTable("account", {
31
+ id: pgCore.text("id").primaryKey().notNull(),
32
+ accountId: pgCore.text("accountId").notNull(),
33
+ providerId: pgCore.text("providerId").notNull(),
34
+ userId: pgCore.text("userId").notNull().references(() => user.id, { onDelete: "cascade" }),
35
+ accessToken: pgCore.text("accessToken"),
36
+ refreshToken: pgCore.text("refreshToken"),
37
+ idToken: pgCore.text("idToken"),
38
+ accessTokenExpiresAt: pgCore.timestamp("accessTokenExpiresAt", { precision: 3, mode: "date" }),
39
+ refreshTokenExpiresAt: pgCore.timestamp("refreshTokenExpiresAt", { precision: 3, mode: "date" }),
40
+ scope: pgCore.text("scope"),
41
+ password: pgCore.text("password"),
42
+ createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull(),
43
+ updatedAt: pgCore.timestamp("updatedAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
44
+ });
45
+ var verification = pgCore.pgTable("verification", {
46
+ id: pgCore.text("id").primaryKey().notNull(),
47
+ identifier: pgCore.text("identifier").notNull(),
48
+ value: pgCore.text("value").notNull(),
49
+ expiresAt: pgCore.timestamp("expiresAt", { precision: 3, mode: "date" }).notNull(),
50
+ createdAt: pgCore.timestamp("createdAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull(),
51
+ updatedAt: pgCore.timestamp("updatedAt", { precision: 3, mode: "date" }).default(drizzleOrm.sql`CURRENT_TIMESTAMP`).notNull()
52
+ });
53
+ var verifications = verification;
54
+ var userRelations = drizzleOrm.relations(user, ({ many }) => ({
55
+ sessions: many(session),
56
+ accounts: many(account)
57
+ }));
58
+ var sessionRelations = drizzleOrm.relations(session, ({ one }) => ({
59
+ user: one(user, {
60
+ fields: [session.userId],
61
+ references: [user.id]
62
+ })
63
+ }));
64
+ var accountRelations = drizzleOrm.relations(account, ({ one }) => ({
65
+ user: one(user, {
66
+ fields: [account.userId],
67
+ references: [user.id]
68
+ })
69
+ }));
70
+
71
+ // src/common/auth/schema/index.ts
72
+ var authDrizzleSchema = {
73
+ user,
74
+ session,
75
+ account,
76
+ verification,
77
+ userRelations,
78
+ sessionRelations,
79
+ accountRelations
80
+ };
81
+
82
+ exports.account = account;
83
+ exports.accountRelations = accountRelations;
84
+ exports.authDrizzleSchema = authDrizzleSchema;
85
+ exports.session = session;
86
+ exports.sessionRelations = sessionRelations;
87
+ exports.user = user;
88
+ exports.userRelations = userRelations;
89
+ exports.userRole = userRole;
90
+ exports.verification = verification;
91
+ exports.verifications = verifications;
92
+ //# sourceMappingURL=chunk-LGHUCQIU.js.map
93
+ //# sourceMappingURL=chunk-LGHUCQIU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/schema/enums.ts","../src/common/auth/schema/user.ts","../src/common/auth/schema/session.ts","../src/common/auth/schema/account.ts","../src/common/auth/schema/verification.ts","../src/common/auth/schema/relations.ts","../src/common/auth/schema/index.ts"],"names":["pgEnum","pgTable","text","boolean","timestamp","sql","relations"],"mappings":"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","file":"chunk-LGHUCQIU.js","sourcesContent":["/**\n * Auth Schema - Enums\n * 认证相关的枚举类型定义\n */\n\nimport { pgEnum } from 'drizzle-orm/pg-core';\n\n/**\n * 用户角色枚举\n */\nexport const userRole = pgEnum('UserRole', ['USER', 'ADMIN', 'SUPER_ADMIN']);\n\n/**\n * 类型定义\n */\nexport type UserRole = 'USER' | 'ADMIN' | 'SUPER_ADMIN';\n\n","/**\n * Better Auth — user 表(3.0 SSOT)\n */\nimport { boolean, pgTable, text, timestamp } from 'drizzle-orm/pg-core';\nimport { sql } from 'drizzle-orm';\nimport { userRole } from './enums';\n\nexport const user = pgTable('user', {\n id: text('id').primaryKey().notNull(),\n name: text('name').notNull(),\n email: text('email').notNull(),\n emailVerified: boolean('emailVerified').default(false).notNull(),\n image: text('image'),\n phoneNumber: text('phoneNumber'),\n phoneNumberVerified: boolean('phoneNumberVerified').default(false),\n role: userRole('role').default('USER').notNull(),\n createdAt: timestamp('createdAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n updatedAt: timestamp('updatedAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n});\n\nexport type User = typeof user.$inferSelect;\nexport type NewUser = typeof user.$inferInsert;\n","/**\n * Better Auth — session 表(3.0 SSOT)\n */\nimport { pgTable, text, timestamp } from 'drizzle-orm/pg-core';\nimport { sql } from 'drizzle-orm';\nimport { user } from './user';\n\nexport const session = pgTable('session', {\n id: text('id').primaryKey().notNull(),\n userId: text('userId')\n .notNull()\n .references(() => user.id, { onDelete: 'cascade' }),\n token: text('token').notNull(),\n expiresAt: timestamp('expiresAt', { precision: 3, mode: 'date' }).notNull(),\n ipAddress: text('ipAddress'),\n userAgent: text('userAgent'),\n createdAt: timestamp('createdAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n updatedAt: timestamp('updatedAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n});\n\nexport type Session = typeof session.$inferSelect;\nexport type NewSession = typeof session.$inferInsert;\n","/**\n * Better Auth — account 表(credential / OAuth,3.0 SSOT)\n */\nimport { pgTable, text, timestamp } from 'drizzle-orm/pg-core';\nimport { sql } from 'drizzle-orm';\nimport { user } from './user';\n\nexport const account = pgTable('account', {\n id: text('id').primaryKey().notNull(),\n accountId: text('accountId').notNull(),\n providerId: text('providerId').notNull(),\n userId: text('userId')\n .notNull()\n .references(() => user.id, { onDelete: 'cascade' }),\n accessToken: text('accessToken'),\n refreshToken: text('refreshToken'),\n idToken: text('idToken'),\n accessTokenExpiresAt: timestamp('accessTokenExpiresAt', { precision: 3, mode: 'date' }),\n refreshTokenExpiresAt: timestamp('refreshTokenExpiresAt', { precision: 3, mode: 'date' }),\n scope: text('scope'),\n password: text('password'),\n createdAt: timestamp('createdAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n updatedAt: timestamp('updatedAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n});\n\nexport type Account = typeof account.$inferSelect;\nexport type NewAccount = typeof account.$inferInsert;\n","/**\n * Better Auth — verification 表(OTP / magic link,3.0 SSOT)\n */\nimport { pgTable, text, timestamp } from 'drizzle-orm/pg-core';\nimport { sql } from 'drizzle-orm';\n\nexport const verification = pgTable('verification', {\n id: text('id').primaryKey().notNull(),\n identifier: text('identifier').notNull(),\n value: text('value').notNull(),\n expiresAt: timestamp('expiresAt', { precision: 3, mode: 'date' }).notNull(),\n createdAt: timestamp('createdAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n updatedAt: timestamp('updatedAt', { precision: 3, mode: 'date' })\n .default(sql`CURRENT_TIMESTAMP`)\n .notNull(),\n});\n\nexport type Verification = typeof verification.$inferSelect;\nexport type NewVerification = typeof verification.$inferInsert;\n\n/** @deprecated 3.0 使用 `verification` */\nexport const verifications = verification;\n","/**\n * Auth Schema - Relations\n * 表关系定义\n */\n\nimport { relations } from 'drizzle-orm';\nimport { user } from './user';\nimport { session } from './session';\nimport { account } from './account';\n\n/**\n * User 表关系\n */\nexport const userRelations = relations(user, ({ many }) => ({\n sessions: many(session),\n accounts: many(account),\n}));\n\n/**\n * Session 表关系\n */\nexport const sessionRelations = relations(session, ({ one }) => ({\n user: one(user, {\n fields: [session.userId],\n references: [user.id],\n }),\n}));\n\n/**\n * Account 表关系\n */\nexport const accountRelations = relations(account, ({ one }) => ({\n user: one(user, {\n fields: [account.userId],\n references: [user.id],\n }),\n}));\n\n","/**\n * Better Auth Drizzle Schema(sa2kit/common/auth/schema)\n */\nexport { userRole, type UserRole } from './enums';\nexport { user, type User, type NewUser } from './user';\nexport { session, type Session, type NewSession } from './session';\nexport { account, type Account, type NewAccount } from './account';\nexport { verification, verifications, type Verification, type NewVerification } from './verification';\nexport { userRelations, sessionRelations, accountRelations } from './relations';\n\nimport { user } from './user';\nimport { session } from './session';\nimport { account } from './account';\nimport { verification } from './verification';\nimport { userRelations, sessionRelations, accountRelations } from './relations';\n\n/** drizzleAdapter 传入的 schema 对象 */\nexport const authDrizzleSchema = {\n user,\n session,\n account,\n verification,\n userRelations,\n sessionRelations,\n accountRelations,\n};\n"]}
@@ -0,0 +1,18 @@
1
+ import { createAuthClient } from 'better-auth/client';
2
+ import { emailOTPClient, phoneNumberClient } from 'better-auth/client/plugins';
3
+
4
+ // src/common/auth/client/create-auth-client.ts
5
+ function buildSa2kitAuthClient(options) {
6
+ return createAuthClient({
7
+ baseURL: options.baseURL.replace(/\/+$/, ""),
8
+ basePath: options.basePath ?? "/api/auth",
9
+ plugins: [emailOTPClient(), phoneNumberClient()]
10
+ });
11
+ }
12
+ function createSa2kitAuthClient(options) {
13
+ return buildSa2kitAuthClient(options);
14
+ }
15
+
16
+ export { createSa2kitAuthClient };
17
+ //# sourceMappingURL=chunk-LHJKLUM7.mjs.map
18
+ //# sourceMappingURL=chunk-LHJKLUM7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/client/create-auth-client.ts"],"names":[],"mappings":";;;;AAYA,SAAS,sBAAsB,OAAA,EAAkC;AAC/D,EAAA,OAAO,gBAAA,CAAiB;AAAA,IACtB,OAAA,EAAS,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,EAAE,CAAA;AAAA,IAC3C,QAAA,EAAU,QAAQ,QAAA,IAAY,WAAA;AAAA,IAC9B,OAAA,EAAS,CAAC,cAAA,EAAe,EAAG,mBAAmB;AAAA,GAChD,CAAA;AACH;AAIO,SAAS,uBAAuB,OAAA,EAAoD;AACzF,EAAA,OAAO,sBAAsB,OAAO,CAAA;AACtC","file":"chunk-LHJKLUM7.mjs","sourcesContent":["/**\n * Better Auth 客户端(vanilla — RN / 小程序 / Node fetch)\n */\nimport { createAuthClient } from 'better-auth/client';\nimport { emailOTPClient } from 'better-auth/client/plugins';\nimport { phoneNumberClient } from 'better-auth/client/plugins';\n\nexport type Sa2kitAuthClientOptions = {\n baseURL: string;\n basePath?: string;\n};\n\nfunction buildSa2kitAuthClient(options: Sa2kitAuthClientOptions) {\n return createAuthClient({\n baseURL: options.baseURL.replace(/\\/+$/, ''),\n basePath: options.basePath ?? '/api/auth',\n plugins: [emailOTPClient(), phoneNumberClient()],\n });\n}\n\nexport type Sa2kitAuthClient = ReturnType<typeof buildSa2kitAuthClient>;\n\nexport function createSa2kitAuthClient(options: Sa2kitAuthClientOptions): Sa2kitAuthClient {\n return buildSa2kitAuthClient(options);\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { useAuthActions } from './chunk-TTYCVBIQ.mjs';
2
+ import React, { createContext, useMemo, useContext } from 'react';
3
+
4
+ var AuthContext = createContext(null);
5
+ function AuthProvider({ authClient, children }) {
6
+ const session = authClient.useSession();
7
+ const actions = useAuthActions(authClient);
8
+ const user = session.data?.user ?? null;
9
+ const value = useMemo(
10
+ () => ({
11
+ authClient,
12
+ user,
13
+ isAuthenticated: !!user,
14
+ loading: session.isPending,
15
+ refreshSession: async () => {
16
+ await session.refetch();
17
+ },
18
+ ...actions
19
+ }),
20
+ [authClient, user, session.isPending, session.refetch, actions]
21
+ );
22
+ return /* @__PURE__ */ React.createElement(AuthContext.Provider, { value }, children);
23
+ }
24
+ function useAuthContext() {
25
+ const ctx = useContext(AuthContext);
26
+ if (!ctx) {
27
+ throw new Error("useAuthContext \u5FC5\u987B\u5728 AuthProvider \u5185\u4F7F\u7528");
28
+ }
29
+ return ctx;
30
+ }
31
+
32
+ export { AuthProvider, useAuthContext };
33
+ //# sourceMappingURL=chunk-LKBIVQBT.mjs.map
34
+ //# sourceMappingURL=chunk-LKBIVQBT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/context/AuthProvider.tsx"],"names":[],"mappings":";;;AAwBA,IAAM,WAAA,GAAc,cAAuC,IAAI,CAAA;AAOxD,SAAS,YAAA,CAAa,EAAE,UAAA,EAAY,QAAA,EAAS,EAAsB;AACxE,EAAA,MAAM,OAAA,GAAU,WAAW,UAAA,EAAW;AACtC,EAAA,MAAM,OAAA,GAAU,eAAe,UAAU,CAAA;AAEzC,EAAA,MAAM,IAAA,GAAQ,OAAA,CAAQ,IAAA,EAAM,IAAA,IAAiC,IAAA;AAE7D,EAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,IACZ,OAAO;AAAA,MACL,UAAA;AAAA,MACA,IAAA;AAAA,MACA,eAAA,EAAiB,CAAC,CAAC,IAAA;AAAA,MACnB,SAAS,OAAA,CAAQ,SAAA;AAAA,MACjB,gBAAgB,YAAY;AAC1B,QAAA,MAAM,QAAQ,OAAA,EAAQ;AAAA,MACxB,CAAA;AAAA,MACA,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,IAAA,EAAM,QAAQ,SAAA,EAAW,OAAA,CAAQ,SAAS,OAAO;AAAA,GAChE;AAEA,EAAA,uBAAO,KAAA,CAAA,aAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,SAAe,QAAS,CAAA;AACvD;AAEO,SAAS,cAAA,GAAmC;AACjD,EAAA,MAAM,GAAA,GAAM,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,mEAAqC,CAAA;AAAA,EACvD;AACA,EAAA,OAAO,GAAA;AACT","file":"chunk-LKBIVQBT.mjs","sourcesContent":["'use client';\n\nimport React, { createContext, useContext, useMemo } from 'react';\nimport type { Sa2kitAuthClient } from '../react';\nimport { useAuthActions, type UseAuthActionsReturn } from '../hooks/useAuthActions';\n\nexport type AuthUser = {\n id: string;\n email?: string;\n name?: string;\n phoneNumber?: string | null;\n role?: string;\n image?: string | null;\n [key: string]: unknown;\n};\n\nexport type AuthContextValue = UseAuthActionsReturn & {\n authClient: Sa2kitAuthClient;\n user: AuthUser | null;\n isAuthenticated: boolean;\n loading: boolean;\n refreshSession: () => Promise<void>;\n};\n\nconst AuthContext = createContext<AuthContextValue | null>(null);\n\nexport type AuthProviderProps = {\n authClient: Sa2kitAuthClient;\n children: React.ReactNode;\n};\n\nexport function AuthProvider({ authClient, children }: AuthProviderProps) {\n const session = authClient.useSession();\n const actions = useAuthActions(authClient);\n\n const user = (session.data?.user as AuthUser | undefined) ?? null;\n\n const value = useMemo<AuthContextValue>(\n () => ({\n authClient,\n user,\n isAuthenticated: !!user,\n loading: session.isPending,\n refreshSession: async () => {\n await session.refetch();\n },\n ...actions,\n }),\n [authClient, user, session.isPending, session.refetch, actions],\n );\n\n return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;\n}\n\nexport function useAuthContext(): AuthContextValue {\n const ctx = useContext(AuthContext);\n if (!ctx) {\n throw new Error('useAuthContext 必须在 AuthProvider 内使用');\n }\n return ctx;\n}\n"]}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ // src/common/auth/components/utils.ts
4
+ function validatePhoneNumber(phone) {
5
+ return /^1[3-9]\d{9}$/.test(phone.trim());
6
+ }
7
+ function validatePassword(password) {
8
+ if (!password) return { valid: false, message: "\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A" };
9
+ if (password.length < 6) return { valid: false, message: "\u5BC6\u7801\u957F\u5EA6\u81F3\u5C11 6 \u4F4D" };
10
+ return { valid: true };
11
+ }
12
+ function validateEmail(email) {
13
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email.trim());
14
+ }
15
+ function getAuthClientError(result, fallback) {
16
+ const r = result;
17
+ if (!r?.error) return null;
18
+ return r.error.message ?? r.error.statusText ?? fallback;
19
+ }
20
+ function errorMessage(error, fallback) {
21
+ if (error instanceof Error && error.message) return error.message;
22
+ if (typeof error === "string") return error;
23
+ return fallback;
24
+ }
25
+
26
+ exports.errorMessage = errorMessage;
27
+ exports.getAuthClientError = getAuthClientError;
28
+ exports.validateEmail = validateEmail;
29
+ exports.validatePassword = validatePassword;
30
+ exports.validatePhoneNumber = validatePhoneNumber;
31
+ //# sourceMappingURL=chunk-MIDXG6LS.js.map
32
+ //# sourceMappingURL=chunk-MIDXG6LS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/components/utils.ts"],"names":[],"mappings":";;;AACO,SAAS,oBAAoB,KAAA,EAAwB;AAC1D,EAAA,OAAO,eAAA,CAAgB,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,CAAA;AAC1C;AAEO,SAAS,iBAAiB,QAAA,EAAwD;AACvF,EAAA,IAAI,CAAC,QAAA,EAAU,OAAO,EAAE,KAAA,EAAO,KAAA,EAAO,SAAS,sCAAA,EAAS;AACxD,EAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG,OAAO,EAAE,KAAA,EAAO,KAAA,EAAO,SAAS,+CAAA,EAAa;AACtE,EAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AACvB;AAEO,SAAS,cAAc,KAAA,EAAwB;AACpD,EAAA,OAAO,4BAAA,CAA6B,IAAA,CAAK,KAAA,CAAM,IAAA,EAAM,CAAA;AACvD;AAOO,SAAS,kBAAA,CAAmB,QAAiB,QAAA,EAAiC;AACnF,EAAA,MAAM,CAAA,GAAI,MAAA;AACV,EAAA,IAAI,CAAC,CAAA,EAAG,KAAA,EAAO,OAAO,IAAA;AACtB,EAAA,OAAO,CAAA,CAAE,KAAA,CAAM,OAAA,IAAW,CAAA,CAAE,MAAM,UAAA,IAAc,QAAA;AAClD;AAEO,SAAS,YAAA,CAAa,OAAgB,QAAA,EAA0B;AACrE,EAAA,IAAI,KAAA,YAAiB,KAAA,IAAS,KAAA,CAAM,OAAA,SAAgB,KAAA,CAAM,OAAA;AAC1D,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,OAAO,QAAA;AACT","file":"chunk-MIDXG6LS.js","sourcesContent":["/** 中国大陆手机号 */\nexport function validatePhoneNumber(phone: string): boolean {\n return /^1[3-9]\\d{9}$/.test(phone.trim());\n}\n\nexport function validatePassword(password: string): { valid: boolean; message?: string } {\n if (!password) return { valid: false, message: '密码不能为空' };\n if (password.length < 6) return { valid: false, message: '密码长度至少 6 位' };\n return { valid: true };\n}\n\nexport function validateEmail(email: string): boolean {\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email.trim());\n}\n\ntype AuthClientResult = {\n error?: { message?: string; statusText?: string } | null;\n data?: unknown;\n};\n\nexport function getAuthClientError(result: unknown, fallback: string): string | null {\n const r = result as AuthClientResult | null | undefined;\n if (!r?.error) return null;\n return r.error.message ?? r.error.statusText ?? fallback;\n}\n\nexport function errorMessage(error: unknown, fallback: string): string {\n if (error instanceof Error && error.message) return error.message;\n if (typeof error === 'string') return error;\n return fallback;\n}\n"]}
@@ -0,0 +1,42 @@
1
+ // src/request/adapters/miniapp-adapter.ts
2
+ var MiniappRequestAdapter = class {
3
+ constructor(taro) {
4
+ if (!taro) {
5
+ throw new Error("MiniappRequestAdapter requires Taro instance");
6
+ }
7
+ this.taro = taro;
8
+ }
9
+ async request(config) {
10
+ const { url, method = "GET", headers = {}, body, params } = config;
11
+ try {
12
+ const response = await this.taro.request({
13
+ url,
14
+ method,
15
+ header: {
16
+ "Content-Type": "application/json",
17
+ ...headers
18
+ },
19
+ data: method === "GET" ? params : body
20
+ });
21
+ const data = response.data;
22
+ if (response.statusCode >= 200 && response.statusCode < 300) {
23
+ return data;
24
+ } else {
25
+ return {
26
+ success: false,
27
+ error: data.error || "\u8BF7\u6C42\u5931\u8D25: " + response.statusCode
28
+ };
29
+ }
30
+ } catch (error) {
31
+ console.error("[MiniappRequestAdapter] request error:", error);
32
+ return {
33
+ success: false,
34
+ error: error instanceof Error ? error.message : "\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25"
35
+ };
36
+ }
37
+ }
38
+ };
39
+
40
+ export { MiniappRequestAdapter };
41
+ //# sourceMappingURL=chunk-MWSAH7ZG.mjs.map
42
+ //# sourceMappingURL=chunk-MWSAH7ZG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/request/adapters/miniapp-adapter.ts"],"names":[],"mappings":";AAgCO,IAAM,wBAAN,MAAsD;AAAA,EAG3D,YAAY,IAAA,EAAyB;AACnC,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,IAChE;AACA,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AAAA,EACd;AAAA,EAEA,MAAM,QAAiB,MAAA,EAAmC;AACxD,IAAA,MAAM,EAAE,KAAK,MAAA,GAAS,KAAA,EAAO,UAAU,EAAC,EAAG,IAAA,EAAM,MAAA,EAAO,GAAI,MAAA;AAE5D,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ;AAAA,QACvC,GAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,cAAA,EAAgB,kBAAA;AAAA,UAChB,GAAG;AAAA,SACL;AAAA,QACA,IAAA,EAAM,MAAA,KAAW,KAAA,GAAQ,MAAA,GAAS;AAAA,OACnC,CAAA;AAED,MAAA,MAAM,OAAO,QAAA,CAAS,IAAA;AAGtB,MAAA,IAAI,QAAA,CAAS,UAAA,IAAc,GAAA,IAAO,QAAA,CAAS,aAAa,GAAA,EAAK;AAC3D,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,KAAA;AAAA,UACT,KAAA,EAAO,IAAA,CAAK,KAAA,IAAS,4BAAA,GAAY,QAAA,CAAS;AAAA,SAC5C;AAAA,MACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,0CAA0C,KAAK,CAAA;AAC7D,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,KAAA,EAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU;AAAA,OAClD;AAAA,IACF;AAAA,EACF;AACF","file":"chunk-MWSAH7ZG.mjs","sourcesContent":["import type { RequestAdapter, RequestConfig } from '../types/types';\n\n/**\n * Taro Request 接口定义\n * 兼容 @tarojs/taro request API\n */\ninterface TaroRequestStatic {\n request<T = any>(options: {\n url: string;\n method?: string;\n header?: Record<string, string>;\n data?: any;\n }): Promise<{\n statusCode: number;\n data: T;\n }>;\n}\n\n/**\n * Miniapp 平台请求适配器\n * 基于 Taro.request API\n *\n * 使用方式:\n * ```typescript\n * import Taro from '@tarojs/taro'\n * const adapter = new MiniappRequestAdapter(Taro)\n * ```\n *\n * 适用平台:\n * - WeChat Miniapp\n * - Other Taro-based miniapps\n */\nexport class MiniappRequestAdapter implements RequestAdapter {\n private taro: TaroRequestStatic;\n\n constructor(taro: TaroRequestStatic) {\n if (!taro) {\n throw new Error('MiniappRequestAdapter requires Taro instance');\n }\n this.taro = taro;\n }\n\n async request<T = any>(config: RequestConfig): Promise<T> {\n const { url, method = 'GET', headers = {}, body, params } = config;\n\n try {\n const response = await this.taro.request({\n url,\n method: method as any,\n header: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n data: method === 'GET' ? params : body,\n });\n\n const data = response.data as any;\n\n // 统一返回格式\n if (response.statusCode >= 200 && response.statusCode < 300) {\n return data;\n } else {\n return {\n success: false,\n error: data.error || '请求失败: ' + (response.statusCode),\n } as T;\n }\n } catch (error) {\n console.error('[MiniappRequestAdapter] request error:', error);\n return {\n success: false,\n error: error instanceof Error ? error.message : '网络请求失败',\n } as T;\n }\n }\n}\n\n"]}
@@ -1,6 +1,9 @@
1
1
  import { useState, useCallback, useEffect } from 'react';
2
2
 
3
- // src/common/auth/hooks/useAuth.ts
3
+ // src/common/auth/hooks/useSession.ts
4
+ function useSession(authClient) {
5
+ return authClient.useSession();
6
+ }
4
7
  function useAuth(apiClient) {
5
8
  const [user, setUser] = useState(null);
6
9
  const [isLoggedIn, setIsLoggedIn] = useState(false);
@@ -178,6 +181,6 @@ function useAuthForm(initialValues) {
178
181
  };
179
182
  }
180
183
 
181
- export { useAuth, useAuthForm };
182
- //# sourceMappingURL=chunk-HCI6JQOU.mjs.map
183
- //# sourceMappingURL=chunk-HCI6JQOU.mjs.map
184
+ export { useAuth, useAuthForm, useSession };
185
+ //# sourceMappingURL=chunk-MZOGYD4N.mjs.map
186
+ //# sourceMappingURL=chunk-MZOGYD4N.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/auth/hooks/useSession.ts","../src/common/auth/hooks/useAuth.ts"],"names":[],"mappings":"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","file":"chunk-MZOGYD4N.mjs","sourcesContent":["'use client';\n\nimport type { Sa2kitAuthClient } from '../react';\n\n/**\n * 薄封装 Better Auth React `useSession`\n */\nexport function useSession(authClient: Sa2kitAuthClient) {\n return authClient.useSession();\n}\n\nexport type UseSessionReturn = ReturnType<typeof useSession>;\n","'use client';\n\nimport { useState, useEffect, useCallback } from 'react';\nimport type { User, IAuthClient as BaseApiClient, AuthResult, UseAuthReturn } from '../types';\n\nexport type { User, BaseApiClient, AuthResult, UseAuthReturn };\n\nexport function useAuth(apiClient: BaseApiClient): UseAuthReturn {\n const [user, setUser] = useState<User | null>(null);\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n const [loading, setLoading] = useState(false);\n const [checkingAuth, setCheckingAuth] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n /**\n * 检查认证状态\n */\n const checkAuthStatus = useCallback(async () => {\n try {\n setCheckingAuth(true);\n setError(null);\n\n const isAuth = await apiClient.isAuthenticated();\n\n if (isAuth) {\n // 验证 token 并获取用户信息\n const response = await apiClient.getCurrentUser();\n\n if (response.success && response.data) {\n setUser(response.data);\n setIsLoggedIn(true);\n } else {\n // Token 无效,清除登录状态\n await apiClient.clearUserData();\n setUser(null);\n setIsLoggedIn(false);\n }\n } else {\n setUser(null);\n setIsLoggedIn(false);\n }\n } catch (err) {\n console.error('检查登录状态失败:', err);\n setError(err instanceof Error ? err.message : '检查登录状态失败');\n setUser(null);\n setIsLoggedIn(false);\n } finally {\n setCheckingAuth(false);\n }\n }, [apiClient]);\n\n /**\n * 用户登录\n */\n const login = useCallback(\n async (email: string, password: string): Promise<AuthResult> => {\n setLoading(true);\n setError(null);\n\n try {\n const response = await apiClient.login(email, password);\n\n if (response.success && response.data) {\n setUser(response.data.user);\n setIsLoggedIn(true);\n return { success: true };\n } else {\n const errorMsg = response.error || '登录失败';\n setError(errorMsg);\n return { success: false, error: errorMsg };\n }\n } catch (err) {\n const errorMsg = err instanceof Error ? err.message : '登录失败,请重试';\n setError(errorMsg);\n return { success: false, error: errorMsg };\n } finally {\n setLoading(false);\n }\n },\n [apiClient]\n );\n\n /**\n * 用户注册\n */\n const register = useCallback(\n async (email: string, password: string, username: string): Promise<AuthResult> => {\n setLoading(true);\n setError(null);\n\n try {\n const response = await apiClient.register(email, password, username);\n\n if (response.success && response.data) {\n setUser(response.data.user);\n setIsLoggedIn(true);\n return { success: true };\n } else {\n const errorMsg = response.error || '注册失败';\n setError(errorMsg);\n return { success: false, error: errorMsg };\n }\n } catch (err) {\n const errorMsg = err instanceof Error ? err.message : '注册失败,请重试';\n setError(errorMsg);\n return { success: false, error: errorMsg };\n } finally {\n setLoading(false);\n }\n },\n [apiClient]\n );\n\n /**\n * 用户登出\n */\n const logout = useCallback(async () => {\n setLoading(true);\n setError(null);\n\n try {\n await apiClient.logout();\n setUser(null);\n setIsLoggedIn(false);\n } catch (err) {\n console.error('登出失败:', err);\n setError(err instanceof Error ? err.message : '登出失败');\n // 即使登出失败,也清除本地状态\n setUser(null);\n setIsLoggedIn(false);\n } finally {\n setLoading(false);\n }\n }, [apiClient]);\n\n /**\n * 清除错误信息\n */\n const clearError = useCallback(() => {\n setError(null);\n }, []);\n\n // 组件挂载时检查认证状态\n useEffect(() => {\n checkAuthStatus();\n }, [checkAuthStatus]);\n\n return {\n // 状态\n user,\n isLoggedIn,\n loading,\n checkingAuth,\n error,\n\n // 操作方法\n login,\n register,\n logout,\n refresh: checkAuthStatus,\n clearError,\n };\n}\n\n/**\n * 表单验证 Hook\n *\n * @example\n * ```typescript\n * const { values, errors, handleChange, handleBlur, validate } = useAuthForm({\n * email: '',\n * password: ''\n * })\n * ```\n */\nexport function useAuthForm<T extends Record<string, any>>(initialValues: T) {\n const [values, setValues] = useState<T>(initialValues);\n const [errors, setErrors] = useState<Partial<Record<keyof T, string>>>({});\n const [touched, setTouched] = useState<Partial<Record<keyof T, boolean>>>({});\n\n const handleChange = useCallback(\n (field: keyof T, value: any) => {\n setValues((prev: T) => ({ ...prev, [field]: value }));\n // 清除该字段的错误\n if (errors[field]) {\n setErrors((prev: Partial<Record<keyof T, string>>) => {\n const newErrors = { ...prev };\n delete newErrors[field];\n return newErrors;\n });\n }\n },\n [errors]\n );\n\n const handleBlur = useCallback((field: keyof T) => {\n setTouched((prev: Partial<Record<keyof T, boolean>>) => ({ ...prev, [field]: true }));\n }, []);\n\n const validate = useCallback(\n (validationRules: Partial<Record<keyof T, (value: any) => string | undefined>>) => {\n const newErrors: Partial<Record<keyof T, string>> = {};\n\n Object.keys(validationRules).forEach((key) => {\n const field = key as keyof T;\n const rule = validationRules[field];\n if (rule) {\n const error = rule(values[field]);\n if (error) {\n newErrors[field] = error;\n }\n }\n });\n\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n },\n [values]\n );\n\n const reset = useCallback(() => {\n setValues(initialValues);\n setErrors({});\n setTouched({});\n }, [initialValues]);\n\n return {\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n validate,\n reset,\n setValues,\n setErrors,\n };\n}\n\n"]}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var chunkS6YSGVWD_js = require('./chunk-S6YSGVWD.js');
4
+ var chunkCAYOQDBR_js = require('./chunk-CAYOQDBR.js');
5
+ var chunkUCOE6SET_js = require('./chunk-UCOE6SET.js');
6
+ var chunkXJ7ZAGC5_js = require('./chunk-XJ7ZAGC5.js');
7
+ var chunkNSBPE2FW_js = require('./chunk-NSBPE2FW.js');
8
+
9
+ // src/common/storage/index.ts
10
+ var storage_exports = {};
11
+ chunkNSBPE2FW_js.__export(storage_exports, {
12
+ ElectronStorageAdapter: () => chunkUCOE6SET_js.ElectronStorageAdapter,
13
+ MiniAppStorageAdapter: () => chunkS6YSGVWD_js.MiniAppStorageAdapter,
14
+ ReactNativeStorageAdapter: () => chunkCAYOQDBR_js.ReactNativeStorageAdapter,
15
+ WebStorageAdapter: () => chunkXJ7ZAGC5_js.WebStorageAdapter,
16
+ useAsyncStorage: () => chunkS6YSGVWD_js.useAsyncStorage,
17
+ useElectronStorage: () => chunkS6YSGVWD_js.useElectronStorage,
18
+ useLocalStorage: () => chunkS6YSGVWD_js.useLocalStorage,
19
+ useStorage: () => chunkS6YSGVWD_js.useStorage,
20
+ useTaroStorage: () => chunkS6YSGVWD_js.useTaroStorage
21
+ });
22
+
23
+ exports.storage_exports = storage_exports;
24
+ //# sourceMappingURL=chunk-NDGHXVGS.js.map
25
+ //# sourceMappingURL=chunk-NDGHXVGS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/storage/index.ts"],"names":["__export","ElectronStorageAdapter","MiniAppStorageAdapter","ReactNativeStorageAdapter","WebStorageAdapter","useAsyncStorage","useElectronStorage","useLocalStorage","useStorage","useTaroStorage"],"mappings":";;;;;;;;;AAAA,IAAA,eAAA,GAAA;AAAAA,yBAAA,CAAA,eAAA,EAAA;AAAA,EAAA,sBAAA,EAAA,MAAAC,uCAAA;AAAA,EAAA,qBAAA,EAAA,MAAAC,sCAAA;AAAA,EAAA,yBAAA,EAAA,MAAAC,0CAAA;AAAA,EAAA,iBAAA,EAAA,MAAAC,kCAAA;AAAA,EAAA,eAAA,EAAA,MAAAC,gCAAA;AAAA,EAAA,kBAAA,EAAA,MAAAC,mCAAA;AAAA,EAAA,eAAA,EAAA,MAAAC,gCAAA;AAAA,EAAA,UAAA,EAAA,MAAAC,2BAAA;AAAA,EAAA,cAAA,EAAA,MAAAC;AAAA,CAAA,CAAA","file":"chunk-NDGHXVGS.js","sourcesContent":["/**\n * @package sa2kit/common/storage\n */\nexport * from '../../storage';\n"]}
@@ -0,0 +1,76 @@
1
+ import { __require } from './chunk-MAI35PU6.mjs';
2
+
3
+ // src/storage/adapters/react-native-adapter.ts
4
+ var AsyncStorage = null;
5
+ try {
6
+ AsyncStorage = __require("@react-native-async-storage/async-storage").default;
7
+ } catch (e) {
8
+ }
9
+ var ReactNativeStorageAdapter = class {
10
+ constructor() {
11
+ this.listeners = /* @__PURE__ */ new Map();
12
+ }
13
+ async getItem(key) {
14
+ if (!AsyncStorage) return null;
15
+ try {
16
+ return await AsyncStorage.getItem(key);
17
+ } catch (error) {
18
+ console.error('[ReactNativeStorage] Error getting item "' + key + '":', error);
19
+ return null;
20
+ }
21
+ }
22
+ async setItem(key, value) {
23
+ if (!AsyncStorage) {
24
+ throw new Error("AsyncStorage is not available");
25
+ }
26
+ try {
27
+ await AsyncStorage.setItem(key, value);
28
+ this.notifyListeners(key, value);
29
+ } catch (error) {
30
+ console.error('[ReactNativeStorage] Error setting item "' + key + '":', error);
31
+ throw error;
32
+ }
33
+ }
34
+ async removeItem(key) {
35
+ if (!AsyncStorage) {
36
+ throw new Error("AsyncStorage is not available");
37
+ }
38
+ try {
39
+ await AsyncStorage.removeItem(key);
40
+ this.notifyListeners(key, null);
41
+ } catch (error) {
42
+ console.error('[ReactNativeStorage] Error removing item "' + key + '":', error);
43
+ throw error;
44
+ }
45
+ }
46
+ async clear() {
47
+ if (!AsyncStorage) {
48
+ throw new Error("AsyncStorage is not available");
49
+ }
50
+ try {
51
+ await AsyncStorage.clear();
52
+ } catch (error) {
53
+ console.error("[ReactNativeStorage] Error clearing storage:", error);
54
+ throw error;
55
+ }
56
+ }
57
+ addChangeListener(callback) {
58
+ if (!this.listeners.has("*")) {
59
+ this.listeners.set("*", /* @__PURE__ */ new Set());
60
+ }
61
+ this.listeners.get("*").add(callback);
62
+ return () => {
63
+ this.listeners.get("*")?.delete(callback);
64
+ };
65
+ }
66
+ notifyListeners(key, value) {
67
+ const globalListeners = this.listeners.get("*");
68
+ if (globalListeners) {
69
+ globalListeners.forEach((callback) => callback(key, value));
70
+ }
71
+ }
72
+ };
73
+
74
+ export { ReactNativeStorageAdapter };
75
+ //# sourceMappingURL=chunk-Q5VFBPMG.mjs.map
76
+ //# sourceMappingURL=chunk-Q5VFBPMG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/storage/adapters/react-native-adapter.ts"],"names":[],"mappings":";;;AAOA,IAAI,YAAA,GAAoB,IAAA;AAExB,IAAI;AACF,EAAA,YAAA,GAAe,SAAA,CAAQ,2CAA2C,CAAA,CAAE,OAAA;AACtE,CAAA,CAAA,OAAS,CAAA,EAAG;AAGZ;AAEO,IAAM,4BAAN,MAA0D;AAAA,EAA1D,WAAA,GAAA;AACL,IAAA,IAAA,CAAQ,SAAA,uBAA+E,GAAA,EAAI;AAAA,EAAA;AAAA,EAE3F,MAAM,QAAQ,GAAA,EAAqC;AACjD,IAAA,IAAI,CAAC,cAAc,OAAO,IAAA;AAE1B,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,YAAA,CAAa,OAAA,CAAQ,GAAG,CAAA;AAAA,IACvC,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,2CAAA,GAA+C,GAAA,GAAO,IAAA,EAAM,KAAK,CAAA;AAC/E,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,OAAA,CAAQ,GAAA,EAAa,KAAA,EAA8B;AACvD,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,IACjD;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK,KAAK,CAAA;AACrC,MAAA,IAAA,CAAK,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA,IACjC,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,2CAAA,GAA+C,GAAA,GAAO,IAAA,EAAM,KAAK,CAAA;AAC/E,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,WAAW,GAAA,EAA4B;AAC3C,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,IACjD;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,YAAA,CAAa,WAAW,GAAG,CAAA;AACjC,MAAA,IAAA,CAAK,eAAA,CAAgB,KAAK,IAAI,CAAA;AAAA,IAChC,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,4CAAA,GAAgD,GAAA,GAAO,IAAA,EAAM,KAAK,CAAA;AAChF,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,KAAA,GAAuB;AAC3B,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,IACjD;AAEA,IAAA,IAAI;AACF,MAAA,MAAM,aAAa,KAAA,EAAM;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,gDAAgD,KAAK,CAAA;AACnE,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA,EAEA,kBAAkB,QAAA,EAAmE;AAEnF,IAAA,IAAI,CAAC,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA,EAAG;AAC5B,MAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAA,kBAAK,IAAI,KAAK,CAAA;AAAA,IACnC;AAEA,IAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA,CAAG,IAAI,QAAQ,CAAA;AAGrC,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA,EAAG,OAAO,QAAQ,CAAA;AAAA,IAC1C,CAAA;AAAA,EACF;AAAA,EAEQ,eAAA,CAAgB,KAAa,KAAA,EAA4B;AAC/D,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,GAAG,CAAA;AAC9C,IAAA,IAAI,eAAA,EAAiB;AACnB,MAAA,eAAA,CAAgB,QAAQ,CAAC,QAAA,KAAa,QAAA,CAAS,GAAA,EAAK,KAAK,CAAC,CAAA;AAAA,IAC5D;AAAA,EACF;AACF","file":"chunk-Q5VFBPMG.mjs","sourcesContent":["/**\n * React Native 平台存储适配器 (AsyncStorage)\n */\n\nimport type { StorageAdapter } from '../types';\n\n// 动态导入 AsyncStorage(避免在非 RN 环境报错)\nlet AsyncStorage: any = null;\n\ntry {\n AsyncStorage = require('@react-native-async-storage/async-storage').default;\n} catch (e) {\n // AsyncStorage 不可用(非 React Native 环境)\n // 这是正常的,不需要警告\n}\n\nexport class ReactNativeStorageAdapter implements StorageAdapter {\n private listeners: Map<string, Set<(key: string, value: string | null) => void>> = new Map();\n\n async getItem(key: string): Promise<string | null> {\n if (!AsyncStorage) return null;\n\n try {\n return await AsyncStorage.getItem(key);\n } catch (error) {\n console.error('[ReactNativeStorage] Error getting item \"' + (key) + '\":', error);\n return null;\n }\n }\n\n async setItem(key: string, value: string): Promise<void> {\n if (!AsyncStorage) {\n throw new Error('AsyncStorage is not available');\n }\n\n try {\n await AsyncStorage.setItem(key, value);\n this.notifyListeners(key, value);\n } catch (error) {\n console.error('[ReactNativeStorage] Error setting item \"' + (key) + '\":', error);\n throw error;\n }\n }\n\n async removeItem(key: string): Promise<void> {\n if (!AsyncStorage) {\n throw new Error('AsyncStorage is not available');\n }\n\n try {\n await AsyncStorage.removeItem(key);\n this.notifyListeners(key, null);\n } catch (error) {\n console.error('[ReactNativeStorage] Error removing item \"' + (key) + '\":', error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n if (!AsyncStorage) {\n throw new Error('AsyncStorage is not available');\n }\n\n try {\n await AsyncStorage.clear();\n } catch (error) {\n console.error('[ReactNativeStorage] Error clearing storage:', error);\n throw error;\n }\n }\n\n addChangeListener(callback: (key: string, value: string | null) => void): () => void {\n // React Native 没有原生的跨实例存储监听,我们使用内存中的监听器\n if (!this.listeners.has('*')) {\n this.listeners.set('*', new Set());\n }\n\n this.listeners.get('*')!.add(callback);\n\n // 返回清理函数\n return () => {\n this.listeners.get('*')?.delete(callback);\n };\n }\n\n private notifyListeners(key: string, value: string | null): void {\n const globalListeners = this.listeners.get('*');\n if (globalListeners) {\n globalListeners.forEach((callback) => callback(key, value));\n }\n }\n}\n\n"]}