exisjs 0.6.1 → 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 (517) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +2 -8
  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 +33 -44
  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-server.js +10 -0
  74. package/dist/lib/start-server.js.map +1 -1
  75. package/dist/logger/index.d.ts +81 -0
  76. package/dist/logger/index.d.ts.map +1 -0
  77. package/dist/logger/index.js +142 -0
  78. package/dist/logger/index.js.map +1 -0
  79. package/dist/middleware/dedupe.d.ts +1 -1
  80. package/dist/middleware/dedupe.js +1 -1
  81. package/dist/middleware/middleware.d.ts +3 -5
  82. package/dist/middleware/middleware.d.ts.map +1 -1
  83. package/dist/middleware/middleware.js +2 -6
  84. package/dist/middleware/middleware.js.map +1 -1
  85. package/dist/router/{gateway.d.ts → boundary.d.ts} +21 -13
  86. package/dist/router/boundary.d.ts.map +1 -0
  87. package/dist/router/boundary.js +11 -0
  88. package/dist/router/boundary.js.map +1 -0
  89. package/dist/router/index.d.ts +3 -6
  90. package/dist/router/index.d.ts.map +1 -1
  91. package/dist/router/index.js +3 -7
  92. package/dist/router/index.js.map +1 -1
  93. package/dist/router/route-builder.d.ts +0 -28
  94. package/dist/router/route-builder.d.ts.map +1 -1
  95. package/dist/router/route-builder.js +0 -4
  96. package/dist/router/route-builder.js.map +1 -1
  97. package/dist/router/route-scanner.d.ts +1 -2
  98. package/dist/router/route-scanner.d.ts.map +1 -1
  99. package/dist/router/route-scanner.js +216 -193
  100. package/dist/router/route-scanner.js.map +1 -1
  101. package/dist/router/router.d.ts +4 -6
  102. package/dist/router/router.d.ts.map +1 -1
  103. package/dist/router/router.js +36 -72
  104. package/dist/router/router.js.map +1 -1
  105. package/dist/router/types.d.ts +2 -6
  106. package/dist/router/types.d.ts.map +1 -1
  107. package/dist/server/{bun-adapter.d.ts → adapters/bun-adapter.d.ts} +1 -1
  108. package/dist/server/adapters/bun-adapter.d.ts.map +1 -0
  109. package/dist/server/{bun-adapter.js → adapters/bun-adapter.js} +2 -24
  110. package/dist/server/adapters/bun-adapter.js.map +1 -0
  111. package/dist/server/{uws-adapter.d.ts → adapters/uws-adapter.d.ts} +1 -1
  112. package/dist/server/adapters/uws-adapter.d.ts.map +1 -0
  113. package/dist/server/{uws-adapter.js → adapters/uws-adapter.js} +1 -28
  114. package/dist/server/adapters/uws-adapter.js.map +1 -0
  115. package/dist/server/app.d.ts +9 -30
  116. package/dist/server/app.d.ts.map +1 -1
  117. package/dist/server/app.js +19 -134
  118. package/dist/server/app.js.map +1 -1
  119. package/dist/server/bootstrapper.d.ts +4 -15
  120. package/dist/server/bootstrapper.d.ts.map +1 -1
  121. package/dist/server/bootstrapper.js +30 -229
  122. package/dist/server/bootstrapper.js.map +1 -1
  123. package/dist/server/define.d.ts +2 -2
  124. package/dist/server/define.d.ts.map +1 -1
  125. package/dist/server/define.js +3 -3
  126. package/dist/server/define.js.map +1 -1
  127. package/dist/server/engines/bun-engine.d.ts +16 -0
  128. package/dist/server/engines/bun-engine.d.ts.map +1 -0
  129. package/dist/server/engines/bun-engine.js +41 -0
  130. package/dist/server/engines/bun-engine.js.map +1 -0
  131. package/dist/server/engines/engine.d.ts +16 -0
  132. package/dist/server/engines/engine.d.ts.map +1 -0
  133. package/dist/{queue/types.js → server/engines/engine.js} +1 -1
  134. package/dist/server/engines/engine.js.map +1 -0
  135. package/dist/server/engines/node-engine.d.ts +22 -0
  136. package/dist/server/engines/node-engine.d.ts.map +1 -0
  137. package/dist/server/engines/node-engine.js +130 -0
  138. package/dist/server/engines/node-engine.js.map +1 -0
  139. package/dist/server/engines/uws-engine.d.ts +16 -0
  140. package/dist/server/engines/uws-engine.d.ts.map +1 -0
  141. package/dist/server/engines/uws-engine.js +48 -0
  142. package/dist/server/engines/uws-engine.js.map +1 -0
  143. package/dist/server/request-handler.d.ts +0 -1
  144. package/dist/server/request-handler.d.ts.map +1 -1
  145. package/dist/server/request-handler.js +74 -48
  146. package/dist/server/request-handler.js.map +1 -1
  147. package/dist/server/request.d.ts +0 -8
  148. package/dist/server/request.d.ts.map +1 -1
  149. package/dist/server/request.js +0 -16
  150. package/dist/server/request.js.map +1 -1
  151. package/dist/utils/time.d.ts +6 -0
  152. package/dist/utils/time.d.ts.map +1 -0
  153. package/dist/utils/time.js +15 -0
  154. package/dist/utils/time.js.map +1 -0
  155. package/dist/validator/index.d.ts +1 -7
  156. package/dist/validator/index.d.ts.map +1 -1
  157. package/dist/validator/index.js +1 -5
  158. package/dist/validator/index.js.map +1 -1
  159. package/dist/validator/tex-types.d.ts +15 -2
  160. package/dist/validator/tex-types.d.ts.map +1 -1
  161. package/dist/validator/tex-types.js +8 -0
  162. package/dist/validator/tex-types.js.map +1 -1
  163. package/dist/validator/tex.d.ts.map +1 -1
  164. package/dist/validator/tex.js +21 -2
  165. package/dist/validator/tex.js.map +1 -1
  166. package/package.json +9 -151
  167. package/dist/adapters/aws-lambda.d.ts +0 -21
  168. package/dist/adapters/aws-lambda.d.ts.map +0 -1
  169. package/dist/adapters/aws-lambda.js +0 -125
  170. package/dist/adapters/aws-lambda.js.map +0 -1
  171. package/dist/adapters/bun.d.ts +0 -9
  172. package/dist/adapters/bun.d.ts.map +0 -1
  173. package/dist/adapters/bun.js +0 -23
  174. package/dist/adapters/bun.js.map +0 -1
  175. package/dist/adapters/cloudflare.d.ts +0 -10
  176. package/dist/adapters/cloudflare.d.ts.map +0 -1
  177. package/dist/adapters/cloudflare.js +0 -22
  178. package/dist/adapters/cloudflare.js.map +0 -1
  179. package/dist/adapters/deno.d.ts +0 -7
  180. package/dist/adapters/deno.d.ts.map +0 -1
  181. package/dist/adapters/deno.js +0 -21
  182. package/dist/adapters/deno.js.map +0 -1
  183. package/dist/adapters/fastly.d.ts +0 -6
  184. package/dist/adapters/fastly.d.ts.map +0 -1
  185. package/dist/adapters/fastly.js +0 -20
  186. package/dist/adapters/fastly.js.map +0 -1
  187. package/dist/adapters/fetch.d.ts +0 -30
  188. package/dist/adapters/fetch.d.ts.map +0 -1
  189. package/dist/adapters/fetch.js +0 -119
  190. package/dist/adapters/fetch.js.map +0 -1
  191. package/dist/adapters/index.d.ts +0 -9
  192. package/dist/adapters/index.d.ts.map +0 -1
  193. package/dist/adapters/index.js +0 -28
  194. package/dist/adapters/index.js.map +0 -1
  195. package/dist/adapters/netlify.d.ts +0 -8
  196. package/dist/adapters/netlify.d.ts.map +0 -1
  197. package/dist/adapters/netlify.js +0 -20
  198. package/dist/adapters/netlify.js.map +0 -1
  199. package/dist/adapters/vercel.d.ts +0 -17
  200. package/dist/adapters/vercel.d.ts.map +0 -1
  201. package/dist/adapters/vercel.js +0 -23
  202. package/dist/adapters/vercel.js.map +0 -1
  203. package/dist/auth/index.d.ts +0 -8
  204. package/dist/auth/index.d.ts.map +0 -1
  205. package/dist/auth/index.js +0 -49
  206. package/dist/auth/index.js.map +0 -1
  207. package/dist/auth/jwt.d.ts +0 -20
  208. package/dist/auth/jwt.d.ts.map +0 -1
  209. package/dist/auth/jwt.js +0 -59
  210. package/dist/auth/jwt.js.map +0 -1
  211. package/dist/auth/oauth/core.d.ts +0 -96
  212. package/dist/auth/oauth/core.d.ts.map +0 -1
  213. package/dist/auth/oauth/core.js +0 -203
  214. package/dist/auth/oauth/core.js.map +0 -1
  215. package/dist/auth/oauth/index.d.ts +0 -45
  216. package/dist/auth/oauth/index.d.ts.map +0 -1
  217. package/dist/auth/oauth/index.js +0 -64
  218. package/dist/auth/oauth/index.js.map +0 -1
  219. package/dist/auth/oauth/middleware.d.ts +0 -63
  220. package/dist/auth/oauth/middleware.d.ts.map +0 -1
  221. package/dist/auth/oauth/middleware.js +0 -164
  222. package/dist/auth/oauth/middleware.js.map +0 -1
  223. package/dist/auth/oauth/providers/custom.d.ts +0 -41
  224. package/dist/auth/oauth/providers/custom.d.ts.map +0 -1
  225. package/dist/auth/oauth/providers/custom.js +0 -204
  226. package/dist/auth/oauth/providers/custom.js.map +0 -1
  227. package/dist/auth/oauth/providers/discord.d.ts +0 -23
  228. package/dist/auth/oauth/providers/discord.d.ts.map +0 -1
  229. package/dist/auth/oauth/providers/discord.js +0 -130
  230. package/dist/auth/oauth/providers/discord.js.map +0 -1
  231. package/dist/auth/oauth/providers/facebook.d.ts +0 -28
  232. package/dist/auth/oauth/providers/facebook.d.ts.map +0 -1
  233. package/dist/auth/oauth/providers/facebook.js +0 -124
  234. package/dist/auth/oauth/providers/facebook.js.map +0 -1
  235. package/dist/auth/oauth/providers/github.d.ts +0 -25
  236. package/dist/auth/oauth/providers/github.d.ts.map +0 -1
  237. package/dist/auth/oauth/providers/github.js +0 -132
  238. package/dist/auth/oauth/providers/github.js.map +0 -1
  239. package/dist/auth/oauth/providers/google.d.ts +0 -23
  240. package/dist/auth/oauth/providers/google.d.ts.map +0 -1
  241. package/dist/auth/oauth/providers/google.js +0 -134
  242. package/dist/auth/oauth/providers/google.js.map +0 -1
  243. package/dist/auth/oauth/providers/microsoft.d.ts +0 -28
  244. package/dist/auth/oauth/providers/microsoft.d.ts.map +0 -1
  245. package/dist/auth/oauth/providers/microsoft.js +0 -136
  246. package/dist/auth/oauth/providers/microsoft.js.map +0 -1
  247. package/dist/auth/oauth/types.d.ts +0 -158
  248. package/dist/auth/oauth/types.d.ts.map +0 -1
  249. package/dist/auth/oauth/types.js +0 -4
  250. package/dist/auth/oauth/types.js.map +0 -1
  251. package/dist/auth/password.d.ts +0 -25
  252. package/dist/auth/password.d.ts.map +0 -1
  253. package/dist/auth/password.js +0 -93
  254. package/dist/auth/password.js.map +0 -1
  255. package/dist/auth/rbac.d.ts +0 -10
  256. package/dist/auth/rbac.d.ts.map +0 -1
  257. package/dist/auth/rbac.js +0 -34
  258. package/dist/auth/rbac.js.map +0 -1
  259. package/dist/auth/session.d.ts +0 -26
  260. package/dist/auth/session.d.ts.map +0 -1
  261. package/dist/auth/session.js +0 -134
  262. package/dist/auth/session.js.map +0 -1
  263. package/dist/cache/index.d.ts +0 -4
  264. package/dist/cache/index.d.ts.map +0 -1
  265. package/dist/cache/index.js +0 -25
  266. package/dist/cache/index.js.map +0 -1
  267. package/dist/cache/store.d.ts +0 -58
  268. package/dist/cache/store.d.ts.map +0 -1
  269. package/dist/cache/store.js +0 -298
  270. package/dist/cache/store.js.map +0 -1
  271. package/dist/cron/parser.d.ts +0 -2
  272. package/dist/cron/parser.d.ts.map +0 -1
  273. package/dist/cron/parser.js +0 -52
  274. package/dist/cron/parser.js.map +0 -1
  275. package/dist/cron/scheduler.d.ts +0 -23
  276. package/dist/cron/scheduler.d.ts.map +0 -1
  277. package/dist/cron/scheduler.js +0 -114
  278. package/dist/cron/scheduler.js.map +0 -1
  279. package/dist/database/adapters/mongodb.d.ts +0 -58
  280. package/dist/database/adapters/mongodb.d.ts.map +0 -1
  281. package/dist/database/adapters/mongodb.js +0 -264
  282. package/dist/database/adapters/mongodb.js.map +0 -1
  283. package/dist/database/adapters/mysql.d.ts +0 -27
  284. package/dist/database/adapters/mysql.d.ts.map +0 -1
  285. package/dist/database/adapters/mysql.js +0 -188
  286. package/dist/database/adapters/mysql.js.map +0 -1
  287. package/dist/database/adapters/postgres.d.ts +0 -28
  288. package/dist/database/adapters/postgres.d.ts.map +0 -1
  289. package/dist/database/adapters/postgres.js +0 -174
  290. package/dist/database/adapters/postgres.js.map +0 -1
  291. package/dist/database/adapters/sqlite.d.ts +0 -27
  292. package/dist/database/adapters/sqlite.d.ts.map +0 -1
  293. package/dist/database/adapters/sqlite.js +0 -149
  294. package/dist/database/adapters/sqlite.js.map +0 -1
  295. package/dist/database/index.d.ts +0 -42
  296. package/dist/database/index.d.ts.map +0 -1
  297. package/dist/database/index.js +0 -58
  298. package/dist/database/index.js.map +0 -1
  299. package/dist/database/manager.d.ts +0 -141
  300. package/dist/database/manager.d.ts.map +0 -1
  301. package/dist/database/manager.js +0 -337
  302. package/dist/database/manager.js.map +0 -1
  303. package/dist/database/migration.d.ts +0 -57
  304. package/dist/database/migration.d.ts.map +0 -1
  305. package/dist/database/migration.js +0 -329
  306. package/dist/database/migration.js.map +0 -1
  307. package/dist/database/query-builder.d.ts +0 -95
  308. package/dist/database/query-builder.d.ts.map +0 -1
  309. package/dist/database/query-builder.js +0 -404
  310. package/dist/database/query-builder.js.map +0 -1
  311. package/dist/database/sql/index.d.ts +0 -18
  312. package/dist/database/sql/index.d.ts.map +0 -1
  313. package/dist/database/sql/index.js +0 -74
  314. package/dist/database/sql/index.js.map +0 -1
  315. package/dist/database/sql/schema.d.ts +0 -38
  316. package/dist/database/sql/schema.d.ts.map +0 -1
  317. package/dist/database/sql/schema.js +0 -80
  318. package/dist/database/sql/schema.js.map +0 -1
  319. package/dist/database/synchronizer.d.ts +0 -12
  320. package/dist/database/synchronizer.d.ts.map +0 -1
  321. package/dist/database/synchronizer.js +0 -82
  322. package/dist/database/synchronizer.js.map +0 -1
  323. package/dist/database/types.d.ts +0 -184
  324. package/dist/database/types.d.ts.map +0 -1
  325. package/dist/database/types.js +0 -4
  326. package/dist/database/types.js.map +0 -1
  327. package/dist/dataloader/dataloader.d.ts +0 -23
  328. package/dist/dataloader/dataloader.d.ts.map +0 -1
  329. package/dist/dataloader/dataloader.js +0 -98
  330. package/dist/dataloader/dataloader.js.map +0 -1
  331. package/dist/dataloader/index.d.ts +0 -3
  332. package/dist/dataloader/index.d.ts.map +0 -1
  333. package/dist/dataloader/index.js +0 -19
  334. package/dist/dataloader/index.js.map +0 -1
  335. package/dist/dataloader/registry.d.ts +0 -17
  336. package/dist/dataloader/registry.d.ts.map +0 -1
  337. package/dist/dataloader/registry.js +0 -47
  338. package/dist/dataloader/registry.js.map +0 -1
  339. package/dist/dev/dep-graph.d.ts +0 -2
  340. package/dist/dev/dep-graph.d.ts.map +0 -1
  341. package/dist/dev/dep-graph.js +0 -111
  342. package/dist/dev/dep-graph.js.map +0 -1
  343. package/dist/dev/hot-reload.d.ts +0 -30
  344. package/dist/dev/hot-reload.d.ts.map +0 -1
  345. package/dist/dev/hot-reload.js +0 -262
  346. package/dist/dev/hot-reload.js.map +0 -1
  347. package/dist/docs/content/adapters.mdx +0 -199
  348. package/dist/docs/content/cache.mdx +0 -239
  349. package/dist/docs/content/circuit-breaker.mdx +0 -130
  350. package/dist/docs/content/cron.mdx +0 -109
  351. package/dist/docs/content/database.mdx +0 -278
  352. package/dist/docs/content/gateways.mdx +0 -376
  353. package/dist/docs/content/oauth.mdx +0 -179
  354. package/dist/docs/content/queues.mdx +0 -177
  355. package/dist/docs/content/rpc.mdx +0 -146
  356. package/dist/docs/content/sse.mdx +0 -159
  357. package/dist/docs/content/websockets.mdx +0 -289
  358. package/dist/docs/integrations/README.md +0 -23
  359. package/dist/docs/integrations/jwt.mdx +0 -151
  360. package/dist/docs/integrations/mongo.mdx +0 -183
  361. package/dist/docs/integrations/observability.mdx +0 -125
  362. package/dist/docs/integrations/openai.mdx +0 -108
  363. package/dist/docs/integrations/postgres.mdx +0 -190
  364. package/dist/docs/integrations/posthog.mdx +0 -122
  365. package/dist/docs/integrations/redis.mdx +0 -141
  366. package/dist/docs/integrations/resend.mdx +0 -117
  367. package/dist/docs/integrations/s3.mdx +0 -122
  368. package/dist/docs/integrations/swagger.mdx +0 -113
  369. package/dist/docs/reference/adapters.mdx +0 -130
  370. package/dist/docs/reference/auth.mdx +0 -183
  371. package/dist/docs/reference/cache.mdx +0 -132
  372. package/dist/docs/reference/circuit-breaker.mdx +0 -71
  373. package/dist/docs/reference/queue.mdx +0 -155
  374. package/dist/docs/reference/storage.mdx +0 -116
  375. package/dist/docs/reference/swagger.mdx +0 -132
  376. package/dist/integrations/drizzle.d.ts +0 -10
  377. package/dist/integrations/drizzle.d.ts.map +0 -1
  378. package/dist/integrations/drizzle.js +0 -34
  379. package/dist/integrations/drizzle.js.map +0 -1
  380. package/dist/integrations/jwt.d.ts +0 -12
  381. package/dist/integrations/jwt.d.ts.map +0 -1
  382. package/dist/integrations/jwt.js +0 -29
  383. package/dist/integrations/jwt.js.map +0 -1
  384. package/dist/integrations/mongodb.d.ts +0 -13
  385. package/dist/integrations/mongodb.d.ts.map +0 -1
  386. package/dist/integrations/mongodb.js +0 -48
  387. package/dist/integrations/mongodb.js.map +0 -1
  388. package/dist/integrations/mongoose.d.ts +0 -13
  389. package/dist/integrations/mongoose.d.ts.map +0 -1
  390. package/dist/integrations/mongoose.js +0 -84
  391. package/dist/integrations/mongoose.js.map +0 -1
  392. package/dist/integrations/openai.d.ts +0 -12
  393. package/dist/integrations/openai.d.ts.map +0 -1
  394. package/dist/integrations/openai.js +0 -47
  395. package/dist/integrations/openai.js.map +0 -1
  396. package/dist/integrations/postgres.d.ts +0 -13
  397. package/dist/integrations/postgres.d.ts.map +0 -1
  398. package/dist/integrations/postgres.js +0 -55
  399. package/dist/integrations/postgres.js.map +0 -1
  400. package/dist/integrations/posthog.d.ts +0 -13
  401. package/dist/integrations/posthog.d.ts.map +0 -1
  402. package/dist/integrations/posthog.js +0 -49
  403. package/dist/integrations/posthog.js.map +0 -1
  404. package/dist/integrations/prisma.d.ts +0 -10
  405. package/dist/integrations/prisma.d.ts.map +0 -1
  406. package/dist/integrations/prisma.js +0 -39
  407. package/dist/integrations/prisma.js.map +0 -1
  408. package/dist/integrations/redis.d.ts +0 -12
  409. package/dist/integrations/redis.d.ts.map +0 -1
  410. package/dist/integrations/redis.js +0 -48
  411. package/dist/integrations/redis.js.map +0 -1
  412. package/dist/integrations/resend.d.ts +0 -12
  413. package/dist/integrations/resend.d.ts.map +0 -1
  414. package/dist/integrations/resend.js +0 -47
  415. package/dist/integrations/resend.js.map +0 -1
  416. package/dist/integrations/s3.d.ts +0 -15
  417. package/dist/integrations/s3.d.ts.map +0 -1
  418. package/dist/integrations/s3.js +0 -60
  419. package/dist/integrations/s3.js.map +0 -1
  420. package/dist/integrations/supabase.d.ts +0 -13
  421. package/dist/integrations/supabase.d.ts.map +0 -1
  422. package/dist/integrations/supabase.js +0 -51
  423. package/dist/integrations/supabase.js.map +0 -1
  424. package/dist/middleware/cache.d.ts +0 -21
  425. package/dist/middleware/cache.d.ts.map +0 -1
  426. package/dist/middleware/cache.js +0 -156
  427. package/dist/middleware/cache.js.map +0 -1
  428. package/dist/observability/health.d.ts +0 -23
  429. package/dist/observability/health.d.ts.map +0 -1
  430. package/dist/observability/health.js +0 -49
  431. package/dist/observability/health.js.map +0 -1
  432. package/dist/observability/index.d.ts +0 -4
  433. package/dist/observability/index.d.ts.map +0 -1
  434. package/dist/observability/index.js +0 -10
  435. package/dist/observability/index.js.map +0 -1
  436. package/dist/observability/metrics.d.ts +0 -6
  437. package/dist/observability/metrics.d.ts.map +0 -1
  438. package/dist/observability/metrics.js +0 -60
  439. package/dist/observability/metrics.js.map +0 -1
  440. package/dist/observability/otel.d.ts +0 -27
  441. package/dist/observability/otel.d.ts.map +0 -1
  442. package/dist/observability/otel.js +0 -45
  443. package/dist/observability/otel.js.map +0 -1
  444. package/dist/observability/prometheus.d.ts +0 -30
  445. package/dist/observability/prometheus.d.ts.map +0 -1
  446. package/dist/observability/prometheus.js +0 -31
  447. package/dist/observability/prometheus.js.map +0 -1
  448. package/dist/queue/client.d.ts +0 -13
  449. package/dist/queue/client.d.ts.map +0 -1
  450. package/dist/queue/client.js +0 -83
  451. package/dist/queue/client.js.map +0 -1
  452. package/dist/queue/drivers/MemoryDriver.d.ts +0 -21
  453. package/dist/queue/drivers/MemoryDriver.d.ts.map +0 -1
  454. package/dist/queue/drivers/MemoryDriver.js +0 -176
  455. package/dist/queue/drivers/MemoryDriver.js.map +0 -1
  456. package/dist/queue/drivers/RedisDriver.d.ts +0 -19
  457. package/dist/queue/drivers/RedisDriver.d.ts.map +0 -1
  458. package/dist/queue/drivers/RedisDriver.js +0 -130
  459. package/dist/queue/drivers/RedisDriver.js.map +0 -1
  460. package/dist/queue/index.d.ts +0 -18
  461. package/dist/queue/index.d.ts.map +0 -1
  462. package/dist/queue/index.js +0 -37
  463. package/dist/queue/index.js.map +0 -1
  464. package/dist/queue/manager.d.ts +0 -18
  465. package/dist/queue/manager.d.ts.map +0 -1
  466. package/dist/queue/manager.js +0 -59
  467. package/dist/queue/manager.js.map +0 -1
  468. package/dist/queue/types.d.ts +0 -55
  469. package/dist/queue/types.d.ts.map +0 -1
  470. package/dist/queue/types.js.map +0 -1
  471. package/dist/queue/worker.d.ts +0 -18
  472. package/dist/queue/worker.d.ts.map +0 -1
  473. package/dist/queue/worker.js +0 -176
  474. package/dist/queue/worker.js.map +0 -1
  475. package/dist/router/gateway.d.ts.map +0 -1
  476. package/dist/router/gateway.js +0 -11
  477. package/dist/router/gateway.js.map +0 -1
  478. package/dist/server/bun-adapter.d.ts.map +0 -1
  479. package/dist/server/bun-adapter.js.map +0 -1
  480. package/dist/server/sse.d.ts +0 -16
  481. package/dist/server/sse.d.ts.map +0 -1
  482. package/dist/server/sse.js +0 -51
  483. package/dist/server/sse.js.map +0 -1
  484. package/dist/server/uws-adapter.d.ts.map +0 -1
  485. package/dist/server/uws-adapter.js.map +0 -1
  486. package/dist/storage/index.d.ts +0 -15
  487. package/dist/storage/index.d.ts.map +0 -1
  488. package/dist/storage/index.js +0 -7
  489. package/dist/storage/index.js.map +0 -1
  490. package/dist/swagger/index.d.ts +0 -9
  491. package/dist/swagger/index.d.ts.map +0 -1
  492. package/dist/swagger/index.js +0 -165
  493. package/dist/swagger/index.js.map +0 -1
  494. package/dist/threads/pool.d.ts +0 -14
  495. package/dist/threads/pool.d.ts.map +0 -1
  496. package/dist/threads/pool.js +0 -93
  497. package/dist/threads/pool.js.map +0 -1
  498. package/dist/threads/worker-runner.d.ts +0 -2
  499. package/dist/threads/worker-runner.d.ts.map +0 -1
  500. package/dist/threads/worker-runner.js +0 -71
  501. package/dist/threads/worker-runner.js.map +0 -1
  502. package/dist/validator/validator.d.ts +0 -360
  503. package/dist/validator/validator.d.ts.map +0 -1
  504. package/dist/validator/validator.js +0 -931
  505. package/dist/validator/validator.js.map +0 -1
  506. package/dist/websocket/orchestrator.d.ts +0 -11
  507. package/dist/websocket/orchestrator.d.ts.map +0 -1
  508. package/dist/websocket/orchestrator.js +0 -238
  509. package/dist/websocket/orchestrator.js.map +0 -1
  510. package/dist/websocket/server.d.ts +0 -66
  511. package/dist/websocket/server.d.ts.map +0 -1
  512. package/dist/websocket/server.js +0 -158
  513. package/dist/websocket/server.js.map +0 -1
  514. package/dist/websocket/socket.d.ts +0 -119
  515. package/dist/websocket/socket.d.ts.map +0 -1
  516. package/dist/websocket/socket.js +0 -242
  517. 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 '@prometheus-io/client';
2
- export declare const registry: promClient.Registry<promClient.RegistryContentType>;
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,uBAAuB,CAAA;AAInD,eAAO,MAAM,QAAQ,qDAA4B,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("@prometheus-io/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,kEAAmD;AAEnD,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"}