@nest-omni/core 4.1.3-2 → 4.1.3-20

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 (386) hide show
  1. package/audit/audit.module.d.ts +10 -0
  2. package/audit/audit.module.js +63 -1
  3. package/audit/controllers/audit.controller.d.ts +88 -0
  4. package/audit/controllers/audit.controller.js +74 -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 +9 -1
  8. package/audit/decorators/audit-controller.decorator.js +11 -2
  9. package/audit/decorators/audit-operation.decorator.d.ts +45 -0
  10. package/audit/decorators/audit-operation.decorator.js +49 -0
  11. package/audit/decorators/entity-audit.decorator.d.ts +85 -1
  12. package/audit/decorators/entity-audit.decorator.js +153 -3
  13. package/audit/decorators/index.d.ts +2 -0
  14. package/audit/decorators/index.js +2 -0
  15. package/audit/dto/audit-log-query.dto.d.ts +3 -0
  16. package/audit/dto/audit-log-query.dto.js +3 -0
  17. package/audit/dto/begin-transaction.dto.d.ts +3 -0
  18. package/audit/dto/begin-transaction.dto.js +3 -0
  19. package/audit/dto/compare-entities.dto.d.ts +3 -0
  20. package/audit/dto/compare-entities.dto.js +3 -0
  21. package/audit/dto/pre-check-restore.dto.d.ts +3 -0
  22. package/audit/dto/pre-check-restore.dto.js +3 -0
  23. package/audit/dto/restore-entity.dto.d.ts +3 -0
  24. package/audit/dto/restore-entity.dto.js +3 -0
  25. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  26. package/audit/entities/audit-action-summary.entity.js +101 -0
  27. package/audit/entities/entity-audit-log.entity.d.ts +11 -0
  28. package/audit/entities/entity-audit-log.entity.js +57 -2
  29. package/audit/entities/entity-transaction.entity.d.ts +11 -2
  30. package/audit/entities/entity-transaction.entity.js +42 -3
  31. package/audit/entities/index.d.ts +3 -0
  32. package/audit/entities/index.js +3 -0
  33. package/audit/entities/manual-operation-log.entity.d.ts +4 -0
  34. package/audit/entities/manual-operation-log.entity.js +12 -1
  35. package/audit/entities/operation-template.entity.d.ts +4 -0
  36. package/audit/entities/operation-template.entity.js +4 -0
  37. package/audit/enums/audit.enums.d.ts +37 -6
  38. package/audit/enums/audit.enums.js +40 -7
  39. package/audit/index.d.ts +4 -1
  40. package/audit/index.js +34 -1
  41. package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
  42. package/audit/interceptors/audit-action.interceptor.js +215 -0
  43. package/audit/interceptors/audit.interceptor.d.ts +15 -0
  44. package/audit/interceptors/audit.interceptor.js +23 -1
  45. package/audit/interceptors/index.d.ts +1 -0
  46. package/audit/interceptors/index.js +1 -0
  47. package/audit/interfaces/audit.interfaces.d.ts +187 -2
  48. package/audit/services/audit-action.service.d.ts +141 -0
  49. package/audit/services/audit-action.service.js +244 -0
  50. package/audit/services/audit-context.service.d.ts +97 -0
  51. package/audit/services/audit-context.service.js +185 -0
  52. package/audit/services/audit-strategy.service.d.ts +6 -0
  53. package/audit/services/audit-strategy.service.js +13 -0
  54. package/audit/services/entity-audit.service.d.ts +230 -3
  55. package/audit/services/entity-audit.service.js +607 -14
  56. package/audit/services/index.d.ts +3 -0
  57. package/audit/services/index.js +3 -0
  58. package/audit/services/manual-audit-log.service.d.ts +134 -9
  59. package/audit/services/manual-audit-log.service.js +157 -40
  60. package/audit/services/multi-database.service.d.ts +9 -2
  61. package/audit/services/multi-database.service.js +9 -21
  62. package/audit/services/operation-description.service.d.ts +71 -2
  63. package/audit/services/operation-description.service.js +231 -20
  64. package/audit/services/transaction-audit.service.d.ts +30 -0
  65. package/audit/services/transaction-audit.service.js +53 -5
  66. package/audit/subscribers/entity-audit.subscriber.d.ts +19 -0
  67. package/audit/subscribers/entity-audit.subscriber.js +76 -1
  68. package/cache/cache-metrics.service.d.ts +67 -0
  69. package/cache/cache-metrics.service.js +68 -4
  70. package/cache/cache-serialization.service.d.ts +31 -0
  71. package/cache/cache-serialization.service.js +25 -0
  72. package/cache/cache.constants.d.ts +9 -0
  73. package/cache/cache.constants.js +9 -0
  74. package/cache/cache.health.d.ts +26 -0
  75. package/cache/cache.health.js +30 -0
  76. package/cache/cache.module.d.ts +82 -2
  77. package/cache/cache.module.js +76 -5
  78. package/cache/cache.service.d.ts +140 -0
  79. package/cache/cache.service.js +169 -0
  80. package/cache/cache.warmup.service.d.ts +39 -0
  81. package/cache/cache.warmup.service.js +32 -0
  82. package/cache/decorators/cache-evict.decorator.d.ts +47 -0
  83. package/cache/decorators/cache-evict.decorator.js +56 -0
  84. package/cache/decorators/cache-put.decorator.d.ts +34 -0
  85. package/cache/decorators/cache-put.decorator.js +39 -0
  86. package/cache/decorators/cacheable.decorator.d.ts +40 -0
  87. package/cache/decorators/cacheable.decorator.js +55 -0
  88. package/cache/dependencies/callback.dependency.d.ts +33 -0
  89. package/cache/dependencies/callback.dependency.js +39 -1
  90. package/cache/dependencies/chain.dependency.d.ts +28 -0
  91. package/cache/dependencies/chain.dependency.js +34 -0
  92. package/cache/dependencies/db.dependency.d.ts +83 -7
  93. package/cache/dependencies/db.dependency.js +89 -14
  94. package/cache/dependencies/file.dependency.d.ts +32 -0
  95. package/cache/dependencies/file.dependency.js +34 -0
  96. package/cache/dependencies/tag.dependency.d.ts +75 -4
  97. package/cache/dependencies/tag.dependency.js +145 -11
  98. package/cache/dependencies/time.dependency.d.ts +43 -0
  99. package/cache/dependencies/time.dependency.js +43 -0
  100. package/cache/examples/basic-usage.d.ts +15 -0
  101. package/cache/examples/basic-usage.js +62 -8
  102. package/cache/index.js +9 -0
  103. package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
  104. package/cache/interfaces/cache-options.interface.d.ts +89 -0
  105. package/cache/interfaces/cache-options.interface.js +6 -0
  106. package/cache/interfaces/cache-provider.interface.d.ts +78 -0
  107. package/cache/providers/base-cache.provider.d.ts +14 -0
  108. package/cache/providers/base-cache.provider.js +16 -0
  109. package/cache/providers/cls-cache.provider.d.ts +20 -0
  110. package/cache/providers/cls-cache.provider.js +28 -0
  111. package/cache/providers/memory-cache.provider.d.ts +43 -0
  112. package/cache/providers/memory-cache.provider.js +66 -0
  113. package/cache/providers/redis-cache.provider.d.ts +26 -0
  114. package/cache/providers/redis-cache.provider.js +29 -0
  115. package/cache/utils/dependency-manager.util.d.ts +52 -0
  116. package/cache/utils/dependency-manager.util.js +59 -0
  117. package/cache/utils/key-generator.util.d.ts +42 -0
  118. package/cache/utils/key-generator.util.js +53 -1
  119. package/common/abstract.entity.d.ts +14 -0
  120. package/common/abstract.entity.js +14 -0
  121. package/common/boilerplate.polyfill.d.ts +142 -0
  122. package/common/boilerplate.polyfill.js +18 -1
  123. package/common/dto/dto-container.d.ts +16 -0
  124. package/common/dto/dto-container.js +20 -0
  125. package/common/dto/dto-decorators.d.ts +18 -0
  126. package/common/dto/dto-decorators.js +14 -0
  127. package/common/dto/dto-extensions.d.ts +11 -0
  128. package/common/dto/dto-extensions.js +9 -0
  129. package/common/dto/dto-service-accessor.d.ts +17 -0
  130. package/common/dto/dto-service-accessor.js +18 -0
  131. package/common/dto/dto-transformer.d.ts +12 -0
  132. package/common/dto/dto-transformer.js +9 -0
  133. package/common/dto/index.js +2 -0
  134. package/common/examples/paginate-and-map.example.d.ts +6 -0
  135. package/common/examples/paginate-and-map.example.js +26 -0
  136. package/common/utils.d.ts +15 -0
  137. package/common/utils.js +15 -0
  138. package/constants/language-code.js +1 -0
  139. package/decorators/field.decorators.d.ts +1 -1
  140. package/decorators/field.decorators.js +8 -1
  141. package/decorators/property.decorators.js +1 -0
  142. package/decorators/public-route.decorator.js +1 -0
  143. package/decorators/transform.decorators.d.ts +27 -0
  144. package/decorators/transform.decorators.js +29 -0
  145. package/decorators/translate.decorator.js +1 -0
  146. package/decorators/user.decorator.js +1 -0
  147. package/decorators/validator.decorators.d.ts +8 -18
  148. package/decorators/validator.decorators.js +22 -190
  149. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  150. package/file-upload/controllers/file-access.controller.js +128 -0
  151. package/file-upload/decorators/column.decorator.d.ts +151 -0
  152. package/file-upload/decorators/column.decorator.js +273 -0
  153. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  154. package/file-upload/decorators/csv-data.decorator.js +85 -0
  155. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  156. package/file-upload/decorators/csv-import.decorator.js +24 -0
  157. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  158. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  159. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  160. package/file-upload/decorators/excel-data.decorator.js +85 -0
  161. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  162. package/file-upload/decorators/file-upload.decorator.js +172 -0
  163. package/file-upload/decorators/index.d.ts +5 -0
  164. package/file-upload/decorators/index.js +38 -0
  165. package/file-upload/decorators/process.decorator.d.ts +40 -0
  166. package/file-upload/decorators/process.decorator.js +52 -0
  167. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  168. package/file-upload/decorators/validate-data.decorator.js +39 -0
  169. package/file-upload/dto/create-file.dto.d.ts +24 -0
  170. package/file-upload/dto/create-file.dto.js +112 -0
  171. package/file-upload/dto/find-files.dto.d.ts +15 -0
  172. package/file-upload/dto/find-files.dto.js +76 -0
  173. package/file-upload/dto/index.d.ts +4 -0
  174. package/file-upload/dto/index.js +20 -0
  175. package/file-upload/dto/pagination.dto.d.ts +7 -0
  176. package/file-upload/dto/pagination.dto.js +39 -0
  177. package/file-upload/dto/update-file.dto.d.ts +15 -0
  178. package/file-upload/dto/update-file.dto.js +67 -0
  179. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  180. package/file-upload/entities/file-metadata.entity.js +76 -0
  181. package/file-upload/entities/file.entity.d.ts +114 -0
  182. package/file-upload/entities/file.entity.js +350 -0
  183. package/file-upload/entities/index.d.ts +2 -0
  184. package/file-upload/entities/index.js +18 -0
  185. package/file-upload/enums/file-type.enum.d.ts +72 -0
  186. package/file-upload/enums/file-type.enum.js +212 -0
  187. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  188. package/file-upload/exceptions/file-upload.exception.js +120 -0
  189. package/file-upload/exceptions/index.d.ts +1 -0
  190. package/file-upload/exceptions/index.js +17 -0
  191. package/file-upload/file-upload.module.d.ts +89 -0
  192. package/file-upload/file-upload.module.js +292 -0
  193. package/file-upload/index.d.ts +37 -0
  194. package/file-upload/index.js +77 -0
  195. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  196. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  197. package/file-upload/interceptors/index.d.ts +1 -0
  198. package/file-upload/interceptors/index.js +17 -0
  199. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  200. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  201. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  202. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  203. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  204. package/file-upload/interfaces/file-entity.interface.js +28 -0
  205. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  206. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  207. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  208. package/file-upload/interfaces/file-processor.interface.js +2 -0
  209. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  210. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  211. package/file-upload/interfaces/index.d.ts +7 -0
  212. package/file-upload/interfaces/index.js +24 -0
  213. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  214. package/file-upload/interfaces/processor-options.interface.js +2 -0
  215. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  216. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  217. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  218. package/file-upload/interfaces/upload-options.interface.js +2 -0
  219. package/file-upload/processors/csv.processor.d.ts +98 -0
  220. package/file-upload/processors/csv.processor.js +391 -0
  221. package/file-upload/processors/excel.processor.d.ts +130 -0
  222. package/file-upload/processors/excel.processor.js +547 -0
  223. package/file-upload/processors/image.processor.d.ts +199 -0
  224. package/file-upload/processors/image.processor.js +377 -0
  225. package/file-upload/providers/index.d.ts +2 -0
  226. package/file-upload/providers/index.js +18 -0
  227. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  228. package/file-upload/providers/local-storage.provider.js +484 -0
  229. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  230. package/file-upload/providers/s3-storage.provider.js +455 -0
  231. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  232. package/file-upload/services/file-signature-validator.service.js +376 -0
  233. package/file-upload/services/file.service.d.ts +193 -0
  234. package/file-upload/services/file.service.js +638 -0
  235. package/file-upload/services/index.d.ts +4 -0
  236. package/file-upload/services/index.js +20 -0
  237. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  238. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  239. package/file-upload/services/mime-registry.service.d.ts +47 -0
  240. package/file-upload/services/mime-registry.service.js +167 -0
  241. package/file-upload/utils/checksum.util.d.ts +28 -0
  242. package/file-upload/utils/checksum.util.js +65 -0
  243. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  244. package/file-upload/utils/dynamic-import.util.js +156 -0
  245. package/file-upload/utils/filename.util.d.ts +59 -0
  246. package/file-upload/utils/filename.util.js +184 -0
  247. package/file-upload/utils/filepath.util.d.ts +70 -0
  248. package/file-upload/utils/filepath.util.js +152 -0
  249. package/file-upload/utils/index.d.ts +4 -0
  250. package/file-upload/utils/index.js +20 -0
  251. package/filters/constraint-errors.js +1 -0
  252. package/helpers/common.helper.d.ts +13 -0
  253. package/helpers/common.helper.js +13 -0
  254. package/http-client/config/http-client.config.d.ts +20 -0
  255. package/http-client/config/http-client.config.js +48 -21
  256. package/http-client/decorators/http-client.decorators.d.ts +55 -14
  257. package/http-client/decorators/http-client.decorators.js +154 -78
  258. package/http-client/entities/http-log.entity.d.ts +217 -8
  259. package/http-client/entities/http-log.entity.js +7 -22
  260. package/http-client/errors/http-client.errors.d.ts +57 -0
  261. package/http-client/errors/http-client.errors.js +58 -0
  262. package/http-client/examples/advanced-usage.example.d.ts +40 -0
  263. package/http-client/examples/advanced-usage.example.js +53 -61
  264. package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
  265. package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
  266. package/http-client/examples/basic-usage.example.d.ts +60 -0
  267. package/http-client/examples/basic-usage.example.js +60 -0
  268. package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
  269. package/http-client/examples/multi-api-configuration.example.js +76 -5
  270. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  271. package/http-client/examples/proxy-from-environment.example.js +409 -0
  272. package/http-client/http-client.module.d.ts +48 -2
  273. package/http-client/http-client.module.js +147 -68
  274. package/http-client/index.d.ts +1 -1
  275. package/http-client/index.js +8 -0
  276. package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
  277. package/http-client/interfaces/api-client-config.interface.js +3 -0
  278. package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
  279. package/http-client/services/api-client-registry.service.d.ts +50 -11
  280. package/http-client/services/api-client-registry.service.js +90 -250
  281. package/http-client/services/circuit-breaker.service.d.ts +115 -2
  282. package/http-client/services/circuit-breaker.service.js +237 -7
  283. package/http-client/services/http-client.service.d.ts +124 -14
  284. package/http-client/services/http-client.service.js +437 -148
  285. package/http-client/services/http-log-query.service.d.ts +83 -0
  286. package/http-client/services/http-log-query.service.js +121 -13
  287. package/http-client/services/http-replay.service.d.ts +101 -0
  288. package/http-client/services/http-replay.service.js +86 -0
  289. package/http-client/services/index.d.ts +0 -1
  290. package/http-client/services/index.js +0 -1
  291. package/http-client/services/log-cleanup.service.d.ts +63 -0
  292. package/http-client/services/log-cleanup.service.js +54 -2
  293. package/http-client/services/logging.service.d.ts +116 -7
  294. package/http-client/services/logging.service.js +349 -86
  295. package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
  296. package/http-client/utils/call-stack-extractor.util.js +83 -0
  297. package/http-client/utils/context-extractor.util.d.ts +49 -0
  298. package/http-client/utils/context-extractor.util.js +52 -0
  299. package/http-client/utils/curl-generator.util.d.ts +21 -0
  300. package/http-client/utils/curl-generator.util.js +44 -3
  301. package/http-client/utils/index.d.ts +1 -0
  302. package/http-client/utils/index.js +1 -0
  303. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  304. package/http-client/utils/proxy-environment.util.js +148 -0
  305. package/http-client/utils/request-id.util.d.ts +18 -0
  306. package/http-client/utils/request-id.util.js +20 -0
  307. package/http-client/utils/retry-recorder.util.d.ts +42 -0
  308. package/http-client/utils/retry-recorder.util.js +44 -0
  309. package/http-client/utils/security-validator.util.d.ts +118 -0
  310. package/http-client/utils/security-validator.util.js +352 -0
  311. package/index.d.ts +3 -1
  312. package/index.js +12 -1
  313. package/interceptors/translation-interceptor.service.js +5 -0
  314. package/package.json +11 -7
  315. package/providers/context.provider.js +2 -0
  316. package/providers/generator.provider.d.ts +4 -0
  317. package/providers/generator.provider.js +4 -0
  318. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  319. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  320. package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
  321. package/redis-lock/examples/lock-strategy.examples.js +130 -15
  322. package/redis-lock/index.d.ts +2 -0
  323. package/redis-lock/index.js +8 -1
  324. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  325. package/redis-lock/lock-heartbeat.service.js +232 -0
  326. package/redis-lock/redis-lock.decorator.d.ts +101 -0
  327. package/redis-lock/redis-lock.decorator.js +120 -0
  328. package/redis-lock/redis-lock.module.d.ts +66 -0
  329. package/redis-lock/redis-lock.module.js +175 -70
  330. package/redis-lock/redis-lock.service.d.ts +282 -0
  331. package/redis-lock/redis-lock.service.js +343 -20
  332. package/setup/bootstrap.setup.d.ts +1 -0
  333. package/setup/bootstrap.setup.js +21 -0
  334. package/setup/index.d.ts +1 -0
  335. package/setup/index.js +1 -0
  336. package/setup/mode.setup.d.ts +44 -0
  337. package/setup/mode.setup.js +44 -0
  338. package/setup/run-in-mode.decorator.d.ts +56 -0
  339. package/setup/run-in-mode.decorator.js +92 -0
  340. package/setup/schedule.decorator.d.ts +227 -0
  341. package/setup/schedule.decorator.js +240 -12
  342. package/setup/worker.decorator.d.ts +86 -0
  343. package/setup/worker.decorator.js +97 -0
  344. package/shared/index.d.ts +1 -1
  345. package/shared/index.js +1 -1
  346. package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -17
  347. package/shared/services/api-config.service.d.ts +3 -0
  348. package/shared/services/api-config.service.js +21 -9
  349. package/shared/services/index.d.ts +0 -1
  350. package/shared/services/index.js +0 -1
  351. package/validator-json/decorators.d.ts +17 -0
  352. package/validator-json/decorators.js +17 -2
  353. package/validator-json/default.d.ts +6 -0
  354. package/validator-json/default.js +30 -2
  355. package/validator-json/defaultConverters.js +1 -0
  356. package/validator-json/options.d.ts +23 -0
  357. package/validators/common-validators.d.ts +143 -0
  358. package/validators/common-validators.js +249 -0
  359. package/validators/custom-validate.examples.d.ts +23 -0
  360. package/validators/custom-validate.examples.js +78 -6
  361. package/validators/custom-validate.validator.d.ts +108 -0
  362. package/validators/custom-validate.validator.js +85 -0
  363. package/validators/file-mimetype.validator.d.ts +0 -2
  364. package/validators/file-mimetype.validator.js +4 -6
  365. package/validators/index.d.ts +1 -0
  366. package/validators/index.js +1 -0
  367. package/validators/is-exists.validator.d.ts +26 -6
  368. package/validators/is-exists.validator.js +30 -7
  369. package/validators/is-unique.validator.d.ts +33 -7
  370. package/validators/is-unique.validator.js +59 -17
  371. package/validators/skip-empty.validator.d.ts +5 -0
  372. package/validators/skip-empty.validator.js +5 -0
  373. package/vault/interfaces/vault-options.interface.d.ts +9 -0
  374. package/vault/vault-config.loader.d.ts +30 -0
  375. package/vault/vault-config.loader.js +48 -1
  376. package/vault/vault-config.service.d.ts +53 -0
  377. package/vault/vault-config.service.js +57 -0
  378. package/vault/vault.module.d.ts +4 -0
  379. package/vault/vault.module.js +4 -0
  380. package/decorators/examples/validation-decorators.example.d.ts +0 -69
  381. package/decorators/examples/validation-decorators.example.js +0 -331
  382. package/http-client/services/cache.service.d.ts +0 -24
  383. package/http-client/services/cache.service.js +0 -264
  384. package/shared/services/validator.service.d.ts +0 -3
  385. package/shared/services/validator.service.js +0 -20
  386. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -1,18 +1,36 @@
1
1
  import { Constructor } from '../types';
2
2
  import { TransformFnParams } from 'class-transformer';
3
+ /**
4
+ * 扩展的TransformFnParams,包含context
5
+ */
3
6
  export interface ExtendedTransformFnParams extends TransformFnParams {
4
7
  context?: any;
5
8
  }
9
+ /**
10
+ * DTO服务装饰器 - 标记可以在DTO中使用的服务
11
+ */
6
12
  export declare const DTO_SERVICE_KEY = "dto:service-name";
7
13
  export declare function DtoService(serviceName?: string): ClassDecorator;
14
+ /**
15
+ * 使用服务装饰器 - 在DTO类中声明需要的服务
16
+ */
8
17
  export declare const DTO_REQUIRED_SERVICES_KEY = "dto:required-services";
9
18
  export declare function UseServices(...serviceTokens: Array<string | Constructor<any>>): ClassDecorator;
19
+ /**
20
+ * DTO类装饰器 - 标记这是一个DTO类并关联到Entity
21
+ */
10
22
  export declare const DTO_ENTITY_KEY = "dto:entity";
11
23
  export declare function Dto(entityClass: Constructor<any>): ClassDecorator;
24
+ /**
25
+ * DTO字段装饰器 - 类似@Column,用于DTO类
26
+ */
12
27
  export interface DtoFieldOptions {
13
28
  source?: string;
14
29
  transform?: (value: any) => any;
15
30
  }
16
31
  export declare function DtoField(source?: string, transform?: (value: any) => any): PropertyDecorator;
17
32
  export declare function DtoField(options?: DtoFieldOptions): PropertyDecorator;
33
+ /**
34
+ * DTO计算字段装饰器 - 用于需要计算的复杂字段
35
+ */
18
36
  export declare function DtoComputed(computeFn: (entity: any, context?: any) => any): PropertyDecorator;
@@ -7,6 +7,9 @@ exports.Dto = Dto;
7
7
  exports.DtoField = DtoField;
8
8
  exports.DtoComputed = DtoComputed;
9
9
  const common_1 = require("@nestjs/common");
10
+ /**
11
+ * DTO服务装饰器 - 标记可以在DTO中使用的服务
12
+ */
10
13
  exports.DTO_SERVICE_KEY = 'dto:service-name';
11
14
  function DtoService(serviceName) {
12
15
  return function (target) {
@@ -14,18 +17,26 @@ function DtoService(serviceName) {
14
17
  (0, common_1.SetMetadata)(exports.DTO_SERVICE_KEY, name)(target);
15
18
  };
16
19
  }
20
+ /**
21
+ * 使用服务装饰器 - 在DTO类中声明需要的服务
22
+ */
17
23
  exports.DTO_REQUIRED_SERVICES_KEY = 'dto:required-services';
18
24
  function UseServices(...serviceTokens) {
19
25
  return function (target) {
26
+ // 将Constructor转换为服务名
20
27
  const tokens = serviceTokens.map(token => {
21
28
  if (typeof token === 'string') {
22
29
  return token;
23
30
  }
31
+ // 假设服务名就是类名的小写版本
24
32
  return token.name.charAt(0).toLowerCase() + token.name.slice(1);
25
33
  });
26
34
  (0, common_1.SetMetadata)(exports.DTO_REQUIRED_SERVICES_KEY, tokens)(target);
27
35
  };
28
36
  }
37
+ /**
38
+ * DTO类装饰器 - 标记这是一个DTO类并关联到Entity
39
+ */
29
40
  exports.DTO_ENTITY_KEY = 'dto:entity';
30
41
  function Dto(entityClass) {
31
42
  return function (target) {
@@ -46,6 +57,9 @@ function DtoField(sourceOrOptions, transform) {
46
57
  Reflect.defineMetadata('dto:fields', fields, target.constructor);
47
58
  };
48
59
  }
60
+ /**
61
+ * DTO计算字段装饰器 - 用于需要计算的复杂字段
62
+ */
49
63
  function DtoComputed(computeFn) {
50
64
  return function (target, propertyKey) {
51
65
  const fields = Reflect.getMetadata('dto:fields', target.constructor) || [];
@@ -1,11 +1,22 @@
1
1
  import { Constructor } from '../types';
2
2
  declare global {
3
3
  interface Array<T> {
4
+ /**
5
+ * 将实体数组转换为DTO数组
6
+ * @param dtoClass DTO类
7
+ * @param context 转换上下文
8
+ */
4
9
  toDto<DtoType>(dtoClass: Constructor<DtoType>, context?: any): Promise<DtoType[]>;
5
10
  }
6
11
  }
7
12
  declare module 'typeorm' {
8
13
  interface SelectQueryBuilder<Entity> {
14
+ /**
15
+ * 执行分页查询并转换为DTO页面
16
+ * @param pageOptionsDto 分页选项
17
+ * @param dtoClass DTO类
18
+ * @param context 转换上下文
19
+ */
9
20
  toDtoPage<DtoType>(pageOptionsDto: any, dtoClass: Constructor<DtoType>, context?: any): Promise<any>;
10
21
  }
11
22
  }
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.transformEntityToDto = transformEntityToDto;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const dto_transformer_1 = require("./dto-transformer");
15
+ // 实现Array.toDto方法
15
16
  Array.prototype.toDto = function (dtoClass, context) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  if (!this || this.length === 0) {
@@ -20,6 +21,7 @@ Array.prototype.toDto = function (dtoClass, context) {
20
21
  return yield dto_transformer_1.DtoTransformer.transformArray(this, dtoClass, context);
21
22
  });
22
23
  };
24
+ // 避免直接修改Object原型,改为使用独立的函数
23
25
  function transformEntityToDto(entity, dtoClass, context) {
24
26
  return __awaiter(this, void 0, void 0, function* () {
25
27
  if (!entity) {
@@ -28,21 +30,28 @@ function transformEntityToDto(entity, dtoClass, context) {
28
30
  return yield dto_transformer_1.DtoTransformer.transform(entity, dtoClass, context);
29
31
  });
30
32
  }
33
+ // 实现QueryBuilder.toDtoPage方法
31
34
  typeorm_1.SelectQueryBuilder.prototype.toDtoPage = function (pageOptionsDto, dtoClass, context) {
32
35
  return __awaiter(this, void 0, void 0, function* () {
33
36
  const page = pageOptionsDto.page || 1;
34
37
  const pageSize = pageOptionsDto.pageSize || 10;
35
38
  const skip = (page - 1) * pageSize;
39
+ // 获取总数
36
40
  const total = yield this.getCount();
41
+ // 应用分页
37
42
  const entities = yield this.skip(skip).take(pageSize).getMany();
38
43
  const count = entities.length;
44
+ // 调试:输出原始实体数据
39
45
  if (count) {
40
46
  console.log('Raw entity sample:', JSON.stringify(entities[0], null, 2));
41
47
  }
48
+ // 转换为DTO
42
49
  const data = yield entities.toDto(dtoClass, context);
50
+ // 调试:输出转换后的DTO数据
43
51
  if (data.length > 0) {
44
52
  console.log('Converted DTO sample:', JSON.stringify(data[0], null, 2));
45
53
  }
54
+ // 计算分页信息
46
55
  const pageCount = Math.ceil(total / pageSize);
47
56
  const hasPreviousPage = page > 1;
48
57
  const hasNextPage = page < pageCount;
@@ -1,7 +1,24 @@
1
1
  import { Constructor } from '../types';
2
+ /**
3
+ * DTO服务访问器 - 使用全局容器获取服务
4
+ * 类似class-validator的useContainer机制
5
+ */
2
6
  export declare class DtoServiceAccessor {
7
+ /**
8
+ * 获取服务实例
9
+ */
3
10
  static getService<T = any>(serviceToken: string | symbol | Constructor<any>): Promise<T | null>;
11
+ /**
12
+ * 批量获取服务
13
+ */
4
14
  static getServices<T = any>(serviceTokens: Array<string | symbol | Constructor<any>>): Promise<Record<string, T>>;
15
+ /**
16
+ * 为特定DTO类获取所需服务
17
+ * 基于预定义的服务依赖列表
18
+ */
5
19
  static getServicesForDto(dtoClass: Constructor<any>): Promise<Record<string, any>>;
20
+ /**
21
+ * 检查是否已初始化
22
+ */
6
23
  static isInitialized(): boolean;
7
24
  }
@@ -11,12 +11,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DtoServiceAccessor = void 0;
13
13
  const dto_container_1 = require("./dto-container");
14
+ /**
15
+ * DTO服务访问器 - 使用全局容器获取服务
16
+ * 类似class-validator的useContainer机制
17
+ */
14
18
  class DtoServiceAccessor {
19
+ /**
20
+ * 获取服务实例
21
+ */
15
22
  static getService(serviceToken) {
16
23
  return __awaiter(this, void 0, void 0, function* () {
17
24
  return yield dto_container_1.DtoContainer.get(serviceToken);
18
25
  });
19
26
  }
27
+ /**
28
+ * 批量获取服务
29
+ */
20
30
  static getServices(serviceTokens) {
21
31
  return __awaiter(this, void 0, void 0, function* () {
22
32
  const services = {};
@@ -33,8 +43,13 @@ class DtoServiceAccessor {
33
43
  return services;
34
44
  });
35
45
  }
46
+ /**
47
+ * 为特定DTO类获取所需服务
48
+ * 基于预定义的服务依赖列表
49
+ */
36
50
  static getServicesForDto(dtoClass) {
37
51
  return __awaiter(this, void 0, void 0, function* () {
52
+ // 从元数据获取服务依赖
38
53
  const serviceTokens = Reflect.getMetadata('dto:required-services', dtoClass) || [];
39
54
  if (serviceTokens.length === 0) {
40
55
  return {};
@@ -42,6 +57,9 @@ class DtoServiceAccessor {
42
57
  return yield DtoServiceAccessor.getServices(serviceTokens);
43
58
  });
44
59
  }
60
+ /**
61
+ * 检查是否已初始化
62
+ */
45
63
  static isInitialized() {
46
64
  return dto_container_1.DtoContainer.isInitialized();
47
65
  }
@@ -1,11 +1,23 @@
1
1
  import { Constructor } from '../types';
2
+ /**
3
+ * DTO转换上下文
4
+ */
2
5
  export interface DtoTransformContext {
3
6
  user?: any;
4
7
  request?: any;
5
8
  services?: Record<string, any>;
6
9
  [key: string]: any;
7
10
  }
11
+ /**
12
+ * 简化的DTO转换器 - 利用class-transformer和自动服务注入
13
+ */
8
14
  export declare class DtoTransformer {
15
+ /**
16
+ * 转换单个实体到DTO
17
+ */
9
18
  static transform<EntityType, DtoType>(entity: EntityType, dtoClass: Constructor<DtoType>, context?: DtoTransformContext): Promise<DtoType>;
19
+ /**
20
+ * 批量转换实体数组到DTO数组
21
+ */
10
22
  static transformArray<EntityType, DtoType>(entities: EntityType[], dtoClass: Constructor<DtoType>, context?: DtoTransformContext): Promise<DtoType[]>;
11
23
  }
@@ -12,7 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DtoTransformer = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const dto_service_accessor_1 = require("./dto-service-accessor");
15
+ /**
16
+ * 简化的DTO转换器 - 利用class-transformer和自动服务注入
17
+ */
15
18
  class DtoTransformer {
19
+ /**
20
+ * 转换单个实体到DTO
21
+ */
16
22
  static transform(entity, dtoClass, context) {
17
23
  return __awaiter(this, void 0, void 0, function* () {
18
24
  const services = yield dto_service_accessor_1.DtoServiceAccessor.getServicesForDto(dtoClass);
@@ -27,6 +33,9 @@ class DtoTransformer {
27
33
  return (0, class_transformer_1.plainToInstance)(dtoClass, entity, options);
28
34
  });
29
35
  }
36
+ /**
37
+ * 批量转换实体数组到DTO数组
38
+ */
30
39
  static transformArray(entities, dtoClass, context) {
31
40
  return __awaiter(this, void 0, void 0, function* () {
32
41
  if (!entities || entities.length === 0) {
@@ -20,9 +20,11 @@ __exportStar(require("./create-translation.dto"), exports);
20
20
  __exportStar(require("./page.dto"), exports);
21
21
  __exportStar(require("./page-meta.dto"), exports);
22
22
  __exportStar(require("./page-options.dto"), exports);
23
+ // 导出新的DTO转换功能
23
24
  __exportStar(require("./dto-service-accessor"), exports);
24
25
  __exportStar(require("./dto-decorators"), exports);
25
26
  __exportStar(require("./dto-transformer"), exports);
26
27
  __exportStar(require("./dto-extensions"), exports);
27
28
  __exportStar(require("./dto-container"), exports);
29
+ // 需要导入扩展文件以激活原型方法扩展
28
30
  require("./dto-extensions");
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Example usage of the paginateAndMap method with async transform
3
+ *
4
+ * This file demonstrates various ways to use the enhanced paginateAndMap method
5
+ * with support for both synchronous and asynchronous transform functions.
6
+ */
1
7
  import { Repository } from 'typeorm';
2
8
  import { PageOptionsDto } from '../dto/page-options.dto';
3
9
  export declare function basicPaginationExample(repository: Repository<any>, pageOptions: PageOptionsDto): Promise<import("..").PageDto<import("..").AbstractDto>>;
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * Example usage of the paginateAndMap method with async transform
4
+ *
5
+ * This file demonstrates various ways to use the enhanced paginateAndMap method
6
+ * with support for both synchronous and asynchronous transform functions.
7
+ */
2
8
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
9
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
10
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -24,6 +30,7 @@ exports.complexAsyncTransformExample = complexAsyncTransformExample;
24
30
  exports.iterateExample = iterateExample;
25
31
  exports.eachBatchSingleExample = eachBatchSingleExample;
26
32
  exports.eachBatchGroupExample = eachBatchGroupExample;
33
+ // Example 1: Basic usage without transform
27
34
  function basicPaginationExample(repository, pageOptions) {
28
35
  return __awaiter(this, void 0, void 0, function* () {
29
36
  const result = yield repository
@@ -32,6 +39,7 @@ function basicPaginationExample(repository, pageOptions) {
32
39
  return result;
33
40
  });
34
41
  }
42
+ // Example 2: Synchronous transform
35
43
  function syncTransformExample(repository, pageOptions) {
36
44
  return __awaiter(this, void 0, void 0, function* () {
37
45
  const result = yield repository
@@ -39,12 +47,14 @@ function syncTransformExample(repository, pageOptions) {
39
47
  .where('entity.isActive = :isActive', { isActive: true })
40
48
  .paginateAndMap(pageOptions, {
41
49
  transform: (items) => {
50
+ // Filter items synchronously
42
51
  return items.filter(item => item.status === 'approved');
43
52
  },
44
53
  });
45
54
  return result;
46
55
  });
47
56
  }
57
+ // Example 3: Async transform with external service call
48
58
  function asyncTransformExample(repository, pageOptions, externalService) {
49
59
  return __awaiter(this, void 0, void 0, function* () {
50
60
  const result = yield repository
@@ -52,16 +62,19 @@ function asyncTransformExample(repository, pageOptions, externalService) {
52
62
  .where('entity.isActive = :isActive', { isActive: true })
53
63
  .paginateAndMap(pageOptions, {
54
64
  transform: (items) => __awaiter(this, void 0, void 0, function* () {
65
+ // Enrich each item with data from external service
55
66
  const enrichedItems = yield Promise.all(items.map((item) => __awaiter(this, void 0, void 0, function* () {
56
67
  const additionalData = yield externalService.fetchData(item.id);
57
68
  return Object.assign(Object.assign({}, item), { additionalData });
58
69
  })));
70
+ // Filter after enrichment
59
71
  return enrichedItems.filter(item => { var _a; return (_a = item.additionalData) === null || _a === void 0 ? void 0 : _a.isValid; });
60
72
  }),
61
73
  });
62
74
  return result;
63
75
  });
64
76
  }
77
+ // Example 4: Async transform with batch processing
65
78
  function asyncBatchTransformExample(repository, pageOptions, batchProcessor) {
66
79
  return __awaiter(this, void 0, void 0, function* () {
67
80
  const result = yield repository
@@ -70,13 +83,16 @@ function asyncBatchTransformExample(repository, pageOptions, batchProcessor) {
70
83
  .paginateAndMap(pageOptions, {
71
84
  dtoOptions: { includeRelations: true },
72
85
  transform: (items) => __awaiter(this, void 0, void 0, function* () {
86
+ // Process items in batches for better performance
73
87
  const processedItems = yield batchProcessor.processBatch(items);
88
+ // Additional filtering or transformation
74
89
  return processedItems.map(item => (Object.assign(Object.assign({}, item), { processed: true, processedAt: new Date() })));
75
90
  }),
76
91
  });
77
92
  return result;
78
93
  });
79
94
  }
95
+ // Example 5: Complex async transform with error handling
80
96
  function complexAsyncTransformExample(repository, pageOptions, services) {
81
97
  return __awaiter(this, void 0, void 0, function* () {
82
98
  const result = yield repository
@@ -85,6 +101,7 @@ function complexAsyncTransformExample(repository, pageOptions, services) {
85
101
  .paginateAndMap(pageOptions, {
86
102
  skipCount: false,
87
103
  transform: (items) => __awaiter(this, void 0, void 0, function* () {
104
+ // Step 1: Validate items
88
105
  const validatedItems = yield Promise.all(items.map((item) => __awaiter(this, void 0, void 0, function* () {
89
106
  try {
90
107
  const isValid = yield services.validation.validate(item);
@@ -95,11 +112,14 @@ function complexAsyncTransformExample(repository, pageOptions, services) {
95
112
  return null;
96
113
  }
97
114
  })));
115
+ // Filter out invalid items
98
116
  const validItems = validatedItems.filter(item => item !== null);
117
+ // Step 2: Enrich with external data
99
118
  const enrichedItems = yield Promise.all(validItems.map((item) => __awaiter(this, void 0, void 0, function* () {
100
119
  const enrichmentData = yield services.enrichment.enrich(item.id);
101
120
  return Object.assign(Object.assign({}, item), enrichmentData);
102
121
  })));
122
+ // Step 3: Calculate derived fields
103
123
  const finalItems = yield Promise.all(enrichedItems.map((item) => __awaiter(this, void 0, void 0, function* () {
104
124
  const calculatedFields = yield services.calculation.calculate(item);
105
125
  return Object.assign(Object.assign({}, item), calculatedFields);
@@ -110,6 +130,7 @@ function complexAsyncTransformExample(repository, pageOptions, services) {
110
130
  return result;
111
131
  });
112
132
  }
133
+ // Example 6: Using iterate for large datasets
113
134
  function iterateExample(repository, processor) {
114
135
  return __awaiter(this, void 0, void 0, function* () {
115
136
  var _a, e_1, _b, _c;
@@ -117,6 +138,7 @@ function iterateExample(repository, processor) {
117
138
  .createQueryBuilder('entity')
118
139
  .where('entity.needsProcessing = :needsProcessing', { needsProcessing: true });
119
140
  try {
141
+ // Process large dataset in batches without loading everything into memory
120
142
  for (var _d = true, _e = __asyncValues(queryBuilder.iterate({ batchSize: 500 })), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = true) {
121
143
  _c = _f.value;
122
144
  _d = false;
@@ -134,23 +156,27 @@ function iterateExample(repository, processor) {
134
156
  }
135
157
  });
136
158
  }
159
+ // Example 7: Using eachBatch with individual processing
137
160
  function eachBatchSingleExample(repository, processor) {
138
161
  return __awaiter(this, void 0, void 0, function* () {
139
162
  yield repository
140
163
  .createQueryBuilder('entity')
141
164
  .where('entity.status = :status', { status: 'pending' })
142
165
  .eachBatch((entity) => __awaiter(this, void 0, void 0, function* () {
166
+ // Process each entity individually
143
167
  console.log(`Processing entity ${entity.id}`);
144
168
  yield processor.processOne(entity);
145
169
  }), { batchSize: 100, mode: 'single' });
146
170
  });
147
171
  }
172
+ // Example 8: Using eachBatch with batch processing
148
173
  function eachBatchGroupExample(repository, processor) {
149
174
  return __awaiter(this, void 0, void 0, function* () {
150
175
  yield repository
151
176
  .createQueryBuilder('entity')
152
177
  .where('entity.status = :status', { status: 'pending' })
153
178
  .eachBatch((batch) => __awaiter(this, void 0, void 0, function* () {
179
+ // Process entire batch at once
154
180
  console.log(`Processing batch of ${batch.length} entities`);
155
181
  yield processor.processBatch(batch);
156
182
  }), { batchSize: 500, mode: 'batch' });
package/common/utils.d.ts CHANGED
@@ -1,4 +1,19 @@
1
+ /**
2
+ * generate hash from password or string
3
+ * @param {string} password
4
+ * @returns {string}
5
+ */
1
6
  export declare function generateHash(password: string): string;
7
+ /**
8
+ * validate text with hash
9
+ * @param {string} password
10
+ * @param {string} hash
11
+ * @returns {Promise<boolean>}
12
+ */
2
13
  export declare function validateHash(password: string | undefined, hash: string | undefined): Promise<boolean>;
3
14
  export declare function getVariableName<TResult>(getVar: () => TResult): string;
15
+ /**
16
+ * Generate a unique request ID
17
+ * @returns {string}
18
+ */
4
19
  export declare function generateRequestId(): string;
package/common/utils.js CHANGED
@@ -5,9 +5,20 @@ exports.validateHash = validateHash;
5
5
  exports.getVariableName = getVariableName;
6
6
  exports.generateRequestId = generateRequestId;
7
7
  const bcrypt_1 = require("bcrypt");
8
+ /**
9
+ * generate hash from password or string
10
+ * @param {string} password
11
+ * @returns {string}
12
+ */
8
13
  function generateHash(password) {
9
14
  return bcrypt_1.default.hashSync(password, 10);
10
15
  }
16
+ /**
17
+ * validate text with hash
18
+ * @param {string} password
19
+ * @param {string} hash
20
+ * @returns {Promise<boolean>}
21
+ */
11
22
  function validateHash(password, hash) {
12
23
  if (!password || !hash) {
13
24
  return Promise.resolve(false);
@@ -23,6 +34,10 @@ function getVariableName(getVar) {
23
34
  const memberParts = fullMemberName.split('.');
24
35
  return memberParts[memberParts.length - 1];
25
36
  }
37
+ /**
38
+ * Generate a unique request ID
39
+ * @returns {string}
40
+ */
26
41
  function generateRequestId() {
27
42
  return Math.random().toString(36).substring(2, 15) +
28
43
  Math.random().toString(36).substring(2, 15) +
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.supportedLanguageCount = exports.LanguageCode = void 0;
4
+ /* eslint-disable @typescript-eslint/naming-convention */
4
5
  var LanguageCode;
5
6
  (function (LanguageCode) {
6
7
  LanguageCode["en_US"] = "en-US";
@@ -69,7 +69,7 @@ export declare function FQDNFieldOptional(options?: Omit<ApiPropertyOptions, 'ty
69
69
  export declare function DateField(options?: Omit<ApiPropertyOptions, 'type'> & IDateFieldOptions): PropertyDecorator;
70
70
  export declare function DateFieldOptional(options?: Omit<ApiPropertyOptions, 'type' | 'required'> & IDateFieldOptions): PropertyDecorator;
71
71
  export declare function IpFieldOptional(options?: Omit<ApiPropertyOptions, 'type'> & IIPFieldOptions & IStringFieldOptions): PropertyDecorator;
72
- export declare function IpField(options: Omit<ApiPropertyOptions, 'type'> & IStringFieldOptions & IIPFieldOptions): PropertyDecorator;
72
+ export declare function IpField(options?: Omit<ApiPropertyOptions, 'type'> & IStringFieldOptions & IIPFieldOptions): PropertyDecorator;
73
73
  export declare function ObjectField(options?: Omit<ApiPropertyOptions, 'type'> & IFieldOptions): PropertyDecorator;
74
74
  export declare function ObjectFieldOptional(options?: Omit<ApiPropertyOptions, 'type'> & IFieldOptions): PropertyDecorator;
75
75
  export declare function TimeZoneField(options?: Omit<ApiPropertyOptions, 'type'> & IStringFieldOptions): PropertyDecorator;
@@ -145,7 +145,7 @@ function StringFieldOptional(options = {}) {
145
145
  }
146
146
  function PasswordField(options = {}) {
147
147
  const decorators = [
148
- StringField(Object.assign(Object.assign({}, options), { minLength: 6 })),
148
+ StringField(Object.assign(Object.assign({}, options), { minLength: 6 })) /*IsPassword()*/,
149
149
  ];
150
150
  if (options.nullable) {
151
151
  decorators.push((0, validator_decorators_1.IsNullable)());
@@ -223,7 +223,9 @@ function getEnumDescription(enumType) {
223
223
  const keys = Object.keys(enumType).filter((k) => typeof enumType[k] === 'number');
224
224
  return keys.map((k) => `${enumType[k]}: ${k}`).join(', ');
225
225
  }
226
+ // eslint-disable-next-line @typescript-eslint/ban-types
226
227
  function EnumField(getEnum, options = {}) {
228
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any,@typescript-eslint/ban-types
227
229
  const enumValue = getEnum();
228
230
  const decorators = [
229
231
  (0, class_validator_1.IsEnum)(enumValue, {
@@ -245,7 +247,9 @@ function EnumField(getEnum, options = {}) {
245
247
  }
246
248
  return (0, common_1.applyDecorators)(...decorators);
247
249
  }
250
+ // eslint-disable-next-line @typescript-eslint/ban-types
248
251
  function ClassField(getClass, options = {}) {
252
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
249
253
  const classValue = getClass();
250
254
  if (!classValue) {
251
255
  throw new Error('ClassField: recursive class definition');
@@ -271,9 +275,11 @@ function ClassField(getClass, options = {}) {
271
275
  }
272
276
  return (0, common_1.applyDecorators)(...decorators);
273
277
  }
278
+ // eslint-disable-next-line @typescript-eslint/ban-types
274
279
  function EnumFieldOptional(getEnum, options = {}) {
275
280
  return (0, common_1.applyDecorators)((0, validator_decorators_1.IsEmptyable)(), EnumField(getEnum, Object.assign({ required: false }, options)));
276
281
  }
282
+ // eslint-disable-next-line @typescript-eslint/ban-types
277
283
  function ClassFieldOptional(getClass, options = {}) {
278
284
  return (0, common_1.applyDecorators)((0, validator_decorators_1.IsEmptyable)(), ClassField(getClass, Object.assign({ required: false }, options)));
279
285
  }
@@ -407,6 +413,7 @@ function DateField(options = {}) {
407
413
  }));
408
414
  }
409
415
  if (options.swagger !== false) {
416
+ // Add default example with current date
410
417
  const swaggerOptions = Object.assign({ type: Date, example: (_a = options.example) !== null && _a !== void 0 ? _a : new Date() }, options);
411
418
  decorators.push((0, swagger_1.ApiProperty)(swaggerOptions));
412
419
  }
@@ -22,6 +22,7 @@ function ApiUUIDPropertyOptional(options = {}) {
22
22
  return ApiUUIDProperty(Object.assign({ required: false }, options));
23
23
  }
24
24
  function ApiEnumProperty(getEnum, options = {}) {
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
26
  const enumValue = getEnum();
26
27
  options.description = (0, field_decorators_1.getEnumDescription)(enumValue);
27
28
  return (0, swagger_1.ApiProperty)(Object.assign({ enum: enumValue, enumName: (0, utils_1.getVariableName)(getEnum) }, options));
@@ -3,5 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PublicRoute = exports.PUBLIC_ROUTE_KEY = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  exports.PUBLIC_ROUTE_KEY = 'public_route';
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
6
7
  const PublicRoute = (isPublic = false) => (0, common_1.SetMetadata)(exports.PUBLIC_ROUTE_KEY, isPublic);
7
8
  exports.PublicRoute = PublicRoute;
@@ -1,6 +1,33 @@
1
+ /**
2
+ * @description trim spaces from start and end, replace multiple spaces with one.
3
+ * @example
4
+ * @ApiProperty()
5
+ * @IsString()
6
+ * @Trim()
7
+ * name: string;
8
+ * @returns PropertyDecorator
9
+ * @constructor
10
+ */
1
11
  export declare function Trim(): PropertyDecorator;
2
12
  export declare function ToBoolean(): PropertyDecorator;
13
+ /**
14
+ * @description convert string or number to integer
15
+ * @example
16
+ * @IsNumber()
17
+ * @ToInt()
18
+ * name: number;
19
+ * @returns PropertyDecorator
20
+ * @constructor
21
+ */
3
22
  export declare function ToInt(): PropertyDecorator;
23
+ /**
24
+ * @description transforms to array, specially for query params
25
+ * @example
26
+ * @IsNumber()
27
+ * @ToArray()
28
+ * name: number;
29
+ * @constructor
30
+ */
4
31
  export declare function ToArray(): PropertyDecorator;
5
32
  export declare function ToLowerCase(): PropertyDecorator;
6
33
  export declare function ToUpperCase(): PropertyDecorator;
@@ -12,12 +12,24 @@ const class_transformer_1 = require("class-transformer");
12
12
  const libphonenumber_js_1 = require("libphonenumber-js");
13
13
  const lodash_1 = require("lodash");
14
14
  const providers_1 = require("../providers");
15
+ /**
16
+ * @description trim spaces from start and end, replace multiple spaces with one.
17
+ * @example
18
+ * @ApiProperty()
19
+ * @IsString()
20
+ * @Trim()
21
+ * name: string;
22
+ * @returns PropertyDecorator
23
+ * @constructor
24
+ */
15
25
  function Trim() {
16
26
  return (0, class_transformer_1.Transform)((params) => {
17
27
  const value = params.value;
18
28
  if ((0, lodash_1.isArray)(value)) {
29
+ // @ts-ignore
19
30
  return (0, lodash_1.map)(value, (v) => (0, lodash_1.trim)(v).replaceAll(/\s\s+/g, ' '));
20
31
  }
32
+ // @ts-ignore
21
33
  return (0, lodash_1.trim)(value).replaceAll(/\s\s+/g, ' ');
22
34
  });
23
35
  }
@@ -36,12 +48,29 @@ function ToBoolean() {
36
48
  }
37
49
  }, { toClassOnly: true });
38
50
  }
51
+ /**
52
+ * @description convert string or number to integer
53
+ * @example
54
+ * @IsNumber()
55
+ * @ToInt()
56
+ * name: number;
57
+ * @returns PropertyDecorator
58
+ * @constructor
59
+ */
39
60
  function ToInt() {
40
61
  return (0, class_transformer_1.Transform)((params) => {
41
62
  const value = params.value;
42
63
  return Number.parseInt(value, 10);
43
64
  }, { toClassOnly: true });
44
65
  }
66
+ /**
67
+ * @description transforms to array, specially for query params
68
+ * @example
69
+ * @IsNumber()
70
+ * @ToArray()
71
+ * name: number;
72
+ * @constructor
73
+ */
45
74
  function ToArray() {
46
75
  return (0, class_transformer_1.Transform)((params) => {
47
76
  const value = params.value;