@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,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TeamInfo = exports.CurrentTenantMember = exports.CurrentTenant = exports.TenantApi = exports.RequirePermissions = exports.TenantScope = exports.Public = void 0;
4
+ exports.getTeamId = getTeamId;
5
+ const common_1 = require("@nestjs/common");
6
+ const infra_contracts_1 = require("@dofe/infra-contracts");
7
+ const guards_1 = require("@/common/guards");
8
+ const tenant_context_guard_1 = require("@/common/guards/tenant-context.guard");
9
+ const permission_guard_1 = require("@/common/guards/permission.guard");
10
+ /**
11
+ * 公共端点装饰器 - 标记不需要认证的端点
12
+ */
13
+ const Public = () => (0, common_1.SetMetadata)(infra_contracts_1.PUBLIC_ENDPOINT_KEY, true);
14
+ exports.Public = Public;
15
+ /**
16
+ * 租户范围装饰器 - 标记需要租户上下文的端点
17
+ */
18
+ const TenantScope = () => (0, common_1.SetMetadata)(infra_contracts_1.TENANT_SCOPE_KEY, true);
19
+ exports.TenantScope = TenantScope;
20
+ /**
21
+ * 要求权限装饰器 - 标记需要特定权限的端点
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * @RequirePermissions(PERMISSION.GATEWAY_READ)
26
+ * async listGateways() { ... }
27
+ *
28
+ * @RequirePermissions([PERMISSION.BOT_CREATE, PERMISSION.BOT_UPDATE])
29
+ * async createOrUpdateBot() { ... }
30
+ * ```
31
+ */
32
+ const RequirePermissions = (permissions) => (0, common_1.SetMetadata)(infra_contracts_1.REQUIRE_PERMISSIONS_KEY, Array.isArray(permissions) ? permissions : [permissions]);
33
+ exports.RequirePermissions = RequirePermissions;
34
+ /**
35
+ * 租户 API 装饰器 - 组合认证、租户上下文和权限检查
36
+ * 应用于需要租户上下文和权限检查的 API 端点
37
+ *
38
+ * @param permissions 需要的权限
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * @TenantApi(PERMISSION.GATEWAY_READ)
43
+ * async listGateways() { ... }
44
+ * ```
45
+ */
46
+ const TenantApi = (permissions) => (0, common_1.applyDecorators)((0, exports.TenantScope)(), (0, exports.RequirePermissions)(permissions), (0, common_1.UseGuards)(guards_1.AuthGuard, tenant_context_guard_1.TenantContextGuard, permission_guard_1.PermissionGuard));
47
+ exports.TenantApi = TenantApi;
48
+ /**
49
+ * 当前租户参数装饰器 - 从请求中提取当前租户 ID
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * async list(@CurrentTenant() tenantId: string) { ... }
54
+ * ```
55
+ */
56
+ exports.CurrentTenant = (0, common_1.createParamDecorator)((_data, ctx) => {
57
+ const request = ctx.switchToHttp().getRequest();
58
+ return request.tenantId;
59
+ });
60
+ /**
61
+ * 当前租户成员参数装饰器 - 从请求中提取当前租户成员信息
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * async getInfo(@CurrentTenantMember() member: TenantMember) { ... }
66
+ * ```
67
+ */
68
+ exports.CurrentTenantMember = (0, common_1.createParamDecorator)((_data, ctx) => {
69
+ const request = ctx.switchToHttp().getRequest();
70
+ return request.tenantMember;
71
+ });
72
+ /**
73
+ * 当前团队参数装饰器 - 从请求中提取团队上下文
74
+ * 别名装饰器,与 @CurrentTenant() 提供相同的租户上下文,但语义更偏向"团队"
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * async list(@TeamInfo() teamInfo: TeamContext) { ... }
79
+ * ```
80
+ */
81
+ exports.TeamInfo = (0, common_1.createParamDecorator)((_data, ctx) => {
82
+ const request = ctx.switchToHttp().getRequest();
83
+ return {
84
+ tenantId: request.tenantId,
85
+ };
86
+ });
87
+ /**
88
+ * 从请求中提取团队 ID
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const teamId = getTeamId(req);
93
+ * ```
94
+ */
95
+ function getTeamId(request) {
96
+ return request.tenantId;
97
+ }
98
+ //# sourceMappingURL=tenant.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.decorator.js","sourceRoot":"","sources":["../../../src/decorators/tenant/tenant.decorator.ts"],"names":[],"mappings":";;;AAgIA,8BAEC;AAlID,2CAMwB;AACxB,2DAK+B;AAC/B,4CAA4C;AAC5C,+EAA0E;AAC1E,uEAAmE;AAEnE;;GAEG;AACI,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qCAAmB,EAAE,IAAI,CAAC,CAAC;AAAtD,QAAA,MAAM,UAAgD;AAEnE;;GAEG;AACI,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,kCAAgB,EAAE,IAAI,CAAC,CAAC;AAAxD,QAAA,WAAW,eAA6C;AAErE;;;;;;;;;;;GAWG;AACI,MAAM,kBAAkB,GAAG,CAAC,WAAsC,EAAE,EAAE,CAC3E,IAAA,oBAAW,EACT,yCAAuB,EACvB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CACzD,CAAC;AAJS,QAAA,kBAAkB,sBAI3B;AAEJ;;;;;;;;;;;GAWG;AACI,MAAM,SAAS,GAAG,CAAC,WAAsC,EAAE,EAAE,CAClE,IAAA,wBAAe,EACb,IAAA,mBAAW,GAAE,EACb,IAAA,0BAAkB,EAAC,WAAW,CAAC,EAC/B,IAAA,kBAAS,EAAC,kBAAS,EAAE,yCAAkB,EAAE,kCAAe,CAAC,CAC1D,CAAC;AALS,QAAA,SAAS,aAKlB;AAEJ;;;;;;;GAOG;AACU,QAAA,aAAa,GAAG,IAAA,6BAAoB,EAC/C,CAAC,KAAc,EAAE,GAAqB,EAAE,EAAE;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC,CACF,CAAC;AAEF;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAG,IAAA,6BAAoB,EACrD,CAAC,KAAc,EAAE,GAAqB,EAAE,EAAE;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,OAAO,CAAC,YAAY,CAAC;AAC9B,CAAC,CACF,CAAC;AAUF;;;;;;;;GAQG;AACU,QAAA,QAAQ,GAAG,IAAA,6BAAoB,EAC1C,CAAC,KAAc,EAAE,GAAqB,EAAe,EAAE;IACrD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,OAA8B;IACtD,OAAQ,OAAe,CAAC,QAAQ,CAAC;AACnC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Transaction Decorators Export
3
+ * 事务装饰器导出
4
+ */
5
+ export { Transactional, TransactionalService, getTransactionClient, type TransactionOptions, type TransactionIsolationLevel, } from './transactional.decorator';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/decorators/transaction/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Transaction Decorators Export
4
+ * 事务装饰器导出
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getTransactionClient = exports.TransactionalService = exports.Transactional = void 0;
8
+ var transactional_decorator_1 = require("./transactional.decorator");
9
+ Object.defineProperty(exports, "Transactional", { enumerable: true, get: function () { return transactional_decorator_1.Transactional; } });
10
+ Object.defineProperty(exports, "TransactionalService", { enumerable: true, get: function () { return transactional_decorator_1.TransactionalService; } });
11
+ Object.defineProperty(exports, "getTransactionClient", { enumerable: true, get: function () { return transactional_decorator_1.getTransactionClient; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/transaction/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qEAMmC;AALjC,wHAAA,aAAa,OAAA;AACb,+HAAA,oBAAoB,OAAA;AACpB,+HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Transactional Decorator
3
+ * 事务处理装饰器
4
+ *
5
+ * Automatically wraps method execution in a Prisma transaction.
6
+ * Works with the project's read/write separation architecture.
7
+ * Supports optional retry mechanism for deadlock and write conflict errors.
8
+ *
9
+ * 自动将方法执行包装在 Prisma 事务中。
10
+ * 与项目的读写分离架构配合工作。
11
+ * 支持可选的死锁和写冲突错误重试机制。
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * @Injectable()
16
+ * export class ApiService {
17
+ * constructor(private readonly prisma: PrismaService) {}
18
+ *
19
+ * // Basic usage
20
+ * @Transactional()
21
+ * async createWithOwner(userId: string, data: CreateInput) {
22
+ * const data = await this.prisma.write.create({ data });
23
+ * return data;
24
+ * }
25
+ *
26
+ * // With retry enabled
27
+ * @Transactional({ retry: true, maxRetries: 3 })
28
+ * async updateCriticalData(id: string, data: UpdateInput) {
29
+ * // Automatically retries on deadlock or write conflict
30
+ * return this.prisma.write.data.update({ where: { id }, data });
31
+ * }
32
+ *
33
+ * // With custom isolation level
34
+ * @Transactional({ isolationLevel: 'Serializable', retry: true })
35
+ * async transferOwnership(fromId: string, toId: string) {
36
+ * // Critical operation requiring serializable isolation
37
+ * }
38
+ * }
39
+ * ```
40
+ */
41
+ import { PrismaClient, Prisma } from '@prisma/client';
42
+ /**
43
+ * Transaction isolation levels
44
+ * 事务隔离级别
45
+ */
46
+ export type TransactionIsolationLevel = Prisma.TransactionIsolationLevel;
47
+ /**
48
+ * Transaction options
49
+ * 事务选项
50
+ */
51
+ export interface TransactionOptions {
52
+ /**
53
+ * Maximum wait time to acquire a transaction lock (ms)
54
+ * 获取事务锁的最大等待时间(毫秒)
55
+ * @default 5000
56
+ */
57
+ maxWait?: number;
58
+ /**
59
+ * Maximum transaction execution time (ms)
60
+ * 事务执行的最大时间(毫秒)
61
+ * @default 30000
62
+ */
63
+ timeout?: number;
64
+ /**
65
+ * Transaction isolation level
66
+ * 事务隔离级别
67
+ */
68
+ isolationLevel?: TransactionIsolationLevel;
69
+ /**
70
+ * Enable retry mechanism for transient failures
71
+ * 启用瞬态失败的重试机制
72
+ * @default false
73
+ */
74
+ retry?: boolean;
75
+ /**
76
+ * Maximum number of retry attempts
77
+ * 最大重试次数
78
+ * @default 3
79
+ */
80
+ maxRetries?: number;
81
+ /**
82
+ * Base delay between retries in milliseconds
83
+ * 重试之间的基础延迟(毫秒)
84
+ * @default 100
85
+ */
86
+ retryDelay?: number;
87
+ /**
88
+ * Exponential backoff multiplier
89
+ * 指数退避倍数
90
+ * @default 2
91
+ */
92
+ retryBackoffMultiplier?: number;
93
+ /**
94
+ * Maximum retry delay in milliseconds
95
+ * 最大重试延迟(毫秒)
96
+ * @default 5000
97
+ */
98
+ maxRetryDelay?: number;
99
+ }
100
+ /**
101
+ * Transaction result for monitoring
102
+ * 用于监控的事务结果
103
+ */
104
+ export interface TransactionResult {
105
+ success: boolean;
106
+ duration: number;
107
+ retryCount: number;
108
+ error?: Error;
109
+ methodName: string;
110
+ }
111
+ /**
112
+ * Transaction context for monitoring
113
+ * 用于监控的事务上下文
114
+ */
115
+ export interface TransactionContextData {
116
+ startTime: number;
117
+ methodName: string;
118
+ retryCount: number;
119
+ sqlCount: number;
120
+ tablesInvolved: Set<string>;
121
+ }
122
+ /**
123
+ * Get the current transaction client or undefined if not in a transaction
124
+ * 获取当前事务客户端,如果不在事务中则返回 undefined
125
+ */
126
+ export declare function getTransactionClient(context: object): PrismaClient | undefined;
127
+ /**
128
+ * Get the current transaction context for monitoring
129
+ * 获取当前事务上下文用于监控
130
+ */
131
+ export declare function getTransactionContext(context: object): TransactionContextData | undefined;
132
+ /**
133
+ * Transactional decorator
134
+ * 事务装饰器
135
+ *
136
+ * Wraps the decorated method in a Prisma transaction.
137
+ * The service class must have a `prisma` property with a `write` client.
138
+ *
139
+ * @param options - Transaction options
140
+ */
141
+ export declare function Transactional(options?: TransactionOptions): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
142
+ /**
143
+ * DbMetricsService interface for loose coupling
144
+ * 松耦合的 DbMetricsService 接口
145
+ */
146
+ interface DbMetricsServiceInterface {
147
+ recordTransactionStart(): {
148
+ startTime: number;
149
+ traceId: string;
150
+ };
151
+ recordTransactionEnd(ctx: {
152
+ startTime: number;
153
+ traceId: string;
154
+ }, status: 'success' | 'error' | 'rollback', metadata?: {
155
+ retryCount?: number;
156
+ methodName?: string;
157
+ errorType?: string;
158
+ errorMessage?: string;
159
+ }): void;
160
+ isEnabled(): boolean;
161
+ }
162
+ /**
163
+ * Set the metrics service getter
164
+ * 设置指标服务获取器
165
+ *
166
+ * 应该在应用启动时调用,例如在 AppModule 的 onModuleInit 中
167
+ */
168
+ export declare function setTransactionMetricsService(getter: () => DbMetricsServiceInterface | undefined): void;
169
+ /**
170
+ * TransactionalService mixin
171
+ * 事务服务 Mixin
172
+ *
173
+ * Provides helper methods for transaction-aware services.
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * @Injectable()
178
+ * export class ApiService extends TransactionalService {
179
+ * constructor(prisma: PrismaService) {
180
+ * super(prisma);
181
+ * }
182
+ *
183
+ * async create(data: CreateInput) {
184
+ * // Uses transaction client if in a transaction, otherwise uses write client
185
+ * return this.getWriteClient().create({ data });
186
+ * }
187
+ * }
188
+ * ```
189
+ */
190
+ export declare abstract class TransactionalService {
191
+ protected readonly prisma: {
192
+ write: PrismaClient;
193
+ read: PrismaClient;
194
+ };
195
+ constructor(prisma: {
196
+ write: PrismaClient;
197
+ read: PrismaClient;
198
+ });
199
+ /**
200
+ * Get the write client (transaction-aware)
201
+ * 获取写客户端(事务感知)
202
+ *
203
+ * Returns the transaction client if currently in a transaction,
204
+ * otherwise returns the regular write client.
205
+ */
206
+ protected getWriteClient(): PrismaClient;
207
+ /**
208
+ * Get the read client
209
+ * 获取读客户端
210
+ *
211
+ * Always returns the read client (transactions are for writes only).
212
+ */
213
+ protected getReadClient(): PrismaClient;
214
+ /**
215
+ * Get current transaction context for monitoring
216
+ * 获取当前事务上下文用于监控
217
+ */
218
+ protected getTransactionContext(): TransactionContextData | undefined;
219
+ /**
220
+ * Record a table access in the current transaction
221
+ * 在当前事务中记录表访问
222
+ */
223
+ protected recordTableAccess(tableName: string): void;
224
+ /**
225
+ * Execute a callback within a transaction
226
+ * 在事务中执行回调
227
+ *
228
+ * @param callback - The callback to execute
229
+ * @param options - Transaction options
230
+ */
231
+ protected runInTransaction<T>(callback: (tx: PrismaClient) => Promise<T>, options?: TransactionOptions): Promise<T>;
232
+ }
233
+ export {};
234
+ //# sourceMappingURL=transactional.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.decorator.d.ts","sourceRoot":"","sources":["../../../src/decorators/transaction/transactional.decorator.ts"],"names":[],"mappings":"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"}