sa2kit 2.0.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{UniversalFileService-GsP6D3Rc.d.ts → UniversalFileService-CC4d3wkc.d.ts} +2 -2
- package/dist/{UniversalFileService-BpvbZitV.d.mts → UniversalFileService-CzAE_G4V.d.mts} +2 -2
- package/dist/ai/llm/ui/miniapp/index.d.mts +2 -2
- package/dist/ai/llm/ui/miniapp/index.d.ts +2 -2
- package/dist/ai/llm/ui/rn/index.d.mts +2 -2
- package/dist/ai/llm/ui/rn/index.d.ts +2 -2
- package/dist/ai/llm/ui/web/index.d.mts +3 -3
- package/dist/ai/llm/ui/web/index.d.ts +3 -3
- package/dist/analytics/index.d.mts +1 -1
- package/dist/analytics/index.d.ts +1 -1
- package/dist/business/index.d.mts +1 -5
- package/dist/business/index.d.ts +1 -5
- package/dist/business/index.js +34 -1135
- package/dist/business/index.js.map +1 -1
- package/dist/business/index.mjs +5 -1105
- package/dist/business/index.mjs.map +1 -1
- package/dist/calendar/routes/index.d.mts +74 -1
- package/dist/calendar/routes/index.d.ts +74 -1
- package/dist/calendar/routes/index.js +186 -97
- package/dist/calendar/routes/index.js.map +1 -1
- package/dist/calendar/routes/index.mjs +178 -99
- package/dist/calendar/routes/index.mjs.map +1 -1
- package/dist/{chunk-RJP2BRJD.mjs → chunk-4OOANEJV.mjs} +2 -2
- package/dist/{chunk-RJP2BRJD.mjs.map → chunk-4OOANEJV.mjs.map} +1 -1
- package/dist/chunk-5FUAQLGC.mjs +14 -0
- package/dist/chunk-5FUAQLGC.mjs.map +1 -0
- package/dist/{chunk-IIVNHQEI.mjs → chunk-5GBDDXYL.mjs} +4 -3
- package/dist/chunk-5GBDDXYL.mjs.map +1 -0
- package/dist/{chunk-S732H246.js → chunk-6PMXAK7F.js} +2 -2
- package/dist/{chunk-S732H246.js.map → chunk-6PMXAK7F.js.map} +1 -1
- package/dist/chunk-6YLCRWKM.mjs +8 -0
- package/dist/chunk-6YLCRWKM.mjs.map +1 -0
- package/dist/chunk-CAYOQDBR.js +78 -0
- package/dist/chunk-CAYOQDBR.js.map +1 -0
- package/dist/{chunk-PTMSDNGO.mjs → chunk-CX2GHCAI.mjs} +4 -75
- package/dist/chunk-CX2GHCAI.mjs.map +1 -0
- package/dist/chunk-EBHPTFG6.mjs +82 -0
- package/dist/chunk-EBHPTFG6.mjs.map +1 -0
- package/dist/chunk-HQLKOXG7.js +16 -0
- package/dist/chunk-HQLKOXG7.js.map +1 -0
- package/dist/chunk-IS7O4LPI.js +146 -0
- package/dist/chunk-IS7O4LPI.js.map +1 -0
- package/dist/chunk-LGHUCQIU.js +93 -0
- package/dist/chunk-LGHUCQIU.js.map +1 -0
- package/dist/chunk-LKBIVQBT.mjs +34 -0
- package/dist/chunk-LKBIVQBT.mjs.map +1 -0
- package/dist/chunk-MIDXG6LS.js +32 -0
- package/dist/chunk-MIDXG6LS.js.map +1 -0
- package/dist/chunk-NDGHXVGS.js +25 -0
- package/dist/chunk-NDGHXVGS.js.map +1 -0
- package/dist/chunk-PA4ELVGI.js +20 -0
- package/dist/chunk-PA4ELVGI.js.map +1 -0
- package/dist/chunk-Q5VFBPMG.mjs +76 -0
- package/dist/chunk-Q5VFBPMG.mjs.map +1 -0
- package/dist/{chunk-WZDTNDYR.js → chunk-QSKLQX6H.js} +11 -11
- package/dist/{chunk-WZDTNDYR.js.map → chunk-QSKLQX6H.js.map} +1 -1
- package/dist/{chunk-QQ2WFYOD.js → chunk-S6YSGVWD.js} +4 -76
- package/dist/chunk-S6YSGVWD.js.map +1 -0
- package/dist/chunk-TNJ6LYX7.mjs +18 -0
- package/dist/chunk-TNJ6LYX7.mjs.map +1 -0
- package/dist/chunk-TTYCVBIQ.mjs +144 -0
- package/dist/chunk-TTYCVBIQ.mjs.map +1 -0
- package/dist/chunk-VJNDOYEC.js +41 -0
- package/dist/chunk-VJNDOYEC.js.map +1 -0
- package/dist/{chunk-J77KR2EV.mjs → chunk-WJ7IMUEJ.mjs} +3 -3
- package/dist/{chunk-J77KR2EV.mjs.map → chunk-WJ7IMUEJ.mjs.map} +1 -1
- package/dist/chunk-YTGUIRRH.js +10 -0
- package/dist/chunk-YTGUIRRH.js.map +1 -0
- package/dist/chunk-ZF7DKR5A.mjs +26 -0
- package/dist/chunk-ZF7DKR5A.mjs.map +1 -0
- package/dist/common/auth/client/index.d.mts +3209 -0
- package/dist/common/auth/client/index.d.ts +3209 -0
- package/dist/common/auth/client/index.js +13 -0
- package/dist/common/auth/client/index.mjs +4 -0
- package/dist/common/auth/components/index.d.mts +140 -0
- package/dist/common/auth/components/index.d.ts +140 -0
- package/dist/common/auth/components/index.js +899 -0
- package/dist/common/auth/components/index.js.map +1 -0
- package/dist/common/auth/components/index.mjs +875 -0
- package/dist/common/auth/components/index.mjs.map +1 -0
- package/dist/common/auth/hooks/index.d.mts +48 -0
- package/dist/common/auth/hooks/index.d.ts +48 -0
- package/dist/common/auth/hooks/index.js +19 -0
- package/dist/common/auth/hooks/index.mjs +6 -0
- package/dist/common/auth/index.d.mts +11 -7
- package/dist/common/auth/index.d.ts +11 -7
- package/dist/common/auth/index.js +7 -19
- package/dist/common/auth/index.mjs +3 -3
- package/dist/common/auth/react/index.d.mts +3056 -0
- package/dist/common/auth/react/index.d.ts +3056 -0
- package/dist/common/auth/react/index.js +31 -0
- package/dist/common/auth/react/index.js.map +1 -0
- package/dist/common/auth/react/index.mjs +21 -0
- package/dist/common/auth/react/index.mjs.map +1 -0
- package/dist/common/auth/rn/index.d.mts +3122 -0
- package/dist/common/auth/rn/index.d.ts +3122 -0
- package/dist/common/auth/rn/index.js +316 -0
- package/dist/common/auth/rn/index.js.map +1 -0
- package/dist/common/auth/rn/index.mjs +298 -0
- package/dist/common/auth/rn/index.mjs.map +1 -0
- package/dist/common/auth/schema/index.d.mts +1479 -0
- package/dist/common/auth/schema/index.d.ts +1479 -0
- package/dist/common/auth/schema/index.js +49 -0
- package/dist/common/auth/schema/index.mjs +4 -0
- package/dist/common/auth/server/index.d.mts +81 -25
- package/dist/common/auth/server/index.d.ts +81 -25
- package/dist/common/auth/server/index.js +146 -98
- package/dist/common/auth/server/index.js.map +1 -1
- package/dist/common/auth/server/index.mjs +125 -5
- package/dist/common/auth/server/index.mjs.map +1 -1
- package/dist/common/auth/services/index.d.mts +14 -0
- package/dist/common/auth/services/index.d.ts +14 -0
- package/dist/common/auth/services/index.js +20 -0
- package/dist/common/auth/services/index.js.map +1 -0
- package/dist/common/auth/services/index.mjs +13 -0
- package/dist/common/auth/services/index.mjs.map +1 -0
- package/dist/common/file/server/index.js +32 -32
- package/dist/common/file/server/index.mjs +3 -3
- package/dist/common/index.d.mts +13 -8
- package/dist/common/index.d.ts +13 -8
- package/dist/common/index.js +19 -18
- package/dist/common/index.mjs +8 -7
- package/dist/common/storage/index.js +13 -12
- package/dist/common/storage/index.mjs +3 -2
- package/dist/festivalCard/index.d.mts +3 -3
- package/dist/festivalCard/index.d.ts +3 -3
- package/dist/festivalCard/routes/index.d.mts +1 -1
- package/dist/festivalCard/routes/index.d.ts +1 -1
- package/dist/festivalCard/server/index.d.mts +2 -2
- package/dist/festivalCard/server/index.d.ts +2 -2
- package/dist/{festivalCardService-BFCRhJrq.d.ts → festivalCardService-B3GsnNpV.d.ts} +1 -1
- package/dist/{festivalCardService-GriR2VMc.d.mts → festivalCardService-CWhrLNE9.d.mts} +1 -1
- package/dist/i18n/index.d.mts +1 -1
- package/dist/i18n/index.d.ts +1 -1
- package/dist/imageCrop/index.d.mts +3 -3
- package/dist/imageCrop/index.d.ts +3 -3
- package/dist/index-Bd7cKF1j.d.mts +50 -0
- package/dist/{index-CLB80GCP.d.mts → index-D0cqaQEH.d.mts} +5 -5
- package/dist/{index-CLB80GCP.d.ts → index-D0cqaQEH.d.ts} +5 -5
- package/dist/index-DRQxtCDw.d.ts +50 -0
- package/dist/{index-1Ag7IBXN.d.ts → index-DZ5iJtNO.d.mts} +2 -44
- package/dist/{index-DdeZSeTJ.d.mts → index-DZ5iJtNO.d.ts} +2 -44
- package/dist/{index-BxZauNN_.d.ts → index-DoUo8IrU.d.mts} +8 -8
- package/dist/{index-BxZauNN_.d.mts → index-DoUo8IrU.d.ts} +8 -8
- package/dist/index.d.mts +6382 -105
- package/dist/index.d.ts +6382 -105
- package/dist/index.js +1037 -2616
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +976 -2555
- package/dist/index.mjs.map +1 -1
- package/dist/mmd/admin/index.d.mts +1 -1
- package/dist/mmd/admin/index.d.ts +1 -1
- package/dist/mmd/index.d.mts +1 -1
- package/dist/mmd/index.d.ts +1 -1
- package/dist/mmd/server/index.d.mts +3 -3
- package/dist/mmd/server/index.d.ts +3 -3
- package/dist/ossFile/server/index.js +32 -32
- package/dist/ossFile/server/index.mjs +3 -3
- package/dist/storage/index.js +12 -11
- package/dist/storage/index.mjs +2 -1
- package/dist/{types-DyG3ZV9V.d.mts → types-B6B210gX.d.mts} +1 -1
- package/dist/{types-DyG3ZV9V.d.ts → types-B6B210gX.d.ts} +1 -1
- package/dist/{types-BTiaMsBz.d.mts → types-Bdnte5EN.d.mts} +1 -1
- package/dist/{types-tQfupO6d.d.ts → types-Cs0CLvrH.d.mts} +1 -1
- package/dist/{types-tQfupO6d.d.mts → types-Cs0CLvrH.d.ts} +1 -1
- package/dist/{types-ERmJyjx8.d.ts → types-_rFX1atk.d.ts} +1 -1
- package/dist/universalExport/index.d.mts +3 -3
- package/dist/universalExport/index.d.ts +3 -3
- package/dist/universalFile/index.d.mts +5 -5
- package/dist/universalFile/index.d.ts +5 -5
- package/dist/universalFile/server/index.js +62 -62
- package/dist/universalFile/server/index.mjs +2 -2
- package/dist/useAuthActions-7S5dL7Oh.d.mts +77 -0
- package/dist/useAuthActions-7S5dL7Oh.d.ts +77 -0
- package/dist/vocaloidBooth/server/index.d.mts +3 -3
- package/dist/vocaloidBooth/server/index.d.ts +3 -3
- package/package.json +44 -111
- package/dist/auth/client/index.d.mts +0 -32
- package/dist/auth/client/index.d.ts +0 -32
- package/dist/auth/client/index.js +0 -21
- package/dist/auth/client/index.mjs +0 -4
- package/dist/auth/components/index.d.mts +0 -227
- package/dist/auth/components/index.d.ts +0 -227
- package/dist/auth/components/index.js +0 -327
- package/dist/auth/components/index.js.map +0 -1
- package/dist/auth/components/index.mjs +0 -319
- package/dist/auth/components/index.mjs.map +0 -1
- package/dist/auth/hooks/index.d.mts +0 -31
- package/dist/auth/hooks/index.d.ts +0 -31
- package/dist/auth/hooks/index.js +0 -17
- package/dist/auth/hooks/index.mjs +0 -4
- package/dist/auth/index.d.mts +0 -18
- package/dist/auth/index.d.ts +0 -18
- package/dist/auth/index.js +0 -151
- package/dist/auth/index.mjs +0 -10
- package/dist/auth/legacy/core/index.d.mts +0 -42
- package/dist/auth/legacy/core/index.d.ts +0 -42
- package/dist/auth/legacy/core/index.js +0 -242
- package/dist/auth/legacy/core/index.js.map +0 -1
- package/dist/auth/legacy/core/index.mjs +0 -226
- package/dist/auth/legacy/core/index.mjs.map +0 -1
- package/dist/auth/legacy/db/index.d.mts +0 -5
- package/dist/auth/legacy/db/index.d.ts +0 -5
- package/dist/auth/legacy/db/index.js +0 -261
- package/dist/auth/legacy/db/index.js.map +0 -1
- package/dist/auth/legacy/db/index.mjs +0 -250
- package/dist/auth/legacy/db/index.mjs.map +0 -1
- package/dist/auth/legacy/index.d.mts +0 -5
- package/dist/auth/legacy/index.d.ts +0 -5
- package/dist/auth/legacy/index.js +0 -1107
- package/dist/auth/legacy/index.js.map +0 -1
- package/dist/auth/legacy/index.mjs +0 -1086
- package/dist/auth/legacy/index.mjs.map +0 -1
- package/dist/auth/legacy/logic/index.d.mts +0 -9
- package/dist/auth/legacy/logic/index.d.ts +0 -9
- package/dist/auth/legacy/logic/index.js +0 -194
- package/dist/auth/legacy/logic/index.js.map +0 -1
- package/dist/auth/legacy/logic/index.mjs +0 -187
- package/dist/auth/legacy/logic/index.mjs.map +0 -1
- package/dist/auth/legacy/miniapp/index.d.mts +0 -5
- package/dist/auth/legacy/miniapp/index.d.ts +0 -5
- package/dist/auth/legacy/miniapp/index.js +0 -506
- package/dist/auth/legacy/miniapp/index.js.map +0 -1
- package/dist/auth/legacy/miniapp/index.mjs +0 -487
- package/dist/auth/legacy/miniapp/index.mjs.map +0 -1
- package/dist/auth/legacy/routes/index.d.mts +0 -53
- package/dist/auth/legacy/routes/index.d.ts +0 -53
- package/dist/auth/legacy/routes/index.js +0 -278
- package/dist/auth/legacy/routes/index.js.map +0 -1
- package/dist/auth/legacy/routes/index.mjs +0 -271
- package/dist/auth/legacy/routes/index.mjs.map +0 -1
- package/dist/auth/legacy/schema/index.d.mts +0 -401
- package/dist/auth/legacy/schema/index.d.ts +0 -401
- package/dist/auth/legacy/schema/index.js +0 -50
- package/dist/auth/legacy/schema/index.js.map +0 -1
- package/dist/auth/legacy/schema/index.mjs +0 -44
- package/dist/auth/legacy/schema/index.mjs.map +0 -1
- package/dist/auth/legacy/server/index.d.mts +0 -13
- package/dist/auth/legacy/server/index.d.ts +0 -13
- package/dist/auth/legacy/server/index.js +0 -21
- package/dist/auth/legacy/server/index.js.map +0 -1
- package/dist/auth/legacy/server/index.mjs +0 -19
- package/dist/auth/legacy/server/index.mjs.map +0 -1
- package/dist/auth/legacy/services/index.d.mts +0 -40
- package/dist/auth/legacy/services/index.d.ts +0 -40
- package/dist/auth/legacy/services/index.js +0 -258
- package/dist/auth/legacy/services/index.js.map +0 -1
- package/dist/auth/legacy/services/index.mjs +0 -252
- package/dist/auth/legacy/services/index.mjs.map +0 -1
- package/dist/auth/legacy/ui/miniapp/index.d.mts +0 -10
- package/dist/auth/legacy/ui/miniapp/index.d.ts +0 -10
- package/dist/auth/legacy/ui/miniapp/index.js +0 -298
- package/dist/auth/legacy/ui/miniapp/index.js.map +0 -1
- package/dist/auth/legacy/ui/miniapp/index.mjs +0 -290
- package/dist/auth/legacy/ui/miniapp/index.mjs.map +0 -1
- package/dist/auth/legacy/ui/web/index.d.mts +0 -22
- package/dist/auth/legacy/ui/web/index.d.ts +0 -22
- package/dist/auth/legacy/ui/web/index.js +0 -899
- package/dist/auth/legacy/ui/web/index.js.map +0 -1
- package/dist/auth/legacy/ui/web/index.mjs +0 -889
- package/dist/auth/legacy/ui/web/index.mjs.map +0 -1
- package/dist/auth/legacy/web/index.d.mts +0 -5
- package/dist/auth/legacy/web/index.d.ts +0 -5
- package/dist/auth/legacy/web/index.js +0 -1107
- package/dist/auth/legacy/web/index.js.map +0 -1
- package/dist/auth/legacy/web/index.mjs +0 -1086
- package/dist/auth/legacy/web/index.mjs.map +0 -1
- package/dist/auth/middleware/index.d.mts +0 -75
- package/dist/auth/middleware/index.d.ts +0 -75
- package/dist/auth/middleware/index.js +0 -15
- package/dist/auth/middleware/index.js.map +0 -1
- package/dist/auth/middleware/index.mjs +0 -6
- package/dist/auth/middleware/index.mjs.map +0 -1
- package/dist/auth/rn/index.d.mts +0 -64
- package/dist/auth/rn/index.d.ts +0 -64
- package/dist/auth/rn/index.js +0 -765
- package/dist/auth/rn/index.js.map +0 -1
- package/dist/auth/rn/index.mjs +0 -754
- package/dist/auth/rn/index.mjs.map +0 -1
- package/dist/auth/routes/index.d.mts +0 -261
- package/dist/auth/routes/index.d.ts +0 -261
- package/dist/auth/routes/index.js +0 -59
- package/dist/auth/routes/index.js.map +0 -1
- package/dist/auth/routes/index.mjs +0 -6
- package/dist/auth/routes/index.mjs.map +0 -1
- package/dist/auth/schema/index.d.mts +0 -789
- package/dist/auth/schema/index.d.ts +0 -789
- package/dist/auth/schema/index.js +0 -41
- package/dist/auth/schema/index.js.map +0 -1
- package/dist/auth/schema/index.mjs +0 -4
- package/dist/auth/schema/index.mjs.map +0 -1
- package/dist/auth/services/index.d.mts +0 -48
- package/dist/auth/services/index.d.ts +0 -48
- package/dist/auth/services/index.js +0 -34
- package/dist/auth/services/index.js.map +0 -1
- package/dist/auth/services/index.mjs +0 -5
- package/dist/auth/services/index.mjs.map +0 -1
- package/dist/base-api-client-ACKKt13v.d.mts +0 -277
- package/dist/base-api-client-ACKKt13v.d.ts +0 -277
- package/dist/base-api-client-B3wZZoaH.d.ts +0 -103
- package/dist/base-api-client-DrL35Ea2.d.mts +0 -103
- package/dist/chunk-37HYTHEC.mjs +0 -90
- package/dist/chunk-37HYTHEC.mjs.map +0 -1
- package/dist/chunk-5WV35FPV.js +0 -131
- package/dist/chunk-5WV35FPV.js.map +0 -1
- package/dist/chunk-DCRD5CZB.js +0 -573
- package/dist/chunk-DCRD5CZB.js.map +0 -1
- package/dist/chunk-DDX4JKFS.js +0 -19
- package/dist/chunk-DDX4JKFS.js.map +0 -1
- package/dist/chunk-DV6M7MFP.js +0 -283
- package/dist/chunk-DV6M7MFP.js.map +0 -1
- package/dist/chunk-HBF4HPRK.js +0 -186
- package/dist/chunk-HBF4HPRK.js.map +0 -1
- package/dist/chunk-HCI6JQOU.mjs +0 -183
- package/dist/chunk-HCI6JQOU.mjs.map +0 -1
- package/dist/chunk-I44HXJ3X.mjs +0 -17
- package/dist/chunk-I44HXJ3X.mjs.map +0 -1
- package/dist/chunk-IIVNHQEI.mjs.map +0 -1
- package/dist/chunk-IJ4YYWE3.mjs +0 -122
- package/dist/chunk-IJ4YYWE3.mjs.map +0 -1
- package/dist/chunk-J4BEIZUC.js +0 -92
- package/dist/chunk-J4BEIZUC.js.map +0 -1
- package/dist/chunk-OKPWFVXC.js +0 -24
- package/dist/chunk-OKPWFVXC.js.map +0 -1
- package/dist/chunk-PNOTQAYK.mjs +0 -560
- package/dist/chunk-PNOTQAYK.mjs.map +0 -1
- package/dist/chunk-PTMSDNGO.mjs.map +0 -1
- package/dist/chunk-Q2IAL7YV.js +0 -36
- package/dist/chunk-Q2IAL7YV.js.map +0 -1
- package/dist/chunk-QQ2WFYOD.js.map +0 -1
- package/dist/chunk-VQ54PUQV.js +0 -216
- package/dist/chunk-VQ54PUQV.js.map +0 -1
- package/dist/chunk-W5JEGA76.mjs +0 -33
- package/dist/chunk-W5JEGA76.mjs.map +0 -1
- package/dist/chunk-YGI7UU2D.mjs +0 -212
- package/dist/chunk-YGI7UU2D.mjs.map +0 -1
- package/dist/chunk-ZCLQSI5F.mjs +0 -271
- package/dist/chunk-ZCLQSI5F.mjs.map +0 -1
- package/dist/drizzle-auth-service-D-pljzCD.d.mts +0 -145
- package/dist/drizzle-auth-service-D3qryE_I.d.ts +0 -145
- package/dist/index-Bnh6VqFv.d.ts +0 -35
- package/dist/index-DNKZ7-R_.d.mts +0 -184
- package/dist/index-DNKZ7-R_.d.ts +0 -184
- package/dist/index-DPYkrKZf.d.mts +0 -35
- package/dist/types-C5vUWf9u.d.ts +0 -70
- package/dist/types-C_W_CoUD.d.ts +0 -99
- package/dist/types-DCRvasyH.d.mts +0 -99
- package/dist/types-IYCqCk2g.d.mts +0 -70
- /package/dist/{auth → common/auth}/client/index.js.map +0 -0
- /package/dist/{auth → common/auth}/client/index.mjs.map +0 -0
- /package/dist/{auth → common/auth}/hooks/index.js.map +0 -0
- /package/dist/{auth → common/auth}/hooks/index.mjs.map +0 -0
- /package/dist/{auth → common/auth/schema}/index.js.map +0 -0
- /package/dist/{auth → common/auth/schema}/index.mjs.map +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
-
import { LegacyAuthDbService } from '../services/index.js';
|
|
3
|
-
import '../schema/index.js';
|
|
4
|
-
import 'drizzle-orm';
|
|
5
|
-
import 'drizzle-orm/pg-core';
|
|
6
|
-
import '../../../index-DNKZ7-R_.js';
|
|
7
|
-
|
|
8
|
-
interface LegacyCookieOptions {
|
|
9
|
-
name?: string;
|
|
10
|
-
httpOnly?: boolean;
|
|
11
|
-
secure?: boolean;
|
|
12
|
-
sameSite?: 'lax' | 'strict' | 'none';
|
|
13
|
-
maxAge?: number;
|
|
14
|
-
path?: string;
|
|
15
|
-
}
|
|
16
|
-
interface LegacyBaseRouteConfig {
|
|
17
|
-
authService: LegacyAuthDbService;
|
|
18
|
-
cookieOptions?: LegacyCookieOptions;
|
|
19
|
-
}
|
|
20
|
-
interface LegacyLoginRouteConfig extends LegacyBaseRouteConfig {
|
|
21
|
-
}
|
|
22
|
-
interface LegacyRegisterRouteConfig extends LegacyBaseRouteConfig {
|
|
23
|
-
}
|
|
24
|
-
interface LegacyLogoutRouteConfig extends LegacyBaseRouteConfig {
|
|
25
|
-
}
|
|
26
|
-
interface LegacyValidateRouteConfig extends LegacyBaseRouteConfig {
|
|
27
|
-
}
|
|
28
|
-
interface LegacySendVerificationCodeConfig extends LegacyBaseRouteConfig {
|
|
29
|
-
}
|
|
30
|
-
interface LegacyResetPasswordConfig extends LegacyBaseRouteConfig {
|
|
31
|
-
}
|
|
32
|
-
interface LegacyApiResponse<T = any> {
|
|
33
|
-
success: boolean;
|
|
34
|
-
message?: string;
|
|
35
|
-
user?: any;
|
|
36
|
-
sessionToken?: string;
|
|
37
|
-
valid?: boolean;
|
|
38
|
-
data?: T;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
declare function createLegacyLoginHandler(config: LegacyLoginRouteConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
42
|
-
|
|
43
|
-
declare function createLegacyRegisterHandler(config: LegacyRegisterRouteConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
44
|
-
|
|
45
|
-
declare function createLegacyLogoutHandler(config: LegacyLogoutRouteConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
46
|
-
|
|
47
|
-
declare function createLegacyValidateHandler(config: LegacyValidateRouteConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
48
|
-
|
|
49
|
-
declare function createLegacySendVerificationCodeHandler(config: LegacySendVerificationCodeConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
50
|
-
|
|
51
|
-
declare function createLegacyResetPasswordHandler(config: LegacyResetPasswordConfig): (request: NextRequest) => Promise<NextResponse<LegacyApiResponse<any>>>;
|
|
52
|
-
|
|
53
|
-
export { type LegacyApiResponse, type LegacyCookieOptions, type LegacyLoginRouteConfig, type LegacyLogoutRouteConfig, type LegacyRegisterRouteConfig, type LegacyResetPasswordConfig, type LegacySendVerificationCodeConfig, type LegacyValidateRouteConfig, createLegacyLoginHandler, createLegacyLogoutHandler, createLegacyRegisterHandler, createLegacyResetPasswordHandler, createLegacySendVerificationCodeHandler, createLegacyValidateHandler };
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var server = require('next/server');
|
|
4
|
-
|
|
5
|
-
// src/business/auth-legacy/routes/login.ts
|
|
6
|
-
|
|
7
|
-
// src/business/auth-legacy/utils/authUtils.ts
|
|
8
|
-
function validatePhoneNumber(phone) {
|
|
9
|
-
return /^1[3-9]\d{9}$/.test(phone);
|
|
10
|
-
}
|
|
11
|
-
function validatePassword(password) {
|
|
12
|
-
if (!password) {
|
|
13
|
-
return { valid: false, message: "\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A" };
|
|
14
|
-
}
|
|
15
|
-
if (password.length < 6) {
|
|
16
|
-
return { valid: false, message: "\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D" };
|
|
17
|
-
}
|
|
18
|
-
return { valid: true };
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// src/business/auth-legacy/routes/login.ts
|
|
22
|
-
function createLegacyLoginHandler(config) {
|
|
23
|
-
return async (request) => {
|
|
24
|
-
try {
|
|
25
|
-
const { phone, password } = await request.json();
|
|
26
|
-
if (!phone || !password) {
|
|
27
|
-
return server.NextResponse.json(
|
|
28
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u548C\u5BC6\u7801" },
|
|
29
|
-
{ status: 400 }
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
if (!validatePhoneNumber(phone)) {
|
|
33
|
-
return server.NextResponse.json(
|
|
34
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
35
|
-
{ status: 400 }
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
const passwordValidation = validatePassword(password);
|
|
39
|
-
if (!passwordValidation.valid) {
|
|
40
|
-
return server.NextResponse.json(
|
|
41
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
42
|
-
{ status: 400 }
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
const user = await config.authService.verifyPassword(phone, password);
|
|
46
|
-
if (!user) {
|
|
47
|
-
return server.NextResponse.json(
|
|
48
|
-
{ success: false, message: "\u624B\u673A\u53F7\u6216\u5BC6\u7801\u9519\u8BEF" },
|
|
49
|
-
{ status: 401 }
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
const session = await config.authService.createSession(user.id);
|
|
53
|
-
await config.authService.updateLastLogin(user.id);
|
|
54
|
-
const response = server.NextResponse.json({
|
|
55
|
-
success: true,
|
|
56
|
-
message: "\u767B\u5F55\u6210\u529F",
|
|
57
|
-
user,
|
|
58
|
-
sessionToken: session.sessionToken,
|
|
59
|
-
data: { user, sessionToken: session.sessionToken }
|
|
60
|
-
});
|
|
61
|
-
const cookieOptions = {
|
|
62
|
-
name: config.cookieOptions?.name || "session_token",
|
|
63
|
-
httpOnly: config.cookieOptions?.httpOnly !== false,
|
|
64
|
-
secure: config.cookieOptions?.secure || false,
|
|
65
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
66
|
-
maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,
|
|
67
|
-
path: config.cookieOptions?.path || "/"
|
|
68
|
-
};
|
|
69
|
-
response.cookies.set(cookieOptions.name, session.sessionToken, {
|
|
70
|
-
httpOnly: cookieOptions.httpOnly,
|
|
71
|
-
secure: cookieOptions.secure,
|
|
72
|
-
sameSite: cookieOptions.sameSite,
|
|
73
|
-
maxAge: cookieOptions.maxAge,
|
|
74
|
-
path: cookieOptions.path
|
|
75
|
-
});
|
|
76
|
-
return response;
|
|
77
|
-
} catch (error) {
|
|
78
|
-
console.error("\u{1F4A5} [LegacyLogin] \u767B\u5F55\u5F02\u5E38:", error);
|
|
79
|
-
return server.NextResponse.json(
|
|
80
|
-
{ success: false, message: "\u767B\u5F55\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
81
|
-
{ status: 500 }
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function createLegacyRegisterHandler(config) {
|
|
87
|
-
return async (request) => {
|
|
88
|
-
try {
|
|
89
|
-
const { phone, password, name } = await request.json();
|
|
90
|
-
if (!phone || !password) {
|
|
91
|
-
return server.NextResponse.json(
|
|
92
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u548C\u5BC6\u7801" },
|
|
93
|
-
{ status: 400 }
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
if (!validatePhoneNumber(phone)) {
|
|
97
|
-
return server.NextResponse.json(
|
|
98
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
99
|
-
{ status: 400 }
|
|
100
|
-
);
|
|
101
|
-
}
|
|
102
|
-
const passwordValidation = validatePassword(password);
|
|
103
|
-
if (!passwordValidation.valid) {
|
|
104
|
-
return server.NextResponse.json(
|
|
105
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
106
|
-
{ status: 400 }
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
const user = await config.authService.createUser(phone, password, name);
|
|
110
|
-
const session = await config.authService.createSession(user.id);
|
|
111
|
-
await config.authService.updateLastLogin(user.id);
|
|
112
|
-
const response = server.NextResponse.json({
|
|
113
|
-
success: true,
|
|
114
|
-
message: "\u6CE8\u518C\u6210\u529F",
|
|
115
|
-
user,
|
|
116
|
-
sessionToken: session.sessionToken,
|
|
117
|
-
data: { user, sessionToken: session.sessionToken }
|
|
118
|
-
});
|
|
119
|
-
const cookieOptions = {
|
|
120
|
-
name: config.cookieOptions?.name || "session_token",
|
|
121
|
-
httpOnly: config.cookieOptions?.httpOnly !== false,
|
|
122
|
-
secure: config.cookieOptions?.secure || false,
|
|
123
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
124
|
-
maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,
|
|
125
|
-
path: config.cookieOptions?.path || "/"
|
|
126
|
-
};
|
|
127
|
-
response.cookies.set(cookieOptions.name, session.sessionToken, {
|
|
128
|
-
httpOnly: cookieOptions.httpOnly,
|
|
129
|
-
secure: cookieOptions.secure,
|
|
130
|
-
sameSite: cookieOptions.sameSite,
|
|
131
|
-
maxAge: cookieOptions.maxAge,
|
|
132
|
-
path: cookieOptions.path
|
|
133
|
-
});
|
|
134
|
-
return response;
|
|
135
|
-
} catch (error) {
|
|
136
|
-
console.error("\u{1F4A5} [LegacyRegister] \u6CE8\u518C\u5F02\u5E38:", error);
|
|
137
|
-
return server.NextResponse.json(
|
|
138
|
-
{ success: false, message: "\u6CE8\u518C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
139
|
-
{ status: 500 }
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
function createLegacyLogoutHandler(config) {
|
|
145
|
-
return async (request) => {
|
|
146
|
-
try {
|
|
147
|
-
const cookieName = config.cookieOptions?.name || "session_token";
|
|
148
|
-
const sessionToken = request.cookies.get(cookieName)?.value;
|
|
149
|
-
if (sessionToken) {
|
|
150
|
-
await config.authService.deleteSession(sessionToken);
|
|
151
|
-
}
|
|
152
|
-
const response = server.NextResponse.json({
|
|
153
|
-
success: true,
|
|
154
|
-
message: "\u767B\u51FA\u6210\u529F"
|
|
155
|
-
});
|
|
156
|
-
response.cookies.set(cookieName, "", {
|
|
157
|
-
httpOnly: true,
|
|
158
|
-
secure: config.cookieOptions?.secure || false,
|
|
159
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
160
|
-
maxAge: 0,
|
|
161
|
-
path: config.cookieOptions?.path || "/"
|
|
162
|
-
});
|
|
163
|
-
return response;
|
|
164
|
-
} catch (error) {
|
|
165
|
-
console.error("\u{1F4A5} [LegacyLogout] \u767B\u51FA\u5F02\u5E38:", error);
|
|
166
|
-
return server.NextResponse.json(
|
|
167
|
-
{ success: false, message: "\u767B\u51FA\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
168
|
-
{ status: 500 }
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function createLegacyValidateHandler(config) {
|
|
174
|
-
return async (request) => {
|
|
175
|
-
try {
|
|
176
|
-
const cookieName = config.cookieOptions?.name || "session_token";
|
|
177
|
-
const sessionToken = request.cookies.get(cookieName)?.value;
|
|
178
|
-
if (!sessionToken) {
|
|
179
|
-
return server.NextResponse.json(
|
|
180
|
-
{ success: true, valid: false, user: null, data: { valid: false, user: null } },
|
|
181
|
-
{ status: 200 }
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
const validation = await config.authService.validateSession(sessionToken);
|
|
185
|
-
return server.NextResponse.json({
|
|
186
|
-
success: true,
|
|
187
|
-
valid: validation.valid,
|
|
188
|
-
user: validation.user,
|
|
189
|
-
message: validation.valid ? "\u4F1A\u8BDD\u6709\u6548" : "\u4F1A\u8BDD\u65E0\u6548",
|
|
190
|
-
data: validation
|
|
191
|
-
});
|
|
192
|
-
} catch (error) {
|
|
193
|
-
console.error("\u{1F4A5} [LegacyValidate] \u9A8C\u8BC1\u5F02\u5E38:", error);
|
|
194
|
-
return server.NextResponse.json(
|
|
195
|
-
{ success: false, message: "\u9A8C\u8BC1\u5931\u8D25" },
|
|
196
|
-
{ status: 500 }
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
function createLegacySendVerificationCodeHandler(config) {
|
|
202
|
-
return async (request) => {
|
|
203
|
-
try {
|
|
204
|
-
const { phone } = await request.json();
|
|
205
|
-
if (!validatePhoneNumber(phone)) {
|
|
206
|
-
return server.NextResponse.json(
|
|
207
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
208
|
-
{ status: 400 }
|
|
209
|
-
);
|
|
210
|
-
}
|
|
211
|
-
const user = await config.authService.getUserByPhone(phone);
|
|
212
|
-
if (!user) {
|
|
213
|
-
return server.NextResponse.json(
|
|
214
|
-
{ success: false, message: "\u8BE5\u624B\u673A\u53F7\u672A\u6CE8\u518C" },
|
|
215
|
-
{ status: 404 }
|
|
216
|
-
);
|
|
217
|
-
}
|
|
218
|
-
await config.authService.sendVerificationCode(phone);
|
|
219
|
-
return server.NextResponse.json({
|
|
220
|
-
success: true,
|
|
221
|
-
message: "\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001"
|
|
222
|
-
});
|
|
223
|
-
} catch (error) {
|
|
224
|
-
console.error("\u{1F4A5} [LegacySendVerificationCode] \u53D1\u9001\u5F02\u5E38:", error);
|
|
225
|
-
return server.NextResponse.json(
|
|
226
|
-
{ success: false, message: "\u53D1\u9001\u9A8C\u8BC1\u7801\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
227
|
-
{ status: 500 }
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
function createLegacyResetPasswordHandler(config) {
|
|
233
|
-
return async (request) => {
|
|
234
|
-
try {
|
|
235
|
-
const { phone, newPassword, verificationCode } = await request.json();
|
|
236
|
-
if (!validatePhoneNumber(phone)) {
|
|
237
|
-
return server.NextResponse.json(
|
|
238
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
239
|
-
{ status: 400 }
|
|
240
|
-
);
|
|
241
|
-
}
|
|
242
|
-
const passwordValidation = validatePassword(newPassword);
|
|
243
|
-
if (!passwordValidation.valid) {
|
|
244
|
-
return server.NextResponse.json(
|
|
245
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
246
|
-
{ status: 400 }
|
|
247
|
-
);
|
|
248
|
-
}
|
|
249
|
-
const isValidCode = await config.authService.verifyCode(phone, verificationCode);
|
|
250
|
-
if (!isValidCode) {
|
|
251
|
-
return server.NextResponse.json(
|
|
252
|
-
{ success: false, message: "\u9A8C\u8BC1\u7801\u65E0\u6548\u6216\u5DF2\u8FC7\u671F" },
|
|
253
|
-
{ status: 400 }
|
|
254
|
-
);
|
|
255
|
-
}
|
|
256
|
-
await config.authService.resetPassword(phone, newPassword);
|
|
257
|
-
return server.NextResponse.json({
|
|
258
|
-
success: true,
|
|
259
|
-
message: "\u5BC6\u7801\u91CD\u7F6E\u6210\u529F"
|
|
260
|
-
});
|
|
261
|
-
} catch (error) {
|
|
262
|
-
console.error("\u{1F4A5} [LegacyResetPassword] \u91CD\u7F6E\u5F02\u5E38:", error);
|
|
263
|
-
return server.NextResponse.json(
|
|
264
|
-
{ success: false, message: "\u91CD\u7F6E\u5BC6\u7801\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
265
|
-
{ status: 500 }
|
|
266
|
-
);
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
exports.createLegacyLoginHandler = createLegacyLoginHandler;
|
|
272
|
-
exports.createLegacyLogoutHandler = createLegacyLogoutHandler;
|
|
273
|
-
exports.createLegacyRegisterHandler = createLegacyRegisterHandler;
|
|
274
|
-
exports.createLegacyResetPasswordHandler = createLegacyResetPasswordHandler;
|
|
275
|
-
exports.createLegacySendVerificationCodeHandler = createLegacySendVerificationCodeHandler;
|
|
276
|
-
exports.createLegacyValidateHandler = createLegacyValidateHandler;
|
|
277
|
-
//# sourceMappingURL=index.js.map
|
|
278
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/business/auth-legacy/utils/authUtils.ts","../../../../src/business/auth-legacy/routes/login.ts","../../../../src/business/auth-legacy/routes/register.ts","../../../../src/business/auth-legacy/routes/logout.ts","../../../../src/business/auth-legacy/routes/validate.ts","../../../../src/business/auth-legacy/routes/sendVerificationCode.ts","../../../../src/business/auth-legacy/routes/resetPassword.ts"],"names":["NextResponse"],"mappings":"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","file":"index.js","sourcesContent":["import type { User } from '../types';\n\n/**\n * 验证手机号格式\n */\nexport function validatePhoneNumber(phone: string): boolean {\n return /^1[3-9]\\d{9}$/.test(phone);\n}\n\n/**\n * 验证密码强度(可扩展)\n */\nexport function validatePassword(password: string): { valid: boolean; message?: string } {\n if (!password) {\n return { valid: false, message: '密码不能为空' };\n }\n \n if (password.length < 6) {\n return { valid: false, message: '密码长度至少6位' };\n }\n \n return { valid: true };\n}\n\n/**\n * 生成安全的会话令牌\n */\nexport function generateSessionToken(): string {\n // 在实际环境中,应该使用更安全的随机数生成\n return Math.random().toString(36).substring(2) + \n Date.now().toString(36) + \n Math.random().toString(36).substring(2);\n}\n\n/**\n * 检查用户是否为管理员\n */\nexport function isAdmin(user: User | null): boolean {\n return user?.role === 'admin';\n}\n\n/**\n * 检查用户是否处于活跃状态\n */\nexport function isActiveUser(user: User | null): boolean {\n return user?.isActive === true;\n}\n\n/**\n * 格式化用户显示名称\n */\nexport function getUserDisplayName(user: User): string {\n return user.name || user.phone || '未知用户';\n}\n\n/**\n * 计算会话过期时间\n */\nexport function calculateSessionExpiry(days: number = 30): Date {\n return new Date(Date.now() + days * 24 * 60 * 60 * 1000);\n}\n\n/**\n * 检查会话是否过期\n */\nexport function isSessionExpired(expiresAt: Date): boolean {\n return new Date() > new Date(expiresAt);\n} ","import { NextRequest, NextResponse } from 'next/server';\nimport { validatePhoneNumber, validatePassword } from '../utils/authUtils';\nimport type { LegacyLoginRouteConfig, LegacyApiResponse } from './types';\n\nexport function createLegacyLoginHandler(config: LegacyLoginRouteConfig) {\n return async (request: NextRequest) => {\n try {\n const { phone, password } = await request.json();\n\n if (!phone || !password) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入手机号和密码' },\n { status: 400 }\n );\n }\n\n if (!validatePhoneNumber(phone)) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入正确的手机号格式' },\n { status: 400 }\n );\n }\n\n const passwordValidation = validatePassword(password);\n if (!passwordValidation.valid) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: passwordValidation.message || '密码格式错误' },\n { status: 400 }\n );\n }\n\n const user = await config.authService.verifyPassword(phone, password);\n if (!user) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '手机号或密码错误' },\n { status: 401 }\n );\n }\n\n const session = await config.authService.createSession(user.id);\n await config.authService.updateLastLogin(user.id);\n\n const response = NextResponse.json<LegacyApiResponse>({\n success: true,\n message: '登录成功',\n user,\n sessionToken: session.sessionToken,\n data: { user, sessionToken: session.sessionToken },\n });\n\n const cookieOptions = {\n name: config.cookieOptions?.name || 'session_token',\n httpOnly: config.cookieOptions?.httpOnly !== false,\n secure: config.cookieOptions?.secure || false,\n sameSite: config.cookieOptions?.sameSite || 'lax',\n maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,\n path: config.cookieOptions?.path || '/',\n };\n\n response.cookies.set(cookieOptions.name, session.sessionToken, {\n httpOnly: cookieOptions.httpOnly,\n secure: cookieOptions.secure,\n sameSite: cookieOptions.sameSite,\n maxAge: cookieOptions.maxAge,\n path: cookieOptions.path,\n });\n\n return response;\n } catch (error) {\n console.error('💥 [LegacyLogin] 登录异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '登录失败,请稍后重试' },\n { status: 500 }\n );\n }\n };\n}\n","import { NextRequest, NextResponse } from 'next/server';\nimport { validatePhoneNumber, validatePassword } from '../utils/authUtils';\nimport type { LegacyRegisterRouteConfig, LegacyApiResponse } from './types';\n\nexport function createLegacyRegisterHandler(config: LegacyRegisterRouteConfig) {\n return async (request: NextRequest) => {\n try {\n const { phone, password, name } = await request.json();\n\n if (!phone || !password) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入手机号和密码' },\n { status: 400 }\n );\n }\n\n if (!validatePhoneNumber(phone)) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入正确的手机号格式' },\n { status: 400 }\n );\n }\n\n const passwordValidation = validatePassword(password);\n if (!passwordValidation.valid) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: passwordValidation.message || '密码格式错误' },\n { status: 400 }\n );\n }\n\n const user = await config.authService.createUser(phone, password, name);\n const session = await config.authService.createSession(user.id);\n await config.authService.updateLastLogin(user.id);\n\n const response = NextResponse.json<LegacyApiResponse>({\n success: true,\n message: '注册成功',\n user,\n sessionToken: session.sessionToken,\n data: { user, sessionToken: session.sessionToken },\n });\n\n const cookieOptions = {\n name: config.cookieOptions?.name || 'session_token',\n httpOnly: config.cookieOptions?.httpOnly !== false,\n secure: config.cookieOptions?.secure || false,\n sameSite: config.cookieOptions?.sameSite || 'lax',\n maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,\n path: config.cookieOptions?.path || '/',\n };\n\n response.cookies.set(cookieOptions.name, session.sessionToken, {\n httpOnly: cookieOptions.httpOnly,\n secure: cookieOptions.secure,\n sameSite: cookieOptions.sameSite,\n maxAge: cookieOptions.maxAge,\n path: cookieOptions.path,\n });\n\n return response;\n } catch (error) {\n console.error('💥 [LegacyRegister] 注册异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '注册失败,请稍后重试' },\n { status: 500 }\n );\n }\n };\n}\n","import { NextRequest, NextResponse } from 'next/server';\nimport type { LegacyLogoutRouteConfig, LegacyApiResponse } from './types';\n\nexport function createLegacyLogoutHandler(config: LegacyLogoutRouteConfig) {\n return async (request: NextRequest) => {\n try {\n const cookieName = config.cookieOptions?.name || 'session_token';\n const sessionToken = request.cookies.get(cookieName)?.value;\n\n if (sessionToken) {\n await config.authService.deleteSession(sessionToken);\n }\n\n const response = NextResponse.json<LegacyApiResponse>({\n success: true,\n message: '登出成功',\n });\n\n response.cookies.set(cookieName, '', {\n httpOnly: true,\n secure: config.cookieOptions?.secure || false,\n sameSite: config.cookieOptions?.sameSite || 'lax',\n maxAge: 0,\n path: config.cookieOptions?.path || '/',\n });\n\n return response;\n } catch (error) {\n console.error('💥 [LegacyLogout] 登出异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '登出失败,请稍后重试' },\n { status: 500 }\n );\n }\n };\n}\n","import { NextRequest, NextResponse } from 'next/server';\nimport type { LegacyValidateRouteConfig, LegacyApiResponse } from './types';\n\nexport function createLegacyValidateHandler(config: LegacyValidateRouteConfig) {\n return async (request: NextRequest) => {\n try {\n const cookieName = config.cookieOptions?.name || 'session_token';\n const sessionToken = request.cookies.get(cookieName)?.value;\n\n if (!sessionToken) {\n return NextResponse.json<LegacyApiResponse>(\n { success: true, valid: false, user: null, data: { valid: false, user: null } },\n { status: 200 }\n );\n }\n\n const validation = await config.authService.validateSession(sessionToken);\n return NextResponse.json<LegacyApiResponse>({\n success: true,\n valid: validation.valid,\n user: validation.user,\n message: validation.valid ? '会话有效' : '会话无效',\n data: validation,\n });\n } catch (error) {\n console.error('💥 [LegacyValidate] 验证异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '验证失败' },\n { status: 500 }\n );\n }\n };\n}\n","import { NextRequest, NextResponse } from 'next/server';\nimport { validatePhoneNumber } from '../utils/authUtils';\nimport type { LegacySendVerificationCodeConfig, LegacyApiResponse } from './types';\n\nexport function createLegacySendVerificationCodeHandler(config: LegacySendVerificationCodeConfig) {\n return async (request: NextRequest) => {\n try {\n const { phone } = await request.json();\n if (!validatePhoneNumber(phone)) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入正确的手机号格式' },\n { status: 400 }\n );\n }\n\n const user = await config.authService.getUserByPhone(phone);\n if (!user) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '该手机号未注册' },\n { status: 404 }\n );\n }\n\n await config.authService.sendVerificationCode(phone);\n return NextResponse.json<LegacyApiResponse>({\n success: true,\n message: '验证码已发送',\n });\n } catch (error) {\n console.error('💥 [LegacySendVerificationCode] 发送异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '发送验证码失败,请稍后重试' },\n { status: 500 }\n );\n }\n };\n}\n","import { NextRequest, NextResponse } from 'next/server';\nimport { validatePhoneNumber, validatePassword } from '../utils/authUtils';\nimport type { LegacyResetPasswordConfig, LegacyApiResponse } from './types';\n\nexport function createLegacyResetPasswordHandler(config: LegacyResetPasswordConfig) {\n return async (request: NextRequest) => {\n try {\n const { phone, newPassword, verificationCode } = await request.json();\n\n if (!validatePhoneNumber(phone)) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '请输入正确的手机号格式' },\n { status: 400 }\n );\n }\n\n const passwordValidation = validatePassword(newPassword);\n if (!passwordValidation.valid) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: passwordValidation.message || '密码格式错误' },\n { status: 400 }\n );\n }\n\n const isValidCode = await config.authService.verifyCode(phone, verificationCode);\n if (!isValidCode) {\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '验证码无效或已过期' },\n { status: 400 }\n );\n }\n\n await config.authService.resetPassword(phone, newPassword);\n return NextResponse.json<LegacyApiResponse>({\n success: true,\n message: '密码重置成功',\n });\n } catch (error) {\n console.error('💥 [LegacyResetPassword] 重置异常:', error);\n return NextResponse.json<LegacyApiResponse>(\n { success: false, message: '重置密码失败,请稍后重试' },\n { status: 500 }\n );\n }\n };\n}\n"]}
|
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
import { NextResponse } from 'next/server';
|
|
2
|
-
|
|
3
|
-
// src/business/auth-legacy/routes/login.ts
|
|
4
|
-
|
|
5
|
-
// src/business/auth-legacy/utils/authUtils.ts
|
|
6
|
-
function validatePhoneNumber(phone) {
|
|
7
|
-
return /^1[3-9]\d{9}$/.test(phone);
|
|
8
|
-
}
|
|
9
|
-
function validatePassword(password) {
|
|
10
|
-
if (!password) {
|
|
11
|
-
return { valid: false, message: "\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A" };
|
|
12
|
-
}
|
|
13
|
-
if (password.length < 6) {
|
|
14
|
-
return { valid: false, message: "\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D" };
|
|
15
|
-
}
|
|
16
|
-
return { valid: true };
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// src/business/auth-legacy/routes/login.ts
|
|
20
|
-
function createLegacyLoginHandler(config) {
|
|
21
|
-
return async (request) => {
|
|
22
|
-
try {
|
|
23
|
-
const { phone, password } = await request.json();
|
|
24
|
-
if (!phone || !password) {
|
|
25
|
-
return NextResponse.json(
|
|
26
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u548C\u5BC6\u7801" },
|
|
27
|
-
{ status: 400 }
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
if (!validatePhoneNumber(phone)) {
|
|
31
|
-
return NextResponse.json(
|
|
32
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
33
|
-
{ status: 400 }
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
const passwordValidation = validatePassword(password);
|
|
37
|
-
if (!passwordValidation.valid) {
|
|
38
|
-
return NextResponse.json(
|
|
39
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
40
|
-
{ status: 400 }
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
const user = await config.authService.verifyPassword(phone, password);
|
|
44
|
-
if (!user) {
|
|
45
|
-
return NextResponse.json(
|
|
46
|
-
{ success: false, message: "\u624B\u673A\u53F7\u6216\u5BC6\u7801\u9519\u8BEF" },
|
|
47
|
-
{ status: 401 }
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
const session = await config.authService.createSession(user.id);
|
|
51
|
-
await config.authService.updateLastLogin(user.id);
|
|
52
|
-
const response = NextResponse.json({
|
|
53
|
-
success: true,
|
|
54
|
-
message: "\u767B\u5F55\u6210\u529F",
|
|
55
|
-
user,
|
|
56
|
-
sessionToken: session.sessionToken,
|
|
57
|
-
data: { user, sessionToken: session.sessionToken }
|
|
58
|
-
});
|
|
59
|
-
const cookieOptions = {
|
|
60
|
-
name: config.cookieOptions?.name || "session_token",
|
|
61
|
-
httpOnly: config.cookieOptions?.httpOnly !== false,
|
|
62
|
-
secure: config.cookieOptions?.secure || false,
|
|
63
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
64
|
-
maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,
|
|
65
|
-
path: config.cookieOptions?.path || "/"
|
|
66
|
-
};
|
|
67
|
-
response.cookies.set(cookieOptions.name, session.sessionToken, {
|
|
68
|
-
httpOnly: cookieOptions.httpOnly,
|
|
69
|
-
secure: cookieOptions.secure,
|
|
70
|
-
sameSite: cookieOptions.sameSite,
|
|
71
|
-
maxAge: cookieOptions.maxAge,
|
|
72
|
-
path: cookieOptions.path
|
|
73
|
-
});
|
|
74
|
-
return response;
|
|
75
|
-
} catch (error) {
|
|
76
|
-
console.error("\u{1F4A5} [LegacyLogin] \u767B\u5F55\u5F02\u5E38:", error);
|
|
77
|
-
return NextResponse.json(
|
|
78
|
-
{ success: false, message: "\u767B\u5F55\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
79
|
-
{ status: 500 }
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function createLegacyRegisterHandler(config) {
|
|
85
|
-
return async (request) => {
|
|
86
|
-
try {
|
|
87
|
-
const { phone, password, name } = await request.json();
|
|
88
|
-
if (!phone || !password) {
|
|
89
|
-
return NextResponse.json(
|
|
90
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u624B\u673A\u53F7\u548C\u5BC6\u7801" },
|
|
91
|
-
{ status: 400 }
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
if (!validatePhoneNumber(phone)) {
|
|
95
|
-
return NextResponse.json(
|
|
96
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
97
|
-
{ status: 400 }
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
const passwordValidation = validatePassword(password);
|
|
101
|
-
if (!passwordValidation.valid) {
|
|
102
|
-
return NextResponse.json(
|
|
103
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
104
|
-
{ status: 400 }
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
const user = await config.authService.createUser(phone, password, name);
|
|
108
|
-
const session = await config.authService.createSession(user.id);
|
|
109
|
-
await config.authService.updateLastLogin(user.id);
|
|
110
|
-
const response = NextResponse.json({
|
|
111
|
-
success: true,
|
|
112
|
-
message: "\u6CE8\u518C\u6210\u529F",
|
|
113
|
-
user,
|
|
114
|
-
sessionToken: session.sessionToken,
|
|
115
|
-
data: { user, sessionToken: session.sessionToken }
|
|
116
|
-
});
|
|
117
|
-
const cookieOptions = {
|
|
118
|
-
name: config.cookieOptions?.name || "session_token",
|
|
119
|
-
httpOnly: config.cookieOptions?.httpOnly !== false,
|
|
120
|
-
secure: config.cookieOptions?.secure || false,
|
|
121
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
122
|
-
maxAge: config.cookieOptions?.maxAge || 30 * 24 * 60 * 60,
|
|
123
|
-
path: config.cookieOptions?.path || "/"
|
|
124
|
-
};
|
|
125
|
-
response.cookies.set(cookieOptions.name, session.sessionToken, {
|
|
126
|
-
httpOnly: cookieOptions.httpOnly,
|
|
127
|
-
secure: cookieOptions.secure,
|
|
128
|
-
sameSite: cookieOptions.sameSite,
|
|
129
|
-
maxAge: cookieOptions.maxAge,
|
|
130
|
-
path: cookieOptions.path
|
|
131
|
-
});
|
|
132
|
-
return response;
|
|
133
|
-
} catch (error) {
|
|
134
|
-
console.error("\u{1F4A5} [LegacyRegister] \u6CE8\u518C\u5F02\u5E38:", error);
|
|
135
|
-
return NextResponse.json(
|
|
136
|
-
{ success: false, message: "\u6CE8\u518C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
137
|
-
{ status: 500 }
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
function createLegacyLogoutHandler(config) {
|
|
143
|
-
return async (request) => {
|
|
144
|
-
try {
|
|
145
|
-
const cookieName = config.cookieOptions?.name || "session_token";
|
|
146
|
-
const sessionToken = request.cookies.get(cookieName)?.value;
|
|
147
|
-
if (sessionToken) {
|
|
148
|
-
await config.authService.deleteSession(sessionToken);
|
|
149
|
-
}
|
|
150
|
-
const response = NextResponse.json({
|
|
151
|
-
success: true,
|
|
152
|
-
message: "\u767B\u51FA\u6210\u529F"
|
|
153
|
-
});
|
|
154
|
-
response.cookies.set(cookieName, "", {
|
|
155
|
-
httpOnly: true,
|
|
156
|
-
secure: config.cookieOptions?.secure || false,
|
|
157
|
-
sameSite: config.cookieOptions?.sameSite || "lax",
|
|
158
|
-
maxAge: 0,
|
|
159
|
-
path: config.cookieOptions?.path || "/"
|
|
160
|
-
});
|
|
161
|
-
return response;
|
|
162
|
-
} catch (error) {
|
|
163
|
-
console.error("\u{1F4A5} [LegacyLogout] \u767B\u51FA\u5F02\u5E38:", error);
|
|
164
|
-
return NextResponse.json(
|
|
165
|
-
{ success: false, message: "\u767B\u51FA\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
166
|
-
{ status: 500 }
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
function createLegacyValidateHandler(config) {
|
|
172
|
-
return async (request) => {
|
|
173
|
-
try {
|
|
174
|
-
const cookieName = config.cookieOptions?.name || "session_token";
|
|
175
|
-
const sessionToken = request.cookies.get(cookieName)?.value;
|
|
176
|
-
if (!sessionToken) {
|
|
177
|
-
return NextResponse.json(
|
|
178
|
-
{ success: true, valid: false, user: null, data: { valid: false, user: null } },
|
|
179
|
-
{ status: 200 }
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
const validation = await config.authService.validateSession(sessionToken);
|
|
183
|
-
return NextResponse.json({
|
|
184
|
-
success: true,
|
|
185
|
-
valid: validation.valid,
|
|
186
|
-
user: validation.user,
|
|
187
|
-
message: validation.valid ? "\u4F1A\u8BDD\u6709\u6548" : "\u4F1A\u8BDD\u65E0\u6548",
|
|
188
|
-
data: validation
|
|
189
|
-
});
|
|
190
|
-
} catch (error) {
|
|
191
|
-
console.error("\u{1F4A5} [LegacyValidate] \u9A8C\u8BC1\u5F02\u5E38:", error);
|
|
192
|
-
return NextResponse.json(
|
|
193
|
-
{ success: false, message: "\u9A8C\u8BC1\u5931\u8D25" },
|
|
194
|
-
{ status: 500 }
|
|
195
|
-
);
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
function createLegacySendVerificationCodeHandler(config) {
|
|
200
|
-
return async (request) => {
|
|
201
|
-
try {
|
|
202
|
-
const { phone } = await request.json();
|
|
203
|
-
if (!validatePhoneNumber(phone)) {
|
|
204
|
-
return NextResponse.json(
|
|
205
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
206
|
-
{ status: 400 }
|
|
207
|
-
);
|
|
208
|
-
}
|
|
209
|
-
const user = await config.authService.getUserByPhone(phone);
|
|
210
|
-
if (!user) {
|
|
211
|
-
return NextResponse.json(
|
|
212
|
-
{ success: false, message: "\u8BE5\u624B\u673A\u53F7\u672A\u6CE8\u518C" },
|
|
213
|
-
{ status: 404 }
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
await config.authService.sendVerificationCode(phone);
|
|
217
|
-
return NextResponse.json({
|
|
218
|
-
success: true,
|
|
219
|
-
message: "\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001"
|
|
220
|
-
});
|
|
221
|
-
} catch (error) {
|
|
222
|
-
console.error("\u{1F4A5} [LegacySendVerificationCode] \u53D1\u9001\u5F02\u5E38:", error);
|
|
223
|
-
return NextResponse.json(
|
|
224
|
-
{ success: false, message: "\u53D1\u9001\u9A8C\u8BC1\u7801\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
225
|
-
{ status: 500 }
|
|
226
|
-
);
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
function createLegacyResetPasswordHandler(config) {
|
|
231
|
-
return async (request) => {
|
|
232
|
-
try {
|
|
233
|
-
const { phone, newPassword, verificationCode } = await request.json();
|
|
234
|
-
if (!validatePhoneNumber(phone)) {
|
|
235
|
-
return NextResponse.json(
|
|
236
|
-
{ success: false, message: "\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u624B\u673A\u53F7\u683C\u5F0F" },
|
|
237
|
-
{ status: 400 }
|
|
238
|
-
);
|
|
239
|
-
}
|
|
240
|
-
const passwordValidation = validatePassword(newPassword);
|
|
241
|
-
if (!passwordValidation.valid) {
|
|
242
|
-
return NextResponse.json(
|
|
243
|
-
{ success: false, message: passwordValidation.message || "\u5BC6\u7801\u683C\u5F0F\u9519\u8BEF" },
|
|
244
|
-
{ status: 400 }
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
const isValidCode = await config.authService.verifyCode(phone, verificationCode);
|
|
248
|
-
if (!isValidCode) {
|
|
249
|
-
return NextResponse.json(
|
|
250
|
-
{ success: false, message: "\u9A8C\u8BC1\u7801\u65E0\u6548\u6216\u5DF2\u8FC7\u671F" },
|
|
251
|
-
{ status: 400 }
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
await config.authService.resetPassword(phone, newPassword);
|
|
255
|
-
return NextResponse.json({
|
|
256
|
-
success: true,
|
|
257
|
-
message: "\u5BC6\u7801\u91CD\u7F6E\u6210\u529F"
|
|
258
|
-
});
|
|
259
|
-
} catch (error) {
|
|
260
|
-
console.error("\u{1F4A5} [LegacyResetPassword] \u91CD\u7F6E\u5F02\u5E38:", error);
|
|
261
|
-
return NextResponse.json(
|
|
262
|
-
{ success: false, message: "\u91CD\u7F6E\u5BC6\u7801\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5" },
|
|
263
|
-
{ status: 500 }
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
export { createLegacyLoginHandler, createLegacyLogoutHandler, createLegacyRegisterHandler, createLegacyResetPasswordHandler, createLegacySendVerificationCodeHandler, createLegacyValidateHandler };
|
|
270
|
-
//# sourceMappingURL=index.mjs.map
|
|
271
|
-
//# sourceMappingURL=index.mjs.map
|