exisjs 0.1.2

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 (495) hide show
  1. package/README.md +52 -0
  2. package/bin/exis.js +2 -0
  3. package/dist/adapters/aws-lambda.d.ts +21 -0
  4. package/dist/adapters/aws-lambda.d.ts.map +1 -0
  5. package/dist/adapters/aws-lambda.js +110 -0
  6. package/dist/adapters/aws-lambda.js.map +1 -0
  7. package/dist/adapters/bun.d.ts +9 -0
  8. package/dist/adapters/bun.d.ts.map +1 -0
  9. package/dist/adapters/bun.js +15 -0
  10. package/dist/adapters/bun.js.map +1 -0
  11. package/dist/adapters/cloudflare.d.ts +10 -0
  12. package/dist/adapters/cloudflare.d.ts.map +1 -0
  13. package/dist/adapters/cloudflare.js +14 -0
  14. package/dist/adapters/cloudflare.js.map +1 -0
  15. package/dist/adapters/deno.d.ts +7 -0
  16. package/dist/adapters/deno.d.ts.map +1 -0
  17. package/dist/adapters/deno.js +11 -0
  18. package/dist/adapters/deno.js.map +1 -0
  19. package/dist/adapters/fastly.d.ts +6 -0
  20. package/dist/adapters/fastly.d.ts.map +1 -0
  21. package/dist/adapters/fastly.js +12 -0
  22. package/dist/adapters/fastly.js.map +1 -0
  23. package/dist/adapters/fetch.d.ts +30 -0
  24. package/dist/adapters/fetch.d.ts.map +1 -0
  25. package/dist/adapters/fetch.js +119 -0
  26. package/dist/adapters/fetch.js.map +1 -0
  27. package/dist/adapters/index.d.ts +9 -0
  28. package/dist/adapters/index.d.ts.map +1 -0
  29. package/dist/adapters/index.js +28 -0
  30. package/dist/adapters/index.js.map +1 -0
  31. package/dist/adapters/netlify.d.ts +8 -0
  32. package/dist/adapters/netlify.d.ts.map +1 -0
  33. package/dist/adapters/netlify.js +12 -0
  34. package/dist/adapters/netlify.js.map +1 -0
  35. package/dist/adapters/vercel.d.ts +14 -0
  36. package/dist/adapters/vercel.d.ts.map +1 -0
  37. package/dist/adapters/vercel.js +20 -0
  38. package/dist/adapters/vercel.js.map +1 -0
  39. package/dist/auth/jwt.d.ts +20 -0
  40. package/dist/auth/jwt.d.ts.map +1 -0
  41. package/dist/auth/jwt.js +79 -0
  42. package/dist/auth/jwt.js.map +1 -0
  43. package/dist/auth/password.d.ts +25 -0
  44. package/dist/auth/password.d.ts.map +1 -0
  45. package/dist/auth/password.js +93 -0
  46. package/dist/auth/password.js.map +1 -0
  47. package/dist/auth/rbac.d.ts +10 -0
  48. package/dist/auth/rbac.d.ts.map +1 -0
  49. package/dist/auth/rbac.js +34 -0
  50. package/dist/auth/rbac.js.map +1 -0
  51. package/dist/auth/session.d.ts +23 -0
  52. package/dist/auth/session.d.ts.map +1 -0
  53. package/dist/auth/session.js +105 -0
  54. package/dist/auth/session.js.map +1 -0
  55. package/dist/cache/index.d.ts +2 -0
  56. package/dist/cache/index.d.ts.map +1 -0
  57. package/dist/cache/index.js +9 -0
  58. package/dist/cache/index.js.map +1 -0
  59. package/dist/cache/store.d.ts +48 -0
  60. package/dist/cache/store.d.ts.map +1 -0
  61. package/dist/cache/store.js +211 -0
  62. package/dist/cache/store.js.map +1 -0
  63. package/dist/cli/commands/build.d.ts +7 -0
  64. package/dist/cli/commands/build.d.ts.map +1 -0
  65. package/dist/cli/commands/build.js +183 -0
  66. package/dist/cli/commands/build.js.map +1 -0
  67. package/dist/cli/commands/dev.d.ts +9 -0
  68. package/dist/cli/commands/dev.d.ts.map +1 -0
  69. package/dist/cli/commands/dev.js +290 -0
  70. package/dist/cli/commands/dev.js.map +1 -0
  71. package/dist/cli/commands/exports.d.ts +2 -0
  72. package/dist/cli/commands/exports.d.ts.map +1 -0
  73. package/dist/cli/commands/exports.js +76 -0
  74. package/dist/cli/commands/exports.js.map +1 -0
  75. package/dist/cli/commands/generate.d.ts +5 -0
  76. package/dist/cli/commands/generate.d.ts.map +1 -0
  77. package/dist/cli/commands/generate.js +149 -0
  78. package/dist/cli/commands/generate.js.map +1 -0
  79. package/dist/cli/commands/init.d.ts +2 -0
  80. package/dist/cli/commands/init.d.ts.map +1 -0
  81. package/dist/cli/commands/init.js +37 -0
  82. package/dist/cli/commands/init.js.map +1 -0
  83. package/dist/cli/commands/repl.d.ts +6 -0
  84. package/dist/cli/commands/repl.d.ts.map +1 -0
  85. package/dist/cli/commands/repl.js +75 -0
  86. package/dist/cli/commands/repl.js.map +1 -0
  87. package/dist/cli/commands/start.d.ts +7 -0
  88. package/dist/cli/commands/start.d.ts.map +1 -0
  89. package/dist/cli/commands/start.js +111 -0
  90. package/dist/cli/commands/start.js.map +1 -0
  91. package/dist/cli/commands/test.d.ts +7 -0
  92. package/dist/cli/commands/test.d.ts.map +1 -0
  93. package/dist/cli/commands/test.js +170 -0
  94. package/dist/cli/commands/test.js.map +1 -0
  95. package/dist/cli/index.d.ts +3 -0
  96. package/dist/cli/index.d.ts.map +1 -0
  97. package/dist/cli/index.js +183 -0
  98. package/dist/cli/index.js.map +1 -0
  99. package/dist/cli/manifest.d.ts +2 -0
  100. package/dist/cli/manifest.d.ts.map +1 -0
  101. package/dist/cli/manifest.js +160 -0
  102. package/dist/cli/manifest.js.map +1 -0
  103. package/dist/cli/optimizers/aot-routes.d.ts +2 -0
  104. package/dist/cli/optimizers/aot-routes.d.ts.map +1 -0
  105. package/dist/cli/optimizers/aot-routes.js +59 -0
  106. package/dist/cli/optimizers/aot-routes.js.map +1 -0
  107. package/dist/cli/optimizers/precompile-serializers.d.ts +2 -0
  108. package/dist/cli/optimizers/precompile-serializers.d.ts.map +1 -0
  109. package/dist/cli/optimizers/precompile-serializers.js +68 -0
  110. package/dist/cli/optimizers/precompile-serializers.js.map +1 -0
  111. package/dist/cli/optimizers/tree-shake.d.ts +2 -0
  112. package/dist/cli/optimizers/tree-shake.d.ts.map +1 -0
  113. package/dist/cli/optimizers/tree-shake.js +64 -0
  114. package/dist/cli/optimizers/tree-shake.js.map +1 -0
  115. package/dist/cli/routes.d.ts +2 -0
  116. package/dist/cli/routes.d.ts.map +1 -0
  117. package/dist/cli/routes.js +158 -0
  118. package/dist/cli/routes.js.map +1 -0
  119. package/dist/cli/utils.d.ts +24 -0
  120. package/dist/cli/utils.d.ts.map +1 -0
  121. package/dist/cli/utils.js +54 -0
  122. package/dist/cli/utils.js.map +1 -0
  123. package/dist/config/constants.d.ts +11 -0
  124. package/dist/config/constants.d.ts.map +1 -0
  125. package/dist/config/constants.js +14 -0
  126. package/dist/config/constants.js.map +1 -0
  127. package/dist/cron/parser.d.ts +2 -0
  128. package/dist/cron/parser.d.ts.map +1 -0
  129. package/dist/cron/parser.js +52 -0
  130. package/dist/cron/parser.js.map +1 -0
  131. package/dist/cron/scheduler.d.ts +22 -0
  132. package/dist/cron/scheduler.d.ts.map +1 -0
  133. package/dist/cron/scheduler.js +102 -0
  134. package/dist/cron/scheduler.js.map +1 -0
  135. package/dist/dataloader/dataloader.d.ts +23 -0
  136. package/dist/dataloader/dataloader.d.ts.map +1 -0
  137. package/dist/dataloader/dataloader.js +98 -0
  138. package/dist/dataloader/dataloader.js.map +1 -0
  139. package/dist/dataloader/registry.d.ts +17 -0
  140. package/dist/dataloader/registry.d.ts.map +1 -0
  141. package/dist/dataloader/registry.js +47 -0
  142. package/dist/dataloader/registry.js.map +1 -0
  143. package/dist/decorators/index.d.ts +63 -0
  144. package/dist/decorators/index.d.ts.map +1 -0
  145. package/dist/decorators/index.js +460 -0
  146. package/dist/decorators/index.js.map +1 -0
  147. package/dist/di/container.d.ts +21 -0
  148. package/dist/di/container.d.ts.map +1 -0
  149. package/dist/di/container.js +81 -0
  150. package/dist/di/container.js.map +1 -0
  151. package/dist/di/inject.d.ts +3 -0
  152. package/dist/di/inject.d.ts.map +1 -0
  153. package/dist/di/inject.js +12 -0
  154. package/dist/di/inject.js.map +1 -0
  155. package/dist/exports/auth.d.ts +6 -0
  156. package/dist/exports/auth.d.ts.map +1 -0
  157. package/dist/exports/auth.js +46 -0
  158. package/dist/exports/auth.js.map +1 -0
  159. package/dist/exports/cache.d.ts +4 -0
  160. package/dist/exports/cache.d.ts.map +1 -0
  161. package/dist/exports/cache.js +20 -0
  162. package/dist/exports/cache.js.map +1 -0
  163. package/dist/exports/config.d.ts +4 -0
  164. package/dist/exports/config.d.ts.map +1 -0
  165. package/dist/exports/config.js +23 -0
  166. package/dist/exports/config.js.map +1 -0
  167. package/dist/exports/dataloader.d.ts +3 -0
  168. package/dist/exports/dataloader.d.ts.map +1 -0
  169. package/dist/exports/dataloader.js +19 -0
  170. package/dist/exports/dataloader.js.map +1 -0
  171. package/dist/exports/decorators.d.ts +2 -0
  172. package/dist/exports/decorators.d.ts.map +1 -0
  173. package/dist/exports/decorators.js +18 -0
  174. package/dist/exports/decorators.js.map +1 -0
  175. package/dist/exports/di.d.ts +4 -0
  176. package/dist/exports/di.d.ts.map +1 -0
  177. package/dist/exports/di.js +8 -0
  178. package/dist/exports/di.js.map +1 -0
  179. package/dist/exports/error.d.ts +2 -0
  180. package/dist/exports/error.d.ts.map +1 -0
  181. package/dist/exports/error.js +16 -0
  182. package/dist/exports/error.js.map +1 -0
  183. package/dist/exports/module.d.ts +3 -0
  184. package/dist/exports/module.d.ts.map +1 -0
  185. package/dist/exports/module.js +6 -0
  186. package/dist/exports/module.js.map +1 -0
  187. package/dist/exports/plugin.d.ts +3 -0
  188. package/dist/exports/plugin.d.ts.map +1 -0
  189. package/dist/exports/plugin.js +6 -0
  190. package/dist/exports/plugin.js.map +1 -0
  191. package/dist/exports/queue.d.ts +9 -0
  192. package/dist/exports/queue.d.ts.map +1 -0
  193. package/dist/exports/queue.js +16 -0
  194. package/dist/exports/queue.js.map +1 -0
  195. package/dist/exports/response.d.ts +2 -0
  196. package/dist/exports/response.d.ts.map +1 -0
  197. package/dist/exports/response.js +18 -0
  198. package/dist/exports/response.js.map +1 -0
  199. package/dist/exports/route.d.ts +14 -0
  200. package/dist/exports/route.d.ts.map +1 -0
  201. package/dist/exports/route.js +25 -0
  202. package/dist/exports/route.js.map +1 -0
  203. package/dist/exports/security.d.ts +3 -0
  204. package/dist/exports/security.d.ts.map +1 -0
  205. package/dist/exports/security.js +13 -0
  206. package/dist/exports/security.js.map +1 -0
  207. package/dist/exports/swagger.d.ts +3 -0
  208. package/dist/exports/swagger.d.ts.map +1 -0
  209. package/dist/exports/swagger.js +6 -0
  210. package/dist/exports/swagger.js.map +1 -0
  211. package/dist/exports/validation.d.ts +2 -0
  212. package/dist/exports/validation.d.ts.map +1 -0
  213. package/dist/exports/validation.js +8 -0
  214. package/dist/exports/validation.js.map +1 -0
  215. package/dist/index.d.ts +11 -0
  216. package/dist/index.d.ts.map +1 -0
  217. package/dist/index.js +71 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/integrations/drizzle.d.ts +10 -0
  220. package/dist/integrations/drizzle.d.ts.map +1 -0
  221. package/dist/integrations/drizzle.js +34 -0
  222. package/dist/integrations/drizzle.js.map +1 -0
  223. package/dist/integrations/jwt.d.ts +12 -0
  224. package/dist/integrations/jwt.d.ts.map +1 -0
  225. package/dist/integrations/jwt.js +27 -0
  226. package/dist/integrations/jwt.js.map +1 -0
  227. package/dist/integrations/mongodb.d.ts +13 -0
  228. package/dist/integrations/mongodb.d.ts.map +1 -0
  229. package/dist/integrations/mongodb.js +48 -0
  230. package/dist/integrations/mongodb.js.map +1 -0
  231. package/dist/integrations/mongoose.d.ts +13 -0
  232. package/dist/integrations/mongoose.d.ts.map +1 -0
  233. package/dist/integrations/mongoose.js +58 -0
  234. package/dist/integrations/mongoose.js.map +1 -0
  235. package/dist/integrations/openai.d.ts +12 -0
  236. package/dist/integrations/openai.d.ts.map +1 -0
  237. package/dist/integrations/openai.js +47 -0
  238. package/dist/integrations/openai.js.map +1 -0
  239. package/dist/integrations/postgres.d.ts +13 -0
  240. package/dist/integrations/postgres.d.ts.map +1 -0
  241. package/dist/integrations/postgres.js +55 -0
  242. package/dist/integrations/postgres.js.map +1 -0
  243. package/dist/integrations/posthog.d.ts +13 -0
  244. package/dist/integrations/posthog.d.ts.map +1 -0
  245. package/dist/integrations/posthog.js +49 -0
  246. package/dist/integrations/posthog.js.map +1 -0
  247. package/dist/integrations/prisma.d.ts +10 -0
  248. package/dist/integrations/prisma.d.ts.map +1 -0
  249. package/dist/integrations/prisma.js +27 -0
  250. package/dist/integrations/prisma.js.map +1 -0
  251. package/dist/integrations/redis.d.ts +12 -0
  252. package/dist/integrations/redis.d.ts.map +1 -0
  253. package/dist/integrations/redis.js +48 -0
  254. package/dist/integrations/redis.js.map +1 -0
  255. package/dist/integrations/resend.d.ts +12 -0
  256. package/dist/integrations/resend.d.ts.map +1 -0
  257. package/dist/integrations/resend.js +47 -0
  258. package/dist/integrations/resend.js.map +1 -0
  259. package/dist/integrations/s3.d.ts +15 -0
  260. package/dist/integrations/s3.d.ts.map +1 -0
  261. package/dist/integrations/s3.js +60 -0
  262. package/dist/integrations/s3.js.map +1 -0
  263. package/dist/integrations/supabase.d.ts +13 -0
  264. package/dist/integrations/supabase.d.ts.map +1 -0
  265. package/dist/integrations/supabase.js +51 -0
  266. package/dist/integrations/supabase.js.map +1 -0
  267. package/dist/lib/start-repl.d.ts +2 -0
  268. package/dist/lib/start-repl.d.ts.map +1 -0
  269. package/dist/lib/start-repl.js +122 -0
  270. package/dist/lib/start-repl.js.map +1 -0
  271. package/dist/lib/start-server.d.ts +2 -0
  272. package/dist/lib/start-server.d.ts.map +1 -0
  273. package/dist/lib/start-server.js +103 -0
  274. package/dist/lib/start-server.js.map +1 -0
  275. package/dist/middleware/backpressure.d.ts +11 -0
  276. package/dist/middleware/backpressure.d.ts.map +1 -0
  277. package/dist/middleware/backpressure.js +55 -0
  278. package/dist/middleware/backpressure.js.map +1 -0
  279. package/dist/middleware/cache.d.ts +10 -0
  280. package/dist/middleware/cache.d.ts.map +1 -0
  281. package/dist/middleware/cache.js +97 -0
  282. package/dist/middleware/cache.js.map +1 -0
  283. package/dist/middleware/compression.d.ts +3 -0
  284. package/dist/middleware/compression.d.ts.map +1 -0
  285. package/dist/middleware/compression.js +132 -0
  286. package/dist/middleware/compression.js.map +1 -0
  287. package/dist/middleware/dedupe.d.ts +10 -0
  288. package/dist/middleware/dedupe.d.ts.map +1 -0
  289. package/dist/middleware/dedupe.js +79 -0
  290. package/dist/middleware/dedupe.js.map +1 -0
  291. package/dist/middleware/exception-filter.d.ts +9 -0
  292. package/dist/middleware/exception-filter.d.ts.map +1 -0
  293. package/dist/middleware/exception-filter.js +26 -0
  294. package/dist/middleware/exception-filter.js.map +1 -0
  295. package/dist/middleware/guard.d.ts +11 -0
  296. package/dist/middleware/guard.d.ts.map +1 -0
  297. package/dist/middleware/guard.js +26 -0
  298. package/dist/middleware/guard.js.map +1 -0
  299. package/dist/middleware/interceptor.d.ts +4 -0
  300. package/dist/middleware/interceptor.d.ts.map +1 -0
  301. package/dist/middleware/interceptor.js +32 -0
  302. package/dist/middleware/interceptor.js.map +1 -0
  303. package/dist/middleware/ip-filter.d.ts +11 -0
  304. package/dist/middleware/ip-filter.d.ts.map +1 -0
  305. package/dist/middleware/ip-filter.js +27 -0
  306. package/dist/middleware/ip-filter.js.map +1 -0
  307. package/dist/middleware/middleware.d.ts +26 -0
  308. package/dist/middleware/middleware.d.ts.map +1 -0
  309. package/dist/middleware/middleware.js +271 -0
  310. package/dist/middleware/middleware.js.map +1 -0
  311. package/dist/middleware/pipe.d.ts +9 -0
  312. package/dist/middleware/pipe.d.ts.map +1 -0
  313. package/dist/middleware/pipe.js +24 -0
  314. package/dist/middleware/pipe.js.map +1 -0
  315. package/dist/middleware/security.d.ts +53 -0
  316. package/dist/middleware/security.d.ts.map +1 -0
  317. package/dist/middleware/security.js +257 -0
  318. package/dist/middleware/security.js.map +1 -0
  319. package/dist/module/module.d.ts +17 -0
  320. package/dist/module/module.d.ts.map +1 -0
  321. package/dist/module/module.js +37 -0
  322. package/dist/module/module.js.map +1 -0
  323. package/dist/observability/health.d.ts +23 -0
  324. package/dist/observability/health.d.ts.map +1 -0
  325. package/dist/observability/health.js +49 -0
  326. package/dist/observability/health.js.map +1 -0
  327. package/dist/observability/index.d.ts +4 -0
  328. package/dist/observability/index.d.ts.map +1 -0
  329. package/dist/observability/index.js +10 -0
  330. package/dist/observability/index.js.map +1 -0
  331. package/dist/observability/otel.d.ts +27 -0
  332. package/dist/observability/otel.d.ts.map +1 -0
  333. package/dist/observability/otel.js +45 -0
  334. package/dist/observability/otel.js.map +1 -0
  335. package/dist/observability/prometheus.d.ts +30 -0
  336. package/dist/observability/prometheus.d.ts.map +1 -0
  337. package/dist/observability/prometheus.js +31 -0
  338. package/dist/observability/prometheus.js.map +1 -0
  339. package/dist/queue/client.d.ts +13 -0
  340. package/dist/queue/client.d.ts.map +1 -0
  341. package/dist/queue/client.js +64 -0
  342. package/dist/queue/client.js.map +1 -0
  343. package/dist/queue/drivers/MemoryDriver.d.ts +17 -0
  344. package/dist/queue/drivers/MemoryDriver.d.ts.map +1 -0
  345. package/dist/queue/drivers/MemoryDriver.js +109 -0
  346. package/dist/queue/drivers/MemoryDriver.js.map +1 -0
  347. package/dist/queue/drivers/RedisDriver.d.ts +18 -0
  348. package/dist/queue/drivers/RedisDriver.d.ts.map +1 -0
  349. package/dist/queue/drivers/RedisDriver.js +120 -0
  350. package/dist/queue/drivers/RedisDriver.js.map +1 -0
  351. package/dist/queue/index.d.ts +12 -0
  352. package/dist/queue/index.d.ts.map +1 -0
  353. package/dist/queue/index.js +27 -0
  354. package/dist/queue/index.js.map +1 -0
  355. package/dist/queue/types.d.ts +51 -0
  356. package/dist/queue/types.d.ts.map +1 -0
  357. package/dist/queue/types.js +3 -0
  358. package/dist/queue/types.js.map +1 -0
  359. package/dist/queue/worker.d.ts +18 -0
  360. package/dist/queue/worker.d.ts.map +1 -0
  361. package/dist/queue/worker.js +160 -0
  362. package/dist/queue/worker.js.map +1 -0
  363. package/dist/response/index.d.ts +16 -0
  364. package/dist/response/index.d.ts.map +1 -0
  365. package/dist/response/index.js +19 -0
  366. package/dist/response/index.js.map +1 -0
  367. package/dist/router/gateway.d.ts +64 -0
  368. package/dist/router/gateway.d.ts.map +1 -0
  369. package/dist/router/gateway.js +11 -0
  370. package/dist/router/gateway.js.map +1 -0
  371. package/dist/router/radix.d.ts +42 -0
  372. package/dist/router/radix.d.ts.map +1 -0
  373. package/dist/router/radix.js +523 -0
  374. package/dist/router/radix.js.map +1 -0
  375. package/dist/router/router.d.ts +59 -0
  376. package/dist/router/router.d.ts.map +1 -0
  377. package/dist/router/router.js +386 -0
  378. package/dist/router/router.js.map +1 -0
  379. package/dist/server/app.d.ts +206 -0
  380. package/dist/server/app.d.ts.map +1 -0
  381. package/dist/server/app.js +2191 -0
  382. package/dist/server/app.js.map +1 -0
  383. package/dist/server/cluster.d.ts +52 -0
  384. package/dist/server/cluster.d.ts.map +1 -0
  385. package/dist/server/cluster.js +165 -0
  386. package/dist/server/cluster.js.map +1 -0
  387. package/dist/server/context.d.ts +40 -0
  388. package/dist/server/context.d.ts.map +1 -0
  389. package/dist/server/context.js +74 -0
  390. package/dist/server/context.js.map +1 -0
  391. package/dist/server/define.d.ts +14 -0
  392. package/dist/server/define.d.ts.map +1 -0
  393. package/dist/server/define.js +22 -0
  394. package/dist/server/define.js.map +1 -0
  395. package/dist/server/dep-graph.d.ts +2 -0
  396. package/dist/server/dep-graph.d.ts.map +1 -0
  397. package/dist/server/dep-graph.js +109 -0
  398. package/dist/server/dep-graph.js.map +1 -0
  399. package/dist/server/dev-error-overlay.d.ts +3 -0
  400. package/dist/server/dev-error-overlay.d.ts.map +1 -0
  401. package/dist/server/dev-error-overlay.js +116 -0
  402. package/dist/server/dev-error-overlay.js.map +1 -0
  403. package/dist/server/hot-reload.d.ts +28 -0
  404. package/dist/server/hot-reload.d.ts.map +1 -0
  405. package/dist/server/hot-reload.js +253 -0
  406. package/dist/server/hot-reload.js.map +1 -0
  407. package/dist/server/request.d.ts +71 -0
  408. package/dist/server/request.d.ts.map +1 -0
  409. package/dist/server/request.js +408 -0
  410. package/dist/server/request.js.map +1 -0
  411. package/dist/server/response.d.ts +36 -0
  412. package/dist/server/response.d.ts.map +1 -0
  413. package/dist/server/response.js +254 -0
  414. package/dist/server/response.js.map +1 -0
  415. package/dist/server/route.d.ts +148 -0
  416. package/dist/server/route.d.ts.map +1 -0
  417. package/dist/server/route.js +56 -0
  418. package/dist/server/route.js.map +1 -0
  419. package/dist/server/sse.d.ts +16 -0
  420. package/dist/server/sse.d.ts.map +1 -0
  421. package/dist/server/sse.js +51 -0
  422. package/dist/server/sse.js.map +1 -0
  423. package/dist/server/uws-adapter.d.ts +101 -0
  424. package/dist/server/uws-adapter.d.ts.map +1 -0
  425. package/dist/server/uws-adapter.js +338 -0
  426. package/dist/server/uws-adapter.js.map +1 -0
  427. package/dist/swagger/index.d.ts +9 -0
  428. package/dist/swagger/index.d.ts.map +1 -0
  429. package/dist/swagger/index.js +147 -0
  430. package/dist/swagger/index.js.map +1 -0
  431. package/dist/testing/client.d.ts +44 -0
  432. package/dist/testing/client.d.ts.map +1 -0
  433. package/dist/testing/client.js +105 -0
  434. package/dist/testing/client.js.map +1 -0
  435. package/dist/testing/index.d.ts +7 -0
  436. package/dist/testing/index.d.ts.map +1 -0
  437. package/dist/testing/index.js +128 -0
  438. package/dist/testing/index.js.map +1 -0
  439. package/dist/testing/mocks.d.ts +25 -0
  440. package/dist/testing/mocks.d.ts.map +1 -0
  441. package/dist/testing/mocks.js +117 -0
  442. package/dist/testing/mocks.js.map +1 -0
  443. package/dist/testing/reporter.d.ts +13 -0
  444. package/dist/testing/reporter.d.ts.map +1 -0
  445. package/dist/testing/reporter.js +101 -0
  446. package/dist/testing/reporter.js.map +1 -0
  447. package/dist/threads/pool.d.ts +13 -0
  448. package/dist/threads/pool.d.ts.map +1 -0
  449. package/dist/threads/pool.js +93 -0
  450. package/dist/threads/pool.js.map +1 -0
  451. package/dist/threads/worker-runner.d.ts +2 -0
  452. package/dist/threads/worker-runner.d.ts.map +1 -0
  453. package/dist/threads/worker-runner.js +71 -0
  454. package/dist/threads/worker-runner.js.map +1 -0
  455. package/dist/types.d.ts +200 -0
  456. package/dist/types.d.ts.map +1 -0
  457. package/dist/types.js +3 -0
  458. package/dist/types.js.map +1 -0
  459. package/dist/utils/circuit-breaker.d.ts +30 -0
  460. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  461. package/dist/utils/circuit-breaker.js +72 -0
  462. package/dist/utils/circuit-breaker.js.map +1 -0
  463. package/dist/utils/config.d.ts +9 -0
  464. package/dist/utils/config.d.ts.map +1 -0
  465. package/dist/utils/config.js +229 -0
  466. package/dist/utils/config.js.map +1 -0
  467. package/dist/utils/env.d.ts +25 -0
  468. package/dist/utils/env.d.ts.map +1 -0
  469. package/dist/utils/env.js +155 -0
  470. package/dist/utils/env.js.map +1 -0
  471. package/dist/utils/errors.d.ts +51 -0
  472. package/dist/utils/errors.d.ts.map +1 -0
  473. package/dist/utils/errors.js +233 -0
  474. package/dist/utils/errors.js.map +1 -0
  475. package/dist/utils/logger.d.ts +6 -0
  476. package/dist/utils/logger.d.ts.map +1 -0
  477. package/dist/utils/logger.js +70 -0
  478. package/dist/utils/logger.js.map +1 -0
  479. package/dist/utils/plugin.d.ts +7 -0
  480. package/dist/utils/plugin.d.ts.map +1 -0
  481. package/dist/utils/plugin.js +30 -0
  482. package/dist/utils/plugin.js.map +1 -0
  483. package/dist/utils/validator.d.ts +300 -0
  484. package/dist/utils/validator.d.ts.map +1 -0
  485. package/dist/utils/validator.js +719 -0
  486. package/dist/utils/validator.js.map +1 -0
  487. package/dist/websocket/server.d.ts +66 -0
  488. package/dist/websocket/server.d.ts.map +1 -0
  489. package/dist/websocket/server.js +156 -0
  490. package/dist/websocket/server.js.map +1 -0
  491. package/dist/websocket/socket.d.ts +119 -0
  492. package/dist/websocket/socket.d.ts.map +1 -0
  493. package/dist/websocket/socket.js +240 -0
  494. package/dist/websocket/socket.js.map +1 -0
  495. package/package.json +270 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export interface ClusterConfig {
2
+ /**
3
+ * Number of worker processes to spawn.
4
+ * - `true` or `'auto'` = use all available CPU cores
5
+ * - A specific number = spawn exactly that many workers
6
+ * - `false` or `0` = disable clustering (single-process mode)
7
+ *
8
+ * @default 'auto'
9
+ */
10
+ workers?: number | boolean | 'auto';
11
+ /**
12
+ * Whether to automatically respawn a worker if it crashes.
13
+ * @default true
14
+ */
15
+ respawn?: boolean;
16
+ /**
17
+ * Maximum number of respawns allowed within `respawnWindow` ms
18
+ * before the cluster manager stops respawning (prevents crash loops).
19
+ * @default 5
20
+ */
21
+ maxRespawns?: number;
22
+ /**
23
+ * Time window (ms) in which `maxRespawns` is evaluated.
24
+ * @default 60000 (1 minute)
25
+ */
26
+ respawnWindow?: number;
27
+ }
28
+ /**
29
+ * Runs the provided function inside a multi-process cluster.
30
+ *
31
+ * - **Primary process**: forks N worker processes and manages their lifecycle
32
+ * (crash recovery, graceful shutdown).
33
+ * - **Worker process**: executes `workerFn` (typically the HTTP server startup).
34
+ *
35
+ * If `workerCount` resolves to 1, clustering is skipped and `workerFn` runs
36
+ * directly in the current process (zero overhead for single-core / dev mode).
37
+ */
38
+ export declare function runInCluster(workerFn: () => void | Promise<void>, config?: ClusterConfig): void;
39
+ /**
40
+ * Helper utilities exposed for use in other parts of the framework.
41
+ */
42
+ export declare const clusterInfo: {
43
+ /** Whether the current process is the primary (master) cluster process. */
44
+ readonly isPrimary: boolean;
45
+ /** Whether the current process is a cluster worker. */
46
+ readonly isWorker: boolean;
47
+ /** The current worker's ID (undefined on primary). */
48
+ readonly workerId: number | undefined;
49
+ /** Total number of active workers (only meaningful on primary). */
50
+ readonly workerCount: number;
51
+ };
52
+ //# sourceMappingURL=cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/server/cluster.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AA2BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpC,MAAM,CAAC,EAAE,aAAa,QAgBvB;AAiID;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,2EAA2E;wBAC1D,OAAO;IAIxB,uDAAuD;uBACvC,OAAO;IAIvB,sDAAsD;uBACtC,MAAM,GAAG,SAAS;IAIlC,mEAAmE;0BAChD,MAAM;CAG1B,CAAA"}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.clusterInfo = void 0;
7
+ exports.runInCluster = runInCluster;
8
+ const node_cluster_1 = __importDefault(require("node:cluster"));
9
+ const node_os_1 = __importDefault(require("node:os"));
10
+ const node_process_1 = __importDefault(require("node:process"));
11
+ // ─── Internals ──────────────────────────────────────────────────────────────────
12
+ const c = {
13
+ cyan: '\x1b[36m',
14
+ green: '\x1b[32m',
15
+ yellow: '\x1b[33m',
16
+ red: '\x1b[31m',
17
+ dim: '\x1b[2m',
18
+ bold: '\x1b[1m',
19
+ reset: '\x1b[0m',
20
+ primary: '\x1b[38;2;160;70;255m',
21
+ };
22
+ function resolveWorkerCount(config) {
23
+ const raw = config?.workers ?? 'auto';
24
+ if (raw === false || raw === 0)
25
+ return 1;
26
+ if (raw === true || raw === 'auto')
27
+ return node_os_1.default.cpus().length;
28
+ if (typeof raw === 'number' && raw > 0)
29
+ return Math.min(raw, node_os_1.default.cpus().length);
30
+ return node_os_1.default.cpus().length;
31
+ }
32
+ // ─── Public API ─────────────────────────────────────────────────────────────────
33
+ /**
34
+ * Runs the provided function inside a multi-process cluster.
35
+ *
36
+ * - **Primary process**: forks N worker processes and manages their lifecycle
37
+ * (crash recovery, graceful shutdown).
38
+ * - **Worker process**: executes `workerFn` (typically the HTTP server startup).
39
+ *
40
+ * If `workerCount` resolves to 1, clustering is skipped and `workerFn` runs
41
+ * directly in the current process (zero overhead for single-core / dev mode).
42
+ */
43
+ function runInCluster(workerFn, config) {
44
+ const workerCount = resolveWorkerCount(config);
45
+ // ─── Single-process mode (no clustering overhead) ─────────────────────────
46
+ if (workerCount <= 1) {
47
+ workerFn();
48
+ return;
49
+ }
50
+ // ─── Cluster mode ─────────────────────────────────────────────────────────
51
+ if (node_cluster_1.default.isPrimary) {
52
+ primaryProcess(workerCount, config);
53
+ }
54
+ else {
55
+ workerFn();
56
+ }
57
+ }
58
+ // ─── Primary Process ────────────────────────────────────────────────────────────
59
+ function primaryProcess(workerCount, config) {
60
+ const respawn = config?.respawn !== false;
61
+ const maxRespawns = config?.maxRespawns ?? 5;
62
+ const respawnWindow = config?.respawnWindow ?? 60000;
63
+ // Track respawn timestamps for crash-loop detection
64
+ const respawnTimestamps = [];
65
+ console.log(`\n${c.primary}${c.bold} ExisJS Cluster${c.reset}`);
66
+ console.log(`${c.dim} ───────────────────────────────────────${c.reset}`);
67
+ console.log(` ${c.cyan}Primary${c.reset} ${c.dim}PID ${node_process_1.default.pid}${c.reset}`);
68
+ console.log(` ${c.cyan}Workers${c.reset} ${c.bold}${workerCount}${c.reset} ${c.dim}(${node_os_1.default.cpus().length} cores available)${c.reset}`);
69
+ console.log(` ${c.cyan}Platform${c.reset} ${node_os_1.default.platform()} ${node_os_1.default.arch()}`);
70
+ console.log(`${c.dim} ───────────────────────────────────────${c.reset}\n`);
71
+ // Fork workers
72
+ for (let i = 0; i < workerCount; i++) {
73
+ const worker = node_cluster_1.default.fork();
74
+ console.log(` ${c.green}✓${c.reset} Worker ${c.bold}#${i + 1}${c.reset} started ${c.dim}(PID ${worker.process.pid})${c.reset}`);
75
+ }
76
+ console.log('');
77
+ let isShuttingDown = false;
78
+ // ─── Worker crash recovery ────────────────────────────────────────────────
79
+ node_cluster_1.default.on('exit', (worker, code, signal) => {
80
+ if (isShuttingDown)
81
+ return;
82
+ const pid = worker.process.pid;
83
+ if (signal) {
84
+ console.log(` ${c.yellow}⚠${c.reset} Worker ${c.bold}PID ${pid}${c.reset} killed by signal ${c.yellow}${signal}${c.reset}`);
85
+ }
86
+ else if (code !== 0) {
87
+ console.log(` ${c.red}✗${c.reset} Worker ${c.bold}PID ${pid}${c.reset} exited with error code ${c.red}${code}${c.reset}`);
88
+ }
89
+ else {
90
+ console.log(` ${c.dim}Worker PID ${pid} exited cleanly${c.reset}`);
91
+ return; // Clean exit, no respawn
92
+ }
93
+ if (!respawn)
94
+ return;
95
+ // ─── Crash-loop protection ────────────────────────────────────────────
96
+ const now = Date.now();
97
+ respawnTimestamps.push(now);
98
+ // Remove timestamps outside the window
99
+ while (respawnTimestamps.length > 0 &&
100
+ respawnTimestamps[0] < now - respawnWindow) {
101
+ respawnTimestamps.shift();
102
+ }
103
+ if (respawnTimestamps.length > maxRespawns) {
104
+ console.error(`\n ${c.red}${c.bold}✗ Crash loop detected!${c.reset} ${c.red}${maxRespawns} workers crashed within ${respawnWindow / 1000}s.${c.reset}`);
105
+ console.error(` ${c.red}Stopping automatic respawn to prevent system overload.${c.reset}\n`);
106
+ return;
107
+ }
108
+ const newWorker = node_cluster_1.default.fork();
109
+ console.log(` ${c.green}↻${c.reset} Replacement worker started ${c.dim}(PID ${newWorker.process.pid})${c.reset}`);
110
+ });
111
+ // ─── Graceful shutdown ────────────────────────────────────────────────────
112
+ const shutdown = (signal) => {
113
+ if (isShuttingDown)
114
+ return;
115
+ isShuttingDown = true;
116
+ console.log(`\n ${c.primary}[exis-cluster]${c.reset} Received ${c.yellow}${signal}${c.reset}, shutting down workers...`);
117
+ // Send SIGTERM to all workers and let them close gracefully
118
+ for (const id in node_cluster_1.default.workers) {
119
+ node_cluster_1.default.workers[id]?.process.kill('SIGTERM');
120
+ }
121
+ // Give workers a grace period to shut down, then force kill
122
+ const forceTimeout = setTimeout(() => {
123
+ console.log(` ${c.yellow}⚠${c.reset} Grace period expired, force killing remaining workers...`);
124
+ for (const id in node_cluster_1.default.workers) {
125
+ node_cluster_1.default.workers[id]?.kill();
126
+ }
127
+ node_process_1.default.exit(1);
128
+ }, 10000);
129
+ forceTimeout.unref();
130
+ // Wait for all workers to exit
131
+ let aliveCount = Object.keys(node_cluster_1.default.workers ?? {}).length;
132
+ node_cluster_1.default.on('exit', () => {
133
+ aliveCount--;
134
+ if (aliveCount <= 0) {
135
+ clearTimeout(forceTimeout);
136
+ console.log(` ${c.green}✓${c.reset} All workers stopped. Cluster shut down gracefully.\n`);
137
+ node_process_1.default.exit(0);
138
+ }
139
+ });
140
+ };
141
+ node_process_1.default.on('SIGINT', () => shutdown('SIGINT'));
142
+ node_process_1.default.on('SIGTERM', () => shutdown('SIGTERM'));
143
+ }
144
+ /**
145
+ * Helper utilities exposed for use in other parts of the framework.
146
+ */
147
+ exports.clusterInfo = {
148
+ /** Whether the current process is the primary (master) cluster process. */
149
+ get isPrimary() {
150
+ return node_cluster_1.default.isPrimary;
151
+ },
152
+ /** Whether the current process is a cluster worker. */
153
+ get isWorker() {
154
+ return node_cluster_1.default.isWorker;
155
+ },
156
+ /** The current worker's ID (undefined on primary). */
157
+ get workerId() {
158
+ return node_cluster_1.default.worker?.id;
159
+ },
160
+ /** Total number of active workers (only meaningful on primary). */
161
+ get workerCount() {
162
+ return Object.keys(node_cluster_1.default.workers ?? {}).length;
163
+ },
164
+ };
165
+ //# sourceMappingURL=cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/server/cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import type { Request, Response } from '../types';
3
+ import type { App } from './app';
4
+ export type ExisContext = Record<string, any>;
5
+ export interface InternalContext {
6
+ state: ExisContext;
7
+ afterCallbacks: (() => void | Promise<void>)[];
8
+ req: Request;
9
+ res: Response;
10
+ app: App;
11
+ diCache: Map<any, any>;
12
+ }
13
+ export declare const executionContext: AsyncLocalStorage<InternalContext>;
14
+ /**
15
+ * Retrieves the current request context state.
16
+ * Must be called during an active request lifecycle.
17
+ */
18
+ export declare function getContext<T = ExisContext>(): T;
19
+ /**
20
+ * Sets a value in the current request context state.
21
+ * Must be called during an active request lifecycle.
22
+ */
23
+ export declare function setContext(key: string, value: any): void;
24
+ /**
25
+ * Retrieves the current Request object.
26
+ */
27
+ export declare function getRequest(): Request;
28
+ /**
29
+ * Retrieves the current Response object.
30
+ */
31
+ export declare function getResponse(): Response;
32
+ /**
33
+ * Queues a task to be executed in the background after the response has been sent to the client.
34
+ */
35
+ export declare function after(callback: () => void | Promise<void>): void;
36
+ /**
37
+ * Retrieves the active App instance from the request context.
38
+ */
39
+ export declare function getApp(): App;
40
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,CAAA;IAClB,cAAc,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAA;IAC9C,GAAG,EAAE,OAAO,CAAA;IACZ,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACvB;AAED,eAAO,MAAM,gBAAgB,oCAA2C,CAAA;AAExE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,CAQ/C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAQxD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAQpC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAQtC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAQhE;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,GAAG,CAQ5B"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executionContext = void 0;
4
+ exports.getContext = getContext;
5
+ exports.setContext = setContext;
6
+ exports.getRequest = getRequest;
7
+ exports.getResponse = getResponse;
8
+ exports.after = after;
9
+ exports.getApp = getApp;
10
+ const node_async_hooks_1 = require("node:async_hooks");
11
+ exports.executionContext = new node_async_hooks_1.AsyncLocalStorage();
12
+ /**
13
+ * Retrieves the current request context state.
14
+ * Must be called during an active request lifecycle.
15
+ */
16
+ function getContext() {
17
+ const store = exports.executionContext.getStore();
18
+ if (!store) {
19
+ throw new Error('getContext() can only be called inside an active Exis request handler.');
20
+ }
21
+ return store.state;
22
+ }
23
+ /**
24
+ * Sets a value in the current request context state.
25
+ * Must be called during an active request lifecycle.
26
+ */
27
+ function setContext(key, value) {
28
+ const store = exports.executionContext.getStore();
29
+ if (!store) {
30
+ throw new Error('setContext() can only be called inside an active Exis request handler.');
31
+ }
32
+ store.state[key] = value;
33
+ }
34
+ /**
35
+ * Retrieves the current Request object.
36
+ */
37
+ function getRequest() {
38
+ const store = exports.executionContext.getStore();
39
+ if (!store) {
40
+ throw new Error('getRequest() can only be called inside an active Exis request handler.');
41
+ }
42
+ return store.req;
43
+ }
44
+ /**
45
+ * Retrieves the current Response object.
46
+ */
47
+ function getResponse() {
48
+ const store = exports.executionContext.getStore();
49
+ if (!store) {
50
+ throw new Error('getResponse() can only be called inside an active Exis request handler.');
51
+ }
52
+ return store.res;
53
+ }
54
+ /**
55
+ * Queues a task to be executed in the background after the response has been sent to the client.
56
+ */
57
+ function after(callback) {
58
+ const store = exports.executionContext.getStore();
59
+ if (!store) {
60
+ throw new Error('after() can only be called inside an active Exis request handler.');
61
+ }
62
+ store.afterCallbacks.push(callback);
63
+ }
64
+ /**
65
+ * Retrieves the active App instance from the request context.
66
+ */
67
+ function getApp() {
68
+ const store = exports.executionContext.getStore();
69
+ if (!store) {
70
+ throw new Error('getApp() can only be called inside an active Exis request handler.');
71
+ }
72
+ return store.app;
73
+ }
74
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":";;;AAqBA,gCAQC;AAMD,gCAQC;AAKD,gCAQC;AAKD,kCAQC;AAKD,sBAQC;AAKD,wBAQC;AA/FD,uDAAoD;AAevC,QAAA,gBAAgB,GAAG,IAAI,oCAAiB,EAAmB,CAAA;AAExE;;;GAGG;AACH,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,KAAqB,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,GAAW,EAAE,KAAU;IAChD,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;IACH,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU;IACxB,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,QAAoC;IACxD,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAA;IACH,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM;IACpB,MAAM,KAAK,GAAG,wBAAgB,CAAC,QAAQ,EAAE,CAAA;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAA;AAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { App } from './app';
2
+ import type { ExisConfig } from '../types';
3
+ export interface ExisAppOptions extends ExisConfig {
4
+ onStart?: (app: App) => void | Promise<void>;
5
+ onClose?: (app: App) => void | Promise<void>;
6
+ }
7
+ /**
8
+ * Declaratively define an Exis application.
9
+ * The CLI will handle initialization and listening automatically.
10
+ */
11
+ export declare function defineApp(options?: ExisAppOptions): App;
12
+ export { defineGateway } from '../router/gateway';
13
+ export type { GatewayConfig } from '../router/gateway';
14
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/server/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,GAAG,CAYvD;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineGateway = void 0;
4
+ exports.defineApp = defineApp;
5
+ const app_1 = require("./app");
6
+ /**
7
+ * Declaratively define an Exis application.
8
+ * The CLI will handle initialization and listening automatically.
9
+ */
10
+ function defineApp(options) {
11
+ const app = new app_1.App(options);
12
+ if (options?.onStart) {
13
+ app.onStartHook = options.onStart;
14
+ }
15
+ if (options?.onClose) {
16
+ app.onCloseHook = options.onClose;
17
+ }
18
+ return app;
19
+ }
20
+ var gateway_1 = require("../router/gateway");
21
+ Object.defineProperty(exports, "defineGateway", { enumerable: true, get: function () { return gateway_1.defineGateway; } });
22
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/server/define.ts"],"names":[],"mappings":";;;AAYA,8BAYC;AAxBD,+BAA2B;AAQ3B;;;GAGG;AACH,SAAgB,SAAS,CAAC,OAAwB;IAChD,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAA;IACnC,CAAC;IAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAA;IACnC,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,6CAAiD;AAAxC,wGAAA,aAAa,OAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function generateDependencyGraph(apiDir: string, cwd: string): Promise<Map<string, Set<string>>>;
2
+ //# sourceMappingURL=dep-graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dep-graph.d.ts","sourceRoot":"","sources":["../../src/server/dep-graph.ts"],"names":[],"mappings":"AAIA,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CA6BnC"}