koa-boot-runtime 1.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 (355) hide show
  1. package/dist/aiToolRegistry.d.ts +32 -0
  2. package/dist/aiToolRegistry.d.ts.map +1 -0
  3. package/dist/aiToolRegistry.js +41 -0
  4. package/dist/aiToolRegistry.js.map +1 -0
  5. package/dist/build/routes.d.ts +3 -0
  6. package/dist/build/routes.d.ts.map +1 -0
  7. package/dist/build/routes.js +4055 -0
  8. package/dist/build/routes.js.map +1 -0
  9. package/dist/build/swagger.json +6752 -0
  10. package/dist/common/decorators/index.d.ts +2 -0
  11. package/dist/common/decorators/index.d.ts.map +1 -0
  12. package/dist/common/decorators/index.js +18 -0
  13. package/dist/common/decorators/index.js.map +1 -0
  14. package/dist/common/decorators/validation.d.ts +33 -0
  15. package/dist/common/decorators/validation.d.ts.map +1 -0
  16. package/dist/common/decorators/validation.js +215 -0
  17. package/dist/common/decorators/validation.js.map +1 -0
  18. package/dist/common/dto.d.ts +17 -0
  19. package/dist/common/dto.d.ts.map +1 -0
  20. package/dist/common/dto.js +28 -0
  21. package/dist/common/dto.js.map +1 -0
  22. package/dist/common/enums/base.d.ts +14 -0
  23. package/dist/common/enums/base.d.ts.map +1 -0
  24. package/dist/common/enums/base.js +14 -0
  25. package/dist/common/enums/base.js.map +1 -0
  26. package/dist/common/enums/index.d.ts +8 -0
  27. package/dist/common/enums/index.d.ts.map +1 -0
  28. package/dist/common/enums/index.js +24 -0
  29. package/dist/common/enums/index.js.map +1 -0
  30. package/dist/common/enums/system.d.ts +14 -0
  31. package/dist/common/enums/system.d.ts.map +1 -0
  32. package/dist/common/enums/system.js +14 -0
  33. package/dist/common/enums/system.js.map +1 -0
  34. package/dist/common/index.d.ts +6 -0
  35. package/dist/common/index.d.ts.map +1 -0
  36. package/dist/common/index.js +25 -0
  37. package/dist/common/index.js.map +1 -0
  38. package/dist/common/paginate.d.ts +49 -0
  39. package/dist/common/paginate.d.ts.map +1 -0
  40. package/dist/common/paginate.js +47 -0
  41. package/dist/common/paginate.js.map +1 -0
  42. package/dist/common/types/index.d.ts +8 -0
  43. package/dist/common/types/index.d.ts.map +1 -0
  44. package/dist/common/types/index.js +18 -0
  45. package/dist/common/types/index.js.map +1 -0
  46. package/dist/common/types/pagination.d.ts +76 -0
  47. package/dist/common/types/pagination.d.ts.map +1 -0
  48. package/dist/common/types/pagination.js +29 -0
  49. package/dist/common/types/pagination.js.map +1 -0
  50. package/dist/common/types/request.d.ts +66 -0
  51. package/dist/common/types/request.d.ts.map +1 -0
  52. package/dist/common/types/request.js +4 -0
  53. package/dist/common/types/request.js.map +1 -0
  54. package/dist/common/types/response.d.ts +109 -0
  55. package/dist/common/types/response.d.ts.map +1 -0
  56. package/dist/common/types/response.js +50 -0
  57. package/dist/common/types/response.js.map +1 -0
  58. package/dist/common/types/sort.d.ts +71 -0
  59. package/dist/common/types/sort.d.ts.map +1 -0
  60. package/dist/common/types/sort.js +46 -0
  61. package/dist/common/types/sort.js.map +1 -0
  62. package/dist/config/database.d.ts +12 -0
  63. package/dist/config/database.d.ts.map +1 -0
  64. package/dist/config/database.js +24 -0
  65. package/dist/config/database.js.map +1 -0
  66. package/dist/config/index.d.ts +144 -0
  67. package/dist/config/index.d.ts.map +1 -0
  68. package/dist/config/index.js +180 -0
  69. package/dist/config/index.js.map +1 -0
  70. package/dist/config/ioc.d.ts +6 -0
  71. package/dist/config/ioc.d.ts.map +1 -0
  72. package/dist/config/ioc.js +29 -0
  73. package/dist/config/ioc.js.map +1 -0
  74. package/dist/index.d.ts +12 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +49 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/middleware/auth.d.ts +3 -0
  79. package/dist/middleware/auth.d.ts.map +1 -0
  80. package/dist/middleware/auth.js +52 -0
  81. package/dist/middleware/auth.js.map +1 -0
  82. package/dist/middleware/errorHandler.d.ts +3 -0
  83. package/dist/middleware/errorHandler.d.ts.map +1 -0
  84. package/dist/middleware/errorHandler.js +40 -0
  85. package/dist/middleware/errorHandler.js.map +1 -0
  86. package/dist/middleware/logger.d.ts +3 -0
  87. package/dist/middleware/logger.d.ts.map +1 -0
  88. package/dist/middleware/logger.js +13 -0
  89. package/dist/middleware/logger.js.map +1 -0
  90. package/dist/middleware/operationLogger.d.ts +11 -0
  91. package/dist/middleware/operationLogger.d.ts.map +1 -0
  92. package/dist/middleware/operationLogger.js +155 -0
  93. package/dist/middleware/operationLogger.js.map +1 -0
  94. package/dist/middleware/permission.d.ts +23 -0
  95. package/dist/middleware/permission.d.ts.map +1 -0
  96. package/dist/middleware/permission.js +153 -0
  97. package/dist/middleware/permission.js.map +1 -0
  98. package/dist/middleware/validate.d.ts +7 -0
  99. package/dist/middleware/validate.d.ts.map +1 -0
  100. package/dist/middleware/validate.js +53 -0
  101. package/dist/middleware/validate.js.map +1 -0
  102. package/dist/middlewares.d.ts +15 -0
  103. package/dist/middlewares.d.ts.map +1 -0
  104. package/dist/middlewares.js +24 -0
  105. package/dist/middlewares.js.map +1 -0
  106. package/dist/registerRoutes.d.ts +15 -0
  107. package/dist/registerRoutes.d.ts.map +1 -0
  108. package/dist/registerRoutes.js +83 -0
  109. package/dist/registerRoutes.js.map +1 -0
  110. package/dist/system/department/department.controller.d.ts +46 -0
  111. package/dist/system/department/department.controller.d.ts.map +1 -0
  112. package/dist/system/department/department.controller.js +203 -0
  113. package/dist/system/department/department.controller.js.map +1 -0
  114. package/dist/system/department/department.model.d.ts +33 -0
  115. package/dist/system/department/department.model.d.ts.map +1 -0
  116. package/dist/system/department/department.model.js +171 -0
  117. package/dist/system/department/department.model.js.map +1 -0
  118. package/dist/system/department/department.service.d.ts +40 -0
  119. package/dist/system/department/department.service.d.ts.map +1 -0
  120. package/dist/system/department/department.service.js +99 -0
  121. package/dist/system/department/department.service.js.map +1 -0
  122. package/dist/system/dictItem/dictItem.controller.d.ts +42 -0
  123. package/dist/system/dictItem/dictItem.controller.d.ts.map +1 -0
  124. package/dist/system/dictItem/dictItem.controller.js +167 -0
  125. package/dist/system/dictItem/dictItem.controller.js.map +1 -0
  126. package/dist/system/dictItem/dictItem.model.d.ts +38 -0
  127. package/dist/system/dictItem/dictItem.model.d.ts.map +1 -0
  128. package/dist/system/dictItem/dictItem.model.js +180 -0
  129. package/dist/system/dictItem/dictItem.model.js.map +1 -0
  130. package/dist/system/dictItem/dictItem.service.d.ts +33 -0
  131. package/dist/system/dictItem/dictItem.service.d.ts.map +1 -0
  132. package/dist/system/dictItem/dictItem.service.js +97 -0
  133. package/dist/system/dictItem/dictItem.service.js.map +1 -0
  134. package/dist/system/dictType/dictType.controller.d.ts +47 -0
  135. package/dist/system/dictType/dictType.controller.d.ts.map +1 -0
  136. package/dist/system/dictType/dictType.controller.js +174 -0
  137. package/dist/system/dictType/dictType.controller.js.map +1 -0
  138. package/dist/system/dictType/dictType.model.d.ts +31 -0
  139. package/dist/system/dictType/dictType.model.d.ts.map +1 -0
  140. package/dist/system/dictType/dictType.model.js +127 -0
  141. package/dist/system/dictType/dictType.model.js.map +1 -0
  142. package/dist/system/dictType/dictType.service.d.ts +27 -0
  143. package/dist/system/dictType/dictType.service.d.ts.map +1 -0
  144. package/dist/system/dictType/dictType.service.js +74 -0
  145. package/dist/system/dictType/dictType.service.js.map +1 -0
  146. package/dist/system/employee/employee.controller.d.ts +16 -0
  147. package/dist/system/employee/employee.controller.d.ts.map +1 -0
  148. package/dist/system/employee/employee.controller.js +111 -0
  149. package/dist/system/employee/employee.controller.js.map +1 -0
  150. package/dist/system/employee/employee.model.d.ts +34 -0
  151. package/dist/system/employee/employee.model.d.ts.map +1 -0
  152. package/dist/system/employee/employee.model.js +186 -0
  153. package/dist/system/employee/employee.model.js.map +1 -0
  154. package/dist/system/employee/employee.service.d.ts +16 -0
  155. package/dist/system/employee/employee.service.d.ts.map +1 -0
  156. package/dist/system/employee/employee.service.js +49 -0
  157. package/dist/system/employee/employee.service.js.map +1 -0
  158. package/dist/system/fileUpload/fileUpload.controller.d.ts +35 -0
  159. package/dist/system/fileUpload/fileUpload.controller.d.ts.map +1 -0
  160. package/dist/system/fileUpload/fileUpload.controller.js +228 -0
  161. package/dist/system/fileUpload/fileUpload.controller.js.map +1 -0
  162. package/dist/system/fileUpload/fileUpload.model.d.ts +13 -0
  163. package/dist/system/fileUpload/fileUpload.model.d.ts.map +1 -0
  164. package/dist/system/fileUpload/fileUpload.model.js +71 -0
  165. package/dist/system/fileUpload/fileUpload.model.js.map +1 -0
  166. package/dist/system/fileUpload/fileUpload.service.d.ts +29 -0
  167. package/dist/system/fileUpload/fileUpload.service.d.ts.map +1 -0
  168. package/dist/system/fileUpload/fileUpload.service.js +61 -0
  169. package/dist/system/fileUpload/fileUpload.service.js.map +1 -0
  170. package/dist/system/loginLog/loginLog.controller.d.ts +21 -0
  171. package/dist/system/loginLog/loginLog.controller.d.ts.map +1 -0
  172. package/dist/system/loginLog/loginLog.controller.js +149 -0
  173. package/dist/system/loginLog/loginLog.controller.js.map +1 -0
  174. package/dist/system/loginLog/loginLog.model.d.ts +26 -0
  175. package/dist/system/loginLog/loginLog.model.d.ts.map +1 -0
  176. package/dist/system/loginLog/loginLog.model.js +150 -0
  177. package/dist/system/loginLog/loginLog.model.js.map +1 -0
  178. package/dist/system/loginLog/loginLog.service.d.ts +24 -0
  179. package/dist/system/loginLog/loginLog.service.d.ts.map +1 -0
  180. package/dist/system/loginLog/loginLog.service.js +87 -0
  181. package/dist/system/loginLog/loginLog.service.js.map +1 -0
  182. package/dist/system/menu/menu.controller.d.ts +46 -0
  183. package/dist/system/menu/menu.controller.d.ts.map +1 -0
  184. package/dist/system/menu/menu.controller.js +203 -0
  185. package/dist/system/menu/menu.controller.js.map +1 -0
  186. package/dist/system/menu/menu.model.d.ts +45 -0
  187. package/dist/system/menu/menu.model.d.ts.map +1 -0
  188. package/dist/system/menu/menu.model.js +254 -0
  189. package/dist/system/menu/menu.model.js.map +1 -0
  190. package/dist/system/menu/menu.service.d.ts +40 -0
  191. package/dist/system/menu/menu.service.d.ts.map +1 -0
  192. package/dist/system/menu/menu.service.js +101 -0
  193. package/dist/system/menu/menu.service.js.map +1 -0
  194. package/dist/system/operationLog/operationLog.controller.d.ts +34 -0
  195. package/dist/system/operationLog/operationLog.controller.d.ts.map +1 -0
  196. package/dist/system/operationLog/operationLog.controller.js +126 -0
  197. package/dist/system/operationLog/operationLog.controller.js.map +1 -0
  198. package/dist/system/operationLog/operationLog.model.d.ts +38 -0
  199. package/dist/system/operationLog/operationLog.model.d.ts.map +1 -0
  200. package/dist/system/operationLog/operationLog.model.js +224 -0
  201. package/dist/system/operationLog/operationLog.model.js.map +1 -0
  202. package/dist/system/operationLog/operationLog.service.d.ts +46 -0
  203. package/dist/system/operationLog/operationLog.service.d.ts.map +1 -0
  204. package/dist/system/operationLog/operationLog.service.js +109 -0
  205. package/dist/system/operationLog/operationLog.service.js.map +1 -0
  206. package/dist/system/permission/permission.controller.d.ts +18 -0
  207. package/dist/system/permission/permission.controller.d.ts.map +1 -0
  208. package/dist/system/permission/permission.controller.js +160 -0
  209. package/dist/system/permission/permission.controller.js.map +1 -0
  210. package/dist/system/permission/permission.model.d.ts +39 -0
  211. package/dist/system/permission/permission.model.d.ts.map +1 -0
  212. package/dist/system/permission/permission.model.js +220 -0
  213. package/dist/system/permission/permission.model.js.map +1 -0
  214. package/dist/system/permission/permission.service.d.ts +40 -0
  215. package/dist/system/permission/permission.service.d.ts.map +1 -0
  216. package/dist/system/permission/permission.service.js +105 -0
  217. package/dist/system/permission/permission.service.js.map +1 -0
  218. package/dist/system/role/role.controller.d.ts +16 -0
  219. package/dist/system/role/role.controller.d.ts.map +1 -0
  220. package/dist/system/role/role.controller.js +123 -0
  221. package/dist/system/role/role.controller.js.map +1 -0
  222. package/dist/system/role/role.model.d.ts +25 -0
  223. package/dist/system/role/role.model.d.ts.map +1 -0
  224. package/dist/system/role/role.model.js +133 -0
  225. package/dist/system/role/role.model.js.map +1 -0
  226. package/dist/system/role/role.service.d.ts +17 -0
  227. package/dist/system/role/role.service.d.ts.map +1 -0
  228. package/dist/system/role/role.service.js +50 -0
  229. package/dist/system/role/role.service.js.map +1 -0
  230. package/dist/system/roleMenu/roleMenu.controller.d.ts +26 -0
  231. package/dist/system/roleMenu/roleMenu.controller.d.ts.map +1 -0
  232. package/dist/system/roleMenu/roleMenu.controller.js +83 -0
  233. package/dist/system/roleMenu/roleMenu.controller.js.map +1 -0
  234. package/dist/system/roleMenu/roleMenu.model.d.ts +35 -0
  235. package/dist/system/roleMenu/roleMenu.model.d.ts.map +1 -0
  236. package/dist/system/roleMenu/roleMenu.model.js +56 -0
  237. package/dist/system/roleMenu/roleMenu.model.js.map +1 -0
  238. package/dist/system/roleMenu/roleMenu.service.d.ts +35 -0
  239. package/dist/system/roleMenu/roleMenu.service.d.ts.map +1 -0
  240. package/dist/system/roleMenu/roleMenu.service.js +77 -0
  241. package/dist/system/roleMenu/roleMenu.service.js.map +1 -0
  242. package/dist/system/rolePermission/rolePermission.controller.d.ts +36 -0
  243. package/dist/system/rolePermission/rolePermission.controller.d.ts.map +1 -0
  244. package/dist/system/rolePermission/rolePermission.controller.js +115 -0
  245. package/dist/system/rolePermission/rolePermission.controller.js.map +1 -0
  246. package/dist/system/rolePermission/rolePermission.model.d.ts +45 -0
  247. package/dist/system/rolePermission/rolePermission.model.d.ts.map +1 -0
  248. package/dist/system/rolePermission/rolePermission.model.js +87 -0
  249. package/dist/system/rolePermission/rolePermission.model.js.map +1 -0
  250. package/dist/system/rolePermission/rolePermission.service.d.ts +50 -0
  251. package/dist/system/rolePermission/rolePermission.service.d.ts.map +1 -0
  252. package/dist/system/rolePermission/rolePermission.service.js +110 -0
  253. package/dist/system/rolePermission/rolePermission.service.js.map +1 -0
  254. package/dist/system/user/user.controller.d.ts +66 -0
  255. package/dist/system/user/user.controller.d.ts.map +1 -0
  256. package/dist/system/user/user.controller.js +322 -0
  257. package/dist/system/user/user.controller.js.map +1 -0
  258. package/dist/system/user/user.model.d.ts +58 -0
  259. package/dist/system/user/user.model.d.ts.map +1 -0
  260. package/dist/system/user/user.model.js +225 -0
  261. package/dist/system/user/user.model.js.map +1 -0
  262. package/dist/system/user/user.service.d.ts +73 -0
  263. package/dist/system/user/user.service.d.ts.map +1 -0
  264. package/dist/system/user/user.service.js +388 -0
  265. package/dist/system/user/user.service.js.map +1 -0
  266. package/dist/system/userRole/userRole.controller.d.ts +33 -0
  267. package/dist/system/userRole/userRole.controller.d.ts.map +1 -0
  268. package/dist/system/userRole/userRole.controller.js +231 -0
  269. package/dist/system/userRole/userRole.controller.js.map +1 -0
  270. package/dist/system/userRole/userRole.model.d.ts +14 -0
  271. package/dist/system/userRole/userRole.model.d.ts.map +1 -0
  272. package/dist/system/userRole/userRole.model.js +58 -0
  273. package/dist/system/userRole/userRole.model.js.map +1 -0
  274. package/dist/system/userRole/userRole.service.d.ts +29 -0
  275. package/dist/system/userRole/userRole.service.d.ts.map +1 -0
  276. package/dist/system/userRole/userRole.service.js +135 -0
  277. package/dist/system/userRole/userRole.service.js.map +1 -0
  278. package/dist/systemServices.d.ts +23 -0
  279. package/dist/systemServices.d.ts.map +1 -0
  280. package/dist/systemServices.js +40 -0
  281. package/dist/systemServices.js.map +1 -0
  282. package/dist/types.d.ts +29 -0
  283. package/dist/types.d.ts.map +1 -0
  284. package/dist/types.js +70 -0
  285. package/dist/types.js.map +1 -0
  286. package/dist/utils/aiClient.d.ts +55 -0
  287. package/dist/utils/aiClient.d.ts.map +1 -0
  288. package/dist/utils/aiClient.js +59 -0
  289. package/dist/utils/aiClient.js.map +1 -0
  290. package/dist/utils/banner.d.ts +10 -0
  291. package/dist/utils/banner.d.ts.map +1 -0
  292. package/dist/utils/banner.js +40 -0
  293. package/dist/utils/banner.js.map +1 -0
  294. package/dist/utils/crypto.d.ts +49 -0
  295. package/dist/utils/crypto.d.ts.map +1 -0
  296. package/dist/utils/crypto.js +113 -0
  297. package/dist/utils/crypto.js.map +1 -0
  298. package/dist/utils/dataScope.d.ts +41 -0
  299. package/dist/utils/dataScope.d.ts.map +1 -0
  300. package/dist/utils/dataScope.js +130 -0
  301. package/dist/utils/dataScope.js.map +1 -0
  302. package/dist/utils/date.d.ts +48 -0
  303. package/dist/utils/date.d.ts.map +1 -0
  304. package/dist/utils/date.js +145 -0
  305. package/dist/utils/date.js.map +1 -0
  306. package/dist/utils/emailClient.d.ts +15 -0
  307. package/dist/utils/emailClient.d.ts.map +1 -0
  308. package/dist/utils/emailClient.js +71 -0
  309. package/dist/utils/emailClient.js.map +1 -0
  310. package/dist/utils/jwt.d.ts +10 -0
  311. package/dist/utils/jwt.d.ts.map +1 -0
  312. package/dist/utils/jwt.js +31 -0
  313. package/dist/utils/jwt.js.map +1 -0
  314. package/dist/utils/logger.d.ts +34 -0
  315. package/dist/utils/logger.d.ts.map +1 -0
  316. package/dist/utils/logger.js +108 -0
  317. package/dist/utils/logger.js.map +1 -0
  318. package/dist/utils/ossClient.d.ts +38 -0
  319. package/dist/utils/ossClient.d.ts.map +1 -0
  320. package/dist/utils/ossClient.js +92 -0
  321. package/dist/utils/ossClient.js.map +1 -0
  322. package/dist/utils/permissionSync.d.ts +10 -0
  323. package/dist/utils/permissionSync.d.ts.map +1 -0
  324. package/dist/utils/permissionSync.js +11 -0
  325. package/dist/utils/permissionSync.js.map +1 -0
  326. package/dist/utils/redisClient.d.ts +91 -0
  327. package/dist/utils/redisClient.d.ts.map +1 -0
  328. package/dist/utils/redisClient.js +246 -0
  329. package/dist/utils/redisClient.js.map +1 -0
  330. package/dist/utils/sequence.d.ts +53 -0
  331. package/dist/utils/sequence.d.ts.map +1 -0
  332. package/dist/utils/sequence.js +109 -0
  333. package/dist/utils/sequence.js.map +1 -0
  334. package/dist/utils/smsClient.d.ts +15 -0
  335. package/dist/utils/smsClient.d.ts.map +1 -0
  336. package/dist/utils/smsClient.js +115 -0
  337. package/dist/utils/smsClient.js.map +1 -0
  338. package/dist/utils/supabaseClient.d.ts +5 -0
  339. package/dist/utils/supabaseClient.d.ts.map +1 -0
  340. package/dist/utils/supabaseClient.js +17 -0
  341. package/dist/utils/supabaseClient.js.map +1 -0
  342. package/dist/utils/unipushClient.d.ts +12 -0
  343. package/dist/utils/unipushClient.d.ts.map +1 -0
  344. package/dist/utils/unipushClient.js +109 -0
  345. package/dist/utils/unipushClient.js.map +1 -0
  346. package/dist/utils/validator.d.ts +74 -0
  347. package/dist/utils/validator.d.ts.map +1 -0
  348. package/dist/utils/validator.js +173 -0
  349. package/dist/utils/validator.js.map +1 -0
  350. package/dist/utils/wecom.d.ts +20 -0
  351. package/dist/utils/wecom.d.ts.map +1 -0
  352. package/dist/utils/wecom.js +126 -0
  353. package/dist/utils/wecom.js.map +1 -0
  354. package/package.json +84 -0
  355. package/templates/schema.system.prisma +283 -0
package/dist/types.js ADDED
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.userRole = exports.user = exports.rolePermission = exports.roleMenu = exports.role = exports.permission = exports.operationLog = exports.menu = exports.loginLog = exports.fileUpload = exports.employee = exports.dictType = exports.dictItem = exports.department = exports.normalizeDto = exports.paginateQuery = exports.decorators = exports.enums = void 0;
40
+ /**
41
+ * 类型聚合导出(供用户 import type 引用)。
42
+ *
43
+ * 示例:
44
+ * import { types } from 'koa-boot-runtime';
45
+ * import type { types as KBRTypes } from 'koa-boot-runtime';
46
+ * const u: KBRTypes.user.User = ...;
47
+ */
48
+ __exportStar(require("./common/types"), exports);
49
+ exports.enums = __importStar(require("./common/enums"));
50
+ exports.decorators = __importStar(require("./common/decorators"));
51
+ var paginate_1 = require("./common/paginate");
52
+ Object.defineProperty(exports, "paginateQuery", { enumerable: true, get: function () { return paginate_1.paginateQuery; } });
53
+ var dto_1 = require("./common/dto");
54
+ Object.defineProperty(exports, "normalizeDto", { enumerable: true, get: function () { return dto_1.normalizeDto; } });
55
+ // ===== 系统核心表只读类型(用户可 import type 引用,业务 DTO 由用户自定义)=====
56
+ exports.department = __importStar(require("./system/department/department.model"));
57
+ exports.dictItem = __importStar(require("./system/dictItem/dictItem.model"));
58
+ exports.dictType = __importStar(require("./system/dictType/dictType.model"));
59
+ exports.employee = __importStar(require("./system/employee/employee.model"));
60
+ exports.fileUpload = __importStar(require("./system/fileUpload/fileUpload.model"));
61
+ exports.loginLog = __importStar(require("./system/loginLog/loginLog.model"));
62
+ exports.menu = __importStar(require("./system/menu/menu.model"));
63
+ exports.operationLog = __importStar(require("./system/operationLog/operationLog.model"));
64
+ exports.permission = __importStar(require("./system/permission/permission.model"));
65
+ exports.role = __importStar(require("./system/role/role.model"));
66
+ exports.roleMenu = __importStar(require("./system/roleMenu/roleMenu.model"));
67
+ exports.rolePermission = __importStar(require("./system/rolePermission/rolePermission.model"));
68
+ exports.user = __importStar(require("./system/user/user.model"));
69
+ exports.userRole = __importStar(require("./system/userRole/userRole.model"));
70
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,iDAA+B;AAC/B,wDAAwC;AACxC,kEAAkD;AAClD,8CAAkD;AAAzC,yGAAA,aAAa,OAAA;AAEtB,oCAA4C;AAAnC,mGAAA,YAAY,OAAA;AAErB,yDAAyD;AACzD,mFAAmE;AACnE,6EAA6D;AAC7D,6EAA6D;AAC7D,6EAA6D;AAC7D,mFAAmE;AACnE,6EAA6D;AAC7D,iEAAiD;AACjD,yFAAyE;AACzE,mFAAmE;AACnE,iEAAiD;AACjD,6EAA6D;AAC7D,+FAA+E;AAC/E,iEAAiD;AACjD,6EAA6D"}
@@ -0,0 +1,55 @@
1
+ /** OpenAI 兼容对话消息 */
2
+ export interface AiMessage {
3
+ role: 'system' | 'user' | 'assistant' | 'tool';
4
+ content: string | null;
5
+ /** tool 角色消息必须携带,关联 assistant 返回的 tool_call_id */
6
+ tool_call_id?: string;
7
+ /** assistant 角色携带,透传模型返回的工具调用指令(二次请求必须原样回传) */
8
+ tool_calls?: AiToolCall[];
9
+ /**
10
+ * assistant 角色携带,思考模式(thinking)下的推理内容。
11
+ * DeepSeek V4 / 通义千问 thinking / GLM thinking 等厂商要求原样回传,否则 400。
12
+ */
13
+ reasoning_content?: string;
14
+ }
15
+ /** 模型返回的工具调用指令(只决定"调哪个工具 + 参数",不负责执行) */
16
+ export interface AiToolCall {
17
+ id: string;
18
+ type: 'function';
19
+ function: {
20
+ name: string;
21
+ arguments: string;
22
+ };
23
+ }
24
+ /** 工具定义(JSON Schema,随请求发给模型作为"说明书") */
25
+ export interface AiToolDef {
26
+ type: 'function';
27
+ function: {
28
+ name: string;
29
+ description: string;
30
+ parameters: Record<string, unknown>;
31
+ };
32
+ }
33
+ export interface AiChatOptions {
34
+ messages: AiMessage[];
35
+ tools?: AiToolDef[];
36
+ temperature?: number;
37
+ maxTokens?: number;
38
+ }
39
+ export interface AiChatResult {
40
+ content: string | null;
41
+ toolCalls: AiToolCall[];
42
+ /** 思考模式下的推理内容(供调用方在下一轮请求中原样回传) */
43
+ reasoningContent?: string | null;
44
+ }
45
+ /** AI 开关与凭证检查 */
46
+ export declare function isAiConfigured(): {
47
+ ok: boolean;
48
+ reason?: string;
49
+ };
50
+ /**
51
+ * 调用 Chat Completions(非流式,OpenAI 兼容协议)。
52
+ * 模型返回的 toolCalls 仅为"调用意图",由调用方解析后执行真实查询并回填 tool 消息。
53
+ */
54
+ export declare function aiChat(options: AiChatOptions): Promise<AiChatResult>;
55
+ //# sourceMappingURL=aiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiClient.d.ts","sourceRoot":"","sources":["../../src/utils/aiClient.ts"],"names":[],"mappings":"AAKA,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,uCAAuC;AACvC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,iBAAiB;AACjB,wBAAgB,cAAc,IAAI;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAKjE;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAyC1E"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isAiConfigured = isAiConfigured;
7
+ exports.aiChat = aiChat;
8
+ // 通用 OpenAI 兼容 AI 客户端:支持任意提供 /chat/completions 的厂商
9
+ // 换厂商只需改环境变量 AI_BASE_URL / AI_API_KEY / AI_MODEL,无需改动代码
10
+ // 已知兼容厂商:DeepSeek、OpenAI、Kimi(Moonshot)、智谱GLM、通义千问(DashScope)、豆包(火山方舟) 等
11
+ const config_1 = __importDefault(require("../config"));
12
+ /** AI 开关与凭证检查 */
13
+ function isAiConfigured() {
14
+ const { enabled, apiKey } = config_1.default.ai;
15
+ if (!enabled)
16
+ return { ok: false, reason: 'AI 助手未启用(服务端未设置 AI_ENABLED=true)' };
17
+ if (!apiKey)
18
+ return { ok: false, reason: 'AI 助手未配置密钥(服务端未设置 AI_API_KEY)' };
19
+ return { ok: true };
20
+ }
21
+ /**
22
+ * 调用 Chat Completions(非流式,OpenAI 兼容协议)。
23
+ * 模型返回的 toolCalls 仅为"调用意图",由调用方解析后执行真实查询并回填 tool 消息。
24
+ */
25
+ async function aiChat(options) {
26
+ const { baseUrl, apiKey, model, extraBody } = config_1.default.ai;
27
+ const hasTools = !!options.tools?.length;
28
+ const res = await fetch(`${baseUrl.replace(/\/+$/, '')}/chat/completions`, {
29
+ method: 'POST',
30
+ headers: {
31
+ 'Content-Type': 'application/json',
32
+ Authorization: `Bearer ${apiKey}`,
33
+ },
34
+ body: JSON.stringify({
35
+ model,
36
+ messages: options.messages,
37
+ tools: hasTools ? options.tools : undefined,
38
+ tool_choice: hasTools ? 'auto' : undefined,
39
+ temperature: options.temperature ?? 0.3,
40
+ max_tokens: options.maxTokens ?? 2048,
41
+ stream: false,
42
+ // 厂商扩展参数透传(如 DeepSeek V4 Pro 的 thinking 开关),未配置时为空
43
+ ...(extraBody ?? {}),
44
+ }),
45
+ });
46
+ if (!res.ok) {
47
+ const text = await res.text().catch(() => '');
48
+ throw new Error(`[ai] HTTP ${res.status} ${res.statusText} ${text.slice(0, 300)}`);
49
+ }
50
+ const data = (await res.json());
51
+ const message = data?.choices?.[0]?.message;
52
+ return {
53
+ content: message?.content ?? null,
54
+ toolCalls: message?.tool_calls ?? [],
55
+ // 思考模式的推理内容,原样透出供下一轮回传(厂商无关客户端不应丢弃未知字段)
56
+ reasoningContent: message?.reasoning_content ?? null,
57
+ };
58
+ }
59
+ //# sourceMappingURL=aiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aiClient.js","sourceRoot":"","sources":["../../src/utils/aiClient.ts"],"names":[],"mappings":";;;;;AAoDA,wCAKC;AAMD,wBAyCC;AAxGD,mDAAmD;AACnD,wDAAwD;AACxD,yEAAyE;AACzE,uDAA+B;AAgD/B,iBAAiB;AACjB,SAAgB,cAAc;IAC5B,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,gBAAM,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,EAAE,CAAC;IAC3E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,MAAM,CAAC,OAAsB;IACjD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,gBAAM,CAAC,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,MAAM,EAAE;SAClC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC3C,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;YACvC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACrC,MAAM,EAAE,KAAK;YACb,mDAAmD;YACnD,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;SACrB,CAAC;KACH,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAQ7B,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;QACjC,SAAS,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;QACpC,wCAAwC;QACxC,gBAAgB,EAAE,OAAO,EAAE,iBAAiB,IAAI,IAAI;KACrD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 启动 Banner 模块
3
+ *
4
+ * 在服务启动时输出品牌标识和技术栈信息
5
+ */
6
+ /**
7
+ * 输出启动 Banner
8
+ */
9
+ export declare function printBanner(port: number | string): void;
10
+ //# sourceMappingURL=banner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAavD"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ /**
3
+ * 启动 Banner 模块
4
+ *
5
+ * 在服务启动时输出品牌标识和技术栈信息
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.printBanner = printBanner;
9
+ const BANNER = `
10
+ ██╗ ██╗ ██████╗ █████╗ ██████╗ ██████╗ ██████╗ ████████╗
11
+ ██║ ██╔╝██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██╔═══██╗╚══██╔══╝
12
+ █████╔╝ ██║ ██║███████║██████╔╝██║ ██║██║ ██║ ██║
13
+ ██╔═██╗ ██║ ██║██╔══██║██╔══██╗██║ ██║██║ ██║ ██║
14
+ ██║ ██╗╚██████╔╝██║ ██║██████╔╝╚██████╔╝╚██████╔╝ ██║
15
+ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝
16
+ `;
17
+ const VERSION = '1.0.0';
18
+ const TECH_STACK = [
19
+ 'Koa v3',
20
+ 'Prisma',
21
+ 'tsoa',
22
+ 'Redis',
23
+ ];
24
+ /**
25
+ * 输出启动 Banner
26
+ */
27
+ function printBanner(port) {
28
+ const lines = [
29
+ '',
30
+ BANNER,
31
+ ` Enterprise Admin System · v${VERSION}`,
32
+ ` ${TECH_STACK.join(' + ')}`,
33
+ '',
34
+ ` → Local: http://localhost:${port}`,
35
+ ` → Docs: http://localhost:${port}/docs`,
36
+ '',
37
+ ];
38
+ console.log(lines.join('\n'));
39
+ }
40
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/utils/banner.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAuBH,kCAaC;AAlCD,MAAM,MAAM,GAAG;;;;;;;CAOd,CAAC;AAEF,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,UAAU,GAAG;IACjB,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;CACR,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAqB;IAC/C,MAAM,KAAK,GAAG;QACZ,EAAE;QACF,MAAM;QACN,gCAAgC,OAAO,EAAE;QACzC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7B,EAAE;QACF,iCAAiC,IAAI,EAAE;QACvC,iCAAiC,IAAI,OAAO;QAC5C,EAAE;KACH,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * 简单哈希(不可逆,适用于非敏感数据签名、校验)
3
+ */
4
+ export declare function hash(value: string, algorithm?: string): string;
5
+ /**
6
+ * MD5 哈希快捷方法
7
+ */
8
+ export declare function md5(value: string): string;
9
+ /**
10
+ * SHA256 哈希
11
+ */
12
+ export declare function sha256(value: string): string;
13
+ export interface PasswordHashResult {
14
+ hash: string;
15
+ salt: string;
16
+ }
17
+ /**
18
+ * 使用 PBKDF2 加密密码(安全等级高,适合生产环境)
19
+ */
20
+ export declare function hashPassword(password: string, salt?: string): PasswordHashResult;
21
+ /**
22
+ * 验证密码是否匹配
23
+ */
24
+ export declare function verifyPassword(password: string, hashedPassword: string, salt: string): boolean;
25
+ /**
26
+ * 生成 HMAC 签名
27
+ */
28
+ export declare function hmacSign(data: string, secret: string, algorithm?: string): string;
29
+ /**
30
+ * 验证 HMAC 签名
31
+ */
32
+ export declare function hmacVerify(data: string, signature: string, secret: string, algorithm?: string): boolean;
33
+ /**
34
+ * AES-256-CBC 加密
35
+ */
36
+ export declare function aesEncrypt(plaintext: string, secretKey: string): string;
37
+ /**
38
+ * AES-256-CBC 解密
39
+ */
40
+ export declare function aesDecrypt(ciphertext: string, secretKey: string): string;
41
+ /**
42
+ * 生成随机字符串
43
+ */
44
+ export declare function randomString(length?: number): string;
45
+ /**
46
+ * 生成 UUID v4
47
+ */
48
+ export declare function uuid(): string;
49
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAA+B,GAAG,MAAM,CAEtF;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAID,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAMhF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAG9F;AAID;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAiB,GAAG,MAAM,CAE3F;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAiB,GAAG,OAAO,CAGjH;AAOD;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQxE;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,IAAI,IAAI,MAAM,CAE7B"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.hash = hash;
7
+ exports.md5 = md5;
8
+ exports.sha256 = sha256;
9
+ exports.hashPassword = hashPassword;
10
+ exports.verifyPassword = verifyPassword;
11
+ exports.hmacSign = hmacSign;
12
+ exports.hmacVerify = hmacVerify;
13
+ exports.aesEncrypt = aesEncrypt;
14
+ exports.aesDecrypt = aesDecrypt;
15
+ exports.randomString = randomString;
16
+ exports.uuid = uuid;
17
+ const crypto_1 = __importDefault(require("crypto"));
18
+ // ============ 配置 ============
19
+ const DEFAULT_HASH_ALGORITHM = 'md5';
20
+ const DEFAULT_SALT_LENGTH = 16;
21
+ const DEFAULT_ITERATIONS = 10000;
22
+ const DEFAULT_KEY_LENGTH = 64;
23
+ const DEFAULT_DIGEST = 'hex';
24
+ // ============ 哈希 ============
25
+ /**
26
+ * 简单哈希(不可逆,适用于非敏感数据签名、校验)
27
+ */
28
+ function hash(value, algorithm = DEFAULT_HASH_ALGORITHM) {
29
+ return crypto_1.default.createHash(algorithm).update(value).digest(DEFAULT_DIGEST);
30
+ }
31
+ /**
32
+ * MD5 哈希快捷方法
33
+ */
34
+ function md5(value) {
35
+ return hash(value, 'md5');
36
+ }
37
+ /**
38
+ * SHA256 哈希
39
+ */
40
+ function sha256(value) {
41
+ return hash(value, 'sha256');
42
+ }
43
+ /**
44
+ * 使用 PBKDF2 加密密码(安全等级高,适合生产环境)
45
+ */
46
+ function hashPassword(password, salt) {
47
+ const actualSalt = salt || crypto_1.default.randomBytes(DEFAULT_SALT_LENGTH).toString(DEFAULT_DIGEST);
48
+ const derivedKey = crypto_1.default
49
+ .pbkdf2Sync(password, actualSalt, DEFAULT_ITERATIONS, DEFAULT_KEY_LENGTH, 'sha512')
50
+ .toString(DEFAULT_DIGEST);
51
+ return { hash: derivedKey, salt: actualSalt };
52
+ }
53
+ /**
54
+ * 验证密码是否匹配
55
+ */
56
+ function verifyPassword(password, hashedPassword, salt) {
57
+ const { hash } = hashPassword(password, salt);
58
+ return hash === hashedPassword;
59
+ }
60
+ // ============ HMAC 签名 ============
61
+ /**
62
+ * 生成 HMAC 签名
63
+ */
64
+ function hmacSign(data, secret, algorithm = 'sha256') {
65
+ return crypto_1.default.createHmac(algorithm, secret).update(data).digest(DEFAULT_DIGEST);
66
+ }
67
+ /**
68
+ * 验证 HMAC 签名
69
+ */
70
+ function hmacVerify(data, signature, secret, algorithm = 'sha256') {
71
+ const expected = hmacSign(data, secret, algorithm);
72
+ return crypto_1.default.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
73
+ }
74
+ // ============ 对称加解密(AES) ============
75
+ const AES_ALGORITHM = 'aes-256-cbc';
76
+ const IV_LENGTH = 16;
77
+ /**
78
+ * AES-256-CBC 加密
79
+ */
80
+ function aesEncrypt(plaintext, secretKey) {
81
+ const key = crypto_1.default.createHash('sha256').update(secretKey).digest();
82
+ const iv = crypto_1.default.randomBytes(IV_LENGTH);
83
+ const cipher = crypto_1.default.createCipheriv(AES_ALGORITHM, key, iv);
84
+ const encrypted = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
85
+ // 输出格式: iv:encrypted (均为 hex)
86
+ return `${iv.toString(DEFAULT_DIGEST)}:${encrypted.toString(DEFAULT_DIGEST)}`;
87
+ }
88
+ /**
89
+ * AES-256-CBC 解密
90
+ */
91
+ function aesDecrypt(ciphertext, secretKey) {
92
+ const key = crypto_1.default.createHash('sha256').update(secretKey).digest();
93
+ const [ivHex, encryptedHex] = ciphertext.split(':');
94
+ const iv = Buffer.from(ivHex, DEFAULT_DIGEST);
95
+ const encrypted = Buffer.from(encryptedHex, DEFAULT_DIGEST);
96
+ const decipher = crypto_1.default.createDecipheriv(AES_ALGORITHM, key, iv);
97
+ const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]);
98
+ return decrypted.toString('utf8');
99
+ }
100
+ // ============ 随机值 ============
101
+ /**
102
+ * 生成随机字符串
103
+ */
104
+ function randomString(length = 32) {
105
+ return crypto_1.default.randomBytes(Math.ceil(length / 2)).toString(DEFAULT_DIGEST).slice(0, length);
106
+ }
107
+ /**
108
+ * 生成 UUID v4
109
+ */
110
+ function uuid() {
111
+ return crypto_1.default.randomUUID();
112
+ }
113
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * 解析当前用户可见的仓库范围(数据权限收口函数)
3
+ * 所有"按仓库过滤"的业务查询必须通过本函数解析范围,禁止在业务层直接写 managerId 过滤。
4
+ *
5
+ * 当前实现(V4.0):admin 角色不限制(返回 null);门店店长(store_manager)按门店(storeId)
6
+ * 维度收口、不参与仓库维度收口(返回 null);其他用户仅返回其直接负责的仓库(managerId)。
7
+ *
8
+ * 注意:返回 null 表示不限;返回空数组 [] 会被调用方转成 in:[占位] 恒空(数据权限失效保护),
9
+ * 因此不负责任何仓库的门店角色必须在此豁免,否则其业务列表会被误判为空。
10
+ *
11
+ * 后期组织架构扩展点:引入部门挂载(warehouses.department_id)后,改为返回
12
+ * 「用户所属部门及其全部下级部门的仓库 ∪ 直接负责仓库」的并集,
13
+ * 仅需替换本函数内部实现,函数签名与所有调用方保持不变。
14
+ */
15
+ export declare function resolveScopeWarehouseIds(userId: string, roles: string[]): Promise<string[] | null>;
16
+ /**
17
+ * 解析当前用户"负责的仓库"范围(库存查询/仓库 tabs 等按负责人收口的接口专用)
18
+ * 与 resolveScopeWarehouseIds 的区别:门店店长(store_manager)不返回 null 豁免,
19
+ * 而是收口到其负责门店关联的仓库(warehouse.storeId ∈ 负责门店),
20
+ * 确保门店/前置仓人员只能看到自己负责的仓库。
21
+ *
22
+ * 规则:
23
+ * - admin:不限(返回 null)
24
+ * - store_manager:仅其负责门店(store.contactPersonId = userId)关联的仓库(warehouse.storeId)
25
+ * - 其余角色(branch_warehouse_manager 前置仓、warehouse_manager 总仓等):仅直接负责的仓库(warehouse.managerId = userId)
26
+ *
27
+ * 返回 null 表示不限;返回 [] 表示无可见仓库(调用方转成 in:[] 恒空)。
28
+ */
29
+ export declare function resolveManagedWarehouseIds(userId: string, roles: string[]): Promise<string[] | null>;
30
+ /**
31
+ * 解析当前用户可见的门店范围(销售订单数据权限收口函数)
32
+ * 销售订单按门店(storeId)维度收口,规则:
33
+ * - store_manager(门店店长):仅可见其管理的门店(store.contactPersonId = userId)
34
+ * - branch_warehouse_manager(前置仓管理员):仅可见其负责的前置仓覆盖的门店
35
+ * (前置仓自身 storeId ∪ 其下级镇仓关联的 storeId)
36
+ * - 其余角色(admin 总部管理员、warehouse_manager 总仓管理员、purchaser 采购、finance_CFO 财务):不限(返回 null)
37
+ *
38
+ * 返回 null 表示不限;返回 [] 表示无可见门店(调用方转成 in:[] 恒空,符合"只能看自己管辖数据")。
39
+ */
40
+ export declare function resolveScopeStoreIds(userId: string, roles: string[]): Promise<string[] | null>;
41
+ //# sourceMappingURL=dataScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataScope.d.ts","sourceRoot":"","sources":["../../src/utils/dataScope.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAYxG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAsC1G;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAwCpG"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveScopeWarehouseIds = resolveScopeWarehouseIds;
4
+ exports.resolveManagedWarehouseIds = resolveManagedWarehouseIds;
5
+ exports.resolveScopeStoreIds = resolveScopeStoreIds;
6
+ const database_1 = require("../config/database");
7
+ const db = database_1.prisma;
8
+ /**
9
+ * 解析当前用户可见的仓库范围(数据权限收口函数)
10
+ * 所有"按仓库过滤"的业务查询必须通过本函数解析范围,禁止在业务层直接写 managerId 过滤。
11
+ *
12
+ * 当前实现(V4.0):admin 角色不限制(返回 null);门店店长(store_manager)按门店(storeId)
13
+ * 维度收口、不参与仓库维度收口(返回 null);其他用户仅返回其直接负责的仓库(managerId)。
14
+ *
15
+ * 注意:返回 null 表示不限;返回空数组 [] 会被调用方转成 in:[占位] 恒空(数据权限失效保护),
16
+ * 因此不负责任何仓库的门店角色必须在此豁免,否则其业务列表会被误判为空。
17
+ *
18
+ * 后期组织架构扩展点:引入部门挂载(warehouses.department_id)后,改为返回
19
+ * 「用户所属部门及其全部下级部门的仓库 ∪ 直接负责仓库」的并集,
20
+ * 仅需替换本函数内部实现,函数签名与所有调用方保持不变。
21
+ */
22
+ async function resolveScopeWarehouseIds(userId, roles) {
23
+ // admin 拥有全部仓库数据权限
24
+ if (roles.includes('admin'))
25
+ return null;
26
+ // 门店店长:数据权限按门店(storeId)收口,与仓库维度无关
27
+ if (roles.includes('store_manager'))
28
+ return null;
29
+ const warehouses = await db.warehouse.findMany({
30
+ where: { managerId: userId },
31
+ select: { id: true },
32
+ });
33
+ return warehouses.map((w) => w.id);
34
+ }
35
+ /**
36
+ * 解析当前用户"负责的仓库"范围(库存查询/仓库 tabs 等按负责人收口的接口专用)
37
+ * 与 resolveScopeWarehouseIds 的区别:门店店长(store_manager)不返回 null 豁免,
38
+ * 而是收口到其负责门店关联的仓库(warehouse.storeId ∈ 负责门店),
39
+ * 确保门店/前置仓人员只能看到自己负责的仓库。
40
+ *
41
+ * 规则:
42
+ * - admin:不限(返回 null)
43
+ * - store_manager:仅其负责门店(store.contactPersonId = userId)关联的仓库(warehouse.storeId)
44
+ * - 其余角色(branch_warehouse_manager 前置仓、warehouse_manager 总仓等):仅直接负责的仓库(warehouse.managerId = userId)
45
+ *
46
+ * 返回 null 表示不限;返回 [] 表示无可见仓库(调用方转成 in:[] 恒空)。
47
+ */
48
+ async function resolveManagedWarehouseIds(userId, roles) {
49
+ // admin 拥有全部仓库数据权限
50
+ if (roles.includes('admin'))
51
+ return null;
52
+ // 门店店长:其负责的门店关联的仓库(兼容两种数据关联,取并集)
53
+ if (roles.includes('store_manager')) {
54
+ const ids = new Set();
55
+ // ① 店长直接负责的仓库(warehouse.managerId = userId,镇仓通常直接挂店长)
56
+ const managed = await db.warehouse.findMany({
57
+ where: { managerId: userId },
58
+ select: { id: true },
59
+ });
60
+ managed.forEach((w) => ids.add(w.id));
61
+ // ② 店长负责门店(store.contactPersonId = userId)关联的仓库(warehouse.storeId ∈ 负责门店)
62
+ const stores = await db.store.findMany({
63
+ where: { contactPersonId: userId },
64
+ select: { id: true },
65
+ });
66
+ if (stores.length > 0) {
67
+ const storeIds = stores.map((s) => s.id);
68
+ const warehouses = await db.warehouse.findMany({
69
+ where: { storeId: { in: storeIds } },
70
+ select: { id: true },
71
+ });
72
+ warehouses.forEach((w) => ids.add(w.id));
73
+ }
74
+ return Array.from(ids);
75
+ }
76
+ // 前置仓/总仓管理员:其直接负责的仓库
77
+ const warehouses = await db.warehouse.findMany({
78
+ where: { managerId: userId },
79
+ select: { id: true },
80
+ });
81
+ return warehouses.map((w) => w.id);
82
+ }
83
+ /**
84
+ * 解析当前用户可见的门店范围(销售订单数据权限收口函数)
85
+ * 销售订单按门店(storeId)维度收口,规则:
86
+ * - store_manager(门店店长):仅可见其管理的门店(store.contactPersonId = userId)
87
+ * - branch_warehouse_manager(前置仓管理员):仅可见其负责的前置仓覆盖的门店
88
+ * (前置仓自身 storeId ∪ 其下级镇仓关联的 storeId)
89
+ * - 其余角色(admin 总部管理员、warehouse_manager 总仓管理员、purchaser 采购、finance_CFO 财务):不限(返回 null)
90
+ *
91
+ * 返回 null 表示不限;返回 [] 表示无可见门店(调用方转成 in:[] 恒空,符合"只能看自己管辖数据")。
92
+ */
93
+ async function resolveScopeStoreIds(userId, roles) {
94
+ const isStoreManager = roles.includes('store_manager');
95
+ const isBranchManager = roles.includes('branch_warehouse_manager');
96
+ if (!isStoreManager && !isBranchManager)
97
+ return null;
98
+ const storeIds = new Set();
99
+ // 门店店长:可见其管理的门店(兼容两种数据关联,取并集:
100
+ // ① store.contactPersonId = userId;② 店长负责的镇仓 warehouse.managerId = userId 关联的门店)
101
+ if (isStoreManager) {
102
+ const stores = await db.store.findMany({
103
+ where: { contactPersonId: userId },
104
+ select: { id: true },
105
+ });
106
+ stores.forEach((s) => storeIds.add(s.id));
107
+ const towns = await db.warehouse.findMany({
108
+ where: { managerId: userId },
109
+ select: { storeId: true },
110
+ });
111
+ towns.forEach((t) => t.storeId && storeIds.add(t.storeId));
112
+ }
113
+ // 前置仓管理员:负责的前置仓及其下级镇仓关联的门店
114
+ if (isBranchManager) {
115
+ const branches = await db.warehouse.findMany({
116
+ where: { level: 'preposition', managerId: userId },
117
+ select: { id: true, storeId: true },
118
+ });
119
+ if (branches.length > 0) {
120
+ branches.forEach((b) => b.storeId && storeIds.add(b.storeId));
121
+ const towns = await db.warehouse.findMany({
122
+ where: { parentWarehouseId: { in: branches.map((b) => b.id) }, level: 'town' },
123
+ select: { storeId: true },
124
+ });
125
+ towns.forEach((t) => t.storeId && storeIds.add(t.storeId));
126
+ }
127
+ }
128
+ return Array.from(storeIds);
129
+ }
130
+ //# sourceMappingURL=dataScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataScope.js","sourceRoot":"","sources":["../../src/utils/dataScope.ts"],"names":[],"mappings":"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"}