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

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 (441) hide show
  1. package/audit/audit.module.d.ts +11 -0
  2. package/audit/audit.module.js +65 -1
  3. package/audit/controllers/audit.controller.d.ts +81 -1
  4. package/audit/controllers/audit.controller.js +67 -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 +38 -0
  10. package/audit/decorators/audit-operation.decorator.js +42 -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-action-query.dto.d.ts +13 -0
  16. package/audit/dto/audit-action-query.dto.js +77 -0
  17. package/audit/dto/audit-log-query.dto.d.ts +3 -0
  18. package/audit/dto/audit-log-query.dto.js +3 -0
  19. package/audit/dto/begin-transaction.dto.d.ts +3 -0
  20. package/audit/dto/begin-transaction.dto.js +3 -0
  21. package/audit/dto/compare-entities.dto.d.ts +3 -0
  22. package/audit/dto/compare-entities.dto.js +3 -0
  23. package/audit/dto/index.d.ts +1 -0
  24. package/audit/dto/index.js +1 -0
  25. package/audit/dto/pre-check-restore.dto.d.ts +3 -0
  26. package/audit/dto/pre-check-restore.dto.js +3 -0
  27. package/audit/dto/restore-entity.dto.d.ts +3 -0
  28. package/audit/dto/restore-entity.dto.js +3 -0
  29. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  30. package/audit/entities/audit-action-summary.entity.js +101 -0
  31. package/audit/entities/entity-audit-log.entity.d.ts +10 -2
  32. package/audit/entities/entity-audit-log.entity.js +48 -9
  33. package/audit/entities/entity-transaction.entity.d.ts +11 -2
  34. package/audit/entities/entity-transaction.entity.js +42 -3
  35. package/audit/entities/index.d.ts +3 -0
  36. package/audit/entities/index.js +3 -0
  37. package/audit/entities/manual-operation-log.entity.d.ts +4 -2
  38. package/audit/entities/manual-operation-log.entity.js +12 -9
  39. package/audit/entities/operation-template.entity.d.ts +4 -0
  40. package/audit/entities/operation-template.entity.js +4 -0
  41. package/audit/enums/audit.enums.d.ts +29 -6
  42. package/audit/enums/audit.enums.js +31 -7
  43. package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
  44. package/audit/examples/decorator-value-mapping.example.js +414 -0
  45. package/audit/index.d.ts +5 -1
  46. package/audit/index.js +38 -1
  47. package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
  48. package/audit/interceptors/audit-action.interceptor.js +215 -0
  49. package/audit/interceptors/audit.interceptor.d.ts +16 -0
  50. package/audit/interceptors/audit.interceptor.js +41 -11
  51. package/audit/interceptors/index.d.ts +1 -0
  52. package/audit/interceptors/index.js +1 -0
  53. package/audit/interfaces/audit.interfaces.d.ts +174 -4
  54. package/audit/services/audit-action.service.d.ts +141 -0
  55. package/audit/services/audit-action.service.js +244 -0
  56. package/audit/services/audit-context.service.d.ts +106 -0
  57. package/audit/services/audit-context.service.js +185 -0
  58. package/audit/services/audit-strategy.service.d.ts +6 -0
  59. package/audit/services/audit-strategy.service.js +13 -0
  60. package/audit/services/entity-audit.service.d.ts +273 -5
  61. package/audit/services/entity-audit.service.js +840 -60
  62. package/audit/services/index.d.ts +3 -0
  63. package/audit/services/index.js +3 -0
  64. package/audit/services/manual-audit-log.service.d.ts +133 -9
  65. package/audit/services/manual-audit-log.service.js +157 -42
  66. package/audit/services/multi-database.service.d.ts +9 -2
  67. package/audit/services/multi-database.service.js +9 -21
  68. package/audit/services/operation-description.service.d.ts +71 -2
  69. package/audit/services/operation-description.service.js +231 -20
  70. package/audit/services/transaction-audit.service.d.ts +30 -0
  71. package/audit/services/transaction-audit.service.js +53 -5
  72. package/audit/subscribers/entity-audit.subscriber.d.ts +20 -0
  73. package/audit/subscribers/entity-audit.subscriber.js +98 -6
  74. package/cache/cache-metrics.service.d.ts +67 -0
  75. package/cache/cache-metrics.service.js +68 -4
  76. package/cache/cache-serialization.service.d.ts +31 -0
  77. package/cache/cache-serialization.service.js +25 -0
  78. package/cache/cache.constants.d.ts +9 -0
  79. package/cache/cache.constants.js +9 -0
  80. package/cache/cache.health.d.ts +26 -0
  81. package/cache/cache.health.js +30 -0
  82. package/cache/cache.module.d.ts +87 -2
  83. package/cache/cache.module.js +84 -11
  84. package/cache/cache.service.d.ts +143 -3
  85. package/cache/cache.service.js +173 -4
  86. package/cache/cache.warmup.service.d.ts +39 -0
  87. package/cache/cache.warmup.service.js +32 -0
  88. package/cache/decorators/cache-evict.decorator.d.ts +47 -0
  89. package/cache/decorators/cache-evict.decorator.js +56 -0
  90. package/cache/decorators/cache-put.decorator.d.ts +34 -0
  91. package/cache/decorators/cache-put.decorator.js +39 -0
  92. package/cache/decorators/cacheable.decorator.d.ts +40 -0
  93. package/cache/decorators/cacheable.decorator.js +55 -0
  94. package/cache/dependencies/callback.dependency.d.ts +33 -0
  95. package/cache/dependencies/callback.dependency.js +39 -1
  96. package/cache/dependencies/chain.dependency.d.ts +28 -0
  97. package/cache/dependencies/chain.dependency.js +34 -0
  98. package/cache/dependencies/db.dependency.d.ts +83 -7
  99. package/cache/dependencies/db.dependency.js +89 -14
  100. package/cache/dependencies/file.dependency.d.ts +32 -0
  101. package/cache/dependencies/file.dependency.js +34 -0
  102. package/cache/dependencies/tag.dependency.d.ts +75 -4
  103. package/cache/dependencies/tag.dependency.js +145 -11
  104. package/cache/dependencies/time.dependency.d.ts +43 -0
  105. package/cache/dependencies/time.dependency.js +43 -0
  106. package/cache/entities/index.d.ts +1 -0
  107. package/cache/entities/index.js +17 -0
  108. package/cache/entities/typeorm-cache.entity.d.ts +71 -0
  109. package/cache/entities/typeorm-cache.entity.js +110 -0
  110. package/cache/examples/basic-usage.d.ts +15 -0
  111. package/cache/examples/basic-usage.js +62 -8
  112. package/cache/index.d.ts +2 -1
  113. package/cache/index.js +28 -2
  114. package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
  115. package/cache/interfaces/cache-options.interface.d.ts +89 -0
  116. package/cache/interfaces/cache-options.interface.js +6 -0
  117. package/cache/interfaces/cache-provider.interface.d.ts +78 -0
  118. package/cache/providers/base-cache.provider.d.ts +14 -0
  119. package/cache/providers/base-cache.provider.js +16 -0
  120. package/cache/providers/cls-cache.provider.d.ts +20 -0
  121. package/cache/providers/cls-cache.provider.js +28 -0
  122. package/cache/providers/index.d.ts +2 -1
  123. package/cache/providers/index.js +2 -1
  124. package/cache/providers/lrucache.provider.d.ts +76 -0
  125. package/cache/providers/lrucache.provider.js +226 -0
  126. package/cache/providers/redis-cache.provider.d.ts +26 -0
  127. package/cache/providers/redis-cache.provider.js +29 -0
  128. package/cache/providers/typeorm-cache.provider.d.ts +211 -0
  129. package/cache/providers/typeorm-cache.provider.js +483 -0
  130. package/cache/utils/dependency-manager.util.d.ts +52 -0
  131. package/cache/utils/dependency-manager.util.js +59 -0
  132. package/cache/utils/key-generator.util.d.ts +42 -0
  133. package/cache/utils/key-generator.util.js +53 -1
  134. package/common/abstract.entity.d.ts +14 -0
  135. package/common/abstract.entity.js +14 -0
  136. package/common/boilerplate.polyfill.d.ts +143 -0
  137. package/common/boilerplate.polyfill.js +35 -1
  138. package/common/dto/dto-container.d.ts +16 -0
  139. package/common/dto/dto-container.js +20 -0
  140. package/common/dto/dto-decorators.d.ts +18 -0
  141. package/common/dto/dto-decorators.js +14 -0
  142. package/common/dto/dto-extensions.d.ts +11 -0
  143. package/common/dto/dto-extensions.js +9 -0
  144. package/common/dto/dto-service-accessor.d.ts +17 -0
  145. package/common/dto/dto-service-accessor.js +18 -0
  146. package/common/dto/dto-transformer.d.ts +12 -0
  147. package/common/dto/dto-transformer.js +9 -0
  148. package/common/dto/index.js +2 -0
  149. package/common/examples/paginate-and-map.example.d.ts +6 -0
  150. package/common/examples/paginate-and-map.example.js +26 -0
  151. package/common/helpers/validation-metadata-helper.d.ts +55 -0
  152. package/common/helpers/validation-metadata-helper.js +60 -0
  153. package/common/index.d.ts +1 -0
  154. package/common/index.js +4 -0
  155. package/common/utils.d.ts +15 -0
  156. package/common/utils.js +15 -0
  157. package/constants/language-code.js +1 -0
  158. package/decorators/field.decorators.d.ts +72 -3
  159. package/decorators/field.decorators.js +155 -19
  160. package/decorators/property.decorators.js +1 -0
  161. package/decorators/public-route.decorator.js +1 -0
  162. package/decorators/transform.decorators.d.ts +27 -2
  163. package/decorators/transform.decorators.js +29 -23
  164. package/decorators/translate.decorator.js +1 -0
  165. package/decorators/user.decorator.js +1 -0
  166. package/decorators/validator.decorators.d.ts +8 -18
  167. package/decorators/validator.decorators.js +22 -190
  168. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  169. package/file-upload/controllers/file-access.controller.js +128 -0
  170. package/file-upload/decorators/column.decorator.d.ts +151 -0
  171. package/file-upload/decorators/column.decorator.js +273 -0
  172. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  173. package/file-upload/decorators/csv-data.decorator.js +85 -0
  174. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  175. package/file-upload/decorators/csv-import.decorator.js +24 -0
  176. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  177. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  178. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  179. package/file-upload/decorators/excel-data.decorator.js +85 -0
  180. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  181. package/file-upload/decorators/file-upload.decorator.js +172 -0
  182. package/file-upload/decorators/index.d.ts +5 -0
  183. package/file-upload/decorators/index.js +38 -0
  184. package/file-upload/decorators/process.decorator.d.ts +40 -0
  185. package/file-upload/decorators/process.decorator.js +52 -0
  186. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  187. package/file-upload/decorators/validate-data.decorator.js +39 -0
  188. package/file-upload/dto/create-file.dto.d.ts +24 -0
  189. package/file-upload/dto/create-file.dto.js +112 -0
  190. package/file-upload/dto/find-files.dto.d.ts +15 -0
  191. package/file-upload/dto/find-files.dto.js +76 -0
  192. package/file-upload/dto/index.d.ts +4 -0
  193. package/file-upload/dto/index.js +20 -0
  194. package/file-upload/dto/pagination.dto.d.ts +7 -0
  195. package/file-upload/dto/pagination.dto.js +39 -0
  196. package/file-upload/dto/update-file.dto.d.ts +15 -0
  197. package/file-upload/dto/update-file.dto.js +67 -0
  198. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  199. package/file-upload/entities/file-metadata.entity.js +76 -0
  200. package/file-upload/entities/file.entity.d.ts +114 -0
  201. package/file-upload/entities/file.entity.js +350 -0
  202. package/file-upload/entities/index.d.ts +2 -0
  203. package/file-upload/entities/index.js +18 -0
  204. package/file-upload/enums/file-type.enum.d.ts +72 -0
  205. package/file-upload/enums/file-type.enum.js +212 -0
  206. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  207. package/file-upload/exceptions/file-upload.exception.js +120 -0
  208. package/file-upload/exceptions/index.d.ts +1 -0
  209. package/file-upload/exceptions/index.js +17 -0
  210. package/file-upload/file-upload.module.d.ts +89 -0
  211. package/file-upload/file-upload.module.js +292 -0
  212. package/file-upload/index.d.ts +37 -0
  213. package/file-upload/index.js +77 -0
  214. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  215. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  216. package/file-upload/interceptors/index.d.ts +1 -0
  217. package/file-upload/interceptors/index.js +17 -0
  218. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  219. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  220. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  221. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  222. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  223. package/file-upload/interfaces/file-entity.interface.js +28 -0
  224. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  225. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  226. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  227. package/file-upload/interfaces/file-processor.interface.js +2 -0
  228. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  229. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  230. package/file-upload/interfaces/index.d.ts +7 -0
  231. package/file-upload/interfaces/index.js +24 -0
  232. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  233. package/file-upload/interfaces/processor-options.interface.js +2 -0
  234. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  235. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  236. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  237. package/file-upload/interfaces/upload-options.interface.js +2 -0
  238. package/file-upload/processors/csv.processor.d.ts +98 -0
  239. package/file-upload/processors/csv.processor.js +391 -0
  240. package/file-upload/processors/excel.processor.d.ts +130 -0
  241. package/file-upload/processors/excel.processor.js +547 -0
  242. package/file-upload/processors/image.processor.d.ts +199 -0
  243. package/file-upload/processors/image.processor.js +377 -0
  244. package/file-upload/providers/index.d.ts +2 -0
  245. package/file-upload/providers/index.js +18 -0
  246. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  247. package/file-upload/providers/local-storage.provider.js +484 -0
  248. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  249. package/file-upload/providers/s3-storage.provider.js +455 -0
  250. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  251. package/file-upload/services/file-signature-validator.service.js +376 -0
  252. package/file-upload/services/file.service.d.ts +193 -0
  253. package/file-upload/services/file.service.js +638 -0
  254. package/file-upload/services/index.d.ts +4 -0
  255. package/file-upload/services/index.js +20 -0
  256. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  257. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  258. package/file-upload/services/mime-registry.service.d.ts +47 -0
  259. package/file-upload/services/mime-registry.service.js +167 -0
  260. package/file-upload/utils/checksum.util.d.ts +28 -0
  261. package/file-upload/utils/checksum.util.js +65 -0
  262. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  263. package/file-upload/utils/dynamic-import.util.js +156 -0
  264. package/file-upload/utils/filename.util.d.ts +59 -0
  265. package/file-upload/utils/filename.util.js +184 -0
  266. package/file-upload/utils/filepath.util.d.ts +70 -0
  267. package/file-upload/utils/filepath.util.js +152 -0
  268. package/file-upload/utils/index.d.ts +4 -0
  269. package/file-upload/utils/index.js +20 -0
  270. package/filters/bad-request.filter.js +19 -4
  271. package/filters/constraint-errors.js +1 -0
  272. package/helpers/common.helper.d.ts +13 -0
  273. package/helpers/common.helper.js +13 -0
  274. package/http-client/config/http-client.config.d.ts +20 -0
  275. package/http-client/config/http-client.config.js +48 -21
  276. package/http-client/decorators/http-client.decorators.d.ts +55 -14
  277. package/http-client/decorators/http-client.decorators.js +154 -78
  278. package/http-client/entities/http-log.entity.d.ts +217 -8
  279. package/http-client/entities/http-log.entity.js +7 -22
  280. package/http-client/errors/http-client.errors.d.ts +57 -0
  281. package/http-client/errors/http-client.errors.js +58 -0
  282. package/http-client/examples/advanced-usage.example.d.ts +40 -0
  283. package/http-client/examples/advanced-usage.example.js +53 -61
  284. package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
  285. package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
  286. package/http-client/examples/basic-usage.example.d.ts +60 -0
  287. package/http-client/examples/basic-usage.example.js +60 -0
  288. package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
  289. package/http-client/examples/multi-api-configuration.example.js +76 -5
  290. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  291. package/http-client/examples/proxy-from-environment.example.js +409 -0
  292. package/http-client/http-client.module.d.ts +48 -2
  293. package/http-client/http-client.module.js +147 -68
  294. package/http-client/index.d.ts +1 -1
  295. package/http-client/index.js +8 -0
  296. package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
  297. package/http-client/interfaces/api-client-config.interface.js +3 -0
  298. package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
  299. package/http-client/services/api-client-registry.service.d.ts +50 -11
  300. package/http-client/services/api-client-registry.service.js +90 -250
  301. package/http-client/services/circuit-breaker.service.d.ts +115 -2
  302. package/http-client/services/circuit-breaker.service.js +237 -7
  303. package/http-client/services/http-client.service.d.ts +124 -14
  304. package/http-client/services/http-client.service.js +437 -148
  305. package/http-client/services/http-log-query.service.d.ts +83 -0
  306. package/http-client/services/http-log-query.service.js +121 -13
  307. package/http-client/services/http-replay.service.d.ts +101 -0
  308. package/http-client/services/http-replay.service.js +86 -0
  309. package/http-client/services/index.d.ts +0 -1
  310. package/http-client/services/index.js +0 -1
  311. package/http-client/services/log-cleanup.service.d.ts +63 -0
  312. package/http-client/services/log-cleanup.service.js +54 -2
  313. package/http-client/services/logging.service.d.ts +116 -7
  314. package/http-client/services/logging.service.js +349 -86
  315. package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
  316. package/http-client/utils/call-stack-extractor.util.js +83 -0
  317. package/http-client/utils/context-extractor.util.d.ts +49 -0
  318. package/http-client/utils/context-extractor.util.js +54 -0
  319. package/http-client/utils/curl-generator.util.d.ts +21 -0
  320. package/http-client/utils/curl-generator.util.js +44 -3
  321. package/http-client/utils/index.d.ts +1 -0
  322. package/http-client/utils/index.js +1 -0
  323. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  324. package/http-client/utils/proxy-environment.util.js +148 -0
  325. package/http-client/utils/request-id.util.d.ts +18 -0
  326. package/http-client/utils/request-id.util.js +20 -0
  327. package/http-client/utils/retry-recorder.util.d.ts +42 -0
  328. package/http-client/utils/retry-recorder.util.js +44 -0
  329. package/http-client/utils/security-validator.util.d.ts +118 -0
  330. package/http-client/utils/security-validator.util.js +352 -0
  331. package/index.d.ts +3 -1
  332. package/index.js +12 -1
  333. package/interceptors/translation-interceptor.service.js +5 -0
  334. package/ip-filter/constants.d.ts +21 -0
  335. package/ip-filter/constants.js +24 -0
  336. package/ip-filter/decorators/index.d.ts +1 -0
  337. package/ip-filter/decorators/index.js +17 -0
  338. package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
  339. package/ip-filter/decorators/ip-filter.decorator.js +79 -0
  340. package/ip-filter/guards/index.d.ts +1 -0
  341. package/ip-filter/guards/index.js +17 -0
  342. package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
  343. package/ip-filter/guards/ip-filter.guard.js +174 -0
  344. package/ip-filter/index.d.ts +7 -0
  345. package/ip-filter/index.js +23 -0
  346. package/ip-filter/interfaces/index.d.ts +4 -0
  347. package/ip-filter/interfaces/index.js +20 -0
  348. package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
  349. package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
  350. package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
  351. package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
  352. package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
  353. package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
  354. package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
  355. package/ip-filter/interfaces/ip-rule.interface.js +2 -0
  356. package/ip-filter/ip-filter.module.d.ts +55 -0
  357. package/ip-filter/ip-filter.module.js +105 -0
  358. package/ip-filter/services/index.d.ts +1 -0
  359. package/ip-filter/services/index.js +17 -0
  360. package/ip-filter/services/ip-filter.service.d.ts +92 -0
  361. package/ip-filter/services/ip-filter.service.js +238 -0
  362. package/ip-filter/utils/index.d.ts +1 -0
  363. package/ip-filter/utils/index.js +17 -0
  364. package/ip-filter/utils/ip-utils.d.ts +61 -0
  365. package/ip-filter/utils/ip-utils.js +162 -0
  366. package/package.json +32 -29
  367. package/providers/context.provider.d.ts +9 -0
  368. package/providers/context.provider.js +15 -0
  369. package/providers/generator.provider.d.ts +4 -0
  370. package/providers/generator.provider.js +4 -0
  371. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  372. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  373. package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
  374. package/redis-lock/examples/lock-strategy.examples.js +130 -15
  375. package/redis-lock/index.d.ts +2 -0
  376. package/redis-lock/index.js +8 -1
  377. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  378. package/redis-lock/lock-heartbeat.service.js +232 -0
  379. package/redis-lock/redis-lock.decorator.d.ts +101 -0
  380. package/redis-lock/redis-lock.decorator.js +120 -0
  381. package/redis-lock/redis-lock.module.d.ts +66 -0
  382. package/redis-lock/redis-lock.module.js +175 -70
  383. package/redis-lock/redis-lock.service.d.ts +282 -0
  384. package/redis-lock/redis-lock.service.js +343 -20
  385. package/setup/bootstrap.setup.d.ts +2 -1
  386. package/setup/bootstrap.setup.js +22 -1
  387. package/setup/index.d.ts +1 -0
  388. package/setup/index.js +1 -0
  389. package/setup/mode.setup.d.ts +44 -0
  390. package/setup/mode.setup.js +44 -0
  391. package/setup/run-in-mode.decorator.d.ts +56 -0
  392. package/setup/run-in-mode.decorator.js +92 -0
  393. package/setup/schedule.decorator.d.ts +227 -0
  394. package/setup/schedule.decorator.js +240 -12
  395. package/setup/worker.decorator.d.ts +86 -0
  396. package/setup/worker.decorator.js +97 -0
  397. package/shared/index.d.ts +1 -1
  398. package/shared/index.js +1 -1
  399. package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -18
  400. package/shared/services/api-config.service.d.ts +3 -0
  401. package/shared/services/api-config.service.js +21 -9
  402. package/shared/services/index.d.ts +0 -1
  403. package/shared/services/index.js +0 -1
  404. package/validator-json/decorators.d.ts +17 -0
  405. package/validator-json/decorators.js +17 -2
  406. package/validator-json/default.d.ts +6 -0
  407. package/validator-json/default.js +30 -2
  408. package/validator-json/defaultConverters.js +1 -0
  409. package/validator-json/options.d.ts +23 -0
  410. package/validators/common-validators.d.ts +143 -0
  411. package/validators/common-validators.js +249 -0
  412. package/validators/custom-validate.examples.d.ts +23 -0
  413. package/validators/custom-validate.examples.js +78 -6
  414. package/validators/custom-validate.validator.d.ts +108 -0
  415. package/validators/custom-validate.validator.js +85 -0
  416. package/validators/file-mimetype.validator.d.ts +0 -2
  417. package/validators/file-mimetype.validator.js +4 -6
  418. package/validators/index.d.ts +1 -0
  419. package/validators/index.js +1 -0
  420. package/validators/is-exists.validator.d.ts +26 -6
  421. package/validators/is-exists.validator.js +30 -7
  422. package/validators/is-unique.validator.d.ts +33 -7
  423. package/validators/is-unique.validator.js +59 -17
  424. package/validators/skip-empty.validator.d.ts +5 -0
  425. package/validators/skip-empty.validator.js +5 -0
  426. package/vault/interfaces/vault-options.interface.d.ts +9 -0
  427. package/vault/vault-config.loader.d.ts +30 -0
  428. package/vault/vault-config.loader.js +48 -1
  429. package/vault/vault-config.service.d.ts +53 -0
  430. package/vault/vault-config.service.js +57 -0
  431. package/vault/vault.module.d.ts +4 -0
  432. package/vault/vault.module.js +4 -0
  433. package/cache/providers/memory-cache.provider.d.ts +0 -26
  434. package/cache/providers/memory-cache.provider.js +0 -171
  435. package/decorators/examples/validation-decorators.example.d.ts +0 -69
  436. package/decorators/examples/validation-decorators.example.js +0 -331
  437. package/http-client/services/cache.service.d.ts +0 -24
  438. package/http-client/services/cache.service.js +0 -264
  439. package/shared/services/validator.service.d.ts +0 -3
  440. package/shared/services/validator.service.js +0 -20
  441. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -18,68 +18,123 @@ var HttpClientModule_1;
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  exports.HttpClientModule = void 0;
20
20
  const common_1 = require("@nestjs/common");
21
- const schedule_1 = require("@nestjs/schedule");
22
21
  const config_1 = require("@nestjs/config");
23
22
  const typeorm_1 = require("@nestjs/typeorm");
24
- const cache_service_1 = require("../cache/cache.service");
23
+ const typeorm_2 = require("typeorm");
25
24
  const http_client_service_1 = require("./services/http-client.service");
26
25
  const circuit_breaker_service_1 = require("./services/circuit-breaker.service");
27
26
  const logging_service_1 = require("./services/logging.service");
28
- const cache_service_2 = require("./services/cache.service");
29
27
  const http_log_query_service_1 = require("./services/http-log-query.service");
30
28
  const log_cleanup_service_1 = require("./services/log-cleanup.service");
31
29
  const api_client_registry_service_1 = require("./services/api-client-registry.service");
32
30
  const entities_1 = require("./entities");
33
- const cache_options_interface_1 = require("../cache/interfaces/cache-options.interface");
34
31
  const redis_lock_service_1 = require("../redis-lock/redis-lock.service");
32
+ const http_client_config_1 = require("./config/http-client.config");
33
+ /**
34
+ * HTTP客户端模块
35
+ * 类似Spring Boot的自动配置机制,集成现有的cache服务
36
+ *
37
+ * @example
38
+ * // 最简单的方式 - 使用所有默认配置
39
+ * HttpClientModule.forRoot()
40
+ *
41
+ * @example
42
+ * // 只覆盖部分配置
43
+ * HttpClientModule.forRoot({
44
+ * baseURL: 'https://api.example.com',
45
+ * timeout: 5000,
46
+ * })
47
+ *
48
+ * @example
49
+ * // 深度合并配置
50
+ * HttpClientModule.forRoot({
51
+ * logging: {
52
+ * logLevel: 'debug',
53
+ * // 其他 logging 配置会使用默认值
54
+ * },
55
+ * })
56
+ */
35
57
  let HttpClientModule = HttpClientModule_1 = class HttpClientModule {
58
+ /**
59
+ * 动态注册HTTP客户端模块
60
+ * @param config 用户配置,所有字段都是可选的
61
+ * @returns DynamicModule
62
+ */
36
63
  static forRoot(config = {}) {
37
- var _a, _b, _c;
64
+ // 基础服务提供者
38
65
  const baseProviders = [
39
66
  {
40
67
  provide: 'HTTP_CLIENT_CONFIG',
41
- useFactory: (configService, cacheService) => {
68
+ useFactory: (configService) => {
69
+ // 1. 获取环境配置
42
70
  const envConfig = this.loadConfigFromEnvironment(configService);
43
- return Object.assign(Object.assign({}, config), envConfig);
71
+ // 2. 根据环境获取基础默认配置
72
+ const nodeEnv = configService.get('NODE_ENV', 'development');
73
+ const environmentDefaults = (0, http_client_config_1.getHttpClientConfig)(nodeEnv);
74
+ // 3. 深度合并: 环境默认值 -> 环境变量配置 -> 用户配置
75
+ // 用户配置优先级最高,会覆盖前面的配置
76
+ return (0, http_client_config_1.mergeHttpClientConfig)((0, http_client_config_1.mergeHttpClientConfig)(envConfig, environmentDefaults), config);
44
77
  },
45
- inject: [config_1.ConfigService, cache_service_1.CacheService],
78
+ inject: [config_1.ConfigService],
46
79
  },
47
80
  circuit_breaker_service_1.HttpCircuitBreakerService,
48
- logging_service_1.HttpLoggingService,
49
- cache_service_2.HttpCacheService,
81
+ {
82
+ provide: logging_service_1.HttpLoggingService,
83
+ useFactory: (httpConfig) => {
84
+ var _a, _b;
85
+ // Check if database logging is enabled in the config
86
+ const databaseLoggingEnabled = (_b = (_a = httpConfig === null || httpConfig === void 0 ? void 0 : httpConfig.logging) === null || _a === void 0 ? void 0 : _a.databaseLogging) === null || _b === void 0 ? void 0 : _b.enabled;
87
+ return new logging_service_1.HttpLoggingService();
88
+ },
89
+ inject: ['HTTP_CLIENT_CONFIG', typeorm_2.DataSource],
90
+ },
50
91
  http_log_query_service_1.HttpLogQueryService,
51
- log_cleanup_service_1.HttpLogCleanupService,
52
- api_client_registry_service_1.ApiClientRegistryService,
92
+ {
93
+ provide: log_cleanup_service_1.HttpLogCleanupService,
94
+ useFactory: (logQueryService, httpConfig) => {
95
+ return new log_cleanup_service_1.HttpLogCleanupService(logQueryService, httpConfig.logCleanup || {});
96
+ },
97
+ inject: [http_log_query_service_1.HttpLogQueryService, 'HTTP_CLIENT_CONFIG'],
98
+ },
99
+ {
100
+ provide: api_client_registry_service_1.ApiClientRegistryService,
101
+ useFactory: (circuitBreakerService, loggingService, httpConfig) => {
102
+ return new api_client_registry_service_1.ApiClientRegistryService(circuitBreakerService, loggingService, {});
103
+ },
104
+ inject: [
105
+ circuit_breaker_service_1.HttpCircuitBreakerService,
106
+ logging_service_1.HttpLoggingService,
107
+ 'HTTP_CLIENT_CONFIG',
108
+ ],
109
+ },
53
110
  {
54
111
  provide: http_client_service_1.HttpClientService,
55
- useFactory: (circuitBreakerService, loggingService, cacheService, redisLockService, httpConfig) => {
56
- return new http_client_service_1.HttpClientService(circuitBreakerService, loggingService, cacheService, redisLockService, httpConfig);
112
+ useFactory: (circuitBreakerService, loggingService, redisLockService, httpConfig) => {
113
+ return new http_client_service_1.HttpClientService(circuitBreakerService, loggingService, redisLockService, httpConfig);
57
114
  },
58
115
  inject: [
59
116
  circuit_breaker_service_1.HttpCircuitBreakerService,
60
117
  logging_service_1.HttpLoggingService,
61
- cache_service_2.HttpCacheService,
62
118
  redis_lock_service_1.RedisLockService,
63
119
  'HTTP_CLIENT_CONFIG',
64
120
  ],
65
121
  },
66
122
  ];
123
+ // 基础导出
67
124
  const baseExports = [
68
125
  http_client_service_1.HttpClientService,
69
126
  circuit_breaker_service_1.HttpCircuitBreakerService,
70
127
  logging_service_1.HttpLoggingService,
71
- cache_service_2.HttpCacheService,
72
128
  http_log_query_service_1.HttpLogQueryService,
73
129
  log_cleanup_service_1.HttpLogCleanupService,
74
130
  api_client_registry_service_1.ApiClientRegistryService,
75
131
  ];
76
- const dynamicImports = [config_1.ConfigModule];
77
- if ((_b = (_a = config.logging) === null || _a === void 0 ? void 0 : _a.databaseLogging) === null || _b === void 0 ? void 0 : _b.enabled) {
78
- dynamicImports.push(typeorm_1.TypeOrmModule.forFeature([entities_1.HttpLogEntity]));
79
- }
80
- if ((_c = config.logCleanup) === null || _c === void 0 ? void 0 : _c.enabled) {
81
- dynamicImports.push(schedule_1.ScheduleModule.forRoot());
82
- }
132
+ // 动态导入 - 需要根据最终配置判断
133
+ // 由于配置是在运行时确定的,我们使用条件导入
134
+ const dynamicImports = [
135
+ config_1.ConfigModule,
136
+ typeorm_1.TypeOrmModule.forFeature([entities_1.HttpLogEntity]), // 始终导入,服务内部根据配置决定是否使用
137
+ ];
83
138
  return {
84
139
  module: HttpClientModule_1,
85
140
  imports: dynamicImports,
@@ -87,47 +142,99 @@ let HttpClientModule = HttpClientModule_1 = class HttpClientModule {
87
142
  exports: baseExports,
88
143
  };
89
144
  }
145
+ /**
146
+ * 异步注册HTTP客户端模块
147
+ * @param config 异步配置,所有字段都是可选的
148
+ * @returns DynamicModule
149
+ *
150
+ * @example
151
+ * HttpClientModule.forRootAsync({
152
+ * useFactory: (configService: ConfigService) => ({
153
+ * baseURL: configService.get('API_BASE_URL'),
154
+ * timeout: 5000,
155
+ * }),
156
+ * inject: [ConfigService],
157
+ * })
158
+ */
90
159
  static forRootAsync(config) {
160
+ // 基础服务提供者
91
161
  const baseProviders = [
92
162
  {
93
163
  provide: 'HTTP_CLIENT_CONFIG',
94
164
  useFactory: (...args) => __awaiter(this, void 0, void 0, function* () {
165
+ // 1. 获取用户配置
95
166
  const userConfig = yield config.useFactory(...args);
96
- const envConfig = this.loadConfigFromEnvironment(args[0]);
97
- return Object.assign(Object.assign({}, userConfig), envConfig);
167
+ // 2. 获取环境配置
168
+ const configService = args[0];
169
+ const envConfig = this.loadConfigFromEnvironment(configService);
170
+ // 3. 根据环境获取基础默认配置
171
+ const nodeEnv = configService.get('NODE_ENV', 'development');
172
+ const environmentDefaults = (0, http_client_config_1.getHttpClientConfig)(nodeEnv);
173
+ // 4. 深度合并: 环境默认值 -> 环境变量配置 -> 用户配置
174
+ // 用户配置优先级最高,会覆盖前面的配置
175
+ const finalConfig = (0, http_client_config_1.mergeHttpClientConfig)((0, http_client_config_1.mergeHttpClientConfig)(envConfig, environmentDefaults), userConfig);
176
+ return finalConfig;
98
177
  }),
99
178
  inject: config.inject || [config_1.ConfigService],
100
179
  },
101
180
  circuit_breaker_service_1.HttpCircuitBreakerService,
102
- logging_service_1.HttpLoggingService,
103
- cache_service_2.HttpCacheService,
181
+ {
182
+ provide: logging_service_1.HttpLoggingService,
183
+ useFactory: (httpConfig) => {
184
+ var _a, _b;
185
+ // Check if database logging is enabled in the config
186
+ const databaseLoggingEnabled = (_b = (_a = httpConfig === null || httpConfig === void 0 ? void 0 : httpConfig.logging) === null || _a === void 0 ? void 0 : _a.databaseLogging) === null || _b === void 0 ? void 0 : _b.enabled;
187
+ return new logging_service_1.HttpLoggingService();
188
+ },
189
+ inject: ['HTTP_CLIENT_CONFIG', typeorm_2.DataSource],
190
+ },
104
191
  http_log_query_service_1.HttpLogQueryService,
105
- log_cleanup_service_1.HttpLogCleanupService,
106
- api_client_registry_service_1.ApiClientRegistryService,
192
+ {
193
+ provide: log_cleanup_service_1.HttpLogCleanupService,
194
+ useFactory: (logQueryService, httpConfig) => {
195
+ return new log_cleanup_service_1.HttpLogCleanupService(logQueryService, httpConfig.logCleanup || {});
196
+ },
197
+ inject: [http_log_query_service_1.HttpLogQueryService, 'HTTP_CLIENT_CONFIG'],
198
+ },
199
+ {
200
+ provide: api_client_registry_service_1.ApiClientRegistryService,
201
+ useFactory: (circuitBreakerService, loggingService, httpConfig) => {
202
+ return new api_client_registry_service_1.ApiClientRegistryService(circuitBreakerService, loggingService, {});
203
+ },
204
+ inject: [
205
+ circuit_breaker_service_1.HttpCircuitBreakerService,
206
+ logging_service_1.HttpLoggingService,
207
+ 'HTTP_CLIENT_CONFIG',
208
+ ],
209
+ },
107
210
  {
108
211
  provide: http_client_service_1.HttpClientService,
109
- useFactory: (circuitBreakerService, loggingService, cacheService, redisLockService, httpConfig) => {
110
- return new http_client_service_1.HttpClientService(circuitBreakerService, loggingService, cacheService, redisLockService, httpConfig);
212
+ useFactory: (circuitBreakerService, loggingService, redisLockService, httpConfig) => {
213
+ return new http_client_service_1.HttpClientService(circuitBreakerService, loggingService, redisLockService, httpConfig);
111
214
  },
112
215
  inject: [
113
216
  circuit_breaker_service_1.HttpCircuitBreakerService,
114
217
  logging_service_1.HttpLoggingService,
115
- cache_service_2.HttpCacheService,
116
218
  redis_lock_service_1.RedisLockService,
117
219
  'HTTP_CLIENT_CONFIG',
118
220
  ],
119
221
  },
120
222
  ];
223
+ // 基础导出
121
224
  const baseExports = [
122
225
  http_client_service_1.HttpClientService,
123
226
  circuit_breaker_service_1.HttpCircuitBreakerService,
124
227
  logging_service_1.HttpLoggingService,
125
- cache_service_2.HttpCacheService,
126
228
  http_log_query_service_1.HttpLogQueryService,
127
229
  log_cleanup_service_1.HttpLogCleanupService,
128
230
  api_client_registry_service_1.ApiClientRegistryService,
129
231
  ];
130
- const dynamicImports = [config_1.ConfigModule, ...(config.imports || [])];
232
+ // 动态导入
233
+ const dynamicImports = [
234
+ config_1.ConfigModule,
235
+ typeorm_1.TypeOrmModule.forFeature([entities_1.HttpLogEntity]), // 始终导入,服务内部根据配置决定是否使用
236
+ ...(config.imports || []),
237
+ ];
131
238
  return {
132
239
  module: HttpClientModule_1,
133
240
  imports: dynamicImports,
@@ -135,8 +242,11 @@ let HttpClientModule = HttpClientModule_1 = class HttpClientModule {
135
242
  exports: baseExports,
136
243
  };
137
244
  }
245
+ /**
246
+ * 从环境变量加载配置
247
+ */
138
248
  static loadConfigFromEnvironment(configService) {
139
- var _a, _b, _c, _d, _e, _f, _g;
249
+ var _a;
140
250
  return {
141
251
  baseURL: configService.get('HTTP_CLIENT_BASE_URL'),
142
252
  timeout: configService.get('HTTP_CLIENT_TIMEOUT')
@@ -175,35 +285,6 @@ let HttpClientModule = HttpClientModule_1 = class HttpClientModule {
175
285
  : 10,
176
286
  countHalfOpenCalls: configService.get('HTTP_CLIENT_CIRCUIT_BREAKER_COUNT_HALF_OPEN') === 'true',
177
287
  },
178
- cache: {
179
- enabled: configService.get('HTTP_CLIENT_CACHE_ENABLED') !== 'false',
180
- defaultTtl: configService.get('HTTP_CLIENT_CACHE_DEFAULT_TTL')
181
- ? parseInt(configService.get('HTTP_CLIENT_CACHE_DEFAULT_TTL'))
182
- : 300000,
183
- cacheableMethods: ((_b = (_a = configService
184
- .get('HTTP_CLIENT_CACHEABLE_METHODS')) === null || _a === void 0 ? void 0 : _a.split(',')) === null || _b === void 0 ? void 0 : _b.map((method) => method.trim().toUpperCase())) || [
185
- 'GET',
186
- 'HEAD',
187
- ],
188
- cacheableStatusCodes: ((_d = (_c = configService
189
- .get('HTTP_CLIENT_CACHEABLE_STATUS_CODES')) === null || _c === void 0 ? void 0 : _c.split(',')) === null || _d === void 0 ? void 0 : _d.map((code) => parseInt(code.trim()))) || [200, 201, 304],
190
- options: {
191
- layers: ((_f = (_e = configService
192
- .get('HTTP_CLIENT_CACHE_LAYERS')) === null || _e === void 0 ? void 0 : _e.split(',')) === null || _f === void 0 ? void 0 : _f.map((layer) => {
193
- const trimmed = layer.trim();
194
- switch (trimmed) {
195
- case 'cls':
196
- return cache_options_interface_1.CacheLayer.CLS;
197
- case 'memory':
198
- return cache_options_interface_1.CacheLayer.MEMORY;
199
- case 'redis':
200
- return cache_options_interface_1.CacheLayer.REDIS;
201
- default:
202
- return cache_options_interface_1.CacheLayer.MEMORY;
203
- }
204
- })) || [cache_options_interface_1.CacheLayer.MEMORY],
205
- },
206
- },
207
288
  logging: {
208
289
  enabled: configService.get('HTTP_CLIENT_LOGGING_ENABLED') !== 'false',
209
290
  logRequests: configService.get('HTTP_CLIENT_LOG_REQUESTS') !== 'false',
@@ -214,16 +295,14 @@ let HttpClientModule = HttpClientModule_1 = class HttpClientModule {
214
295
  maxBodyLength: configService.get('HTTP_CLIENT_LOG_MAX_BODY_LENGTH')
215
296
  ? parseInt(configService.get('HTTP_CLIENT_LOG_MAX_BODY_LENGTH'))
216
297
  : undefined,
217
- sanitizeHeaders: (_g = configService
218
- .get('HTTP_CLIENT_LOG_SANITIZE_HEADERS')) === null || _g === void 0 ? void 0 : _g.split(','),
298
+ sanitizeHeaders: (_a = configService
299
+ .get('HTTP_CLIENT_LOG_SANITIZE_HEADERS')) === null || _a === void 0 ? void 0 : _a.split(','),
219
300
  logLevel: configService.get('HTTP_CLIENT_LOG_LEVEL'),
220
301
  databaseLogging: {
221
302
  enabled: configService.get('HTTP_CLIENT_DB_LOGGING_ENABLED') ===
222
303
  'true',
223
304
  dataSource: configService.get('HTTP_CLIENT_DB_LOGGING_DATA_SOURCE') ||
224
305
  'default',
225
- tableName: configService.get('HTTP_CLIENT_DB_LOGGING_TABLE_NAME') ||
226
- 'http_logs',
227
306
  },
228
307
  },
229
308
  proxy: {
@@ -1,4 +1,4 @@
1
- export { HttpClientConfig, RetryConfig, CircuitBreakerConfig, HttpCacheConfig, ProxyConfig, LoggingConfig, InterceptorConfig, ConnectionPoolConfig, HttpContext, HttpInterceptor, HttpMethod, HttpStats, } from './interfaces/http-client-config.interface';
1
+ export { HttpClientConfig, RetryConfig, CircuitBreakerConfig, ProxyConfig, LoggingConfig, InterceptorConfig, ConnectionPoolConfig, HttpContext, HttpInterceptor, HttpMethod, HttpStats, } from './interfaces/http-client-config.interface';
2
2
  export * from './interfaces/api-client-config.interface';
3
3
  export { HttpLogEntity, RetryRecord } from './entities';
4
4
  export * from './decorators';
@@ -16,12 +16,20 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.HttpLogEntity = void 0;
18
18
  __exportStar(require("./interfaces/api-client-config.interface"), exports);
19
+ // 实体类
19
20
  var entities_1 = require("./entities");
20
21
  Object.defineProperty(exports, "HttpLogEntity", { enumerable: true, get: function () { return entities_1.HttpLogEntity; } });
22
+ // 装饰器
21
23
  __exportStar(require("./decorators"), exports);
24
+ // 服务
22
25
  __exportStar(require("./services"), exports);
26
+ // 工具类
23
27
  __exportStar(require("./utils"), exports);
28
+ // 错误处理
24
29
  __exportStar(require("./errors"), exports);
30
+ // 配置
25
31
  __exportStar(require("./config"), exports);
32
+ // 模块
26
33
  __exportStar(require("./http-client.module"), exports);
34
+ // 示例
27
35
  __exportStar(require("./examples"), exports);
@@ -1,5 +1,8 @@
1
1
  import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  import { HttpClientConfig } from './http-client-config.interface';
3
+ /**
4
+ * 鉴权类型枚举
5
+ */
3
6
  export declare enum AuthType {
4
7
  NONE = "none",
5
8
  API_KEY = "apiKey",
@@ -8,20 +11,32 @@ export declare enum AuthType {
8
11
  OAUTH2 = "oauth2",
9
12
  CUSTOM = "custom"
10
13
  }
14
+ /**
15
+ * API密钥配置
16
+ */
11
17
  export interface ApiKeyConfig {
12
18
  key: string;
13
19
  location: 'header' | 'query';
14
20
  name?: string;
15
21
  prefix?: string;
16
22
  }
23
+ /**
24
+ * Bearer Token配置
25
+ */
17
26
  export interface BearerTokenConfig {
18
27
  token: string;
19
28
  scheme?: string;
20
29
  }
30
+ /**
31
+ * 基础认证配置
32
+ */
21
33
  export interface BasicAuthConfig {
22
34
  username: string;
23
35
  password: string;
24
36
  }
37
+ /**
38
+ * OAuth2配置
39
+ */
25
40
  export interface OAuth2Config {
26
41
  clientId: string;
27
42
  clientSecret: string;
@@ -32,11 +47,24 @@ export interface OAuth2Config {
32
47
  password?: string;
33
48
  redirectUri?: string;
34
49
  refreshToken?: string;
50
+ accessToken?: string;
35
51
  }
52
+ /**
53
+ * 自定义鉴权配置
54
+ */
36
55
  export interface CustomAuthConfig {
56
+ /**
57
+ * 自定义鉴权函数
58
+ */
37
59
  authenticator: (config: AxiosRequestConfig) => Promise<AxiosRequestConfig>;
60
+ /**
61
+ * 刷新token函数
62
+ */
38
63
  refresher?: (config: AxiosRequestConfig, error: any) => Promise<AxiosRequestConfig>;
39
64
  }
65
+ /**
66
+ * 鉴权配置
67
+ */
40
68
  export type AuthConfig = {
41
69
  type: AuthType.NONE;
42
70
  } | {
@@ -55,98 +83,105 @@ export type AuthConfig = {
55
83
  type: AuthType.CUSTOM;
56
84
  config: CustomAuthConfig;
57
85
  };
86
+ /**
87
+ * 响应转换器配置
88
+ */
58
89
  export interface ResponseTransformerConfig {
90
+ /**
91
+ * 成功响应转换器
92
+ */
59
93
  success?: (response: AxiosResponse) => any;
94
+ /**
95
+ * 错误响应转换器
96
+ */
60
97
  error?: (error: any) => any;
98
+ /**
99
+ * 响应数据提取路径
100
+ * 例如 'data.items' 表示从 response.data.items 获取数据
101
+ */
61
102
  dataPath?: string;
103
+ /**
104
+ * 错误信息提取路径
105
+ * 例如 'error.message' 表示从 error.response.data.error.message 获取错误信息
106
+ */
62
107
  errorPath?: string;
108
+ /**
109
+ * 是否自动验证响应格式
110
+ */
63
111
  validateResponse?: boolean;
112
+ /**
113
+ * 响应格式验证器
114
+ */
64
115
  validator?: (data: any) => boolean;
65
116
  }
117
+ /**
118
+ * API客户端配置
119
+ */
66
120
  export interface ApiClientConfig {
121
+ /** API名称(用于标识和日志) */
67
122
  name: string;
123
+ /** 基础URL */
68
124
  baseURL: string;
125
+ /** HTTP客户端基础配置 */
69
126
  httpConfig?: HttpClientConfig;
127
+ /** 鉴权配置 */
70
128
  auth?: AuthConfig;
129
+ /** 响应转换配置 */
71
130
  responseTransformer?: ResponseTransformerConfig;
131
+ /** 默认请求头 */
72
132
  defaultHeaders?: Record<string, string>;
133
+ /** 默认查询参数 */
73
134
  defaultParams?: Record<string, any>;
135
+ /** 拦截器配置 */
74
136
  interceptors?: {
75
137
  request?: Array<(config: AxiosRequestConfig) => AxiosRequestConfig | Promise<AxiosRequestConfig>>;
76
138
  response?: Array<(response: AxiosResponse) => AxiosResponse | Promise<AxiosResponse>>;
77
139
  error?: Array<(error: any) => any>;
78
140
  };
141
+ /** 重试配置(覆盖全局配置) */
79
142
  retry?: {
80
143
  enabled?: boolean;
81
144
  retries?: number;
82
145
  retryCondition?: (error: any) => boolean;
83
146
  };
147
+ /** 是否启用响应验证 */
84
148
  enableValidation?: boolean;
149
+ /** 响应时间警告阈值(毫秒) */
85
150
  responseTimeWarningThreshold?: number;
151
+ /** 自定义标签(用于分类和查询) */
86
152
  tags?: string[];
153
+ /** 是否启用详细日志 */
87
154
  enableDetailedLogging?: boolean;
88
155
  }
156
+ /**
157
+ * API客户端实例配置
158
+ */
89
159
  export interface ApiClientInstanceConfig extends ApiClientConfig {
160
+ /** 是否覆盖现有配置 */
90
161
  override?: boolean;
162
+ /** 环境特定配置 */
91
163
  environments?: {
92
164
  development?: Partial<ApiClientConfig>;
93
165
  staging?: Partial<ApiClientConfig>;
94
166
  production?: Partial<ApiClientConfig>;
95
167
  };
96
168
  }
169
+ /**
170
+ * API客户端注册配置
171
+ */
97
172
  export interface ApiClientRegistryConfig {
173
+ /** 全局默认配置 */
98
174
  globalDefaults?: Partial<HttpClientConfig>;
175
+ /** 日志清理配置 */
99
176
  logCleanup?: {
100
177
  enabled?: boolean;
101
178
  retentionDays?: number;
102
179
  maxRecords?: number;
103
180
  };
181
+ /** 默认响应转换器 */
104
182
  defaultResponseTransformer?: ResponseTransformerConfig;
183
+ /** 是否启用自动重试 */
105
184
  enableGlobalRetry?: boolean;
185
+ /** 是否启用熔断器 */
106
186
  enableCircuitBreaker?: boolean;
107
187
  }
108
- export interface ApiClientFactory {
109
- createClient<T = any>(config: ApiClientInstanceConfig): T;
110
- getClient<T = any>(name: string): T;
111
- listClients(): string[];
112
- updateClient(name: string, config: Partial<ApiClientConfig>): void;
113
- removeClient(name: string): void;
114
- }
115
- export interface ApiClient {
116
- name: string;
117
- config: ApiClientConfig;
118
- get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
119
- post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
120
- put<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
121
- patch<T = any>(url: string, data?: any, config?: AxiosRequestConfig): Promise<T>;
122
- delete<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>;
123
- request<T = any>(config: AxiosRequestConfig): Promise<T>;
124
- getStats(): any;
125
- resetStats(): void;
126
- }
127
- export interface ApiResponse<T = any> {
128
- data?: T;
129
- code?: number;
130
- message?: string;
131
- success?: boolean;
132
- error?: {
133
- code?: string;
134
- message?: string;
135
- details?: any;
136
- };
137
- pagination?: {
138
- page?: number;
139
- pageSize?: number;
140
- total?: number;
141
- totalPages?: number;
142
- };
143
- requestId?: string;
144
- timestamp?: string;
145
- }
146
- export interface ErrorResponse {
147
- code: string | number;
148
- message: string;
149
- details?: any;
150
- stack?: string;
151
- requestId?: string;
152
- }
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthType = void 0;
4
+ /**
5
+ * 鉴权类型枚举
6
+ */
4
7
  var AuthType;
5
8
  (function (AuthType) {
6
9
  AuthType["NONE"] = "none";