@dofe/infra-common 0.1.1

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 (373) hide show
  1. package/dist/adapters/base.adapter.d.ts +84 -0
  2. package/dist/adapters/base.adapter.d.ts.map +1 -0
  3. package/dist/adapters/base.adapter.js +19 -0
  4. package/dist/adapters/base.adapter.js.map +1 -0
  5. package/dist/adapters/index.d.ts +35 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +53 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/common.module.d.ts +7 -0
  10. package/dist/common.module.d.ts.map +1 -0
  11. package/dist/common.module.js +26 -0
  12. package/dist/common.module.js.map +1 -0
  13. package/dist/config/agentx.config.d.ts +37 -0
  14. package/dist/config/agentx.config.d.ts.map +1 -0
  15. package/dist/config/agentx.config.js +81 -0
  16. package/dist/config/agentx.config.js.map +1 -0
  17. package/dist/config/configuration.d.ts +55 -0
  18. package/dist/config/configuration.d.ts.map +1 -0
  19. package/dist/config/configuration.js +336 -0
  20. package/dist/config/configuration.js.map +1 -0
  21. package/dist/config/constant/config.constants.d.ts +48 -0
  22. package/dist/config/constant/config.constants.d.ts.map +1 -0
  23. package/dist/config/constant/config.constants.js +86 -0
  24. package/dist/config/constant/config.constants.js.map +1 -0
  25. package/dist/config/dto/config.dto.d.ts +222 -0
  26. package/dist/config/dto/config.dto.d.ts.map +1 -0
  27. package/dist/config/dto/config.dto.js +42 -0
  28. package/dist/config/dto/config.dto.js.map +1 -0
  29. package/dist/config/env-config.service.d.ts +147 -0
  30. package/dist/config/env-config.service.d.ts.map +1 -0
  31. package/dist/config/env-config.service.js +296 -0
  32. package/dist/config/env-config.service.js.map +1 -0
  33. package/dist/config/features/feature-errors.d.ts +13 -0
  34. package/dist/config/features/feature-errors.d.ts.map +1 -0
  35. package/dist/config/features/feature-errors.js +25 -0
  36. package/dist/config/features/feature-errors.js.map +1 -0
  37. package/dist/config/features/feature-registry.d.ts +26 -0
  38. package/dist/config/features/feature-registry.d.ts.map +1 -0
  39. package/dist/config/features/feature-registry.js +172 -0
  40. package/dist/config/features/feature-registry.js.map +1 -0
  41. package/dist/config/features/index.d.ts +4 -0
  42. package/dist/config/features/index.d.ts.map +1 -0
  43. package/dist/config/features/index.js +9 -0
  44. package/dist/config/features/index.js.map +1 -0
  45. package/dist/config/validation/env.validation.d.ts +132 -0
  46. package/dist/config/validation/env.validation.d.ts.map +1 -0
  47. package/dist/config/validation/env.validation.js +304 -0
  48. package/dist/config/validation/env.validation.js.map +1 -0
  49. package/dist/config/validation/index.d.ts +21 -0
  50. package/dist/config/validation/index.d.ts.map +1 -0
  51. package/dist/config/validation/index.js +119 -0
  52. package/dist/config/validation/index.js.map +1 -0
  53. package/dist/config/validation/keys.validation.d.ts +884 -0
  54. package/dist/config/validation/keys.validation.d.ts.map +1 -0
  55. package/dist/config/validation/keys.validation.js +506 -0
  56. package/dist/config/validation/keys.validation.js.map +1 -0
  57. package/dist/config/validation/yaml.validation.d.ts +765 -0
  58. package/dist/config/validation/yaml.validation.d.ts.map +1 -0
  59. package/dist/config/validation/yaml.validation.js +488 -0
  60. package/dist/config/validation/yaml.validation.js.map +1 -0
  61. package/dist/config/vendor.config.d.ts +48 -0
  62. package/dist/config/vendor.config.d.ts.map +1 -0
  63. package/dist/config/vendor.config.js +136 -0
  64. package/dist/config/vendor.config.js.map +1 -0
  65. package/dist/decorators/api-key/api-key.decorator.d.ts +25 -0
  66. package/dist/decorators/api-key/api-key.decorator.d.ts.map +1 -0
  67. package/dist/decorators/api-key/api-key.decorator.js +30 -0
  68. package/dist/decorators/api-key/api-key.decorator.js.map +1 -0
  69. package/dist/decorators/api-key/index.d.ts +2 -0
  70. package/dist/decorators/api-key/index.d.ts.map +1 -0
  71. package/dist/decorators/api-key/index.js +18 -0
  72. package/dist/decorators/api-key/index.js.map +1 -0
  73. package/dist/decorators/app-version/app-version.controller.d.ts +30 -0
  74. package/dist/decorators/app-version/app-version.controller.d.ts.map +1 -0
  75. package/dist/decorators/app-version/app-version.controller.js +159 -0
  76. package/dist/decorators/app-version/app-version.controller.js.map +1 -0
  77. package/dist/decorators/app-version/app-version.interceptor.d.ts +15 -0
  78. package/dist/decorators/app-version/app-version.interceptor.d.ts.map +1 -0
  79. package/dist/decorators/app-version/app-version.interceptor.js +42 -0
  80. package/dist/decorators/app-version/app-version.interceptor.js.map +1 -0
  81. package/dist/decorators/app-version/app-version.module.d.ts +8 -0
  82. package/dist/decorators/app-version/app-version.module.d.ts.map +1 -0
  83. package/dist/decorators/app-version/app-version.module.js +39 -0
  84. package/dist/decorators/app-version/app-version.module.js.map +1 -0
  85. package/dist/decorators/app-version/app-version.service.d.ts +88 -0
  86. package/dist/decorators/app-version/app-version.service.d.ts.map +1 -0
  87. package/dist/decorators/app-version/app-version.service.js +251 -0
  88. package/dist/decorators/app-version/app-version.service.js.map +1 -0
  89. package/dist/decorators/app-version/index.d.ts +8 -0
  90. package/dist/decorators/app-version/index.d.ts.map +1 -0
  91. package/dist/decorators/app-version/index.js +15 -0
  92. package/dist/decorators/app-version/index.js.map +1 -0
  93. package/dist/decorators/audit-log.decorator.d.ts +41 -0
  94. package/dist/decorators/audit-log.decorator.d.ts.map +1 -0
  95. package/dist/decorators/audit-log.decorator.js +19 -0
  96. package/dist/decorators/audit-log.decorator.js.map +1 -0
  97. package/dist/decorators/cache/cache.decorator.d.ts +256 -0
  98. package/dist/decorators/cache/cache.decorator.d.ts.map +1 -0
  99. package/dist/decorators/cache/cache.decorator.js +339 -0
  100. package/dist/decorators/cache/cache.decorator.js.map +1 -0
  101. package/dist/decorators/cache/cache.interceptor.d.ts +43 -0
  102. package/dist/decorators/cache/cache.interceptor.d.ts.map +1 -0
  103. package/dist/decorators/cache/cache.interceptor.js +219 -0
  104. package/dist/decorators/cache/cache.interceptor.js.map +1 -0
  105. package/dist/decorators/cache/cache.module.d.ts +9 -0
  106. package/dist/decorators/cache/cache.module.d.ts.map +1 -0
  107. package/dist/decorators/cache/cache.module.js +36 -0
  108. package/dist/decorators/cache/cache.module.js.map +1 -0
  109. package/dist/decorators/cache/index.d.ts +7 -0
  110. package/dist/decorators/cache/index.d.ts.map +1 -0
  111. package/dist/decorators/cache/index.js +32 -0
  112. package/dist/decorators/cache/index.js.map +1 -0
  113. package/dist/decorators/data-visibility/data-visibility.decorator.d.ts +74 -0
  114. package/dist/decorators/data-visibility/data-visibility.decorator.d.ts.map +1 -0
  115. package/dist/decorators/data-visibility/data-visibility.decorator.js +87 -0
  116. package/dist/decorators/data-visibility/data-visibility.decorator.js.map +1 -0
  117. package/dist/decorators/data-visibility/index.d.ts +2 -0
  118. package/dist/decorators/data-visibility/index.d.ts.map +1 -0
  119. package/dist/decorators/data-visibility/index.js +18 -0
  120. package/dist/decorators/data-visibility/index.js.map +1 -0
  121. package/dist/decorators/event/event.decorator.d.ts +152 -0
  122. package/dist/decorators/event/event.decorator.d.ts.map +1 -0
  123. package/dist/decorators/event/event.decorator.js +158 -0
  124. package/dist/decorators/event/event.decorator.js.map +1 -0
  125. package/dist/decorators/event/event.interceptor.d.ts +23 -0
  126. package/dist/decorators/event/event.interceptor.d.ts.map +1 -0
  127. package/dist/decorators/event/event.interceptor.js +140 -0
  128. package/dist/decorators/event/event.interceptor.js.map +1 -0
  129. package/dist/decorators/event/event.module.d.ts +9 -0
  130. package/dist/decorators/event/event.module.d.ts.map +1 -0
  131. package/dist/decorators/event/event.module.js +59 -0
  132. package/dist/decorators/event/event.module.js.map +1 -0
  133. package/dist/decorators/event/handlers/cache-event.handler.d.ts +55 -0
  134. package/dist/decorators/event/handlers/cache-event.handler.d.ts.map +1 -0
  135. package/dist/decorators/event/handlers/cache-event.handler.js +159 -0
  136. package/dist/decorators/event/handlers/cache-event.handler.js.map +1 -0
  137. package/dist/decorators/event/index.d.ts +8 -0
  138. package/dist/decorators/event/index.d.ts.map +1 -0
  139. package/dist/decorators/event/index.js +26 -0
  140. package/dist/decorators/event/index.js.map +1 -0
  141. package/dist/decorators/feature-flag/feature-flag.decorator.d.ts +144 -0
  142. package/dist/decorators/feature-flag/feature-flag.decorator.d.ts.map +1 -0
  143. package/dist/decorators/feature-flag/feature-flag.decorator.js +135 -0
  144. package/dist/decorators/feature-flag/feature-flag.decorator.js.map +1 -0
  145. package/dist/decorators/feature-flag/feature-flag.interceptor.d.ts +30 -0
  146. package/dist/decorators/feature-flag/feature-flag.interceptor.d.ts.map +1 -0
  147. package/dist/decorators/feature-flag/feature-flag.interceptor.js +127 -0
  148. package/dist/decorators/feature-flag/feature-flag.interceptor.js.map +1 -0
  149. package/dist/decorators/feature-flag/feature-flag.module.d.ts +9 -0
  150. package/dist/decorators/feature-flag/feature-flag.module.d.ts.map +1 -0
  151. package/dist/decorators/feature-flag/feature-flag.module.js +39 -0
  152. package/dist/decorators/feature-flag/feature-flag.module.js.map +1 -0
  153. package/dist/decorators/feature-flag/feature-flag.service.d.ts +102 -0
  154. package/dist/decorators/feature-flag/feature-flag.service.d.ts.map +1 -0
  155. package/dist/decorators/feature-flag/feature-flag.service.js +373 -0
  156. package/dist/decorators/feature-flag/feature-flag.service.js.map +1 -0
  157. package/dist/decorators/feature-flag/feature-flag.service.spec.d.ts +2 -0
  158. package/dist/decorators/feature-flag/feature-flag.service.spec.d.ts.map +1 -0
  159. package/dist/decorators/feature-flag/feature-flag.service.spec.js +264 -0
  160. package/dist/decorators/feature-flag/feature-flag.service.spec.js.map +1 -0
  161. package/dist/decorators/feature-flag/index.d.ts +8 -0
  162. package/dist/decorators/feature-flag/index.d.ts.map +1 -0
  163. package/dist/decorators/feature-flag/index.js +23 -0
  164. package/dist/decorators/feature-flag/index.js.map +1 -0
  165. package/dist/decorators/rate-limit/dto/rate-limit.dto.d.ts +174 -0
  166. package/dist/decorators/rate-limit/dto/rate-limit.dto.d.ts.map +1 -0
  167. package/dist/decorators/rate-limit/dto/rate-limit.dto.js +8 -0
  168. package/dist/decorators/rate-limit/dto/rate-limit.dto.js.map +1 -0
  169. package/dist/decorators/rate-limit/index.d.ts +24 -0
  170. package/dist/decorators/rate-limit/index.d.ts.map +1 -0
  171. package/dist/decorators/rate-limit/index.js +44 -0
  172. package/dist/decorators/rate-limit/index.js.map +1 -0
  173. package/dist/decorators/rate-limit/rate-limit.constants.d.ts +16 -0
  174. package/dist/decorators/rate-limit/rate-limit.constants.d.ts.map +1 -0
  175. package/dist/decorators/rate-limit/rate-limit.constants.js +22 -0
  176. package/dist/decorators/rate-limit/rate-limit.constants.js.map +1 -0
  177. package/dist/decorators/rate-limit/rate-limit.decorator.d.ts +132 -0
  178. package/dist/decorators/rate-limit/rate-limit.decorator.d.ts.map +1 -0
  179. package/dist/decorators/rate-limit/rate-limit.decorator.js +185 -0
  180. package/dist/decorators/rate-limit/rate-limit.decorator.js.map +1 -0
  181. package/dist/decorators/rate-limit/rate-limit.exception.d.ts +39 -0
  182. package/dist/decorators/rate-limit/rate-limit.exception.d.ts.map +1 -0
  183. package/dist/decorators/rate-limit/rate-limit.exception.js +67 -0
  184. package/dist/decorators/rate-limit/rate-limit.exception.js.map +1 -0
  185. package/dist/decorators/rate-limit/rate-limit.module.d.ts +25 -0
  186. package/dist/decorators/rate-limit/rate-limit.module.d.ts.map +1 -0
  187. package/dist/decorators/rate-limit/rate-limit.module.js +48 -0
  188. package/dist/decorators/rate-limit/rate-limit.module.js.map +1 -0
  189. package/dist/decorators/rate-limit/rate-limit.service.d.ts +102 -0
  190. package/dist/decorators/rate-limit/rate-limit.service.d.ts.map +1 -0
  191. package/dist/decorators/rate-limit/rate-limit.service.js +390 -0
  192. package/dist/decorators/rate-limit/rate-limit.service.js.map +1 -0
  193. package/dist/decorators/response.decorator.d.ts +10 -0
  194. package/dist/decorators/response.decorator.d.ts.map +1 -0
  195. package/dist/decorators/response.decorator.js +58 -0
  196. package/dist/decorators/response.decorator.js.map +1 -0
  197. package/dist/decorators/skip-version-check.decorator.d.ts +25 -0
  198. package/dist/decorators/skip-version-check.decorator.d.ts.map +1 -0
  199. package/dist/decorators/skip-version-check.decorator.js +31 -0
  200. package/dist/decorators/skip-version-check.decorator.js.map +1 -0
  201. package/dist/decorators/tenant/index.d.ts +2 -0
  202. package/dist/decorators/tenant/index.d.ts.map +1 -0
  203. package/dist/decorators/tenant/index.js +18 -0
  204. package/dist/decorators/tenant/index.js.map +1 -0
  205. package/dist/decorators/tenant/tenant.decorator.d.ts +82 -0
  206. package/dist/decorators/tenant/tenant.decorator.d.ts.map +1 -0
  207. package/dist/decorators/tenant/tenant.decorator.js +98 -0
  208. package/dist/decorators/tenant/tenant.decorator.js.map +1 -0
  209. package/dist/decorators/transaction/index.d.ts +6 -0
  210. package/dist/decorators/transaction/index.d.ts.map +1 -0
  211. package/dist/decorators/transaction/index.js +12 -0
  212. package/dist/decorators/transaction/index.js.map +1 -0
  213. package/dist/decorators/transaction/transactional.decorator.d.ts +234 -0
  214. package/dist/decorators/transaction/transactional.decorator.d.ts.map +1 -0
  215. package/dist/decorators/transaction/transactional.decorator.js +433 -0
  216. package/dist/decorators/transaction/transactional.decorator.js.map +1 -0
  217. package/dist/decorators/ts-rest-controller.decorator.d.ts +38 -0
  218. package/dist/decorators/ts-rest-controller.decorator.d.ts.map +1 -0
  219. package/dist/decorators/ts-rest-controller.decorator.js +25 -0
  220. package/dist/decorators/ts-rest-controller.decorator.js.map +1 -0
  221. package/dist/decorators/validation.decorator.d.ts +4 -0
  222. package/dist/decorators/validation.decorator.d.ts.map +1 -0
  223. package/dist/decorators/validation.decorator.js +121 -0
  224. package/dist/decorators/validation.decorator.js.map +1 -0
  225. package/dist/decorators/version/index.d.ts +7 -0
  226. package/dist/decorators/version/index.d.ts.map +1 -0
  227. package/dist/decorators/version/index.js +25 -0
  228. package/dist/decorators/version/index.js.map +1 -0
  229. package/dist/decorators/version/version.decorator.d.ts +96 -0
  230. package/dist/decorators/version/version.decorator.d.ts.map +1 -0
  231. package/dist/decorators/version/version.decorator.js +146 -0
  232. package/dist/decorators/version/version.decorator.js.map +1 -0
  233. package/dist/decorators/version/version.interceptor.d.ts +19 -0
  234. package/dist/decorators/version/version.interceptor.d.ts.map +1 -0
  235. package/dist/decorators/version/version.interceptor.js +86 -0
  236. package/dist/decorators/version/version.interceptor.js.map +1 -0
  237. package/dist/decorators/version/version.module.d.ts +8 -0
  238. package/dist/decorators/version/version.module.d.ts.map +1 -0
  239. package/dist/decorators/version/version.module.js +33 -0
  240. package/dist/decorators/version/version.module.js.map +1 -0
  241. package/dist/encryption.service.d.ts +15 -0
  242. package/dist/encryption.service.d.ts.map +1 -0
  243. package/dist/encryption.service.js +35 -0
  244. package/dist/encryption.service.js.map +1 -0
  245. package/dist/enums/action.enum.d.ts +8 -0
  246. package/dist/enums/action.enum.d.ts.map +1 -0
  247. package/dist/enums/action.enum.js +12 -0
  248. package/dist/enums/action.enum.js.map +1 -0
  249. package/dist/enums/error-codes.d.ts +33 -0
  250. package/dist/enums/error-codes.d.ts.map +1 -0
  251. package/dist/enums/error-codes.js +52 -0
  252. package/dist/enums/error-codes.js.map +1 -0
  253. package/dist/enums/role.enum.d.ts +5 -0
  254. package/dist/enums/role.enum.d.ts.map +1 -0
  255. package/dist/enums/role.enum.js +9 -0
  256. package/dist/enums/role.enum.js.map +1 -0
  257. package/dist/filter/exception/api.exception.d.ts +77 -0
  258. package/dist/filter/exception/api.exception.d.ts.map +1 -0
  259. package/dist/filter/exception/api.exception.js +151 -0
  260. package/dist/filter/exception/api.exception.js.map +1 -0
  261. package/dist/filter/exception/exception.d.ts +8 -0
  262. package/dist/filter/exception/exception.d.ts.map +1 -0
  263. package/dist/filter/exception/exception.js +50 -0
  264. package/dist/filter/exception/exception.js.map +1 -0
  265. package/dist/filter/exception/http.exception.d.ts +11 -0
  266. package/dist/filter/exception/http.exception.d.ts.map +1 -0
  267. package/dist/filter/exception/http.exception.js +152 -0
  268. package/dist/filter/exception/http.exception.js.map +1 -0
  269. package/dist/guards/api-key.guard.d.ts +42 -0
  270. package/dist/guards/api-key.guard.d.ts.map +1 -0
  271. package/dist/guards/api-key.guard.js +159 -0
  272. package/dist/guards/api-key.guard.js.map +1 -0
  273. package/dist/guards/auth.guard.d.ts +39 -0
  274. package/dist/guards/auth.guard.d.ts.map +1 -0
  275. package/dist/guards/auth.guard.js +178 -0
  276. package/dist/guards/auth.guard.js.map +1 -0
  277. package/dist/guards/data-visibility.guard.d.ts +18 -0
  278. package/dist/guards/data-visibility.guard.d.ts.map +1 -0
  279. package/dist/guards/data-visibility.guard.js +84 -0
  280. package/dist/guards/data-visibility.guard.js.map +1 -0
  281. package/dist/guards/index.d.ts +7 -0
  282. package/dist/guards/index.d.ts.map +1 -0
  283. package/dist/guards/index.js +23 -0
  284. package/dist/guards/index.js.map +1 -0
  285. package/dist/guards/permission.guard.d.ts +20 -0
  286. package/dist/guards/permission.guard.d.ts.map +1 -0
  287. package/dist/guards/permission.guard.js +141 -0
  288. package/dist/guards/permission.guard.js.map +1 -0
  289. package/dist/guards/tenant-context.guard.d.ts +12 -0
  290. package/dist/guards/tenant-context.guard.d.ts.map +1 -0
  291. package/dist/guards/tenant-context.guard.js +94 -0
  292. package/dist/guards/tenant-context.guard.js.map +1 -0
  293. package/dist/guards/version.guard.d.ts +100 -0
  294. package/dist/guards/version.guard.d.ts.map +1 -0
  295. package/dist/guards/version.guard.js +233 -0
  296. package/dist/guards/version.guard.js.map +1 -0
  297. package/dist/index.d.ts +60 -0
  298. package/dist/index.d.ts.map +1 -0
  299. package/dist/index.js +85 -0
  300. package/dist/index.js.map +1 -0
  301. package/dist/interceptor/audit/audit-log.interceptor.d.ts +16 -0
  302. package/dist/interceptor/audit/audit-log.interceptor.d.ts.map +1 -0
  303. package/dist/interceptor/audit/audit-log.interceptor.js +156 -0
  304. package/dist/interceptor/audit/audit-log.interceptor.js.map +1 -0
  305. package/dist/interceptor/audit/index.d.ts +2 -0
  306. package/dist/interceptor/audit/index.d.ts.map +1 -0
  307. package/dist/interceptor/audit/index.js +18 -0
  308. package/dist/interceptor/audit/index.js.map +1 -0
  309. package/dist/interceptor/mask/index.d.ts +2 -0
  310. package/dist/interceptor/mask/index.d.ts.map +1 -0
  311. package/dist/interceptor/mask/index.js +18 -0
  312. package/dist/interceptor/mask/index.js.map +1 -0
  313. package/dist/interceptor/mask/mask.interceptor.d.ts +79 -0
  314. package/dist/interceptor/mask/mask.interceptor.d.ts.map +1 -0
  315. package/dist/interceptor/mask/mask.interceptor.js +197 -0
  316. package/dist/interceptor/mask/mask.interceptor.js.map +1 -0
  317. package/dist/interceptor/rate-limit/no-rate-limit.interceptor.d.ts +6 -0
  318. package/dist/interceptor/rate-limit/no-rate-limit.interceptor.d.ts.map +1 -0
  319. package/dist/interceptor/rate-limit/no-rate-limit.interceptor.js +20 -0
  320. package/dist/interceptor/rate-limit/no-rate-limit.interceptor.js.map +1 -0
  321. package/dist/interceptor/rate-limit/rate-limit.interceptor.d.ts +45 -0
  322. package/dist/interceptor/rate-limit/rate-limit.interceptor.d.ts.map +1 -0
  323. package/dist/interceptor/rate-limit/rate-limit.interceptor.js +193 -0
  324. package/dist/interceptor/rate-limit/rate-limit.interceptor.js.map +1 -0
  325. package/dist/interceptor/transform/transform.interceptor.d.ts +37 -0
  326. package/dist/interceptor/transform/transform.interceptor.d.ts.map +1 -0
  327. package/dist/interceptor/transform/transform.interceptor.js +72 -0
  328. package/dist/interceptor/transform/transform.interceptor.js.map +1 -0
  329. package/dist/interceptor/transform/transform.interceptor.spec.d.ts +2 -0
  330. package/dist/interceptor/transform/transform.interceptor.spec.d.ts.map +1 -0
  331. package/dist/interceptor/transform/transform.interceptor.spec.js +9 -0
  332. package/dist/interceptor/transform/transform.interceptor.spec.js.map +1 -0
  333. package/dist/interceptor/version/index.d.ts +2 -0
  334. package/dist/interceptor/version/index.d.ts.map +1 -0
  335. package/dist/interceptor/version/index.js +18 -0
  336. package/dist/interceptor/version/index.js.map +1 -0
  337. package/dist/interceptor/version/version-header.interceptor.d.ts +31 -0
  338. package/dist/interceptor/version/version-header.interceptor.d.ts.map +1 -0
  339. package/dist/interceptor/version/version-header.interceptor.js +62 -0
  340. package/dist/interceptor/version/version-header.interceptor.js.map +1 -0
  341. package/dist/middleware/request.middleware.d.ts +27 -0
  342. package/dist/middleware/request.middleware.d.ts.map +1 -0
  343. package/dist/middleware/request.middleware.js +141 -0
  344. package/dist/middleware/request.middleware.js.map +1 -0
  345. package/dist/middleware/tenant-isolation.middleware.d.ts +12 -0
  346. package/dist/middleware/tenant-isolation.middleware.d.ts.map +1 -0
  347. package/dist/middleware/tenant-isolation.middleware.js +51 -0
  348. package/dist/middleware/tenant-isolation.middleware.js.map +1 -0
  349. package/dist/pipes/transform-root.pipe.d.ts +5 -0
  350. package/dist/pipes/transform-root.pipe.d.ts.map +1 -0
  351. package/dist/pipes/transform-root.pipe.js +24 -0
  352. package/dist/pipes/transform-root.pipe.js.map +1 -0
  353. package/dist/ts-rest/index.d.ts +36 -0
  354. package/dist/ts-rest/index.d.ts.map +1 -0
  355. package/dist/ts-rest/index.js +65 -0
  356. package/dist/ts-rest/index.js.map +1 -0
  357. package/dist/ts-rest/response.helper.d.ts +261 -0
  358. package/dist/ts-rest/response.helper.d.ts.map +1 -0
  359. package/dist/ts-rest/response.helper.js +372 -0
  360. package/dist/ts-rest/response.helper.js.map +1 -0
  361. package/dist/utils/audit-log-helper.util.d.ts +41 -0
  362. package/dist/utils/audit-log-helper.util.d.ts.map +1 -0
  363. package/dist/utils/audit-log-helper.util.js +115 -0
  364. package/dist/utils/audit-log-helper.util.js.map +1 -0
  365. package/dist/utils/audit-signature.util.d.ts +64 -0
  366. package/dist/utils/audit-signature.util.d.ts.map +1 -0
  367. package/dist/utils/audit-signature.util.js +155 -0
  368. package/dist/utils/audit-signature.util.js.map +1 -0
  369. package/dist/utils/prisma-error.util.d.ts +160 -0
  370. package/dist/utils/prisma-error.util.d.ts.map +1 -0
  371. package/dist/utils/prisma-error.util.js +342 -0
  372. package/dist/utils/prisma-error.util.js.map +1 -0
  373. package/package.json +54 -0
@@ -0,0 +1,433 @@
1
+ "use strict";
2
+ /**
3
+ * Transactional Decorator
4
+ * 事务处理装饰器
5
+ *
6
+ * Automatically wraps method execution in a Prisma transaction.
7
+ * Works with the project's read/write separation architecture.
8
+ * Supports optional retry mechanism for deadlock and write conflict errors.
9
+ *
10
+ * 自动将方法执行包装在 Prisma 事务中。
11
+ * 与项目的读写分离架构配合工作。
12
+ * 支持可选的死锁和写冲突错误重试机制。
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * @Injectable()
17
+ * export class ApiService {
18
+ * constructor(private readonly prisma: PrismaService) {}
19
+ *
20
+ * // Basic usage
21
+ * @Transactional()
22
+ * async createWithOwner(userId: string, data: CreateInput) {
23
+ * const data = await this.prisma.write.create({ data });
24
+ * return data;
25
+ * }
26
+ *
27
+ * // With retry enabled
28
+ * @Transactional({ retry: true, maxRetries: 3 })
29
+ * async updateCriticalData(id: string, data: UpdateInput) {
30
+ * // Automatically retries on deadlock or write conflict
31
+ * return this.prisma.write.data.update({ where: { id }, data });
32
+ * }
33
+ *
34
+ * // With custom isolation level
35
+ * @Transactional({ isolationLevel: 'Serializable', retry: true })
36
+ * async transferOwnership(fromId: string, toId: string) {
37
+ * // Critical operation requiring serializable isolation
38
+ * }
39
+ * }
40
+ * ```
41
+ */
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.TransactionalService = void 0;
44
+ exports.getTransactionClient = getTransactionClient;
45
+ exports.getTransactionContext = getTransactionContext;
46
+ exports.Transactional = Transactional;
47
+ exports.setTransactionMetricsService = setTransactionMetricsService;
48
+ const env_config_service_1 = require("@/config/env-config.service");
49
+ /**
50
+ * Retryable error codes
51
+ * 可重试的错误码
52
+ *
53
+ * These error codes indicate transient failures that can be retried:
54
+ * - P2034: Transaction failed due to write conflict or deadlock (Prisma)
55
+ * - P2028: Transaction API error (Prisma)
56
+ * - 40001: Serialization failure (PostgreSQL)
57
+ * - 40P01: Deadlock detected (PostgreSQL)
58
+ */
59
+ const RETRYABLE_ERROR_CODES = new Set([
60
+ 'P2034', // Prisma: Write conflict or deadlock
61
+ 'P2028', // Prisma: Transaction API error
62
+ '40001', // PostgreSQL: Serialization failure
63
+ '40P01', // PostgreSQL: Deadlock detected
64
+ ]);
65
+ /**
66
+ * Check if an error is retryable
67
+ * 检查错误是否可重试
68
+ */
69
+ function isRetryableError(error) {
70
+ if (!error || typeof error !== 'object')
71
+ return false;
72
+ // Check Prisma error code
73
+ const prismaCode = error.code;
74
+ if (prismaCode && RETRYABLE_ERROR_CODES.has(prismaCode)) {
75
+ return true;
76
+ }
77
+ // Check PostgreSQL error code in message
78
+ const message = error.message || '';
79
+ for (const code of RETRYABLE_ERROR_CODES) {
80
+ if (message.includes(code)) {
81
+ return true;
82
+ }
83
+ }
84
+ return false;
85
+ }
86
+ /**
87
+ * Calculate retry delay with exponential backoff and jitter
88
+ * 使用指数退避和抖动计算重试延迟
89
+ */
90
+ function calculateRetryDelay(attempt, baseDelay, backoffMultiplier, maxDelay) {
91
+ const exponentialDelay = baseDelay * Math.pow(backoffMultiplier, attempt);
92
+ const cappedDelay = Math.min(exponentialDelay, maxDelay);
93
+ // Add jitter (0-25% of delay) to prevent thundering herd
94
+ const jitter = cappedDelay * Math.random() * 0.25;
95
+ return Math.floor(cappedDelay + jitter);
96
+ }
97
+ /**
98
+ * Sleep for specified milliseconds
99
+ * 睡眠指定毫秒数
100
+ */
101
+ function sleep(ms) {
102
+ return new Promise((resolve) => setTimeout(resolve, ms));
103
+ }
104
+ /**
105
+ * Symbol to store transaction client in context
106
+ */
107
+ const TRANSACTION_CLIENT = Symbol('TRANSACTION_CLIENT');
108
+ /**
109
+ * Symbol to store transaction context for monitoring
110
+ */
111
+ const TRANSACTION_CONTEXT = Symbol('TRANSACTION_CONTEXT');
112
+ /**
113
+ * Get the current transaction client or undefined if not in a transaction
114
+ * 获取当前事务客户端,如果不在事务中则返回 undefined
115
+ */
116
+ function getTransactionClient(context) {
117
+ return context[TRANSACTION_CLIENT];
118
+ }
119
+ /**
120
+ * Get the current transaction context for monitoring
121
+ * 获取当前事务上下文用于监控
122
+ */
123
+ function getTransactionContext(context) {
124
+ return context[TRANSACTION_CONTEXT];
125
+ }
126
+ /**
127
+ * Set the transaction client in context
128
+ * 在上下文中设置事务客户端
129
+ */
130
+ function setTransactionClient(context, client) {
131
+ context[TRANSACTION_CLIENT] = client;
132
+ }
133
+ /**
134
+ * Set the transaction context for monitoring
135
+ * 设置事务上下文用于监控
136
+ */
137
+ function setTransactionContext(context, txContext) {
138
+ context[TRANSACTION_CONTEXT] =
139
+ txContext;
140
+ }
141
+ /**
142
+ * Clear the transaction client from context
143
+ * 从上下文中清除事务客户端
144
+ */
145
+ function clearTransactionClient(context) {
146
+ delete context[TRANSACTION_CLIENT];
147
+ }
148
+ /**
149
+ * Clear the transaction context from context
150
+ * 从上下文中清除事务上下文
151
+ */
152
+ function clearTransactionContext(context) {
153
+ delete context[TRANSACTION_CONTEXT];
154
+ }
155
+ /**
156
+ * Default transaction options
157
+ * 默认事务选项
158
+ */
159
+ const DEFAULT_OPTIONS = {
160
+ maxWait: 5000,
161
+ timeout: 30000,
162
+ isolationLevel: undefined,
163
+ retry: false,
164
+ maxRetries: 3,
165
+ retryDelay: 100,
166
+ retryBackoffMultiplier: 2,
167
+ maxRetryDelay: 5000,
168
+ };
169
+ /**
170
+ * Transactional decorator
171
+ * 事务装饰器
172
+ *
173
+ * Wraps the decorated method in a Prisma transaction.
174
+ * The service class must have a `prisma` property with a `write` client.
175
+ *
176
+ * @param options - Transaction options
177
+ */
178
+ function Transactional(options = {}) {
179
+ const mergedOptions = { ...DEFAULT_OPTIONS, ...options };
180
+ return function (target, propertyKey, descriptor) {
181
+ const originalMethod = descriptor.value;
182
+ const methodName = `${target.constructor.name}.${propertyKey}`;
183
+ descriptor.value = async function (...args) {
184
+ // Check if already in a transaction
185
+ const existingClient = getTransactionClient(this);
186
+ if (existingClient) {
187
+ // Already in a transaction, just execute the method
188
+ // Increment SQL count in parent transaction context
189
+ const parentContext = getTransactionContext(this);
190
+ if (parentContext) {
191
+ parentContext.sqlCount++;
192
+ }
193
+ return originalMethod.apply(this, args);
194
+ }
195
+ // Get the Prisma service
196
+ const prismaService = this
197
+ .prisma;
198
+ if (!prismaService?.write) {
199
+ throw new Error(`@Transactional decorator requires a 'prisma' property with a 'write' client on ${target.constructor.name}`);
200
+ }
201
+ const writeClient = prismaService.write;
202
+ // Execute with retry logic
203
+ return executeWithRetry(this, writeClient, originalMethod, args, methodName, mergedOptions);
204
+ };
205
+ return descriptor;
206
+ };
207
+ }
208
+ /**
209
+ * Execute transaction with retry logic
210
+ * 使用重试逻辑执行事务
211
+ */
212
+ async function executeWithRetry(context, writeClient, originalMethod, args, methodName, options) {
213
+ let lastError;
214
+ let retryCount = 0;
215
+ for (let attempt = 0; attempt <= options.maxRetries; attempt++) {
216
+ try {
217
+ const result = await executeTransaction(context, writeClient, originalMethod, args, methodName, options, retryCount);
218
+ return result;
219
+ }
220
+ catch (error) {
221
+ lastError = error;
222
+ // Check if we should retry
223
+ if (options.retry &&
224
+ attempt < options.maxRetries &&
225
+ isRetryableError(error)) {
226
+ retryCount++;
227
+ const delay = calculateRetryDelay(attempt, options.retryDelay, options.retryBackoffMultiplier, options.maxRetryDelay);
228
+ // Log retry attempt
229
+ console.warn(`Transaction ${methodName} failed with retryable error, ` +
230
+ `retrying in ${delay}ms (attempt ${retryCount}/${options.maxRetries})`, { error: error.message });
231
+ await sleep(delay);
232
+ continue;
233
+ }
234
+ // Not retryable or max retries exceeded
235
+ throw error;
236
+ }
237
+ }
238
+ // Should not reach here, but just in case
239
+ throw lastError || new Error('Transaction failed after max retries');
240
+ }
241
+ /**
242
+ * Execute a single transaction attempt
243
+ * 执行单次事务尝试
244
+ */
245
+ async function executeTransaction(context, writeClient, originalMethod, args, methodName, options, retryCount) {
246
+ const startTime = Date.now();
247
+ // 获取 DbMetricsService 上下文(如果可用)
248
+ const metricsService = metricsServiceGetter?.();
249
+ const metricsCtx = metricsService?.recordTransactionStart();
250
+ // Create transaction context for monitoring
251
+ const txContext = {
252
+ startTime,
253
+ methodName,
254
+ retryCount,
255
+ sqlCount: 0,
256
+ tablesInvolved: new Set(),
257
+ };
258
+ try {
259
+ const result = await writeClient.$transaction(async (tx) => {
260
+ // Store the transaction client and context
261
+ setTransactionClient(context, tx);
262
+ setTransactionContext(context, txContext);
263
+ try {
264
+ return await originalMethod.apply(context, args);
265
+ }
266
+ finally {
267
+ // Clear the transaction client and context
268
+ clearTransactionClient(context);
269
+ clearTransactionContext(context);
270
+ }
271
+ }, {
272
+ maxWait: options.maxWait,
273
+ timeout: options.timeout,
274
+ isolationLevel: options.isolationLevel || undefined,
275
+ });
276
+ // Log successful transaction
277
+ const duration = Date.now() - startTime;
278
+ logTransactionComplete(methodName, duration, retryCount, true, undefined, metricsCtx);
279
+ return result;
280
+ }
281
+ catch (error) {
282
+ // Log failed transaction
283
+ const duration = Date.now() - startTime;
284
+ logTransactionComplete(methodName, duration, retryCount, false, error, metricsCtx);
285
+ throw error;
286
+ }
287
+ }
288
+ /**
289
+ * Transaction metrics service holder
290
+ * 事务指标服务持有者
291
+ *
292
+ * 用于延迟获取 DbMetricsService,避免循环依赖
293
+ */
294
+ let metricsServiceGetter = null;
295
+ /**
296
+ * Set the metrics service getter
297
+ * 设置指标服务获取器
298
+ *
299
+ * 应该在应用启动时调用,例如在 AppModule 的 onModuleInit 中
300
+ */
301
+ function setTransactionMetricsService(getter) {
302
+ metricsServiceGetter = getter;
303
+ }
304
+ /**
305
+ * Log transaction completion with DbMetricsService integration
306
+ * 使用 DbMetricsService 集成记录事务完成
307
+ */
308
+ function logTransactionComplete(methodName, duration, retryCount, success, error, metricsCtx) {
309
+ // 使用 DbMetricsService 记录指标(如果可用)
310
+ const metricsService = metricsServiceGetter?.();
311
+ if (metricsService && metricsCtx) {
312
+ metricsService.recordTransactionEnd(metricsCtx, success ? 'success' : 'error', {
313
+ retryCount,
314
+ methodName,
315
+ errorType: error?.name,
316
+ errorMessage: error?.message,
317
+ });
318
+ return; // DbMetricsService 会处理日志
319
+ }
320
+ // 回退到 console(仅在 DbMetricsService 不可用时)
321
+ // 生产环境应该配置 DbMetricsService
322
+ if ((0, env_config_service_1.isDevelopment)() || !success || duration > 1000) {
323
+ const logData = {
324
+ methodName,
325
+ duration: `${duration}ms`,
326
+ retryCount,
327
+ success,
328
+ timestamp: new Date().toISOString(),
329
+ };
330
+ if (success) {
331
+ if (duration > 1000) {
332
+ console.warn('Slow Transaction', logData);
333
+ }
334
+ // dev 环境下记录所有事务,生产环境只记录慢事务
335
+ }
336
+ else {
337
+ console.error('Transaction Failed', {
338
+ ...logData,
339
+ error: error ? { name: error.name, message: error.message } : undefined,
340
+ });
341
+ }
342
+ }
343
+ }
344
+ /**
345
+ * TransactionalService mixin
346
+ * 事务服务 Mixin
347
+ *
348
+ * Provides helper methods for transaction-aware services.
349
+ *
350
+ * @example
351
+ * ```typescript
352
+ * @Injectable()
353
+ * export class ApiService extends TransactionalService {
354
+ * constructor(prisma: PrismaService) {
355
+ * super(prisma);
356
+ * }
357
+ *
358
+ * async create(data: CreateInput) {
359
+ * // Uses transaction client if in a transaction, otherwise uses write client
360
+ * return this.getWriteClient().create({ data });
361
+ * }
362
+ * }
363
+ * ```
364
+ */
365
+ class TransactionalService {
366
+ prisma;
367
+ constructor(prisma) {
368
+ this.prisma = prisma;
369
+ }
370
+ /**
371
+ * Get the write client (transaction-aware)
372
+ * 获取写客户端(事务感知)
373
+ *
374
+ * Returns the transaction client if currently in a transaction,
375
+ * otherwise returns the regular write client.
376
+ */
377
+ getWriteClient() {
378
+ const txClient = getTransactionClient(this);
379
+ return txClient ?? this.prisma.write;
380
+ }
381
+ /**
382
+ * Get the read client
383
+ * 获取读客户端
384
+ *
385
+ * Always returns the read client (transactions are for writes only).
386
+ */
387
+ getReadClient() {
388
+ return this.prisma.read;
389
+ }
390
+ /**
391
+ * Get current transaction context for monitoring
392
+ * 获取当前事务上下文用于监控
393
+ */
394
+ getTransactionContext() {
395
+ return getTransactionContext(this);
396
+ }
397
+ /**
398
+ * Record a table access in the current transaction
399
+ * 在当前事务中记录表访问
400
+ */
401
+ recordTableAccess(tableName) {
402
+ const txContext = getTransactionContext(this);
403
+ if (txContext) {
404
+ txContext.sqlCount++;
405
+ txContext.tablesInvolved.add(tableName);
406
+ }
407
+ }
408
+ /**
409
+ * Execute a callback within a transaction
410
+ * 在事务中执行回调
411
+ *
412
+ * @param callback - The callback to execute
413
+ * @param options - Transaction options
414
+ */
415
+ async runInTransaction(callback, options = {}) {
416
+ const mergedOptions = { ...DEFAULT_OPTIONS, ...options };
417
+ return this.prisma.write.$transaction(async (tx) => {
418
+ setTransactionClient(this, tx);
419
+ try {
420
+ return await callback(tx);
421
+ }
422
+ finally {
423
+ clearTransactionClient(this);
424
+ }
425
+ }, {
426
+ maxWait: mergedOptions.maxWait,
427
+ timeout: mergedOptions.timeout,
428
+ isolationLevel: mergedOptions.isolationLevel || undefined,
429
+ });
430
+ }
431
+ }
432
+ exports.TransactionalService = TransactionalService;
433
+ //# sourceMappingURL=transactional.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transaction/transactional.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { ControllerOptions } from '@nestjs/common';
2
+ /**
3
+ * TsRestController 装饰器 - 版本中立控制器
4
+ *
5
+ * **仅用于不需要版本控制的特殊端点**,如版本检查 API。
6
+ * 设置 VERSION_NEUTRAL 让请求无需 x-api-version header 即可访问。
7
+ *
8
+ * **适用场景**:
9
+ * - 版本检查 API (/api/version)
10
+ * - 健康检查端点
11
+ * - 其他需要无版本访问的公共端点
12
+ *
13
+ * **注意**: 普通 API 控制器应使用 `@Controller({ version: API_VERSION.V1 })`
14
+ *
15
+ * 支持多种用法:
16
+ *
17
+ * 1. 无参数:
18
+ * ```typescript
19
+ * @TsRestController()
20
+ * export class AppVersionController { }
21
+ * ```
22
+ *
23
+ * 2. 带路径前缀:
24
+ * ```typescript
25
+ * @TsRestController('version')
26
+ * export class AppVersionController { }
27
+ * ```
28
+ *
29
+ * 3. 带配置选项:
30
+ * ```typescript
31
+ * @TsRestController({ path: 'health' })
32
+ * export class HealthController { }
33
+ * ```
34
+ */
35
+ export declare function TsRestController(): ClassDecorator;
36
+ export declare function TsRestController(prefix: string | string[]): ClassDecorator;
37
+ export declare function TsRestController(options: Omit<ControllerOptions, 'version'>): ClassDecorator;
38
+ //# sourceMappingURL=ts-rest-controller.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-rest-controller.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/ts-rest-controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAAC;AACnD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC;AAC5E,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,GAC1C,cAAc,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TsRestController = TsRestController;
4
+ const common_1 = require("@nestjs/common");
5
+ const constants_1 = require("@nestjs/common/constants");
6
+ function TsRestController(prefixOrOptions) {
7
+ return (target) => {
8
+ if (prefixOrOptions === undefined) {
9
+ // @TsRestController()
10
+ (0, common_1.Controller)()(target);
11
+ }
12
+ else if (typeof prefixOrOptions === 'string' ||
13
+ Array.isArray(prefixOrOptions)) {
14
+ // @TsRestController('path') 或 @TsRestController(['path1', 'path2'])
15
+ (0, common_1.Controller)(prefixOrOptions)(target);
16
+ }
17
+ else {
18
+ // @TsRestController({ path: 'admin', host: '...' })
19
+ (0, common_1.Controller)(prefixOrOptions)(target);
20
+ }
21
+ // 设置 VERSION_NEUTRAL,让 NestJS 放行,由 ts-rest 处理路由
22
+ Reflect.defineMetadata(constants_1.VERSION_METADATA, common_1.VERSION_NEUTRAL, target);
23
+ };
24
+ }
25
+ //# sourceMappingURL=ts-rest-controller.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-rest-controller.decorator.js","sourceRoot":"","sources":["../../src/decorators/ts-rest-controller.decorator.ts"],"names":[],"mappings":";;AAyCA,4CAqBC;AA9DD,2CAAgF;AAChF,wDAA4D;AAwC5D,SAAgB,gBAAgB,CAC9B,eAAwE;IAExE,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,sBAAsB;YACtB,IAAA,mBAAU,GAAE,CAAC,MAAe,CAAC,CAAC;QAChC,CAAC;aAAM,IACL,OAAO,eAAe,KAAK,QAAQ;YACnC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAC9B,CAAC;YACD,oEAAoE;YACpE,IAAA,mBAAU,EAAC,eAAe,CAAC,CAAC,MAAe,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,IAAA,mBAAU,EAAC,eAAoC,CAAC,CAAC,MAAe,CAAC,CAAC;QACpE,CAAC;QAED,gDAAgD;QAChD,OAAO,CAAC,cAAc,CAAC,4BAAgB,EAAE,wBAAe,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function LengthValidator(min: number, max: number, errorTypeMin: string, errorTypeMax: string, field?: string, validateErrorType?: string): (object: object, propertyName: string) => void;
2
+ export declare function IsDateFormat(field: string, canbeNull?: boolean, errorType?: string): (object: object, propertyName: string) => void;
3
+ export declare function IsUUIDFormat(field: string, canbeNull?: boolean, errorType?: string): (object: object, propertyName: string) => void;
4
+ //# sourceMappingURL=validation.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/validation.decorator.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,MAAW,EAClB,iBAAiB,GAAE,MAA4B,IAE9B,QAAQ,MAAM,EAAE,cAAc,MAAM,UAgCtD;AAGD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAc,EACzB,SAAS,GAAE,MAA4B,IAEtB,QAAQ,MAAM,EAAE,cAAc,MAAM,UA2BtD;AAGD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,OAAc,EACzB,SAAS,GAAE,MAA4B,IAEtB,QAAQ,MAAM,EAAE,cAAc,MAAM,UA8BtD"}
@@ -0,0 +1,121 @@
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.LengthValidator = LengthValidator;
7
+ exports.IsDateFormat = IsDateFormat;
8
+ exports.IsUUIDFormat = IsUUIDFormat;
9
+ const class_validator_1 = require("class-validator");
10
+ const api_exception_1 = require("../filter/exception/api.exception");
11
+ const error_codes_1 = require("../enums/error-codes");
12
+ const string_util_1 = __importDefault(require("@dofe/infra-utils/string.util"));
13
+ // 自定义装饰器
14
+ function LengthValidator(min, max, errorTypeMin, errorTypeMax, field = '', validateErrorType = 'invalidParameters') {
15
+ return function (object, propertyName) {
16
+ const errorMin = error_codes_1.ErrorMessageEnums[errorTypeMin];
17
+ const errorMax = error_codes_1.ErrorMessageEnums[errorTypeMax];
18
+ (0, class_validator_1.registerDecorator)({
19
+ name: 'LengthValidator',
20
+ target: object.constructor,
21
+ propertyName: propertyName,
22
+ constraints: [min, max, errorMin.errorCode, errorMax.errorCode],
23
+ options: {
24
+ message: (args) => {
25
+ if (typeof args.value !== 'string')
26
+ return `类型必须为字符串`;
27
+ if (args.value.length < min)
28
+ return errorMin.message;
29
+ if (args.value.length > max)
30
+ return errorMax.message;
31
+ return '';
32
+ },
33
+ },
34
+ validator: {
35
+ validate(value, args) {
36
+ const [min, max] = args.constraints;
37
+ if (typeof value !== 'string') {
38
+ throw new api_exception_1.ApiException(validateErrorType, { field });
39
+ }
40
+ if (value.length < min) {
41
+ throw new api_exception_1.ApiException(errorTypeMin, { field });
42
+ }
43
+ else if (value.length > max) {
44
+ throw new api_exception_1.ApiException(errorTypeMax, { field });
45
+ }
46
+ return true;
47
+ },
48
+ },
49
+ });
50
+ };
51
+ }
52
+ // 自定义装饰器
53
+ function IsDateFormat(field, canbeNull = true, errorType = 'invalidParameters') {
54
+ return function (object, propertyName) {
55
+ const error = error_codes_1.ErrorMessageEnums[errorType];
56
+ (0, class_validator_1.registerDecorator)({
57
+ name: 'IsDateFormat',
58
+ target: object.constructor,
59
+ propertyName: propertyName,
60
+ options: {
61
+ message: (args) => {
62
+ if (typeof args.value !== 'string')
63
+ return `类型必须为字符串格式`;
64
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(args.value))
65
+ return error.message;
66
+ return '';
67
+ },
68
+ },
69
+ validator: {
70
+ validate(value) {
71
+ if (!value && canbeNull)
72
+ return true;
73
+ if (typeof value !== 'string') {
74
+ throw new api_exception_1.ApiException(errorType, { field });
75
+ }
76
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) {
77
+ throw new api_exception_1.ApiException(errorType, { field });
78
+ }
79
+ return true;
80
+ },
81
+ },
82
+ });
83
+ };
84
+ }
85
+ // 自定义装饰器
86
+ function IsUUIDFormat(field, canbeNull = true, errorType = 'invalidParameters') {
87
+ return function (object, propertyName) {
88
+ const error = error_codes_1.ErrorMessageEnums[errorType];
89
+ (0, class_validator_1.registerDecorator)({
90
+ name: 'IsUUIDFormat',
91
+ target: object.constructor,
92
+ propertyName: propertyName,
93
+ options: {
94
+ message: (args) => {
95
+ if (typeof args.value !== 'string')
96
+ return `类型必须为字符串格式`;
97
+ if (!string_util_1.default.isUUID(args.value))
98
+ return error.message;
99
+ return '';
100
+ },
101
+ },
102
+ validator: {
103
+ validate(value) {
104
+ if (['folderId', 'parentId'].includes(field) && value == 'root') {
105
+ value = null;
106
+ }
107
+ if (!value && canbeNull)
108
+ return true;
109
+ if (typeof value !== 'string') {
110
+ throw new api_exception_1.ApiException(errorType, { field });
111
+ }
112
+ if (!string_util_1.default.isUUID(value)) {
113
+ throw new api_exception_1.ApiException(errorType, { field });
114
+ }
115
+ return true;
116
+ },
117
+ },
118
+ });
119
+ };
120
+ }
121
+ //# sourceMappingURL=validation.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.decorator.js","sourceRoot":"","sources":["../../src/decorators/validation.decorator.ts"],"names":[],"mappings":";;;;;AAMA,0CAwCC;AAGD,oCAgCC;AAGD,oCAmCC;AAvHD,qDAAyE;AACzE,qEAAiE;AACjE,sDAAyD;AACzD,gFAAuD;AAEvD,SAAS;AACT,SAAgB,eAAe,CAC7B,GAAW,EACX,GAAW,EACX,YAAoB,EACpB,YAAoB,EACpB,QAAgB,EAAE,EAClB,oBAA4B,mBAAmB;IAE/C,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,QAAQ,GAAG,+BAAiB,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,+BAAiB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC;YAC/D,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,IAAyB,EAAE,EAAE;oBACrC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;wBAAE,OAAO,UAAU,CAAC;oBACtD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;wBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;oBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;wBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;oBACrD,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;YACD,SAAS,EAAE;gBACT,QAAQ,CAAC,KAAU,EAAE,IAAyB;oBAC5C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;oBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,MAAM,IAAI,4BAAY,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBACvD,CAAC;oBACD,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBACvB,MAAM,IAAI,4BAAY,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAClD,CAAC;yBAAM,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;wBAC9B,MAAM,IAAI,4BAAY,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAClD,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS;AACT,SAAgB,YAAY,CAC1B,KAAa,EACb,YAAqB,IAAI,EACzB,YAAoB,mBAAmB;IAEvC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,KAAK,GAAG,+BAAiB,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,IAAyB,EAAE,EAAE;oBACrC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;wBAAE,OAAO,YAAY,CAAC;oBACxD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAC,OAAO,CAAC;oBAClE,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;YACD,SAAS,EAAE;gBACT,QAAQ,CAAC,KAAU;oBACjB,IAAI,CAAC,KAAK,IAAI,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,MAAM,IAAI,4BAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACvC,MAAM,IAAI,4BAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,SAAS;AACT,SAAgB,YAAY,CAC1B,KAAa,EACb,YAAqB,IAAI,EACzB,YAAoB,mBAAmB;IAEvC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,KAAK,GAAG,+BAAiB,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,IAAyB,EAAE,EAAE;oBACrC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;wBAAE,OAAO,YAAY,CAAC;oBACxD,IAAI,CAAC,qBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAC,OAAO,CAAC;oBACzD,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;YACD,SAAS,EAAE;gBACT,QAAQ,CAAC,KAAU;oBACjB,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;wBAChE,KAAK,GAAG,IAAI,CAAC;oBACf,CAAC;oBACD,IAAI,CAAC,KAAK,IAAI,SAAS;wBAAE,OAAO,IAAI,CAAC;oBACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC9B,MAAM,IAAI,4BAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBACD,IAAI,CAAC,qBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,4BAAY,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Version Decorators Module Exports
3
+ */
4
+ export { ApiVersion, VersionNeutral, DeprecatedVersion, API_VERSION_HEADER, DEFAULT_API_VERSION, VERSION_METADATA_KEY, SUPPORTED_VERSIONS, SupportedVersion, isSupportedVersion, getVersionFromRequest, compareVersions, } from './version.decorator';
5
+ export { VersionInterceptor } from './version.interceptor';
6
+ export { VersionDecoratorModule } from './version.module';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/version/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAEL,UAAU,EACV,cAAc,EACd,iBAAiB,EAEjB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAElB,gBAAgB,EAEhB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}