exisjs 0.6.0 → 0.7.0

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 (519) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +11 -9
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/dev.d.ts.map +1 -1
  5. package/dist/cli/commands/dev.js +34 -36
  6. package/dist/cli/commands/dev.js.map +1 -1
  7. package/dist/cli/commands/exports.d.ts.map +1 -1
  8. package/dist/cli/commands/exports.js +5 -32
  9. package/dist/cli/commands/exports.js.map +1 -1
  10. package/dist/cli/commands/generate.d.ts +2 -13
  11. package/dist/cli/commands/generate.d.ts.map +1 -1
  12. package/dist/cli/commands/generate.js +27 -60
  13. package/dist/cli/commands/generate.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts.map +1 -1
  15. package/dist/cli/commands/init.js +4 -4
  16. package/dist/cli/commands/init.js.map +1 -1
  17. package/dist/cli/commands/start.d.ts.map +1 -1
  18. package/dist/cli/commands/start.js +2 -6
  19. package/dist/cli/commands/start.js.map +1 -1
  20. package/dist/cli/index.js +11 -23
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/routes.d.ts.map +1 -1
  23. package/dist/cli/routes.js +20 -8
  24. package/dist/cli/routes.js.map +1 -1
  25. package/dist/config/config.d.ts +2 -1
  26. package/dist/config/config.d.ts.map +1 -1
  27. package/dist/config/config.js +3 -2
  28. package/dist/config/config.js.map +1 -1
  29. package/dist/config/types.d.ts +7 -2
  30. package/dist/config/types.d.ts.map +1 -1
  31. package/dist/decorators/constants.d.ts +2 -2
  32. package/dist/decorators/constants.d.ts.map +1 -1
  33. package/dist/decorators/constants.js +2 -2
  34. package/dist/decorators/constants.js.map +1 -1
  35. package/dist/decorators/core.d.ts +4 -3
  36. package/dist/decorators/core.d.ts.map +1 -1
  37. package/dist/decorators/core.js +7 -4
  38. package/dist/decorators/core.js.map +1 -1
  39. package/dist/decorators/middleware.d.ts +0 -10
  40. package/dist/decorators/middleware.d.ts.map +1 -1
  41. package/dist/decorators/middleware.js +0 -25
  42. package/dist/decorators/middleware.js.map +1 -1
  43. package/dist/decorators/routing.d.ts +0 -2
  44. package/dist/decorators/routing.d.ts.map +1 -1
  45. package/dist/decorators/routing.js +1 -3
  46. package/dist/decorators/routing.js.map +1 -1
  47. package/dist/di/inject.d.ts +1 -2
  48. package/dist/di/inject.d.ts.map +1 -1
  49. package/dist/di/inject.js.map +1 -1
  50. package/dist/docs/ARCHITECTURE.md +46 -285
  51. package/dist/docs/BENCHMARKS.md +5 -5
  52. package/dist/docs/README.md +8 -11
  53. package/dist/docs/content/boundaries.mdx +151 -0
  54. package/dist/docs/content/cli/commands.mdx +66 -104
  55. package/dist/docs/content/cli/overview.mdx +37 -47
  56. package/dist/docs/content/cli/usage.mdx +29 -15
  57. package/dist/docs/content/decorators.mdx +107 -80
  58. package/dist/docs/content/installation.mdx +20 -1
  59. package/dist/docs/content/middleware.mdx +65 -291
  60. package/dist/docs/content/security.mdx +44 -246
  61. package/dist/docs/content/structure.mdx +227 -100
  62. package/dist/docs/content/validation.mdx +0 -17
  63. package/dist/docs/reference/decorators.mdx +24 -217
  64. package/dist/docs/reference/middleware.mdx +41 -217
  65. package/dist/docs/reference/validator.mdx +2 -5
  66. package/dist/error/errors.d.ts.map +1 -1
  67. package/dist/error/errors.js +16 -0
  68. package/dist/error/errors.js.map +1 -1
  69. package/dist/index.d.ts +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +5 -2
  72. package/dist/index.js.map +1 -1
  73. package/dist/lib/start-repl.js +2 -4
  74. package/dist/lib/start-repl.js.map +1 -1
  75. package/dist/lib/start-server.js +12 -4
  76. package/dist/lib/start-server.js.map +1 -1
  77. package/dist/logger/index.d.ts +81 -0
  78. package/dist/logger/index.d.ts.map +1 -0
  79. package/dist/logger/index.js +142 -0
  80. package/dist/logger/index.js.map +1 -0
  81. package/dist/middleware/dedupe.d.ts +1 -1
  82. package/dist/middleware/dedupe.js +1 -1
  83. package/dist/middleware/middleware.d.ts +3 -5
  84. package/dist/middleware/middleware.d.ts.map +1 -1
  85. package/dist/middleware/middleware.js +2 -6
  86. package/dist/middleware/middleware.js.map +1 -1
  87. package/dist/router/{gateway.d.ts → boundary.d.ts} +21 -13
  88. package/dist/router/boundary.d.ts.map +1 -0
  89. package/dist/router/boundary.js +11 -0
  90. package/dist/router/boundary.js.map +1 -0
  91. package/dist/router/index.d.ts +3 -6
  92. package/dist/router/index.d.ts.map +1 -1
  93. package/dist/router/index.js +3 -7
  94. package/dist/router/index.js.map +1 -1
  95. package/dist/router/route-builder.d.ts +0 -28
  96. package/dist/router/route-builder.d.ts.map +1 -1
  97. package/dist/router/route-builder.js +0 -4
  98. package/dist/router/route-builder.js.map +1 -1
  99. package/dist/router/route-scanner.d.ts +1 -2
  100. package/dist/router/route-scanner.d.ts.map +1 -1
  101. package/dist/router/route-scanner.js +216 -193
  102. package/dist/router/route-scanner.js.map +1 -1
  103. package/dist/router/router.d.ts +4 -6
  104. package/dist/router/router.d.ts.map +1 -1
  105. package/dist/router/router.js +36 -72
  106. package/dist/router/router.js.map +1 -1
  107. package/dist/router/types.d.ts +2 -6
  108. package/dist/router/types.d.ts.map +1 -1
  109. package/dist/server/{bun-adapter.d.ts → adapters/bun-adapter.d.ts} +1 -1
  110. package/dist/server/adapters/bun-adapter.d.ts.map +1 -0
  111. package/dist/server/{bun-adapter.js → adapters/bun-adapter.js} +2 -24
  112. package/dist/server/adapters/bun-adapter.js.map +1 -0
  113. package/dist/server/{uws-adapter.d.ts → adapters/uws-adapter.d.ts} +1 -1
  114. package/dist/server/adapters/uws-adapter.d.ts.map +1 -0
  115. package/dist/server/{uws-adapter.js → adapters/uws-adapter.js} +1 -28
  116. package/dist/server/adapters/uws-adapter.js.map +1 -0
  117. package/dist/server/app.d.ts +9 -30
  118. package/dist/server/app.d.ts.map +1 -1
  119. package/dist/server/app.js +19 -134
  120. package/dist/server/app.js.map +1 -1
  121. package/dist/server/bootstrapper.d.ts +4 -15
  122. package/dist/server/bootstrapper.d.ts.map +1 -1
  123. package/dist/server/bootstrapper.js +31 -222
  124. package/dist/server/bootstrapper.js.map +1 -1
  125. package/dist/server/define.d.ts +2 -2
  126. package/dist/server/define.d.ts.map +1 -1
  127. package/dist/server/define.js +3 -3
  128. package/dist/server/define.js.map +1 -1
  129. package/dist/server/engines/bun-engine.d.ts +16 -0
  130. package/dist/server/engines/bun-engine.d.ts.map +1 -0
  131. package/dist/server/engines/bun-engine.js +41 -0
  132. package/dist/server/engines/bun-engine.js.map +1 -0
  133. package/dist/server/engines/engine.d.ts +16 -0
  134. package/dist/server/engines/engine.d.ts.map +1 -0
  135. package/dist/{queue/types.js → server/engines/engine.js} +1 -1
  136. package/dist/server/engines/engine.js.map +1 -0
  137. package/dist/server/engines/node-engine.d.ts +22 -0
  138. package/dist/server/engines/node-engine.d.ts.map +1 -0
  139. package/dist/server/engines/node-engine.js +130 -0
  140. package/dist/server/engines/node-engine.js.map +1 -0
  141. package/dist/server/engines/uws-engine.d.ts +16 -0
  142. package/dist/server/engines/uws-engine.d.ts.map +1 -0
  143. package/dist/server/engines/uws-engine.js +48 -0
  144. package/dist/server/engines/uws-engine.js.map +1 -0
  145. package/dist/server/request-handler.d.ts +0 -1
  146. package/dist/server/request-handler.d.ts.map +1 -1
  147. package/dist/server/request-handler.js +74 -48
  148. package/dist/server/request-handler.js.map +1 -1
  149. package/dist/server/request.d.ts +0 -8
  150. package/dist/server/request.d.ts.map +1 -1
  151. package/dist/server/request.js +0 -16
  152. package/dist/server/request.js.map +1 -1
  153. package/dist/utils/time.d.ts +6 -0
  154. package/dist/utils/time.d.ts.map +1 -0
  155. package/dist/utils/time.js +15 -0
  156. package/dist/utils/time.js.map +1 -0
  157. package/dist/validator/index.d.ts +1 -7
  158. package/dist/validator/index.d.ts.map +1 -1
  159. package/dist/validator/index.js +1 -5
  160. package/dist/validator/index.js.map +1 -1
  161. package/dist/validator/tex-types.d.ts +15 -2
  162. package/dist/validator/tex-types.d.ts.map +1 -1
  163. package/dist/validator/tex-types.js +8 -0
  164. package/dist/validator/tex-types.js.map +1 -1
  165. package/dist/validator/tex.d.ts.map +1 -1
  166. package/dist/validator/tex.js +21 -2
  167. package/dist/validator/tex.js.map +1 -1
  168. package/package.json +9 -151
  169. package/dist/adapters/aws-lambda.d.ts +0 -21
  170. package/dist/adapters/aws-lambda.d.ts.map +0 -1
  171. package/dist/adapters/aws-lambda.js +0 -125
  172. package/dist/adapters/aws-lambda.js.map +0 -1
  173. package/dist/adapters/bun.d.ts +0 -9
  174. package/dist/adapters/bun.d.ts.map +0 -1
  175. package/dist/adapters/bun.js +0 -23
  176. package/dist/adapters/bun.js.map +0 -1
  177. package/dist/adapters/cloudflare.d.ts +0 -10
  178. package/dist/adapters/cloudflare.d.ts.map +0 -1
  179. package/dist/adapters/cloudflare.js +0 -22
  180. package/dist/adapters/cloudflare.js.map +0 -1
  181. package/dist/adapters/deno.d.ts +0 -7
  182. package/dist/adapters/deno.d.ts.map +0 -1
  183. package/dist/adapters/deno.js +0 -21
  184. package/dist/adapters/deno.js.map +0 -1
  185. package/dist/adapters/fastly.d.ts +0 -6
  186. package/dist/adapters/fastly.d.ts.map +0 -1
  187. package/dist/adapters/fastly.js +0 -20
  188. package/dist/adapters/fastly.js.map +0 -1
  189. package/dist/adapters/fetch.d.ts +0 -30
  190. package/dist/adapters/fetch.d.ts.map +0 -1
  191. package/dist/adapters/fetch.js +0 -119
  192. package/dist/adapters/fetch.js.map +0 -1
  193. package/dist/adapters/index.d.ts +0 -9
  194. package/dist/adapters/index.d.ts.map +0 -1
  195. package/dist/adapters/index.js +0 -28
  196. package/dist/adapters/index.js.map +0 -1
  197. package/dist/adapters/netlify.d.ts +0 -8
  198. package/dist/adapters/netlify.d.ts.map +0 -1
  199. package/dist/adapters/netlify.js +0 -20
  200. package/dist/adapters/netlify.js.map +0 -1
  201. package/dist/adapters/vercel.d.ts +0 -17
  202. package/dist/adapters/vercel.d.ts.map +0 -1
  203. package/dist/adapters/vercel.js +0 -23
  204. package/dist/adapters/vercel.js.map +0 -1
  205. package/dist/auth/index.d.ts +0 -8
  206. package/dist/auth/index.d.ts.map +0 -1
  207. package/dist/auth/index.js +0 -49
  208. package/dist/auth/index.js.map +0 -1
  209. package/dist/auth/jwt.d.ts +0 -20
  210. package/dist/auth/jwt.d.ts.map +0 -1
  211. package/dist/auth/jwt.js +0 -59
  212. package/dist/auth/jwt.js.map +0 -1
  213. package/dist/auth/oauth/core.d.ts +0 -96
  214. package/dist/auth/oauth/core.d.ts.map +0 -1
  215. package/dist/auth/oauth/core.js +0 -203
  216. package/dist/auth/oauth/core.js.map +0 -1
  217. package/dist/auth/oauth/index.d.ts +0 -45
  218. package/dist/auth/oauth/index.d.ts.map +0 -1
  219. package/dist/auth/oauth/index.js +0 -64
  220. package/dist/auth/oauth/index.js.map +0 -1
  221. package/dist/auth/oauth/middleware.d.ts +0 -63
  222. package/dist/auth/oauth/middleware.d.ts.map +0 -1
  223. package/dist/auth/oauth/middleware.js +0 -164
  224. package/dist/auth/oauth/middleware.js.map +0 -1
  225. package/dist/auth/oauth/providers/custom.d.ts +0 -41
  226. package/dist/auth/oauth/providers/custom.d.ts.map +0 -1
  227. package/dist/auth/oauth/providers/custom.js +0 -204
  228. package/dist/auth/oauth/providers/custom.js.map +0 -1
  229. package/dist/auth/oauth/providers/discord.d.ts +0 -23
  230. package/dist/auth/oauth/providers/discord.d.ts.map +0 -1
  231. package/dist/auth/oauth/providers/discord.js +0 -130
  232. package/dist/auth/oauth/providers/discord.js.map +0 -1
  233. package/dist/auth/oauth/providers/facebook.d.ts +0 -28
  234. package/dist/auth/oauth/providers/facebook.d.ts.map +0 -1
  235. package/dist/auth/oauth/providers/facebook.js +0 -124
  236. package/dist/auth/oauth/providers/facebook.js.map +0 -1
  237. package/dist/auth/oauth/providers/github.d.ts +0 -25
  238. package/dist/auth/oauth/providers/github.d.ts.map +0 -1
  239. package/dist/auth/oauth/providers/github.js +0 -132
  240. package/dist/auth/oauth/providers/github.js.map +0 -1
  241. package/dist/auth/oauth/providers/google.d.ts +0 -23
  242. package/dist/auth/oauth/providers/google.d.ts.map +0 -1
  243. package/dist/auth/oauth/providers/google.js +0 -134
  244. package/dist/auth/oauth/providers/google.js.map +0 -1
  245. package/dist/auth/oauth/providers/microsoft.d.ts +0 -28
  246. package/dist/auth/oauth/providers/microsoft.d.ts.map +0 -1
  247. package/dist/auth/oauth/providers/microsoft.js +0 -136
  248. package/dist/auth/oauth/providers/microsoft.js.map +0 -1
  249. package/dist/auth/oauth/types.d.ts +0 -158
  250. package/dist/auth/oauth/types.d.ts.map +0 -1
  251. package/dist/auth/oauth/types.js +0 -4
  252. package/dist/auth/oauth/types.js.map +0 -1
  253. package/dist/auth/password.d.ts +0 -25
  254. package/dist/auth/password.d.ts.map +0 -1
  255. package/dist/auth/password.js +0 -93
  256. package/dist/auth/password.js.map +0 -1
  257. package/dist/auth/rbac.d.ts +0 -10
  258. package/dist/auth/rbac.d.ts.map +0 -1
  259. package/dist/auth/rbac.js +0 -34
  260. package/dist/auth/rbac.js.map +0 -1
  261. package/dist/auth/session.d.ts +0 -26
  262. package/dist/auth/session.d.ts.map +0 -1
  263. package/dist/auth/session.js +0 -134
  264. package/dist/auth/session.js.map +0 -1
  265. package/dist/cache/index.d.ts +0 -4
  266. package/dist/cache/index.d.ts.map +0 -1
  267. package/dist/cache/index.js +0 -25
  268. package/dist/cache/index.js.map +0 -1
  269. package/dist/cache/store.d.ts +0 -58
  270. package/dist/cache/store.d.ts.map +0 -1
  271. package/dist/cache/store.js +0 -298
  272. package/dist/cache/store.js.map +0 -1
  273. package/dist/cron/parser.d.ts +0 -2
  274. package/dist/cron/parser.d.ts.map +0 -1
  275. package/dist/cron/parser.js +0 -52
  276. package/dist/cron/parser.js.map +0 -1
  277. package/dist/cron/scheduler.d.ts +0 -23
  278. package/dist/cron/scheduler.d.ts.map +0 -1
  279. package/dist/cron/scheduler.js +0 -114
  280. package/dist/cron/scheduler.js.map +0 -1
  281. package/dist/database/adapters/mongodb.d.ts +0 -58
  282. package/dist/database/adapters/mongodb.d.ts.map +0 -1
  283. package/dist/database/adapters/mongodb.js +0 -264
  284. package/dist/database/adapters/mongodb.js.map +0 -1
  285. package/dist/database/adapters/mysql.d.ts +0 -27
  286. package/dist/database/adapters/mysql.d.ts.map +0 -1
  287. package/dist/database/adapters/mysql.js +0 -188
  288. package/dist/database/adapters/mysql.js.map +0 -1
  289. package/dist/database/adapters/postgres.d.ts +0 -28
  290. package/dist/database/adapters/postgres.d.ts.map +0 -1
  291. package/dist/database/adapters/postgres.js +0 -174
  292. package/dist/database/adapters/postgres.js.map +0 -1
  293. package/dist/database/adapters/sqlite.d.ts +0 -27
  294. package/dist/database/adapters/sqlite.d.ts.map +0 -1
  295. package/dist/database/adapters/sqlite.js +0 -149
  296. package/dist/database/adapters/sqlite.js.map +0 -1
  297. package/dist/database/index.d.ts +0 -42
  298. package/dist/database/index.d.ts.map +0 -1
  299. package/dist/database/index.js +0 -58
  300. package/dist/database/index.js.map +0 -1
  301. package/dist/database/manager.d.ts +0 -141
  302. package/dist/database/manager.d.ts.map +0 -1
  303. package/dist/database/manager.js +0 -337
  304. package/dist/database/manager.js.map +0 -1
  305. package/dist/database/migration.d.ts +0 -57
  306. package/dist/database/migration.d.ts.map +0 -1
  307. package/dist/database/migration.js +0 -329
  308. package/dist/database/migration.js.map +0 -1
  309. package/dist/database/query-builder.d.ts +0 -95
  310. package/dist/database/query-builder.d.ts.map +0 -1
  311. package/dist/database/query-builder.js +0 -404
  312. package/dist/database/query-builder.js.map +0 -1
  313. package/dist/database/sql/index.d.ts +0 -18
  314. package/dist/database/sql/index.d.ts.map +0 -1
  315. package/dist/database/sql/index.js +0 -74
  316. package/dist/database/sql/index.js.map +0 -1
  317. package/dist/database/sql/schema.d.ts +0 -38
  318. package/dist/database/sql/schema.d.ts.map +0 -1
  319. package/dist/database/sql/schema.js +0 -80
  320. package/dist/database/sql/schema.js.map +0 -1
  321. package/dist/database/synchronizer.d.ts +0 -12
  322. package/dist/database/synchronizer.d.ts.map +0 -1
  323. package/dist/database/synchronizer.js +0 -82
  324. package/dist/database/synchronizer.js.map +0 -1
  325. package/dist/database/types.d.ts +0 -184
  326. package/dist/database/types.d.ts.map +0 -1
  327. package/dist/database/types.js +0 -4
  328. package/dist/database/types.js.map +0 -1
  329. package/dist/dataloader/dataloader.d.ts +0 -23
  330. package/dist/dataloader/dataloader.d.ts.map +0 -1
  331. package/dist/dataloader/dataloader.js +0 -98
  332. package/dist/dataloader/dataloader.js.map +0 -1
  333. package/dist/dataloader/index.d.ts +0 -3
  334. package/dist/dataloader/index.d.ts.map +0 -1
  335. package/dist/dataloader/index.js +0 -19
  336. package/dist/dataloader/index.js.map +0 -1
  337. package/dist/dataloader/registry.d.ts +0 -17
  338. package/dist/dataloader/registry.d.ts.map +0 -1
  339. package/dist/dataloader/registry.js +0 -47
  340. package/dist/dataloader/registry.js.map +0 -1
  341. package/dist/dev/dep-graph.d.ts +0 -2
  342. package/dist/dev/dep-graph.d.ts.map +0 -1
  343. package/dist/dev/dep-graph.js +0 -111
  344. package/dist/dev/dep-graph.js.map +0 -1
  345. package/dist/dev/hot-reload.d.ts +0 -30
  346. package/dist/dev/hot-reload.d.ts.map +0 -1
  347. package/dist/dev/hot-reload.js +0 -262
  348. package/dist/dev/hot-reload.js.map +0 -1
  349. package/dist/docs/content/adapters.mdx +0 -199
  350. package/dist/docs/content/cache.mdx +0 -239
  351. package/dist/docs/content/circuit-breaker.mdx +0 -130
  352. package/dist/docs/content/cron.mdx +0 -109
  353. package/dist/docs/content/database.mdx +0 -278
  354. package/dist/docs/content/gateways.mdx +0 -376
  355. package/dist/docs/content/oauth.mdx +0 -179
  356. package/dist/docs/content/queues.mdx +0 -177
  357. package/dist/docs/content/rpc.mdx +0 -146
  358. package/dist/docs/content/sse.mdx +0 -159
  359. package/dist/docs/content/websockets.mdx +0 -289
  360. package/dist/docs/integrations/README.md +0 -23
  361. package/dist/docs/integrations/jwt.mdx +0 -151
  362. package/dist/docs/integrations/mongo.mdx +0 -183
  363. package/dist/docs/integrations/observability.mdx +0 -125
  364. package/dist/docs/integrations/openai.mdx +0 -108
  365. package/dist/docs/integrations/postgres.mdx +0 -190
  366. package/dist/docs/integrations/posthog.mdx +0 -122
  367. package/dist/docs/integrations/redis.mdx +0 -141
  368. package/dist/docs/integrations/resend.mdx +0 -117
  369. package/dist/docs/integrations/s3.mdx +0 -122
  370. package/dist/docs/integrations/swagger.mdx +0 -113
  371. package/dist/docs/reference/adapters.mdx +0 -130
  372. package/dist/docs/reference/auth.mdx +0 -183
  373. package/dist/docs/reference/cache.mdx +0 -132
  374. package/dist/docs/reference/circuit-breaker.mdx +0 -71
  375. package/dist/docs/reference/queue.mdx +0 -155
  376. package/dist/docs/reference/storage.mdx +0 -116
  377. package/dist/docs/reference/swagger.mdx +0 -132
  378. package/dist/integrations/drizzle.d.ts +0 -10
  379. package/dist/integrations/drizzle.d.ts.map +0 -1
  380. package/dist/integrations/drizzle.js +0 -34
  381. package/dist/integrations/drizzle.js.map +0 -1
  382. package/dist/integrations/jwt.d.ts +0 -12
  383. package/dist/integrations/jwt.d.ts.map +0 -1
  384. package/dist/integrations/jwt.js +0 -29
  385. package/dist/integrations/jwt.js.map +0 -1
  386. package/dist/integrations/mongodb.d.ts +0 -13
  387. package/dist/integrations/mongodb.d.ts.map +0 -1
  388. package/dist/integrations/mongodb.js +0 -48
  389. package/dist/integrations/mongodb.js.map +0 -1
  390. package/dist/integrations/mongoose.d.ts +0 -13
  391. package/dist/integrations/mongoose.d.ts.map +0 -1
  392. package/dist/integrations/mongoose.js +0 -84
  393. package/dist/integrations/mongoose.js.map +0 -1
  394. package/dist/integrations/openai.d.ts +0 -12
  395. package/dist/integrations/openai.d.ts.map +0 -1
  396. package/dist/integrations/openai.js +0 -47
  397. package/dist/integrations/openai.js.map +0 -1
  398. package/dist/integrations/postgres.d.ts +0 -13
  399. package/dist/integrations/postgres.d.ts.map +0 -1
  400. package/dist/integrations/postgres.js +0 -55
  401. package/dist/integrations/postgres.js.map +0 -1
  402. package/dist/integrations/posthog.d.ts +0 -13
  403. package/dist/integrations/posthog.d.ts.map +0 -1
  404. package/dist/integrations/posthog.js +0 -49
  405. package/dist/integrations/posthog.js.map +0 -1
  406. package/dist/integrations/prisma.d.ts +0 -10
  407. package/dist/integrations/prisma.d.ts.map +0 -1
  408. package/dist/integrations/prisma.js +0 -39
  409. package/dist/integrations/prisma.js.map +0 -1
  410. package/dist/integrations/redis.d.ts +0 -12
  411. package/dist/integrations/redis.d.ts.map +0 -1
  412. package/dist/integrations/redis.js +0 -48
  413. package/dist/integrations/redis.js.map +0 -1
  414. package/dist/integrations/resend.d.ts +0 -12
  415. package/dist/integrations/resend.d.ts.map +0 -1
  416. package/dist/integrations/resend.js +0 -47
  417. package/dist/integrations/resend.js.map +0 -1
  418. package/dist/integrations/s3.d.ts +0 -15
  419. package/dist/integrations/s3.d.ts.map +0 -1
  420. package/dist/integrations/s3.js +0 -60
  421. package/dist/integrations/s3.js.map +0 -1
  422. package/dist/integrations/supabase.d.ts +0 -13
  423. package/dist/integrations/supabase.d.ts.map +0 -1
  424. package/dist/integrations/supabase.js +0 -51
  425. package/dist/integrations/supabase.js.map +0 -1
  426. package/dist/middleware/cache.d.ts +0 -21
  427. package/dist/middleware/cache.d.ts.map +0 -1
  428. package/dist/middleware/cache.js +0 -156
  429. package/dist/middleware/cache.js.map +0 -1
  430. package/dist/observability/health.d.ts +0 -23
  431. package/dist/observability/health.d.ts.map +0 -1
  432. package/dist/observability/health.js +0 -49
  433. package/dist/observability/health.js.map +0 -1
  434. package/dist/observability/index.d.ts +0 -4
  435. package/dist/observability/index.d.ts.map +0 -1
  436. package/dist/observability/index.js +0 -10
  437. package/dist/observability/index.js.map +0 -1
  438. package/dist/observability/metrics.d.ts +0 -6
  439. package/dist/observability/metrics.d.ts.map +0 -1
  440. package/dist/observability/metrics.js +0 -60
  441. package/dist/observability/metrics.js.map +0 -1
  442. package/dist/observability/otel.d.ts +0 -27
  443. package/dist/observability/otel.d.ts.map +0 -1
  444. package/dist/observability/otel.js +0 -45
  445. package/dist/observability/otel.js.map +0 -1
  446. package/dist/observability/prometheus.d.ts +0 -30
  447. package/dist/observability/prometheus.d.ts.map +0 -1
  448. package/dist/observability/prometheus.js +0 -31
  449. package/dist/observability/prometheus.js.map +0 -1
  450. package/dist/queue/client.d.ts +0 -13
  451. package/dist/queue/client.d.ts.map +0 -1
  452. package/dist/queue/client.js +0 -83
  453. package/dist/queue/client.js.map +0 -1
  454. package/dist/queue/drivers/MemoryDriver.d.ts +0 -21
  455. package/dist/queue/drivers/MemoryDriver.d.ts.map +0 -1
  456. package/dist/queue/drivers/MemoryDriver.js +0 -176
  457. package/dist/queue/drivers/MemoryDriver.js.map +0 -1
  458. package/dist/queue/drivers/RedisDriver.d.ts +0 -19
  459. package/dist/queue/drivers/RedisDriver.d.ts.map +0 -1
  460. package/dist/queue/drivers/RedisDriver.js +0 -130
  461. package/dist/queue/drivers/RedisDriver.js.map +0 -1
  462. package/dist/queue/index.d.ts +0 -18
  463. package/dist/queue/index.d.ts.map +0 -1
  464. package/dist/queue/index.js +0 -37
  465. package/dist/queue/index.js.map +0 -1
  466. package/dist/queue/manager.d.ts +0 -18
  467. package/dist/queue/manager.d.ts.map +0 -1
  468. package/dist/queue/manager.js +0 -59
  469. package/dist/queue/manager.js.map +0 -1
  470. package/dist/queue/types.d.ts +0 -55
  471. package/dist/queue/types.d.ts.map +0 -1
  472. package/dist/queue/types.js.map +0 -1
  473. package/dist/queue/worker.d.ts +0 -18
  474. package/dist/queue/worker.d.ts.map +0 -1
  475. package/dist/queue/worker.js +0 -176
  476. package/dist/queue/worker.js.map +0 -1
  477. package/dist/router/gateway.d.ts.map +0 -1
  478. package/dist/router/gateway.js +0 -11
  479. package/dist/router/gateway.js.map +0 -1
  480. package/dist/server/bun-adapter.d.ts.map +0 -1
  481. package/dist/server/bun-adapter.js.map +0 -1
  482. package/dist/server/sse.d.ts +0 -16
  483. package/dist/server/sse.d.ts.map +0 -1
  484. package/dist/server/sse.js +0 -51
  485. package/dist/server/sse.js.map +0 -1
  486. package/dist/server/uws-adapter.d.ts.map +0 -1
  487. package/dist/server/uws-adapter.js.map +0 -1
  488. package/dist/storage/index.d.ts +0 -15
  489. package/dist/storage/index.d.ts.map +0 -1
  490. package/dist/storage/index.js +0 -7
  491. package/dist/storage/index.js.map +0 -1
  492. package/dist/swagger/index.d.ts +0 -9
  493. package/dist/swagger/index.d.ts.map +0 -1
  494. package/dist/swagger/index.js +0 -165
  495. package/dist/swagger/index.js.map +0 -1
  496. package/dist/threads/pool.d.ts +0 -14
  497. package/dist/threads/pool.d.ts.map +0 -1
  498. package/dist/threads/pool.js +0 -93
  499. package/dist/threads/pool.js.map +0 -1
  500. package/dist/threads/worker-runner.d.ts +0 -2
  501. package/dist/threads/worker-runner.d.ts.map +0 -1
  502. package/dist/threads/worker-runner.js +0 -71
  503. package/dist/threads/worker-runner.js.map +0 -1
  504. package/dist/validator/validator.d.ts +0 -360
  505. package/dist/validator/validator.d.ts.map +0 -1
  506. package/dist/validator/validator.js +0 -931
  507. package/dist/validator/validator.js.map +0 -1
  508. package/dist/websocket/orchestrator.d.ts +0 -11
  509. package/dist/websocket/orchestrator.d.ts.map +0 -1
  510. package/dist/websocket/orchestrator.js +0 -238
  511. package/dist/websocket/orchestrator.js.map +0 -1
  512. package/dist/websocket/server.d.ts +0 -66
  513. package/dist/websocket/server.d.ts.map +0 -1
  514. package/dist/websocket/server.js +0 -158
  515. package/dist/websocket/server.js.map +0 -1
  516. package/dist/websocket/socket.d.ts +0 -119
  517. package/dist/websocket/socket.d.ts.map +0 -1
  518. package/dist/websocket/socket.js +0 -242
  519. package/dist/websocket/socket.js.map +0 -1
@@ -46,7 +46,7 @@ class RouteScanner {
46
46
  this.lazyRoutes = new Map();
47
47
  this.routeMap = new Map();
48
48
  this.apiDir = null;
49
- this.hasGateways = false;
49
+ this.hasBoundaries = false;
50
50
  this.globalParadigm = null;
51
51
  }
52
52
  async loadAllRoutes() {
@@ -173,18 +173,12 @@ class RouteScanner {
173
173
  this.apiDir = appDirs[0] // keep property name for backwards compatibility
174
174
  ;
175
175
  this._allApiDirs = appDirs;
176
- const cc = {
177
- green: '\x1b[32m',
178
- cyan: '\x1b[36m',
179
- gray: '\x1b[90m',
180
- reset: '\x1b[0m',
181
- };
182
176
  for (const appDir of appDirs) {
183
177
  const routes = await this.scanDirectory(appDir);
184
178
  for (const { filePath, routePath } of routes) {
185
- if (filePath.endsWith('gateway.ts') ||
186
- filePath.endsWith('gateway.js')) {
187
- this.hasGateways = true;
179
+ if (filePath.endsWith('boundary.ts') ||
180
+ filePath.endsWith('boundary.js')) {
181
+ this.hasBoundaries = true;
188
182
  }
189
183
  if (filePath.endsWith('route.ts') || filePath.endsWith('route.js')) {
190
184
  const normalized = path.resolve(filePath);
@@ -202,14 +196,6 @@ class RouteScanner {
202
196
  this.app.getRouter().removeRoutesBySource('lazy:' + lazyKey);
203
197
  try {
204
198
  await this.mountRouteFile(normalized, routePath);
205
- const relative = path
206
- .relative(process.cwd(), normalized)
207
- .replace(/\\/g, '/');
208
- const now = new Date();
209
- const h = String(now.getHours()).padStart(2, '0');
210
- const m = String(now.getMinutes()).padStart(2, '0');
211
- const s = String(now.getSeconds()).padStart(2, '0');
212
- console.log(`${cc.gray}[${h}:${m}:${s}]${cc.reset} ${cc.green}HMR:${cc.reset} Lazy loaded ${cc.cyan}${relative}${cc.reset}`);
213
199
  }
214
200
  catch (err) {
215
201
  (0, error_overlay_1.formatDevError)(err, normalized);
@@ -289,78 +275,11 @@ class RouteScanner {
289
275
  else if (functionalFiles.length > 0)
290
276
  this.globalParadigm = 'functional';
291
277
  }
292
- if (!this.hasGateways && !isProd) {
293
- console.warn('\x1b[33m[ExisJS] Warning: No gateway.ts found — applying default security headers.\x1b[0m');
278
+ if (!this.hasBoundaries && !isProd) {
279
+ console.warn('\x1b[33m[ExisJS] Warning: No boundary.ts found — applying default security headers.\x1b[0m');
294
280
  }
295
281
  }
296
282
  // ─── Route File Mounting (shared by autoMount and HotReloader) ──────────────
297
- // ─── Auto-Mount File-Based Jobs ──────────────────────────────────────────────
298
- async autoMountJobs(root) {
299
- if (!this.app._queueWorker)
300
- return;
301
- const fs = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
302
- const path = await Promise.resolve().then(() => __importStar(require('node:path')));
303
- const isProd = process.env.NODE_ENV === 'production';
304
- const searchDirs = isProd
305
- ? [
306
- path.join(root, '.exis', 'server', 'src', 'jobs'),
307
- path.join(root, 'dist', 'src', 'jobs'),
308
- path.join(root, 'src', 'jobs'),
309
- ]
310
- : [path.join(root, 'src', 'jobs')];
311
- let jobsDir = '';
312
- for (const dir of searchDirs) {
313
- try {
314
- const stat = await fs.stat(dir);
315
- if (stat.isDirectory()) {
316
- jobsDir = dir;
317
- break;
318
- }
319
- }
320
- catch {
321
- /* ignore */
322
- }
323
- }
324
- if (!jobsDir)
325
- return;
326
- try {
327
- const entries = await fs.readdir(jobsDir, { withFileTypes: true });
328
- for (const entry of entries) {
329
- if (entry.isFile() &&
330
- (entry.name.endsWith('.ts') || entry.name.endsWith('.js'))) {
331
- const filePath = path.join(jobsDir, entry.name);
332
- const name = entry.name.replace(/\.(ts|js)$/, '');
333
- try {
334
- // Load the definition directly (no compilation needed here just to get the schema)
335
- const mod = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
336
- const jobDef = mod.default || mod;
337
- if (jobDef) {
338
- const def = {
339
- name: jobDef.name || name,
340
- filePath, // Attach filePath for Thread Pool execution
341
- cron: jobDef.cron,
342
- schema: jobDef.schema,
343
- defaultOptions: jobDef.defaultOptions,
344
- };
345
- this.app._queueWorker.registerJob(def);
346
- if (this.app._cronScheduler && jobDef.cron) {
347
- this.app._cronScheduler.registerJob(def);
348
- }
349
- if (!process.env.__EXIS_IS_RESTART) {
350
- this.app.log.info(`Registered background job: ${name}`);
351
- }
352
- }
353
- }
354
- catch (err) {
355
- this.app.log.error(`Failed to load job file ${filePath}: ${err}`);
356
- }
357
- }
358
- }
359
- }
360
- catch {
361
- // Ignore if jobs directory does not exist
362
- }
363
- }
364
283
  async mountRouteFile(filePath, routePath) {
365
284
  let mod;
366
285
  try {
@@ -395,7 +314,7 @@ class RouteScanner {
395
314
  let allMetadata = {};
396
315
  let allCors = undefined;
397
316
  let allHeaders = {};
398
- const activeGateways = [];
317
+ const activeBoundaries = [];
399
318
  const dirsToCheck = [apiDir];
400
319
  let tempDir = apiDir;
401
320
  for (const segment of segments) {
@@ -404,78 +323,212 @@ class RouteScanner {
404
323
  }
405
324
  for (const dir of dirsToCheck) {
406
325
  try {
407
- const gwPathJs = path.join(dir, 'gateway.js');
408
- const gwPathTs = path.join(dir, 'gateway.ts');
409
- let targetGw = '';
410
- if (await fs.stat(gwPathTs).catch(() => null))
411
- targetGw = gwPathTs;
412
- else if (await fs.stat(gwPathJs).catch(() => null))
413
- targetGw = gwPathJs;
414
- if (targetGw) {
415
- activeGateways.push(targetGw);
416
- this.hasGateways = true;
417
- const gwUrl = process.env.VITEST || process.env.NODE_ENV === 'test'
418
- ? (0, node_url_1.pathToFileURL)(targetGw).href
419
- : (0, node_url_1.pathToFileURL)(targetGw).href + '?t=' + Date.now();
420
- let gwMod;
326
+ const boundaryPathTs = path.join(dir, 'boundary.ts');
327
+ const boundaryPathJs = path.join(dir, 'boundary.js');
328
+ let targetBoundary = '';
329
+ if (await fs.stat(boundaryPathTs).catch(() => null))
330
+ targetBoundary = boundaryPathTs;
331
+ else if (await fs.stat(boundaryPathJs).catch(() => null))
332
+ targetBoundary = boundaryPathJs;
333
+ if (targetBoundary) {
334
+ activeBoundaries.push(targetBoundary);
335
+ this.hasBoundaries = true;
336
+ const boundaryUrl = process.env.VITEST || process.env.NODE_ENV === 'test'
337
+ ? (0, node_url_1.pathToFileURL)(targetBoundary).href
338
+ : (0, node_url_1.pathToFileURL)(targetBoundary).href + '?t=' + Date.now();
339
+ let boundaryMod;
421
340
  try {
422
341
  if (process.env.VITEST || process.env.NODE_ENV === 'test') {
423
- gwMod = await Promise.resolve(`${gwUrl}`).then(s => __importStar(require(s)));
342
+ boundaryMod = await Promise.resolve(`${boundaryUrl}`).then(s => __importStar(require(s)));
424
343
  }
425
344
  else {
426
- const dynamicImportGw = new Function('specifier', 'return import(specifier)');
427
- gwMod = await dynamicImportGw(gwUrl);
345
+ const dynamicImportBoundary = new Function('specifier', 'return import(specifier)');
346
+ boundaryMod = await dynamicImportBoundary(boundaryUrl);
428
347
  }
429
348
  }
430
349
  catch {
431
350
  // eslint-disable-next-line @typescript-eslint/no-require-imports
432
- gwMod = require(targetGw);
351
+ boundaryMod = require(targetBoundary);
433
352
  }
434
- const gwConfig = gwMod && gwMod.default && gwMod.default.default
435
- ? gwMod.default.default
436
- : gwMod && gwMod.default
437
- ? gwMod.default
438
- : gwMod;
439
- if (gwConfig) {
440
- const isExcluded = (reqPath, reqMethod) => {
441
- if (!gwConfig.exclude)
442
- return false;
443
- for (const rule of gwConfig.exclude) {
444
- if (typeof rule === 'string') {
445
- if (rule.endsWith('/*')) {
446
- if (reqPath.startsWith(rule.slice(0, -2)))
447
- return true;
448
- }
449
- else if (reqPath === rule)
353
+ // Extract config: check boundaryMod.config, boundaryMod.default, or boundaryMod itself
354
+ let boundaryConfig = null;
355
+ const BOUNDARY_CONFIG = Symbol.for('exisjs:boundary_config');
356
+ const boundaryDefault = boundaryMod && boundaryMod.default && boundaryMod.default.default
357
+ ? boundaryMod.default.default
358
+ : boundaryMod && boundaryMod.default
359
+ ? boundaryMod.default
360
+ : null;
361
+ if (boundaryMod &&
362
+ boundaryMod.config &&
363
+ typeof boundaryMod.config === 'object') {
364
+ boundaryConfig = boundaryMod.config;
365
+ }
366
+ else if (boundaryDefault &&
367
+ typeof boundaryDefault === 'function' &&
368
+ boundaryDefault.prototype &&
369
+ boundaryDefault.prototype[BOUNDARY_CONFIG]) {
370
+ // Class-based boundary with @Boundary
371
+ boundaryConfig = boundaryDefault.prototype[BOUNDARY_CONFIG];
372
+ }
373
+ else if (boundaryDefault && typeof boundaryDefault === 'object') {
374
+ boundaryConfig = boundaryDefault;
375
+ }
376
+ else if (boundaryMod && typeof boundaryMod === 'object') {
377
+ boundaryConfig = boundaryMod;
378
+ }
379
+ const isExcluded = (reqPath, reqMethod) => {
380
+ if (!boundaryConfig || !boundaryConfig.exclude)
381
+ return false;
382
+ for (const rule of boundaryConfig.exclude) {
383
+ if (typeof rule === 'string') {
384
+ if (rule.endsWith('/*')) {
385
+ if (reqPath.startsWith(rule.slice(0, -2)))
386
+ return true;
387
+ }
388
+ else if (reqPath === rule)
389
+ return true;
390
+ }
391
+ else {
392
+ const pathMatch = rule.path.endsWith('/*')
393
+ ? reqPath.startsWith(rule.path.slice(0, -2))
394
+ : reqPath === rule.path;
395
+ if (pathMatch) {
396
+ const methods = rule.methods || (rule.method ? [rule.method] : undefined);
397
+ if (!methods || methods.includes(reqMethod))
450
398
  return true;
451
399
  }
400
+ }
401
+ }
402
+ return false;
403
+ };
404
+ // 1. Auto-detect named middleware functions: (req, res, next)
405
+ if (boundaryMod && typeof boundaryMod === 'object') {
406
+ for (const [exportKey, exportVal] of Object.entries(boundaryMod)) {
407
+ if (exportKey !== 'default' &&
408
+ exportKey !== 'config' &&
409
+ typeof exportVal === 'function' &&
410
+ exportVal.length >= 3 // (req, res, next)
411
+ ) {
412
+ const namedMiddleware = (req, res, next) => isExcluded(req.path, req.method)
413
+ ? next()
414
+ : exportVal(req, res, next);
415
+ allMiddlewares.push(namedMiddleware);
416
+ }
417
+ }
418
+ }
419
+ // 2. Auto-detect pipeline wrapper function: export default async function(ctx, next)
420
+ // or class method named `handle(ctx, next)`
421
+ let wrapperFn = null;
422
+ if (boundaryDefault &&
423
+ typeof boundaryDefault === 'function' &&
424
+ boundaryDefault.length === 2 &&
425
+ !boundaryDefault.prototype?.[BOUNDARY_CONFIG]) {
426
+ wrapperFn = boundaryDefault;
427
+ }
428
+ else if (boundaryDefault &&
429
+ typeof boundaryDefault === 'function' &&
430
+ boundaryDefault.prototype &&
431
+ boundaryDefault.prototype[BOUNDARY_CONFIG]) {
432
+ const proto = boundaryDefault.prototype;
433
+ if (typeof proto.handle === 'function') {
434
+ const boundaryInstance = new boundaryDefault();
435
+ wrapperFn = proto.handle.bind(boundaryInstance);
436
+ }
437
+ // Also inspect method middlewares on class boundary
438
+ for (const prop of Object.getOwnPropertyNames(proto)) {
439
+ if (prop !== 'constructor' && prop !== 'handle') {
440
+ const methodVal = proto[prop];
441
+ if (typeof methodVal === 'function' && methodVal.length >= 3) {
442
+ const boundaryInstance = new boundaryDefault();
443
+ const namedMiddleware = (req, res, next) => isExcluded(req.path, req.method)
444
+ ? next()
445
+ : methodVal.call(boundaryInstance, req, res, next);
446
+ allMiddlewares.push(namedMiddleware);
447
+ }
448
+ }
449
+ }
450
+ }
451
+ if (wrapperFn) {
452
+ const capturedWrapper = wrapperFn;
453
+ const wrapperMiddleware = (req, res, next) => {
454
+ if (isExcluded(req.path, req.method))
455
+ return next();
456
+ let nextCalled = false;
457
+ let nextResolve;
458
+ let _nextReject;
459
+ const nextPromise = new Promise((resolve, reject) => {
460
+ nextResolve = resolve;
461
+ _nextReject = reject;
462
+ });
463
+ // Intercept response methods to catch handler return values
464
+ const originalJson = res.json.bind(res);
465
+ const originalSend = res.send.bind(res);
466
+ let handledByRoute = false;
467
+ res.json = function (body) {
468
+ if (!handledByRoute) {
469
+ handledByRoute = true;
470
+ nextResolve(body);
471
+ }
472
+ else {
473
+ return originalJson(body);
474
+ }
475
+ return this;
476
+ };
477
+ res.send = function (body) {
478
+ if (!handledByRoute) {
479
+ handledByRoute = true;
480
+ nextResolve(body);
481
+ }
452
482
  else {
453
- const pathMatch = rule.path.endsWith('/*')
454
- ? reqPath.startsWith(rule.path.slice(0, -2))
455
- : reqPath === rule.path;
456
- if (pathMatch) {
457
- if (!rule.methods ||
458
- rule.methods.includes(reqMethod))
459
- return true;
483
+ return originalSend(body);
484
+ }
485
+ return this;
486
+ };
487
+ const ctx = {
488
+ req,
489
+ res,
490
+ app: this.app,
491
+ resolve: (token) => this.app.resolve(token, req._diCache),
492
+ };
493
+ capturedWrapper(ctx, async () => {
494
+ if (!nextCalled) {
495
+ nextCalled = true;
496
+ next();
497
+ }
498
+ return nextPromise;
499
+ })
500
+ .then((wrapperResult) => {
501
+ if (wrapperResult !== undefined && !res.headersSent) {
502
+ if (typeof wrapperResult === 'object' &&
503
+ wrapperResult !== null) {
504
+ originalJson(wrapperResult);
505
+ }
506
+ else {
507
+ originalSend(String(wrapperResult));
460
508
  }
461
509
  }
462
- }
463
- return false;
510
+ })
511
+ .catch((wrapperErr) => {
512
+ next(wrapperErr);
513
+ });
464
514
  };
465
- if (gwConfig.middleware) {
466
- const wrapped = gwConfig.middleware.map((m) => (req, res, next) => isExcluded(req.path, req.method) ? next() : m(req, res, next));
515
+ allMiddlewares.push(wrapperMiddleware);
516
+ }
517
+ if (boundaryConfig) {
518
+ if (boundaryConfig.middleware) {
519
+ const wrapped = boundaryConfig.middleware.map((m) => (req, res, next) => isExcluded(req.path, req.method) ? next() : m(req, res, next));
467
520
  allMiddlewares.push(...wrapped);
468
521
  }
469
- if (gwConfig.filters) {
470
- const wrapped = gwConfig.filters.map((f) => (err, req, res, next) => isExcluded(req.path, req.method)
522
+ if (boundaryConfig.filters) {
523
+ const wrapped = boundaryConfig.filters.map((f) => (err, req, res, next) => isExcluded(req.path, req.method)
471
524
  ? next(err)
472
525
  : f.prototype && f.prototype.catch
473
526
  ? new f().catch(err, req, res, next)
474
527
  : f(err, req, res, next));
475
528
  allFilters.push(...wrapped);
476
529
  }
477
- if (gwConfig.guards) {
478
- const wrapped = gwConfig.guards.map((g) => {
530
+ if (boundaryConfig.guards) {
531
+ const wrapped = boundaryConfig.guards.map((g) => {
479
532
  return async (req) => {
480
533
  if (isExcluded(req.path, req.method))
481
534
  return true;
@@ -488,8 +541,8 @@ class RouteScanner {
488
541
  });
489
542
  allGuards.push(...wrapped);
490
543
  }
491
- if (gwConfig.interceptors) {
492
- const wrapped = gwConfig.interceptors.map((i) => {
544
+ if (boundaryConfig.interceptors) {
545
+ const wrapped = boundaryConfig.interceptors.map((i) => {
493
546
  return async (req, res) => {
494
547
  if (isExcluded(req.path, req.method))
495
548
  return;
@@ -502,8 +555,8 @@ class RouteScanner {
502
555
  });
503
556
  allInterceptors.push(...wrapped);
504
557
  }
505
- if (gwConfig.timeout !== undefined) {
506
- const baseTimeout = gwConfig.timeout;
558
+ if (boundaryConfig.timeout !== undefined) {
559
+ const baseTimeout = boundaryConfig.timeout;
507
560
  const timeoutMiddleware = (req, res, next) => {
508
561
  if (isExcluded(req.path, req.method))
509
562
  return next();
@@ -528,28 +581,28 @@ class RouteScanner {
528
581
  };
529
582
  allMiddlewares.push(timeoutMiddleware);
530
583
  }
531
- if (gwConfig.metadata) {
532
- allMetadata = { ...allMetadata, ...gwConfig.metadata };
584
+ if (boundaryConfig.metadata) {
585
+ allMetadata = { ...allMetadata, ...boundaryConfig.metadata };
533
586
  }
534
- if (gwConfig.cors !== undefined)
535
- allCors = gwConfig.cors;
536
- if (gwConfig.headers)
537
- allHeaders = { ...allHeaders, ...gwConfig.headers };
538
- if (gwConfig.plugins) {
539
- for (const plugin of gwConfig.plugins) {
587
+ if (boundaryConfig.cors !== undefined)
588
+ allCors = boundaryConfig.cors;
589
+ if (boundaryConfig.headers)
590
+ allHeaders = { ...allHeaders, ...boundaryConfig.headers };
591
+ if (boundaryConfig.plugins) {
592
+ for (const plugin of boundaryConfig.plugins) {
540
593
  await this.app.pluginManager.register(plugin);
541
594
  }
542
595
  }
543
- if (gwConfig.imports) {
544
- for (const mod of gwConfig.imports) {
596
+ if (boundaryConfig.imports) {
597
+ for (const mod of boundaryConfig.imports) {
545
598
  const name = 'plugin' in mod ? mod.plugin.name : mod.name;
546
599
  if (!this.app.pluginManager.hasPlugin(name)) {
547
600
  await this.app.pluginManager.register(mod);
548
601
  }
549
602
  }
550
603
  }
551
- if (gwConfig.providers) {
552
- for (const [token, providerConfig] of gwConfig.providers) {
604
+ if (boundaryConfig.providers) {
605
+ for (const [token, providerConfig] of boundaryConfig.providers) {
553
606
  this.app.container.provide(token, providerConfig);
554
607
  }
555
608
  }
@@ -570,7 +623,7 @@ class RouteScanner {
570
623
  ...(isControllerObj ? currentMod : {}),
571
624
  ...(mod.config || {}),
572
625
  };
573
- // Fallback to global app.options.cors if neither gateway nor route specify it
626
+ // Fallback to global app.options.cors if neither boundary nor route specify it
574
627
  if (routeConfig.cors !== undefined)
575
628
  allCors = routeConfig.cors;
576
629
  else if (allCors === undefined && this.app.options.cors !== undefined)
@@ -586,7 +639,7 @@ class RouteScanner {
586
639
  await this.app.pluginManager.register(plugin);
587
640
  }
588
641
  }
589
- // Pass gateway features to controllers via metadata if necessary
642
+ // Pass boundary features to controllers via metadata if necessary
590
643
  const combinedFilters = [
591
644
  ...allFilters,
592
645
  ...(routeConfig.filters
@@ -640,13 +693,13 @@ class RouteScanner {
640
693
  const relFile = pathLib
641
694
  .relative(process.cwd(), filePath)
642
695
  .replace(/\\/g, '/');
643
- const gwStr = activeGateways.length > 0
644
- ? activeGateways
696
+ const boundaryStr = activeBoundaries.length > 0
697
+ ? activeBoundaries
645
698
  .map((g) => pathLib.relative(process.cwd(), g).replace(/\\/g, '/'))
646
699
  .join(' -> ') + ' -> '
647
700
  : '';
648
701
  prefixMiddlewares.push((req, res, next) => {
649
- this.app.log.debug(`[Request] ${req.method} ${req.path} -> ${gwStr}${relFile}`);
702
+ this.app.log.debug(`[Request] ${req.method} ${req.path} -> ${boundaryStr}${relFile}`);
650
703
  next();
651
704
  });
652
705
  }
@@ -884,43 +937,13 @@ class RouteScanner {
884
937
  if (Object.keys(combinedMetadata).length > 0) {
885
938
  schema.metadata = combinedMetadata;
886
939
  }
887
- if (method === 'sse') {
888
- const sseHandler = async (stream, rawReq) => {
889
- try {
890
- const ctx = {
891
- body: rawReq.body,
892
- query: rawReq.query,
893
- params: rawReq.params,
894
- headers: rawReq.headers,
895
- req: rawReq,
896
- res: undefined, // Res is not available in standard SSE after handshake
897
- app: this.app,
898
- resolve: (token) => this.app.resolve(token, rawReq._diCache),
899
- stream,
900
- ...rawReq,
901
- };
902
- await rc.handle(ctx);
903
- }
904
- catch (err) {
905
- if (onError) {
906
- await onError(err, rawReq, {});
907
- }
908
- else {
909
- console.error('[Exis SSE Error]', err);
910
- }
911
- }
912
- };
913
- router.sse(rc.path, ...routeMiddlewares, sseHandler);
940
+ if (Object.keys(schema).length > 0) {
941
+ ;
942
+ router[method](rc.path, ...routeMiddlewares, schema, superHandler);
914
943
  }
915
944
  else {
916
- if (Object.keys(schema).length > 0) {
917
- ;
918
- router[method](rc.path, ...routeMiddlewares, schema, superHandler);
919
- }
920
- else {
921
- ;
922
- router[method](rc.path, ...routeMiddlewares, superHandler);
923
- }
945
+ ;
946
+ router[method](rc.path, ...routeMiddlewares, superHandler);
924
947
  }
925
948
  }
926
949
  return router;