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

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 +175 -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
@@ -0,0 +1,57 @@
1
+ import { HttpException, HttpStatus } from '@nestjs/common';
2
+ /**
3
+ * 文件上传基础异常类
4
+ */
5
+ export declare class FileUploadException extends HttpException {
6
+ readonly code: string;
7
+ readonly details?: any;
8
+ constructor(message: string, code: string, details?: any, status?: HttpStatus);
9
+ }
10
+ /**
11
+ * 文件大小超限异常
12
+ */
13
+ export declare class FileSizeExceededException extends FileUploadException {
14
+ constructor(actualSize: number, maxSize: number);
15
+ }
16
+ /**
17
+ * 文件类型不允许异常
18
+ */
19
+ export declare class FileTypeNotAllowedException extends FileUploadException {
20
+ constructor(mimeType: string, allowedTypes: string[]);
21
+ }
22
+ /**
23
+ * 文件扩展名不允许异常
24
+ */
25
+ export declare class FileExtensionNotAllowedException extends FileUploadException {
26
+ constructor(extension: string, allowedExtensions: string[]);
27
+ }
28
+ /**
29
+ * 文件签名不匹配异常
30
+ */
31
+ export declare class FileSignatureMismatchException extends FileUploadException {
32
+ constructor(error: string, reportedMime: string, detectedMime?: string);
33
+ }
34
+ /**
35
+ * 文件损坏异常
36
+ */
37
+ export declare class CorruptedFileException extends FileUploadException {
38
+ constructor(mimeType: string, errors: string[]);
39
+ }
40
+ /**
41
+ * 恶意文件异常
42
+ */
43
+ export declare class MaliciousFileException extends FileUploadException {
44
+ constructor(threats: string[]);
45
+ }
46
+ /**
47
+ * 存储异常
48
+ */
49
+ export declare class StorageException extends FileUploadException {
50
+ constructor(operation: string, error: Error);
51
+ }
52
+ /**
53
+ * 无效文件名异常
54
+ */
55
+ export declare class InvalidFilenameException extends FileUploadException {
56
+ constructor(filename: string);
57
+ }
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidFilenameException = exports.StorageException = exports.MaliciousFileException = exports.CorruptedFileException = exports.FileSignatureMismatchException = exports.FileExtensionNotAllowedException = exports.FileTypeNotAllowedException = exports.FileSizeExceededException = exports.FileUploadException = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ /**
6
+ * 文件上传基础异常类
7
+ */
8
+ class FileUploadException extends common_1.HttpException {
9
+ constructor(message, code, details, status = common_1.HttpStatus.BAD_REQUEST) {
10
+ super({
11
+ message,
12
+ code,
13
+ details,
14
+ timestamp: new Date().toISOString(),
15
+ }, status);
16
+ this.code = code;
17
+ this.details = details;
18
+ }
19
+ }
20
+ exports.FileUploadException = FileUploadException;
21
+ /**
22
+ * 文件大小超限异常
23
+ */
24
+ class FileSizeExceededException extends FileUploadException {
25
+ constructor(actualSize, maxSize) {
26
+ const actualSizeMB = Math.round((actualSize / 1024 / 1024) * 100) / 100;
27
+ const maxSizeMB = Math.round((maxSize / 1024 / 1024) * 100) / 100;
28
+ super(`File size ${actualSizeMB}MB exceeds maximum allowed size ${maxSizeMB}MB`, 'FILE_SIZE_EXCEEDED', {
29
+ actualSize,
30
+ maxSize,
31
+ actualSizeMB,
32
+ maxSizeMB,
33
+ });
34
+ }
35
+ }
36
+ exports.FileSizeExceededException = FileSizeExceededException;
37
+ /**
38
+ * 文件类型不允许异常
39
+ */
40
+ class FileTypeNotAllowedException extends FileUploadException {
41
+ constructor(mimeType, allowedTypes) {
42
+ super(`File type '${mimeType}' is not allowed`, 'FILE_TYPE_NOT_ALLOWED', {
43
+ mimeType,
44
+ allowedTypes,
45
+ });
46
+ }
47
+ }
48
+ exports.FileTypeNotAllowedException = FileTypeNotAllowedException;
49
+ /**
50
+ * 文件扩展名不允许异常
51
+ */
52
+ class FileExtensionNotAllowedException extends FileUploadException {
53
+ constructor(extension, allowedExtensions) {
54
+ super(`File extension '${extension}' is not allowed`, 'FILE_EXTENSION_NOT_ALLOWED', {
55
+ extension,
56
+ allowedExtensions,
57
+ });
58
+ }
59
+ }
60
+ exports.FileExtensionNotAllowedException = FileExtensionNotAllowedException;
61
+ /**
62
+ * 文件签名不匹配异常
63
+ */
64
+ class FileSignatureMismatchException extends FileUploadException {
65
+ constructor(error, reportedMime, detectedMime) {
66
+ super(`File signature verification failed: ${error}`, 'FILE_SIGNATURE_MISMATCH', {
67
+ error,
68
+ reportedMime,
69
+ detectedMime,
70
+ }, common_1.HttpStatus.UNPROCESSABLE_ENTITY);
71
+ }
72
+ }
73
+ exports.FileSignatureMismatchException = FileSignatureMismatchException;
74
+ /**
75
+ * 文件损坏异常
76
+ */
77
+ class CorruptedFileException extends FileUploadException {
78
+ constructor(mimeType, errors) {
79
+ super('File appears to be corrupted or invalid', 'CORRUPTED_FILE', {
80
+ mimeType,
81
+ errors,
82
+ }, common_1.HttpStatus.UNPROCESSABLE_ENTITY);
83
+ }
84
+ }
85
+ exports.CorruptedFileException = CorruptedFileException;
86
+ /**
87
+ * 恶意文件异常
88
+ */
89
+ class MaliciousFileException extends FileUploadException {
90
+ constructor(threats) {
91
+ super('Potentially malicious file detected', 'MALICIOUS_FILE', {
92
+ threats,
93
+ }, common_1.HttpStatus.FORBIDDEN);
94
+ }
95
+ }
96
+ exports.MaliciousFileException = MaliciousFileException;
97
+ /**
98
+ * 存储异常
99
+ */
100
+ class StorageException extends FileUploadException {
101
+ constructor(operation, error) {
102
+ super(`Storage operation failed: ${operation}`, 'STORAGE_ERROR', Object.assign({ operation, error: error.message }, (process.env.NODE_ENV !== 'prod' &&
103
+ process.env.NODE_ENV !== 'prod' && {
104
+ stack: error.stack,
105
+ name: error.name,
106
+ })), common_1.HttpStatus.INTERNAL_SERVER_ERROR);
107
+ }
108
+ }
109
+ exports.StorageException = StorageException;
110
+ /**
111
+ * 无效文件名异常
112
+ */
113
+ class InvalidFilenameException extends FileUploadException {
114
+ constructor(filename) {
115
+ super('Invalid or dangerous filename', 'INVALID_FILENAME', {
116
+ filename,
117
+ });
118
+ }
119
+ }
120
+ exports.InvalidFilenameException = InvalidFilenameException;
@@ -0,0 +1 @@
1
+ export * from './file-upload.exception';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./file-upload.exception"), exports);
@@ -0,0 +1,89 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { IFileProcessor } from './interfaces/file-processor.interface';
3
+ import { LocalStorageOptions, S3StorageOptions } from './interfaces/storage-provider.interface';
4
+ import { CustomFileTypes } from './interfaces/custom-file-type.interface';
5
+ import { MaliciousDetectorOptions } from './services/malicious-file-detector.service';
6
+ /**
7
+ * 文件上传模块配置选项(增强版)
8
+ */
9
+ export interface FileUploadModuleOptions {
10
+ /** 默认配置 */
11
+ defaults?: {
12
+ maxSize?: number;
13
+ types?: string[];
14
+ scan?: boolean | 'auto';
15
+ };
16
+ /** 安全配置 */
17
+ security?: {
18
+ /** 病毒扫描配置 */
19
+ virusScan?: {
20
+ enabled: boolean;
21
+ endpoint?: string;
22
+ };
23
+ /** 速率限制 */
24
+ rateLimit?: {
25
+ max: number;
26
+ window: number;
27
+ };
28
+ };
29
+ /** 存储配置 */
30
+ storage?: {
31
+ /** 默认存储提供者 */
32
+ default?: 'local' | 's3' | 'oss' | 'minio';
33
+ /** 本地存储配置 */
34
+ local?: LocalStorageOptions;
35
+ /** S3 存储配置 */
36
+ s3?: S3StorageOptions;
37
+ /** OSS 存储配置 (待实现) */
38
+ oss?: any;
39
+ /** MinIO 存储配置 (待实现) */
40
+ minio?: any;
41
+ };
42
+ /** 自定义文件类型 */
43
+ customFileTypes?: CustomFileTypes;
44
+ /** 是否启用文件签名验证(默认 true) */
45
+ validateSignature?: boolean;
46
+ /** 签名验证配置 */
47
+ signatureValidation?: {
48
+ maxReadBytes?: number;
49
+ strict?: boolean;
50
+ tolerance?: number;
51
+ };
52
+ /** 恶意文件检测配置(增强) */
53
+ maliciousDetection?: MaliciousDetectorOptions;
54
+ /** TypeORM 相关配置 */
55
+ database?: {
56
+ /** 是否自动创建表(默认 true) */
57
+ autoCreateTable?: boolean;
58
+ /** 数据库模式 */
59
+ schema?: string;
60
+ /** 表前缀 */
61
+ tablePrefix?: string;
62
+ };
63
+ /** 自定义处理器 */
64
+ processors?: Array<new (...args: any[]) => IFileProcessor>;
65
+ }
66
+ /**
67
+ * 异步配置选项
68
+ */
69
+ export interface FileUploadModuleAsyncOptions {
70
+ useFactory: (...args: any[]) => Promise<FileUploadModuleOptions> | FileUploadModuleOptions;
71
+ inject?: any[];
72
+ }
73
+ /**
74
+ * 文件上传模块(增强版)
75
+ */
76
+ export declare class FileUploadModule {
77
+ /**
78
+ * 同步配置模块
79
+ */
80
+ static forRoot(options?: FileUploadModuleOptions): DynamicModule;
81
+ /**
82
+ * 异步配置模块
83
+ */
84
+ static forRootAsync(asyncOptions: FileUploadModuleAsyncOptions): DynamicModule;
85
+ /**
86
+ * 创建存储提供者
87
+ */
88
+ private static createStorageProviders;
89
+ }
@@ -0,0 +1,292 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var FileUploadModule_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.FileUploadModule = void 0;
20
+ const common_1 = require("@nestjs/common");
21
+ const typeorm_1 = require("@nestjs/typeorm");
22
+ const file_upload_interceptor_1 = require("./interceptors/file-upload.interceptor");
23
+ const local_storage_provider_1 = require("./providers/local-storage.provider");
24
+ const mime_registry_service_1 = require("./services/mime-registry.service");
25
+ const file_signature_validator_service_1 = require("./services/file-signature-validator.service");
26
+ const malicious_file_detector_service_1 = require("./services/malicious-file-detector.service");
27
+ const file_service_1 = require("./services/file.service");
28
+ const file_entity_1 = require("./entities/file.entity");
29
+ const file_metadata_entity_1 = require("./entities/file-metadata.entity");
30
+ const file_access_controller_1 = require("./controllers/file-access.controller");
31
+ const csv_processor_1 = require("./processors/csv.processor");
32
+ const excel_processor_1 = require("./processors/excel.processor");
33
+ const image_processor_1 = require("./processors/image.processor");
34
+ /**
35
+ * 文件上传模块(增强版)
36
+ */
37
+ let FileUploadModule = FileUploadModule_1 = class FileUploadModule {
38
+ /**
39
+ * 同步配置模块
40
+ */
41
+ static forRoot(options = {}) {
42
+ var _a, _b, _c, _d, _e, _f;
43
+ const providers = [
44
+ // 核心服务
45
+ mime_registry_service_1.MimeRegistryService,
46
+ file_signature_validator_service_1.FileSignatureValidator,
47
+ // 恶意文件检测器(带配置)
48
+ {
49
+ provide: 'MALICIOUS_DETECTOR_OPTIONS',
50
+ useValue: options.maliciousDetection || {},
51
+ },
52
+ malicious_file_detector_service_1.MaliciousFileDetector,
53
+ // Interceptor
54
+ file_upload_interceptor_1.FileUploadInterceptor,
55
+ // 配置
56
+ {
57
+ provide: 'FILE_UPLOAD_OPTIONS',
58
+ useValue: options,
59
+ },
60
+ ];
61
+ // 注册自定义文件类型
62
+ if (options.customFileTypes) {
63
+ providers.push({
64
+ provide: 'CUSTOM_FILE_TYPES',
65
+ useValue: options.customFileTypes,
66
+ });
67
+ // 初始化自定义类型
68
+ providers.push({
69
+ provide: 'FILE_TYPE_INITIALIZER',
70
+ useFactory: (registry) => {
71
+ registry.registerCustomFileTypes(options.customFileTypes);
72
+ return registry;
73
+ },
74
+ inject: [mime_registry_service_1.MimeRegistryService],
75
+ });
76
+ }
77
+ // 注册处理器(内置处理器 + 自定义处理器)
78
+ const processorMap = new Map();
79
+ // 自动注册内置处理器
80
+ try {
81
+ const csvProcessor = new csv_processor_1.CsvProcessor();
82
+ const excelProcessor = new excel_processor_1.ExcelProcessor();
83
+ const imageProcessor = new image_processor_1.ImageProcessor();
84
+ processorMap.set(csvProcessor.name, csvProcessor);
85
+ processorMap.set(excelProcessor.name, excelProcessor);
86
+ processorMap.set(imageProcessor.name, imageProcessor);
87
+ }
88
+ catch (error) {
89
+ // 内置处理器加载失败,忽略(可能是依赖未安装)
90
+ }
91
+ // 添加用户自定义处理器
92
+ if (options.processors && options.processors.length > 0) {
93
+ for (const ProcessorClass of options.processors) {
94
+ const processor = new ProcessorClass();
95
+ processorMap.set(processor.name, processor);
96
+ }
97
+ }
98
+ // 始终提供 FILE_PROCESSORS(即使为空Map)
99
+ providers.push({
100
+ provide: 'FILE_PROCESSORS',
101
+ useValue: processorMap,
102
+ });
103
+ // 注册存储提供者
104
+ if (options.storage) {
105
+ const storageProviders = this.createStorageProviders(options.storage);
106
+ providers.push(...storageProviders);
107
+ }
108
+ // TypeORM 配置
109
+ const imports = [];
110
+ const databaseEnabled = ((_a = options.database) === null || _a === void 0 ? void 0 : _a.autoCreateTable) !== false;
111
+ if (databaseEnabled) {
112
+ imports.push(typeorm_1.TypeOrmModule.forFeature([file_entity_1.FileEntity, file_metadata_entity_1.FileMetadataEntity]));
113
+ providers.push(file_service_1.FileService);
114
+ }
115
+ // Build exports array - only export what's actually provided
116
+ const exports = [
117
+ mime_registry_service_1.MimeRegistryService,
118
+ file_signature_validator_service_1.FileSignatureValidator,
119
+ malicious_file_detector_service_1.MaliciousFileDetector,
120
+ file_upload_interceptor_1.FileUploadInterceptor,
121
+ 'FILE_UPLOAD_OPTIONS',
122
+ ];
123
+ if (databaseEnabled) {
124
+ exports.push(file_service_1.FileService);
125
+ }
126
+ // 始终导出 FILE_PROCESSORS
127
+ exports.push('FILE_PROCESSORS');
128
+ if (((_b = options.storage) === null || _b === void 0 ? void 0 : _b.local) ||
129
+ !((_c = options.storage) === null || _c === void 0 ? void 0 : _c.default) ||
130
+ ((_d = options.storage) === null || _d === void 0 ? void 0 : _d.default) === 'local') {
131
+ if ((_e = options.storage) === null || _e === void 0 ? void 0 : _e.local) {
132
+ exports.push('LOCAL_STORAGE_PROVIDER');
133
+ }
134
+ }
135
+ if ((_f = options.storage) === null || _f === void 0 ? void 0 : _f.s3) {
136
+ exports.push('S3_STORAGE_PROVIDER');
137
+ }
138
+ if (options.storage) {
139
+ exports.push('STORAGE_PROVIDER');
140
+ }
141
+ return {
142
+ module: FileUploadModule_1,
143
+ imports,
144
+ controllers: databaseEnabled ? [file_access_controller_1.FileAccessController] : [],
145
+ providers,
146
+ exports,
147
+ global: true,
148
+ };
149
+ }
150
+ /**
151
+ * 异步配置模块
152
+ */
153
+ static forRootAsync(asyncOptions) {
154
+ const providers = [
155
+ // 核心服务
156
+ mime_registry_service_1.MimeRegistryService,
157
+ file_signature_validator_service_1.FileSignatureValidator,
158
+ // 恶意文件检测器配置(异步)
159
+ {
160
+ provide: 'MALICIOUS_DETECTOR_OPTIONS',
161
+ useFactory: (...args) => __awaiter(this, void 0, void 0, function* () {
162
+ const options = yield asyncOptions.useFactory(...args);
163
+ return options.maliciousDetection || {};
164
+ }),
165
+ inject: asyncOptions.inject || [],
166
+ },
167
+ malicious_file_detector_service_1.MaliciousFileDetector,
168
+ // Interceptor
169
+ file_upload_interceptor_1.FileUploadInterceptor,
170
+ // 异步配置
171
+ {
172
+ provide: 'FILE_UPLOAD_OPTIONS',
173
+ useFactory: asyncOptions.useFactory,
174
+ inject: asyncOptions.inject || [],
175
+ },
176
+ // 异步处理器注册(内置 + 自定义)
177
+ {
178
+ provide: 'FILE_PROCESSORS',
179
+ useFactory: (...args) => __awaiter(this, void 0, void 0, function* () {
180
+ const options = yield asyncOptions.useFactory(...args);
181
+ const processorMap = new Map();
182
+ // 自动注册内置处理器
183
+ try {
184
+ const csvProcessor = new csv_processor_1.CsvProcessor();
185
+ const excelProcessor = new excel_processor_1.ExcelProcessor();
186
+ const imageProcessor = new image_processor_1.ImageProcessor();
187
+ processorMap.set(csvProcessor.name, csvProcessor);
188
+ processorMap.set(excelProcessor.name, excelProcessor);
189
+ processorMap.set(imageProcessor.name, imageProcessor);
190
+ }
191
+ catch (error) {
192
+ // 内置处理器加载失败,忽略
193
+ }
194
+ // 添加用户自定义处理器
195
+ if (options.processors && options.processors.length > 0) {
196
+ for (const ProcessorClass of options.processors) {
197
+ const processor = new ProcessorClass();
198
+ processorMap.set(processor.name, processor);
199
+ }
200
+ }
201
+ return processorMap;
202
+ }),
203
+ inject: asyncOptions.inject || [],
204
+ },
205
+ // 异步自定义文件类型初始化
206
+ {
207
+ provide: 'FILE_TYPE_INITIALIZER',
208
+ useFactory: (registry, ...args) => __awaiter(this, void 0, void 0, function* () {
209
+ const options = yield asyncOptions.useFactory(...args);
210
+ if (options.customFileTypes) {
211
+ registry.registerCustomFileTypes(options.customFileTypes);
212
+ }
213
+ return registry;
214
+ }),
215
+ inject: [mime_registry_service_1.MimeRegistryService, ...(asyncOptions.inject || [])],
216
+ },
217
+ ];
218
+ const imports = [
219
+ // 默认开启 TypeORM
220
+ typeorm_1.TypeOrmModule.forFeature([file_entity_1.FileEntity, file_metadata_entity_1.FileMetadataEntity]),
221
+ ];
222
+ providers.push(file_service_1.FileService);
223
+ // For async, we always provide FILE_PROCESSORS (with empty Map fallback)
224
+ // Storage providers need to be handled via the options factory
225
+ return {
226
+ module: FileUploadModule_1,
227
+ imports,
228
+ controllers: [file_access_controller_1.FileAccessController],
229
+ providers,
230
+ exports: [
231
+ mime_registry_service_1.MimeRegistryService,
232
+ file_signature_validator_service_1.FileSignatureValidator,
233
+ malicious_file_detector_service_1.MaliciousFileDetector,
234
+ file_upload_interceptor_1.FileUploadInterceptor,
235
+ file_service_1.FileService,
236
+ 'FILE_UPLOAD_OPTIONS',
237
+ 'FILE_PROCESSORS',
238
+ ],
239
+ global: true,
240
+ };
241
+ }
242
+ /**
243
+ * 创建存储提供者
244
+ */
245
+ static createStorageProviders(storageConfig) {
246
+ const providers = [];
247
+ // 本地存储
248
+ if (storageConfig.local) {
249
+ providers.push({
250
+ provide: 'LOCAL_STORAGE_PROVIDER',
251
+ useFactory: () => __awaiter(this, void 0, void 0, function* () {
252
+ const provider = new local_storage_provider_1.LocalStorageProvider(storageConfig.local);
253
+ yield provider.initialize();
254
+ return provider;
255
+ }),
256
+ });
257
+ // 如果是默认存储
258
+ if (storageConfig.default === 'local' || !storageConfig.default) {
259
+ providers.push({
260
+ provide: 'STORAGE_PROVIDER',
261
+ useExisting: 'LOCAL_STORAGE_PROVIDER',
262
+ });
263
+ }
264
+ }
265
+ // S3 存储
266
+ if (storageConfig.s3) {
267
+ providers.push({
268
+ provide: 'S3_STORAGE_PROVIDER',
269
+ useFactory: () => __awaiter(this, void 0, void 0, function* () {
270
+ // Lazy load S3StorageProvider to avoid bundling AWS SDK
271
+ const { S3StorageProvider } = yield Promise.resolve().then(() => require('./providers/s3-storage.provider'));
272
+ const provider = new S3StorageProvider(storageConfig.s3);
273
+ yield provider.initialize();
274
+ return provider;
275
+ }),
276
+ });
277
+ // 如果是默认存储
278
+ if (storageConfig.default === 's3') {
279
+ providers.push({
280
+ provide: 'STORAGE_PROVIDER',
281
+ useExisting: 'S3_STORAGE_PROVIDER',
282
+ });
283
+ }
284
+ }
285
+ // TODO: 添加 OSS, MinIO 存储提供者
286
+ return providers;
287
+ }
288
+ };
289
+ exports.FileUploadModule = FileUploadModule;
290
+ exports.FileUploadModule = FileUploadModule = FileUploadModule_1 = __decorate([
291
+ (0, common_1.Module)({})
292
+ ], FileUploadModule);
@@ -0,0 +1,37 @@
1
+ export * from './file-upload.module';
2
+ export * from './enums/file-type.enum';
3
+ export * from './interfaces/file-upload-options.interface';
4
+ export * from './interfaces/storage-provider.interface';
5
+ export * from './interfaces/file-buffer.interface';
6
+ export * from './interfaces/file-metadata.interface';
7
+ export * from './interfaces/upload-options.interface';
8
+ export * from './interfaces/custom-file-type.interface';
9
+ export * from './interfaces/file-processor.interface';
10
+ import { ProcessResult as _ProcessResult } from './interfaces/processor-options.interface';
11
+ import { ValidationResult as _ValidationResult } from './decorators/validate-data.decorator';
12
+ export { _ProcessResult as ProcessResult };
13
+ export * from './decorators/file-upload.decorator';
14
+ export { ExcelColumn, getExcelColumnMapping, parseAndValidateExcelData } from './decorators/excel-data.decorator';
15
+ export { CsvColumn, getCsvColumnMapping, parseAndValidateCsvData } from './decorators/csv-data.decorator';
16
+ export * from './decorators/csv-import.decorator';
17
+ export { BaseRowData, ValidationResult as ValidationResultType } from './decorators/validate-data.decorator';
18
+ export { _ValidationResult as ValidationResult };
19
+ export * from './decorators/validate-data.decorator';
20
+ export * from './decorators/process.decorator';
21
+ export * from './interceptors/file-upload.interceptor';
22
+ export * from './controllers/file-access.controller';
23
+ export * from './providers/local-storage.provider';
24
+ export * from './services/mime-registry.service';
25
+ export * from './services/file-signature-validator.service';
26
+ export * from './services/malicious-file-detector.service';
27
+ export * from './services/file.service';
28
+ export * from './processors/excel.processor';
29
+ export * from './processors/csv.processor';
30
+ export * from './processors/image.processor';
31
+ export * from './entities/file.entity';
32
+ export * from './entities/file-metadata.entity';
33
+ export * from './dto/create-file.dto';
34
+ export * from './dto/update-file.dto';
35
+ export * from './dto/find-files.dto';
36
+ export * from './dto/pagination.dto';
37
+ export * from './exceptions/file-upload.exception';