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
@@ -1,15 +0,0 @@
1
- /**
2
- * Zero-config AWS S3 Integration.
3
- *
4
- * Automatically initializes the AWS S3 client using standard environment variables:
5
- * - AWS_ACCESS_KEY_ID
6
- * - AWS_SECRET_ACCESS_KEY
7
- * - AWS_REGION
8
- *
9
- * Peer Dependencies required:
10
- * npm install @aws-sdk/client-s3
11
- */
12
- export declare function createS3Client(options?: any): any;
13
- export declare function configureS3(options: any): any;
14
- export declare const s3: {};
15
- //# sourceMappingURL=s3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../src/integrations/s3.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,wBAAgB,cAAc,CAAC,OAAO,GAAE,GAAQ,OAkC/C;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,OASvC;AAED,eAAO,MAAM,EAAE,IAWd,CAAA"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- /**
3
- * Zero-config AWS S3 Integration.
4
- *
5
- * Automatically initializes the AWS S3 client using standard environment variables:
6
- * - AWS_ACCESS_KEY_ID
7
- * - AWS_SECRET_ACCESS_KEY
8
- * - AWS_REGION
9
- *
10
- * Peer Dependencies required:
11
- * npm install @aws-sdk/client-s3
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.s3 = void 0;
15
- exports.createS3Client = createS3Client;
16
- exports.configureS3 = configureS3;
17
- function createS3Client(options = {}) {
18
- const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || options.region;
19
- const accessKeyId = process.env.AWS_ACCESS_KEY_ID || options.credentials?.accessKeyId;
20
- const secretAccessKey = process.env.AWS_SECRET_ACCESS_KEY || options.credentials?.secretAccessKey;
21
- if (!region || !accessKeyId || !secretAccessKey) {
22
- throw new Error('AWS credentials (AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) are missing in environment.');
23
- }
24
- let S3Client;
25
- try {
26
- // eslint-disable-next-line @typescript-eslint/no-require-imports
27
- const pkg = require('@aws-sdk/client-s3');
28
- S3Client = pkg.S3Client;
29
- }
30
- catch {
31
- throw new Error('Missing dependencies. Please run: npm install @aws-sdk/client-s3');
32
- }
33
- return new S3Client({
34
- ...options,
35
- region,
36
- credentials: {
37
- accessKeyId,
38
- secretAccessKey,
39
- },
40
- });
41
- }
42
- let cachedClient;
43
- function configureS3(options) {
44
- if (cachedClient) {
45
- console.warn('S3 client is already initialized. Call configureS3() before using it.');
46
- return cachedClient;
47
- }
48
- cachedClient = createS3Client(options);
49
- return cachedClient;
50
- }
51
- exports.s3 = new Proxy({}, {
52
- get(target, prop) {
53
- if (!cachedClient) {
54
- cachedClient = createS3Client();
55
- }
56
- const value = cachedClient[prop];
57
- return typeof value === 'function' ? value.bind(cachedClient) : value;
58
- },
59
- });
60
- //# sourceMappingURL=s3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../src/integrations/s3.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,wCAkCC;AAID,kCASC;AA/CD,SAAgB,cAAc,CAAC,UAAe,EAAE;IAC9C,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAA;IAC5E,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,CAAA;IACnE,MAAM,eAAe,GACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,WAAW,EAAE,eAAe,CAAA;IAE3E,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAA;IACH,CAAC;IAED,IAAI,QAAa,CAAA;IAEjB,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACzC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;IACH,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC;QAClB,GAAG,OAAO;QACV,MAAM;QACN,WAAW,EAAE;YACX,WAAW;YACX,eAAe;SAChB;KACF,CAAC,CAAA;AACJ,CAAC;AAED,IAAI,YAAiB,CAAA;AAErB,SAAgB,WAAW,CAAC,OAAY;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,uEAAuE,CACxE,CAAA;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtC,OAAO,YAAY,CAAA;AACrB,CAAC;AAEY,QAAA,EAAE,GAAG,IAAI,KAAK,CACzB,EAAE,EACF;IACE,GAAG,CAAC,MAAM,EAAE,IAAI;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,cAAc,EAAE,CAAA;QACjC,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACvE,CAAC;CACF,CACF,CAAA"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Zero-config Supabase Integration.
3
- *
4
- * Automatically initializes the Supabase client using `process.env.SUPABASE_URL`
5
- * and `process.env.SUPABASE_ANON_KEY` or `process.env.SUPABASE_SERVICE_ROLE_KEY`.
6
- *
7
- * Peer Dependencies required:
8
- * npm install @supabase/supabase-js
9
- */
10
- export declare function createSupabaseClient(options?: any): any;
11
- export declare function configureSupabase(options: any): any;
12
- export declare const supabase: {};
13
- //# sourceMappingURL=supabase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/integrations/supabase.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,GAAQ,OAyBrD;AAID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,OAS7C;AAED,eAAO,MAAM,QAAQ,IAWpB,CAAA"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- /**
3
- * Zero-config Supabase Integration.
4
- *
5
- * Automatically initializes the Supabase client using `process.env.SUPABASE_URL`
6
- * and `process.env.SUPABASE_ANON_KEY` or `process.env.SUPABASE_SERVICE_ROLE_KEY`.
7
- *
8
- * Peer Dependencies required:
9
- * npm install @supabase/supabase-js
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.supabase = void 0;
13
- exports.createSupabaseClient = createSupabaseClient;
14
- exports.configureSupabase = configureSupabase;
15
- function createSupabaseClient(options = {}) {
16
- const url = process.env.SUPABASE_URL || options.url;
17
- const key = process.env.SUPABASE_SERVICE_ROLE_KEY ||
18
- process.env.SUPABASE_ANON_KEY ||
19
- options.key;
20
- if (!url || !key) {
21
- throw new Error('process.env.SUPABASE_URL and SUPABASE_ANON_KEY (or SUPABASE_SERVICE_ROLE_KEY) are missing. Cannot initialize Supabase.');
22
- }
23
- let createClient;
24
- try {
25
- // eslint-disable-next-line @typescript-eslint/no-require-imports
26
- createClient = require('@supabase/supabase-js').createClient;
27
- }
28
- catch {
29
- throw new Error('Missing dependencies. Please run: npm install @supabase/supabase-js');
30
- }
31
- return createClient(url, key, options);
32
- }
33
- let cachedClient;
34
- function configureSupabase(options) {
35
- if (cachedClient) {
36
- console.warn('Supabase client is already initialized. Call configureSupabase() before using it.');
37
- return cachedClient;
38
- }
39
- cachedClient = createSupabaseClient(options);
40
- return cachedClient;
41
- }
42
- exports.supabase = new Proxy({}, {
43
- get(target, prop) {
44
- if (!cachedClient) {
45
- cachedClient = createSupabaseClient();
46
- }
47
- const value = cachedClient[prop];
48
- return typeof value === 'function' ? value.bind(cachedClient) : value;
49
- },
50
- });
51
- //# sourceMappingURL=supabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/integrations/supabase.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,oDAyBC;AAID,8CASC;AAtCD,SAAgB,oBAAoB,CAAC,UAAe,EAAE;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAA;IACnD,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB;QAC7B,OAAO,CAAC,GAAG,CAAA;IAEb,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAA;IACH,CAAC;IAED,IAAI,YAAiB,CAAA;IAErB,IAAI,CAAC;QACH,iEAAiE;QACjE,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,YAAY,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAA;IACH,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC;AAED,IAAI,YAAiB,CAAA;AAErB,SAAgB,iBAAiB,CAAC,OAAY;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CACV,mFAAmF,CACpF,CAAA;QACD,OAAO,YAAY,CAAA;IACrB,CAAC;IACD,YAAY,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC5C,OAAO,YAAY,CAAA;AACrB,CAAC;AAEY,QAAA,QAAQ,GAAG,IAAI,KAAK,CAC/B,EAAE,EACF;IACE,GAAG,CAAC,MAAM,EAAE,IAAI;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,YAAY,GAAG,oBAAoB,EAAE,CAAA;QACvC,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACvE,CAAC;CACF,CACF,CAAA"}
@@ -1,21 +0,0 @@
1
- import type { Handler, Request } from '../types';
2
- import { type CacheStore } from '../cache/store';
3
- export interface CacheOptions {
4
- store?: CacheStore;
5
- ttlMs?: number;
6
- tags?: string[] | ((req: Request) => string[]);
7
- /**
8
- * Function to generate a unique key per request.
9
- * Defaults to `req.method + req.path`.
10
- * Override this for user-scoped caching (e.g. `(req) => req.user.id + req.path`).
11
- */
12
- keyGenerator?: (req: Request) => string;
13
- /**
14
- * Stale-While-Revalidate duration in milliseconds.
15
- * If the cache is older than ttlMs but younger than ttlMs + swrMs,
16
- * stale data is served instantly while it revalidates in the background.
17
- */
18
- swrMs?: number;
19
- }
20
- export declare function cacheMiddleware(options: CacheOptions): Handler;
21
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/middleware/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAA0B,MAAM,UAAU,CAAA;AACxE,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE/D,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,EAAE,CAAC,CAAA;IAC9C;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CA4K9D"}
@@ -1,156 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cacheMiddleware = cacheMiddleware;
4
- const store_1 = require("../cache/store");
5
- // Global in-flight requests map to prevent Cache Stampedes (Dogpile effect)
6
- const inFlightRequests = new Map();
7
- function cacheMiddleware(options) {
8
- const ttlMs = options.ttlMs;
9
- if (!options || typeof options.keyGenerator !== 'function') {
10
- throw new Error(`cacheMiddleware: keyGenerator option is required to prevent cross-user data leaks.\nExample: cache({ ttlMs: 60000, keyGenerator: (req) => req.user?.id || req.ip })`);
11
- }
12
- const keyGenerator = options.keyGenerator;
13
- return async (req, res, next) => {
14
- if (req.method !== 'GET') {
15
- return next();
16
- }
17
- const store = options.store ?? (0, store_1.getCacheStore)();
18
- const key = keyGenerator(req);
19
- try {
20
- const cached = await store.get(key);
21
- if (cached) {
22
- const isStale = ttlMs && Date.now() - cached.createdAt > ttlMs;
23
- // If it's stale and we have no SWR allowance, we act as a miss
24
- if (isStale &&
25
- (!options.swrMs ||
26
- Date.now() - cached.createdAt > ttlMs + options.swrMs)) {
27
- // Treated as miss
28
- }
29
- else {
30
- // Handle Buffer reconstruction for Redis
31
- if (cached.data.contentType) {
32
- res.set('Content-Type', cached.data.contentType);
33
- }
34
- res.set('X-Exis-Cache', isStale ? 'STALE' : 'HIT');
35
- let bodyToSend = cached.data.body;
36
- if (typeof cached.data.body === 'string' && cached.data.isBuffer) {
37
- bodyToSend = Buffer.from(cached.data.body, 'base64');
38
- }
39
- if (cached.data.contentType?.includes('application/json') &&
40
- typeof bodyToSend === 'string') {
41
- try {
42
- res.status(cached.data.statusCode).json(JSON.parse(bodyToSend));
43
- }
44
- catch {
45
- res.status(cached.data.statusCode).send(bodyToSend);
46
- }
47
- }
48
- else {
49
- res.status(cached.data.statusCode).send(bodyToSend);
50
- }
51
- if (!isStale) {
52
- return;
53
- }
54
- // If it was stale, we returned the response already. Now we fall through
55
- // to trigger a background revalidation! We MUST NOT return here if stale.
56
- }
57
- }
58
- }
59
- catch {
60
- // Fallback to normal execution if cache read fails
61
- }
62
- // --- Cache Stampede Prevention ---
63
- // If another request is currently resolving this exact same cache key, we just wait for it.
64
- if (!res.headersSent) {
65
- if (inFlightRequests.has(key)) {
66
- res.set('X-Exis-Cache', 'DEDUPED');
67
- const dedupeResponse = await inFlightRequests.get(key);
68
- if (dedupeResponse.contentType) {
69
- res.set('Content-Type', dedupeResponse.contentType);
70
- }
71
- if (dedupeResponse.contentType?.includes('application/json') &&
72
- typeof dedupeResponse.body === 'string') {
73
- return res
74
- .status(dedupeResponse.statusCode)
75
- .json(JSON.parse(dedupeResponse.body));
76
- }
77
- return res.status(dedupeResponse.statusCode).send(dedupeResponse.body);
78
- }
79
- }
80
- // Set headers if not already sent (by SWR)
81
- if (!res.headersSent) {
82
- res.set('X-Exis-Cache', 'MISS');
83
- }
84
- let resolveInFlight;
85
- const inFlightPromise = new Promise((resolve) => {
86
- resolveInFlight = resolve;
87
- });
88
- inFlightRequests.set(key, inFlightPromise);
89
- // --- End Stampede Prevention ---
90
- // Intercept send/json
91
- const originalSend = res.send.bind(res);
92
- const originalJson = res.json.bind(res);
93
- res.send = function (body) {
94
- if (res.statusCode >= 200 && res.statusCode < 300) {
95
- let tags = [];
96
- if (typeof options.tags === 'function') {
97
- tags = options.tags(req);
98
- }
99
- else if (options.tags) {
100
- tags = options.tags;
101
- }
102
- const payload = {
103
- body,
104
- contentType: typeof res.getHeader === 'function'
105
- ? res.getHeader('content-type')
106
- : undefined,
107
- statusCode: res.statusCode,
108
- isBuffer: Buffer.isBuffer(body),
109
- };
110
- Promise.resolve(store.set(key, payload, tags, ttlMs)).catch(() => {
111
- /* noop */
112
- });
113
- resolveInFlight(payload);
114
- inFlightRequests.delete(key);
115
- }
116
- else {
117
- resolveInFlight({});
118
- inFlightRequests.delete(key);
119
- }
120
- if (!res.headersSent) {
121
- return originalSend(body);
122
- }
123
- };
124
- res.json = function (data) {
125
- if (res.statusCode >= 200 && res.statusCode < 300) {
126
- let tags = [];
127
- if (typeof options.tags === 'function') {
128
- tags = options.tags(req);
129
- }
130
- else if (options.tags) {
131
- tags = options.tags;
132
- }
133
- const payload = {
134
- body: JSON.stringify(data),
135
- contentType: 'application/json; charset=utf-8',
136
- statusCode: res.statusCode,
137
- isBuffer: false,
138
- };
139
- Promise.resolve(store.set(key, payload, tags, ttlMs)).catch(() => {
140
- /* noop */
141
- });
142
- resolveInFlight(payload);
143
- inFlightRequests.delete(key);
144
- }
145
- else {
146
- resolveInFlight({});
147
- inFlightRequests.delete(key);
148
- }
149
- if (!res.headersSent) {
150
- return originalJson(data);
151
- }
152
- };
153
- next();
154
- };
155
- }
156
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/middleware/cache.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import type { Handler } from '../types';
2
- export interface HealthCheckOptions {
3
- /**
4
- * Optional custom path for the health check endpoint.
5
- * Default: '/health'
6
- */
7
- path?: string;
8
- /**
9
- * An array of asynchronous check functions.
10
- * Return a string/object on success, or throw an error on failure.
11
- */
12
- checks?: {
13
- name: string;
14
- check: () => Promise<unknown> | unknown;
15
- timeoutMs?: number;
16
- }[];
17
- }
18
- /**
19
- * Creates a health check middleware.
20
- * Intercepts requests to the specified path and runs all dependency checks.
21
- */
22
- export declare function healthCheck(options?: HealthCheckOptions): Handler;
23
- //# sourceMappingURL=health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/observability/health.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;QACvC,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,EAAE,CAAA;CACJ;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAiDrE"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.healthCheck = healthCheck;
4
- /**
5
- * Creates a health check middleware.
6
- * Intercepts requests to the specified path and runs all dependency checks.
7
- */
8
- function healthCheck(options = {}) {
9
- const { path = '/health', checks = [] } = options;
10
- return async (req, res, next) => {
11
- if (req.path !== path) {
12
- return next();
13
- }
14
- if (req.method !== 'GET') {
15
- res.status(405).json({
16
- success: false,
17
- error: { code: 'METHOD_NOT_ALLOWED', message: 'Method Not Allowed' },
18
- });
19
- return;
20
- }
21
- const results = {};
22
- let isHealthy = true;
23
- const checkPromises = checks.map(async ({ name, check, timeoutMs = 5000 }) => {
24
- try {
25
- const timeoutPromise = new Promise((_, reject) => {
26
- const t = setTimeout(() => reject(new Error('Health check timed out')), timeoutMs);
27
- t.unref();
28
- });
29
- const result = await Promise.race([check(), timeoutPromise]);
30
- results[name] = { status: 'up', result };
31
- }
32
- catch (err) {
33
- isHealthy = false;
34
- results[name] = {
35
- status: 'down',
36
- error: err instanceof Error ? err.message : 'Unknown error',
37
- };
38
- }
39
- });
40
- await Promise.all(checkPromises);
41
- if (isHealthy) {
42
- res.status(200).json({ status: 'pass', dependencies: results });
43
- }
44
- else {
45
- res.status(503).json({ status: 'fail', dependencies: results });
46
- }
47
- };
48
- }
49
- //# sourceMappingURL=health.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/observability/health.ts"],"names":[],"mappings":";;AAwBA,kCAiDC;AArDD;;;GAGG;AACH,SAAgB,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,EAAE,IAAI,GAAG,SAAS,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAEjD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,EAAE;aACrE,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAA4B,EAAE,CAAA;QAC3C,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAC/C,MAAM,CAAC,GAAG,UAAU,CAClB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,EACjD,SAAS,CACV,CAAA;oBACD,CAAC,CAAC,KAAK,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC,CAAA;gBAC5D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;YAC1C,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,SAAS,GAAG,KAAK,CAAA;gBACjB,OAAO,CAAC,IAAI,CAAC,GAAG;oBACd,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAC5D,CAAA;YACH,CAAC;QACH,CAAC,CACF,CAAA;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAEhC,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;QACjE,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
@@ -1,4 +0,0 @@
1
- export { healthCheck, type HealthCheckOptions } from './health';
2
- export { metrics, type HttpMetricsAdapter } from './prometheus';
3
- export { tracing, type TracingAdapter, type TraceSpan } from './otel';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tracing = exports.metrics = exports.healthCheck = void 0;
4
- var health_1 = require("./health");
5
- Object.defineProperty(exports, "healthCheck", { enumerable: true, get: function () { return health_1.healthCheck; } });
6
- var prometheus_1 = require("./prometheus");
7
- Object.defineProperty(exports, "metrics", { enumerable: true, get: function () { return prometheus_1.metrics; } });
8
- var otel_1 = require("./otel");
9
- Object.defineProperty(exports, "tracing", { enumerable: true, get: function () { return otel_1.tracing; } });
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+D;AAAtD,qGAAA,WAAW,OAAA;AACpB,2CAA+D;AAAtD,qGAAA,OAAO,OAAA;AAChB,+BAAqE;AAA5D,+FAAA,OAAO,OAAA"}
@@ -1,6 +0,0 @@
1
- import * as promClient from 'prom-client';
2
- export declare const registry: promClient.Registry<"text/plain; version=0.0.4; charset=utf-8">;
3
- export declare const httpRequestDurationMicroseconds: promClient.Histogram<"route" | "method" | "status_code">;
4
- export declare function initMetrics(): void;
5
- export declare function getMetrics(): Promise<string>;
6
- //# sourceMappingURL=metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAA;AAIzC,eAAO,MAAM,QAAQ,iEAA4B,CAAA;AAEjD,eAAO,MAAM,+BAA+B,0DAK1C,CAAA;AAEF,wBAAgB,WAAW,SAS1B;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAElD"}
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.httpRequestDurationMicroseconds = exports.registry = void 0;
37
- exports.initMetrics = initMetrics;
38
- exports.getMetrics = getMetrics;
39
- const promClient = __importStar(require("prom-client"));
40
- let isInitialized = false;
41
- exports.registry = new promClient.Registry();
42
- exports.httpRequestDurationMicroseconds = new promClient.Histogram({
43
- name: 'exisjs_http_request_duration_seconds',
44
- help: 'Duration of HTTP requests in seconds',
45
- labelNames: ['method', 'route', 'status_code'],
46
- buckets: [0.1, 0.3, 0.5, 0.7, 1, 3, 5, 7, 10], // 0.1 to 10 seconds
47
- });
48
- function initMetrics() {
49
- if (isInitialized)
50
- return;
51
- isInitialized = true;
52
- // Register our custom metrics
53
- exports.registry.registerMetric(exports.httpRequestDurationMicroseconds);
54
- // Collect Node.js default metrics (memory, event loop lag, etc.)
55
- promClient.collectDefaultMetrics({ register: exports.registry });
56
- }
57
- async function getMetrics() {
58
- return await exports.registry.metrics();
59
- }
60
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/observability/metrics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kCASC;AAED,gCAEC;AA1BD,wDAAyC;AAEzC,IAAI,aAAa,GAAG,KAAK,CAAA;AAEZ,QAAA,QAAQ,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAA;AAEpC,QAAA,+BAA+B,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC;IACtE,IAAI,EAAE,sCAAsC;IAC5C,IAAI,EAAE,sCAAsC;IAC5C,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC;IAC9C,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,oBAAoB;CACpE,CAAC,CAAA;AAEF,SAAgB,WAAW;IACzB,IAAI,aAAa;QAAE,OAAM;IACzB,aAAa,GAAG,IAAI,CAAA;IAEpB,8BAA8B;IAC9B,gBAAQ,CAAC,cAAc,CAAC,uCAA+B,CAAC,CAAA;IAExD,iEAAiE;IACjE,UAAU,CAAC,qBAAqB,CAAC,EAAE,QAAQ,EAAE,gBAAQ,EAAE,CAAC,CAAA;AAC1D,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,OAAO,MAAM,gBAAQ,CAAC,OAAO,EAAE,CAAA;AACjC,CAAC"}
@@ -1,27 +0,0 @@
1
- import type { Handler } from '../types';
2
- export interface TraceSpan {
3
- setAttribute(key: string, value: string | number | boolean): void;
4
- setStatus(status: {
5
- code: number;
6
- message?: string;
7
- }): void;
8
- recordException(exception: Error): void;
9
- end(): void;
10
- }
11
- export interface TracingAdapter {
12
- /**
13
- * Start an active span for the given request.
14
- * Exis will automatically end the span when the response is sent.
15
- */
16
- startActiveSpan(name: string, metadata: {
17
- method: string;
18
- path: string;
19
- headers: Record<string, string | string[] | undefined>;
20
- }, callback: (span: TraceSpan) => void): void;
21
- }
22
- /**
23
- * Creates an OpenTelemetry-compatible tracing middleware.
24
- * Uses a 'Bring Your Own Tracer' approach.
25
- */
26
- export declare function tracing(adapter: TracingAdapter): Handler;
27
- //# sourceMappingURL=otel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/observability/otel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACjE,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3D,eAAe,CAAC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAA;IACvC,GAAG,IAAI,IAAI,CAAA;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;KACvD,EACD,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAClC,IAAI,CAAA;CACR;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CA+CxD"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tracing = tracing;
4
- /**
5
- * Creates an OpenTelemetry-compatible tracing middleware.
6
- * Uses a 'Bring Your Own Tracer' approach.
7
- */
8
- function tracing(adapter) {
9
- return (req, res, next) => {
10
- const pathLabel = req.routePath || req.path;
11
- const spanName = `${req.method} ${pathLabel}`;
12
- // Scrub sensitive headers before sending to external observability platforms
13
- const safeHeaders = { ...req.headers };
14
- const sensitiveKeys = [
15
- 'authorization',
16
- 'cookie',
17
- 'set-cookie',
18
- 'x-api-key',
19
- 'session',
20
- ];
21
- for (const key of sensitiveKeys) {
22
- if (safeHeaders[key]) {
23
- safeHeaders[key] = '[REDACTED]';
24
- }
25
- }
26
- adapter.startActiveSpan(spanName, { method: req.method, path: req.path, headers: safeHeaders }, (span) => {
27
- // Automatically inject trace ID into request logger if it exists
28
- // (Assuming the user implements this in the adapter by patching req.log,
29
- // or we let OpenTelemetry auto-instrument pino).
30
- res.raw.once('finish', () => {
31
- const statusCode = res.statusCode;
32
- span.setAttribute('http.status_code', statusCode);
33
- if (statusCode >= 500) {
34
- span.setStatus({ code: 2 }); // OpenTelemetry SpanStatusCode.ERROR = 2
35
- }
36
- else {
37
- span.setStatus({ code: 1 }); // OpenTelemetry SpanStatusCode.OK = 1
38
- }
39
- span.end();
40
- });
41
- next();
42
- });
43
- };
44
- }
45
- //# sourceMappingURL=otel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/observability/otel.ts"],"names":[],"mappings":";;AA6BA,0BA+CC;AAnDD;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,SAAS,GACZ,GAAyC,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,CAAA;QAClE,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAA;QAE7C,6EAA6E;QAC7E,MAAM,WAAW,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;QACtC,MAAM,aAAa,GAAG;YACpB,eAAe;YACf,QAAQ;YACR,YAAY;YACZ,WAAW;YACX,SAAS;SACV,CAAA;QACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAA;YACjC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,eAAe,CACrB,QAAQ,EACR,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EAC5D,CAAC,IAAI,EAAE,EAAE;YACP,iEAAiE;YACjE,yEAAyE;YACzE,iDAAiD;YAEjD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC1B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;gBAEjC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;gBAEjD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;oBACtB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC,yCAAyC;gBACvE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA,CAAC,sCAAsC;gBACpE,CAAC;gBAED,IAAI,CAAC,GAAG,EAAE,CAAA;YACZ,CAAC,CAAC,CAAA;YAEF,IAAI,EAAE,CAAA;QACR,CAAC,CACF,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}