@nest-omni/core 4.1.3-3 → 4.1.3-30

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 (370) hide show
  1. package/audit/audit.module.d.ts +1 -0
  2. package/audit/audit.module.js +51 -2
  3. package/audit/controllers/audit.controller.d.ts +57 -1
  4. package/audit/controllers/audit.controller.js +43 -0
  5. package/audit/decorators/audit-action.decorator.d.ts +74 -0
  6. package/audit/decorators/audit-action.decorator.js +42 -0
  7. package/audit/decorators/audit-controller.decorator.d.ts +1 -1
  8. package/audit/decorators/audit-controller.decorator.js +2 -2
  9. package/audit/decorators/audit-operation.decorator.d.ts +0 -7
  10. package/audit/decorators/audit-operation.decorator.js +0 -7
  11. package/audit/decorators/entity-audit.decorator.d.ts +78 -2
  12. package/audit/decorators/entity-audit.decorator.js +145 -4
  13. package/audit/decorators/index.d.ts +2 -0
  14. package/audit/decorators/index.js +2 -0
  15. package/audit/dto/audit-action-query.dto.d.ts +13 -0
  16. package/audit/dto/audit-action-query.dto.js +77 -0
  17. package/audit/dto/index.d.ts +1 -0
  18. package/audit/dto/index.js +1 -0
  19. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  20. package/audit/entities/audit-action-summary.entity.js +101 -0
  21. package/audit/entities/entity-audit-log.entity.d.ts +7 -2
  22. package/audit/entities/entity-audit-log.entity.js +45 -9
  23. package/audit/entities/entity-transaction.entity.d.ts +8 -2
  24. package/audit/entities/entity-transaction.entity.js +39 -3
  25. package/audit/entities/index.d.ts +3 -0
  26. package/audit/entities/index.js +3 -0
  27. package/audit/entities/manual-operation-log.entity.d.ts +0 -2
  28. package/audit/entities/manual-operation-log.entity.js +8 -9
  29. package/audit/enums/audit.enums.d.ts +14 -6
  30. package/audit/enums/audit.enums.js +18 -9
  31. package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
  32. package/audit/examples/decorator-value-mapping.example.js +414 -0
  33. package/audit/index.d.ts +5 -1
  34. package/audit/index.js +29 -2
  35. package/audit/interceptors/audit-action.interceptor.d.ts +39 -0
  36. package/audit/interceptors/audit-action.interceptor.js +217 -0
  37. package/audit/interceptors/audit.interceptor.d.ts +1 -0
  38. package/audit/interceptors/audit.interceptor.js +19 -11
  39. package/audit/interceptors/index.d.ts +1 -0
  40. package/audit/interceptors/index.js +1 -0
  41. package/audit/interfaces/audit.interfaces.d.ts +132 -4
  42. package/audit/services/audit-action.service.d.ts +142 -0
  43. package/audit/services/audit-action.service.js +246 -0
  44. package/audit/services/audit-context.service.d.ts +91 -0
  45. package/audit/services/audit-context.service.js +170 -0
  46. package/audit/services/entity-audit.service.d.ts +220 -9
  47. package/audit/services/entity-audit.service.js +761 -72
  48. package/audit/services/index.d.ts +3 -0
  49. package/audit/services/index.js +3 -0
  50. package/audit/services/manual-audit-log.service.d.ts +23 -23
  51. package/audit/services/manual-audit-log.service.js +34 -57
  52. package/audit/services/multi-database.service.d.ts +0 -5
  53. package/audit/services/multi-database.service.js +0 -24
  54. package/audit/services/operation-description.service.d.ts +14 -3
  55. package/audit/services/operation-description.service.js +165 -26
  56. package/audit/services/transaction-audit.service.d.ts +1 -0
  57. package/audit/services/transaction-audit.service.js +12 -9
  58. package/audit/subscribers/entity-audit.subscriber.d.ts +5 -0
  59. package/audit/subscribers/entity-audit.subscriber.js +69 -5
  60. package/cache/cache.module.d.ts +7 -8
  61. package/cache/cache.module.js +15 -13
  62. package/cache/cache.service.d.ts +6 -4
  63. package/cache/cache.service.js +24 -12
  64. package/cache/decorators/cache-put.decorator.js +5 -4
  65. package/cache/dependencies/callback.dependency.js +9 -0
  66. package/cache/dependencies/db.dependency.d.ts +43 -12
  67. package/cache/dependencies/db.dependency.js +46 -18
  68. package/cache/dependencies/tag.dependency.d.ts +31 -4
  69. package/cache/dependencies/tag.dependency.js +100 -11
  70. package/cache/entities/index.d.ts +1 -0
  71. package/cache/entities/index.js +17 -0
  72. package/cache/entities/typeorm-cache.entity.d.ts +71 -0
  73. package/cache/entities/typeorm-cache.entity.js +110 -0
  74. package/cache/index.d.ts +2 -1
  75. package/cache/index.js +19 -2
  76. package/cache/interfaces/cache-options.interface.d.ts +8 -0
  77. package/cache/providers/index.d.ts +2 -1
  78. package/cache/providers/index.js +2 -1
  79. package/cache/providers/lrucache.provider.d.ts +77 -0
  80. package/cache/providers/lrucache.provider.js +228 -0
  81. package/cache/providers/redis-cache.provider.d.ts +1 -0
  82. package/cache/providers/redis-cache.provider.js +8 -6
  83. package/cache/providers/typeorm-cache.provider.d.ts +211 -0
  84. package/cache/providers/typeorm-cache.provider.js +483 -0
  85. package/common/boilerplate.polyfill.d.ts +1 -0
  86. package/common/boilerplate.polyfill.js +18 -1
  87. package/common/helpers/validation-metadata-helper.d.ts +112 -0
  88. package/common/helpers/validation-metadata-helper.js +164 -0
  89. package/common/index.d.ts +1 -0
  90. package/common/index.js +4 -0
  91. package/decorators/examples/field-i18n.example.d.ts +294 -0
  92. package/decorators/examples/field-i18n.example.js +478 -0
  93. package/decorators/field.decorators.d.ts +95 -3
  94. package/decorators/field.decorators.js +152 -18
  95. package/decorators/transform.decorators.d.ts +0 -2
  96. package/decorators/transform.decorators.js +0 -23
  97. package/decorators/translate.decorator.d.ts +26 -0
  98. package/decorators/translate.decorator.js +26 -1
  99. package/email-log/email-log.constants.d.ts +8 -0
  100. package/email-log/email-log.constants.js +11 -0
  101. package/email-log/email-log.module.d.ts +47 -0
  102. package/email-log/email-log.module.js +140 -0
  103. package/email-log/index.d.ts +11 -0
  104. package/email-log/index.js +48 -0
  105. package/email-log/interfaces/email-log-options.interface.d.ts +61 -0
  106. package/email-log/interfaces/email-log-options.interface.js +134 -0
  107. package/email-log/interfaces/email-log-transport.interface.d.ts +20 -0
  108. package/email-log/interfaces/email-log-transport.interface.js +2 -0
  109. package/email-log/interfaces/index.d.ts +2 -0
  110. package/email-log/interfaces/index.js +18 -0
  111. package/email-log/providers/email-provider.d.ts +42 -0
  112. package/email-log/providers/email-provider.js +127 -0
  113. package/email-log/providers/index.d.ts +1 -0
  114. package/email-log/providers/index.js +17 -0
  115. package/email-log/services/email-log-alert.service.d.ts +46 -0
  116. package/email-log/services/email-log-alert.service.js +162 -0
  117. package/email-log/services/email-log-formatter.service.d.ts +78 -0
  118. package/email-log/services/email-log-formatter.service.js +442 -0
  119. package/email-log/services/email-log-logger.service.d.ts +85 -0
  120. package/email-log/services/email-log-logger.service.js +168 -0
  121. package/email-log/services/email-log-rate-limiter.service.d.ts +42 -0
  122. package/email-log/services/email-log-rate-limiter.service.js +110 -0
  123. package/email-log/services/email-log-transport.service.d.ts +80 -0
  124. package/email-log/services/email-log-transport.service.js +271 -0
  125. package/email-log/services/index.d.ts +5 -0
  126. package/email-log/services/index.js +21 -0
  127. package/email-log/transports/index.d.ts +1 -0
  128. package/email-log/transports/index.js +17 -0
  129. package/email-log/transports/pino-email.transport.d.ts +56 -0
  130. package/email-log/transports/pino-email.transport.js +188 -0
  131. package/email-log/utils/index.d.ts +2 -0
  132. package/email-log/utils/index.js +18 -0
  133. package/email-log/utils/log-level.helper.d.ts +46 -0
  134. package/email-log/utils/log-level.helper.js +74 -0
  135. package/email-log/utils/pino-transport.utils.d.ts +135 -0
  136. package/email-log/utils/pino-transport.utils.js +238 -0
  137. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  138. package/file-upload/controllers/file-access.controller.js +128 -0
  139. package/file-upload/decorators/column.decorator.d.ts +151 -0
  140. package/file-upload/decorators/column.decorator.js +273 -0
  141. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  142. package/file-upload/decorators/csv-data.decorator.js +85 -0
  143. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  144. package/file-upload/decorators/csv-import.decorator.js +24 -0
  145. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  146. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  147. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  148. package/file-upload/decorators/excel-data.decorator.js +85 -0
  149. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  150. package/file-upload/decorators/file-upload.decorator.js +172 -0
  151. package/file-upload/decorators/index.d.ts +5 -0
  152. package/file-upload/decorators/index.js +38 -0
  153. package/file-upload/decorators/process.decorator.d.ts +40 -0
  154. package/file-upload/decorators/process.decorator.js +52 -0
  155. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  156. package/file-upload/decorators/validate-data.decorator.js +39 -0
  157. package/file-upload/dto/create-file.dto.d.ts +24 -0
  158. package/file-upload/dto/create-file.dto.js +112 -0
  159. package/file-upload/dto/find-files.dto.d.ts +15 -0
  160. package/file-upload/dto/find-files.dto.js +76 -0
  161. package/file-upload/dto/index.d.ts +4 -0
  162. package/file-upload/dto/index.js +20 -0
  163. package/file-upload/dto/pagination.dto.d.ts +7 -0
  164. package/file-upload/dto/pagination.dto.js +39 -0
  165. package/file-upload/dto/update-file.dto.d.ts +15 -0
  166. package/file-upload/dto/update-file.dto.js +67 -0
  167. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  168. package/file-upload/entities/file-metadata.entity.js +76 -0
  169. package/file-upload/entities/file.entity.d.ts +114 -0
  170. package/file-upload/entities/file.entity.js +350 -0
  171. package/file-upload/entities/index.d.ts +2 -0
  172. package/file-upload/entities/index.js +18 -0
  173. package/file-upload/enums/file-type.enum.d.ts +72 -0
  174. package/file-upload/enums/file-type.enum.js +212 -0
  175. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  176. package/file-upload/exceptions/file-upload.exception.js +120 -0
  177. package/file-upload/exceptions/index.d.ts +1 -0
  178. package/file-upload/exceptions/index.js +17 -0
  179. package/file-upload/file-upload.module.d.ts +89 -0
  180. package/file-upload/file-upload.module.js +292 -0
  181. package/file-upload/index.d.ts +37 -0
  182. package/file-upload/index.js +77 -0
  183. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  184. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  185. package/file-upload/interceptors/index.d.ts +1 -0
  186. package/file-upload/interceptors/index.js +17 -0
  187. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  188. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  189. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  190. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  191. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  192. package/file-upload/interfaces/file-entity.interface.js +28 -0
  193. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  194. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  195. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  196. package/file-upload/interfaces/file-processor.interface.js +2 -0
  197. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  198. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  199. package/file-upload/interfaces/index.d.ts +7 -0
  200. package/file-upload/interfaces/index.js +24 -0
  201. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  202. package/file-upload/interfaces/processor-options.interface.js +2 -0
  203. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  204. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  205. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  206. package/file-upload/interfaces/upload-options.interface.js +2 -0
  207. package/file-upload/processors/csv.processor.d.ts +98 -0
  208. package/file-upload/processors/csv.processor.js +391 -0
  209. package/file-upload/processors/excel.processor.d.ts +130 -0
  210. package/file-upload/processors/excel.processor.js +547 -0
  211. package/file-upload/processors/image.processor.d.ts +199 -0
  212. package/file-upload/processors/image.processor.js +377 -0
  213. package/file-upload/providers/index.d.ts +2 -0
  214. package/file-upload/providers/index.js +18 -0
  215. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  216. package/file-upload/providers/local-storage.provider.js +484 -0
  217. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  218. package/file-upload/providers/s3-storage.provider.js +455 -0
  219. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  220. package/file-upload/services/file-signature-validator.service.js +376 -0
  221. package/file-upload/services/file.service.d.ts +193 -0
  222. package/file-upload/services/file.service.js +638 -0
  223. package/file-upload/services/index.d.ts +4 -0
  224. package/file-upload/services/index.js +20 -0
  225. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  226. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  227. package/file-upload/services/mime-registry.service.d.ts +47 -0
  228. package/file-upload/services/mime-registry.service.js +167 -0
  229. package/file-upload/utils/checksum.util.d.ts +28 -0
  230. package/file-upload/utils/checksum.util.js +65 -0
  231. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  232. package/file-upload/utils/dynamic-import.util.js +156 -0
  233. package/file-upload/utils/filename.util.d.ts +59 -0
  234. package/file-upload/utils/filename.util.js +184 -0
  235. package/file-upload/utils/filepath.util.d.ts +70 -0
  236. package/file-upload/utils/filepath.util.js +152 -0
  237. package/file-upload/utils/index.d.ts +4 -0
  238. package/file-upload/utils/index.js +20 -0
  239. package/filters/bad-request.filter.d.ts +9 -0
  240. package/filters/bad-request.filter.js +57 -16
  241. package/http-client/config/http-client.config.d.ts +5 -0
  242. package/http-client/config/http-client.config.js +27 -14
  243. package/http-client/decorators/http-client.decorators.d.ts +7 -28
  244. package/http-client/decorators/http-client.decorators.js +124 -99
  245. package/http-client/entities/http-log.entity.d.ts +0 -20
  246. package/http-client/entities/http-log.entity.js +1 -21
  247. package/http-client/examples/advanced-usage.example.d.ts +4 -5
  248. package/http-client/examples/advanced-usage.example.js +7 -59
  249. package/http-client/examples/axios-config-extended.example.d.ts +17 -0
  250. package/http-client/examples/axios-config-extended.example.js +311 -0
  251. package/http-client/examples/flexible-response-example.d.ts +28 -0
  252. package/http-client/examples/flexible-response-example.js +120 -0
  253. package/http-client/examples/index.d.ts +2 -0
  254. package/http-client/examples/index.js +2 -0
  255. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  256. package/http-client/examples/proxy-from-environment.example.js +409 -0
  257. package/http-client/examples/ssl-certificate.example.d.ts +47 -0
  258. package/http-client/examples/ssl-certificate.example.js +432 -0
  259. package/http-client/http-client.module.d.ts +43 -2
  260. package/http-client/http-client.module.js +150 -90
  261. package/http-client/index.d.ts +1 -1
  262. package/http-client/interfaces/api-client-config.interface.d.ts +24 -103
  263. package/http-client/interfaces/http-client-config.interface.d.ts +137 -62
  264. package/http-client/services/api-client-registry.service.d.ts +8 -21
  265. package/http-client/services/api-client-registry.service.js +31 -282
  266. package/http-client/services/circuit-breaker.service.d.ts +69 -2
  267. package/http-client/services/circuit-breaker.service.js +185 -7
  268. package/http-client/services/http-client.service.d.ts +85 -23
  269. package/http-client/services/http-client.service.js +512 -168
  270. package/http-client/services/http-log-query.service.js +0 -13
  271. package/http-client/services/index.d.ts +0 -1
  272. package/http-client/services/index.js +0 -1
  273. package/http-client/services/logging.service.d.ts +69 -16
  274. package/http-client/services/logging.service.js +290 -170
  275. package/http-client/utils/call-stack-extractor.util.d.ts +26 -0
  276. package/http-client/utils/call-stack-extractor.util.js +35 -0
  277. package/http-client/utils/context-extractor.util.d.ts +2 -0
  278. package/http-client/utils/context-extractor.util.js +17 -3
  279. package/http-client/utils/curl-generator.util.js +2 -5
  280. package/http-client/utils/index.d.ts +2 -0
  281. package/http-client/utils/index.js +2 -0
  282. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  283. package/http-client/utils/proxy-environment.util.js +154 -0
  284. package/http-client/utils/retry-recorder.util.d.ts +0 -4
  285. package/http-client/utils/retry-recorder.util.js +2 -27
  286. package/http-client/utils/sanitize.util.d.ts +58 -0
  287. package/http-client/utils/sanitize.util.js +188 -0
  288. package/http-client/utils/security-validator.util.d.ts +118 -0
  289. package/http-client/utils/security-validator.util.js +354 -0
  290. package/index.d.ts +4 -1
  291. package/index.js +6 -1
  292. package/interceptors/translation-interceptor.service.d.ts +7 -0
  293. package/interceptors/translation-interceptor.service.js +40 -8
  294. package/ip-filter/constants.d.ts +21 -0
  295. package/ip-filter/constants.js +24 -0
  296. package/ip-filter/decorators/index.d.ts +1 -0
  297. package/ip-filter/decorators/index.js +17 -0
  298. package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
  299. package/ip-filter/decorators/ip-filter.decorator.js +79 -0
  300. package/ip-filter/guards/index.d.ts +1 -0
  301. package/ip-filter/guards/index.js +17 -0
  302. package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
  303. package/ip-filter/guards/ip-filter.guard.js +174 -0
  304. package/ip-filter/index.d.ts +7 -0
  305. package/ip-filter/index.js +23 -0
  306. package/ip-filter/interfaces/index.d.ts +4 -0
  307. package/ip-filter/interfaces/index.js +20 -0
  308. package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
  309. package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
  310. package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
  311. package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
  312. package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
  313. package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
  314. package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
  315. package/ip-filter/interfaces/ip-rule.interface.js +2 -0
  316. package/ip-filter/ip-filter.module.d.ts +55 -0
  317. package/ip-filter/ip-filter.module.js +105 -0
  318. package/ip-filter/services/index.d.ts +1 -0
  319. package/ip-filter/services/index.js +17 -0
  320. package/ip-filter/services/ip-filter.service.d.ts +92 -0
  321. package/ip-filter/services/ip-filter.service.js +238 -0
  322. package/ip-filter/utils/index.d.ts +1 -0
  323. package/ip-filter/utils/index.js +17 -0
  324. package/ip-filter/utils/ip-utils.d.ts +61 -0
  325. package/ip-filter/utils/ip-utils.js +162 -0
  326. package/package.json +34 -29
  327. package/providers/context.provider.d.ts +9 -0
  328. package/providers/context.provider.js +13 -0
  329. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  330. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  331. package/redis-lock/index.d.ts +2 -0
  332. package/redis-lock/index.js +5 -1
  333. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  334. package/redis-lock/lock-heartbeat.service.js +232 -0
  335. package/redis-lock/redis-lock.module.d.ts +6 -0
  336. package/redis-lock/redis-lock.module.js +136 -77
  337. package/redis-lock/redis-lock.service.d.ts +31 -0
  338. package/redis-lock/redis-lock.service.js +124 -17
  339. package/setup/bootstrap.setup.d.ts +2 -1
  340. package/setup/bootstrap.setup.js +3 -2
  341. package/setup/index.d.ts +1 -0
  342. package/setup/index.js +1 -0
  343. package/setup/run-in-mode.decorator.d.ts +56 -0
  344. package/setup/run-in-mode.decorator.js +92 -0
  345. package/setup/schedule.decorator.d.ts +1 -0
  346. package/setup/schedule.decorator.js +28 -13
  347. package/setup/worker.decorator.js +10 -1
  348. package/shared/index.d.ts +1 -1
  349. package/shared/index.js +1 -1
  350. package/shared/{serviceRegistryModule.js → service-registry.module.js} +28 -17
  351. package/shared/services/api-config.service.d.ts +41 -0
  352. package/shared/services/api-config.service.js +166 -8
  353. package/shared/services/index.d.ts +0 -1
  354. package/shared/services/index.js +0 -1
  355. package/validators/custom-validate.validator.d.ts +1 -0
  356. package/validators/custom-validate.validator.js +1 -0
  357. package/validators/file-mimetype.validator.d.ts +0 -2
  358. package/validators/file-mimetype.validator.js +4 -6
  359. package/validators/is-exists.validator.d.ts +15 -6
  360. package/validators/is-exists.validator.js +8 -7
  361. package/validators/is-unique.validator.d.ts +22 -7
  362. package/validators/is-unique.validator.js +41 -17
  363. package/vault/vault-config.service.js +1 -1
  364. package/cache/providers/memory-cache.provider.d.ts +0 -49
  365. package/cache/providers/memory-cache.provider.js +0 -197
  366. package/http-client/services/cache.service.d.ts +0 -76
  367. package/http-client/services/cache.service.js +0 -333
  368. package/shared/services/validator.service.d.ts +0 -3
  369. package/shared/services/validator.service.js +0 -20
  370. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -172,7 +172,7 @@ let VaultConfigService = VaultConfigService_1 = class VaultConfigService {
172
172
  }
173
173
  try {
174
174
  const health = yield this.vaultClient.health();
175
- return health && !health.sealed;
175
+ return !!(health && !health.sealed);
176
176
  }
177
177
  catch (error) {
178
178
  this.logger.error('Vault health check failed', error.message);
@@ -1,49 +0,0 @@
1
- import { BaseCacheProvider } from './base-cache.provider';
2
- /**
3
- * Memory cache provider using native Map with TTL support
4
- *
5
- * This is the L2 cache layer - process-level caching.
6
- * Data is stored in memory and shared across all requests in the same process.
7
- *
8
- * Faster than Redis but not shared across multiple processes/servers.
9
- */
10
- export declare class MemoryCacheProvider extends BaseCacheProvider {
11
- private cache;
12
- private keys;
13
- private defaultTtl?;
14
- private namespace;
15
- constructor(options?: {
16
- ttl?: number;
17
- namespace?: string;
18
- });
19
- getName(): string;
20
- get<T>(key: string): Promise<T | null>;
21
- set<T>(key: string, value: T, ttl?: number): Promise<void>;
22
- delete(key: string | string[]): Promise<void>;
23
- deletePattern(pattern: string): Promise<number>;
24
- clear(): Promise<void>;
25
- has(key: string): Promise<boolean>;
26
- /**
27
- * Get all keys (for debugging/testing)
28
- */
29
- getAllKeys(): string[];
30
- /**
31
- * Get cache size
32
- */
33
- getSize(): number;
34
- /**
35
- * Clean up expired items (optional maintenance method)
36
- */
37
- cleanup(): number;
38
- /**
39
- * Optimized mget with batch cleanup
40
- */
41
- mget<T>(keys: string[]): Promise<(T | null)[]>;
42
- /**
43
- * Optimized mset
44
- */
45
- mset(items: Array<{
46
- key: string;
47
- value: any;
48
- }>, ttl?: number): Promise<void>;
49
- }
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryCacheProvider = void 0;
13
- const base_cache_provider_1 = require("./base-cache.provider");
14
- /**
15
- * Memory cache provider using native Map with TTL support
16
- *
17
- * This is the L2 cache layer - process-level caching.
18
- * Data is stored in memory and shared across all requests in the same process.
19
- *
20
- * Faster than Redis but not shared across multiple processes/servers.
21
- */
22
- class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
23
- constructor(options) {
24
- super();
25
- this.cache = new Map();
26
- this.keys = new Set();
27
- this.defaultTtl = options === null || options === void 0 ? void 0 : options.ttl;
28
- this.namespace = (options === null || options === void 0 ? void 0 : options.namespace) || 'cache:memory';
29
- }
30
- getName() {
31
- return 'Memory';
32
- }
33
- get(key) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- try {
36
- const item = this.cache.get(key);
37
- if (!item) {
38
- return null;
39
- }
40
- // Check if item has expired
41
- if (item.expiresAt && Date.now() > item.expiresAt) {
42
- this.cache.delete(key);
43
- this.keys.delete(key);
44
- return null;
45
- }
46
- return item.value;
47
- }
48
- catch (_a) {
49
- return null;
50
- }
51
- });
52
- }
53
- set(key, value, ttl) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- try {
56
- const effectiveTtl = ttl !== null && ttl !== void 0 ? ttl : this.defaultTtl;
57
- const expiresAt = effectiveTtl ? Date.now() + effectiveTtl : undefined;
58
- const item = {
59
- value,
60
- expiresAt,
61
- };
62
- this.cache.set(key, item);
63
- this.keys.add(key);
64
- }
65
- catch (error) {
66
- throw new Error(`MemoryCacheProvider: Failed to set key ${key}: ${error instanceof Error ? error.message : String(error)}`);
67
- }
68
- });
69
- }
70
- delete(key) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- try {
73
- if (Array.isArray(key)) {
74
- key.forEach((k) => {
75
- this.cache.delete(k);
76
- this.keys.delete(k);
77
- });
78
- }
79
- else {
80
- this.cache.delete(key);
81
- this.keys.delete(key);
82
- }
83
- }
84
- catch (error) {
85
- throw new Error(`MemoryCacheProvider: Failed to delete key(s): ${error instanceof Error ? error.message : String(error)}`);
86
- }
87
- });
88
- }
89
- deletePattern(pattern) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- try {
92
- const regex = this.patternToRegex(pattern);
93
- const matchedKeys = Array.from(this.keys).filter((key) => regex.test(key));
94
- if (matchedKeys.length > 0) {
95
- yield this.delete(matchedKeys);
96
- }
97
- return matchedKeys.length;
98
- }
99
- catch (_a) {
100
- return 0;
101
- }
102
- });
103
- }
104
- clear() {
105
- return __awaiter(this, void 0, void 0, function* () {
106
- try {
107
- this.cache.clear();
108
- this.keys.clear();
109
- }
110
- catch (error) {
111
- throw new Error(`MemoryCacheProvider: Failed to clear cache: ${error instanceof Error ? error.message : String(error)}`);
112
- }
113
- });
114
- }
115
- has(key) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- try {
118
- const item = this.cache.get(key);
119
- if (!item) {
120
- return false;
121
- }
122
- // Check if item has expired
123
- if (item.expiresAt && Date.now() > item.expiresAt) {
124
- this.cache.delete(key);
125
- this.keys.delete(key);
126
- return false;
127
- }
128
- return true;
129
- }
130
- catch (_a) {
131
- return false;
132
- }
133
- });
134
- }
135
- /**
136
- * Get all keys (for debugging/testing)
137
- */
138
- getAllKeys() {
139
- return Array.from(this.keys);
140
- }
141
- /**
142
- * Get cache size
143
- */
144
- getSize() {
145
- return this.keys.size;
146
- }
147
- /**
148
- * Clean up expired items (optional maintenance method)
149
- */
150
- cleanup() {
151
- let cleaned = 0;
152
- const now = Date.now();
153
- for (const [key, item] of this.cache.entries()) {
154
- if (item.expiresAt && now > item.expiresAt) {
155
- this.cache.delete(key);
156
- this.keys.delete(key);
157
- cleaned++;
158
- }
159
- }
160
- return cleaned;
161
- }
162
- /**
163
- * Optimized mget with batch cleanup
164
- */
165
- mget(keys) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const results = [];
168
- const now = Date.now();
169
- for (const key of keys) {
170
- const item = this.cache.get(key);
171
- if (!item) {
172
- results.push(null);
173
- continue;
174
- }
175
- // Check if item has expired
176
- if (item.expiresAt && now > item.expiresAt) {
177
- this.cache.delete(key);
178
- this.keys.delete(key);
179
- results.push(null);
180
- continue;
181
- }
182
- results.push(item.value);
183
- }
184
- return results;
185
- });
186
- }
187
- /**
188
- * Optimized mset
189
- */
190
- mset(items, ttl) {
191
- return __awaiter(this, void 0, void 0, function* () {
192
- const promises = items.map((item) => this.set(item.key, item.value, ttl));
193
- yield Promise.all(promises);
194
- });
195
- }
196
- }
197
- exports.MemoryCacheProvider = MemoryCacheProvider;
@@ -1,76 +0,0 @@
1
- import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import { HttpCacheConfig } from '../interfaces/http-client-config.interface';
3
- import { CacheService } from '../../cache/cache.service';
4
- /**
5
- * HTTP缓存服务
6
- * 集成现有的三层缓存架构
7
- */
8
- export declare class HttpCacheService {
9
- private readonly cacheService;
10
- private readonly logger;
11
- constructor(cacheService: CacheService);
12
- /**
13
- * 获取缓存的响应
14
- */
15
- get(config: AxiosRequestConfig, cacheOptions: HttpCacheConfig): Promise<AxiosResponse | null>;
16
- /**
17
- * 缓存响应
18
- */
19
- set(config: AxiosRequestConfig, response: AxiosResponse, cacheOptions: HttpCacheConfig): Promise<void>;
20
- /**
21
- * 清除缓存
22
- */
23
- clear(pattern?: string): Promise<void>;
24
- /**
25
- * 获取缓存统计信息
26
- */
27
- getStats(): Promise<any>;
28
- /**
29
- * 清理过期缓存
30
- */
31
- cleanup(): Promise<void>;
32
- /**
33
- * 预热缓存
34
- */
35
- warmup(urls: string[], headers?: Record<string, string>): Promise<void>;
36
- /**
37
- * 获取缓存命中率详情
38
- */
39
- getDetailedStats(): Promise<any>;
40
- /**
41
- * 生成缓存键
42
- */
43
- private generateCacheKey;
44
- /**
45
- * 构建完整的缓存键
46
- */
47
- private buildCacheKey;
48
- /**
49
- * 映射缓存层
50
- */
51
- private mapLayers;
52
- /**
53
- * 选择用于缓存键的头信息
54
- */
55
- private selectHeadersForCacheKey;
56
- /**
57
- * 判断响应是否可缓存
58
- */
59
- private isResponseCacheable;
60
- /**
61
- * 哈希对象
62
- */
63
- private hashObject;
64
- /**
65
- * 计算综合命中率
66
- */
67
- private calculateHitRate;
68
- /**
69
- * 获取最近的缓存活动
70
- */
71
- private getRecentCacheActivity;
72
- /**
73
- * 生成缓存优化建议
74
- */
75
- private generateRecommendations;
76
- }
@@ -1,333 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
- return new (P || (P = Promise))(function (resolve, reject) {
14
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
- step((generator = generator.apply(thisArg, _arguments || [])).next());
18
- });
19
- };
20
- var HttpCacheService_1;
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.HttpCacheService = void 0;
23
- const common_1 = require("@nestjs/common");
24
- const cache_service_1 = require("../../cache/cache.service");
25
- const cache_options_interface_1 = require("../../cache/interfaces/cache-options.interface");
26
- /**
27
- * HTTP缓存服务
28
- * 集成现有的三层缓存架构
29
- */
30
- let HttpCacheService = HttpCacheService_1 = class HttpCacheService {
31
- constructor(cacheService) {
32
- this.cacheService = cacheService;
33
- this.logger = new common_1.Logger(HttpCacheService_1.name);
34
- }
35
- /**
36
- * 获取缓存的响应
37
- */
38
- get(config, cacheOptions) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- var _a;
41
- const key = this.generateCacheKey(config, cacheOptions);
42
- const cacheKey = this.buildCacheKey(cacheOptions, key);
43
- try {
44
- const cachedResponse = yield this.cacheService.get(cacheKey, {
45
- layers: this.mapLayers((_a = cacheOptions.options) === null || _a === void 0 ? void 0 : _a.layers),
46
- ttl: cacheOptions.defaultTtl,
47
- });
48
- if (cachedResponse) {
49
- this.logger.debug(`Cache hit: ${cacheKey}`);
50
- return cachedResponse;
51
- }
52
- this.logger.debug(`Cache miss: ${cacheKey}`);
53
- return null;
54
- }
55
- catch (error) {
56
- this.logger.warn(`Cache get error: ${error.message}`);
57
- return null;
58
- }
59
- });
60
- }
61
- /**
62
- * 缓存响应
63
- */
64
- set(config, response, cacheOptions) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- var _a, _b, _c, _d;
67
- const key = this.generateCacheKey(config, cacheOptions);
68
- const cacheKey = this.buildCacheKey(cacheOptions, key);
69
- if (!this.isResponseCacheable(response, cacheOptions)) {
70
- this.logger.debug(`Response not cacheable: ${response.status} ${config.url}`);
71
- return;
72
- }
73
- try {
74
- yield this.cacheService.set(cacheKey, response, {
75
- layers: this.mapLayers((_a = cacheOptions.options) === null || _a === void 0 ? void 0 : _a.layers),
76
- ttl: cacheOptions.defaultTtl,
77
- namespace: ((_b = cacheOptions.options) === null || _b === void 0 ? void 0 : _b.prefix) || 'http',
78
- condition: (_c = cacheOptions.options) === null || _c === void 0 ? void 0 : _c.condition,
79
- backfill: (_d = cacheOptions.options) === null || _d === void 0 ? void 0 : _d.backfill,
80
- });
81
- this.logger.debug(`Response cached: ${cacheKey}`);
82
- }
83
- catch (error) {
84
- this.logger.warn(`Cache set error: ${error.message}`);
85
- }
86
- });
87
- }
88
- /**
89
- * 清除缓存
90
- */
91
- clear(pattern) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- try {
94
- if (pattern) {
95
- // 使用通配符清除
96
- yield this.cacheService.deletePattern(pattern);
97
- this.logger.debug(`Cache cleared with pattern: ${pattern}`);
98
- }
99
- else {
100
- // 清除所有HTTP相关缓存
101
- yield this.cacheService.deletePattern('http:*');
102
- this.logger.debug('All HTTP cache cleared');
103
- }
104
- }
105
- catch (error) {
106
- this.logger.warn(`Cache clear error: ${error.message}`);
107
- }
108
- });
109
- }
110
- /**
111
- * 获取缓存统计信息
112
- */
113
- getStats() {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- try {
116
- const stats = this.cacheService.getStats();
117
- return stats;
118
- }
119
- catch (error) {
120
- this.logger.warn(`Get cache stats error: ${error.message}`);
121
- return null;
122
- }
123
- });
124
- }
125
- /**
126
- * 清理过期缓存
127
- */
128
- cleanup() {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- try {
131
- // CacheService doesn't have cleanup method, so we'll clear HTTP cache patterns
132
- yield this.cacheService.deletePattern('http:*');
133
- this.logger.debug('HTTP cache cleanup completed');
134
- }
135
- catch (error) {
136
- this.logger.warn(`Cache cleanup error: ${error.message}`);
137
- }
138
- });
139
- }
140
- /**
141
- * 预热缓存
142
- */
143
- warmup(urls, headers) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- this.logger.log(`Starting cache warmup for ${urls.length} URLs`);
146
- // 这里可以实现预热逻辑
147
- // 例如:预先请求这些URL并缓存响应
148
- // 实际实现需要访问HTTP客户端服务,可能需要通过事件或其他方式实现
149
- this.logger.log('Cache warmup completed');
150
- });
151
- }
152
- /**
153
- * 获取缓存命中率详情
154
- */
155
- getDetailedStats() {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- try {
158
- const stats = yield this.getStats();
159
- const recentHits = yield this.getRecentCacheActivity();
160
- return Object.assign(Object.assign({}, stats), { recentActivity: recentHits, recommendations: this.generateRecommendations(stats) });
161
- }
162
- catch (error) {
163
- this.logger.warn(`Get detailed cache stats error: ${error.message}`);
164
- return null;
165
- }
166
- });
167
- }
168
- /**
169
- * 生成缓存键
170
- */
171
- generateCacheKey(config, cacheOptions) {
172
- var _a;
173
- if (cacheOptions.keyGenerator) {
174
- return cacheOptions.keyGenerator(config);
175
- }
176
- // 默认键生成逻辑
177
- const keyData = {
178
- method: (_a = config.method) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
179
- url: config.url,
180
- params: config.params,
181
- data: config.data,
182
- headers: this.selectHeadersForCacheKey(config.headers),
183
- };
184
- // 简单的哈希键生成
185
- return this.hashObject(keyData);
186
- }
187
- /**
188
- * 构建完整的缓存键
189
- */
190
- buildCacheKey(cacheOptions, key) {
191
- var _a;
192
- const namespace = ((_a = cacheOptions.options) === null || _a === void 0 ? void 0 : _a.prefix) || 'http';
193
- return `${namespace}:${key}`;
194
- }
195
- /**
196
- * 映射缓存层
197
- */
198
- mapLayers(layers) {
199
- if (!layers || layers.length === 0) {
200
- return [cache_options_interface_1.CacheLayer.MEMORY, cache_options_interface_1.CacheLayer.REDIS]; // 默认使用内存和Redis
201
- }
202
- return layers.map((layer) => {
203
- switch (layer) {
204
- case 'cls':
205
- return cache_options_interface_1.CacheLayer.CLS;
206
- case 'memory':
207
- return cache_options_interface_1.CacheLayer.MEMORY;
208
- case 'redis':
209
- return cache_options_interface_1.CacheLayer.REDIS;
210
- default:
211
- return cache_options_interface_1.CacheLayer.MEMORY;
212
- }
213
- });
214
- }
215
- /**
216
- * 选择用于缓存键的头信息
217
- */
218
- selectHeadersForCacheKey(headers) {
219
- if (!headers)
220
- return {};
221
- // 只选择影响响应内容的头信息
222
- const cacheKeyHeaders = [
223
- 'accept',
224
- 'accept-language',
225
- 'accept-encoding',
226
- 'content-type',
227
- 'authorization', // 包含授权信息以确保缓存的安全性
228
- ];
229
- const selectedHeaders = {};
230
- cacheKeyHeaders.forEach((key) => {
231
- if (headers[key]) {
232
- selectedHeaders[key] = headers[key];
233
- }
234
- });
235
- return selectedHeaders;
236
- }
237
- /**
238
- * 判断响应是否可缓存
239
- */
240
- isResponseCacheable(response, config) {
241
- var _a;
242
- // 检查状态码
243
- if (!config.cacheableStatusCodes.includes(response.status)) {
244
- return false;
245
- }
246
- // 检查方法
247
- const method = (_a = response.config.method) === null || _a === void 0 ? void 0 : _a.toLowerCase();
248
- if (!config.cacheableMethods.includes(method || 'get')) {
249
- return false;
250
- }
251
- // 检查缓存控制头
252
- const cacheControl = response.headers['cache-control'];
253
- if (cacheControl) {
254
- if (cacheControl.includes('no-store') ||
255
- cacheControl.includes('no-cache')) {
256
- return false;
257
- }
258
- if (cacheControl.includes('private')) {
259
- // 私有缓存可能需要特殊处理
260
- this.logger.debug('Private cache detected, caching with caution');
261
- }
262
- }
263
- // 检查响应大小
264
- if (response.data) {
265
- const responseSize = JSON.stringify(response.data).length;
266
- if (responseSize > 1024 * 1024) {
267
- // 1MB限制
268
- this.logger.warn(`Response too large for caching: ${responseSize} bytes`);
269
- return false;
270
- }
271
- }
272
- return true;
273
- }
274
- /**
275
- * 哈希对象
276
- */
277
- hashObject(obj) {
278
- const str = JSON.stringify(obj, Object.keys(obj).sort());
279
- let hash = 0;
280
- for (let i = 0; i < str.length; i++) {
281
- const char = str.charCodeAt(i);
282
- hash = (hash << 5) - hash + char;
283
- hash = hash & hash; // 转换为32位整数
284
- }
285
- return Math.abs(hash).toString(36);
286
- }
287
- /**
288
- * 计算综合命中率
289
- */
290
- calculateHitRate(...stats) {
291
- let totalHits = 0;
292
- let totalRequests = 0;
293
- stats.forEach((stat) => {
294
- if (stat) {
295
- totalHits += stat.hits || 0;
296
- totalRequests += (stat.hits || 0) + (stat.misses || 0);
297
- }
298
- });
299
- return totalRequests > 0 ? (totalHits / totalRequests) * 100 : 0;
300
- }
301
- /**
302
- * 获取最近的缓存活动
303
- */
304
- getRecentCacheActivity() {
305
- return __awaiter(this, void 0, void 0, function* () {
306
- // 这里可以实现获取最近缓存活动的逻辑
307
- // 例如:从Redis获取最近的缓存键访问记录
308
- return {
309
- recentHits: 0,
310
- recentMisses: 0,
311
- topCacheKeys: [],
312
- };
313
- });
314
- }
315
- /**
316
- * 生成缓存优化建议
317
- */
318
- generateRecommendations(stats) {
319
- const recommendations = [];
320
- if (stats.combined.hitRate < 50) {
321
- recommendations.push('Cache hit rate is low, consider increasing TTL or optimizing cache keys');
322
- }
323
- if (stats.redis.memoryUsage > 0.8) {
324
- recommendations.push('Redis memory usage is high, consider increasing memory or cleaning up old cache entries');
325
- }
326
- return recommendations;
327
- }
328
- };
329
- exports.HttpCacheService = HttpCacheService;
330
- exports.HttpCacheService = HttpCacheService = HttpCacheService_1 = __decorate([
331
- (0, common_1.Injectable)(),
332
- __metadata("design:paramtypes", [cache_service_1.CacheService])
333
- ], HttpCacheService);
@@ -1,3 +0,0 @@
1
- export declare class ValidatorService {
2
- isImage(mimeType: string): boolean;
3
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ValidatorService = void 0;
10
- const common_1 = require("@nestjs/common");
11
- let ValidatorService = class ValidatorService {
12
- isImage(mimeType) {
13
- const imageMimeTypes = ['image/jpeg', 'image/png'];
14
- return imageMimeTypes.includes(mimeType);
15
- }
16
- };
17
- exports.ValidatorService = ValidatorService;
18
- exports.ValidatorService = ValidatorService = __decorate([
19
- (0, common_1.Injectable)()
20
- ], ValidatorService);