@expressots/adapter-express 3.0.0 → 4.0.0-preview.3

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 (244) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +61 -118
  3. package/lib/CHANGELOG.md +36 -5
  4. package/lib/README.md +61 -118
  5. package/lib/cjs/adapter-express/application-express.base.js +3 -1
  6. package/lib/cjs/adapter-express/application-express.js +1405 -85
  7. package/lib/cjs/adapter-express/express-utils/conditional-middleware.js +102 -0
  8. package/lib/cjs/adapter-express/express-utils/constants.js +17 -0
  9. package/lib/cjs/adapter-express/express-utils/content-negotiation-decorators.js +129 -0
  10. package/lib/cjs/adapter-express/express-utils/decorators.js +225 -59
  11. package/lib/cjs/adapter-express/express-utils/exception-filter-decorators.js +11 -0
  12. package/lib/cjs/adapter-express/express-utils/guard-context-factory.js +84 -0
  13. package/lib/cjs/adapter-express/express-utils/guard-middleware.js +115 -0
  14. package/lib/cjs/adapter-express/express-utils/guard-utils.js +18 -0
  15. package/lib/cjs/adapter-express/express-utils/http-context-store.js +15 -0
  16. package/lib/cjs/adapter-express/express-utils/http-status-middleware.js +37 -2
  17. package/lib/cjs/adapter-express/express-utils/index.js +67 -1
  18. package/lib/cjs/adapter-express/express-utils/interceptor-middleware.js +132 -0
  19. package/lib/cjs/adapter-express/express-utils/inversify-express-server.js +827 -64
  20. package/lib/cjs/adapter-express/express-utils/lazy-module-middleware.js +241 -0
  21. package/lib/cjs/adapter-express/express-utils/middleware-composition.js +95 -0
  22. package/lib/cjs/adapter-express/express-utils/path-pattern-compat.js +129 -0
  23. package/lib/cjs/adapter-express/express-utils/permission-preloader.middleware.js +48 -0
  24. package/lib/cjs/adapter-express/express-utils/route-constraints.js +104 -0
  25. package/lib/cjs/adapter-express/express-utils/scope-extractor.interface.js +2 -0
  26. package/lib/cjs/adapter-express/express-utils/scope-extractor.js +66 -0
  27. package/lib/cjs/adapter-express/express-utils/setup-authorization.js +71 -0
  28. package/lib/cjs/adapter-express/express-utils/setup-event-system.js +113 -0
  29. package/lib/cjs/adapter-express/express-utils/setup-interceptors.js +103 -0
  30. package/lib/cjs/adapter-express/express-utils/setup-lazy-loading.js +228 -0
  31. package/lib/cjs/adapter-express/express-utils/utils.js +30 -12
  32. package/lib/cjs/adapter-express/express-utils/validation-decorators.js +205 -0
  33. package/lib/cjs/adapter-express/express-utils/validation-service.js +252 -0
  34. package/lib/cjs/adapter-express/index.js +7 -5
  35. package/lib/cjs/adapter-express/micro-api/application-express-micro-route.js +31 -1
  36. package/lib/cjs/adapter-express/micro-api/application-express-micro.js +8 -38
  37. package/lib/cjs/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
  38. package/lib/cjs/adapter-express/micro-api/gateway/index.js +11 -0
  39. package/lib/cjs/adapter-express/micro-api/gateway/service-proxy.js +214 -0
  40. package/lib/cjs/adapter-express/micro-api/index.js +27 -3
  41. package/lib/cjs/adapter-express/micro-api/micro.js +272 -0
  42. package/lib/cjs/adapter-express/micro-api/queue/index.js +8 -0
  43. package/lib/cjs/adapter-express/micro-api/queue/queue.interface.js +2 -0
  44. package/lib/cjs/adapter-express/micro-api/queue/rabbitmq-consumer.js +255 -0
  45. package/lib/cjs/adapter-express/micro-api/serverless/aws-lambda.adapter.js +183 -0
  46. package/lib/cjs/adapter-express/micro-api/serverless/cloudflare.adapter.js +158 -0
  47. package/lib/cjs/adapter-express/micro-api/serverless/index.js +12 -0
  48. package/lib/cjs/adapter-express/micro-api/serverless/vercel.adapter.js +102 -0
  49. package/lib/cjs/adapter-express/micro-api/service-mesh/index.js +10 -0
  50. package/lib/cjs/adapter-express/micro-api/service-mesh/service-client.js +194 -0
  51. package/lib/cjs/adapter-express/micro-api/service-mesh/service-discovery.js +261 -0
  52. package/lib/cjs/adapter-express/middleware/index.js +21 -0
  53. package/lib/cjs/adapter-express/middleware/request-logging.middleware.js +244 -0
  54. package/lib/cjs/adapter-express/render/engine.js +15 -15
  55. package/lib/cjs/adapter-express/render/index.js +5 -0
  56. package/lib/cjs/adapter-express/studio/index.js +10 -0
  57. package/lib/cjs/adapter-express/studio/studio-integration.js +267 -0
  58. package/lib/cjs/index.js +1 -1
  59. package/lib/cjs/types/adapter-express/application-express.base.d.ts +20 -7
  60. package/lib/cjs/types/adapter-express/application-express.d.ts +316 -33
  61. package/lib/cjs/types/adapter-express/express-utils/base-middleware.d.ts +2 -2
  62. package/lib/cjs/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
  63. package/lib/cjs/types/adapter-express/express-utils/constants.d.ts +13 -0
  64. package/lib/cjs/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
  65. package/lib/cjs/types/adapter-express/express-utils/decorators.d.ts +54 -6
  66. package/lib/cjs/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
  67. package/lib/cjs/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
  68. package/lib/cjs/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
  69. package/lib/cjs/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
  70. package/lib/cjs/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
  71. package/lib/cjs/types/adapter-express/express-utils/httpResponseMessage.d.ts +1 -1
  72. package/lib/cjs/types/adapter-express/express-utils/index.d.ts +30 -2
  73. package/lib/cjs/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
  74. package/lib/cjs/types/adapter-express/express-utils/interfaces.d.ts +42 -5
  75. package/lib/cjs/types/adapter-express/express-utils/inversify-express-server.d.ts +114 -2
  76. package/lib/cjs/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
  77. package/lib/cjs/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
  78. package/lib/cjs/types/adapter-express/express-utils/path-pattern-compat.d.ts +66 -0
  79. package/lib/cjs/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
  80. package/lib/cjs/types/adapter-express/express-utils/route-constraints.d.ts +98 -0
  81. package/lib/cjs/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
  82. package/lib/cjs/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
  83. package/lib/cjs/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
  84. package/lib/cjs/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
  85. package/lib/cjs/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
  86. package/lib/cjs/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
  87. package/lib/cjs/types/adapter-express/express-utils/utils.d.ts +17 -2
  88. package/lib/cjs/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
  89. package/lib/cjs/types/adapter-express/express-utils/validation-service.d.ts +88 -0
  90. package/lib/cjs/types/adapter-express/index.d.ts +6 -4
  91. package/lib/cjs/types/adapter-express/micro-api/application-express-micro-route.d.ts +25 -14
  92. package/lib/cjs/types/adapter-express/micro-api/application-express-micro.d.ts +3 -10
  93. package/lib/cjs/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
  94. package/lib/cjs/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
  95. package/lib/cjs/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
  96. package/lib/cjs/types/adapter-express/micro-api/index.d.ts +7 -1
  97. package/lib/cjs/types/adapter-express/micro-api/micro.d.ts +83 -0
  98. package/lib/cjs/types/adapter-express/micro-api/queue/index.d.ts +5 -0
  99. package/lib/cjs/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
  100. package/lib/cjs/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
  101. package/lib/cjs/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
  102. package/lib/cjs/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
  103. package/lib/cjs/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
  104. package/lib/cjs/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
  105. package/lib/cjs/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
  106. package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
  107. package/lib/cjs/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
  108. package/lib/cjs/types/adapter-express/middleware/index.d.ts +5 -0
  109. package/lib/cjs/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
  110. package/lib/cjs/types/adapter-express/render/index.d.ts +1 -0
  111. package/lib/cjs/types/adapter-express/studio/index.d.ts +1 -0
  112. package/lib/cjs/types/adapter-express/studio/studio-integration.d.ts +170 -0
  113. package/lib/cjs/types/index.d.ts +1 -1
  114. package/lib/esm/adapter-express/application-express.base.js +24 -0
  115. package/lib/esm/adapter-express/application-express.js +1656 -0
  116. package/lib/esm/adapter-express/application-express.types.js +1 -0
  117. package/lib/esm/adapter-express/express-utils/base-middleware.js +19 -0
  118. package/lib/esm/adapter-express/express-utils/conditional-middleware.js +96 -0
  119. package/lib/esm/adapter-express/express-utils/constants.js +63 -0
  120. package/lib/esm/adapter-express/express-utils/content/httpContent.js +6 -0
  121. package/lib/esm/adapter-express/express-utils/content-negotiation-decorators.js +120 -0
  122. package/lib/esm/adapter-express/express-utils/decorators.js +604 -0
  123. package/lib/esm/adapter-express/express-utils/exception-filter-decorators.js +6 -0
  124. package/lib/esm/adapter-express/express-utils/guard-context-factory.js +83 -0
  125. package/lib/esm/adapter-express/express-utils/guard-middleware.js +115 -0
  126. package/lib/esm/adapter-express/express-utils/guard-utils.js +14 -0
  127. package/lib/esm/adapter-express/express-utils/http-context-store.js +10 -0
  128. package/lib/esm/adapter-express/express-utils/http-status-middleware.js +116 -0
  129. package/lib/esm/adapter-express/express-utils/httpResponseMessage.js +29 -0
  130. package/lib/esm/adapter-express/express-utils/index.js +24 -0
  131. package/lib/esm/adapter-express/express-utils/interceptor-middleware.js +130 -0
  132. package/lib/esm/adapter-express/express-utils/interfaces.js +1 -0
  133. package/lib/esm/adapter-express/express-utils/inversify-express-server.js +1047 -0
  134. package/lib/esm/adapter-express/express-utils/lazy-module-middleware.js +236 -0
  135. package/lib/esm/adapter-express/express-utils/middleware-composition.js +89 -0
  136. package/lib/esm/adapter-express/express-utils/path-pattern-compat.js +125 -0
  137. package/lib/esm/adapter-express/express-utils/permission-preloader.middleware.js +45 -0
  138. package/lib/esm/adapter-express/express-utils/resolver-multer.js +30 -0
  139. package/lib/esm/adapter-express/express-utils/route-constraints.js +100 -0
  140. package/lib/esm/adapter-express/express-utils/scope-extractor.interface.js +1 -0
  141. package/lib/esm/adapter-express/express-utils/scope-extractor.js +63 -0
  142. package/lib/esm/adapter-express/express-utils/setup-authorization.js +68 -0
  143. package/lib/esm/adapter-express/express-utils/setup-event-system.js +110 -0
  144. package/lib/esm/adapter-express/express-utils/setup-interceptors.js +100 -0
  145. package/lib/esm/adapter-express/express-utils/setup-lazy-loading.js +225 -0
  146. package/lib/esm/adapter-express/express-utils/utils.js +68 -0
  147. package/lib/esm/adapter-express/express-utils/validation-decorators.js +199 -0
  148. package/lib/esm/adapter-express/express-utils/validation-service.js +251 -0
  149. package/lib/esm/adapter-express/index.js +7 -0
  150. package/lib/esm/adapter-express/micro-api/application-express-micro-container.js +48 -0
  151. package/lib/esm/adapter-express/micro-api/application-express-micro-route.js +128 -0
  152. package/lib/esm/adapter-express/micro-api/application-express-micro.js +157 -0
  153. package/lib/esm/adapter-express/micro-api/gateway/circuit-breaker.js +174 -0
  154. package/lib/esm/adapter-express/micro-api/gateway/index.js +5 -0
  155. package/lib/esm/adapter-express/micro-api/gateway/service-proxy.js +210 -0
  156. package/lib/esm/adapter-express/micro-api/index.js +10 -0
  157. package/lib/esm/adapter-express/micro-api/micro.js +266 -0
  158. package/lib/esm/adapter-express/micro-api/queue/index.js +4 -0
  159. package/lib/esm/adapter-express/micro-api/queue/queue.interface.js +1 -0
  160. package/lib/esm/adapter-express/micro-api/queue/rabbitmq-consumer.js +229 -0
  161. package/lib/esm/adapter-express/micro-api/serverless/aws-lambda.adapter.js +180 -0
  162. package/lib/esm/adapter-express/micro-api/serverless/cloudflare.adapter.js +155 -0
  163. package/lib/esm/adapter-express/micro-api/serverless/index.js +6 -0
  164. package/lib/esm/adapter-express/micro-api/serverless/vercel.adapter.js +99 -0
  165. package/lib/esm/adapter-express/micro-api/service-mesh/index.js +5 -0
  166. package/lib/esm/adapter-express/micro-api/service-mesh/service-client.js +191 -0
  167. package/lib/esm/adapter-express/micro-api/service-mesh/service-discovery.js +259 -0
  168. package/lib/esm/adapter-express/middleware/index.js +5 -0
  169. package/lib/esm/adapter-express/middleware/request-logging.middleware.js +239 -0
  170. package/lib/esm/adapter-express/render/constants.js +37 -0
  171. package/lib/esm/adapter-express/render/engine.js +51 -0
  172. package/lib/esm/adapter-express/render/index.js +1 -0
  173. package/lib/esm/adapter-express/render/resolve-render.js +30 -0
  174. package/lib/esm/adapter-express/studio/index.js +1 -0
  175. package/lib/esm/adapter-express/studio/studio-integration.js +236 -0
  176. package/lib/esm/index.mjs +1 -0
  177. package/lib/esm/package.json +3 -0
  178. package/lib/esm/types/adapter-express/application-express.base.d.ts +77 -0
  179. package/lib/esm/types/adapter-express/application-express.d.ts +453 -0
  180. package/lib/esm/types/adapter-express/application-express.types.d.ts +23 -0
  181. package/lib/esm/types/adapter-express/express-utils/base-middleware.d.ts +8 -0
  182. package/lib/esm/types/adapter-express/express-utils/conditional-middleware.d.ts +97 -0
  183. package/lib/esm/types/adapter-express/express-utils/constants.d.ts +57 -0
  184. package/lib/esm/types/adapter-express/express-utils/content/httpContent.d.ts +6 -0
  185. package/lib/esm/types/adapter-express/express-utils/content-negotiation-decorators.d.ts +94 -0
  186. package/lib/esm/types/adapter-express/express-utils/decorators.d.ts +257 -0
  187. package/lib/esm/types/adapter-express/express-utils/exception-filter-decorators.d.ts +6 -0
  188. package/lib/esm/types/adapter-express/express-utils/guard-context-factory.d.ts +17 -0
  189. package/lib/esm/types/adapter-express/express-utils/guard-middleware.d.ts +22 -0
  190. package/lib/esm/types/adapter-express/express-utils/guard-utils.d.ts +11 -0
  191. package/lib/esm/types/adapter-express/express-utils/http-context-store.d.ts +20 -0
  192. package/lib/esm/types/adapter-express/express-utils/http-status-middleware.d.ts +26 -0
  193. package/lib/esm/types/adapter-express/express-utils/httpResponseMessage.d.ts +14 -0
  194. package/lib/esm/types/adapter-express/express-utils/index.d.ts +30 -0
  195. package/lib/esm/types/adapter-express/express-utils/interceptor-middleware.d.ts +40 -0
  196. package/lib/esm/types/adapter-express/express-utils/interfaces.d.ts +115 -0
  197. package/lib/esm/types/adapter-express/express-utils/inversify-express-server.d.ts +172 -0
  198. package/lib/esm/types/adapter-express/express-utils/lazy-module-middleware.d.ts +122 -0
  199. package/lib/esm/types/adapter-express/express-utils/middleware-composition.d.ts +85 -0
  200. package/lib/esm/types/adapter-express/express-utils/path-pattern-compat.d.ts +66 -0
  201. package/lib/esm/types/adapter-express/express-utils/permission-preloader.middleware.d.ts +10 -0
  202. package/lib/esm/types/adapter-express/express-utils/resolver-multer.d.ts +7 -0
  203. package/lib/esm/types/adapter-express/express-utils/route-constraints.d.ts +98 -0
  204. package/lib/esm/types/adapter-express/express-utils/scope-extractor.d.ts +21 -0
  205. package/lib/esm/types/adapter-express/express-utils/scope-extractor.interface.d.ts +12 -0
  206. package/lib/esm/types/adapter-express/express-utils/setup-authorization.d.ts +34 -0
  207. package/lib/esm/types/adapter-express/express-utils/setup-event-system.d.ts +118 -0
  208. package/lib/esm/types/adapter-express/express-utils/setup-interceptors.d.ts +115 -0
  209. package/lib/esm/types/adapter-express/express-utils/setup-lazy-loading.d.ts +123 -0
  210. package/lib/esm/types/adapter-express/express-utils/utils.d.ts +24 -0
  211. package/lib/esm/types/adapter-express/express-utils/validation-decorators.d.ts +145 -0
  212. package/lib/esm/types/adapter-express/express-utils/validation-service.d.ts +88 -0
  213. package/lib/esm/types/adapter-express/index.d.ts +7 -0
  214. package/lib/esm/types/adapter-express/micro-api/application-express-micro-container.d.ts +47 -0
  215. package/lib/esm/types/adapter-express/micro-api/application-express-micro-route.d.ts +104 -0
  216. package/lib/esm/types/adapter-express/micro-api/application-express-micro.d.ts +72 -0
  217. package/lib/esm/types/adapter-express/micro-api/gateway/circuit-breaker.d.ts +111 -0
  218. package/lib/esm/types/adapter-express/micro-api/gateway/index.d.ts +5 -0
  219. package/lib/esm/types/adapter-express/micro-api/gateway/service-proxy.d.ts +83 -0
  220. package/lib/esm/types/adapter-express/micro-api/index.d.ts +7 -0
  221. package/lib/esm/types/adapter-express/micro-api/micro.d.ts +83 -0
  222. package/lib/esm/types/adapter-express/micro-api/queue/index.d.ts +5 -0
  223. package/lib/esm/types/adapter-express/micro-api/queue/queue.interface.d.ts +60 -0
  224. package/lib/esm/types/adapter-express/micro-api/queue/rabbitmq-consumer.d.ts +86 -0
  225. package/lib/esm/types/adapter-express/micro-api/serverless/aws-lambda.adapter.d.ts +77 -0
  226. package/lib/esm/types/adapter-express/micro-api/serverless/cloudflare.adapter.d.ts +64 -0
  227. package/lib/esm/types/adapter-express/micro-api/serverless/index.d.ts +6 -0
  228. package/lib/esm/types/adapter-express/micro-api/serverless/vercel.adapter.d.ts +56 -0
  229. package/lib/esm/types/adapter-express/micro-api/service-mesh/index.d.ts +5 -0
  230. package/lib/esm/types/adapter-express/micro-api/service-mesh/service-client.d.ts +122 -0
  231. package/lib/esm/types/adapter-express/micro-api/service-mesh/service-discovery.d.ts +150 -0
  232. package/lib/esm/types/adapter-express/middleware/index.d.ts +5 -0
  233. package/lib/esm/types/adapter-express/middleware/request-logging.middleware.d.ts +65 -0
  234. package/lib/esm/types/adapter-express/render/constants.d.ts +26 -0
  235. package/lib/esm/types/adapter-express/render/engine.d.ts +20 -0
  236. package/lib/esm/types/adapter-express/render/index.d.ts +5 -0
  237. package/lib/esm/types/adapter-express/render/resolve-render.d.ts +7 -0
  238. package/lib/esm/types/adapter-express/studio/index.d.ts +1 -0
  239. package/lib/esm/types/adapter-express/studio/studio-integration.d.ts +170 -0
  240. package/lib/esm/types/index.d.ts +1 -0
  241. package/lib/package.json +170 -146
  242. package/package.json +170 -146
  243. package/lib/cjs/di/di.interfaces.js +0 -10
  244. package/lib/cjs/types/di/di.interfaces.d.ts +0 -289
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Studio Integration - Auto-detects and integrates ExpressoTS Studio Agent
3
+ *
4
+ * This module provides automatic integration with @expressots/studio-agent
5
+ * when it's installed in the project. It enables request recording, tracing,
6
+ * and real-time monitoring without requiring manual setup.
7
+ */
8
+ import type { Application, RequestHandler } from "express";
9
+ interface StudioAgentInstance {
10
+ start(): Promise<void>;
11
+ stop(): Promise<void>;
12
+ createMiddleware(): RequestHandler;
13
+ scanRoutes(): Promise<void>;
14
+ /**
15
+ * Optional — older agents may not implement this. Used to push the
16
+ * actual listening port + boot duration once the host server is up.
17
+ */
18
+ updateRuntimeInfo?(patch: {
19
+ appPort?: number;
20
+ globalPrefix?: string;
21
+ startupMs?: number;
22
+ interceptorCount?: number;
23
+ providerCount?: number;
24
+ middlewareCount?: number;
25
+ runtimeItems?: StudioRuntimeItems;
26
+ middlewarePreset?: StudioMiddlewarePresetInfo;
27
+ }): void;
28
+ }
29
+ /**
30
+ * Itemised runtime view forwarded to the Studio Agent. Populated from
31
+ * DI metadata at boot — surfaces framework-registered items the agent's
32
+ * static file scanner can't see (e.g. built-in providers, interceptors
33
+ * registered via `@Interceptor()` on framework classes).
34
+ *
35
+ * Mirrors `RuntimeItems` in `@expressots/studio-agent` deliberately so
36
+ * the adapter doesn't need to import from the studio package (which is
37
+ * an optional peer dependency).
38
+ */
39
+ export interface StudioRuntimeItems {
40
+ providers?: Array<{
41
+ name: string;
42
+ source?: string;
43
+ }>;
44
+ interceptors?: Array<{
45
+ name: string;
46
+ priority?: number;
47
+ source?: string;
48
+ }>;
49
+ middleware?: Array<{
50
+ name: string;
51
+ category: string;
52
+ type: "built-in" | "custom";
53
+ order: number;
54
+ path?: string;
55
+ }>;
56
+ /**
57
+ * Controller- and route-scoped middleware bindings, harvested from
58
+ * `ControllerMetadata.middleware` Reflect entries after
59
+ * `app.listen()`. Used by the agent to draw scope-aware
60
+ * "middleware → controller / route" edges on the architecture map.
61
+ *
62
+ * Mirrors `MiddlewareBinding` in `@expressots/studio-agent`.
63
+ */
64
+ middlewareBindings?: Array<{
65
+ middlewareName: string;
66
+ scope: "controller" | "route";
67
+ controllerName: string;
68
+ controllerMethod?: string;
69
+ httpMethod?: string;
70
+ routePath?: string;
71
+ }>;
72
+ }
73
+ /**
74
+ * Middleware preset info forwarded to the Studio Agent. Mirrors
75
+ * `MiddlewarePresetInfo` in `@expressots/studio-agent` so the adapter
76
+ * doesn't need to import from the studio package.
77
+ */
78
+ export interface StudioMiddlewarePresetInfo {
79
+ name: string;
80
+ hasOverrides: boolean;
81
+ parse?: {
82
+ json?: {
83
+ limit?: string;
84
+ };
85
+ urlencoded?: {
86
+ limit?: string;
87
+ extended?: boolean;
88
+ };
89
+ cookies?: boolean;
90
+ };
91
+ security?: {
92
+ tier?: string;
93
+ helmet?: boolean;
94
+ cors?: {
95
+ origin?: boolean | string;
96
+ credentials?: boolean;
97
+ methods?: Array<string>;
98
+ allowedHeaders?: Array<string>;
99
+ };
100
+ rateLimit?: {
101
+ windowMs?: number;
102
+ max?: number;
103
+ } | false;
104
+ };
105
+ compress?: {
106
+ enabled: boolean;
107
+ level?: number;
108
+ };
109
+ logger?: {
110
+ enabled: boolean;
111
+ implementation?: string;
112
+ };
113
+ }
114
+ interface StudioIntegrationConfig {
115
+ enabled?: boolean;
116
+ port?: number;
117
+ dbPath?: string;
118
+ serviceName?: string;
119
+ /** Forwarded to the agent so the Status page can show the app URL. */
120
+ appPort?: number;
121
+ /** Global URL prefix of the host application. */
122
+ globalPrefix?: string;
123
+ }
124
+ /**
125
+ * Initialize the Studio Agent if available
126
+ */
127
+ export declare function initializeStudio(app: Application, config?: StudioIntegrationConfig, appContainer?: unknown): Promise<boolean>;
128
+ /**
129
+ * Push runtime details to the agent that the host only knows after the
130
+ * HTTP server has started — most importantly the actual listening port
131
+ * and total boot time. No-ops when:
132
+ * - the agent isn't running, or
133
+ * - the installed agent is from an older preview without
134
+ * `updateRuntimeInfo()` (we feature-detect to stay forward-compatible).
135
+ */
136
+ export declare function reportStudioRuntimeInfo(patch: {
137
+ appPort?: number;
138
+ globalPrefix?: string;
139
+ startupMs?: number;
140
+ interceptorCount?: number;
141
+ providerCount?: number;
142
+ middlewareCount?: number;
143
+ runtimeItems?: StudioRuntimeItems;
144
+ middlewarePreset?: StudioMiddlewarePresetInfo;
145
+ }): void;
146
+ /**
147
+ * Re-trigger the Studio Agent's route discovery. Used by the host
148
+ * after `app.listen()` so that the agent's runtime route scanner sees
149
+ * the fully-populated Express `_router` stack (controllers are bound
150
+ * by `InversifyExpressServer.build()` AFTER `initializeStudio()` runs,
151
+ * so the agent's first scan only catches static-source routes).
152
+ *
153
+ * No-ops when:
154
+ * - Studio isn't enabled, or
155
+ * - the installed agent is too old to expose `scanRoutes()`.
156
+ */
157
+ export declare function rescanStudioRoutes(): Promise<void>;
158
+ /**
159
+ * Stop the Studio Agent
160
+ */
161
+ export declare function stopStudio(): Promise<void>;
162
+ /**
163
+ * Check if Studio is enabled
164
+ */
165
+ export declare function isStudioEnabled(): boolean;
166
+ /**
167
+ * Get the Studio Agent instance
168
+ */
169
+ export declare function getStudioAgent(): StudioAgentInstance | null;
170
+ export {};
@@ -0,0 +1 @@
1
+ export * from "./adapter-express/index.js";
package/lib/package.json CHANGED
@@ -1,146 +1,170 @@
1
- {
2
- "name": "@expressots/adapter-express",
3
- "version": "3.0.0",
4
- "description": "Expressots - modern, fast, lightweight nodejs web framework (@adapter-express)",
5
- "author": "",
6
- "main": "./lib/cjs/index.js",
7
- "types": "./lib/cjs/types/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": {
11
- "types": "./lib/esm/types/index.d.ts",
12
- "default": "./lib/esm/index.mjs"
13
- },
14
- "require": {
15
- "types": "./lib/cjs/types/index.d.ts",
16
- "default": "./lib/cjs/index.js"
17
- }
18
- }
19
- },
20
- "files": [
21
- "lib/**/*"
22
- ],
23
- "license": "MIT",
24
- "homepage": "https://expresso-ts.com",
25
- "funding": {
26
- "type": "github",
27
- "url": "https://github.com/sponsors/expressots"
28
- },
29
- "repository": {
30
- "type": "git",
31
- "url": "https://github.com/expressots/adapter-express"
32
- },
33
- "bugs": {
34
- "url": "https://github.com/expressots/adapter-express/issues"
35
- },
36
- "publishConfig": {
37
- "access": "public"
38
- },
39
- "keywords": [
40
- "expressots",
41
- "nodejs",
42
- "microservices",
43
- "typescript",
44
- "clean-architecture",
45
- "typescript-framework",
46
- "framework",
47
- "server-side"
48
- ],
49
- "scripts": {
50
- "prepare": "husky",
51
- "clean": "node scripts/rm.js lib",
52
- "copy": "node scripts/copy.js package.json README.md CHANGELOG.md lib",
53
- "build": "npm run clean && npm run build:cjs && npm run copy",
54
- "build:cjs": "tsc -p tsconfig.cjs.json",
55
- "release": "release-it",
56
- "prepublish": "npm run build && npm pack",
57
- "test": "jest",
58
- "test:watch": "jest --watch",
59
- "coverage": "jest --coverage",
60
- "format": "prettier --write \"src/**/*.ts\" --cache",
61
- "lint": "eslint \"src/**/*.ts\"",
62
- "lint:fix": "eslint \"src/**/*.ts\" --fix"
63
- },
64
- "dependencies": {
65
- "express": "4.21.1",
66
- "reflect-metadata": "0.2.2"
67
- },
68
- "devDependencies": {
69
- "@codecov/vite-plugin": "0.0.1-beta.6",
70
- "@commitlint/cli": "19.2.1",
71
- "@commitlint/config-conventional": "19.2.2",
72
- "@expressots/core": "3.0.0",
73
- "@expressots/shared": "3.0.0",
74
- "@release-it/conventional-changelog": "8.0.1",
75
- "@types/express": "4.17.21",
76
- "@types/jest": "29.5.14",
77
- "@types/node": "20.14.10",
78
- "@typescript-eslint/eslint-plugin": "7.16.1",
79
- "@typescript-eslint/parser": "7.16.1",
80
- "eslint": "8.57.0",
81
- "eslint-config-prettier": "9.1.0",
82
- "husky": "9.1.1",
83
- "jest": "29.7.0",
84
- "prettier": "3.3.3",
85
- "release-it": "17.6.0",
86
- "ts-jest": "29.2.5",
87
- "typescript": "5.5.3"
88
- },
89
- "release-it": {
90
- "git": {
91
- "commitMessage": "chore(release): ${version}"
92
- },
93
- "github": {
94
- "release": true
95
- },
96
- "npm": {
97
- "publish": false
98
- },
99
- "plugins": {
100
- "@release-it/conventional-changelog": {
101
- "infile": "CHANGELOG.md",
102
- "preset": {
103
- "name": "conventionalcommits",
104
- "types": [
105
- {
106
- "type": "feat",
107
- "section": "Features"
108
- },
109
- {
110
- "type": "fix",
111
- "section": "Bug Fixes"
112
- },
113
- {
114
- "type": "perf",
115
- "section": "Performance Improvements"
116
- },
117
- {
118
- "type": "revert",
119
- "section": "Reverts"
120
- },
121
- {
122
- "type": "docs",
123
- "section": "Documentation"
124
- },
125
- {
126
- "type": "refactor",
127
- "section": "Code Refactoring"
128
- },
129
- {
130
- "type": "test",
131
- "section": "Tests"
132
- },
133
- {
134
- "type": "build",
135
- "section": "Build System"
136
- },
137
- {
138
- "type": "ci",
139
- "section": "Continuous Integrations"
140
- }
141
- ]
142
- }
143
- }
144
- }
145
- }
146
- }
1
+ {
2
+ "name": "@expressots/adapter-express",
3
+ "version": "4.0.0-preview.3",
4
+ "description": "Expressots - modern, fast, lightweight nodejs web framework (@adapter-express)",
5
+ "author": "",
6
+ "main": "./lib/cjs/index.js",
7
+ "types": "./lib/cjs/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./lib/esm/types/index.d.ts",
12
+ "default": "./lib/esm/index.mjs"
13
+ },
14
+ "require": {
15
+ "types": "./lib/cjs/types/index.d.ts",
16
+ "default": "./lib/cjs/index.js"
17
+ }
18
+ }
19
+ },
20
+ "files": [
21
+ "lib/**/*"
22
+ ],
23
+ "license": "MIT",
24
+ "homepage": "https://expresso-ts.com",
25
+ "funding": {
26
+ "type": "github",
27
+ "url": "https://github.com/sponsors/expressots"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/expressots/adapter-express"
32
+ },
33
+ "bugs": {
34
+ "url": "https://github.com/expressots/adapter-express/issues"
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "engines": {
40
+ "node": ">=20.18.0"
41
+ },
42
+ "keywords": [
43
+ "expressots",
44
+ "nodejs",
45
+ "microservices",
46
+ "typescript",
47
+ "clean-architecture",
48
+ "typescript-framework",
49
+ "framework",
50
+ "server-side"
51
+ ],
52
+ "scripts": {
53
+ "prepare": "husky",
54
+ "clean": "node scripts/rm.js lib",
55
+ "copy": "node scripts/copy.js package.json README.md CHANGELOG.md lib",
56
+ "build": "npm run clean && npm run build:cjs && npm run build:esm && npm run copy",
57
+ "build:cjs": "tsc -p tsconfig.cjs.json",
58
+ "build:esm": "node scripts/build-esm.js",
59
+ "release": "release-it",
60
+ "release:prepare": "node scripts/release/prepare-publish.mjs",
61
+ "release:restore": "node scripts/release/restore-package-json.mjs",
62
+ "release:publish": "npm run build && npm run release:prepare && npm publish --tag next --access public && npm run release:restore",
63
+ "prepublish": "npm run build && npm pack",
64
+ "test": "jest",
65
+ "test:watch": "jest --watch",
66
+ "coverage": "jest --coverage",
67
+ "format": "prettier --write \"src/**/*.ts\" --cache",
68
+ "lint": "eslint \"src/**/*.ts\" --cache --cache-location node_modules/.cache/eslint/",
69
+ "lint:fix": "eslint \"src/**/*.ts\" --fix --cache --cache-location node_modules/.cache/eslint/"
70
+ },
71
+ "dependencies": {
72
+ "@expressots/core": "file:../expressots/expressots-core-4.0.0-preview.3.tgz",
73
+ "@expressots/shared": "file:../shared/expressots-shared-4.0.0-preview.3.tgz",
74
+ "express": "^5.1.0",
75
+ "reflect-metadata": "0.2.2"
76
+ },
77
+ "peerDependencies": {
78
+ "@expressots/studio-agent": ">=4.0.0-0"
79
+ },
80
+ "peerDependenciesMeta": {
81
+ "@expressots/studio-agent": {
82
+ "optional": true
83
+ }
84
+ },
85
+ "devDependencies": {
86
+ "@codecov/vite-plugin": "^2.0.1",
87
+ "@commitlint/cli": "19.2.1",
88
+ "@commitlint/config-conventional": "19.2.2",
89
+ "@expressots/studio-agent": "file:../expressots-studio/packages/studio-agent",
90
+ "@release-it/conventional-changelog": "^11.0.0",
91
+ "@types/express": "^5.0.0",
92
+ "@types/jest": "29.5.14",
93
+ "@types/node": "20.14.10",
94
+ "@typescript-eslint/eslint-plugin": "7.16.1",
95
+ "@typescript-eslint/parser": "7.16.1",
96
+ "eslint": "8.57.0",
97
+ "eslint-config-prettier": "9.1.0",
98
+ "husky": "9.1.1",
99
+ "jest": "29.7.0",
100
+ "lint-staged": "^15.2.10",
101
+ "prettier": "3.3.3",
102
+ "release-it": "^20.0.1",
103
+ "ts-jest": "29.2.5",
104
+ "ts-node": "^10.9.2",
105
+ "typescript": "5.5.3"
106
+ },
107
+ "lint-staged": {
108
+ "src/**/*.ts": [
109
+ "eslint --cache --cache-location node_modules/.cache/eslint/ --fix",
110
+ "prettier --write --cache"
111
+ ]
112
+ },
113
+ "release-it": {
114
+ "git": {
115
+ "commitMessage": "chore(release): ${version}"
116
+ },
117
+ "github": {
118
+ "release": true
119
+ },
120
+ "npm": {
121
+ "publish": false
122
+ },
123
+ "plugins": {
124
+ "@release-it/conventional-changelog": {
125
+ "infile": "CHANGELOG.md",
126
+ "preset": {
127
+ "name": "conventionalcommits",
128
+ "types": [
129
+ {
130
+ "type": "feat",
131
+ "section": "Features"
132
+ },
133
+ {
134
+ "type": "fix",
135
+ "section": "Bug Fixes"
136
+ },
137
+ {
138
+ "type": "perf",
139
+ "section": "Performance Improvements"
140
+ },
141
+ {
142
+ "type": "revert",
143
+ "section": "Reverts"
144
+ },
145
+ {
146
+ "type": "docs",
147
+ "section": "Documentation"
148
+ },
149
+ {
150
+ "type": "refactor",
151
+ "section": "Code Refactoring"
152
+ },
153
+ {
154
+ "type": "test",
155
+ "section": "Tests"
156
+ },
157
+ {
158
+ "type": "build",
159
+ "section": "Build System"
160
+ },
161
+ {
162
+ "type": "ci",
163
+ "section": "Continuous Integrations"
164
+ }
165
+ ]
166
+ }
167
+ }
168
+ }
169
+ }
170
+ }