@expressots/core 3.0.0-beta.4 → 4.0.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1090) hide show
  1. package/README.md +43 -95
  2. package/lib/CHANGELOG.md +40 -14
  3. package/lib/README.md +43 -95
  4. package/lib/cjs/application/application-container.js +467 -33
  5. package/lib/cjs/application/application-factory.js +105 -5
  6. package/lib/cjs/application/application.types.js +32 -2
  7. package/lib/cjs/application/bootstrap.js +812 -0
  8. package/lib/cjs/application/index.js +10 -7
  9. package/lib/cjs/authorization/authorization-config.interface.js +2 -0
  10. package/lib/cjs/authorization/decorators/convenience.js +80 -0
  11. package/lib/cjs/authorization/guard-constants.js +12 -0
  12. package/lib/cjs/authorization/guard-decorators.js +159 -0
  13. package/lib/cjs/authorization/guard-executor.js +101 -0
  14. package/lib/cjs/authorization/guard-registry.js +133 -0
  15. package/lib/cjs/authorization/guard.interface.js +75 -0
  16. package/lib/cjs/authorization/guards/attribute-based.guard.js +109 -0
  17. package/lib/cjs/authorization/guards/authenticated.guard.js +49 -0
  18. package/lib/cjs/authorization/guards/composition.guard.js +67 -0
  19. package/lib/cjs/authorization/guards/conditional.guard.js +41 -0
  20. package/lib/cjs/authorization/guards/index.js +24 -0
  21. package/lib/cjs/authorization/guards/permission.guard.js +82 -0
  22. package/lib/cjs/authorization/guards/resource-owner.guard.js +61 -0
  23. package/lib/cjs/authorization/guards/role.guard.js +64 -0
  24. package/lib/cjs/authorization/index.js +40 -0
  25. package/lib/cjs/authorization/services/guard-cache.interface.js +2 -0
  26. package/lib/cjs/authorization/services/guard-cache.js +56 -0
  27. package/lib/cjs/authorization/services/permission-hierarchy.interface.js +2 -0
  28. package/lib/cjs/authorization/services/permission-hierarchy.js +54 -0
  29. package/lib/cjs/authorization/services/permission-service.interface.js +2 -0
  30. package/lib/cjs/authorization/services/permission-service.js +58 -0
  31. package/lib/cjs/authorization/services/security-context.interface.js +2 -0
  32. package/lib/cjs/authorization/services/security-context.js +75 -0
  33. package/lib/cjs/authorization/setup.js +141 -0
  34. package/lib/cjs/config/config-resolver.js +719 -0
  35. package/lib/cjs/config/config.interfaces.js +14 -0
  36. package/lib/cjs/config/define-config.js +495 -0
  37. package/lib/cjs/config/env-field-builders.js +402 -0
  38. package/lib/cjs/config/index.js +83 -0
  39. package/lib/cjs/config/secret-value.js +201 -0
  40. package/lib/cjs/console/color-codes.js +4 -0
  41. package/lib/cjs/console/console.js +72 -9
  42. package/lib/cjs/console/index.js +2 -2
  43. package/lib/cjs/container-module/container-module.js +257 -26
  44. package/lib/cjs/container-module/index.js +6 -4
  45. package/lib/cjs/decorator/index.js +1 -1
  46. package/lib/cjs/decorator/scope-binding.js +307 -16
  47. package/lib/cjs/di/annotation/decorator_utils.js +4 -4
  48. package/lib/cjs/di/annotation/inject.js +3 -3
  49. package/lib/cjs/di/annotation/inject_base.js +5 -5
  50. package/lib/cjs/di/annotation/injectable.js +2 -2
  51. package/lib/cjs/di/annotation/multi_inject.js +3 -3
  52. package/lib/cjs/di/annotation/named.js +4 -4
  53. package/lib/cjs/di/annotation/optional.js +4 -4
  54. package/lib/cjs/di/annotation/post_construct.js +4 -4
  55. package/lib/cjs/di/annotation/pre_destroy.js +4 -4
  56. package/lib/cjs/di/annotation/property_event_decorator.js +2 -2
  57. package/lib/cjs/di/annotation/tagged.js +3 -3
  58. package/lib/cjs/di/annotation/target_name.js +5 -5
  59. package/lib/cjs/di/annotation/unmanaged.js +5 -5
  60. package/lib/cjs/di/binding-decorator/constants.js +3 -0
  61. package/lib/cjs/di/binding-decorator/decorator/fluent_provide.js +7 -7
  62. package/lib/cjs/di/binding-decorator/decorator/provide.js +7 -7
  63. package/lib/cjs/di/binding-decorator/factory/module_factory.js +23 -4
  64. package/lib/cjs/di/binding-decorator/index.js +11 -9
  65. package/lib/cjs/di/binding-decorator/syntax/provide_done_syntax.js +7 -7
  66. package/lib/cjs/di/binding-decorator/syntax/provide_in_syntax.js +19 -12
  67. package/lib/cjs/di/binding-decorator/syntax/provide_in_when_on_syntax.js +3 -0
  68. package/lib/cjs/di/binding-decorator/syntax/provide_on_syntax.js +4 -4
  69. package/lib/cjs/di/binding-decorator/syntax/provide_when_syntax.js +30 -30
  70. package/lib/cjs/di/binding-decorator/utils/auto_wire.js +4 -4
  71. package/lib/cjs/di/bindings/binding.js +5 -6
  72. package/lib/cjs/di/constants/error_msgs.js +6 -2
  73. package/lib/cjs/di/constants/literal_types.js +3 -3
  74. package/lib/cjs/di/container/container.js +44 -44
  75. package/lib/cjs/di/container/container_module.js +3 -3
  76. package/lib/cjs/di/container/lookup.js +3 -3
  77. package/lib/cjs/di/container/module_activation_store.js +3 -3
  78. package/lib/cjs/di/container-introspection.js +42 -0
  79. package/lib/cjs/di/inversify.js +85 -52
  80. package/lib/cjs/di/planning/context.js +2 -2
  81. package/lib/cjs/di/planning/metadata.js +1 -1
  82. package/lib/cjs/di/planning/metadata_reader.js +1 -1
  83. package/lib/cjs/di/planning/planner.js +37 -37
  84. package/lib/cjs/di/planning/reflection_utils.js +12 -12
  85. package/lib/cjs/di/planning/request.js +2 -2
  86. package/lib/cjs/di/planning/target.js +10 -10
  87. package/lib/cjs/di/resolution/instantiation.js +13 -13
  88. package/lib/cjs/di/resolution/resolver.js +22 -22
  89. package/lib/cjs/di/scope/scope-registry.js +115 -0
  90. package/lib/cjs/di/scope/scope.js +38 -8
  91. package/lib/cjs/di/syntax/binding_in_syntax.js +18 -8
  92. package/lib/cjs/di/syntax/binding_in_when_on_syntax.js +9 -6
  93. package/lib/cjs/di/syntax/binding_on_syntax.js +3 -3
  94. package/lib/cjs/di/syntax/binding_to_syntax.js +27 -27
  95. package/lib/cjs/di/syntax/binding_when_on_syntax.js +4 -4
  96. package/lib/cjs/di/syntax/binding_when_syntax.js +30 -30
  97. package/lib/cjs/di/syntax/constraint_helpers.js +3 -3
  98. package/lib/cjs/di/utils/binding_utils.js +18 -18
  99. package/lib/cjs/di/utils/exceptions.js +1 -1
  100. package/lib/cjs/di/utils/serialization.js +1 -1
  101. package/lib/cjs/error/app-error.js +152 -8
  102. package/lib/cjs/error/base-exception-filter.js +135 -0
  103. package/lib/cjs/error/error-handler-middleware.js +7 -7
  104. package/lib/cjs/error/exception-filter-constants.js +12 -0
  105. package/lib/cjs/error/exception-filter-decorators.js +161 -0
  106. package/lib/cjs/error/exception-filter-registry.js +163 -0
  107. package/lib/cjs/error/exception-filter.interface.js +2 -0
  108. package/lib/cjs/error/exception-handler-middleware.js +378 -0
  109. package/lib/cjs/error/filters/app-error.filter.js +31 -0
  110. package/lib/cjs/error/filters/global-exception.filter.js +39 -0
  111. package/lib/cjs/error/filters/not-found.filter.js +35 -0
  112. package/lib/cjs/error/filters/validation-error.filter.js +35 -0
  113. package/lib/cjs/error/index.js +28 -7
  114. package/lib/cjs/error/not-found.error.js +17 -0
  115. package/lib/cjs/error/report.js +104 -9
  116. package/lib/cjs/error/status-code.js +20 -0
  117. package/lib/cjs/error/utils.js +247 -33
  118. package/lib/cjs/error/validation.error.js +18 -0
  119. package/lib/cjs/event/event-decorators.js +280 -0
  120. package/lib/cjs/event/event-emitter.js +373 -0
  121. package/lib/cjs/event/event-flow-tracker.js +236 -0
  122. package/lib/cjs/event/event-recorder.js +289 -0
  123. package/lib/cjs/event/event-registry.js +207 -0
  124. package/lib/cjs/event/event.interfaces.js +54 -0
  125. package/lib/cjs/event/index.js +80 -0
  126. package/lib/cjs/index.js +29 -8
  127. package/lib/cjs/interceptor/conditional-interceptor.js +108 -0
  128. package/lib/cjs/interceptor/execution-context.js +66 -0
  129. package/lib/cjs/interceptor/index.js +64 -0
  130. package/lib/cjs/interceptor/interceptor-composition.js +130 -0
  131. package/lib/cjs/interceptor/interceptor-constants.js +20 -0
  132. package/lib/cjs/interceptor/interceptor-decorators.js +155 -0
  133. package/lib/cjs/interceptor/interceptor-executor.js +140 -0
  134. package/lib/cjs/interceptor/interceptor-registry.js +159 -0
  135. package/lib/cjs/interceptor/interceptor.interface.js +20 -0
  136. package/lib/cjs/interceptor/interceptors/index.js +22 -0
  137. package/lib/cjs/interceptor/interceptors/logging.interceptor.js +70 -0
  138. package/lib/cjs/interceptor/interceptors/performance.interceptor.js +251 -0
  139. package/lib/cjs/interceptor/interceptors/timeout.interceptor.js +66 -0
  140. package/lib/cjs/lazy-loading/index.js +73 -0
  141. package/lib/cjs/lazy-loading/lazy-load-metrics.js +355 -0
  142. package/lib/cjs/lazy-loading/lazy-module-loader.js +311 -0
  143. package/lib/cjs/lazy-loading/lazy-module-manager.js +244 -0
  144. package/lib/cjs/lazy-loading/lazy-module-warmup.js +294 -0
  145. package/lib/cjs/lazy-loading/lazy-module.js +380 -0
  146. package/lib/cjs/lazy-loading/lazy.interfaces.js +18 -0
  147. package/lib/cjs/lifecycle/index.js +15 -0
  148. package/lib/cjs/lifecycle/lifecycle-registry.js +301 -0
  149. package/lib/cjs/lifecycle/lifecycle.interface.js +37 -0
  150. package/lib/cjs/middleware/content-negotiation/accept-header-parser.js +110 -0
  151. package/lib/cjs/middleware/content-negotiation/content-negotiation-service.js +288 -0
  152. package/lib/cjs/middleware/content-negotiation/formatter-registry.js +168 -0
  153. package/lib/cjs/middleware/content-negotiation/formatters/csv-formatter.js +114 -0
  154. package/lib/cjs/middleware/content-negotiation/formatters/index.js +16 -0
  155. package/lib/cjs/middleware/content-negotiation/formatters/json-formatter.js +34 -0
  156. package/lib/cjs/middleware/content-negotiation/formatters/plain-text-formatter.js +44 -0
  157. package/lib/cjs/middleware/content-negotiation/formatters/xml-formatter.js +124 -0
  158. package/lib/cjs/middleware/content-negotiation/formatters/yaml-formatter.js +134 -0
  159. package/lib/cjs/middleware/content-negotiation/index.js +27 -0
  160. package/lib/cjs/middleware/index.js +59 -30
  161. package/lib/cjs/middleware/interfaces/content-negotiation.interface.js +7 -0
  162. package/lib/cjs/middleware/middleware-config.js +10 -0
  163. package/lib/cjs/middleware/middleware-presets.js +294 -0
  164. package/lib/cjs/middleware/middleware-profiler.js +310 -0
  165. package/lib/cjs/middleware/middleware-registry.js +160 -0
  166. package/lib/cjs/middleware/middleware-resolver.js +318 -57
  167. package/lib/cjs/middleware/middleware-service.js +1636 -308
  168. package/lib/cjs/middleware/middleware-utils.js +280 -0
  169. package/lib/cjs/middleware/upload-registry.js +91 -0
  170. package/lib/cjs/path-resolver/index.js +252 -0
  171. package/lib/cjs/provider/db-in-memory/adapter/adapter.interface.js +10 -0
  172. package/lib/cjs/provider/db-in-memory/adapter/in-memory.adapter.js +665 -0
  173. package/lib/cjs/provider/db-in-memory/adapter/index.js +10 -0
  174. package/lib/cjs/provider/db-in-memory/base-repo.repository.js +4 -4
  175. package/lib/cjs/provider/db-in-memory/db-in-memory.provider.js +14 -18
  176. package/lib/cjs/provider/db-in-memory/db.provider.js +402 -0
  177. package/lib/cjs/provider/db-in-memory/index.js +115 -9
  178. package/lib/cjs/provider/db-in-memory/query/index.js +24 -0
  179. package/lib/cjs/provider/db-in-memory/query/query-engine.js +573 -0
  180. package/lib/cjs/provider/db-in-memory/query/query.types.js +10 -0
  181. package/lib/cjs/provider/db-in-memory/schema/decorators.js +402 -0
  182. package/lib/cjs/provider/db-in-memory/schema/entity.interface.js +9 -0
  183. package/lib/cjs/provider/db-in-memory/schema/index.js +21 -0
  184. package/lib/cjs/provider/db-in-memory/storage/index.js +14 -0
  185. package/lib/cjs/provider/db-in-memory/storage/memory-store.js +706 -0
  186. package/lib/cjs/provider/dto-validator/dto-validator.provider.js +8 -8
  187. package/lib/cjs/provider/dto-validator/package-resolver.js +2 -2
  188. package/lib/cjs/provider/index.js +14 -10
  189. package/lib/cjs/provider/logger/decorators/index.js +17 -0
  190. package/lib/cjs/provider/logger/decorators/log-performance.decorator.js +178 -0
  191. package/lib/cjs/provider/logger/index.js +35 -0
  192. package/lib/cjs/provider/logger/logger.banner.js +473 -0
  193. package/lib/cjs/provider/logger/logger.config.js +22 -0
  194. package/lib/cjs/provider/logger/logger.context.js +341 -0
  195. package/lib/cjs/provider/logger/logger.flow.js +255 -0
  196. package/lib/cjs/provider/logger/logger.formatter.js +676 -0
  197. package/lib/cjs/provider/logger/logger.grouping.js +319 -0
  198. package/lib/cjs/provider/logger/logger.health.js +295 -0
  199. package/lib/cjs/provider/logger/logger.metrics-collector.js +184 -0
  200. package/lib/cjs/provider/logger/logger.metrics.js +91 -0
  201. package/lib/cjs/provider/logger/logger.performance.js +300 -0
  202. package/lib/cjs/provider/logger/logger.provider.js +698 -75
  203. package/lib/cjs/provider/logger/logger.query.js +532 -0
  204. package/lib/cjs/provider/logger/logger.redaction.js +456 -0
  205. package/lib/cjs/provider/logger/logger.suggestions.js +480 -0
  206. package/lib/cjs/provider/logger/transports/console.transport.js +78 -0
  207. package/lib/cjs/provider/logger/transports/file.transport.js +287 -0
  208. package/lib/cjs/provider/logger/transports/http-server.js +141 -0
  209. package/lib/cjs/provider/logger/transports/http.transport.js +151 -0
  210. package/lib/cjs/provider/logger/transports/index.js +21 -0
  211. package/lib/cjs/provider/logger/transports/transport.interface.js +2 -0
  212. package/lib/cjs/provider/logger/utils/index.js +18 -0
  213. package/lib/cjs/provider/logger/utils/log-entry.js +26 -0
  214. package/lib/cjs/provider/logger/utils/log-levels.js +106 -0
  215. package/lib/cjs/provider/provider-manager.js +209 -16
  216. package/lib/cjs/provider/provider-registry.js +414 -0
  217. package/lib/cjs/provider/provider.interface.js +49 -0
  218. package/lib/cjs/provider/validation/adapters/class-validator.adapter.js +264 -0
  219. package/lib/cjs/provider/validation/adapters/index.js +14 -0
  220. package/lib/cjs/provider/validation/helpful-error-formatter.js +228 -0
  221. package/lib/cjs/provider/validation/index.js +35 -0
  222. package/lib/cjs/provider/validation/smart-field-detector.js +543 -0
  223. package/lib/cjs/provider/validation/type-inference.js +192 -0
  224. package/lib/cjs/provider/validation/validation-registry.js +220 -0
  225. package/lib/cjs/provider/validation/validation.interface.js +9 -0
  226. package/lib/cjs/render/adapters/base-adapter.js +134 -0
  227. package/lib/cjs/render/adapters/ejs-adapter.js +172 -0
  228. package/lib/cjs/render/adapters/handlebars-adapter.js +191 -0
  229. package/lib/cjs/render/adapters/index.js +20 -0
  230. package/lib/cjs/render/adapters/pug-adapter.js +164 -0
  231. package/lib/cjs/render/adapters/react-adapter.js +336 -0
  232. package/lib/cjs/render/features/auto-detection.js +228 -0
  233. package/lib/cjs/render/features/hot-reload.js +155 -0
  234. package/lib/cjs/render/features/index.js +20 -0
  235. package/lib/cjs/render/features/streaming.js +106 -0
  236. package/lib/cjs/render/features/type-generator.js +221 -0
  237. package/lib/cjs/render/features/view-debugger.js +174 -0
  238. package/lib/cjs/render/index.js +80 -0
  239. package/lib/cjs/render/presets/index.js +216 -0
  240. package/lib/cjs/render/render-config.js +10 -0
  241. package/lib/cjs/render/render-interface.js +2 -0
  242. package/lib/cjs/render/render-registry.js +130 -0
  243. package/lib/cjs/render/render-service.js +418 -0
  244. package/lib/cjs/render/utils/cache-manager.js +199 -0
  245. package/lib/cjs/render/utils/index.js +20 -0
  246. package/lib/cjs/render/utils/package-resolver.js +121 -0
  247. package/lib/cjs/render/utils/view-scanner.js +208 -0
  248. package/lib/cjs/testing/create-test-app.js +366 -0
  249. package/lib/cjs/testing/create-test-database.js +416 -0
  250. package/lib/cjs/testing/fluent-request.js +454 -0
  251. package/lib/cjs/testing/index.js +142 -0
  252. package/lib/cjs/testing/load-test.js +484 -0
  253. package/lib/cjs/testing/matchers.js +444 -0
  254. package/lib/cjs/testing/mock-context.js +406 -0
  255. package/lib/cjs/testing/mock-provider.js +339 -0
  256. package/lib/cjs/testing/snapshot-request.js +378 -0
  257. package/lib/cjs/testing/testing.interfaces.js +10 -0
  258. package/lib/cjs/types/application/application-container.d.ts +320 -20
  259. package/lib/cjs/types/application/application-factory.d.ts +99 -3
  260. package/lib/cjs/types/application/application.types.d.ts +177 -2
  261. package/lib/cjs/types/application/bootstrap.d.ts +484 -0
  262. package/lib/cjs/types/application/index.d.ts +4 -3
  263. package/lib/cjs/types/authorization/authorization-config.interface.d.ts +45 -0
  264. package/lib/cjs/types/authorization/decorators/convenience.d.ts +64 -0
  265. package/lib/cjs/types/authorization/guard-constants.d.ts +9 -0
  266. package/lib/cjs/types/authorization/guard-decorators.d.ts +128 -0
  267. package/lib/cjs/types/authorization/guard-executor.d.ts +26 -0
  268. package/lib/cjs/types/authorization/guard-registry.d.ts +35 -0
  269. package/lib/cjs/types/authorization/guard.interface.d.ts +335 -0
  270. package/lib/cjs/types/authorization/guards/attribute-based.guard.d.ts +60 -0
  271. package/lib/cjs/types/authorization/guards/authenticated.guard.d.ts +26 -0
  272. package/lib/cjs/types/authorization/guards/composition.guard.d.ts +42 -0
  273. package/lib/cjs/types/authorization/guards/conditional.guard.d.ts +21 -0
  274. package/lib/cjs/types/authorization/guards/index.d.ts +7 -0
  275. package/lib/cjs/types/authorization/guards/permission.guard.d.ts +29 -0
  276. package/lib/cjs/types/authorization/guards/resource-owner.guard.d.ts +29 -0
  277. package/lib/cjs/types/authorization/guards/role.guard.d.ts +28 -0
  278. package/lib/cjs/types/authorization/index.d.ts +18 -0
  279. package/lib/cjs/types/authorization/services/guard-cache.d.ts +26 -0
  280. package/lib/cjs/types/authorization/services/guard-cache.interface.d.ts +29 -0
  281. package/lib/cjs/types/authorization/services/permission-hierarchy.d.ts +21 -0
  282. package/lib/cjs/types/authorization/services/permission-hierarchy.interface.d.ts +22 -0
  283. package/lib/cjs/types/authorization/services/permission-service.d.ts +21 -0
  284. package/lib/cjs/types/authorization/services/permission-service.interface.d.ts +19 -0
  285. package/lib/cjs/types/authorization/services/security-context.d.ts +32 -0
  286. package/lib/cjs/types/authorization/services/security-context.interface.d.ts +25 -0
  287. package/lib/cjs/types/authorization/setup.d.ts +84 -0
  288. package/lib/cjs/types/config/config-resolver.d.ts +40 -0
  289. package/lib/cjs/types/config/config.interfaces.d.ts +570 -0
  290. package/lib/cjs/types/config/define-config.d.ts +109 -0
  291. package/lib/cjs/types/config/env-field-builders.d.ts +288 -0
  292. package/lib/cjs/types/config/index.d.ts +61 -0
  293. package/lib/cjs/types/config/secret-value.d.ts +99 -0
  294. package/lib/cjs/types/console/color-codes.d.ts +1 -1
  295. package/lib/cjs/types/console/console.d.ts +65 -2
  296. package/lib/cjs/types/console/index.d.ts +1 -1
  297. package/lib/cjs/types/container-module/container-module.d.ts +215 -8
  298. package/lib/cjs/types/container-module/index.d.ts +1 -1
  299. package/lib/cjs/types/decorator/index.d.ts +1 -1
  300. package/lib/cjs/types/decorator/scope-binding.d.ts +339 -11
  301. package/lib/cjs/types/di/annotation/decorator_utils.d.ts +1 -1
  302. package/lib/cjs/types/di/annotation/inject.d.ts +1 -1
  303. package/lib/cjs/types/di/annotation/inject_base.d.ts +2 -2
  304. package/lib/cjs/types/di/annotation/lazy_service_identifier.d.ts +1 -1
  305. package/lib/cjs/types/di/annotation/multi_inject.d.ts +1 -1
  306. package/lib/cjs/types/di/annotation/named.d.ts +1 -1
  307. package/lib/cjs/types/di/annotation/target_name.d.ts +1 -1
  308. package/lib/cjs/types/di/annotation/unmanaged.d.ts +1 -1
  309. package/lib/cjs/types/di/binding-decorator/constants.d.ts +3 -0
  310. package/lib/cjs/types/di/binding-decorator/decorator/fluent_provide.d.ts +2 -2
  311. package/lib/cjs/types/di/binding-decorator/decorator/provide.d.ts +1 -1
  312. package/lib/cjs/types/di/binding-decorator/factory/module_factory.d.ts +20 -1
  313. package/lib/cjs/types/di/binding-decorator/index.d.ts +6 -4
  314. package/lib/cjs/types/di/binding-decorator/interfaces/interfaces.d.ts +2 -1
  315. package/lib/cjs/types/di/binding-decorator/syntax/provide_done_syntax.d.ts +1 -1
  316. package/lib/cjs/types/di/binding-decorator/syntax/provide_in_syntax.d.ts +3 -2
  317. package/lib/cjs/types/di/binding-decorator/syntax/provide_in_when_on_syntax.d.ts +3 -2
  318. package/lib/cjs/types/di/binding-decorator/syntax/provide_on_syntax.d.ts +2 -2
  319. package/lib/cjs/types/di/binding-decorator/syntax/provide_when_on_syntax.d.ts +2 -2
  320. package/lib/cjs/types/di/binding-decorator/syntax/provide_when_syntax.d.ts +2 -2
  321. package/lib/cjs/types/di/binding-decorator/utils/auto_wire.d.ts +1 -1
  322. package/lib/cjs/types/di/bindings/binding.d.ts +1 -1
  323. package/lib/cjs/types/di/constants/literal_types.d.ts +3 -3
  324. package/lib/cjs/types/di/container/container.d.ts +1 -1
  325. package/lib/cjs/types/di/container/container_module.d.ts +1 -1
  326. package/lib/cjs/types/di/container/container_snapshot.d.ts +1 -1
  327. package/lib/cjs/types/di/container/lookup.d.ts +1 -1
  328. package/lib/cjs/types/di/container/module_activation_store.d.ts +1 -1
  329. package/lib/cjs/types/di/container-introspection.d.ts +25 -0
  330. package/lib/cjs/types/di/interfaces/interfaces.d.ts +4 -3
  331. package/lib/cjs/types/di/inversify.d.ts +53 -24
  332. package/lib/cjs/types/di/planning/context.d.ts +1 -1
  333. package/lib/cjs/types/di/planning/metadata.d.ts +1 -1
  334. package/lib/cjs/types/di/planning/metadata_reader.d.ts +1 -1
  335. package/lib/cjs/types/di/planning/plan.d.ts +1 -1
  336. package/lib/cjs/types/di/planning/planner.d.ts +1 -1
  337. package/lib/cjs/types/di/planning/queryable_string.d.ts +1 -1
  338. package/lib/cjs/types/di/planning/reflection_utils.d.ts +2 -2
  339. package/lib/cjs/types/di/planning/request.d.ts +1 -1
  340. package/lib/cjs/types/di/planning/target.d.ts +2 -2
  341. package/lib/cjs/types/di/resolution/instantiation.d.ts +1 -1
  342. package/lib/cjs/types/di/resolution/resolver.d.ts +1 -1
  343. package/lib/cjs/types/di/scope/scope-registry.d.ts +91 -0
  344. package/lib/cjs/types/di/scope/scope.d.ts +1 -1
  345. package/lib/cjs/types/di/syntax/binding_in_syntax.d.ts +2 -1
  346. package/lib/cjs/types/di/syntax/binding_in_when_on_syntax.d.ts +2 -1
  347. package/lib/cjs/types/di/syntax/binding_on_syntax.d.ts +1 -1
  348. package/lib/cjs/types/di/syntax/binding_to_syntax.d.ts +2 -2
  349. package/lib/cjs/types/di/syntax/binding_when_on_syntax.d.ts +1 -1
  350. package/lib/cjs/types/di/syntax/binding_when_syntax.d.ts +1 -1
  351. package/lib/cjs/types/di/syntax/constraint_helpers.d.ts +1 -1
  352. package/lib/cjs/types/di/utils/binding_utils.d.ts +1 -1
  353. package/lib/cjs/types/di/utils/clonable.d.ts +1 -1
  354. package/lib/cjs/types/di/utils/serialization.d.ts +1 -1
  355. package/lib/cjs/types/error/app-error.d.ts +155 -7
  356. package/lib/cjs/types/error/base-exception-filter.d.ts +73 -0
  357. package/lib/cjs/types/error/exception-filter-constants.d.ts +9 -0
  358. package/lib/cjs/types/error/exception-filter-decorators.d.ts +126 -0
  359. package/lib/cjs/types/error/exception-filter-registry.d.ts +38 -0
  360. package/lib/cjs/types/error/exception-filter.interface.d.ts +82 -0
  361. package/lib/cjs/types/error/exception-handler-middleware.d.ts +35 -0
  362. package/lib/cjs/types/error/filters/app-error.filter.d.ts +10 -0
  363. package/lib/cjs/types/error/filters/global-exception.filter.d.ts +9 -0
  364. package/lib/cjs/types/error/filters/not-found.filter.d.ts +10 -0
  365. package/lib/cjs/types/error/filters/validation-error.filter.d.ts +10 -0
  366. package/lib/cjs/types/error/index.d.ts +14 -3
  367. package/lib/cjs/types/error/not-found.error.d.ts +7 -0
  368. package/lib/cjs/types/error/report.d.ts +84 -6
  369. package/lib/cjs/types/error/status-code.d.ts +20 -0
  370. package/lib/cjs/types/error/utils.d.ts +16 -0
  371. package/lib/cjs/types/error/validation.error.d.ts +8 -0
  372. package/lib/cjs/types/event/event-decorators.d.ts +199 -0
  373. package/lib/cjs/types/event/event-emitter.d.ts +109 -0
  374. package/lib/cjs/types/event/event-flow-tracker.d.ts +88 -0
  375. package/lib/cjs/types/event/event-recorder.d.ts +121 -0
  376. package/lib/cjs/types/event/event-registry.d.ts +84 -0
  377. package/lib/cjs/types/event/event.interfaces.d.ts +528 -0
  378. package/lib/cjs/types/event/index.d.ts +55 -0
  379. package/lib/cjs/types/index.d.ts +27 -8
  380. package/lib/cjs/types/interceptor/conditional-interceptor.d.ts +91 -0
  381. package/lib/cjs/types/interceptor/execution-context.d.ts +41 -0
  382. package/lib/cjs/types/interceptor/index.d.ts +41 -0
  383. package/lib/cjs/types/interceptor/interceptor-composition.d.ts +115 -0
  384. package/lib/cjs/types/interceptor/interceptor-constants.d.ts +17 -0
  385. package/lib/cjs/types/interceptor/interceptor-decorators.d.ts +124 -0
  386. package/lib/cjs/types/interceptor/interceptor-executor.d.ts +46 -0
  387. package/lib/cjs/types/interceptor/interceptor-registry.d.ts +65 -0
  388. package/lib/cjs/types/interceptor/interceptor.interface.d.ts +281 -0
  389. package/lib/cjs/types/interceptor/interceptors/index.d.ts +6 -0
  390. package/lib/cjs/types/interceptor/interceptors/logging.interceptor.d.ts +28 -0
  391. package/lib/cjs/types/interceptor/interceptors/performance.interceptor.d.ts +197 -0
  392. package/lib/cjs/types/interceptor/interceptors/timeout.interceptor.d.ts +42 -0
  393. package/lib/cjs/types/lazy-loading/index.d.ts +42 -0
  394. package/lib/cjs/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
  395. package/lib/cjs/types/lazy-loading/lazy-module-loader.d.ts +169 -0
  396. package/lib/cjs/types/lazy-loading/lazy-module-manager.d.ts +148 -0
  397. package/lib/cjs/types/lazy-loading/lazy-module-warmup.d.ts +130 -0
  398. package/lib/cjs/types/lazy-loading/lazy-module.d.ts +168 -0
  399. package/lib/cjs/types/lazy-loading/lazy.interfaces.d.ts +480 -0
  400. package/lib/cjs/types/lifecycle/index.d.ts +9 -0
  401. package/lib/cjs/types/lifecycle/lifecycle-registry.d.ts +213 -0
  402. package/lib/cjs/types/lifecycle/lifecycle.interface.d.ts +191 -0
  403. package/lib/cjs/types/middleware/content-negotiation/accept-header-parser.d.ts +26 -0
  404. package/lib/cjs/types/middleware/content-negotiation/content-negotiation-service.d.ts +64 -0
  405. package/lib/cjs/types/middleware/content-negotiation/formatter-registry.d.ts +60 -0
  406. package/lib/cjs/types/middleware/content-negotiation/formatters/csv-formatter.d.ts +34 -0
  407. package/lib/cjs/types/middleware/content-negotiation/formatters/index.d.ts +8 -0
  408. package/lib/cjs/types/middleware/content-negotiation/formatters/json-formatter.d.ts +14 -0
  409. package/lib/cjs/types/middleware/content-negotiation/formatters/plain-text-formatter.d.ts +12 -0
  410. package/lib/cjs/types/middleware/content-negotiation/formatters/xml-formatter.d.ts +26 -0
  411. package/lib/cjs/types/middleware/content-negotiation/formatters/yaml-formatter.d.ts +26 -0
  412. package/lib/cjs/types/middleware/content-negotiation/index.d.ts +7 -0
  413. package/lib/cjs/types/middleware/index.d.ts +25 -15
  414. package/lib/cjs/types/middleware/interfaces/content-negotiation.interface.d.ts +142 -0
  415. package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +1 -1
  416. package/lib/cjs/types/middleware/middleware-config.d.ts +574 -0
  417. package/lib/cjs/types/middleware/middleware-interface.d.ts +594 -88
  418. package/lib/cjs/types/middleware/middleware-presets.d.ts +90 -0
  419. package/lib/cjs/types/middleware/middleware-profiler.d.ts +199 -0
  420. package/lib/cjs/types/middleware/middleware-registry.d.ts +103 -0
  421. package/lib/cjs/types/middleware/middleware-resolver.d.ts +156 -8
  422. package/lib/cjs/types/middleware/middleware-service.d.ts +634 -112
  423. package/lib/cjs/types/middleware/middleware-utils.d.ts +145 -0
  424. package/lib/cjs/types/middleware/upload-registry.d.ts +50 -0
  425. package/lib/cjs/types/path-resolver/index.d.ts +80 -0
  426. package/lib/cjs/types/provider/db-in-memory/adapter/adapter.interface.d.ts +222 -0
  427. package/lib/cjs/types/provider/db-in-memory/adapter/in-memory.adapter.d.ts +239 -0
  428. package/lib/cjs/types/provider/db-in-memory/adapter/index.d.ts +6 -0
  429. package/lib/cjs/types/provider/db-in-memory/base-repo.repository.d.ts +1 -1
  430. package/lib/cjs/types/provider/db-in-memory/db-in-memory.interface.d.ts +1 -1
  431. package/lib/cjs/types/provider/db-in-memory/db-in-memory.provider.d.ts +8 -2
  432. package/lib/cjs/types/provider/db-in-memory/db.provider.d.ts +281 -0
  433. package/lib/cjs/types/provider/db-in-memory/index.d.ts +63 -4
  434. package/lib/cjs/types/provider/db-in-memory/query/index.d.ts +6 -0
  435. package/lib/cjs/types/provider/db-in-memory/query/query-engine.d.ts +101 -0
  436. package/lib/cjs/types/provider/db-in-memory/query/query.types.d.ts +318 -0
  437. package/lib/cjs/types/provider/db-in-memory/schema/decorators.d.ts +314 -0
  438. package/lib/cjs/types/provider/db-in-memory/schema/entity.interface.d.ts +60 -0
  439. package/lib/cjs/types/provider/db-in-memory/schema/index.d.ts +6 -0
  440. package/lib/cjs/types/provider/db-in-memory/storage/index.d.ts +5 -0
  441. package/lib/cjs/types/provider/db-in-memory/storage/memory-store.d.ts +326 -0
  442. package/lib/cjs/types/provider/index.d.ts +7 -5
  443. package/lib/cjs/types/provider/logger/decorators/index.d.ts +1 -0
  444. package/lib/cjs/types/provider/logger/decorators/log-performance.decorator.d.ts +49 -0
  445. package/lib/cjs/types/provider/logger/index.d.ts +17 -0
  446. package/lib/cjs/types/provider/logger/logger.banner.d.ts +94 -0
  447. package/lib/cjs/types/provider/logger/logger.config.d.ts +55 -0
  448. package/lib/cjs/types/provider/logger/logger.context.d.ts +189 -0
  449. package/lib/cjs/types/provider/logger/logger.flow.d.ts +165 -0
  450. package/lib/cjs/types/provider/logger/logger.formatter.d.ts +44 -0
  451. package/lib/cjs/types/provider/logger/logger.grouping.d.ts +124 -0
  452. package/lib/cjs/types/provider/logger/logger.health.d.ts +123 -0
  453. package/lib/cjs/types/provider/logger/logger.metrics-collector.d.ts +44 -0
  454. package/lib/cjs/types/provider/logger/logger.metrics.d.ts +162 -0
  455. package/lib/cjs/types/provider/logger/logger.performance.d.ts +179 -0
  456. package/lib/cjs/types/provider/logger/logger.provider.d.ts +303 -30
  457. package/lib/cjs/types/provider/logger/logger.query.d.ts +232 -0
  458. package/lib/cjs/types/provider/logger/logger.redaction.d.ts +169 -0
  459. package/lib/cjs/types/provider/logger/logger.suggestions.d.ts +124 -0
  460. package/lib/cjs/types/provider/logger/transports/console.transport.d.ts +49 -0
  461. package/lib/cjs/types/provider/logger/transports/file.transport.d.ts +87 -0
  462. package/lib/cjs/types/provider/logger/transports/http-server.d.ts +88 -0
  463. package/lib/cjs/types/provider/logger/transports/http.transport.d.ts +74 -0
  464. package/lib/cjs/types/provider/logger/transports/index.d.ts +5 -0
  465. package/lib/cjs/types/provider/logger/transports/transport.interface.d.ts +31 -0
  466. package/lib/cjs/types/provider/logger/utils/index.d.ts +2 -0
  467. package/lib/cjs/types/provider/logger/utils/log-entry.d.ts +82 -0
  468. package/lib/cjs/types/provider/logger/utils/log-levels.d.ts +53 -0
  469. package/lib/cjs/types/provider/provider-manager.d.ts +165 -13
  470. package/lib/cjs/types/provider/provider-registry.d.ts +192 -0
  471. package/lib/cjs/types/provider/provider.interface.d.ts +337 -0
  472. package/lib/cjs/types/provider/validation/adapters/class-validator.adapter.d.ts +68 -0
  473. package/lib/cjs/types/provider/validation/adapters/index.d.ts +10 -0
  474. package/lib/cjs/types/provider/validation/helpful-error-formatter.d.ts +110 -0
  475. package/lib/cjs/types/provider/validation/index.d.ts +19 -0
  476. package/lib/cjs/types/provider/validation/smart-field-detector.d.ts +91 -0
  477. package/lib/cjs/types/provider/validation/type-inference.d.ts +81 -0
  478. package/lib/cjs/types/provider/validation/validation-registry.d.ts +105 -0
  479. package/lib/cjs/types/provider/validation/validation.interface.d.ts +178 -0
  480. package/lib/cjs/types/render/adapters/base-adapter.d.ts +95 -0
  481. package/lib/cjs/types/render/adapters/ejs-adapter.d.ts +57 -0
  482. package/lib/cjs/types/render/adapters/handlebars-adapter.d.ts +74 -0
  483. package/lib/cjs/types/render/adapters/index.d.ts +12 -0
  484. package/lib/cjs/types/render/adapters/pug-adapter.d.ts +57 -0
  485. package/lib/cjs/types/render/adapters/react-adapter.d.ts +99 -0
  486. package/lib/cjs/types/render/features/auto-detection.d.ts +58 -0
  487. package/lib/cjs/types/render/features/hot-reload.d.ts +65 -0
  488. package/lib/cjs/types/render/features/index.d.ts +12 -0
  489. package/lib/cjs/types/render/features/streaming.d.ts +39 -0
  490. package/lib/cjs/types/render/features/type-generator.d.ts +64 -0
  491. package/lib/cjs/types/render/features/view-debugger.d.ts +42 -0
  492. package/lib/cjs/types/render/index.d.ts +50 -0
  493. package/lib/cjs/types/render/presets/index.d.ts +119 -0
  494. package/lib/cjs/types/render/render-config.d.ts +213 -0
  495. package/lib/cjs/types/render/render-interface.d.ts +126 -0
  496. package/lib/cjs/types/render/render-registry.d.ts +86 -0
  497. package/lib/cjs/types/render/render-service.d.ts +157 -0
  498. package/lib/cjs/types/render/utils/cache-manager.d.ts +106 -0
  499. package/lib/cjs/types/render/utils/index.d.ts +11 -0
  500. package/lib/cjs/types/render/utils/package-resolver.d.ts +57 -0
  501. package/lib/cjs/types/render/utils/view-scanner.d.ts +74 -0
  502. package/lib/cjs/types/testing/create-test-app.d.ts +71 -0
  503. package/lib/cjs/types/testing/create-test-database.d.ts +100 -0
  504. package/lib/cjs/types/testing/fluent-request.d.ts +37 -0
  505. package/lib/cjs/types/testing/index.d.ts +93 -0
  506. package/lib/cjs/types/testing/load-test.d.ts +139 -0
  507. package/lib/cjs/types/testing/matchers.d.ts +184 -0
  508. package/lib/cjs/types/testing/mock-context.d.ts +117 -0
  509. package/lib/cjs/types/testing/mock-provider.d.ts +93 -0
  510. package/lib/cjs/types/testing/snapshot-request.d.ts +46 -0
  511. package/lib/cjs/types/testing/testing.interfaces.d.ts +948 -0
  512. package/lib/cjs/types/utils/node-require.d.ts +11 -0
  513. package/lib/cjs/utils/node-require.js +59 -0
  514. package/lib/esm/application/application-container.js +526 -0
  515. package/lib/esm/application/application-factory.js +134 -0
  516. package/lib/esm/application/application.types.js +41 -0
  517. package/lib/esm/application/bootstrap.js +805 -0
  518. package/lib/esm/application/index.js +4 -0
  519. package/lib/esm/authorization/authorization-config.interface.js +1 -0
  520. package/lib/esm/authorization/decorators/convenience.js +74 -0
  521. package/lib/esm/authorization/guard-constants.js +9 -0
  522. package/lib/esm/authorization/guard-decorators.js +155 -0
  523. package/lib/esm/authorization/guard-executor.js +101 -0
  524. package/lib/esm/authorization/guard-registry.js +132 -0
  525. package/lib/esm/authorization/guard.interface.js +73 -0
  526. package/lib/esm/authorization/guards/attribute-based.guard.js +106 -0
  527. package/lib/esm/authorization/guards/authenticated.guard.js +45 -0
  528. package/lib/esm/authorization/guards/composition.guard.js +63 -0
  529. package/lib/esm/authorization/guards/conditional.guard.js +38 -0
  530. package/lib/esm/authorization/guards/index.js +8 -0
  531. package/lib/esm/authorization/guards/permission.guard.js +80 -0
  532. package/lib/esm/authorization/guards/resource-owner.guard.js +58 -0
  533. package/lib/esm/authorization/guards/role.guard.js +61 -0
  534. package/lib/esm/authorization/index.js +24 -0
  535. package/lib/esm/authorization/services/guard-cache.interface.js +1 -0
  536. package/lib/esm/authorization/services/guard-cache.js +51 -0
  537. package/lib/esm/authorization/services/permission-hierarchy.interface.js +1 -0
  538. package/lib/esm/authorization/services/permission-hierarchy.js +49 -0
  539. package/lib/esm/authorization/services/permission-service.interface.js +1 -0
  540. package/lib/esm/authorization/services/permission-service.js +56 -0
  541. package/lib/esm/authorization/services/security-context.interface.js +1 -0
  542. package/lib/esm/authorization/services/security-context.js +74 -0
  543. package/lib/esm/authorization/setup.js +137 -0
  544. package/lib/esm/config/config-resolver.js +714 -0
  545. package/lib/esm/config/config.interfaces.js +13 -0
  546. package/lib/esm/config/define-config.js +492 -0
  547. package/lib/esm/config/env-field-builders.js +392 -0
  548. package/lib/esm/config/index.js +67 -0
  549. package/lib/esm/config/secret-value.js +175 -0
  550. package/lib/esm/console/color-codes.js +46 -0
  551. package/lib/esm/console/console.js +107 -0
  552. package/lib/esm/console/index.js +1 -0
  553. package/lib/esm/container-module/container-module.js +322 -0
  554. package/lib/esm/container-module/index.js +1 -0
  555. package/lib/esm/decorator/index.js +1 -0
  556. package/lib/esm/decorator/scope-binding.js +344 -0
  557. package/lib/esm/di/annotation/decorator_utils.js +93 -0
  558. package/lib/esm/di/annotation/inject.js +18 -0
  559. package/lib/esm/di/annotation/inject_base.js +14 -0
  560. package/lib/esm/di/annotation/injectable.js +19 -0
  561. package/lib/esm/di/annotation/lazy_service_identifier.js +9 -0
  562. package/lib/esm/di/annotation/multi_inject.js +4 -0
  563. package/lib/esm/di/annotation/named.js +9 -0
  564. package/lib/esm/di/annotation/optional.js +7 -0
  565. package/lib/esm/di/annotation/post_construct.js +5 -0
  566. package/lib/esm/di/annotation/pre_destroy.js +5 -0
  567. package/lib/esm/di/annotation/property_event_decorator.js +13 -0
  568. package/lib/esm/di/annotation/tagged.js +7 -0
  569. package/lib/esm/di/annotation/target_name.js +10 -0
  570. package/lib/esm/di/annotation/unmanaged.js +10 -0
  571. package/lib/esm/di/binding-decorator/constants.js +7 -0
  572. package/lib/esm/di/binding-decorator/decorator/fluent_provide.js +15 -0
  573. package/lib/esm/di/binding-decorator/decorator/provide.js +35 -0
  574. package/lib/esm/di/binding-decorator/factory/module_factory.js +34 -0
  575. package/lib/esm/di/binding-decorator/index.js +10 -0
  576. package/lib/esm/di/binding-decorator/interfaces/interfaces.js +1 -0
  577. package/lib/esm/di/binding-decorator/syntax/provide_done_syntax.js +41 -0
  578. package/lib/esm/di/binding-decorator/syntax/provide_in_syntax.js +37 -0
  579. package/lib/esm/di/binding-decorator/syntax/provide_in_when_on_syntax.js +68 -0
  580. package/lib/esm/di/binding-decorator/syntax/provide_on_syntax.js +19 -0
  581. package/lib/esm/di/binding-decorator/syntax/provide_when_on_syntax.js +57 -0
  582. package/lib/esm/di/binding-decorator/syntax/provide_when_syntax.js +86 -0
  583. package/lib/esm/di/binding-decorator/utils/auto_wire.js +13 -0
  584. package/lib/esm/di/bindings/binding.js +64 -0
  585. package/lib/esm/di/bindings/binding_count.js +5 -0
  586. package/lib/esm/di/constants/error_msgs.js +54 -0
  587. package/lib/esm/di/constants/literal_types.js +21 -0
  588. package/lib/esm/di/constants/metadata_keys.js +35 -0
  589. package/lib/esm/di/container/container.js +505 -0
  590. package/lib/esm/di/container/container_module.js +17 -0
  591. package/lib/esm/di/container/container_snapshot.js +17 -0
  592. package/lib/esm/di/container/lookup.js +108 -0
  593. package/lib/esm/di/container/module_activation_store.js +43 -0
  594. package/lib/esm/di/container-introspection.js +38 -0
  595. package/lib/esm/di/interfaces/interfaces.js +1 -0
  596. package/lib/esm/di/inversify.js +53 -0
  597. package/lib/esm/di/planning/context.js +18 -0
  598. package/lib/esm/di/planning/metadata.js +18 -0
  599. package/lib/esm/di/planning/metadata_reader.js +19 -0
  600. package/lib/esm/di/planning/plan.js +9 -0
  601. package/lib/esm/di/planning/planner.js +159 -0
  602. package/lib/esm/di/planning/queryable_string.js +25 -0
  603. package/lib/esm/di/planning/reflection_utils.js +150 -0
  604. package/lib/esm/di/planning/request.js +28 -0
  605. package/lib/esm/di/planning/target.js +89 -0
  606. package/lib/esm/di/resolution/instantiation.js +125 -0
  607. package/lib/esm/di/resolution/resolver.js +163 -0
  608. package/lib/esm/di/scope/scope-registry.js +109 -0
  609. package/lib/esm/di/scope/scope.js +75 -0
  610. package/lib/esm/di/syntax/binding_in_syntax.js +31 -0
  611. package/lib/esm/di/syntax/binding_in_when_on_syntax.js +79 -0
  612. package/lib/esm/di/syntax/binding_on_syntax.js +16 -0
  613. package/lib/esm/di/syntax/binding_to_syntax.js +89 -0
  614. package/lib/esm/di/syntax/binding_when_on_syntax.js +64 -0
  615. package/lib/esm/di/syntax/binding_when_syntax.js +82 -0
  616. package/lib/esm/di/syntax/constraint_helpers.js +39 -0
  617. package/lib/esm/di/utils/async.js +12 -0
  618. package/lib/esm/di/utils/binding_utils.js +48 -0
  619. package/lib/esm/di/utils/clonable.js +7 -0
  620. package/lib/esm/di/utils/exceptions.js +18 -0
  621. package/lib/esm/di/utils/factory_type.js +6 -0
  622. package/lib/esm/di/utils/id.js +5 -0
  623. package/lib/esm/di/utils/js.js +12 -0
  624. package/lib/esm/di/utils/serialization.js +102 -0
  625. package/lib/esm/error/app-error.js +209 -0
  626. package/lib/esm/error/base-exception-filter.js +134 -0
  627. package/lib/esm/error/error-handler-middleware.js +34 -0
  628. package/lib/esm/error/exception-filter-constants.js +9 -0
  629. package/lib/esm/error/exception-filter-decorators.js +157 -0
  630. package/lib/esm/error/exception-filter-registry.js +162 -0
  631. package/lib/esm/error/exception-filter.interface.js +1 -0
  632. package/lib/esm/error/exception-handler-middleware.js +378 -0
  633. package/lib/esm/error/filters/app-error.filter.js +28 -0
  634. package/lib/esm/error/filters/global-exception.filter.js +36 -0
  635. package/lib/esm/error/filters/not-found.filter.js +32 -0
  636. package/lib/esm/error/filters/validation-error.filter.js +32 -0
  637. package/lib/esm/error/index.js +13 -0
  638. package/lib/esm/error/not-found.error.js +13 -0
  639. package/lib/esm/error/report.js +153 -0
  640. package/lib/esm/error/status-code.js +106 -0
  641. package/lib/esm/error/utils.js +252 -0
  642. package/lib/esm/error/validation.error.js +15 -0
  643. package/lib/esm/event/event-decorators.js +268 -0
  644. package/lib/esm/event/event-emitter.js +376 -0
  645. package/lib/esm/event/event-flow-tracker.js +230 -0
  646. package/lib/esm/event/event-recorder.js +286 -0
  647. package/lib/esm/event/event-registry.js +201 -0
  648. package/lib/esm/event/event.interfaces.js +51 -0
  649. package/lib/esm/event/index.js +58 -0
  650. package/lib/esm/index.mjs +27 -0
  651. package/lib/esm/interceptor/conditional-interceptor.js +104 -0
  652. package/lib/esm/interceptor/execution-context.js +66 -0
  653. package/lib/esm/interceptor/index.js +48 -0
  654. package/lib/esm/interceptor/interceptor-composition.js +126 -0
  655. package/lib/esm/interceptor/interceptor-constants.js +17 -0
  656. package/lib/esm/interceptor/interceptor-decorators.js +151 -0
  657. package/lib/esm/interceptor/interceptor-executor.js +139 -0
  658. package/lib/esm/interceptor/interceptor-registry.js +158 -0
  659. package/lib/esm/interceptor/interceptor.interface.js +16 -0
  660. package/lib/esm/interceptor/interceptors/index.js +6 -0
  661. package/lib/esm/interceptor/interceptors/logging.interceptor.js +68 -0
  662. package/lib/esm/interceptor/interceptors/performance.interceptor.js +253 -0
  663. package/lib/esm/interceptor/interceptors/timeout.interceptor.js +65 -0
  664. package/lib/esm/lazy-loading/index.js +56 -0
  665. package/lib/esm/lazy-loading/lazy-load-metrics.js +352 -0
  666. package/lib/esm/lazy-loading/lazy-module-loader.js +305 -0
  667. package/lib/esm/lazy-loading/lazy-module-manager.js +241 -0
  668. package/lib/esm/lazy-loading/lazy-module-warmup.js +291 -0
  669. package/lib/esm/lazy-loading/lazy-module.js +352 -0
  670. package/lib/esm/lazy-loading/lazy.interfaces.js +17 -0
  671. package/lib/esm/lifecycle/index.js +9 -0
  672. package/lib/esm/lifecycle/lifecycle-registry.js +298 -0
  673. package/lib/esm/lifecycle/lifecycle.interface.js +33 -0
  674. package/lib/esm/middleware/content-negotiation/accept-header-parser.js +106 -0
  675. package/lib/esm/middleware/content-negotiation/content-negotiation-service.js +286 -0
  676. package/lib/esm/middleware/content-negotiation/formatter-registry.js +165 -0
  677. package/lib/esm/middleware/content-negotiation/formatters/csv-formatter.js +111 -0
  678. package/lib/esm/middleware/content-negotiation/formatters/index.js +8 -0
  679. package/lib/esm/middleware/content-negotiation/formatters/json-formatter.js +30 -0
  680. package/lib/esm/middleware/content-negotiation/formatters/plain-text-formatter.js +40 -0
  681. package/lib/esm/middleware/content-negotiation/formatters/xml-formatter.js +121 -0
  682. package/lib/esm/middleware/content-negotiation/formatters/yaml-formatter.js +131 -0
  683. package/lib/esm/middleware/content-negotiation/index.js +7 -0
  684. package/lib/esm/middleware/index.js +19 -0
  685. package/lib/esm/middleware/interfaces/body-parser.interface.js +1 -0
  686. package/lib/esm/middleware/interfaces/compression.interface.js +1 -0
  687. package/lib/esm/middleware/interfaces/content-negotiation.interface.js +6 -0
  688. package/lib/esm/middleware/interfaces/cookie-parser.interface.js +1 -0
  689. package/lib/esm/middleware/interfaces/cookie-session/cookie-session.interface.js +1 -0
  690. package/lib/esm/middleware/interfaces/cookie-session/keygrip.interface.js +1 -0
  691. package/lib/esm/middleware/interfaces/cors.interface.js +1 -0
  692. package/lib/esm/middleware/interfaces/express-rate-limit.interface.js +1 -0
  693. package/lib/esm/middleware/interfaces/express-session.interface.js +1 -0
  694. package/lib/esm/middleware/interfaces/helmet.interface.js +1 -0
  695. package/lib/esm/middleware/interfaces/morgan.interface.js +1 -0
  696. package/lib/esm/middleware/interfaces/multer.interface.js +1 -0
  697. package/lib/esm/middleware/interfaces/serve-favicon.interface.js +1 -0
  698. package/lib/esm/middleware/interfaces/serve-static.interface.js +1 -0
  699. package/lib/esm/middleware/interfaces/url-encoded.interface.js +1 -0
  700. package/lib/esm/middleware/middleware-config.js +9 -0
  701. package/lib/esm/middleware/middleware-interface.js +1 -0
  702. package/lib/esm/middleware/middleware-presets.js +286 -0
  703. package/lib/esm/middleware/middleware-profiler.js +307 -0
  704. package/lib/esm/middleware/middleware-registry.js +152 -0
  705. package/lib/esm/middleware/middleware-resolver.js +320 -0
  706. package/lib/esm/middleware/middleware-service.js +1797 -0
  707. package/lib/esm/middleware/middleware-utils.js +273 -0
  708. package/lib/esm/middleware/upload-registry.js +84 -0
  709. package/lib/esm/package.json +3 -0
  710. package/lib/esm/path-resolver/index.js +224 -0
  711. package/lib/esm/provider/db-in-memory/adapter/adapter.interface.js +9 -0
  712. package/lib/esm/provider/db-in-memory/adapter/in-memory.adapter.js +667 -0
  713. package/lib/esm/provider/db-in-memory/adapter/index.js +5 -0
  714. package/lib/esm/provider/db-in-memory/base-repo.repository.js +54 -0
  715. package/lib/esm/provider/db-in-memory/db-in-memory.interface.js +1 -0
  716. package/lib/esm/provider/db-in-memory/db-in-memory.provider.js +104 -0
  717. package/lib/esm/provider/db-in-memory/db-in-memory.types.js +20 -0
  718. package/lib/esm/provider/db-in-memory/db.provider.js +405 -0
  719. package/lib/esm/provider/db-in-memory/index.js +90 -0
  720. package/lib/esm/provider/db-in-memory/query/index.js +6 -0
  721. package/lib/esm/provider/db-in-memory/query/query-engine.js +570 -0
  722. package/lib/esm/provider/db-in-memory/query/query.types.js +9 -0
  723. package/lib/esm/provider/db-in-memory/schema/decorators.js +387 -0
  724. package/lib/esm/provider/db-in-memory/schema/entity.interface.js +8 -0
  725. package/lib/esm/provider/db-in-memory/schema/index.js +5 -0
  726. package/lib/esm/provider/db-in-memory/storage/index.js +5 -0
  727. package/lib/esm/provider/db-in-memory/storage/memory-store.js +709 -0
  728. package/lib/esm/provider/dto-validator/dto-validator.provider.js +49 -0
  729. package/lib/esm/provider/dto-validator/package-resolver.js +30 -0
  730. package/lib/esm/provider/index.js +7 -0
  731. package/lib/esm/provider/logger/decorators/index.js +1 -0
  732. package/lib/esm/provider/logger/decorators/log-performance.decorator.js +175 -0
  733. package/lib/esm/provider/logger/index.js +17 -0
  734. package/lib/esm/provider/logger/logger.banner.js +471 -0
  735. package/lib/esm/provider/logger/logger.config.js +19 -0
  736. package/lib/esm/provider/logger/logger.context.js +334 -0
  737. package/lib/esm/provider/logger/logger.flow.js +248 -0
  738. package/lib/esm/provider/logger/logger.formatter.js +670 -0
  739. package/lib/esm/provider/logger/logger.grouping.js +314 -0
  740. package/lib/esm/provider/logger/logger.health.js +291 -0
  741. package/lib/esm/provider/logger/logger.metrics-collector.js +180 -0
  742. package/lib/esm/provider/logger/logger.metrics.js +85 -0
  743. package/lib/esm/provider/logger/logger.performance.js +299 -0
  744. package/lib/esm/provider/logger/logger.provider.js +746 -0
  745. package/lib/esm/provider/logger/logger.query.js +529 -0
  746. package/lib/esm/provider/logger/logger.redaction.js +450 -0
  747. package/lib/esm/provider/logger/logger.suggestions.js +471 -0
  748. package/lib/esm/provider/logger/transports/console.transport.js +81 -0
  749. package/lib/esm/provider/logger/transports/file.transport.js +291 -0
  750. package/lib/esm/provider/logger/transports/http-server.js +141 -0
  751. package/lib/esm/provider/logger/transports/http.transport.js +157 -0
  752. package/lib/esm/provider/logger/transports/index.js +5 -0
  753. package/lib/esm/provider/logger/transports/transport.interface.js +1 -0
  754. package/lib/esm/provider/logger/utils/index.js +2 -0
  755. package/lib/esm/provider/logger/utils/log-entry.js +23 -0
  756. package/lib/esm/provider/logger/utils/log-levels.js +100 -0
  757. package/lib/esm/provider/provider-manager.js +283 -0
  758. package/lib/esm/provider/provider-registry.js +411 -0
  759. package/lib/esm/provider/provider.interface.js +44 -0
  760. package/lib/esm/provider/validation/adapters/class-validator.adapter.js +258 -0
  761. package/lib/esm/provider/validation/adapters/index.js +10 -0
  762. package/lib/esm/provider/validation/helpful-error-formatter.js +225 -0
  763. package/lib/esm/provider/validation/index.js +21 -0
  764. package/lib/esm/provider/validation/smart-field-detector.js +539 -0
  765. package/lib/esm/provider/validation/type-inference.js +183 -0
  766. package/lib/esm/provider/validation/validation-registry.js +214 -0
  767. package/lib/esm/provider/validation/validation.interface.js +8 -0
  768. package/lib/esm/render/adapters/base-adapter.js +131 -0
  769. package/lib/esm/render/adapters/ejs-adapter.js +142 -0
  770. package/lib/esm/render/adapters/handlebars-adapter.js +161 -0
  771. package/lib/esm/render/adapters/index.js +12 -0
  772. package/lib/esm/render/adapters/pug-adapter.js +134 -0
  773. package/lib/esm/render/adapters/react-adapter.js +303 -0
  774. package/lib/esm/render/features/auto-detection.js +202 -0
  775. package/lib/esm/render/features/hot-reload.js +153 -0
  776. package/lib/esm/render/features/index.js +12 -0
  777. package/lib/esm/render/features/streaming.js +103 -0
  778. package/lib/esm/render/features/type-generator.js +195 -0
  779. package/lib/esm/render/features/view-debugger.js +172 -0
  780. package/lib/esm/render/index.js +54 -0
  781. package/lib/esm/render/presets/index.js +207 -0
  782. package/lib/esm/render/render-config.js +9 -0
  783. package/lib/esm/render/render-interface.js +1 -0
  784. package/lib/esm/render/render-registry.js +124 -0
  785. package/lib/esm/render/render-service.js +394 -0
  786. package/lib/esm/render/utils/cache-manager.js +196 -0
  787. package/lib/esm/render/utils/index.js +10 -0
  788. package/lib/esm/render/utils/package-resolver.js +118 -0
  789. package/lib/esm/render/utils/view-scanner.js +178 -0
  790. package/lib/esm/testing/create-test-app.js +365 -0
  791. package/lib/esm/testing/create-test-database.js +411 -0
  792. package/lib/esm/testing/fluent-request.js +452 -0
  793. package/lib/esm/testing/index.js +102 -0
  794. package/lib/esm/testing/load-test.js +479 -0
  795. package/lib/esm/testing/matchers.js +440 -0
  796. package/lib/esm/testing/mock-context.js +400 -0
  797. package/lib/esm/testing/mock-provider.js +333 -0
  798. package/lib/esm/testing/snapshot-request.js +356 -0
  799. package/lib/esm/testing/testing.interfaces.js +9 -0
  800. package/lib/esm/types/application/application-container.d.ts +352 -0
  801. package/lib/esm/types/application/application-factory.d.ts +118 -0
  802. package/lib/esm/types/application/application.types.d.ts +185 -0
  803. package/lib/esm/types/application/bootstrap.d.ts +484 -0
  804. package/lib/esm/types/application/index.d.ts +4 -0
  805. package/lib/esm/types/authorization/authorization-config.interface.d.ts +45 -0
  806. package/lib/esm/types/authorization/decorators/convenience.d.ts +64 -0
  807. package/lib/esm/types/authorization/guard-constants.d.ts +9 -0
  808. package/lib/esm/types/authorization/guard-decorators.d.ts +128 -0
  809. package/lib/esm/types/authorization/guard-executor.d.ts +26 -0
  810. package/lib/esm/types/authorization/guard-registry.d.ts +35 -0
  811. package/lib/esm/types/authorization/guard.interface.d.ts +335 -0
  812. package/lib/esm/types/authorization/guards/attribute-based.guard.d.ts +60 -0
  813. package/lib/esm/types/authorization/guards/authenticated.guard.d.ts +26 -0
  814. package/lib/esm/types/authorization/guards/composition.guard.d.ts +42 -0
  815. package/lib/esm/types/authorization/guards/conditional.guard.d.ts +21 -0
  816. package/lib/esm/types/authorization/guards/index.d.ts +7 -0
  817. package/lib/esm/types/authorization/guards/permission.guard.d.ts +29 -0
  818. package/lib/esm/types/authorization/guards/resource-owner.guard.d.ts +29 -0
  819. package/lib/esm/types/authorization/guards/role.guard.d.ts +28 -0
  820. package/lib/esm/types/authorization/index.d.ts +18 -0
  821. package/lib/esm/types/authorization/services/guard-cache.d.ts +26 -0
  822. package/lib/esm/types/authorization/services/guard-cache.interface.d.ts +29 -0
  823. package/lib/esm/types/authorization/services/permission-hierarchy.d.ts +21 -0
  824. package/lib/esm/types/authorization/services/permission-hierarchy.interface.d.ts +22 -0
  825. package/lib/esm/types/authorization/services/permission-service.d.ts +21 -0
  826. package/lib/esm/types/authorization/services/permission-service.interface.d.ts +19 -0
  827. package/lib/esm/types/authorization/services/security-context.d.ts +32 -0
  828. package/lib/esm/types/authorization/services/security-context.interface.d.ts +25 -0
  829. package/lib/esm/types/authorization/setup.d.ts +84 -0
  830. package/lib/esm/types/config/config-resolver.d.ts +40 -0
  831. package/lib/esm/types/config/config.interfaces.d.ts +570 -0
  832. package/lib/esm/types/config/define-config.d.ts +109 -0
  833. package/lib/esm/types/config/env-field-builders.d.ts +288 -0
  834. package/lib/esm/types/config/index.d.ts +61 -0
  835. package/lib/esm/types/config/secret-value.d.ts +99 -0
  836. package/lib/esm/types/console/color-codes.d.ts +29 -0
  837. package/lib/esm/types/console/console.d.ts +83 -0
  838. package/lib/esm/types/console/index.d.ts +2 -0
  839. package/lib/esm/types/container-module/container-module.d.ts +242 -0
  840. package/lib/esm/types/container-module/index.d.ts +1 -0
  841. package/lib/esm/types/decorator/index.d.ts +1 -0
  842. package/lib/esm/types/decorator/scope-binding.d.ts +374 -0
  843. package/lib/esm/types/di/annotation/decorator_utils.d.ts +16 -0
  844. package/lib/esm/types/di/annotation/inject.d.ts +16 -0
  845. package/lib/esm/types/di/annotation/inject_base.d.ts +3 -0
  846. package/lib/esm/types/di/annotation/injectable.d.ts +7 -0
  847. package/lib/esm/types/di/annotation/lazy_service_identifier.d.ts +7 -0
  848. package/lib/esm/types/di/annotation/multi_inject.d.ts +2 -0
  849. package/lib/esm/types/di/annotation/named.d.ts +2 -0
  850. package/lib/esm/types/di/annotation/optional.d.ts +2 -0
  851. package/lib/esm/types/di/annotation/post_construct.d.ts +4 -0
  852. package/lib/esm/types/di/annotation/pre_destroy.d.ts +4 -0
  853. package/lib/esm/types/di/annotation/property_event_decorator.d.ts +4 -0
  854. package/lib/esm/types/di/annotation/tagged.d.ts +2 -0
  855. package/lib/esm/types/di/annotation/target_name.d.ts +3 -0
  856. package/lib/esm/types/di/annotation/unmanaged.d.ts +3 -0
  857. package/lib/esm/types/di/binding-decorator/constants.d.ts +7 -0
  858. package/lib/esm/types/di/binding-decorator/decorator/fluent_provide.d.ts +4 -0
  859. package/lib/esm/types/di/binding-decorator/decorator/provide.d.ts +4 -0
  860. package/lib/esm/types/di/binding-decorator/factory/module_factory.d.ts +23 -0
  861. package/lib/esm/types/di/binding-decorator/index.d.ts +10 -0
  862. package/lib/esm/types/di/binding-decorator/interfaces/interfaces.d.ts +40 -0
  863. package/lib/esm/types/di/binding-decorator/syntax/provide_done_syntax.d.ts +7 -0
  864. package/lib/esm/types/di/binding-decorator/syntax/provide_in_syntax.d.ts +12 -0
  865. package/lib/esm/types/di/binding-decorator/syntax/provide_in_when_on_syntax.d.ts +28 -0
  866. package/lib/esm/types/di/binding-decorator/syntax/provide_on_syntax.d.ts +10 -0
  867. package/lib/esm/types/di/binding-decorator/syntax/provide_when_on_syntax.d.ts +24 -0
  868. package/lib/esm/types/di/binding-decorator/syntax/provide_when_syntax.d.ts +23 -0
  869. package/lib/esm/types/di/binding-decorator/utils/auto_wire.d.ts +3 -0
  870. package/lib/esm/types/di/bindings/binding.d.ts +20 -0
  871. package/lib/esm/types/di/bindings/binding_count.d.ts +5 -0
  872. package/lib/esm/types/di/constants/error_msgs.d.ts +32 -0
  873. package/lib/esm/types/di/constants/literal_types.d.ts +5 -0
  874. package/lib/esm/types/di/constants/metadata_keys.d.ts +13 -0
  875. package/lib/esm/types/di/container/container.d.ts +73 -0
  876. package/lib/esm/types/di/container/container_module.d.ts +11 -0
  877. package/lib/esm/types/di/container/container_snapshot.d.ts +10 -0
  878. package/lib/esm/types/di/container/lookup.d.ts +16 -0
  879. package/lib/esm/types/di/container/module_activation_store.d.ts +10 -0
  880. package/lib/esm/types/di/container-introspection.d.ts +25 -0
  881. package/lib/esm/types/di/interfaces/interfaces.d.ts +300 -0
  882. package/lib/esm/types/di/inversify.d.ts +54 -0
  883. package/lib/esm/types/di/planning/context.d.ts +11 -0
  884. package/lib/esm/types/di/planning/metadata.d.ts +8 -0
  885. package/lib/esm/types/di/planning/metadata_reader.d.ts +6 -0
  886. package/lib/esm/types/di/planning/plan.d.ts +7 -0
  887. package/lib/esm/types/di/planning/planner.d.ts +5 -0
  888. package/lib/esm/types/di/planning/queryable_string.d.ts +11 -0
  889. package/lib/esm/types/di/planning/reflection_utils.d.ts +5 -0
  890. package/lib/esm/types/di/planning/request.d.ts +14 -0
  891. package/lib/esm/types/di/planning/target.d.ts +23 -0
  892. package/lib/esm/types/di/resolution/instantiation.d.ts +3 -0
  893. package/lib/esm/types/di/resolution/resolver.d.ts +3 -0
  894. package/lib/esm/types/di/scope/scope-registry.d.ts +91 -0
  895. package/lib/esm/types/di/scope/scope.d.ts +3 -0
  896. package/lib/esm/types/di/syntax/binding_in_syntax.d.ts +10 -0
  897. package/lib/esm/types/di/syntax/binding_in_when_on_syntax.d.ts +30 -0
  898. package/lib/esm/types/di/syntax/binding_on_syntax.d.ts +8 -0
  899. package/lib/esm/types/di/syntax/binding_to_syntax.d.ts +18 -0
  900. package/lib/esm/types/di/syntax/binding_when_on_syntax.d.ts +25 -0
  901. package/lib/esm/types/di/syntax/binding_when_syntax.d.ts +21 -0
  902. package/lib/esm/types/di/syntax/constraint_helpers.d.ts +6 -0
  903. package/lib/esm/types/di/utils/async.d.ts +3 -0
  904. package/lib/esm/types/di/utils/binding_utils.d.ts +4 -0
  905. package/lib/esm/types/di/utils/clonable.d.ts +3 -0
  906. package/lib/esm/types/di/utils/exceptions.d.ts +2 -0
  907. package/lib/esm/types/di/utils/factory_type.d.ts +5 -0
  908. package/lib/esm/types/di/utils/id.d.ts +2 -0
  909. package/lib/esm/types/di/utils/js.d.ts +1 -0
  910. package/lib/esm/types/di/utils/serialization.d.ts +10 -0
  911. package/lib/esm/types/error/app-error.d.ts +177 -0
  912. package/lib/esm/types/error/base-exception-filter.d.ts +73 -0
  913. package/lib/esm/types/error/error-handler-middleware.d.ts +11 -0
  914. package/lib/esm/types/error/exception-filter-constants.d.ts +9 -0
  915. package/lib/esm/types/error/exception-filter-decorators.d.ts +126 -0
  916. package/lib/esm/types/error/exception-filter-registry.d.ts +38 -0
  917. package/lib/esm/types/error/exception-filter.interface.d.ts +82 -0
  918. package/lib/esm/types/error/exception-handler-middleware.d.ts +35 -0
  919. package/lib/esm/types/error/filters/app-error.filter.d.ts +10 -0
  920. package/lib/esm/types/error/filters/global-exception.filter.d.ts +9 -0
  921. package/lib/esm/types/error/filters/not-found.filter.d.ts +10 -0
  922. package/lib/esm/types/error/filters/validation-error.filter.d.ts +10 -0
  923. package/lib/esm/types/error/index.d.ts +14 -0
  924. package/lib/esm/types/error/not-found.error.d.ts +7 -0
  925. package/lib/esm/types/error/report.d.ts +105 -0
  926. package/lib/esm/types/error/status-code.d.ts +156 -0
  927. package/lib/esm/types/error/utils.d.ts +17 -0
  928. package/lib/esm/types/error/validation.error.d.ts +8 -0
  929. package/lib/esm/types/event/event-decorators.d.ts +199 -0
  930. package/lib/esm/types/event/event-emitter.d.ts +109 -0
  931. package/lib/esm/types/event/event-flow-tracker.d.ts +88 -0
  932. package/lib/esm/types/event/event-recorder.d.ts +121 -0
  933. package/lib/esm/types/event/event-registry.d.ts +84 -0
  934. package/lib/esm/types/event/event.interfaces.d.ts +528 -0
  935. package/lib/esm/types/event/index.d.ts +55 -0
  936. package/lib/esm/types/index.d.ts +27 -0
  937. package/lib/esm/types/interceptor/conditional-interceptor.d.ts +91 -0
  938. package/lib/esm/types/interceptor/execution-context.d.ts +41 -0
  939. package/lib/esm/types/interceptor/index.d.ts +41 -0
  940. package/lib/esm/types/interceptor/interceptor-composition.d.ts +115 -0
  941. package/lib/esm/types/interceptor/interceptor-constants.d.ts +17 -0
  942. package/lib/esm/types/interceptor/interceptor-decorators.d.ts +124 -0
  943. package/lib/esm/types/interceptor/interceptor-executor.d.ts +46 -0
  944. package/lib/esm/types/interceptor/interceptor-registry.d.ts +65 -0
  945. package/lib/esm/types/interceptor/interceptor.interface.d.ts +281 -0
  946. package/lib/esm/types/interceptor/interceptors/index.d.ts +6 -0
  947. package/lib/esm/types/interceptor/interceptors/logging.interceptor.d.ts +28 -0
  948. package/lib/esm/types/interceptor/interceptors/performance.interceptor.d.ts +197 -0
  949. package/lib/esm/types/interceptor/interceptors/timeout.interceptor.d.ts +42 -0
  950. package/lib/esm/types/lazy-loading/index.d.ts +42 -0
  951. package/lib/esm/types/lazy-loading/lazy-load-metrics.d.ts +139 -0
  952. package/lib/esm/types/lazy-loading/lazy-module-loader.d.ts +169 -0
  953. package/lib/esm/types/lazy-loading/lazy-module-manager.d.ts +148 -0
  954. package/lib/esm/types/lazy-loading/lazy-module-warmup.d.ts +130 -0
  955. package/lib/esm/types/lazy-loading/lazy-module.d.ts +168 -0
  956. package/lib/esm/types/lazy-loading/lazy.interfaces.d.ts +480 -0
  957. package/lib/esm/types/lifecycle/index.d.ts +9 -0
  958. package/lib/esm/types/lifecycle/lifecycle-registry.d.ts +213 -0
  959. package/lib/esm/types/lifecycle/lifecycle.interface.d.ts +191 -0
  960. package/lib/esm/types/middleware/content-negotiation/accept-header-parser.d.ts +26 -0
  961. package/lib/esm/types/middleware/content-negotiation/content-negotiation-service.d.ts +64 -0
  962. package/lib/esm/types/middleware/content-negotiation/formatter-registry.d.ts +60 -0
  963. package/lib/esm/types/middleware/content-negotiation/formatters/csv-formatter.d.ts +34 -0
  964. package/lib/esm/types/middleware/content-negotiation/formatters/index.d.ts +8 -0
  965. package/lib/esm/types/middleware/content-negotiation/formatters/json-formatter.d.ts +14 -0
  966. package/lib/esm/types/middleware/content-negotiation/formatters/plain-text-formatter.d.ts +12 -0
  967. package/lib/esm/types/middleware/content-negotiation/formatters/xml-formatter.d.ts +26 -0
  968. package/lib/esm/types/middleware/content-negotiation/formatters/yaml-formatter.d.ts +26 -0
  969. package/lib/esm/types/middleware/content-negotiation/index.d.ts +7 -0
  970. package/lib/esm/types/middleware/index.d.ts +25 -0
  971. package/lib/esm/types/middleware/interfaces/body-parser.interface.d.ts +31 -0
  972. package/lib/esm/types/middleware/interfaces/compression.interface.d.ts +98 -0
  973. package/lib/esm/types/middleware/interfaces/content-negotiation.interface.d.ts +142 -0
  974. package/lib/esm/types/middleware/interfaces/cookie-parser.interface.d.ts +9 -0
  975. package/lib/esm/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +57 -0
  976. package/lib/esm/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +27 -0
  977. package/lib/esm/types/middleware/interfaces/cors.interface.d.ts +57 -0
  978. package/lib/esm/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -0
  979. package/lib/esm/types/middleware/interfaces/express-session.interface.d.ts +207 -0
  980. package/lib/esm/types/middleware/interfaces/helmet.interface.d.ts +210 -0
  981. package/lib/esm/types/middleware/interfaces/morgan.interface.d.ts +39 -0
  982. package/lib/esm/types/middleware/interfaces/multer.interface.d.ts +253 -0
  983. package/lib/esm/types/middleware/interfaces/serve-favicon.interface.d.ts +11 -0
  984. package/lib/esm/types/middleware/interfaces/serve-static.interface.d.ts +69 -0
  985. package/lib/esm/types/middleware/interfaces/url-encoded.interface.d.ts +37 -0
  986. package/lib/esm/types/middleware/middleware-config.d.ts +574 -0
  987. package/lib/esm/types/middleware/middleware-interface.d.ts +691 -0
  988. package/lib/esm/types/middleware/middleware-presets.d.ts +90 -0
  989. package/lib/esm/types/middleware/middleware-profiler.d.ts +199 -0
  990. package/lib/esm/types/middleware/middleware-registry.d.ts +103 -0
  991. package/lib/esm/types/middleware/middleware-resolver.d.ts +159 -0
  992. package/lib/esm/types/middleware/middleware-service.d.ts +767 -0
  993. package/lib/esm/types/middleware/middleware-utils.d.ts +145 -0
  994. package/lib/esm/types/middleware/upload-registry.d.ts +50 -0
  995. package/lib/esm/types/path-resolver/index.d.ts +80 -0
  996. package/lib/esm/types/provider/db-in-memory/adapter/adapter.interface.d.ts +222 -0
  997. package/lib/esm/types/provider/db-in-memory/adapter/in-memory.adapter.d.ts +239 -0
  998. package/lib/esm/types/provider/db-in-memory/adapter/index.d.ts +6 -0
  999. package/lib/esm/types/provider/db-in-memory/base-repo.repository.d.ts +18 -0
  1000. package/lib/esm/types/provider/db-in-memory/db-in-memory.interface.d.ts +43 -0
  1001. package/lib/esm/types/provider/db-in-memory/db-in-memory.provider.d.ts +39 -0
  1002. package/lib/esm/types/provider/db-in-memory/db-in-memory.types.d.ts +14 -0
  1003. package/lib/esm/types/provider/db-in-memory/db.provider.d.ts +281 -0
  1004. package/lib/esm/types/provider/db-in-memory/index.d.ts +63 -0
  1005. package/lib/esm/types/provider/db-in-memory/query/index.d.ts +6 -0
  1006. package/lib/esm/types/provider/db-in-memory/query/query-engine.d.ts +101 -0
  1007. package/lib/esm/types/provider/db-in-memory/query/query.types.d.ts +318 -0
  1008. package/lib/esm/types/provider/db-in-memory/schema/decorators.d.ts +314 -0
  1009. package/lib/esm/types/provider/db-in-memory/schema/entity.interface.d.ts +60 -0
  1010. package/lib/esm/types/provider/db-in-memory/schema/index.d.ts +6 -0
  1011. package/lib/esm/types/provider/db-in-memory/storage/index.d.ts +5 -0
  1012. package/lib/esm/types/provider/db-in-memory/storage/memory-store.d.ts +326 -0
  1013. package/lib/esm/types/provider/dto-validator/dto-validator.provider.d.ts +10 -0
  1014. package/lib/esm/types/provider/dto-validator/package-resolver.d.ts +7 -0
  1015. package/lib/esm/types/provider/index.d.ts +7 -0
  1016. package/lib/esm/types/provider/logger/decorators/index.d.ts +1 -0
  1017. package/lib/esm/types/provider/logger/decorators/log-performance.decorator.d.ts +49 -0
  1018. package/lib/esm/types/provider/logger/index.d.ts +17 -0
  1019. package/lib/esm/types/provider/logger/logger.banner.d.ts +94 -0
  1020. package/lib/esm/types/provider/logger/logger.config.d.ts +55 -0
  1021. package/lib/esm/types/provider/logger/logger.context.d.ts +189 -0
  1022. package/lib/esm/types/provider/logger/logger.flow.d.ts +165 -0
  1023. package/lib/esm/types/provider/logger/logger.formatter.d.ts +44 -0
  1024. package/lib/esm/types/provider/logger/logger.grouping.d.ts +124 -0
  1025. package/lib/esm/types/provider/logger/logger.health.d.ts +123 -0
  1026. package/lib/esm/types/provider/logger/logger.metrics-collector.d.ts +44 -0
  1027. package/lib/esm/types/provider/logger/logger.metrics.d.ts +162 -0
  1028. package/lib/esm/types/provider/logger/logger.performance.d.ts +179 -0
  1029. package/lib/esm/types/provider/logger/logger.provider.d.ts +332 -0
  1030. package/lib/esm/types/provider/logger/logger.query.d.ts +232 -0
  1031. package/lib/esm/types/provider/logger/logger.redaction.d.ts +169 -0
  1032. package/lib/esm/types/provider/logger/logger.suggestions.d.ts +124 -0
  1033. package/lib/esm/types/provider/logger/transports/console.transport.d.ts +49 -0
  1034. package/lib/esm/types/provider/logger/transports/file.transport.d.ts +87 -0
  1035. package/lib/esm/types/provider/logger/transports/http-server.d.ts +88 -0
  1036. package/lib/esm/types/provider/logger/transports/http.transport.d.ts +74 -0
  1037. package/lib/esm/types/provider/logger/transports/index.d.ts +5 -0
  1038. package/lib/esm/types/provider/logger/transports/transport.interface.d.ts +31 -0
  1039. package/lib/esm/types/provider/logger/utils/index.d.ts +2 -0
  1040. package/lib/esm/types/provider/logger/utils/log-entry.d.ts +82 -0
  1041. package/lib/esm/types/provider/logger/utils/log-levels.d.ts +53 -0
  1042. package/lib/esm/types/provider/provider-manager.d.ts +208 -0
  1043. package/lib/esm/types/provider/provider-registry.d.ts +192 -0
  1044. package/lib/esm/types/provider/provider.interface.d.ts +337 -0
  1045. package/lib/esm/types/provider/validation/adapters/class-validator.adapter.d.ts +68 -0
  1046. package/lib/esm/types/provider/validation/adapters/index.d.ts +10 -0
  1047. package/lib/esm/types/provider/validation/helpful-error-formatter.d.ts +110 -0
  1048. package/lib/esm/types/provider/validation/index.d.ts +19 -0
  1049. package/lib/esm/types/provider/validation/smart-field-detector.d.ts +91 -0
  1050. package/lib/esm/types/provider/validation/type-inference.d.ts +81 -0
  1051. package/lib/esm/types/provider/validation/validation-registry.d.ts +105 -0
  1052. package/lib/esm/types/provider/validation/validation.interface.d.ts +178 -0
  1053. package/lib/esm/types/render/adapters/base-adapter.d.ts +95 -0
  1054. package/lib/esm/types/render/adapters/ejs-adapter.d.ts +57 -0
  1055. package/lib/esm/types/render/adapters/handlebars-adapter.d.ts +74 -0
  1056. package/lib/esm/types/render/adapters/index.d.ts +12 -0
  1057. package/lib/esm/types/render/adapters/pug-adapter.d.ts +57 -0
  1058. package/lib/esm/types/render/adapters/react-adapter.d.ts +99 -0
  1059. package/lib/esm/types/render/features/auto-detection.d.ts +58 -0
  1060. package/lib/esm/types/render/features/hot-reload.d.ts +65 -0
  1061. package/lib/esm/types/render/features/index.d.ts +12 -0
  1062. package/lib/esm/types/render/features/streaming.d.ts +39 -0
  1063. package/lib/esm/types/render/features/type-generator.d.ts +64 -0
  1064. package/lib/esm/types/render/features/view-debugger.d.ts +42 -0
  1065. package/lib/esm/types/render/index.d.ts +50 -0
  1066. package/lib/esm/types/render/presets/index.d.ts +119 -0
  1067. package/lib/esm/types/render/render-config.d.ts +213 -0
  1068. package/lib/esm/types/render/render-interface.d.ts +126 -0
  1069. package/lib/esm/types/render/render-registry.d.ts +86 -0
  1070. package/lib/esm/types/render/render-service.d.ts +157 -0
  1071. package/lib/esm/types/render/utils/cache-manager.d.ts +106 -0
  1072. package/lib/esm/types/render/utils/index.d.ts +11 -0
  1073. package/lib/esm/types/render/utils/package-resolver.d.ts +57 -0
  1074. package/lib/esm/types/render/utils/view-scanner.d.ts +74 -0
  1075. package/lib/esm/types/testing/create-test-app.d.ts +71 -0
  1076. package/lib/esm/types/testing/create-test-database.d.ts +100 -0
  1077. package/lib/esm/types/testing/fluent-request.d.ts +37 -0
  1078. package/lib/esm/types/testing/index.d.ts +93 -0
  1079. package/lib/esm/types/testing/load-test.d.ts +139 -0
  1080. package/lib/esm/types/testing/matchers.d.ts +184 -0
  1081. package/lib/esm/types/testing/mock-context.d.ts +117 -0
  1082. package/lib/esm/types/testing/mock-provider.d.ts +93 -0
  1083. package/lib/esm/types/testing/snapshot-request.d.ts +46 -0
  1084. package/lib/esm/types/testing/testing.interfaces.d.ts +948 -0
  1085. package/lib/esm/types/utils/node-require.d.ts +11 -0
  1086. package/lib/esm/utils/node-require.js +56 -0
  1087. package/lib/package.json +152 -151
  1088. package/package.json +152 -151
  1089. package/lib/cjs/provider/environment/env-validator.provider.js +0 -100
  1090. package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +0 -39
@@ -1,5 +1,7 @@
1
- export { IProvider, ProviderManager } from "./provider-manager";
2
- export { Logger } from "./logger/logger.provider";
3
- export { EnvValidatorProvider as Env } from "./environment/env-validator.provider";
4
- export { ValidateDTO } from "./dto-validator/dto-validator.provider";
5
- export * from "./db-in-memory";
1
+ export { IProvider, ProviderManager } from "./provider-manager.js";
2
+ export * from "./logger/index.js";
3
+ export { ValidateDTO } from "./dto-validator/dto-validator.provider.js";
4
+ export * from "./db-in-memory/index.js";
5
+ export * from "./validation/index.js";
6
+ export { ProviderRegistry } from "./provider-registry.js";
7
+ export { IHealthCheck, IMetrics, IConfigurable, HealthCheckResult, ProviderMetrics, ConfigurationResult, ProviderCapabilities, ProviderInfo, ProviderSource, HealthDashboard, MetricsDashboard, isHealthCheck, isMetrics, isConfigurable, } from "./provider.interface.js";
@@ -0,0 +1 @@
1
+ export * from "./log-performance.decorator.js";
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @file log-performance.decorator.ts
3
+ * @description Decorator for automatic performance logging of methods
4
+ * @module @expressots/core/provider/logger/decorators
5
+ *
6
+ * Features:
7
+ * - Automatic method entry/exit logging
8
+ * - Execution time measurement
9
+ * - Works with sync and async methods
10
+ * - Includes class and method name in logs
11
+ */
12
+ /**
13
+ * Options for @LogPerformance decorator.
14
+ * @public API
15
+ */
16
+ export interface LogPerformanceOptions {
17
+ /** Log level for performance logs (default: "debug") */
18
+ logLevel?: "debug" | "info" | "warn";
19
+ /** Custom label (default: "ClassName.methodName") */
20
+ label?: string;
21
+ /** Log method entry (default: true) */
22
+ logEntry?: boolean;
23
+ /** Log method exit (default: true) */
24
+ logExit?: boolean;
25
+ /** Minimum duration to log (in ms, default: 0 = log all) */
26
+ minDuration?: number;
27
+ }
28
+ /**
29
+ * Decorator for automatically logging method performance.
30
+ * Logs method entry, exit, and execution time.
31
+ *
32
+ * @param options - Performance logging options
33
+ * @returns Method decorator
34
+ * @public API
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * class UserService {
39
+ * constructor(private logger: Logger) {}
40
+ *
41
+ * @LogPerformance({ logLevel: "info" })
42
+ * async getUser(id: string) {
43
+ * // Method execution is automatically timed and logged
44
+ * return await this.db.findUser(id);
45
+ * }
46
+ * }
47
+ * ```
48
+ */
49
+ export declare function LogPerformance(options?: LogPerformanceOptions): (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,17 @@
1
+ export { Logger } from "./logger.provider.js";
2
+ export * from "./utils/index.js";
3
+ export * from "./transports/index.js";
4
+ export * from "./logger.config.js";
5
+ export * from "./logger.formatter.js";
6
+ export * from "./logger.banner.js";
7
+ export * from "./logger.metrics.js";
8
+ export * from "./logger.metrics-collector.js";
9
+ export * from "./logger.context.js";
10
+ export * from "./logger.redaction.js";
11
+ export * from "./logger.performance.js";
12
+ export * from "./logger.grouping.js";
13
+ export * from "./logger.flow.js";
14
+ export * from "./logger.suggestions.js";
15
+ export * from "./logger.health.js";
16
+ export * from "./logger.query.js";
17
+ export * from "./decorators/index.js";
@@ -0,0 +1,94 @@
1
+ import { IConsoleMessage } from "@expressots/shared";
2
+ import { ApplicationMetrics, FeaturesStatus, BannerConfig } from "./logger.metrics.js";
3
+ import { MiddlewareCategory } from "../../middleware/middleware-service.js";
4
+ /**
5
+ * Middleware view entry for banner display.
6
+ */
7
+ export interface MiddlewareView {
8
+ entries: Array<{
9
+ name: string;
10
+ category: MiddlewareCategory;
11
+ type: "built-in" | "custom";
12
+ }>;
13
+ total: number;
14
+ remaining: number;
15
+ }
16
+ /**
17
+ * Provider view entry for banner display.
18
+ */
19
+ export interface ProviderView {
20
+ entries: Array<{
21
+ name: string;
22
+ scope: string;
23
+ hasLifecycle: boolean;
24
+ hasHealthCheck: boolean;
25
+ hasMetrics: boolean;
26
+ /** Provider is an event handler */
27
+ isEventHandler?: boolean;
28
+ /** Provider is an interceptor */
29
+ isInterceptor?: boolean;
30
+ /** Provider is a lazy module */
31
+ isLazyModule?: boolean;
32
+ }>;
33
+ total: number;
34
+ remaining: number;
35
+ }
36
+ /**
37
+ * Extended banner data including middleware and provider info.
38
+ */
39
+ export interface BannerData {
40
+ appInfo?: IConsoleMessage & {
41
+ apiVersions?: Array<string>;
42
+ };
43
+ metrics?: ApplicationMetrics;
44
+ features?: FeaturesStatus;
45
+ config?: Record<string, unknown>;
46
+ middlewareView?: MiddlewareView;
47
+ providerView?: ProviderView;
48
+ }
49
+ /**
50
+ * Generate startup banner.
51
+ * @public API
52
+ */
53
+ export declare class BannerGenerator {
54
+ private startTime;
55
+ private config;
56
+ constructor(config?: BannerConfig);
57
+ /**
58
+ * Generate and display the banner.
59
+ * @param port - Server port
60
+ * @param environment - Server environment
61
+ * @param appInfo - Application info
62
+ * @param metrics - Application metrics
63
+ * @param features - Features status
64
+ * @param config - Runtime configuration
65
+ * @param bannerData - Extended banner data (middleware/provider views)
66
+ */
67
+ display(port: number, environment: string, appInfo?: IConsoleMessage, metrics?: ApplicationMetrics, features?: FeaturesStatus, config?: Record<string, unknown>, bannerData?: BannerData): void;
68
+ /**
69
+ * Display full banner with clean 3-column layout.
70
+ * Default shows: Banner, Server Status, Configuration, System Health, Performance
71
+ * Optional (user-enabled): Features, Middleware Pipeline, Provider Registry, Resources
72
+ */
73
+ private displayFullBanner;
74
+ /**
75
+ * Display compact banner.
76
+ */
77
+ private displayCompactBanner;
78
+ /**
79
+ * Display minimal banner.
80
+ */
81
+ private displayMinimalBanner;
82
+ /**
83
+ * Color environment based on type.
84
+ */
85
+ private colorEnvironment;
86
+ /**
87
+ * Get color for middleware category.
88
+ */
89
+ private getCategoryColor;
90
+ /**
91
+ * Get color for provider scope.
92
+ */
93
+ private getScopeColor;
94
+ }
@@ -0,0 +1,55 @@
1
+ import { LogLevel, LogLevelString } from "./utils/log-levels.js";
2
+ import { ILogTransport } from "./transports/transport.interface.js";
3
+ import { RedactionConfig } from "./logger.redaction.js";
4
+ import { GroupingConfig } from "./logger.grouping.js";
5
+ import { FlowConfig } from "./logger.flow.js";
6
+ import { SuggestionsConfig } from "./logger.suggestions.js";
7
+ import { HealthConfig } from "./logger.health.js";
8
+ import { QueryConfig } from "./logger.query.js";
9
+ /**
10
+ * Filter configuration for log filtering.
11
+ * @public API
12
+ */
13
+ export interface FilterConfig {
14
+ /** Include only these contexts (empty = all) */
15
+ include?: Array<string>;
16
+ /** Exclude these contexts */
17
+ exclude?: Array<string>;
18
+ /** Minimum request duration to log (in ms) */
19
+ minDuration?: number;
20
+ }
21
+ /**
22
+ * Logger configuration interface.
23
+ * @public API
24
+ */
25
+ export interface LoggerConfig {
26
+ /** Minimum log level to output */
27
+ level: LogLevel | LogLevelString;
28
+ /** Log transports to use */
29
+ transports: Array<ILogTransport>;
30
+ /** Filter configuration */
31
+ filters?: FilterConfig;
32
+ /** Enable structured logging (JSON in production) */
33
+ structured?: boolean;
34
+ /** Enable colors in output (default: true in dev, false in prod) */
35
+ colors?: boolean;
36
+ /** Pretty print output (default: true in dev, false in prod) */
37
+ pretty?: boolean;
38
+ /** Redaction configuration for sensitive data */
39
+ redaction?: Partial<RedactionConfig>;
40
+ /** Log grouping configuration for noise reduction */
41
+ grouping?: Partial<GroupingConfig>;
42
+ /** Flow tracking configuration for request visualization */
43
+ flow?: Partial<FlowConfig>;
44
+ /** Error suggestions configuration */
45
+ suggestions?: Partial<SuggestionsConfig>;
46
+ /** Health monitoring configuration */
47
+ health?: Partial<HealthConfig>;
48
+ /** Log query and export configuration */
49
+ query?: Partial<QueryConfig>;
50
+ }
51
+ /**
52
+ * Default logger configuration.
53
+ * @public API
54
+ */
55
+ export declare function getDefaultLoggerConfig(): LoggerConfig;
@@ -0,0 +1,189 @@
1
+ /**
2
+ * @file logger.context.ts
3
+ * @description Context management for structured logging with automatic detection
4
+ * @module @expressots/core/provider/logger
5
+ *
6
+ * Provides:
7
+ * - Automatic class/method detection from call stack
8
+ * - HTTP request context enrichment
9
+ * - Child logger creation with inherited context
10
+ * - Thread-safe context storage using AsyncLocalStorage
11
+ */
12
+ /**
13
+ * Represents the context for a single log entry.
14
+ * @public API
15
+ */
16
+ export interface LogContext {
17
+ /** Class name (auto-detected or manual) */
18
+ className?: string;
19
+ /** Method name (auto-detected or manual) */
20
+ methodName?: string;
21
+ /** Custom context label */
22
+ label?: string;
23
+ /** Request ID for HTTP requests */
24
+ requestId?: string;
25
+ /** User identifier (if authenticated) */
26
+ userId?: string;
27
+ /** Tenant identifier (for multi-tenant apps) */
28
+ tenantId?: string;
29
+ /** Correlation ID for distributed tracing */
30
+ correlationId?: string;
31
+ /** Parent span ID for tracing */
32
+ parentSpanId?: string;
33
+ /** Custom metadata */
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * HTTP-specific context for request logging.
38
+ * @public API
39
+ */
40
+ export interface HttpContext {
41
+ /** Request ID (generated or from header) */
42
+ requestId: string;
43
+ /** Correlation ID for distributed tracing (defaults to requestId if not provided) */
44
+ correlationId?: string;
45
+ /** HTTP method (GET, POST, etc.) */
46
+ method: string;
47
+ /** Request path */
48
+ path: string;
49
+ /** Client IP address */
50
+ ip?: string;
51
+ /** User agent string */
52
+ userAgent?: string;
53
+ /** User identifier */
54
+ userId?: string;
55
+ /** Tenant identifier */
56
+ tenantId?: string;
57
+ /** Request start time (for duration calculation) */
58
+ startTime: number;
59
+ /** Request headers (selected) */
60
+ headers?: Record<string, string>;
61
+ }
62
+ /**
63
+ * Configuration for automatic context detection.
64
+ * @public API
65
+ */
66
+ export interface ContextDetectionConfig {
67
+ /** Enable automatic class name detection */
68
+ detectClassName: boolean;
69
+ /** Enable automatic method name detection */
70
+ detectMethodName: boolean;
71
+ /** Maximum stack depth to search */
72
+ maxStackDepth: number;
73
+ /** Patterns to skip in stack trace (e.g., node_modules) */
74
+ skipPatterns: Array<RegExp>;
75
+ }
76
+ /**
77
+ * Default configuration for context detection.
78
+ */
79
+ export declare function getDefaultContextDetectionConfig(): ContextDetectionConfig;
80
+ /**
81
+ * Context manager for the logging system.
82
+ * Provides automatic context detection and management.
83
+ * @public API
84
+ */
85
+ export declare class ContextManager {
86
+ private static config;
87
+ private static globalContext;
88
+ /**
89
+ * Configure context detection behavior.
90
+ * @param config - Partial configuration to merge
91
+ */
92
+ static configure(config: Partial<ContextDetectionConfig>): void;
93
+ /**
94
+ * Set global context that applies to all logs.
95
+ * @param context - Global context to set
96
+ */
97
+ static setGlobalContext(context: LogContext): void;
98
+ /**
99
+ * Get the current global context.
100
+ */
101
+ static getGlobalContext(): LogContext;
102
+ /**
103
+ * Get the current request-scoped context.
104
+ */
105
+ static getCurrentContext(): LogContext | undefined;
106
+ /**
107
+ * Run a function with a specific context.
108
+ * The context will be available to all async operations within the function.
109
+ * @param context - Context to use
110
+ * @param fn - Function to run
111
+ * @returns Result of the function
112
+ */
113
+ static runWithContext<T>(context: LogContext, fn: () => T): T;
114
+ /**
115
+ * Run an async function with a specific context.
116
+ * @param context - Context to use
117
+ * @param fn - Async function to run
118
+ * @returns Promise with result of the function
119
+ */
120
+ static runWithContextAsync<T>(context: LogContext, fn: () => Promise<T>): Promise<T>;
121
+ /**
122
+ * Get the merged context (global + request-scoped + auto-detected).
123
+ * @param manualContext - Optional manual context to include
124
+ * @param skipAutoDetect - Skip automatic detection (for performance)
125
+ * @returns Merged context
126
+ */
127
+ static getContext(manualContext?: Partial<LogContext>, skipAutoDetect?: boolean): LogContext;
128
+ /**
129
+ * Automatically detect context from the call stack.
130
+ * @returns Detected context
131
+ */
132
+ static autoDetectContext(): Partial<LogContext>;
133
+ /**
134
+ * Parse a stack frame to extract the function/method name.
135
+ */
136
+ private static getCallStack;
137
+ /**
138
+ * Parse a function name to extract class and method names.
139
+ * Handles patterns like:
140
+ * - "ClassName.methodName"
141
+ * - "ClassName.prototype.methodName"
142
+ * - "methodName" (standalone function)
143
+ */
144
+ private static parseFrameName;
145
+ /**
146
+ * Create HTTP context from an Express request.
147
+ * @param req - Express request object
148
+ * @param options - Optional header configuration
149
+ * @returns HTTP context
150
+ */
151
+ static createHttpContext(req: {
152
+ method?: string;
153
+ path?: string;
154
+ url?: string;
155
+ ip?: string;
156
+ headers?: Record<string, string | Array<string> | undefined>;
157
+ user?: any;
158
+ }, options?: {
159
+ requestIdHeader?: string;
160
+ correlationIdHeader?: string;
161
+ }): HttpContext;
162
+ /**
163
+ * Generate a unique request ID.
164
+ * Uses a combination of timestamp and random string.
165
+ */
166
+ static generateRequestId(): string;
167
+ /**
168
+ * Extract safe headers (exclude sensitive ones).
169
+ */
170
+ private static extractSafeHeaders;
171
+ /**
172
+ * Format context for display (e.g., "[ClassName.methodName]").
173
+ * @param context - Context to format
174
+ * @returns Formatted string
175
+ */
176
+ static formatContext(context: LogContext): string;
177
+ }
178
+ /**
179
+ * Decorator for automatically setting context on a class.
180
+ * @param contextName - Context name to use (defaults to class name)
181
+ * @returns Class decorator
182
+ */
183
+ export declare function LogContext(contextName?: string): ClassDecorator;
184
+ /**
185
+ * Decorator for automatically setting context on a method.
186
+ * @param contextName - Context name to use (defaults to method name)
187
+ * @returns Method decorator
188
+ */
189
+ export declare function LogMethod(contextName?: string): MethodDecorator;
@@ -0,0 +1,165 @@
1
+ /**
2
+ * @file logger.flow.ts
3
+ * @description Request flow tracking and visualization system
4
+ * @module @expressots/core
5
+ *
6
+ * Features:
7
+ * - Track request flow through middleware, guards, controllers
8
+ * - Structured JSON data for web UI consumption
9
+ * - ASCII visualization for console display
10
+ * - Timing data for each step
11
+ * - Memory tracking
12
+ */
13
+ /**
14
+ * Type of flow step.
15
+ * @public API
16
+ */
17
+ export type FlowStepType = "middleware" | "guard" | "validation" | "controller" | "use-case" | "exception-filter" | "response";
18
+ /**
19
+ * Status of a flow step.
20
+ * @public API
21
+ */
22
+ export type FlowStepStatus = "success" | "failure" | "skipped";
23
+ /**
24
+ * A single step in the request flow.
25
+ * @public API
26
+ */
27
+ export interface FlowStep {
28
+ /** Type of step */
29
+ type: FlowStepType;
30
+ /** Name/identifier of the step */
31
+ name: string;
32
+ /** Duration in milliseconds */
33
+ duration: number;
34
+ /** Status of the step */
35
+ status: FlowStepStatus;
36
+ /** Additional metadata */
37
+ metadata?: Record<string, unknown>;
38
+ /** Nested child steps (for complex flows) */
39
+ children?: Array<FlowStep>;
40
+ /** Start time (high-resolution timestamp) */
41
+ startTime: number;
42
+ /** End time (high-resolution timestamp) */
43
+ endTime: number;
44
+ }
45
+ /**
46
+ * Complete request flow data.
47
+ * @public API
48
+ */
49
+ export interface RequestFlow {
50
+ /** Unique request identifier */
51
+ requestId: string;
52
+ /** HTTP method */
53
+ method: string;
54
+ /** HTTP path */
55
+ path: string;
56
+ /** Request start time (high-resolution timestamp) */
57
+ startTime: number;
58
+ /** Request end time (high-resolution timestamp) */
59
+ endTime: number;
60
+ /** Total duration in milliseconds */
61
+ totalDuration: number;
62
+ /** Flow steps */
63
+ steps: Array<FlowStep>;
64
+ /** Memory delta in bytes */
65
+ memoryDelta: number;
66
+ /** HTTP status code */
67
+ statusCode?: number;
68
+ /** Error if request failed */
69
+ error?: {
70
+ message: string;
71
+ stack?: string;
72
+ name?: string;
73
+ };
74
+ }
75
+ /**
76
+ * Configuration for flow tracking.
77
+ * @public API
78
+ */
79
+ export interface FlowConfig {
80
+ /** Enable flow tracking */
81
+ enabled: boolean;
82
+ /** Show flow visualization in console (dev mode) */
83
+ showVisualization: boolean;
84
+ /** Minimum duration to show flow (ms) - only show slow requests */
85
+ minDuration?: number;
86
+ /** Track memory usage */
87
+ trackMemory: boolean;
88
+ /** Track nested steps */
89
+ trackNested: boolean;
90
+ }
91
+ /**
92
+ * Default flow configuration.
93
+ */
94
+ export declare function getDefaultFlowConfig(): FlowConfig;
95
+ /**
96
+ * Flow tracker for a single request.
97
+ * Tracks the complete lifecycle of a request through the application.
98
+ * @public API
99
+ */
100
+ export declare class FlowTracker {
101
+ private flow;
102
+ private currentStep;
103
+ private stepStack;
104
+ private config;
105
+ private startMemory;
106
+ /**
107
+ * Create a new flow tracker for a request.
108
+ */
109
+ constructor(requestId: string, method: string, path: string, config?: Partial<FlowConfig>);
110
+ /**
111
+ * Start tracking a new step.
112
+ */
113
+ startStep(type: FlowStepType, name: string, metadata?: Record<string, unknown>): void;
114
+ /**
115
+ * End the current step.
116
+ */
117
+ endStep(status?: FlowStepStatus, error?: Error): void;
118
+ /**
119
+ * Mark current step as skipped.
120
+ */
121
+ skipStep(): void;
122
+ /**
123
+ * Mark current step as failed.
124
+ */
125
+ failStep(error?: Error): void;
126
+ /**
127
+ * Finalize the flow and return the complete flow data.
128
+ */
129
+ finalize(statusCode?: number, error?: Error): RequestFlow;
130
+ /**
131
+ * Get the current flow data (without finalizing).
132
+ */
133
+ getFlow(): RequestFlow;
134
+ /**
135
+ * Check if flow tracking is enabled.
136
+ */
137
+ isEnabled(): boolean;
138
+ /**
139
+ * Check if visualization should be shown.
140
+ */
141
+ shouldShowVisualization(): boolean;
142
+ }
143
+ /**
144
+ * Get or create a flow tracker for a request.
145
+ * @param requestId - Request identifier
146
+ * @param method - HTTP method
147
+ * @param path - HTTP path
148
+ * @param config - Flow configuration
149
+ * @returns FlowTracker instance
150
+ * @public API
151
+ */
152
+ export declare function getFlowTracker(requestId: string, method: string, path: string, config?: Partial<FlowConfig>): FlowTracker;
153
+ /**
154
+ * Get existing flow tracker for a request.
155
+ * @param requestId - Request identifier
156
+ * @returns FlowTracker instance or undefined
157
+ * @public API
158
+ */
159
+ export declare function findFlowTracker(requestId: string): FlowTracker | undefined;
160
+ /**
161
+ * Remove flow tracker (cleanup after request completes).
162
+ * @param requestId - Request identifier
163
+ * @public API
164
+ */
165
+ export declare function removeFlowTracker(requestId: string): void;
@@ -0,0 +1,44 @@
1
+ import { LogEntry } from "./utils/log-entry.js";
2
+ import { Redactor } from "./logger.redaction.js";
3
+ import { GroupedLogEntry } from "./logger.grouping.js";
4
+ /**
5
+ * Options for log formatting.
6
+ */
7
+ export interface FormatOptions {
8
+ /** Enable redaction of sensitive data */
9
+ redact?: boolean;
10
+ /** Custom redactor instance (uses global if not provided) */
11
+ redactor?: Redactor;
12
+ }
13
+ /**
14
+ * Format log entry for development (human-readable, colored).
15
+ * @param entry - Log entry to format
16
+ * @param options - Formatting options (redaction, etc.)
17
+ * @returns Formatted string
18
+ * @public API
19
+ */
20
+ export declare function formatDev(entry: LogEntry, options?: FormatOptions): string;
21
+ /**
22
+ * Format log entry for production (JSON structured).
23
+ * @param entry - Log entry to format
24
+ * @param options - Formatting options (redaction, etc.)
25
+ * @returns JSON string
26
+ * @public API
27
+ */
28
+ export declare function formatProd(entry: LogEntry, options?: FormatOptions): string;
29
+ /**
30
+ * Format a grouped log entry for development output.
31
+ * @param groupedEntry - Grouped log entry
32
+ * @param options - Formatting options
33
+ * @returns Formatted string
34
+ * @public API
35
+ */
36
+ export declare function formatGroupedDev(groupedEntry: GroupedLogEntry, options?: FormatOptions): string;
37
+ /**
38
+ * Format a grouped log entry for production (JSON).
39
+ * @param groupedEntry - Grouped log entry
40
+ * @param options - Formatting options
41
+ * @returns JSON string
42
+ * @public API
43
+ */
44
+ export declare function formatGroupedProd(groupedEntry: GroupedLogEntry, options?: FormatOptions): string;