@pangza/express 0.0.0-stage → 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 (450) hide show
  1. package/Application/callbackArgs.d.ts +5 -0
  2. package/Application/callbackArgs.d.ts.map +1 -0
  3. package/Application/callbackArgs.js +98 -0
  4. package/Application/callbackArgs.js.map +1 -0
  5. package/Application/decorators.d.ts +29 -0
  6. package/Application/decorators.d.ts.map +1 -0
  7. package/Application/decorators.js +181 -0
  8. package/Application/decorators.js.map +1 -0
  9. package/Application/index.d.ts +49 -0
  10. package/Application/index.d.ts.map +1 -0
  11. package/Application/index.js +504 -0
  12. package/Application/index.js.map +1 -0
  13. package/Application/lifecycle.d.ts +8 -0
  14. package/Application/lifecycle.d.ts.map +1 -0
  15. package/Application/lifecycle.js +96 -0
  16. package/Application/lifecycle.js.map +1 -0
  17. package/Application/metadata.d.ts +32 -0
  18. package/Application/metadata.d.ts.map +1 -0
  19. package/Application/metadata.js +230 -0
  20. package/Application/metadata.js.map +1 -0
  21. package/Application/processGuards.d.ts +2 -0
  22. package/Application/processGuards.d.ts.map +1 -0
  23. package/Application/processGuards.js +18 -0
  24. package/Application/processGuards.js.map +1 -0
  25. package/Application/types.d.ts +42 -0
  26. package/Application/types.d.ts.map +1 -0
  27. package/Application/types.js +13 -0
  28. package/Application/types.js.map +1 -0
  29. package/Application/warmup.d.ts +2 -0
  30. package/Application/warmup.d.ts.map +1 -0
  31. package/Application/warmup.js +64 -0
  32. package/Application/warmup.js.map +1 -0
  33. package/Auth/AuthUtil.d.ts +36 -0
  34. package/Auth/AuthUtil.d.ts.map +1 -0
  35. package/Auth/AuthUtil.js +305 -0
  36. package/Auth/AuthUtil.js.map +1 -0
  37. package/Auth/context.d.ts +5 -0
  38. package/Auth/context.d.ts.map +1 -0
  39. package/Auth/context.js +10 -0
  40. package/Auth/context.js.map +1 -0
  41. package/Auth/errors.d.ts +15 -0
  42. package/Auth/errors.d.ts.map +1 -0
  43. package/Auth/errors.js +34 -0
  44. package/Auth/errors.js.map +1 -0
  45. package/Auth/flag.d.ts +2 -0
  46. package/Auth/flag.d.ts.map +1 -0
  47. package/Auth/flag.js +5 -0
  48. package/Auth/flag.js.map +1 -0
  49. package/Auth/index.d.ts +11 -0
  50. package/Auth/index.d.ts.map +1 -0
  51. package/Auth/index.js +128 -0
  52. package/Auth/index.js.map +1 -0
  53. package/Auth/store.d.ts +47 -0
  54. package/Auth/store.d.ts.map +1 -0
  55. package/Auth/store.js +151 -0
  56. package/Auth/store.js.map +1 -0
  57. package/Auth/token.d.ts +10 -0
  58. package/Auth/token.d.ts.map +1 -0
  59. package/Auth/token.js +74 -0
  60. package/Auth/token.js.map +1 -0
  61. package/Auth/types.d.ts +76 -0
  62. package/Auth/types.d.ts.map +1 -0
  63. package/Auth/types.js +3 -0
  64. package/Auth/types.js.map +1 -0
  65. package/Exception/decorators.d.ts +4 -0
  66. package/Exception/decorators.d.ts.map +1 -0
  67. package/Exception/decorators.js +40 -0
  68. package/Exception/decorators.js.map +1 -0
  69. package/Exception/handler.d.ts +3 -0
  70. package/Exception/handler.d.ts.map +1 -0
  71. package/Exception/handler.js +96 -0
  72. package/Exception/handler.js.map +1 -0
  73. package/Exception/index.d.ts +9 -0
  74. package/Exception/index.d.ts.map +1 -0
  75. package/Exception/index.js +34 -0
  76. package/Exception/index.js.map +1 -0
  77. package/Exception/registry.d.ts +6 -0
  78. package/Exception/registry.d.ts.map +1 -0
  79. package/Exception/registry.js +60 -0
  80. package/Exception/registry.js.map +1 -0
  81. package/Exception/types.d.ts +27 -0
  82. package/Exception/types.d.ts.map +1 -0
  83. package/Exception/types.js +15 -0
  84. package/Exception/types.js.map +1 -0
  85. package/Json/ObjectMapper.d.ts +13 -0
  86. package/Json/ObjectMapper.d.ts.map +1 -0
  87. package/Json/ObjectMapper.js +184 -0
  88. package/Json/ObjectMapper.js.map +1 -0
  89. package/Json/beanKeys.d.ts +3 -0
  90. package/Json/beanKeys.d.ts.map +1 -0
  91. package/Json/beanKeys.js +29 -0
  92. package/Json/beanKeys.js.map +1 -0
  93. package/Json/convert.d.ts +11 -0
  94. package/Json/convert.d.ts.map +1 -0
  95. package/Json/convert.js +89 -0
  96. package/Json/convert.js.map +1 -0
  97. package/Json/decorators.d.ts +15 -0
  98. package/Json/decorators.d.ts.map +1 -0
  99. package/Json/decorators.js +80 -0
  100. package/Json/decorators.js.map +1 -0
  101. package/Json/index.d.ts +13 -0
  102. package/Json/index.d.ts.map +1 -0
  103. package/Json/index.js +39 -0
  104. package/Json/index.js.map +1 -0
  105. package/Json/types.d.ts +27 -0
  106. package/Json/types.d.ts.map +1 -0
  107. package/Json/types.js +11 -0
  108. package/Json/types.js.map +1 -0
  109. package/Log/decorators.d.ts +3 -0
  110. package/Log/decorators.d.ts.map +1 -0
  111. package/Log/decorators.js +10 -0
  112. package/Log/decorators.js.map +1 -0
  113. package/Log/flag.d.ts +2 -0
  114. package/Log/flag.d.ts.map +1 -0
  115. package/Log/flag.js +5 -0
  116. package/Log/flag.js.map +1 -0
  117. package/Log/index.d.ts +9 -0
  118. package/Log/index.d.ts.map +1 -0
  119. package/Log/index.js +33 -0
  120. package/Log/index.js.map +1 -0
  121. package/Log/ip.d.ts +14 -0
  122. package/Log/ip.d.ts.map +1 -0
  123. package/Log/ip.js +125 -0
  124. package/Log/ip.js.map +1 -0
  125. package/Log/recorder.d.ts +18 -0
  126. package/Log/recorder.d.ts.map +1 -0
  127. package/Log/recorder.js +144 -0
  128. package/Log/recorder.js.map +1 -0
  129. package/Log/types.d.ts +53 -0
  130. package/Log/types.d.ts.map +1 -0
  131. package/Log/types.js +21 -0
  132. package/Log/types.js.map +1 -0
  133. package/Logger/index.d.ts +18 -0
  134. package/Logger/index.d.ts.map +1 -0
  135. package/Logger/index.js +150 -0
  136. package/Logger/index.js.map +1 -0
  137. package/Logger/types.d.ts +13 -0
  138. package/Logger/types.d.ts.map +1 -0
  139. package/Logger/types.js +3 -0
  140. package/Logger/types.js.map +1 -0
  141. package/ORM/BaseMapper.d.ts +54 -0
  142. package/ORM/BaseMapper.d.ts.map +1 -0
  143. package/ORM/BaseMapper.js +593 -0
  144. package/ORM/BaseMapper.js.map +1 -0
  145. package/ORM/DataSource.d.ts +47 -0
  146. package/ORM/DataSource.d.ts.map +1 -0
  147. package/ORM/DataSource.js +336 -0
  148. package/ORM/DataSource.js.map +1 -0
  149. package/ORM/Db.d.ts +43 -0
  150. package/ORM/Db.d.ts.map +1 -0
  151. package/ORM/Db.js +198 -0
  152. package/ORM/Db.js.map +1 -0
  153. package/ORM/IdType.d.ts +10 -0
  154. package/ORM/IdType.d.ts.map +1 -0
  155. package/ORM/IdType.js +22 -0
  156. package/ORM/IdType.js.map +1 -0
  157. package/ORM/QueryWrapper.d.ts +58 -0
  158. package/ORM/QueryWrapper.d.ts.map +1 -0
  159. package/ORM/QueryWrapper.js +289 -0
  160. package/ORM/QueryWrapper.js.map +1 -0
  161. package/ORM/config.d.ts +6 -0
  162. package/ORM/config.d.ts.map +1 -0
  163. package/ORM/config.js +70 -0
  164. package/ORM/config.js.map +1 -0
  165. package/ORM/dialect.d.ts +24 -0
  166. package/ORM/dialect.d.ts.map +1 -0
  167. package/ORM/dialect.js +169 -0
  168. package/ORM/dialect.js.map +1 -0
  169. package/ORM/entityDecorators.d.ts +39 -0
  170. package/ORM/entityDecorators.d.ts.map +1 -0
  171. package/ORM/entityDecorators.js +131 -0
  172. package/ORM/entityDecorators.js.map +1 -0
  173. package/ORM/errors.d.ts +9 -0
  174. package/ORM/errors.d.ts.map +1 -0
  175. package/ORM/errors.js +20 -0
  176. package/ORM/errors.js.map +1 -0
  177. package/ORM/fieldSelect.d.ts +25 -0
  178. package/ORM/fieldSelect.d.ts.map +1 -0
  179. package/ORM/fieldSelect.js +49 -0
  180. package/ORM/fieldSelect.js.map +1 -0
  181. package/ORM/fill.d.ts +6 -0
  182. package/ORM/fill.d.ts.map +1 -0
  183. package/ORM/fill.js +45 -0
  184. package/ORM/fill.js.map +1 -0
  185. package/ORM/hydrate.d.ts +12 -0
  186. package/ORM/hydrate.d.ts.map +1 -0
  187. package/ORM/hydrate.js +304 -0
  188. package/ORM/hydrate.js.map +1 -0
  189. package/ORM/identifier.d.ts +8 -0
  190. package/ORM/identifier.d.ts.map +1 -0
  191. package/ORM/identifier.js +47 -0
  192. package/ORM/identifier.js.map +1 -0
  193. package/ORM/index.d.ts +39 -0
  194. package/ORM/index.d.ts.map +1 -0
  195. package/ORM/index.js +113 -0
  196. package/ORM/index.js.map +1 -0
  197. package/ORM/relation.d.ts +53 -0
  198. package/ORM/relation.d.ts.map +1 -0
  199. package/ORM/relation.js +143 -0
  200. package/ORM/relation.js.map +1 -0
  201. package/ORM/resultMap.d.ts +3 -0
  202. package/ORM/resultMap.d.ts.map +1 -0
  203. package/ORM/resultMap.js +21 -0
  204. package/ORM/resultMap.js.map +1 -0
  205. package/ORM/security.d.ts +5 -0
  206. package/ORM/security.d.ts.map +1 -0
  207. package/ORM/security.js +39 -0
  208. package/ORM/security.js.map +1 -0
  209. package/ORM/sqlDecorators.d.ts +15 -0
  210. package/ORM/sqlDecorators.d.ts.map +1 -0
  211. package/ORM/sqlDecorators.js +106 -0
  212. package/ORM/sqlDecorators.js.map +1 -0
  213. package/ORM/sqlLog.d.ts +20 -0
  214. package/ORM/sqlLog.d.ts.map +1 -0
  215. package/ORM/sqlLog.js +172 -0
  216. package/ORM/sqlLog.js.map +1 -0
  217. package/ORM/sqlTemplate.d.ts +13 -0
  218. package/ORM/sqlTemplate.d.ts.map +1 -0
  219. package/ORM/sqlTemplate.js +89 -0
  220. package/ORM/sqlTemplate.js.map +1 -0
  221. package/ORM/table.d.ts +8 -0
  222. package/ORM/table.d.ts.map +1 -0
  223. package/ORM/table.js +45 -0
  224. package/ORM/table.js.map +1 -0
  225. package/ORM/tableSearch.d.ts +43 -0
  226. package/ORM/tableSearch.d.ts.map +1 -0
  227. package/ORM/tableSearch.js +205 -0
  228. package/ORM/tableSearch.js.map +1 -0
  229. package/ORM/transactional.d.ts +7 -0
  230. package/ORM/transactional.d.ts.map +1 -0
  231. package/ORM/transactional.js +43 -0
  232. package/ORM/transactional.js.map +1 -0
  233. package/ORM/types.d.ts +92 -0
  234. package/ORM/types.d.ts.map +1 -0
  235. package/ORM/types.js +3 -0
  236. package/ORM/types.js.map +1 -0
  237. package/ORM/xml/MapperXml.d.ts +10 -0
  238. package/ORM/xml/MapperXml.d.ts.map +1 -0
  239. package/ORM/xml/MapperXml.js +79 -0
  240. package/ORM/xml/MapperXml.js.map +1 -0
  241. package/ORM/xml/execute.d.ts +10 -0
  242. package/ORM/xml/execute.d.ts.map +1 -0
  243. package/ORM/xml/execute.js +53 -0
  244. package/ORM/xml/execute.js.map +1 -0
  245. package/ORM/xml/index.d.ts +11 -0
  246. package/ORM/xml/index.d.ts.map +1 -0
  247. package/ORM/xml/index.js +29 -0
  248. package/ORM/xml/index.js.map +1 -0
  249. package/ORM/xml/loadMappers.d.ts +10 -0
  250. package/ORM/xml/loadMappers.d.ts.map +1 -0
  251. package/ORM/xml/loadMappers.js +162 -0
  252. package/ORM/xml/loadMappers.js.map +1 -0
  253. package/ORM/xml/parseMapperXml.d.ts +3 -0
  254. package/ORM/xml/parseMapperXml.d.ts.map +1 -0
  255. package/ORM/xml/parseMapperXml.js +217 -0
  256. package/ORM/xml/parseMapperXml.js.map +1 -0
  257. package/ORM/xml/registry.d.ts +15 -0
  258. package/ORM/xml/registry.d.ts.map +1 -0
  259. package/ORM/xml/registry.js +57 -0
  260. package/ORM/xml/registry.js.map +1 -0
  261. package/ORM/xml/renderSql.d.ts +4 -0
  262. package/ORM/xml/renderSql.d.ts.map +1 -0
  263. package/ORM/xml/renderSql.js +178 -0
  264. package/ORM/xml/renderSql.js.map +1 -0
  265. package/ORM/xml/types.d.ts +50 -0
  266. package/ORM/xml/types.d.ts.map +1 -0
  267. package/ORM/xml/types.js +3 -0
  268. package/ORM/xml/types.js.map +1 -0
  269. package/ORM/xml/xmlMapper.d.ts +10 -0
  270. package/ORM/xml/xmlMapper.d.ts.map +1 -0
  271. package/ORM/xml/xmlMapper.js +44 -0
  272. package/ORM/xml/xmlMapper.js.map +1 -0
  273. package/README.md +41 -2
  274. package/Redis/Redis.d.ts +65 -0
  275. package/Redis/Redis.d.ts.map +1 -0
  276. package/Redis/Redis.js +622 -0
  277. package/Redis/Redis.js.map +1 -0
  278. package/Redis/cache.d.ts +4 -0
  279. package/Redis/cache.d.ts.map +1 -0
  280. package/Redis/cache.js +70 -0
  281. package/Redis/cache.js.map +1 -0
  282. package/Redis/decorators.d.ts +5 -0
  283. package/Redis/decorators.d.ts.map +1 -0
  284. package/Redis/decorators.js +20 -0
  285. package/Redis/decorators.js.map +1 -0
  286. package/Redis/errors.d.ts +9 -0
  287. package/Redis/errors.d.ts.map +1 -0
  288. package/Redis/errors.js +20 -0
  289. package/Redis/errors.js.map +1 -0
  290. package/Redis/index.d.ts +9 -0
  291. package/Redis/index.d.ts.map +1 -0
  292. package/Redis/index.js +36 -0
  293. package/Redis/index.js.map +1 -0
  294. package/Redis/rateLimit.d.ts +8 -0
  295. package/Redis/rateLimit.d.ts.map +1 -0
  296. package/Redis/rateLimit.js +82 -0
  297. package/Redis/rateLimit.js.map +1 -0
  298. package/Redis/redisson/RCountDownLatch.d.ts +12 -0
  299. package/Redis/redisson/RCountDownLatch.d.ts.map +1 -0
  300. package/Redis/redisson/RCountDownLatch.js +48 -0
  301. package/Redis/redisson/RCountDownLatch.js.map +1 -0
  302. package/Redis/redisson/RFairLock.d.ts +4 -0
  303. package/Redis/redisson/RFairLock.d.ts.map +1 -0
  304. package/Redis/redisson/RFairLock.js +29 -0
  305. package/Redis/redisson/RFairLock.js.map +1 -0
  306. package/Redis/redisson/RLock.d.ts +34 -0
  307. package/Redis/redisson/RLock.d.ts.map +1 -0
  308. package/Redis/redisson/RLock.js +146 -0
  309. package/Redis/redisson/RLock.js.map +1 -0
  310. package/Redis/redisson/RMultiLock.d.ts +15 -0
  311. package/Redis/redisson/RMultiLock.d.ts.map +1 -0
  312. package/Redis/redisson/RMultiLock.js +90 -0
  313. package/Redis/redisson/RMultiLock.js.map +1 -0
  314. package/Redis/redisson/RReadWriteLock.d.ts +9 -0
  315. package/Redis/redisson/RReadWriteLock.d.ts.map +1 -0
  316. package/Redis/redisson/RReadWriteLock.js +51 -0
  317. package/Redis/redisson/RReadWriteLock.js.map +1 -0
  318. package/Redis/redisson/RSemaphore.d.ts +13 -0
  319. package/Redis/redisson/RSemaphore.d.ts.map +1 -0
  320. package/Redis/redisson/RSemaphore.js +54 -0
  321. package/Redis/redisson/RSemaphore.js.map +1 -0
  322. package/Redis/redisson/Redisson.d.ts +30 -0
  323. package/Redis/redisson/Redisson.d.ts.map +1 -0
  324. package/Redis/redisson/Redisson.js +93 -0
  325. package/Redis/redisson/Redisson.js.map +1 -0
  326. package/Redis/redisson/index.d.ts +12 -0
  327. package/Redis/redisson/index.d.ts.map +1 -0
  328. package/Redis/redisson/index.js +32 -0
  329. package/Redis/redisson/index.js.map +1 -0
  330. package/Redis/redisson/objects.d.ts +116 -0
  331. package/Redis/redisson/objects.d.ts.map +1 -0
  332. package/Redis/redisson/objects.js +384 -0
  333. package/Redis/redisson/objects.js.map +1 -0
  334. package/Redis/redisson/scripts.d.ts +13 -0
  335. package/Redis/redisson/scripts.d.ts.map +1 -0
  336. package/Redis/redisson/scripts.js +187 -0
  337. package/Redis/redisson/scripts.js.map +1 -0
  338. package/Redis/redisson/types.d.ts +129 -0
  339. package/Redis/redisson/types.d.ts.map +1 -0
  340. package/Redis/redisson/types.js +8 -0
  341. package/Redis/redisson/types.js.map +1 -0
  342. package/Redis/redisson/utils.d.ts +9 -0
  343. package/Redis/redisson/utils.d.ts.map +1 -0
  344. package/Redis/redisson/utils.js +78 -0
  345. package/Redis/redisson/utils.js.map +1 -0
  346. package/Redis/types.d.ts +82 -0
  347. package/Redis/types.d.ts.map +1 -0
  348. package/Redis/types.js +23 -0
  349. package/Redis/types.js.map +1 -0
  350. package/Service/BaseService.d.ts +18 -0
  351. package/Service/BaseService.d.ts.map +1 -0
  352. package/Service/BaseService.js +46 -0
  353. package/Service/BaseService.js.map +1 -0
  354. package/Service/MapperType.d.ts +18 -0
  355. package/Service/MapperType.d.ts.map +1 -0
  356. package/Service/MapperType.js +46 -0
  357. package/Service/MapperType.js.map +1 -0
  358. package/Service/bean.d.ts +16 -0
  359. package/Service/bean.d.ts.map +1 -0
  360. package/Service/bean.js +72 -0
  361. package/Service/bean.js.map +1 -0
  362. package/Service/container.d.ts +18 -0
  363. package/Service/container.d.ts.map +1 -0
  364. package/Service/container.js +66 -0
  365. package/Service/container.js.map +1 -0
  366. package/Service/decorators.d.ts +12 -0
  367. package/Service/decorators.d.ts.map +1 -0
  368. package/Service/decorators.js +148 -0
  369. package/Service/decorators.js.map +1 -0
  370. package/Service/index.d.ts +11 -0
  371. package/Service/index.d.ts.map +1 -0
  372. package/Service/index.js +32 -0
  373. package/Service/index.js.map +1 -0
  374. package/Service/types.d.ts +19 -0
  375. package/Service/types.d.ts.map +1 -0
  376. package/Service/types.js +18 -0
  377. package/Service/types.js.map +1 -0
  378. package/Validate/decorators.d.ts +18 -0
  379. package/Validate/decorators.d.ts.map +1 -0
  380. package/Validate/decorators.js +77 -0
  381. package/Validate/decorators.js.map +1 -0
  382. package/Validate/engine.d.ts +5 -0
  383. package/Validate/engine.d.ts.map +1 -0
  384. package/Validate/engine.js +78 -0
  385. package/Validate/engine.js.map +1 -0
  386. package/Validate/index.d.ts +6 -0
  387. package/Validate/index.d.ts.map +1 -0
  388. package/Validate/index.js +28 -0
  389. package/Validate/index.js.map +1 -0
  390. package/Validate/rules.d.ts +11 -0
  391. package/Validate/rules.d.ts.map +1 -0
  392. package/Validate/rules.js +120 -0
  393. package/Validate/rules.js.map +1 -0
  394. package/Validate/types.d.ts +22 -0
  395. package/Validate/types.d.ts.map +1 -0
  396. package/Validate/types.js +17 -0
  397. package/Validate/types.js.map +1 -0
  398. package/config/index.d.ts +104 -0
  399. package/config/index.d.ts.map +1 -0
  400. package/config/index.js +330 -0
  401. package/config/index.js.map +1 -0
  402. package/encrypt/AESUtil.d.ts +5 -0
  403. package/encrypt/AESUtil.d.ts.map +1 -0
  404. package/encrypt/AESUtil.js +36 -0
  405. package/encrypt/AESUtil.js.map +1 -0
  406. package/encrypt/DynamicAesKeyManager.d.ts +9 -0
  407. package/encrypt/DynamicAesKeyManager.d.ts.map +1 -0
  408. package/encrypt/DynamicAesKeyManager.js +46 -0
  409. package/encrypt/DynamicAesKeyManager.js.map +1 -0
  410. package/encrypt/index.d.ts +3 -0
  411. package/encrypt/index.d.ts.map +1 -0
  412. package/encrypt/index.js +8 -0
  413. package/encrypt/index.js.map +1 -0
  414. package/index.d.ts +31 -0
  415. package/index.d.ts.map +1 -0
  416. package/index.js +252 -0
  417. package/index.js.map +1 -0
  418. package/langchain/decorators.d.ts +2 -0
  419. package/langchain/decorators.d.ts.map +1 -0
  420. package/langchain/decorators.js +6 -0
  421. package/langchain/decorators.js.map +1 -0
  422. package/langchain/index.d.ts +1 -0
  423. package/langchain/index.d.ts.map +1 -0
  424. package/langchain/index.js +2 -0
  425. package/langchain/index.js.map +1 -0
  426. package/package.json +110 -4
  427. package/schedule/ScheduleManager.d.ts +25 -0
  428. package/schedule/ScheduleManager.d.ts.map +1 -0
  429. package/schedule/ScheduleManager.js +125 -0
  430. package/schedule/ScheduleManager.js.map +1 -0
  431. package/types/enums.d.ts +11 -0
  432. package/types/enums.d.ts.map +1 -0
  433. package/types/enums.js +15 -0
  434. package/types/enums.js.map +1 -0
  435. package/utils/case.d.ts +6 -0
  436. package/utils/case.d.ts.map +1 -0
  437. package/utils/case.js +32 -0
  438. package/utils/case.js.map +1 -0
  439. package/utils/entity/PageResult/index.d.ts +20 -0
  440. package/utils/entity/PageResult/index.d.ts.map +1 -0
  441. package/utils/entity/PageResult/index.js +15 -0
  442. package/utils/entity/PageResult/index.js.map +1 -0
  443. package/utils/entity/ResponseData/index.d.ts +11 -0
  444. package/utils/entity/ResponseData/index.d.ts.map +1 -0
  445. package/utils/entity/ResponseData/index.js +25 -0
  446. package/utils/entity/ResponseData/index.js.map +1 -0
  447. package/utils/id.d.ts +2 -0
  448. package/utils/id.d.ts.map +1 -0
  449. package/utils/id.js +9 -0
  450. package/utils/id.js.map +1 -0
package/Auth/store.js ADDED
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisStore = exports.MemoryStore = void 0;
4
+ exports.getSessionStore = getSessionStore;
5
+ exports.setSessionStore = setSessionStore;
6
+ class MemoryStore {
7
+ constructor() {
8
+ this.tokenMap = new Map();
9
+ this.loginIdMap = new Map();
10
+ }
11
+ async set(session) {
12
+ this.tokenMap.set(session.token, session);
13
+ const key = String(session.loginId);
14
+ let tokens = this.loginIdMap.get(key);
15
+ if (!tokens) {
16
+ tokens = new Set();
17
+ this.loginIdMap.set(key, tokens);
18
+ }
19
+ tokens.add(session.token);
20
+ }
21
+ async getByToken(token) {
22
+ return this.tokenMap.get(token) ?? null;
23
+ }
24
+ async removeByToken(token) {
25
+ const session = this.tokenMap.get(token);
26
+ if (!session)
27
+ return;
28
+ this.tokenMap.delete(token);
29
+ const key = String(session.loginId);
30
+ const tokens = this.loginIdMap.get(key);
31
+ if (tokens) {
32
+ tokens.delete(token);
33
+ if (tokens.size === 0)
34
+ this.loginIdMap.delete(key);
35
+ }
36
+ }
37
+ async removeByLoginId(loginId) {
38
+ const key = String(loginId);
39
+ const tokens = this.loginIdMap.get(key);
40
+ if (!tokens)
41
+ return;
42
+ for (const token of [...tokens]) {
43
+ this.tokenMap.delete(token);
44
+ }
45
+ this.loginIdMap.delete(key);
46
+ }
47
+ async listTokensByLoginId(loginId) {
48
+ const tokens = this.loginIdMap.get(String(loginId));
49
+ return tokens ? [...tokens] : [];
50
+ }
51
+ async touch(session) {
52
+ this.tokenMap.set(session.token, session);
53
+ }
54
+ }
55
+ exports.MemoryStore = MemoryStore;
56
+ class RedisStore {
57
+ constructor(redis) {
58
+ this.redis = redis;
59
+ }
60
+ tokenKey(token) {
61
+ return `auth:token:${token}`;
62
+ }
63
+ uidKey(loginId) {
64
+ return `auth:uid:${loginId}`;
65
+ }
66
+ ttlSeconds(session) {
67
+ if (session.expireTime >= Number.MAX_SAFE_INTEGER / 2) {
68
+ return undefined;
69
+ }
70
+ return Math.max(1, Math.ceil((session.expireTime - Date.now()) / 1000));
71
+ }
72
+ async refreshUidExpire(loginId, ttl) {
73
+ if (ttl == null || !this.redis.expire)
74
+ return;
75
+ const key = this.uidKey(loginId);
76
+ if (this.redis.ttl) {
77
+ const left = await this.redis.ttl(key);
78
+ if (left === -1)
79
+ return;
80
+ if (left > ttl)
81
+ return;
82
+ }
83
+ await this.redis.expire(key, ttl);
84
+ }
85
+ async set(session) {
86
+ const ttl = this.ttlSeconds(session);
87
+ await this.redis.setJSON(this.tokenKey(session.token), session, ttl);
88
+ const uidKey = this.uidKey(session.loginId);
89
+ await this.redis.sAdd(uidKey, session.token);
90
+ await this.refreshUidExpire(session.loginId, ttl);
91
+ }
92
+ async getByToken(token) {
93
+ return this.redis.getJSON(this.tokenKey(token));
94
+ }
95
+ async removeByToken(token) {
96
+ const session = await this.redis.getJSON(this.tokenKey(token));
97
+ await this.redis.del(this.tokenKey(token));
98
+ if (session) {
99
+ await this.redis.sRem(this.uidKey(session.loginId), token);
100
+ }
101
+ }
102
+ async pruneUidTokens(loginId) {
103
+ const key = this.uidKey(loginId);
104
+ const tokens = await this.redis.sMembers(key);
105
+ if (!tokens.length)
106
+ return [];
107
+ const alive = [];
108
+ const ghosts = [];
109
+ for (const token of tokens) {
110
+ const session = await this.redis.getJSON(this.tokenKey(token));
111
+ if (session)
112
+ alive.push(token);
113
+ else
114
+ ghosts.push(token);
115
+ }
116
+ if (ghosts.length) {
117
+ await this.redis.sRem(key, ...ghosts);
118
+ }
119
+ if (alive.length === 0) {
120
+ await this.redis.del(key);
121
+ }
122
+ return alive;
123
+ }
124
+ async removeByLoginId(loginId) {
125
+ const key = this.uidKey(loginId);
126
+ const tokens = await this.pruneUidTokens(loginId);
127
+ if (tokens.length > 0) {
128
+ await this.redis.del(...tokens.map((t) => this.tokenKey(t)), key);
129
+ }
130
+ else {
131
+ await this.redis.del(key);
132
+ }
133
+ }
134
+ async listTokensByLoginId(loginId) {
135
+ return this.pruneUidTokens(loginId);
136
+ }
137
+ async touch(session) {
138
+ const ttl = this.ttlSeconds(session);
139
+ await this.redis.setJSON(this.tokenKey(session.token), session, ttl);
140
+ await this.refreshUidExpire(session.loginId, ttl);
141
+ }
142
+ }
143
+ exports.RedisStore = RedisStore;
144
+ let activeStore = new MemoryStore();
145
+ function getSessionStore() {
146
+ return activeStore;
147
+ }
148
+ function setSessionStore(store) {
149
+ activeStore = store;
150
+ }
151
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/framework/Auth/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { LoginId, ResolvedAuthOptions, TokenStyle } from "./types";
2
+ export declare function generateStyleToken(style: TokenStyle): string;
3
+ export interface CreateTokenPayload {
4
+ loginId: LoginId;
5
+ device?: string;
6
+ timeout: number;
7
+ }
8
+ export declare function createAuthToken(options: ResolvedAuthOptions, payload: CreateTokenPayload): Promise<string>;
9
+ export declare function verifyAuthToken(options: ResolvedAuthOptions, token: string): boolean;
10
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../../src/framework/Auth/token.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAuB5D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAGD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,MAAM,GACZ,OAAO,CAeT"}
package/Auth/token.js ADDED
@@ -0,0 +1,74 @@
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.generateStyleToken = generateStyleToken;
7
+ exports.createAuthToken = createAuthToken;
8
+ exports.verifyAuthToken = verifyAuthToken;
9
+ const crypto_1 = require("crypto");
10
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
11
+ function generateStyleToken(style) {
12
+ switch (style) {
13
+ case "simple-uuid":
14
+ return (0, crypto_1.randomUUID)().replace(/-/g, "");
15
+ case "uuid":
16
+ return (0, crypto_1.randomUUID)();
17
+ case "random-32":
18
+ return (0, crypto_1.randomBytes)(16).toString("hex");
19
+ case "random-64":
20
+ return (0, crypto_1.randomBytes)(32).toString("hex");
21
+ case "random-128":
22
+ return (0, crypto_1.randomBytes)(64).toString("hex");
23
+ case "tik": {
24
+ const part = () => (0, crypto_1.randomBytes)(3).toString("hex");
25
+ return `${part()}_${part()}_${part()}`;
26
+ }
27
+ case "jwt":
28
+ return (0, crypto_1.randomUUID)();
29
+ default:
30
+ return (0, crypto_1.randomUUID)();
31
+ }
32
+ }
33
+ async function createAuthToken(options, payload) {
34
+ if (options.createToken) {
35
+ return await options.createToken({
36
+ loginId: payload.loginId,
37
+ device: payload.device,
38
+ });
39
+ }
40
+ if (options.tokenStyle === "jwt") {
41
+ const expiresIn = payload.timeout < 0
42
+ ? undefined
43
+ : Math.max(1, Math.ceil(payload.timeout / 1000));
44
+ const signOptions = {
45
+ algorithm: (options.jwtAlgorithm || "HS256"),
46
+ };
47
+ if (expiresIn !== undefined) {
48
+ signOptions.expiresIn = expiresIn;
49
+ }
50
+ return jsonwebtoken_1.default.sign({
51
+ loginId: payload.loginId,
52
+ device: payload.device,
53
+ }, options.jwtSecret, signOptions);
54
+ }
55
+ return generateStyleToken(options.tokenStyle);
56
+ }
57
+ function verifyAuthToken(options, token) {
58
+ if (options.tokenStyle !== "jwt" && !options.createToken) {
59
+ return true;
60
+ }
61
+ if (options.tokenStyle !== "jwt") {
62
+ return true;
63
+ }
64
+ try {
65
+ jsonwebtoken_1.default.verify(token, options.jwtSecret, {
66
+ algorithms: [(options.jwtAlgorithm || "HS256")],
67
+ });
68
+ return true;
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../src/framework/Auth/token.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ export type AuthCheckMode = "OR" | "AND";
2
+ export type LoginId = string | number;
3
+ export type TokenStyle = "uuid" | "simple-uuid" | "random-32" | "random-64" | "random-128" | "tik" | "jwt";
4
+ export interface AuthSession {
5
+ token: string;
6
+ loginId: LoginId;
7
+ device?: string;
8
+ roles: string[];
9
+ permissions: string[];
10
+ username?: string;
11
+ avatar?: string;
12
+ createTime: number;
13
+ expireTime: number;
14
+ lastActiveTime: number;
15
+ }
16
+ export type AuthRedisClient = {
17
+ setJSON(key: string, value: unknown, ttlSeconds?: number): Promise<void>;
18
+ getJSON<T = unknown>(key: string): Promise<T | null>;
19
+ del(...keys: string[]): Promise<number>;
20
+ sAdd(key: string, ...members: string[]): Promise<number>;
21
+ sMembers(key: string): Promise<string[]>;
22
+ sRem(key: string, ...members: string[]): Promise<number>;
23
+ expire?(key: string, ttlSeconds: number): Promise<boolean>;
24
+ ttl?(key: string): Promise<number>;
25
+ };
26
+ export interface LoginOptions {
27
+ roles?: string[];
28
+ permissions?: string[];
29
+ username?: string;
30
+ avatar?: string;
31
+ device?: string;
32
+ timeout?: number;
33
+ }
34
+ export interface AuthOptions {
35
+ tokenName?: string;
36
+ header?: string;
37
+ tokenPrefix?: string;
38
+ timeout?: number;
39
+ activityTimeout?: number;
40
+ allowConcurrentLogin?: boolean;
41
+ isShare?: boolean;
42
+ tokenStyle?: TokenStyle;
43
+ createToken?: (payload: {
44
+ loginId: LoginId;
45
+ device?: string;
46
+ }) => string | Promise<string>;
47
+ jwtSecret?: string;
48
+ jwtAlgorithm?: string;
49
+ ignore?: string[];
50
+ redis?: AuthRedisClient;
51
+ readCookie?: boolean;
52
+ checkMode?: AuthCheckMode;
53
+ }
54
+ export interface AuthContextStore {
55
+ req: import("express").Request;
56
+ token: string | null;
57
+ session: AuthSession | null;
58
+ }
59
+ export interface ResolvedAuthOptions {
60
+ tokenName: string;
61
+ header: string;
62
+ tokenPrefix: string;
63
+ timeout: number;
64
+ activityTimeout: number;
65
+ allowConcurrentLogin: boolean;
66
+ isShare: boolean;
67
+ tokenStyle: TokenStyle;
68
+ createToken?: AuthOptions["createToken"];
69
+ jwtSecret: string;
70
+ jwtAlgorithm: string;
71
+ ignore: string[];
72
+ redis?: AuthRedisClient;
73
+ readCookie: boolean;
74
+ checkMode: AuthCheckMode;
75
+ }
76
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/framework/Auth/types.ts"],"names":[],"mappings":"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"}
package/Auth/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/framework/Auth/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import "reflect-metadata";
2
+ export declare function ControllerAdvice(): ClassDecorator;
3
+ export declare function ExceptionHandler(errorType?: Function): MethodDecorator;
4
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../src/framework/Exception/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAsB1B,wBAAgB,gBAAgB,IAAI,cAAc,CAuBjD;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,QAAgB,GAAG,eAAe,CAY7E"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ControllerAdvice = ControllerAdvice;
4
+ exports.ExceptionHandler = ExceptionHandler;
5
+ require("reflect-metadata");
6
+ const registry_1 = require("./registry");
7
+ const HANDLERS_KEY = Symbol.for("pangza.exception.handlers");
8
+ function ControllerAdvice() {
9
+ return (ctor) => {
10
+ const Ctor = ctor;
11
+ const pending = Reflect.getOwnMetadata(HANDLERS_KEY, ctor) ??
12
+ [];
13
+ const instance = new Ctor();
14
+ for (const item of pending) {
15
+ const method = instance[item.handlerName];
16
+ if (typeof method !== "function") {
17
+ throw new Error(`[ControllerAdvice] ${Ctor.name}.${item.handlerName} 不是函数`);
18
+ }
19
+ const bound = method.bind(instance);
20
+ (0, registry_1.registerExceptionHandler)({
21
+ errorType: item.errorType,
22
+ handlerName: `${Ctor.name}.${item.handlerName}`,
23
+ handler: bound,
24
+ });
25
+ }
26
+ };
27
+ }
28
+ function ExceptionHandler(errorType = Error) {
29
+ return (target, propertyKey) => {
30
+ const ctor = target.constructor;
31
+ const list = Reflect.getOwnMetadata(HANDLERS_KEY, ctor) ??
32
+ [];
33
+ list.push({
34
+ errorType,
35
+ handlerName: String(propertyKey),
36
+ });
37
+ Reflect.defineMetadata(HANDLERS_KEY, list, ctor);
38
+ };
39
+ }
40
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/framework/Exception/decorators.ts"],"names":[],"mappings":";;AAsBA,4CAuBC;AAMD,4CAYC;AA/DD,4BAA0B;AAC1B,yCAAsD;AAGtD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAkB7D,SAAgB,gBAAgB;IAC9B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,IAAmC,CAAC;QACjD,MAAM,OAAO,GACV,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAkC;YAC5E,EAAE,CAAC;QACL,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAI,QAAoC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,sBAAsB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,OAAO,CAC3D,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAI,MAAmB,CAAC,IAAI,CAAC,QAAQ,CAAuB,CAAC;YACxE,IAAA,mCAAwB,EAAC;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/C,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAMD,SAAgB,gBAAgB,CAAC,YAAsB,KAAK;IAC1D,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAI,MAAiB,CAAC,WAAW,CAAC;QAC5C,MAAM,IAAI,GACP,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAkC;YAC5E,EAAE,CAAC;QACL,IAAI,CAAC,IAAI,CAAC;YACR,SAAS;YACT,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;SACjC,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Request, Response } from "express";
2
+ export declare function handleException(req: Request, res: Response, error: unknown): Promise<void>;
3
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/framework/Exception/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA6BjD,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -0,0 +1,96 @@
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.handleException = handleException;
7
+ const ResponseData_1 = __importDefault(require("../utils/entity/ResponseData"));
8
+ const enums_1 = require("../types/enums");
9
+ const Auth_1 = require("../Auth");
10
+ const Logger_1 = require("../Logger");
11
+ const ORM_1 = require("../ORM");
12
+ const Redis_1 = require("../Redis");
13
+ const Validate_1 = require("../Validate");
14
+ const registry_1 = require("./registry");
15
+ const types_1 = require("./types");
16
+ const log = (0, Logger_1.getLogger)("Exception");
17
+ function isResponseDataLike(value) {
18
+ return (!!value &&
19
+ typeof value === "object" &&
20
+ "code" in value &&
21
+ "message" in value &&
22
+ "data" in value);
23
+ }
24
+ async function handleException(req, res, error) {
25
+ if (res.headersSent)
26
+ return;
27
+ const ctx = { req, res, error };
28
+ const matched = (0, registry_1.resolveExceptionHandler)(error);
29
+ if (matched) {
30
+ try {
31
+ const result = await matched.handler(error, ctx);
32
+ if (sendHandlerResult(res, result))
33
+ return;
34
+ }
35
+ catch (handlerError) {
36
+ log.error({ err: handlerError, handler: matched.handlerName }, "自定义异常处理器抛错");
37
+ }
38
+ }
39
+ sendBuiltin(res, error);
40
+ }
41
+ function sendHandlerResult(res, result) {
42
+ if (result === null || result === undefined)
43
+ return false;
44
+ if (isResponseDataLike(result)) {
45
+ res.status(200).send(result);
46
+ return true;
47
+ }
48
+ if (typeof result === "object") {
49
+ if ("rawBody" in result && result.rawBody !== undefined) {
50
+ const status = result.httpStatus ?? 200;
51
+ res.status(status).send(result.rawBody);
52
+ return true;
53
+ }
54
+ const httpStatus = result.httpStatus ?? 200;
55
+ const body = ResponseData_1.default.error(result.message ?? "操作失败", result.data ?? null, result.code ?? enums_1.ResponseCode.ERROR);
56
+ res.status(httpStatus).send(body);
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ function sendBuiltin(res, error) {
62
+ if (error instanceof types_1.BizException) {
63
+ res
64
+ .status(error.httpStatus)
65
+ .send(ResponseData_1.default.error(error.message, error.data, error.code));
66
+ return;
67
+ }
68
+ if (error instanceof Validate_1.ValidationError) {
69
+ res
70
+ .status(200)
71
+ .send(ResponseData_1.default.error(error.message, error.errors, error.code));
72
+ return;
73
+ }
74
+ if (error instanceof Auth_1.AuthError) {
75
+ res.status(200).send(ResponseData_1.default.error(error.message, null, error.code));
76
+ return;
77
+ }
78
+ if (error instanceof ORM_1.OrmError) {
79
+ res.status(200).send(ResponseData_1.default.error(error.message, null, error.code));
80
+ return;
81
+ }
82
+ if (error instanceof Redis_1.GuardError) {
83
+ res.status(200).send(ResponseData_1.default.error(error.message, null, error.code));
84
+ return;
85
+ }
86
+ if (error instanceof Redis_1.LockError) {
87
+ res
88
+ .status(200)
89
+ .send(ResponseData_1.default.error(error.message, null, enums_1.ResponseCode.ERROR));
90
+ return;
91
+ }
92
+ const message = error instanceof Error ? error.message : "错误";
93
+ log.error({ err: error }, "unhandled exception");
94
+ res.status(500).send(ResponseData_1.default.error(message));
95
+ }
96
+ //# sourceMappingURL=handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/framework/Exception/handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ExceptionHandlerFn } from "./types";
2
+ export { ControllerAdvice, ExceptionHandler } from "./decorators";
3
+ export { handleException } from "./handler";
4
+ export { registerExceptionHandler, clearExceptionHandlers, getExceptionHandlers, resolveExceptionHandler, } from "./registry";
5
+ export { BizException } from "./types";
6
+ export type { ExceptionContext, ExceptionHandlerFn, ExceptionHandlerResult, ExceptionHandlerMeta, } from "./types";
7
+ export declare function registerHandler(errorType: Function, handler: ExceptionHandlerFn): void;
8
+ export default function Exception(): (_req: unknown, _res: unknown, next: (err?: unknown) => void) => void;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/framework/Exception/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAQjB,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAMN;AAOD,MAAM,CAAC,OAAO,UAAU,SAAS,WAEvB,OAAO,QACP,OAAO,QACP,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,UAOhC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BizException = exports.resolveExceptionHandler = exports.getExceptionHandlers = exports.clearExceptionHandlers = exports.registerExceptionHandler = exports.handleException = exports.ExceptionHandler = exports.ControllerAdvice = void 0;
4
+ exports.registerHandler = registerHandler;
5
+ exports.default = Exception;
6
+ const registry_1 = require("./registry");
7
+ var decorators_1 = require("./decorators");
8
+ Object.defineProperty(exports, "ControllerAdvice", { enumerable: true, get: function () { return decorators_1.ControllerAdvice; } });
9
+ Object.defineProperty(exports, "ExceptionHandler", { enumerable: true, get: function () { return decorators_1.ExceptionHandler; } });
10
+ var handler_1 = require("./handler");
11
+ Object.defineProperty(exports, "handleException", { enumerable: true, get: function () { return handler_1.handleException; } });
12
+ var registry_2 = require("./registry");
13
+ Object.defineProperty(exports, "registerExceptionHandler", { enumerable: true, get: function () { return registry_2.registerExceptionHandler; } });
14
+ Object.defineProperty(exports, "clearExceptionHandlers", { enumerable: true, get: function () { return registry_2.clearExceptionHandlers; } });
15
+ Object.defineProperty(exports, "getExceptionHandlers", { enumerable: true, get: function () { return registry_2.getExceptionHandlers; } });
16
+ Object.defineProperty(exports, "resolveExceptionHandler", { enumerable: true, get: function () { return registry_2.resolveExceptionHandler; } });
17
+ var types_1 = require("./types");
18
+ Object.defineProperty(exports, "BizException", { enumerable: true, get: function () { return types_1.BizException; } });
19
+ function registerHandler(errorType, handler) {
20
+ (0, registry_1.registerExceptionHandler)({
21
+ errorType,
22
+ handlerName: `functional:${errorType.name || "Anonymous"}`,
23
+ handler,
24
+ });
25
+ }
26
+ function Exception() {
27
+ const middleware = (_req, _res, next) => next();
28
+ Object.defineProperty(middleware, Symbol.for("pangza.exception.module"), {
29
+ value: true,
30
+ enumerable: false,
31
+ });
32
+ return middleware;
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/framework/Exception/index.ts"],"names":[],"mappings":";;;AAyBA,0CASC;AAOD,4BAWC;AApDD,yCAAsD;AAGtD,2CAAkE;AAAzD,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAC3C,qCAA4C;AAAnC,0GAAA,eAAe,OAAA;AACxB,uCAKoB;AAJlB,oHAAA,wBAAwB,OAAA;AACxB,kHAAA,sBAAsB,OAAA;AACtB,gHAAA,oBAAoB,OAAA;AACpB,mHAAA,uBAAuB,OAAA;AAEzB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AAcrB,SAAgB,eAAe,CAC7B,SAAmB,EACnB,OAA2B;IAE3B,IAAA,mCAAwB,EAAC;QACvB,SAAS;QACT,WAAW,EAAE,cAAc,SAAS,CAAC,IAAI,IAAI,WAAW,EAAE;QAC1D,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAOD,SAAwB,SAAS;IAC/B,MAAM,UAAU,GAAG,CACjB,IAAa,EACb,IAAa,EACb,IAA6B,EAC7B,EAAE,CAAC,IAAI,EAAE,CAAC;IACZ,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE;QACvE,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ExceptionHandlerMeta } from "./types";
2
+ export declare function registerExceptionHandler(meta: ExceptionHandlerMeta): void;
3
+ export declare function clearExceptionHandlers(): void;
4
+ export declare function getExceptionHandlers(): ExceptionHandlerMeta[];
5
+ export declare function resolveExceptionHandler(error: unknown): ExceptionHandlerMeta | undefined;
6
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/framework/Exception/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAKpD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAEzE;AAGD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAGD,wBAAgB,oBAAoB,IAAI,oBAAoB,EAAE,CAE7D;AAMD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,oBAAoB,GAAG,SAAS,CAoClC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerExceptionHandler = registerExceptionHandler;
4
+ exports.clearExceptionHandlers = clearExceptionHandlers;
5
+ exports.getExceptionHandlers = getExceptionHandlers;
6
+ exports.resolveExceptionHandler = resolveExceptionHandler;
7
+ const adviceList = [];
8
+ function registerExceptionHandler(meta) {
9
+ adviceList.unshift(meta);
10
+ }
11
+ function clearExceptionHandlers() {
12
+ adviceList.length = 0;
13
+ }
14
+ function getExceptionHandlers() {
15
+ return [...adviceList];
16
+ }
17
+ function resolveExceptionHandler(error) {
18
+ if (error === null || error === undefined)
19
+ return undefined;
20
+ const errorCtor = typeof error === "object" && error.constructor
21
+ ? error.constructor
22
+ : undefined;
23
+ if (errorCtor) {
24
+ const exact = adviceList.find((h) => h.errorType === errorCtor);
25
+ if (exact)
26
+ return exact;
27
+ }
28
+ if (typeof error === "object") {
29
+ let best;
30
+ let bestDistance = Number.POSITIVE_INFINITY;
31
+ for (const handler of adviceList) {
32
+ if (handler.errorType === Error)
33
+ continue;
34
+ if (!(error instanceof handler.errorType))
35
+ continue;
36
+ const distance = inheritanceDistance(error.constructor, handler.errorType);
37
+ if (distance >= 0 && distance < bestDistance) {
38
+ best = handler;
39
+ bestDistance = distance;
40
+ }
41
+ }
42
+ if (best)
43
+ return best;
44
+ }
45
+ return adviceList.find((h) => h.errorType === Error);
46
+ }
47
+ function inheritanceDistance(from, to) {
48
+ let distance = 0;
49
+ let cur = from;
50
+ while (cur && cur !== Function.prototype) {
51
+ if (cur === to)
52
+ return distance;
53
+ cur = Object.getPrototypeOf(cur.prototype)?.constructor ?? null;
54
+ distance += 1;
55
+ if (distance > 32)
56
+ break;
57
+ }
58
+ return -1;
59
+ }
60
+ //# sourceMappingURL=registry.js.map