@expressots/adapter-express 3.0.0 → 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 (239) hide show
  1. package/README.md +39 -96
  2. package/lib/CHANGELOG.md +31 -5
  3. package/lib/README.md +39 -96
  4. package/lib/cjs/adapter-express/application-express.base.js +3 -1
  5. package/lib/cjs/adapter-express/application-express.js +1049 -85
  6. package/lib/cjs/adapter-express/express-utils/conditional-middleware.js +102 -0
  7. package/lib/cjs/adapter-express/express-utils/constants.js +17 -0
  8. package/lib/cjs/adapter-express/express-utils/content-negotiation-decorators.js +129 -0
  9. package/lib/cjs/adapter-express/express-utils/decorators.js +186 -49
  10. package/lib/cjs/adapter-express/express-utils/exception-filter-decorators.js +11 -0
  11. package/lib/cjs/adapter-express/express-utils/guard-context-factory.js +84 -0
  12. package/lib/cjs/adapter-express/express-utils/guard-middleware.js +115 -0
  13. package/lib/cjs/adapter-express/express-utils/guard-utils.js +18 -0
  14. package/lib/cjs/adapter-express/express-utils/http-context-store.js +15 -0
  15. package/lib/cjs/adapter-express/express-utils/http-status-middleware.js +37 -2
  16. package/lib/cjs/adapter-express/express-utils/index.js +67 -1
  17. package/lib/cjs/adapter-express/express-utils/interceptor-middleware.js +132 -0
  18. package/lib/cjs/adapter-express/express-utils/inversify-express-server.js +810 -63
  19. package/lib/cjs/adapter-express/express-utils/lazy-module-middleware.js +241 -0
  20. package/lib/cjs/adapter-express/express-utils/middleware-composition.js +95 -0
  21. package/lib/cjs/adapter-express/express-utils/permission-preloader.middleware.js +48 -0
  22. package/lib/cjs/adapter-express/express-utils/route-constraints.js +95 -0
  23. package/lib/cjs/adapter-express/express-utils/scope-extractor.interface.js +2 -0
  24. package/lib/cjs/adapter-express/express-utils/scope-extractor.js +66 -0
  25. package/lib/cjs/adapter-express/express-utils/setup-authorization.js +71 -0
  26. package/lib/cjs/adapter-express/express-utils/setup-event-system.js +113 -0
  27. package/lib/cjs/adapter-express/express-utils/setup-interceptors.js +103 -0
  28. package/lib/cjs/adapter-express/express-utils/setup-lazy-loading.js +228 -0
  29. package/lib/cjs/adapter-express/express-utils/utils.js +30 -12
  30. package/lib/cjs/adapter-express/express-utils/validation-decorators.js +205 -0
  31. package/lib/cjs/adapter-express/express-utils/validation-service.js +252 -0
  32. package/lib/cjs/adapter-express/index.js +7 -5
  33. package/lib/cjs/adapter-express/micro-api/application-express-micro-route.js +31 -1
  34. package/lib/cjs/adapter-express/micro-api/application-express-micro.js +11 -37
  35. package/lib/cjs/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
  36. package/lib/cjs/adapter-express/micro-api/gateway/index.js +11 -0
  37. package/lib/cjs/adapter-express/micro-api/gateway/service-proxy.js +214 -0
  38. package/lib/cjs/adapter-express/micro-api/index.js +27 -3
  39. package/lib/cjs/adapter-express/micro-api/micro.js +217 -0
  40. package/lib/cjs/adapter-express/micro-api/queue/index.js +8 -0
  41. package/lib/cjs/adapter-express/micro-api/queue/queue.interface.js +2 -0
  42. package/lib/cjs/adapter-express/micro-api/queue/rabbitmq-consumer.js +255 -0
  43. package/lib/cjs/adapter-express/micro-api/serverless/aws-lambda.adapter.js +183 -0
  44. package/lib/cjs/adapter-express/micro-api/serverless/cloudflare.adapter.js +158 -0
  45. package/lib/cjs/adapter-express/micro-api/serverless/index.js +12 -0
  46. package/lib/cjs/adapter-express/micro-api/serverless/vercel.adapter.js +102 -0
  47. package/lib/cjs/adapter-express/micro-api/service-mesh/index.js +10 -0
  48. package/lib/cjs/adapter-express/micro-api/service-mesh/service-client.js +194 -0
  49. package/lib/cjs/adapter-express/micro-api/service-mesh/service-discovery.js +261 -0
  50. package/lib/cjs/adapter-express/middleware/index.js +21 -0
  51. package/lib/cjs/adapter-express/middleware/request-logging.middleware.js +244 -0
  52. package/lib/cjs/adapter-express/render/engine.js +15 -15
  53. package/lib/cjs/adapter-express/render/index.js +5 -0
  54. package/lib/cjs/adapter-express/studio/index.js +9 -0
  55. package/lib/cjs/adapter-express/studio/studio-integration.js +214 -0
  56. package/lib/cjs/index.js +1 -1
  57. package/lib/cjs/types/adapter-express/application-express.base.d.ts +20 -7
  58. package/lib/cjs/types/adapter-express/application-express.d.ts +273 -32
  59. package/lib/cjs/types/adapter-express/express-utils/base-middleware.d.ts +2 -2
  60. package/lib/cjs/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
  61. package/lib/cjs/types/adapter-express/express-utils/constants.d.ts +13 -0
  62. package/lib/cjs/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
  63. package/lib/cjs/types/adapter-express/express-utils/decorators.d.ts +54 -6
  64. package/lib/cjs/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
  65. package/lib/cjs/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
  66. package/lib/cjs/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
  67. package/lib/cjs/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
  68. package/lib/cjs/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
  69. package/lib/cjs/types/adapter-express/express-utils/httpResponseMessage.d.ts +1 -1
  70. package/lib/cjs/types/adapter-express/express-utils/index.d.ts +30 -2
  71. package/lib/cjs/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
  72. package/lib/cjs/types/adapter-express/express-utils/interfaces.d.ts +42 -5
  73. package/lib/cjs/types/adapter-express/express-utils/inversify-express-server.d.ts +114 -2
  74. package/lib/cjs/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
  75. package/lib/cjs/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
  76. package/lib/cjs/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
  77. package/lib/cjs/types/adapter-express/express-utils/route-constraints.d.ts +89 -0
  78. package/lib/cjs/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
  79. package/lib/cjs/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
  80. package/lib/cjs/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
  81. package/lib/cjs/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
  82. package/lib/cjs/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
  83. package/lib/cjs/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
  84. package/lib/cjs/types/adapter-express/express-utils/utils.d.ts +17 -2
  85. package/lib/cjs/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
  86. package/lib/cjs/types/adapter-express/express-utils/validation-service.d.ts +88 -0
  87. package/lib/cjs/types/adapter-express/index.d.ts +6 -4
  88. package/lib/cjs/types/adapter-express/micro-api/application-express-micro-route.d.ts +25 -14
  89. package/lib/cjs/types/adapter-express/micro-api/application-express-micro.d.ts +3 -10
  90. package/lib/cjs/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
  91. package/lib/cjs/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
  92. package/lib/cjs/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
  93. package/lib/cjs/types/adapter-express/micro-api/index.d.ts +7 -1
  94. package/lib/cjs/types/adapter-express/micro-api/micro.d.ts +66 -0
  95. package/lib/cjs/types/adapter-express/micro-api/queue/index.d.ts +5 -0
  96. package/lib/cjs/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
  97. package/lib/cjs/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
  98. package/lib/cjs/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
  99. package/lib/cjs/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
  100. package/lib/cjs/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
  101. package/lib/cjs/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
  102. package/lib/cjs/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
  103. package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
  104. package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
  105. package/lib/cjs/types/adapter-express/middleware/index.d.ts +5 -0
  106. package/lib/cjs/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
  107. package/lib/cjs/types/adapter-express/render/index.d.ts +1 -0
  108. package/lib/cjs/types/adapter-express/studio/index.d.ts +1 -0
  109. package/lib/cjs/types/adapter-express/studio/studio-integration.d.ts +92 -0
  110. package/lib/cjs/types/index.d.ts +1 -1
  111. package/lib/esm/adapter-express/application-express.base.js +24 -0
  112. package/lib/esm/adapter-express/application-express.js +1300 -0
  113. package/lib/esm/adapter-express/application-express.types.js +1 -0
  114. package/lib/esm/adapter-express/express-utils/base-middleware.js +19 -0
  115. package/lib/esm/adapter-express/express-utils/conditional-middleware.js +96 -0
  116. package/lib/esm/adapter-express/express-utils/constants.js +63 -0
  117. package/lib/esm/adapter-express/express-utils/content/httpContent.js +6 -0
  118. package/lib/esm/adapter-express/express-utils/content-negotiation-decorators.js +120 -0
  119. package/lib/esm/adapter-express/express-utils/decorators.js +575 -0
  120. package/lib/esm/adapter-express/express-utils/exception-filter-decorators.js +6 -0
  121. package/lib/esm/adapter-express/express-utils/guard-context-factory.js +83 -0
  122. package/lib/esm/adapter-express/express-utils/guard-middleware.js +115 -0
  123. package/lib/esm/adapter-express/express-utils/guard-utils.js +14 -0
  124. package/lib/esm/adapter-express/express-utils/http-context-store.js +10 -0
  125. package/lib/esm/adapter-express/express-utils/http-status-middleware.js +116 -0
  126. package/lib/esm/adapter-express/express-utils/httpResponseMessage.js +29 -0
  127. package/lib/esm/adapter-express/express-utils/index.js +24 -0
  128. package/lib/esm/adapter-express/express-utils/interceptor-middleware.js +130 -0
  129. package/lib/esm/adapter-express/express-utils/interfaces.js +1 -0
  130. package/lib/esm/adapter-express/express-utils/inversify-express-server.js +1031 -0
  131. package/lib/esm/adapter-express/express-utils/lazy-module-middleware.js +236 -0
  132. package/lib/esm/adapter-express/express-utils/middleware-composition.js +89 -0
  133. package/lib/esm/adapter-express/express-utils/permission-preloader.middleware.js +45 -0
  134. package/lib/esm/adapter-express/express-utils/resolver-multer.js +30 -0
  135. package/lib/esm/adapter-express/express-utils/route-constraints.js +91 -0
  136. package/lib/esm/adapter-express/express-utils/scope-extractor.interface.js +1 -0
  137. package/lib/esm/adapter-express/express-utils/scope-extractor.js +63 -0
  138. package/lib/esm/adapter-express/express-utils/setup-authorization.js +68 -0
  139. package/lib/esm/adapter-express/express-utils/setup-event-system.js +110 -0
  140. package/lib/esm/adapter-express/express-utils/setup-interceptors.js +100 -0
  141. package/lib/esm/adapter-express/express-utils/setup-lazy-loading.js +225 -0
  142. package/lib/esm/adapter-express/express-utils/utils.js +68 -0
  143. package/lib/esm/adapter-express/express-utils/validation-decorators.js +199 -0
  144. package/lib/esm/adapter-express/express-utils/validation-service.js +251 -0
  145. package/lib/esm/adapter-express/index.js +7 -0
  146. package/lib/esm/adapter-express/micro-api/application-express-micro-container.js +48 -0
  147. package/lib/esm/adapter-express/micro-api/application-express-micro-route.js +128 -0
  148. package/lib/esm/adapter-express/micro-api/application-express-micro.js +161 -0
  149. package/lib/esm/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
  150. package/lib/esm/adapter-express/micro-api/gateway/index.js +5 -0
  151. package/lib/esm/adapter-express/micro-api/gateway/service-proxy.js +210 -0
  152. package/lib/esm/adapter-express/micro-api/index.js +10 -0
  153. package/lib/esm/adapter-express/micro-api/micro.js +211 -0
  154. package/lib/esm/adapter-express/micro-api/queue/index.js +4 -0
  155. package/lib/esm/adapter-express/micro-api/queue/queue.interface.js +1 -0
  156. package/lib/esm/adapter-express/micro-api/queue/rabbitmq-consumer.js +229 -0
  157. package/lib/esm/adapter-express/micro-api/serverless/aws-lambda.adapter.js +180 -0
  158. package/lib/esm/adapter-express/micro-api/serverless/cloudflare.adapter.js +155 -0
  159. package/lib/esm/adapter-express/micro-api/serverless/index.js +6 -0
  160. package/lib/esm/adapter-express/micro-api/serverless/vercel.adapter.js +99 -0
  161. package/lib/esm/adapter-express/micro-api/service-mesh/index.js +5 -0
  162. package/lib/esm/adapter-express/micro-api/service-mesh/service-client.js +191 -0
  163. package/lib/esm/adapter-express/micro-api/service-mesh/service-discovery.js +259 -0
  164. package/lib/esm/adapter-express/middleware/index.js +5 -0
  165. package/lib/esm/adapter-express/middleware/request-logging.middleware.js +239 -0
  166. package/lib/esm/adapter-express/render/constants.js +37 -0
  167. package/lib/esm/adapter-express/render/engine.js +51 -0
  168. package/lib/esm/adapter-express/render/index.js +1 -0
  169. package/lib/esm/adapter-express/render/resolve-render.js +30 -0
  170. package/lib/esm/adapter-express/studio/index.js +1 -0
  171. package/lib/esm/adapter-express/studio/studio-integration.js +184 -0
  172. package/lib/esm/index.mjs +1 -0
  173. package/lib/esm/package.json +3 -0
  174. package/lib/esm/types/adapter-express/application-express.base.d.ts +77 -0
  175. package/lib/esm/types/adapter-express/application-express.d.ts +411 -0
  176. package/lib/esm/types/adapter-express/application-express.types.d.ts +23 -0
  177. package/lib/esm/types/adapter-express/express-utils/base-middleware.d.ts +8 -0
  178. package/lib/esm/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
  179. package/lib/esm/types/adapter-express/express-utils/constants.d.ts +57 -0
  180. package/lib/esm/types/adapter-express/express-utils/content/httpContent.d.ts +6 -0
  181. package/lib/esm/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
  182. package/lib/esm/types/adapter-express/express-utils/decorators.d.ts +257 -0
  183. package/lib/esm/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
  184. package/lib/esm/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
  185. package/lib/esm/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
  186. package/lib/esm/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
  187. package/lib/esm/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
  188. package/lib/esm/types/adapter-express/express-utils/http-status-middleware.d.ts +26 -0
  189. package/lib/esm/types/adapter-express/express-utils/httpResponseMessage.d.ts +14 -0
  190. package/lib/esm/types/adapter-express/express-utils/index.d.ts +30 -0
  191. package/lib/esm/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
  192. package/lib/esm/types/adapter-express/express-utils/interfaces.d.ts +115 -0
  193. package/lib/esm/types/adapter-express/express-utils/inversify-express-server.d.ts +172 -0
  194. package/lib/esm/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
  195. package/lib/esm/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
  196. package/lib/esm/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
  197. package/lib/esm/types/adapter-express/express-utils/resolver-multer.d.ts +7 -0
  198. package/lib/esm/types/adapter-express/express-utils/route-constraints.d.ts +89 -0
  199. package/lib/esm/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
  200. package/lib/esm/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
  201. package/lib/esm/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
  202. package/lib/esm/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
  203. package/lib/esm/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
  204. package/lib/esm/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
  205. package/lib/esm/types/adapter-express/express-utils/utils.d.ts +24 -0
  206. package/lib/esm/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
  207. package/lib/esm/types/adapter-express/express-utils/validation-service.d.ts +88 -0
  208. package/lib/esm/types/adapter-express/index.d.ts +7 -0
  209. package/lib/esm/types/adapter-express/micro-api/application-express-micro-container.d.ts +47 -0
  210. package/lib/esm/types/adapter-express/micro-api/application-express-micro-route.d.ts +104 -0
  211. package/lib/esm/types/adapter-express/micro-api/application-express-micro.d.ts +72 -0
  212. package/lib/esm/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
  213. package/lib/esm/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
  214. package/lib/esm/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
  215. package/lib/esm/types/adapter-express/micro-api/index.d.ts +7 -0
  216. package/lib/esm/types/adapter-express/micro-api/micro.d.ts +66 -0
  217. package/lib/esm/types/adapter-express/micro-api/queue/index.d.ts +5 -0
  218. package/lib/esm/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
  219. package/lib/esm/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
  220. package/lib/esm/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
  221. package/lib/esm/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
  222. package/lib/esm/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
  223. package/lib/esm/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
  224. package/lib/esm/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
  225. package/lib/esm/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
  226. package/lib/esm/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
  227. package/lib/esm/types/adapter-express/middleware/index.d.ts +5 -0
  228. package/lib/esm/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
  229. package/lib/esm/types/adapter-express/render/constants.d.ts +26 -0
  230. package/lib/esm/types/adapter-express/render/engine.d.ts +20 -0
  231. package/lib/esm/types/adapter-express/render/index.d.ts +5 -0
  232. package/lib/esm/types/adapter-express/render/resolve-render.d.ts +7 -0
  233. package/lib/esm/types/adapter-express/studio/index.d.ts +1 -0
  234. package/lib/esm/types/adapter-express/studio/studio-integration.d.ts +92 -0
  235. package/lib/esm/types/index.d.ts +1 -0
  236. package/lib/package.json +156 -146
  237. package/package.json +156 -146
  238. package/lib/cjs/di/di.interfaces.js +0 -10
  239. package/lib/cjs/types/di/di.interfaces.d.ts +0 -289
package/README.md CHANGED
@@ -1,118 +1,61 @@
1
- <a name="readme-top"></a>
2
-
3
- <!-- PROJECT SHIELDS -->
4
-
5
- [![Codecov][codecov-shield]][codecov-url]
6
- [![NPM][npm-shield]][npm-url]
7
- ![Build][build-shield]
8
- [![Contributors][contributors-shield]][contributors-url]
9
- [![Forks][forks-shield]][forks-url]
10
- [![Stargazers][stars-shield]][stars-url]
11
- [![Issues][issues-shield]][issues-url]
12
- [![MIT License][license-shield]][license-url]
13
- [![LinkedIn][linkedin-shield]][linkedin-url]
14
-
15
- <!-- PROJECT LOGO -->
16
- <br />
17
1
  <div align="center">
18
- <a href="https://github.com/othneildrew/Best-README-Template">
19
- <img src="https://github.com/expressots/expressots/blob/main/media/expressots.png" alt="Logo" width="120">
2
+ <a href="https://expresso-ts.com">
3
+ <img src="https://github.com/expressots/expressots/blob/main/media/expressots.png" alt="ExpressoTS" width="120">
20
4
  </a>
21
5
 
22
- <h3 align="center">ExpressoTS Framework</h3>
23
-
24
- <p align="center">
25
- Everything you need to know to build applications with ExpressoTS
26
- <br />
27
- <a href="https://doc.expresso-ts.com/"><strong>Explore the docs »</strong></a>
28
- <br />
29
- <br />
30
- <a href="https://github.com/expressots/expressots/discussions">Let's discuss</a>
31
- ·
32
- <a href="https://github.com/expressots/expressots/issues">Report Bug</a>
33
- ·
34
- <a href="https://github.com/expressots/expressots/issues">Request Feature</a>
6
+ <h1>@expressots/adapter-express</h1>
7
+
8
+ <p>Express HTTP adapter for ExpressoTS — connects the framework core to the Express.js server engine.</p>
9
+
10
+ <p>
11
+ <a href="https://www.npmjs.com/package/@expressots/adapter-express"><img src="https://img.shields.io/npm/v/@expressots/adapter-express?style=flat&color=0d0d0d" alt="npm"></a>
12
+ <a href="https://github.com/expressots/adapter-express/blob/main/LICENSE.md"><img src="https://img.shields.io/github/license/expressots/adapter-express?style=flat&color=0d0d0d" alt="License"></a>
13
+ <a href="https://discord.com/invite/PyPJfGK"><img src="https://img.shields.io/badge/Discord-join-0d0d0d?logo=discord&logoColor=white" alt="Discord"></a>
35
14
  </p>
36
- </div>
37
15
 
38
- <!-- TABLE OF CONTENTS -->
39
- <details>
40
- <summary>Table of Contents</summary>
41
- <ol>
42
- <li><a href="#about-the-project">About The Project</a></li>
43
- <li><a href="#getting-started">Getting Started</a></li>
44
- <li><a href="#contributing">Contributing</a></li>
45
- <li><a href="#support-the-project">Support the project</a></li>
46
- <li><a href="#license">License</a></li>
47
- </ol>
48
- </details>
16
+ <p>
17
+ <a href="https://doc.expresso-ts.com">Documentation</a> ·
18
+ <a href="https://doc.expresso-ts.com/docs/core/first-steps">Getting Started</a> ·
19
+ <a href="https://discord.com/invite/PyPJfGK">Community</a>
20
+ </p>
21
+ </div>
49
22
 
50
- <!-- ABOUT THE PROJECT -->
23
+ ---
51
24
 
52
- # About The Project
25
+ ## Install
53
26
 
54
- ExpressoTS is a [Typescript](https://www.typescriptlang.org/) + [Node.js](https://nodejs.org/en/) lightweight framework for quick building scalable, easy to read and maintain, server-side applications 🐎
27
+ ```bash
28
+ npm i @expressots/adapter-express
29
+ ```
55
30
 
56
- ## Getting Started
31
+ ## What This Package Does
57
32
 
58
- - Here is our [Site](https://expresso-ts.com/)
59
- - You can find our [Documentation here](https://doc.expresso-ts.com/)
60
- - Checkout our [First Steps documentation](https://doc.expresso-ts.com/docs/overview/first-steps)
61
- - Our [CLI Documentation](https://doc.expresso-ts.com/docs/cli/overview)
33
+ This adapter bridges ExpressoTS Core and Express.js. It provides the HTTP server implementation, route registration, middleware pipeline, and the `App` class that wires everything together. Install it alongside `@expressots/core` to run ExpressoTS on Express.
62
34
 
63
- ## Contributing
35
+ ## Quick Look
64
36
 
65
- Welcome to the ExpressoTS community, a place bustling with innovative minds just like yours. We're absolutely thrilled to have you here!
66
- ExpressoTS is more than just a TypeScript framework; it's a collective effort by developers who are passionate about creating a more efficient, secure, and robust web ecosystem. We firmly believe that the best ideas come from a diversity of perspectives, backgrounds, and skills.
37
+ ```typescript
38
+ import { ExpressAdapter } from "@expressots/adapter-express";
67
39
 
68
- Why Contribute to Documentation?
40
+ // Used as the server adapter when bootstrapping your ExpressoTS application
41
+ const app = await AppFactory.create(App, ExpressAdapter);
42
+ await app.listen(3000, "development");
43
+ ```
69
44
 
70
- - **Share Knowledge**: If you've figured out something cool, why keep it to yourself?
71
- - **Build Your Portfolio**: Contributing to an open-source project like ExpressoTS is a great way to showcase your skills.
72
- - **Join a Network**: Get to know a community of like-minded developers.
73
- - **Improve the Product**: Help us fill in the gaps, correct errors, or make complex topics easier to understand.
45
+ ## Documentation
74
46
 
75
- Ready to contribute?
47
+ For guides, API reference, architecture patterns, and examples visit **[doc.expresso-ts.com](https://doc.expresso-ts.com)**.
76
48
 
77
- - [Contributing Guidelines](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md)
78
- - [How to Contribute](https://github.com/expressots/expressots/blob/main/CONTRIBUTING_HOWTO.md)
79
- - [Coding Guidelines](https://github.com/rsaz/TypescriptCodingGuidelines)
49
+ ## Contributing
80
50
 
81
- ## Support the project
51
+ See the [Contributing Guide](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md) for how to get involved.
82
52
 
83
- ExpressoTS is an independent open source project with ongoing development made possible thanks to your support. If you'd like to help, please consider:
53
+ ## Support
84
54
 
85
- - Become a **[sponsor on GitHub](https://github.com/sponsors/expressots)**
86
- - Follow the **[organization](https://github.com/expressots)** on GitHub and Star ⭐ the project
87
- - Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
88
- - Join our **[Discord](https://discord.com/invite/PyPJfGK)**
89
- - Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues)**
90
- - Share the project with your friends and colleagues
55
+ - [GitHub Sponsors](https://github.com/sponsors/expressots)
56
+ - [Discord](https://discord.com/invite/PyPJfGK)
57
+ - [Report an Issue](https://github.com/expressots/adapter-express/issues)
91
58
 
92
59
  ## License
93
60
 
94
- Distributed under the MIT License. See [`LICENSE.txt`](https://github.com/expressots/expressots/blob/main/LICENSE) for more information.
95
-
96
- <p align="right">(<a href="#readme-top">back to top</a>)</p>
97
-
98
- <!-- MARKDOWN LINKS & IMAGES -->
99
- <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
100
-
101
- [codecov-url]: https://codecov.io/gh/expressots/adapter-express
102
- [codecov-shield]: https://img.shields.io/codecov/c/gh/expressots/adapter-express/main?style=for-the-badge&logo=codecov&labelColor=FB9AD1
103
- [npm-url]: https://www.npmjs.com/package/@expressots/adapter-express
104
- [npm-shield]: https://img.shields.io/npm/v/@expressots/adapter-express?style=for-the-badge&logo=npm&color=9B3922
105
- [build-shield]: https://img.shields.io/github/actions/workflow/status/expressots/adapter-express/build.yaml?branch=main&style=for-the-badge&logo=github
106
- [contributors-shield]: https://img.shields.io/github/contributors/expressots/adapter-express?style=for-the-badge
107
- [contributors-url]: https://github.com/expressots/adapter-express/graphs/contributors
108
- [forks-shield]: https://img.shields.io/github/forks/expressots/adapter-express?style=for-the-badge
109
- [forks-url]: https://github.com/expressots/adapter-express/forks
110
- [stars-shield]: https://img.shields.io/github/stars/expressots/adapter-express?style=for-the-badge
111
- [stars-url]: https://github.com/expressots/adapter-express/stargazers
112
- [issues-shield]: https://img.shields.io/github/issues/expressots/adapter-express?style=for-the-badge
113
- [issues-url]: https://github.com/expressots/expressadapter-expressots/issues
114
- [license-shield]: https://img.shields.io/github/license/expressots/adapter-express?style=for-the-badge
115
- [license-url]: https://github.com/expressots/adapter-express/blob/main/LICENSE
116
- [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
117
- [linkedin-url]: https://www.linkedin.com/company/expresso-ts/
118
- [product-screenshot]: images/screenshot.png
61
+ MIT see [LICENSE](./LICENSE.md).
package/lib/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
-
2
-
1
+ ## [4.0.0](https://github.com/expressots/adapter-express/compare/3.0.0...4.0.0) (2026-05-12)
2
+
3
+ Part of the ExpressoTS **v4.0.0 release bundle**. See the [v4.0.0 release notes](https://expresso-ts.com/docs/4.0.0/prologue/release) and the [upgrade guide](https://expresso-ts.com/docs/4.0.0/prologue/upgrade_guide) for the full picture.
4
+
5
+ ### Features
6
+
7
+ * **AppExpress lifecycle:** `globalConfiguration`, `configureServices`, `postServerInitialization`, `serverShutdown` hooks fully wired with async support; `setGlobalRoutePrefix`, `setBanner({ style, showMetrics })`, `isDevelopment()`, `getPort()` helpers.
8
+ * **systems setup helpers:** `setupInterceptorsForExpress`, `setupEventSystemForExpress`, `setupLazyLoadingForExpress`, `setupAuthorizationForExpress` — one-call wiring for the new core subsystems with consistent return-shape diagnostics (`interceptorsRegistered`, `handlersDiscovered`, `lazyModulesCount`, `routeMappings`, ...).
9
+ * **`micro()` API:** single-file Express apps with auto-response serialisation, optional global route prefix, environment-aware banner, and `setErrorHandler`.
10
+ * **serverless adapters:** `awsLambdaAdapter`, `vercelAdapter`, `cloudflareAdapter` — same code runs locally and on the target platform with binary content-type and base64 handling.
11
+ * **microservices primitives:** `CircuitBreaker`, `ServiceDiscovery` (static + dynamic), `ServiceClient` (timeouts, retries, circuit-breaker integration), `ServiceProxy` via `createProxy` with `pathRewrite` / `changeOrigin` / `onError`.
12
+ * **content negotiation runtime:** `addContentNegotiation` middleware factory with `XmlOptions`, `CsvOptions`, `YamlOptions`, quality-value support, lazy formatter loading.
13
+ * **smart validation runtime:** `Middleware.addValidation({ smartDetection, autoDetection, errorFormat })`.
14
+ * **request logging middleware:** `createRequestLoggingMiddleware(logger, { verbosity, logBody, logHeaders, slowRequestThreshold, requestIdHeader, correlationIdHeader })`.
15
+ * **route, body, query, params, header decorators:** `@Get/@Post/@Put/@Delete/@Patch`, `@body`, `@query`, `@param`, `@headers`, plus the new `@Accept` / `@Consumes` / `@Produces` content-negotiation decorators.
16
+ * **exception filter middleware:** `Middleware.setErrorHandler({ showStackTrace, enableExceptionFilters })`.
17
+ * **studio agent integration:** `@expressots/studio-agent` is an optional peer dependency — adapter-express dynamically imports it only when `NODE_ENV=development` and the package is installed; production deployments pay zero runtime cost.
18
+
19
+ ### Bug Fixes
20
+
21
+ * `setupAuthorizationForExpress` signature corrected to `(container, config?, middleware?, authProvider?)` so the auth provider is passed as the fourth argument rather than inside the config object.
22
+
23
+ ### Breaking Changes
24
+
25
+ * All `AppExpress` lifecycle methods are now async; `await` them or rely on the bootstrap pipeline to drive them.
26
+ * `getHttpServer()` now returns an `http.Server` instance (was `AppExpress` in v3).
27
+ * `server.listen(0)` now resolves to a randomly assigned port and the actual port is observable via `getHttpServer().address()`.
28
+
3
29
  ## [3.0.0](https://github.com/expressots/adapter-express/compare/3.0.0-beta.3...3.0.0) (2024-12-04)
4
30
 
5
31
 
@@ -13,8 +39,8 @@
13
39
 
14
40
  ### Tests
15
41
 
16
- * update tests for globalConfiguration, isDevelopment, getHttpServer, serverShutdown ([17b7d92](https://github.com/expressots/adapter-express/commit/17b7d92e87f4ad0d14a386e8351c723e1392a5c3))
17
-
42
+ * update tests for globalConfiguration, isDevelopment, getHttpServer, serverShutdown ([17b7d92](https://github.com/expressots/adapter-express/commit/17b7d92e87f4ad0d14a386e8351c723e1392a5c3))
43
+
18
44
  ## [3.0.0-beta.4.2](https://github.com/expressots/adapter-express/compare/3.0.0-beta.3...3.0.0) (2024-12-03)
19
45
 
20
46
  ### Code Refactoring
@@ -292,4 +318,4 @@
292
318
 
293
319
  ### Bug Fixes
294
320
 
295
- - testing commitlint ([0e78653](https://github.com/expressots/<<repo_name>>/commit/0e786539402f69fdca3fe5b684d850e523db7698))
321
+ - testing commitlint ([0e78653](https://github.com/expressots/<<repo_name>>/commit/0e786539402f69fdca3fe5b684d850e523db7698))
package/lib/README.md CHANGED
@@ -1,118 +1,61 @@
1
- <a name="readme-top"></a>
2
-
3
- <!-- PROJECT SHIELDS -->
4
-
5
- [![Codecov][codecov-shield]][codecov-url]
6
- [![NPM][npm-shield]][npm-url]
7
- ![Build][build-shield]
8
- [![Contributors][contributors-shield]][contributors-url]
9
- [![Forks][forks-shield]][forks-url]
10
- [![Stargazers][stars-shield]][stars-url]
11
- [![Issues][issues-shield]][issues-url]
12
- [![MIT License][license-shield]][license-url]
13
- [![LinkedIn][linkedin-shield]][linkedin-url]
14
-
15
- <!-- PROJECT LOGO -->
16
- <br />
17
1
  <div align="center">
18
- <a href="https://github.com/othneildrew/Best-README-Template">
19
- <img src="https://github.com/expressots/expressots/blob/main/media/expressots.png" alt="Logo" width="120">
2
+ <a href="https://expresso-ts.com">
3
+ <img src="https://github.com/expressots/expressots/blob/main/media/expressots.png" alt="ExpressoTS" width="120">
20
4
  </a>
21
5
 
22
- <h3 align="center">ExpressoTS Framework</h3>
23
-
24
- <p align="center">
25
- Everything you need to know to build applications with ExpressoTS
26
- <br />
27
- <a href="https://doc.expresso-ts.com/"><strong>Explore the docs »</strong></a>
28
- <br />
29
- <br />
30
- <a href="https://github.com/expressots/expressots/discussions">Let's discuss</a>
31
- ·
32
- <a href="https://github.com/expressots/expressots/issues">Report Bug</a>
33
- ·
34
- <a href="https://github.com/expressots/expressots/issues">Request Feature</a>
6
+ <h1>@expressots/adapter-express</h1>
7
+
8
+ <p>Express HTTP adapter for ExpressoTS — connects the framework core to the Express.js server engine.</p>
9
+
10
+ <p>
11
+ <a href="https://www.npmjs.com/package/@expressots/adapter-express"><img src="https://img.shields.io/npm/v/@expressots/adapter-express?style=flat&color=0d0d0d" alt="npm"></a>
12
+ <a href="https://github.com/expressots/adapter-express/blob/main/LICENSE.md"><img src="https://img.shields.io/github/license/expressots/adapter-express?style=flat&color=0d0d0d" alt="License"></a>
13
+ <a href="https://discord.com/invite/PyPJfGK"><img src="https://img.shields.io/badge/Discord-join-0d0d0d?logo=discord&logoColor=white" alt="Discord"></a>
35
14
  </p>
36
- </div>
37
15
 
38
- <!-- TABLE OF CONTENTS -->
39
- <details>
40
- <summary>Table of Contents</summary>
41
- <ol>
42
- <li><a href="#about-the-project">About The Project</a></li>
43
- <li><a href="#getting-started">Getting Started</a></li>
44
- <li><a href="#contributing">Contributing</a></li>
45
- <li><a href="#support-the-project">Support the project</a></li>
46
- <li><a href="#license">License</a></li>
47
- </ol>
48
- </details>
16
+ <p>
17
+ <a href="https://doc.expresso-ts.com">Documentation</a> ·
18
+ <a href="https://doc.expresso-ts.com/docs/core/first-steps">Getting Started</a> ·
19
+ <a href="https://discord.com/invite/PyPJfGK">Community</a>
20
+ </p>
21
+ </div>
49
22
 
50
- <!-- ABOUT THE PROJECT -->
23
+ ---
51
24
 
52
- # About The Project
25
+ ## Install
53
26
 
54
- ExpressoTS is a [Typescript](https://www.typescriptlang.org/) + [Node.js](https://nodejs.org/en/) lightweight framework for quick building scalable, easy to read and maintain, server-side applications 🐎
27
+ ```bash
28
+ npm i @expressots/adapter-express
29
+ ```
55
30
 
56
- ## Getting Started
31
+ ## What This Package Does
57
32
 
58
- - Here is our [Site](https://expresso-ts.com/)
59
- - You can find our [Documentation here](https://doc.expresso-ts.com/)
60
- - Checkout our [First Steps documentation](https://doc.expresso-ts.com/docs/overview/first-steps)
61
- - Our [CLI Documentation](https://doc.expresso-ts.com/docs/cli/overview)
33
+ This adapter bridges ExpressoTS Core and Express.js. It provides the HTTP server implementation, route registration, middleware pipeline, and the `App` class that wires everything together. Install it alongside `@expressots/core` to run ExpressoTS on Express.
62
34
 
63
- ## Contributing
35
+ ## Quick Look
64
36
 
65
- Welcome to the ExpressoTS community, a place bustling with innovative minds just like yours. We're absolutely thrilled to have you here!
66
- ExpressoTS is more than just a TypeScript framework; it's a collective effort by developers who are passionate about creating a more efficient, secure, and robust web ecosystem. We firmly believe that the best ideas come from a diversity of perspectives, backgrounds, and skills.
37
+ ```typescript
38
+ import { ExpressAdapter } from "@expressots/adapter-express";
67
39
 
68
- Why Contribute to Documentation?
40
+ // Used as the server adapter when bootstrapping your ExpressoTS application
41
+ const app = await AppFactory.create(App, ExpressAdapter);
42
+ await app.listen(3000, "development");
43
+ ```
69
44
 
70
- - **Share Knowledge**: If you've figured out something cool, why keep it to yourself?
71
- - **Build Your Portfolio**: Contributing to an open-source project like ExpressoTS is a great way to showcase your skills.
72
- - **Join a Network**: Get to know a community of like-minded developers.
73
- - **Improve the Product**: Help us fill in the gaps, correct errors, or make complex topics easier to understand.
45
+ ## Documentation
74
46
 
75
- Ready to contribute?
47
+ For guides, API reference, architecture patterns, and examples visit **[doc.expresso-ts.com](https://doc.expresso-ts.com)**.
76
48
 
77
- - [Contributing Guidelines](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md)
78
- - [How to Contribute](https://github.com/expressots/expressots/blob/main/CONTRIBUTING_HOWTO.md)
79
- - [Coding Guidelines](https://github.com/rsaz/TypescriptCodingGuidelines)
49
+ ## Contributing
80
50
 
81
- ## Support the project
51
+ See the [Contributing Guide](https://github.com/expressots/expressots/blob/main/CONTRIBUTING.md) for how to get involved.
82
52
 
83
- ExpressoTS is an independent open source project with ongoing development made possible thanks to your support. If you'd like to help, please consider:
53
+ ## Support
84
54
 
85
- - Become a **[sponsor on GitHub](https://github.com/sponsors/expressots)**
86
- - Follow the **[organization](https://github.com/expressots)** on GitHub and Star ⭐ the project
87
- - Subscribe to the Twitch channel: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
88
- - Join our **[Discord](https://discord.com/invite/PyPJfGK)**
89
- - Contribute submitting **[issues and pull requests](https://github.com/expressots/expressots/issues)**
90
- - Share the project with your friends and colleagues
55
+ - [GitHub Sponsors](https://github.com/sponsors/expressots)
56
+ - [Discord](https://discord.com/invite/PyPJfGK)
57
+ - [Report an Issue](https://github.com/expressots/adapter-express/issues)
91
58
 
92
59
  ## License
93
60
 
94
- Distributed under the MIT License. See [`LICENSE.txt`](https://github.com/expressots/expressots/blob/main/LICENSE) for more information.
95
-
96
- <p align="right">(<a href="#readme-top">back to top</a>)</p>
97
-
98
- <!-- MARKDOWN LINKS & IMAGES -->
99
- <!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
100
-
101
- [codecov-url]: https://codecov.io/gh/expressots/adapter-express
102
- [codecov-shield]: https://img.shields.io/codecov/c/gh/expressots/adapter-express/main?style=for-the-badge&logo=codecov&labelColor=FB9AD1
103
- [npm-url]: https://www.npmjs.com/package/@expressots/adapter-express
104
- [npm-shield]: https://img.shields.io/npm/v/@expressots/adapter-express?style=for-the-badge&logo=npm&color=9B3922
105
- [build-shield]: https://img.shields.io/github/actions/workflow/status/expressots/adapter-express/build.yaml?branch=main&style=for-the-badge&logo=github
106
- [contributors-shield]: https://img.shields.io/github/contributors/expressots/adapter-express?style=for-the-badge
107
- [contributors-url]: https://github.com/expressots/adapter-express/graphs/contributors
108
- [forks-shield]: https://img.shields.io/github/forks/expressots/adapter-express?style=for-the-badge
109
- [forks-url]: https://github.com/expressots/adapter-express/forks
110
- [stars-shield]: https://img.shields.io/github/stars/expressots/adapter-express?style=for-the-badge
111
- [stars-url]: https://github.com/expressots/adapter-express/stargazers
112
- [issues-shield]: https://img.shields.io/github/issues/expressots/adapter-express?style=for-the-badge
113
- [issues-url]: https://github.com/expressots/expressadapter-expressots/issues
114
- [license-shield]: https://img.shields.io/github/license/expressots/adapter-express?style=for-the-badge
115
- [license-url]: https://github.com/expressots/adapter-express/blob/main/LICENSE
116
- [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
117
- [linkedin-url]: https://www.linkedin.com/company/expresso-ts/
118
- [product-screenshot]: images/screenshot.png
61
+ MIT see [LICENSE](./LICENSE.md).
@@ -15,7 +15,9 @@ exports.ApplicationBase = void 0;
15
15
  * class Application extends ApplicationBase {
16
16
  * protected configureServices() { //... }
17
17
  * protected postServerInitialization() { //... }
18
- * protected serverShutdown() { //... }
18
+ * protected serverShutdown(signal) {
19
+ * console.log(`Shutting down due to ${signal}`);
20
+ * }
19
21
  * }
20
22
  *
21
23
  * @export