sa2kit 1.6.10 → 1.6.12

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 (149) hide show
  1. package/dist/ConfigService-BxK06xP6.d.mts +262 -0
  2. package/dist/ConfigService-BxK06xP6.d.ts +262 -0
  3. package/dist/UniversalFileService-BuHN-jrR.d.ts +515 -0
  4. package/dist/UniversalFileService-CGGzYeeF.d.mts +515 -0
  5. package/dist/analytics/index.d.mts +1084 -0
  6. package/dist/analytics/index.d.ts +1084 -0
  7. package/dist/analytics/server/index.d.mts +499 -0
  8. package/dist/analytics/server/index.d.ts +499 -0
  9. package/dist/api/index.d.mts +248 -0
  10. package/dist/api/index.d.ts +248 -0
  11. package/dist/audioDetection/index.d.mts +449 -0
  12. package/dist/audioDetection/index.d.ts +449 -0
  13. package/dist/auth/client/index.d.mts +32 -0
  14. package/dist/auth/client/index.d.ts +32 -0
  15. package/dist/auth/client/index.js +4 -4
  16. package/dist/auth/client/index.mjs +1 -1
  17. package/dist/auth/components/index.d.mts +227 -0
  18. package/dist/auth/components/index.d.ts +227 -0
  19. package/dist/auth/components/index.js +4 -4
  20. package/dist/auth/components/index.mjs +1 -1
  21. package/dist/auth/hooks/index.d.mts +31 -0
  22. package/dist/auth/hooks/index.d.ts +31 -0
  23. package/dist/auth/hooks/index.js +3 -3
  24. package/dist/auth/hooks/index.mjs +1 -1
  25. package/dist/auth/index.d.mts +41 -0
  26. package/dist/auth/index.d.ts +41 -0
  27. package/dist/auth/index.js +17 -36
  28. package/dist/auth/index.js.map +1 -1
  29. package/dist/auth/index.mjs +3 -33
  30. package/dist/auth/index.mjs.map +1 -1
  31. package/dist/auth/middleware/index.d.mts +75 -0
  32. package/dist/auth/middleware/index.d.ts +75 -0
  33. package/dist/auth/routes/index.d.mts +261 -0
  34. package/dist/auth/routes/index.d.ts +261 -0
  35. package/dist/auth/schema/index.d.mts +789 -0
  36. package/dist/auth/schema/index.d.ts +789 -0
  37. package/dist/auth/services/index.d.mts +48 -0
  38. package/dist/auth/services/index.d.ts +48 -0
  39. package/dist/base-api-client-B-yUCal3.d.ts +103 -0
  40. package/dist/base-api-client-BQ8ZPZjk.d.mts +103 -0
  41. package/dist/calendar/index.d.mts +1197 -0
  42. package/dist/calendar/index.d.ts +1197 -0
  43. package/dist/calendar/index.js +8 -8
  44. package/dist/calendar/index.js.map +1 -1
  45. package/dist/calendar/index.mjs +1 -1
  46. package/dist/calendar/index.mjs.map +1 -1
  47. package/dist/calendar/routes/index.d.mts +118 -0
  48. package/dist/calendar/routes/index.d.ts +118 -0
  49. package/dist/calendar/server.d.mts +1184 -0
  50. package/dist/calendar/server.d.ts +1184 -0
  51. package/dist/{chunk-ROEYW4A7.js → chunk-5QMBZP7S.js} +2 -2
  52. package/dist/chunk-5QMBZP7S.js.map +1 -0
  53. package/dist/chunk-6BZ3QFA5.mjs +33 -0
  54. package/dist/chunk-6BZ3QFA5.mjs.map +1 -0
  55. package/dist/{chunk-HEMA7SWK.mjs → chunk-6YKMCPQI.mjs} +2 -2
  56. package/dist/chunk-6YKMCPQI.mjs.map +1 -0
  57. package/dist/chunk-BH5TLVS5.mjs +1593 -0
  58. package/dist/chunk-BH5TLVS5.mjs.map +1 -0
  59. package/dist/chunk-E72D5KHY.js +1723 -0
  60. package/dist/chunk-E72D5KHY.js.map +1 -0
  61. package/dist/chunk-FAHLZIYQ.js +36 -0
  62. package/dist/chunk-FAHLZIYQ.js.map +1 -0
  63. package/dist/{chunk-KGRQNEIR.mjs → chunk-KW5JH6V6.mjs} +2 -2
  64. package/dist/chunk-KW5JH6V6.mjs.map +1 -0
  65. package/dist/{chunk-O26VCNS3.js → chunk-UOFTHYIH.js} +2 -2
  66. package/dist/chunk-UOFTHYIH.js.map +1 -0
  67. package/dist/config/index.d.mts +64 -0
  68. package/dist/config/index.d.ts +64 -0
  69. package/dist/config/server/index.d.mts +1533 -0
  70. package/dist/config/server/index.d.ts +1533 -0
  71. package/dist/drizzle-auth-service-Bxlovhv8.d.ts +145 -0
  72. package/dist/drizzle-auth-service-DZY2F1sv.d.mts +145 -0
  73. package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
  74. package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -0
  75. package/dist/enums-Dume-V5Y.d.mts +16 -0
  76. package/dist/enums-Dume-V5Y.d.ts +16 -0
  77. package/dist/i18n/index.d.mts +417 -0
  78. package/dist/i18n/index.d.ts +417 -0
  79. package/dist/imageCrop/index.d.mts +165 -0
  80. package/dist/imageCrop/index.d.ts +165 -0
  81. package/dist/index-DSel44Ke.d.mts +93 -0
  82. package/dist/index-DSel44Ke.d.ts +93 -0
  83. package/dist/index.d.mts +936 -0
  84. package/dist/index.d.ts +936 -0
  85. package/dist/index.js +1626 -2184
  86. package/dist/index.js.map +1 -1
  87. package/dist/index.mjs +708 -1543
  88. package/dist/index.mjs.map +1 -1
  89. package/dist/logger/index.d.mts +125 -0
  90. package/dist/logger/index.d.ts +125 -0
  91. package/dist/mmd/admin/index.d.mts +487 -0
  92. package/dist/mmd/admin/index.d.ts +487 -0
  93. package/dist/mmd/index.d.mts +1412 -0
  94. package/dist/mmd/index.d.ts +1412 -0
  95. package/dist/mmd/index.js +2695 -625
  96. package/dist/mmd/index.js.map +1 -1
  97. package/dist/mmd/index.mjs +2501 -448
  98. package/dist/mmd/index.mjs.map +1 -1
  99. package/dist/mmd/server/index.d.mts +138 -0
  100. package/dist/mmd/server/index.d.ts +138 -0
  101. package/dist/music/index.d.mts +74 -0
  102. package/dist/music/index.d.ts +74 -0
  103. package/dist/music/server/index.d.mts +1 -0
  104. package/dist/music/server/index.d.ts +1 -0
  105. package/dist/request/index.d.mts +51 -0
  106. package/dist/request/index.d.ts +51 -0
  107. package/dist/storage/index.d.mts +75 -0
  108. package/dist/storage/index.d.ts +75 -0
  109. package/dist/testYourself/admin/index.d.mts +58 -0
  110. package/dist/testYourself/admin/index.d.ts +58 -0
  111. package/dist/testYourself/index.d.mts +53 -0
  112. package/dist/testYourself/index.d.ts +53 -0
  113. package/dist/testYourself/server/index.d.mts +1029 -0
  114. package/dist/testYourself/server/index.d.ts +1029 -0
  115. package/dist/types-BB-7_WtE.d.mts +253 -0
  116. package/dist/types-BB-7_WtE.d.ts +253 -0
  117. package/dist/types-BINlP9MK.d.mts +286 -0
  118. package/dist/types-BINlP9MK.d.ts +286 -0
  119. package/dist/types-BaZccpvk.d.mts +48 -0
  120. package/dist/types-BaZccpvk.d.ts +48 -0
  121. package/dist/types-CK4We_aI.d.mts +270 -0
  122. package/dist/types-CK4We_aI.d.ts +270 -0
  123. package/dist/types-CbTsi9CZ.d.mts +31 -0
  124. package/dist/types-CbTsi9CZ.d.ts +31 -0
  125. package/dist/types-CiYK5Klf.d.mts +99 -0
  126. package/dist/types-D3R6GzOw.d.mts +70 -0
  127. package/dist/types-Dlu52uDy.d.ts +99 -0
  128. package/dist/types-iFeyR443.d.ts +70 -0
  129. package/dist/universalExport/index.d.mts +235 -0
  130. package/dist/universalExport/index.d.ts +235 -0
  131. package/dist/universalExport/server/index.d.mts +1270 -0
  132. package/dist/universalExport/server/index.d.ts +1270 -0
  133. package/dist/universalFile/index.d.mts +480 -0
  134. package/dist/universalFile/index.d.ts +480 -0
  135. package/dist/universalFile/server/index.d.mts +4516 -0
  136. package/dist/universalFile/server/index.d.ts +4516 -0
  137. package/dist/useElectronStorage-Dj0rcorG.d.mts +65 -0
  138. package/dist/useElectronStorage-DwnNfIhl.d.ts +65 -0
  139. package/dist/utils/index.d.mts +192 -0
  140. package/dist/utils/index.d.ts +192 -0
  141. package/package.json +2 -1
  142. package/dist/chunk-4FOBBWXW.mjs +0 -179
  143. package/dist/chunk-4FOBBWXW.mjs.map +0 -1
  144. package/dist/chunk-G6WRJ2H2.js +0 -187
  145. package/dist/chunk-G6WRJ2H2.js.map +0 -1
  146. package/dist/chunk-HEMA7SWK.mjs.map +0 -1
  147. package/dist/chunk-KGRQNEIR.mjs.map +0 -1
  148. package/dist/chunk-O26VCNS3.js.map +0 -1
  149. package/dist/chunk-ROEYW4A7.js.map +0 -1
@@ -1,41 +1,24 @@
1
1
  'use strict';
2
2
 
3
+ var chunkFAHLZIYQ_js = require('../chunk-FAHLZIYQ.js');
3
4
  var chunkCD77U7LZ_js = require('../chunk-CD77U7LZ.js');
4
5
  var chunk6W5BMXJG_js = require('../chunk-6W5BMXJG.js');
5
- var chunkO26VCNS3_js = require('../chunk-O26VCNS3.js');
6
- var chunkROEYW4A7_js = require('../chunk-ROEYW4A7.js');
6
+ var chunkUOFTHYIH_js = require('../chunk-UOFTHYIH.js');
7
+ var chunk5QMBZP7S_js = require('../chunk-5QMBZP7S.js');
7
8
  var chunkDUHZ7VZP_js = require('../chunk-DUHZ7VZP.js');
8
9
  var chunkSVWQN2LR_js = require('../chunk-SVWQN2LR.js');
9
10
  require('../chunk-DGUM43GV.js');
10
11
 
11
- // src/auth/server.ts
12
- async function validateApiAuth(request) {
13
- try {
14
- const token = chunkDUHZ7VZP_js.getTokenFromRequest(request);
15
- if (!token) return null;
16
- const secret = process.env.JWT_SECRET || "your-secret-key";
17
- const payload = await chunkDUHZ7VZP_js.verifyJwtToken(token, secret);
18
- if (!payload || !payload.userId) return null;
19
- return {
20
- id: payload.userId,
21
- email: payload.email,
22
- username: payload.username,
23
- role: payload.role
24
- };
25
- } catch (error) {
26
- console.error("API \u8EAB\u4EFD\u9A8C\u8BC1\u5931\u8D25:", error);
27
- return null;
28
- }
29
- }
30
- async function validateApiAuthNumeric(request) {
31
- const user2 = await validateApiAuth(request);
32
- if (!user2) return null;
33
- return {
34
- ...user2,
35
- id: parseInt(user2.id, 10)
36
- };
37
- }
38
12
 
13
+
14
+ Object.defineProperty(exports, "validateApiAuth", {
15
+ enumerable: true,
16
+ get: function () { return chunkFAHLZIYQ_js.validateApiAuth; }
17
+ });
18
+ Object.defineProperty(exports, "validateApiAuthNumeric", {
19
+ enumerable: true,
20
+ get: function () { return chunkFAHLZIYQ_js.validateApiAuthNumeric; }
21
+ });
39
22
  Object.defineProperty(exports, "createAnalyticsAdapter", {
40
23
  enumerable: true,
41
24
  get: function () { return chunkCD77U7LZ_js.createAnalyticsAdapter; }
@@ -90,23 +73,23 @@ Object.defineProperty(exports, "createAuthMiddleware", {
90
73
  });
91
74
  Object.defineProperty(exports, "API_ROUTES", {
92
75
  enumerable: true,
93
- get: function () { return chunkO26VCNS3_js.API_ROUTES; }
76
+ get: function () { return chunkUOFTHYIH_js.API_ROUTES; }
94
77
  });
95
78
  Object.defineProperty(exports, "BaseApiClient", {
96
79
  enumerable: true,
97
- get: function () { return chunkO26VCNS3_js.BaseApiClient; }
80
+ get: function () { return chunkUOFTHYIH_js.BaseApiClient; }
98
81
  });
99
82
  Object.defineProperty(exports, "STORAGE_KEYS", {
100
83
  enumerable: true,
101
- get: function () { return chunkO26VCNS3_js.STORAGE_KEYS; }
84
+ get: function () { return chunkUOFTHYIH_js.STORAGE_KEYS; }
102
85
  });
103
86
  Object.defineProperty(exports, "useAuth", {
104
87
  enumerable: true,
105
- get: function () { return chunkROEYW4A7_js.useAuth; }
88
+ get: function () { return chunk5QMBZP7S_js.useAuth; }
106
89
  });
107
90
  Object.defineProperty(exports, "useAuthForm", {
108
91
  enumerable: true,
109
- get: function () { return chunkROEYW4A7_js.useAuthForm; }
92
+ get: function () { return chunk5QMBZP7S_js.useAuthForm; }
110
93
  });
111
94
  Object.defineProperty(exports, "DrizzleAuthService", {
112
95
  enumerable: true,
@@ -164,7 +147,5 @@ Object.defineProperty(exports, "verifications", {
164
147
  enumerable: true,
165
148
  get: function () { return chunkSVWQN2LR_js.verifications; }
166
149
  });
167
- exports.validateApiAuth = validateApiAuth;
168
- exports.validateApiAuthNumeric = validateApiAuthNumeric;
169
150
  //# sourceMappingURL=index.js.map
170
151
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/server.ts"],"names":["getTokenFromRequest","verifyJwtToken","user"],"mappings":";;;;;;;;;;;AAOA,eAAsB,gBAAgB,OAAA,EAAsB;AAC1D,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQA,qCAAoB,OAAO,CAAA;AACzC,IAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAInB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,GAAA,CAAI,UAAA,IAAc,iBAAA;AACzC,IAAA,MAAM,OAAA,GAAU,MAAMC,+BAAA,CAAe,KAAA,EAAO,MAAM,CAAA;AAElD,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,OAAA,CAAQ,QAAQ,OAAO,IAAA;AAExC,IAAA,OAAO;AAAA,MACL,IAAI,OAAA,CAAQ,MAAA;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,MAAM,OAAA,CAAQ;AAAA,KAChB;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,6CAAe,KAAK,CAAA;AAClC,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAMA,eAAsB,uBAAuB,OAAA,EAAsB;AACjE,EAAA,MAAMC,KAAAA,GAAO,MAAM,eAAA,CAAgB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAACA,OAAM,OAAO,IAAA;AAElB,EAAA,OAAO;AAAA,IACL,GAAGA,KAAAA;AAAA,IACH,EAAA,EAAI,QAAA,CAASA,KAAAA,CAAK,EAAA,EAAI,EAAE;AAAA,GAC1B;AACF","file":"index.js","sourcesContent":["import { NextRequest } from 'next/server';\nimport { getTokenFromRequest, verifyJwtToken } from './services';\n\n/**\n * 验证 API 请求的身份\n * 从请求头中获取 Token 并验证,返回用户信息\n */\nexport async function validateApiAuth(request: NextRequest) {\n try {\n const token = getTokenFromRequest(request);\n if (!token) return null;\n\n // 注意:这里需要 JWT_SECRET,在演示环境中可能没有\n // 这是一个基础实现,实际使用时需要确保环境变量正确\n const secret = process.env.JWT_SECRET || 'your-secret-key';\n const payload = await verifyJwtToken(token, secret);\n \n if (!payload || !payload.userId) return null;\n\n return {\n id: payload.userId,\n email: payload.email,\n username: payload.username,\n role: payload.role,\n };\n } catch (error) {\n console.error('API 身份验证失败:', error);\n return null;\n }\n}\n\n/**\n * 验证 API 请求的身份(针对使用数字 ID 的项目)\n * 将 string 类型的 userId 转换为 number 类型\n */\nexport async function validateApiAuthNumeric(request: NextRequest) {\n const user = await validateApiAuth(request);\n if (!user) return null;\n \n return {\n ...user,\n id: parseInt(user.id, 10)\n };\n}\n\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,40 +1,10 @@
1
+ export { validateApiAuth, validateApiAuthNumeric } from '../chunk-6BZ3QFA5.mjs';
1
2
  export { createAnalyticsAdapter, createDefaultBaseConfig, createDefaultLoginConfig, createDefaultRegisterConfig, createLoginHandler, createLoginOptionsHandler, createLogoutHandler, createLogoutOptionsHandler, createMeHandler, createMeOptionsHandler, createRegisterHandler, createRegisterOptionsHandler } from '../chunk-QAT2RWAO.mjs';
2
3
  export { createAuthMiddleware } from '../chunk-ESRCX5TQ.mjs';
3
- export { API_ROUTES, BaseApiClient, STORAGE_KEYS } from '../chunk-HEMA7SWK.mjs';
4
- export { useAuth, useAuthForm } from '../chunk-KGRQNEIR.mjs';
5
- import { getTokenFromRequest, verifyJwtToken } from '../chunk-OCR5DS4C.mjs';
4
+ export { API_ROUTES, BaseApiClient, STORAGE_KEYS } from '../chunk-6YKMCPQI.mjs';
5
+ export { useAuth, useAuthForm } from '../chunk-KW5JH6V6.mjs';
6
6
  export { DrizzleAuthService, generateToken, getTokenFromRequest, hashPassword, verifyJwtToken, verifyPassword } from '../chunk-OCR5DS4C.mjs';
7
7
  export { account, accountRelations, session, sessionRelations, user, userRelations, userRole, verifications } from '../chunk-AIKEVVDR.mjs';
8
8
  import '../chunk-BJTO5JO5.mjs';
9
-
10
- // src/auth/server.ts
11
- async function validateApiAuth(request) {
12
- try {
13
- const token = getTokenFromRequest(request);
14
- if (!token) return null;
15
- const secret = process.env.JWT_SECRET || "your-secret-key";
16
- const payload = await verifyJwtToken(token, secret);
17
- if (!payload || !payload.userId) return null;
18
- return {
19
- id: payload.userId,
20
- email: payload.email,
21
- username: payload.username,
22
- role: payload.role
23
- };
24
- } catch (error) {
25
- console.error("API \u8EAB\u4EFD\u9A8C\u8BC1\u5931\u8D25:", error);
26
- return null;
27
- }
28
- }
29
- async function validateApiAuthNumeric(request) {
30
- const user2 = await validateApiAuth(request);
31
- if (!user2) return null;
32
- return {
33
- ...user2,
34
- id: parseInt(user2.id, 10)
35
- };
36
- }
37
-
38
- export { validateApiAuth, validateApiAuthNumeric };
39
9
  //# sourceMappingURL=index.mjs.map
40
10
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/auth/server.ts"],"names":["user"],"mappings":";;;;;;;;;;AAOA,eAAsB,gBAAgB,OAAA,EAAsB;AAC1D,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,oBAAoB,OAAO,CAAA;AACzC,IAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAInB,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,GAAA,CAAI,UAAA,IAAc,iBAAA;AACzC,IAAA,MAAM,OAAA,GAAU,MAAM,cAAA,CAAe,KAAA,EAAO,MAAM,CAAA;AAElD,IAAA,IAAI,CAAC,OAAA,IAAW,CAAC,OAAA,CAAQ,QAAQ,OAAO,IAAA;AAExC,IAAA,OAAO;AAAA,MACL,IAAI,OAAA,CAAQ,MAAA;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,MAAM,OAAA,CAAQ;AAAA,KAChB;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,6CAAe,KAAK,CAAA;AAClC,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAMA,eAAsB,uBAAuB,OAAA,EAAsB;AACjE,EAAA,MAAMA,KAAAA,GAAO,MAAM,eAAA,CAAgB,OAAO,CAAA;AAC1C,EAAA,IAAI,CAACA,OAAM,OAAO,IAAA;AAElB,EAAA,OAAO;AAAA,IACL,GAAGA,KAAAA;AAAA,IACH,EAAA,EAAI,QAAA,CAASA,KAAAA,CAAK,EAAA,EAAI,EAAE;AAAA,GAC1B;AACF","file":"index.mjs","sourcesContent":["import { NextRequest } from 'next/server';\nimport { getTokenFromRequest, verifyJwtToken } from './services';\n\n/**\n * 验证 API 请求的身份\n * 从请求头中获取 Token 并验证,返回用户信息\n */\nexport async function validateApiAuth(request: NextRequest) {\n try {\n const token = getTokenFromRequest(request);\n if (!token) return null;\n\n // 注意:这里需要 JWT_SECRET,在演示环境中可能没有\n // 这是一个基础实现,实际使用时需要确保环境变量正确\n const secret = process.env.JWT_SECRET || 'your-secret-key';\n const payload = await verifyJwtToken(token, secret);\n \n if (!payload || !payload.userId) return null;\n\n return {\n id: payload.userId,\n email: payload.email,\n username: payload.username,\n role: payload.role,\n };\n } catch (error) {\n console.error('API 身份验证失败:', error);\n return null;\n }\n}\n\n/**\n * 验证 API 请求的身份(针对使用数字 ID 的项目)\n * 将 string 类型的 userId 转换为 number 类型\n */\nexport async function validateApiAuthNumeric(request: NextRequest) {\n const user = await validateApiAuth(request);\n if (!user) return null;\n \n return {\n ...user,\n id: parseInt(user.id, 10)\n };\n}\n\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
@@ -0,0 +1,75 @@
1
+ import { D as DrizzleAuthService, U as UserInfo, S as SessionInfo } from '../../drizzle-auth-service-DZY2F1sv.mjs';
2
+ import '../../enums-Dume-V5Y.mjs';
3
+ import 'drizzle-orm/pg-core';
4
+
5
+ /**
6
+ * Auth Middleware - Types
7
+ * 认证中间件类型定义
8
+ */
9
+
10
+ /**
11
+ * 认证级别
12
+ */
13
+ type AuthLevel = 'none' | 'user' | 'admin' | 'super_admin';
14
+ /**
15
+ * 路由上下文
16
+ */
17
+ interface RouteContext {
18
+ /**
19
+ * 用户信息(认证后注入)
20
+ */
21
+ user?: UserInfo;
22
+ /**
23
+ * 会话信息(认证后注入)
24
+ */
25
+ session?: SessionInfo;
26
+ /**
27
+ * 路由参数
28
+ */
29
+ params?: any;
30
+ }
31
+ /**
32
+ * 路由处理器
33
+ */
34
+ type RouteHandler = (request: Request, context: RouteContext) => Promise<Response>;
35
+ /**
36
+ * 认证中间件配置
37
+ */
38
+ interface AuthMiddlewareConfig {
39
+ /**
40
+ * 认证服务实例
41
+ */
42
+ authService: DrizzleAuthService;
43
+ }
44
+
45
+ /**
46
+ * Auth Middleware - withAuth
47
+ * 认证中间件
48
+ */
49
+
50
+ /**
51
+ * 创建认证中间件
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * import { createAuthMiddleware } from '@qhr123/sa2kit/auth/middleware';
56
+ *
57
+ * const { withAuth, requireAdmin } = createAuthMiddleware({
58
+ * authService: myAuthService,
59
+ * });
60
+ *
61
+ * // 使用中间件
62
+ * export const GET = requireAdmin(async (request, context) => {
63
+ * const { user } = context; // 自动注入用户信息
64
+ * // ... 业务逻辑
65
+ * });
66
+ * ```
67
+ */
68
+ declare function createAuthMiddleware(config: AuthMiddlewareConfig): {
69
+ withAuth: (handler: RouteHandler, level?: AuthLevel) => RouteHandler;
70
+ requireAuth: (handler: RouteHandler) => RouteHandler;
71
+ requireAdmin: (handler: RouteHandler) => RouteHandler;
72
+ requireSuperAdmin: (handler: RouteHandler) => RouteHandler;
73
+ };
74
+
75
+ export { type AuthLevel, type AuthMiddlewareConfig, type RouteContext, type RouteHandler, createAuthMiddleware };
@@ -0,0 +1,75 @@
1
+ import { D as DrizzleAuthService, U as UserInfo, S as SessionInfo } from '../../drizzle-auth-service-Bxlovhv8.js';
2
+ import '../../enums-Dume-V5Y.js';
3
+ import 'drizzle-orm/pg-core';
4
+
5
+ /**
6
+ * Auth Middleware - Types
7
+ * 认证中间件类型定义
8
+ */
9
+
10
+ /**
11
+ * 认证级别
12
+ */
13
+ type AuthLevel = 'none' | 'user' | 'admin' | 'super_admin';
14
+ /**
15
+ * 路由上下文
16
+ */
17
+ interface RouteContext {
18
+ /**
19
+ * 用户信息(认证后注入)
20
+ */
21
+ user?: UserInfo;
22
+ /**
23
+ * 会话信息(认证后注入)
24
+ */
25
+ session?: SessionInfo;
26
+ /**
27
+ * 路由参数
28
+ */
29
+ params?: any;
30
+ }
31
+ /**
32
+ * 路由处理器
33
+ */
34
+ type RouteHandler = (request: Request, context: RouteContext) => Promise<Response>;
35
+ /**
36
+ * 认证中间件配置
37
+ */
38
+ interface AuthMiddlewareConfig {
39
+ /**
40
+ * 认证服务实例
41
+ */
42
+ authService: DrizzleAuthService;
43
+ }
44
+
45
+ /**
46
+ * Auth Middleware - withAuth
47
+ * 认证中间件
48
+ */
49
+
50
+ /**
51
+ * 创建认证中间件
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * import { createAuthMiddleware } from '@qhr123/sa2kit/auth/middleware';
56
+ *
57
+ * const { withAuth, requireAdmin } = createAuthMiddleware({
58
+ * authService: myAuthService,
59
+ * });
60
+ *
61
+ * // 使用中间件
62
+ * export const GET = requireAdmin(async (request, context) => {
63
+ * const { user } = context; // 自动注入用户信息
64
+ * // ... 业务逻辑
65
+ * });
66
+ * ```
67
+ */
68
+ declare function createAuthMiddleware(config: AuthMiddlewareConfig): {
69
+ withAuth: (handler: RouteHandler, level?: AuthLevel) => RouteHandler;
70
+ requireAuth: (handler: RouteHandler) => RouteHandler;
71
+ requireAdmin: (handler: RouteHandler) => RouteHandler;
72
+ requireSuperAdmin: (handler: RouteHandler) => RouteHandler;
73
+ };
74
+
75
+ export { type AuthLevel, type AuthMiddlewareConfig, type RouteContext, type RouteHandler, createAuthMiddleware };
@@ -0,0 +1,261 @@
1
+ import { D as DrizzleAuthService } from '../../drizzle-auth-service-DZY2F1sv.mjs';
2
+ import '../../enums-Dume-V5Y.mjs';
3
+ import 'drizzle-orm/pg-core';
4
+
5
+ /**
6
+ * Auth Routes - Types
7
+ * 路由处理器类型定义
8
+ */
9
+
10
+ /**
11
+ * 基础路由配置
12
+ */
13
+ interface BaseRouteConfig {
14
+ /**
15
+ * 认证服务实例
16
+ */
17
+ authService: DrizzleAuthService;
18
+ /**
19
+ * 可选的 Analytics 服务
20
+ */
21
+ analytics?: {
22
+ track: (eventName: string, properties: any) => Promise<void>;
23
+ };
24
+ /**
25
+ * CORS 配置
26
+ */
27
+ cors?: {
28
+ enabled?: boolean;
29
+ origin?: string | string[];
30
+ methods?: string[];
31
+ allowedHeaders?: string[];
32
+ credentials?: boolean;
33
+ };
34
+ }
35
+ /**
36
+ * 登录路由配置
37
+ */
38
+ interface LoginRouteConfig extends BaseRouteConfig {
39
+ /**
40
+ * Cookie 配置
41
+ */
42
+ cookieOptions?: {
43
+ name?: string;
44
+ httpOnly?: boolean;
45
+ secure?: boolean;
46
+ sameSite?: 'strict' | 'lax' | 'none';
47
+ maxAge?: number;
48
+ path?: string;
49
+ };
50
+ }
51
+ /**
52
+ * 注册路由配置
53
+ */
54
+ interface RegisterRouteConfig extends BaseRouteConfig {
55
+ /**
56
+ * 默认角色
57
+ */
58
+ defaultRole?: 'USER' | 'ADMIN' | 'SUPER_ADMIN';
59
+ /**
60
+ * 是否需要邮箱验证
61
+ */
62
+ emailVerificationRequired?: boolean;
63
+ /**
64
+ * Cookie 配置
65
+ */
66
+ cookieOptions?: {
67
+ name?: string;
68
+ httpOnly?: boolean;
69
+ secure?: boolean;
70
+ sameSite?: 'strict' | 'lax' | 'none';
71
+ maxAge?: number;
72
+ path?: string;
73
+ };
74
+ }
75
+ /**
76
+ * 标准 API 响应
77
+ */
78
+ interface ApiResponse<T = any> {
79
+ success: boolean;
80
+ data?: T;
81
+ error?: string;
82
+ message?: string;
83
+ }
84
+
85
+ /**
86
+ * Auth Routes - Login
87
+ * 登录路由处理器
88
+ */
89
+
90
+ /**
91
+ * 创建登录路由处理器
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * import { createLoginHandler } from 'sa2kit/auth/routes';
96
+ *
97
+ * export const POST = createLoginHandler({
98
+ * authService: myAuthService,
99
+ * analytics: myAnalytics,
100
+ * cors: { enabled: true },
101
+ * });
102
+ * ```
103
+ */
104
+ declare function createLoginHandler(config: LoginRouteConfig): (request: Request) => Promise<Response>;
105
+ /**
106
+ * 创建 CORS 预检请求处理器
107
+ */
108
+ declare function createLoginOptionsHandler(config: LoginRouteConfig): (request: Request) => Promise<Response>;
109
+
110
+ /**
111
+ * Auth Routes - Register
112
+ * 注册路由处理器
113
+ */
114
+
115
+ /**
116
+ * 创建注册路由处理器
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * import { createRegisterHandler } from 'sa2kit/auth/routes';
121
+ *
122
+ * export const POST = createRegisterHandler({
123
+ * authService: myAuthService,
124
+ * defaultRole: 'USER',
125
+ * cors: { enabled: true },
126
+ * });
127
+ * ```
128
+ */
129
+ declare function createRegisterHandler(config: RegisterRouteConfig): (request: Request) => Promise<Response>;
130
+ /**
131
+ * 创建 CORS 预检请求处理器
132
+ */
133
+ declare function createRegisterOptionsHandler(config: RegisterRouteConfig): (request: Request) => Promise<Response>;
134
+
135
+ /**
136
+ * Auth Routes - Me
137
+ * 获取当前用户信息路由处理器
138
+ */
139
+
140
+ /**
141
+ * 创建获取当前用户信息路由处理器
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * import { createMeHandler } from 'sa2kit/auth/routes';
146
+ *
147
+ * export const GET = createMeHandler({
148
+ * authService: myAuthService,
149
+ * cors: { enabled: true },
150
+ * });
151
+ * ```
152
+ */
153
+ declare function createMeHandler(config: BaseRouteConfig): (request: Request) => Promise<Response>;
154
+ /**
155
+ * 创建 CORS 预检请求处理器
156
+ */
157
+ declare function createMeOptionsHandler(config: BaseRouteConfig): (request: Request) => Promise<Response>;
158
+
159
+ /**
160
+ * Auth Routes - Logout
161
+ * 登出路由处理器
162
+ */
163
+
164
+ /**
165
+ * 创建登出路由处理器
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * import { createLogoutHandler } from 'sa2kit/auth/routes';
170
+ *
171
+ * export const POST = createLogoutHandler({
172
+ * authService: myAuthService,
173
+ * cors: { enabled: true },
174
+ * });
175
+ * ```
176
+ */
177
+ declare function createLogoutHandler(config: BaseRouteConfig): (request: Request) => Promise<Response>;
178
+ /**
179
+ * 创建 CORS 预检请求处理器
180
+ */
181
+ declare function createLogoutOptionsHandler(config: BaseRouteConfig): (request: Request) => Promise<Response>;
182
+
183
+ /**
184
+ * Auth Routes - Default Configurations
185
+ * 默认路由配置
186
+ */
187
+
188
+ /**
189
+ * 创建默认的基础路由配置
190
+ */
191
+ declare function createDefaultBaseConfig(authService: DrizzleAuthService, overrides?: Partial<BaseRouteConfig>): BaseRouteConfig;
192
+ /**
193
+ * 创建默认的登录路由配置
194
+ */
195
+ declare function createDefaultLoginConfig(authService: DrizzleAuthService, overrides?: Partial<LoginRouteConfig>): LoginRouteConfig;
196
+ /**
197
+ * 创建默认的注册路由配置
198
+ */
199
+ declare function createDefaultRegisterConfig(authService: DrizzleAuthService, overrides?: Partial<RegisterRouteConfig>): RegisterRouteConfig;
200
+
201
+ /**
202
+ * Auth Routes - Analytics Adapter
203
+ * 埋点适配器,用于适配不同的埋点服务
204
+ */
205
+ /**
206
+ * 埋点事件接口
207
+ */
208
+ interface AnalyticsEvent {
209
+ id: string;
210
+ eventType: string;
211
+ eventName: string;
212
+ timestamp: string;
213
+ priority: number;
214
+ userId: string;
215
+ sessionId: string;
216
+ deviceId: string;
217
+ platform: string;
218
+ appVersion: string;
219
+ sdkVersion: string;
220
+ properties: Record<string, any>;
221
+ }
222
+ /**
223
+ * 埋点服务接口
224
+ */
225
+ interface AnalyticsService {
226
+ insertAnalyticsEvents(events: AnalyticsEvent[]): Promise<void>;
227
+ }
228
+ /**
229
+ * 创建埋点适配器
230
+ *
231
+ * @param analyticsService 埋点服务实例
232
+ * @param options 可选配置
233
+ * @returns 符合 sa2kit 格式的埋点函数
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * import { createAnalyticsAdapter } from 'sa2kit/auth/routes';
238
+ * import { analyticsService } from '@/lib/analytics';
239
+ *
240
+ * const analytics = createAnalyticsAdapter(analyticsService, {
241
+ * platform: 'backend',
242
+ * appVersion: '1.0.0',
243
+ * });
244
+ *
245
+ * // 在路由配置中使用
246
+ * const config = createDefaultLoginConfig(authService, {
247
+ * analytics,
248
+ * });
249
+ * ```
250
+ */
251
+ declare function createAnalyticsAdapter(analyticsService: AnalyticsService, options?: {
252
+ platform?: string;
253
+ appVersion?: string;
254
+ sdkVersion?: string;
255
+ deviceId?: string;
256
+ generateId?: () => string;
257
+ }): {
258
+ track: (eventName: string, properties: any) => Promise<void>;
259
+ };
260
+
261
+ export { type AnalyticsEvent, type AnalyticsService, type ApiResponse, type BaseRouteConfig, type LoginRouteConfig, type RegisterRouteConfig, createAnalyticsAdapter, createDefaultBaseConfig, createDefaultLoginConfig, createDefaultRegisterConfig, createLoginHandler, createLoginOptionsHandler, createLogoutHandler, createLogoutOptionsHandler, createMeHandler, createMeOptionsHandler, createRegisterHandler, createRegisterOptionsHandler };