pipework 0.4.0 → 0.5.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 (365) hide show
  1. package/README.md +33 -60
  2. package/dist/audit/namespace.d.ts +2 -0
  3. package/dist/audit/namespace.d.ts.map +1 -1
  4. package/dist/audit/namespace.js +2 -0
  5. package/dist/audit/namespace.js.map +1 -1
  6. package/dist/auth/chain.d.ts +5 -0
  7. package/dist/auth/chain.d.ts.map +1 -1
  8. package/dist/auth/chain.js +1 -0
  9. package/dist/auth/chain.js.map +1 -1
  10. package/dist/auth/cookie.d.ts +6 -0
  11. package/dist/auth/cookie.d.ts.map +1 -1
  12. package/dist/auth/cookie.js +4 -0
  13. package/dist/auth/cookie.js.map +1 -1
  14. package/dist/auth/multi-org.d.ts +9 -0
  15. package/dist/auth/multi-org.d.ts.map +1 -1
  16. package/dist/auth/multi-org.js +1 -0
  17. package/dist/auth/multi-org.js.map +1 -1
  18. package/dist/auth/namespace.d.ts +8 -0
  19. package/dist/auth/namespace.d.ts.map +1 -1
  20. package/dist/auth/namespace.js +8 -0
  21. package/dist/auth/namespace.js.map +1 -1
  22. package/dist/auth/sessions.d.ts +6 -0
  23. package/dist/auth/sessions.d.ts.map +1 -1
  24. package/dist/auth/sessions.js +1 -0
  25. package/dist/auth/sessions.js.map +1 -1
  26. package/dist/auth/types.d.ts +4 -0
  27. package/dist/auth/types.d.ts.map +1 -1
  28. package/dist/behavior/namespace.d.ts +5 -0
  29. package/dist/behavior/namespace.d.ts.map +1 -1
  30. package/dist/behavior/namespace.js +5 -0
  31. package/dist/behavior/namespace.js.map +1 -1
  32. package/dist/cache/namespace.d.ts +3 -0
  33. package/dist/cache/namespace.d.ts.map +1 -1
  34. package/dist/cache/namespace.js +3 -0
  35. package/dist/cache/namespace.js.map +1 -1
  36. package/dist/cli/commands/add.d.ts +2 -0
  37. package/dist/cli/commands/add.d.ts.map +1 -0
  38. package/dist/cli/commands/add.js +98 -0
  39. package/dist/cli/commands/add.js.map +1 -0
  40. package/dist/cli/commands/check.d.ts.map +1 -1
  41. package/dist/cli/commands/check.js +40 -1
  42. package/dist/cli/commands/check.js.map +1 -1
  43. package/dist/cli/commands/dev.d.ts.map +1 -1
  44. package/dist/cli/commands/dev.js +37 -1
  45. package/dist/cli/commands/dev.js.map +1 -1
  46. package/dist/cli/commands/install.d.ts +2 -0
  47. package/dist/cli/commands/install.d.ts.map +1 -0
  48. package/dist/cli/commands/install.js +31 -0
  49. package/dist/cli/commands/install.js.map +1 -0
  50. package/dist/cli/commands/remove.d.ts +2 -0
  51. package/dist/cli/commands/remove.d.ts.map +1 -0
  52. package/dist/cli/commands/remove.js +60 -0
  53. package/dist/cli/commands/remove.js.map +1 -0
  54. package/dist/cli/commands/shared/find-config.d.ts +2 -0
  55. package/dist/cli/commands/shared/find-config.d.ts.map +1 -0
  56. package/dist/cli/commands/shared/find-config.js +19 -0
  57. package/dist/cli/commands/shared/find-config.js.map +1 -0
  58. package/dist/cli/commands/shared/load-config.d.ts +11 -0
  59. package/dist/cli/commands/shared/load-config.d.ts.map +1 -0
  60. package/dist/cli/commands/shared/load-config.js +25 -0
  61. package/dist/cli/commands/shared/load-config.js.map +1 -0
  62. package/dist/cli/commands/sync.d.ts +2 -0
  63. package/dist/cli/commands/sync.d.ts.map +1 -0
  64. package/dist/cli/commands/sync.js +28 -0
  65. package/dist/cli/commands/sync.js.map +1 -0
  66. package/dist/cli/dev-bootstrap.d.ts +2 -0
  67. package/dist/cli/dev-bootstrap.d.ts.map +1 -0
  68. package/dist/cli/dev-bootstrap.js +11 -0
  69. package/dist/cli/dev-bootstrap.js.map +1 -0
  70. package/dist/cli/index.d.ts.map +1 -1
  71. package/dist/cli/index.js +31 -1
  72. package/dist/cli/index.js.map +1 -1
  73. package/dist/config/env.d.ts.map +1 -1
  74. package/dist/config/env.js +20 -4
  75. package/dist/config/env.js.map +1 -1
  76. package/dist/config/namespace.d.ts +7 -0
  77. package/dist/config/namespace.d.ts.map +1 -1
  78. package/dist/config/namespace.js +5 -0
  79. package/dist/config/namespace.js.map +1 -1
  80. package/dist/config/schema.d.ts +2 -0
  81. package/dist/config/schema.d.ts.map +1 -1
  82. package/dist/config/schema.js +6 -0
  83. package/dist/config/schema.js.map +1 -1
  84. package/dist/context/types.d.ts +3 -0
  85. package/dist/context/types.d.ts.map +1 -1
  86. package/dist/db/namespace.d.ts +25 -0
  87. package/dist/db/namespace.d.ts.map +1 -1
  88. package/dist/db/namespace.js +17 -6
  89. package/dist/db/namespace.js.map +1 -1
  90. package/dist/db/types.d.ts +4 -0
  91. package/dist/db/types.d.ts.map +1 -1
  92. package/dist/di/builder.d.ts +7 -2
  93. package/dist/di/builder.d.ts.map +1 -1
  94. package/dist/di/builder.js +20 -1
  95. package/dist/di/builder.js.map +1 -1
  96. package/dist/di/types.d.ts +19 -0
  97. package/dist/di/types.d.ts.map +1 -1
  98. package/dist/di/types.js +1 -0
  99. package/dist/di/types.js.map +1 -1
  100. package/dist/domain/brand.d.ts +19 -0
  101. package/dist/domain/brand.d.ts.map +1 -0
  102. package/dist/domain/brand.js +2 -0
  103. package/dist/domain/brand.js.map +1 -0
  104. package/dist/domain/define.d.ts +5 -0
  105. package/dist/domain/define.d.ts.map +1 -0
  106. package/dist/domain/define.js +62 -0
  107. package/dist/domain/define.js.map +1 -0
  108. package/dist/domain/field.d.ts +34 -0
  109. package/dist/domain/field.d.ts.map +1 -0
  110. package/dist/domain/field.js +111 -0
  111. package/dist/domain/field.js.map +1 -0
  112. package/dist/domain/index.d.ts +7 -0
  113. package/dist/domain/index.d.ts.map +1 -0
  114. package/dist/domain/index.js +5 -0
  115. package/dist/domain/index.js.map +1 -0
  116. package/dist/domain/naming.d.ts +2 -0
  117. package/dist/domain/naming.d.ts.map +1 -0
  118. package/dist/domain/naming.js +7 -0
  119. package/dist/domain/naming.js.map +1 -0
  120. package/dist/domain/project-factory.d.ts +4 -0
  121. package/dist/domain/project-factory.d.ts.map +1 -0
  122. package/dist/domain/project-factory.js +136 -0
  123. package/dist/domain/project-factory.js.map +1 -0
  124. package/dist/domain/project-schema.d.ts +6 -0
  125. package/dist/domain/project-schema.d.ts.map +1 -0
  126. package/dist/domain/project-schema.js +118 -0
  127. package/dist/domain/project-schema.js.map +1 -0
  128. package/dist/domain/project-table.d.ts +30 -0
  129. package/dist/domain/project-table.d.ts.map +1 -0
  130. package/dist/domain/project-table.js +117 -0
  131. package/dist/domain/project-table.js.map +1 -0
  132. package/dist/domain/types.d.ts +68 -0
  133. package/dist/domain/types.d.ts.map +1 -0
  134. package/dist/{resource → domain}/types.js.map +1 -1
  135. package/dist/errors/namespace.d.ts +7 -0
  136. package/dist/errors/namespace.d.ts.map +1 -1
  137. package/dist/errors/namespace.js +7 -0
  138. package/dist/errors/namespace.js.map +1 -1
  139. package/dist/fitting/namespace.d.ts +2 -0
  140. package/dist/fitting/namespace.d.ts.map +1 -1
  141. package/dist/fitting/namespace.js +2 -0
  142. package/dist/fitting/namespace.js.map +1 -1
  143. package/dist/fixture/namespace.d.ts +8 -0
  144. package/dist/fixture/namespace.d.ts.map +1 -1
  145. package/dist/fixture/namespace.js +8 -0
  146. package/dist/fixture/namespace.js.map +1 -1
  147. package/dist/flow/namespace.d.ts +9 -0
  148. package/dist/flow/namespace.d.ts.map +1 -1
  149. package/dist/flow/namespace.js +9 -0
  150. package/dist/flow/namespace.js.map +1 -1
  151. package/dist/http/namespace.d.ts +2 -0
  152. package/dist/http/namespace.d.ts.map +1 -1
  153. package/dist/http/namespace.js +2 -0
  154. package/dist/http/namespace.js.map +1 -1
  155. package/dist/http/server.d.ts +2 -0
  156. package/dist/http/server.d.ts.map +1 -1
  157. package/dist/http/server.js +4 -1
  158. package/dist/http/server.js.map +1 -1
  159. package/dist/http/types.d.ts +13 -0
  160. package/dist/http/types.d.ts.map +1 -1
  161. package/dist/index.d.ts +3 -1
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +1 -0
  164. package/dist/index.js.map +1 -1
  165. package/dist/jobs/cron.d.ts +1 -0
  166. package/dist/jobs/cron.d.ts.map +1 -1
  167. package/dist/jobs/cron.js.map +1 -1
  168. package/dist/jobs/namespace.d.ts +5 -0
  169. package/dist/jobs/namespace.d.ts.map +1 -1
  170. package/dist/jobs/namespace.js +5 -0
  171. package/dist/jobs/namespace.js.map +1 -1
  172. package/dist/jobs/queue.d.ts +5 -0
  173. package/dist/jobs/queue.d.ts.map +1 -1
  174. package/dist/jobs/queue.js +2 -1
  175. package/dist/jobs/queue.js.map +1 -1
  176. package/dist/lifecycle/namespace.d.ts +2 -0
  177. package/dist/lifecycle/namespace.d.ts.map +1 -1
  178. package/dist/lifecycle/namespace.js +2 -0
  179. package/dist/lifecycle/namespace.js.map +1 -1
  180. package/dist/log/namespace.d.ts +6 -0
  181. package/dist/log/namespace.d.ts.map +1 -1
  182. package/dist/log/namespace.js +6 -0
  183. package/dist/log/namespace.js.map +1 -1
  184. package/dist/openapi/namespace.d.ts +2 -0
  185. package/dist/openapi/namespace.d.ts.map +1 -1
  186. package/dist/openapi/namespace.js +2 -0
  187. package/dist/openapi/namespace.js.map +1 -1
  188. package/dist/pipeline/namespace.d.ts +4 -0
  189. package/dist/pipeline/namespace.d.ts.map +1 -1
  190. package/dist/pipeline/namespace.js +4 -0
  191. package/dist/pipeline/namespace.js.map +1 -1
  192. package/dist/pipework.d.ts +38 -0
  193. package/dist/pipework.d.ts.map +1 -1
  194. package/dist/pipework.js +100 -2
  195. package/dist/pipework.js.map +1 -1
  196. package/dist/rbac/index.d.ts +1 -0
  197. package/dist/rbac/index.d.ts.map +1 -1
  198. package/dist/rbac/index.js +1 -0
  199. package/dist/rbac/index.js.map +1 -1
  200. package/dist/rbac/namespace.d.ts +6 -0
  201. package/dist/rbac/namespace.d.ts.map +1 -1
  202. package/dist/rbac/namespace.js +6 -0
  203. package/dist/rbac/namespace.js.map +1 -1
  204. package/dist/schema/namespace.d.ts +10 -0
  205. package/dist/schema/namespace.d.ts.map +1 -1
  206. package/dist/schema/namespace.js +12 -4
  207. package/dist/schema/namespace.js.map +1 -1
  208. package/dist/schema/types.d.ts +2 -0
  209. package/dist/schema/types.d.ts.map +1 -1
  210. package/dist/state-machine/namespace.d.ts +4 -0
  211. package/dist/state-machine/namespace.d.ts.map +1 -1
  212. package/dist/state-machine/namespace.js +4 -0
  213. package/dist/state-machine/namespace.js.map +1 -1
  214. package/dist/surface/http.d.ts +3 -0
  215. package/dist/surface/http.d.ts.map +1 -0
  216. package/dist/surface/http.js +84 -0
  217. package/dist/surface/http.js.map +1 -0
  218. package/dist/surface/index.d.ts +7 -0
  219. package/dist/surface/index.d.ts.map +1 -0
  220. package/dist/surface/index.js +6 -0
  221. package/dist/surface/index.js.map +1 -0
  222. package/dist/surface/namespace.d.ts +13 -0
  223. package/dist/surface/namespace.d.ts.map +1 -0
  224. package/dist/surface/namespace.js +13 -0
  225. package/dist/surface/namespace.js.map +1 -0
  226. package/dist/surface/script.d.ts +3 -0
  227. package/dist/surface/script.d.ts.map +1 -0
  228. package/dist/surface/script.js +24 -0
  229. package/dist/surface/script.js.map +1 -0
  230. package/dist/surface/start.d.ts +8 -0
  231. package/dist/surface/start.d.ts.map +1 -0
  232. package/dist/surface/start.js +64 -0
  233. package/dist/surface/start.js.map +1 -0
  234. package/dist/surface/types.d.ts +111 -0
  235. package/dist/surface/types.d.ts.map +1 -0
  236. package/dist/surface/types.js +2 -0
  237. package/dist/surface/types.js.map +1 -0
  238. package/dist/surface/validate.d.ts +5 -0
  239. package/dist/surface/validate.d.ts.map +1 -0
  240. package/dist/surface/validate.js +67 -0
  241. package/dist/surface/validate.js.map +1 -0
  242. package/dist/surface/worker.d.ts +3 -0
  243. package/dist/surface/worker.d.ts.map +1 -0
  244. package/dist/surface/worker.js +151 -0
  245. package/dist/surface/worker.js.map +1 -0
  246. package/dist/temporal/namespace.d.ts +8 -0
  247. package/dist/temporal/namespace.d.ts.map +1 -1
  248. package/dist/temporal/namespace.js +8 -0
  249. package/dist/temporal/namespace.js.map +1 -1
  250. package/dist/tenant/namespace.d.ts +9 -0
  251. package/dist/tenant/namespace.d.ts.map +1 -1
  252. package/dist/tenant/namespace.js +9 -0
  253. package/dist/tenant/namespace.js.map +1 -1
  254. package/dist/tenant/types.d.ts +2 -0
  255. package/dist/tenant/types.d.ts.map +1 -1
  256. package/dist/test/auto-setup.js +2 -1
  257. package/dist/test/auto-setup.js.map +1 -1
  258. package/dist/test/index.d.ts +2 -1
  259. package/dist/test/index.d.ts.map +1 -1
  260. package/dist/test/index.js +2 -1
  261. package/dist/test/index.js.map +1 -1
  262. package/dist/test/plugin.d.ts +5 -0
  263. package/dist/test/plugin.d.ts.map +1 -1
  264. package/dist/test/plugin.js +5 -0
  265. package/dist/test/plugin.js.map +1 -1
  266. package/dist/test/vitest-config.d.ts +2 -0
  267. package/dist/test/vitest-config.d.ts.map +1 -1
  268. package/dist/test/vitest-config.js +5 -2
  269. package/dist/test/vitest-config.js.map +1 -1
  270. package/dist/test/vitest-plugin.d.ts +3 -1
  271. package/dist/test/vitest-plugin.d.ts.map +1 -1
  272. package/dist/test/vitest-plugin.js +3 -2
  273. package/dist/test/vitest-plugin.js.map +1 -1
  274. package/dist/test/vitest.d.ts +2 -0
  275. package/dist/test/vitest.d.ts.map +1 -1
  276. package/dist/test/vitest.js +48 -4
  277. package/dist/test/vitest.js.map +1 -1
  278. package/dist/validation/connectivity.d.ts +4 -0
  279. package/dist/validation/connectivity.d.ts.map +1 -0
  280. package/dist/validation/connectivity.js +32 -0
  281. package/dist/validation/connectivity.js.map +1 -0
  282. package/dist/validation/domain.d.ts +4 -0
  283. package/dist/validation/domain.d.ts.map +1 -0
  284. package/dist/validation/domain.js +72 -0
  285. package/dist/validation/domain.js.map +1 -0
  286. package/dist/validation/index.d.ts +6 -0
  287. package/dist/validation/index.d.ts.map +1 -0
  288. package/dist/validation/index.js +6 -0
  289. package/dist/validation/index.js.map +1 -0
  290. package/dist/validation/startup.d.ts +12 -0
  291. package/dist/validation/startup.d.ts.map +1 -0
  292. package/dist/validation/startup.js +19 -0
  293. package/dist/validation/startup.js.map +1 -0
  294. package/dist/validation/surface.d.ts +4 -0
  295. package/dist/validation/surface.d.ts.map +1 -0
  296. package/dist/validation/surface.js +55 -0
  297. package/dist/validation/surface.js.map +1 -0
  298. package/dist/validation/types.d.ts +13 -0
  299. package/dist/validation/types.d.ts.map +1 -0
  300. package/dist/validation/types.js +13 -0
  301. package/dist/validation/types.js.map +1 -0
  302. package/dist/vector/namespace.d.ts +11 -0
  303. package/dist/vector/namespace.d.ts.map +1 -1
  304. package/dist/vector/namespace.js +11 -0
  305. package/dist/vector/namespace.js.map +1 -1
  306. package/dist/webhook/namespace.d.ts +7 -0
  307. package/dist/webhook/namespace.d.ts.map +1 -1
  308. package/dist/webhook/namespace.js +7 -0
  309. package/dist/webhook/namespace.js.map +1 -1
  310. package/dist/workspace/checksum.d.ts +4 -0
  311. package/dist/workspace/checksum.d.ts.map +1 -0
  312. package/dist/workspace/checksum.js +20 -0
  313. package/dist/workspace/checksum.js.map +1 -0
  314. package/dist/workspace/discover.d.ts +6 -0
  315. package/dist/workspace/discover.d.ts.map +1 -0
  316. package/dist/workspace/discover.js +43 -0
  317. package/dist/workspace/discover.js.map +1 -0
  318. package/dist/workspace/generate.d.ts +17 -0
  319. package/dist/workspace/generate.d.ts.map +1 -0
  320. package/dist/workspace/generate.js +153 -0
  321. package/dist/workspace/generate.js.map +1 -0
  322. package/dist/workspace/index.d.ts +5 -0
  323. package/dist/workspace/index.d.ts.map +1 -0
  324. package/dist/workspace/index.js +5 -0
  325. package/dist/workspace/index.js.map +1 -0
  326. package/dist/workspace/sync.d.ts +18 -0
  327. package/dist/workspace/sync.d.ts.map +1 -0
  328. package/dist/workspace/sync.js +58 -0
  329. package/dist/workspace/sync.js.map +1 -0
  330. package/package.json +7 -1
  331. package/dist/drizzle/index.d.ts +0 -3
  332. package/dist/drizzle/index.d.ts.map +0 -1
  333. package/dist/drizzle/index.js +0 -3
  334. package/dist/drizzle/index.js.map +0 -1
  335. package/dist/resource/batch.d.ts +0 -17
  336. package/dist/resource/batch.d.ts.map +0 -1
  337. package/dist/resource/batch.js +0 -47
  338. package/dist/resource/batch.js.map +0 -1
  339. package/dist/resource/builder.d.ts +0 -11
  340. package/dist/resource/builder.d.ts.map +0 -1
  341. package/dist/resource/builder.js +0 -12
  342. package/dist/resource/builder.js.map +0 -1
  343. package/dist/resource/errors.d.ts +0 -7
  344. package/dist/resource/errors.d.ts.map +0 -1
  345. package/dist/resource/errors.js +0 -9
  346. package/dist/resource/errors.js.map +0 -1
  347. package/dist/resource/index.d.ts +0 -9
  348. package/dist/resource/index.d.ts.map +0 -1
  349. package/dist/resource/index.js +0 -6
  350. package/dist/resource/index.js.map +0 -1
  351. package/dist/resource/paginate.d.ts +0 -13
  352. package/dist/resource/paginate.d.ts.map +0 -1
  353. package/dist/resource/paginate.js +0 -29
  354. package/dist/resource/paginate.js.map +0 -1
  355. package/dist/resource/register.d.ts +0 -16
  356. package/dist/resource/register.d.ts.map +0 -1
  357. package/dist/resource/register.js +0 -181
  358. package/dist/resource/register.js.map +0 -1
  359. package/dist/resource/types.d.ts +0 -69
  360. package/dist/resource/types.d.ts.map +0 -1
  361. package/dist/trunk.d.ts +0 -35
  362. package/dist/trunk.d.ts.map +0 -1
  363. package/dist/trunk.js +0 -102
  364. package/dist/trunk.js.map +0 -1
  365. /package/dist/{resource → domain}/types.js +0 -0
package/dist/pipework.js CHANGED
@@ -1,12 +1,110 @@
1
1
  import { loadConfig as parseConfig } from './config/load.js';
2
2
  import { createManagedConnection } from './db/pool.js';
3
3
  import { InvariantViolation } from './invariants/assert.js';
4
+ import { startSurfaces } from './surface/start.js';
5
+ import { orchestrateStartup } from './lifecycle/startup.js';
6
+ import { getBaseLogger } from './logging/index.js';
7
+ import { validateStartup } from './validation/startup.js';
8
+ /**
9
+ * Creates the Pipework application instance. This is the entry point for every Pipework app.
10
+ * Define in `pipework.config.ts` and export as default.
11
+ */
4
12
  export function createManifold(raw) {
5
- const config = parseConfig(raw);
13
+ const { surfaces: surfacesDef, lifecycle: lifecycleDef, ...blueprintRaw } = raw;
14
+ const config = parseConfig(blueprintRaw);
6
15
  const pool = createPoolState(config);
7
16
  const isolation = createIsolationState();
8
17
  const connections = createConnectionTracker();
9
- return { config, env: config.env, pool, isolation, connections };
18
+ const surfaces = surfacesDef ?? {};
19
+ const lifecycleConfig = lifecycleDef ?? {};
20
+ let running = null;
21
+ let signalCleanup = null;
22
+ const manifold = {
23
+ config,
24
+ env: config.env,
25
+ pool,
26
+ isolation,
27
+ connections,
28
+ surfaceNames() {
29
+ return Object.keys(surfaces);
30
+ },
31
+ surfaceMap() {
32
+ return { ...surfaces };
33
+ },
34
+ async start() {
35
+ if (running !== null) {
36
+ throw new Error('[pipework] Manifold is already started.\n\n' +
37
+ ' Call stop() before starting again.\n');
38
+ }
39
+ const startupOpts = {};
40
+ if (lifecycleConfig.preStart !== undefined) {
41
+ ;
42
+ startupOpts.hooks = lifecycleConfig.preStart;
43
+ }
44
+ if (lifecycleConfig.startupTimeoutMs !== undefined) {
45
+ ;
46
+ startupOpts.timeoutMs = lifecycleConfig.startupTimeoutMs;
47
+ }
48
+ await orchestrateStartup(manifold, startupOpts);
49
+ await validateStartup({
50
+ configuredDatabases: config.databaseNames(),
51
+ environment: config.environment,
52
+ surfaces,
53
+ defaultDbAvailable: config.databaseNames().length === 1,
54
+ databases: config.databases(),
55
+ });
56
+ const context = manifold;
57
+ running = await startSurfaces(context, config, surfaces);
58
+ signalCleanup = installSignalHandlers(manifold);
59
+ },
60
+ async stop() {
61
+ const logger = getBaseLogger();
62
+ if (signalCleanup !== null) {
63
+ signalCleanup();
64
+ signalCleanup = null;
65
+ }
66
+ if (lifecycleConfig.preShutdown) {
67
+ for (const hook of lifecycleConfig.preShutdown) {
68
+ try {
69
+ await hook.execute();
70
+ }
71
+ catch (err) {
72
+ logger.error({ hook: hook.name, err }, 'Pre-shutdown hook failed');
73
+ }
74
+ }
75
+ }
76
+ if (running !== null) {
77
+ await running.stop();
78
+ running = null;
79
+ }
80
+ await pool.closeAll();
81
+ },
82
+ };
83
+ return manifold;
84
+ }
85
+ function installSignalHandlers(manifold) {
86
+ const logger = getBaseLogger();
87
+ let stopping = false;
88
+ const handler = (signal) => {
89
+ if (stopping)
90
+ return;
91
+ stopping = true;
92
+ logger.info({ signal }, 'Shutdown signal received');
93
+ void manifold.stop().then(() => {
94
+ process.exit(0);
95
+ }).catch((err) => {
96
+ logger.error({ err }, 'Error during shutdown');
97
+ process.exit(1);
98
+ });
99
+ };
100
+ const sigterm = () => handler('SIGTERM');
101
+ const sigint = () => handler('SIGINT');
102
+ process.on('SIGTERM', sigterm);
103
+ process.on('SIGINT', sigint);
104
+ return () => {
105
+ process.removeListener('SIGTERM', sigterm);
106
+ process.removeListener('SIGINT', sigint);
107
+ };
10
108
  }
11
109
  function createPoolState(resolvedConfig) {
12
110
  const map = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"pipework.js","sourceRoot":"","sources":["../src/pipework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipework.js","sourceRoot":"","sources":["../src/pipework.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,6 @@ export type { RbacConfig, Rbac, PermissionSet, ResolvedPermission, Scope, SeedDa
3
3
  export { hasPermission, scopeSatisfies } from './check.js';
4
4
  export { PermissionCache } from './cache.js';
5
5
  export { enforcePermission } from './middleware.js';
6
+ /** Creates an Rbac instance from role/permission config — provides check, enforce, and seed operations. */
6
7
  export declare function createRbac(config: RbacConfig): Rbac;
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAA2B,MAAM,YAAY,CAAA;AAM3E,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAClK,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CA0BnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAA2B,MAAM,YAAY,CAAA;AAM3E,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAClK,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CA0BnD"}
@@ -5,6 +5,7 @@ import { seedRbac } from './seed.js';
5
5
  export { hasPermission, scopeSatisfies } from './check.js';
6
6
  export { PermissionCache } from './cache.js';
7
7
  export { enforcePermission } from './middleware.js';
8
+ /** Creates an Rbac instance from role/permission config — provides check, enforce, and seed operations. */
8
9
  export function createRbac(config) {
9
10
  const cache = new PermissionCache(config.cacheTtlMs ?? 60_000);
10
11
  const scopes = config.scopes ?? ['own', 'team', 'territory', 'tenant'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEtE,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,EAAM,EAAE,MAAc,EAAE,QAAgB,EAAE,WAAmB;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;YACvD,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YAEzB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YACxF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACnB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,KAAK,CAAC,WAA0B,EAAE,QAAgB,EAAE,MAAc,EAAE,aAAsB;YACxF,OAAO,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACxF,CAAC;QAED,UAAU,CAAC,MAAc,EAAE,QAAgB;YACzC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,IAAc;YAC/B,MAAM,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,2GAA2G;AAC3G,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEtE,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,EAAM,EAAE,MAAc,EAAE,QAAgB,EAAE,WAAmB;YACzE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;YACvD,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YAEzB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YACxF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACnB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,KAAK,CAAC,WAA0B,EAAE,QAAgB,EAAE,MAAc,EAAE,aAAsB;YACxF,OAAO,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QACxF,CAAC;QAED,UAAU,CAAC,MAAc,EAAE,QAAgB;YACzC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAM,EAAE,IAAc;YAC/B,MAAM,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,9 +1,15 @@
1
1
  import { createRbac, hasPermission, enforcePermission, scopeSatisfies, PermissionCache } from './index.js';
2
+ /** Role-based access control namespace — permission checking, enforcement, scope hierarchy. */
2
3
  export declare const rbac: {
4
+ /** Creates an Rbac instance from config (roles, permissions, hierarchy). */
3
5
  create: typeof createRbac;
6
+ /** Checks if a permission set includes the required resource/action/scope. Pure function, no DB. */
4
7
  check: typeof hasPermission;
8
+ /** Checks permission and throws ForbiddenError if denied. Loads permissions from DB with caching. */
5
9
  enforce: typeof enforcePermission;
10
+ /** Checks if a granted scope satisfies a required scope given a hierarchy (e.g. org > team > self). */
6
11
  satisfies: typeof scopeSatisfies;
12
+ /** LRU cache for resolved permissions — avoids repeated DB lookups within a request. */
7
13
  PermissionCache: typeof PermissionCache;
8
14
  };
9
15
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/rbac/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1G,eAAO,MAAM,IAAI;;;;;;CAMhB,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/rbac/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1G,+FAA+F;AAC/F,eAAO,MAAM,IAAI;IACf,4EAA4E;;IAE5E,oGAAoG;;IAEpG,qGAAqG;;IAErG,uGAAuG;;IAEvG,wFAAwF;;CAEzF,CAAA"}
@@ -1,9 +1,15 @@
1
1
  import { createRbac, hasPermission, enforcePermission, scopeSatisfies, PermissionCache } from './index.js';
2
+ /** Role-based access control namespace — permission checking, enforcement, scope hierarchy. */
2
3
  export const rbac = {
4
+ /** Creates an Rbac instance from config (roles, permissions, hierarchy). */
3
5
  create: createRbac,
6
+ /** Checks if a permission set includes the required resource/action/scope. Pure function, no DB. */
4
7
  check: hasPermission,
8
+ /** Checks permission and throws ForbiddenError if denied. Loads permissions from DB with caching. */
5
9
  enforce: enforcePermission,
10
+ /** Checks if a granted scope satisfies a required scope given a hierarchy (e.g. org > team > self). */
6
11
  satisfies: scopeSatisfies,
12
+ /** LRU cache for resolved permissions — avoids repeated DB lookups within a request. */
7
13
  PermissionCache,
8
14
  };
9
15
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/rbac/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1G,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,aAAa;IACpB,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,cAAc;IACzB,eAAe;CAChB,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/rbac/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE1G,+FAA+F;AAC/F,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,4EAA4E;IAC5E,MAAM,EAAE,UAAU;IAClB,oGAAoG;IACpG,KAAK,EAAE,aAAa;IACpB,qGAAqG;IACrG,OAAO,EAAE,iBAAiB;IAC1B,uGAAuG;IACvG,SAAS,EAAE,cAAc;IACzB,wFAAwF;IACxF,eAAe;CAChB,CAAA"}
@@ -8,8 +8,11 @@ import * as idx from '../db/idx/index.js';
8
8
  import * as schemaFeatures from '../db/schema-features.js';
9
9
  export type { Schema, Infer } from './types.js';
10
10
  export type { JsonSchema } from './json-schema.js';
11
+ /** Schema definition and validation namespace — wraps zod for validation, drizzle for table/column/index definitions. */
11
12
  export declare const schema: {
13
+ /** Column type builders for table definitions — text, uuid, integer, timestamp, jsonb, boolean, varchar, etc. */
12
14
  readonly col: typeof col;
15
+ /** Index and constraint builders — index, uniqueIndex, primaryKey, foreignKey, unique, check. */
13
16
  readonly idx: typeof idx;
14
17
  readonly table: import("drizzle-orm/pg-core").PgTableFn<undefined>;
15
18
  readonly view: typeof schemaFeatures.view;
@@ -20,12 +23,19 @@ export declare const schema: {
20
23
  readonly role: typeof schemaFeatures.role;
21
24
  readonly tableCreator: typeof schemaFeatures.tableCreator;
22
25
  readonly withReplicas: <HKT extends import("drizzle-orm/pg-core").PgQueryResultHKT, TFullSchema extends Record<string, unknown>, TSchema extends import("drizzle-orm").TablesRelationalConfig, Q extends import("drizzle-orm/pg-core").PgDatabase<HKT, TFullSchema, TSchema extends Record<string, unknown> ? import("drizzle-orm").ExtractTablesWithRelations<TFullSchema> : TSchema>>(primary: Q, replicas: [Q, ...Q[]], getReplica?: (replicas: Q[]) => Q) => import("drizzle-orm/pg-core").PgWithReplicas<Q>;
26
+ /** Validation sub-namespace — type constructors, combinators, formats, coerce, parse, tryParse, toJsonSchema, branded. */
23
27
  readonly check: {
28
+ /** Enum schema from a list of string literals. */
24
29
  readonly enum: typeof z.enum;
30
+ /** Coercion sub-namespace — coerce.number(), coerce.boolean(), etc. */
25
31
  readonly coerce: typeof z.coerce;
32
+ /** Validates data against a schema, throws ValidationError with actionable message on failure. */
26
33
  readonly parse: typeof parse;
34
+ /** Validates data, returns { success, data } or { success: false, error } without throwing. */
27
35
  readonly tryParse: typeof tryParse;
36
+ /** Converts a schema to JSON Schema for OpenAPI or external validation. */
28
37
  readonly toJsonSchema: typeof toJsonSchema;
38
+ /** Creates a branded type — nominal typing for IDs, slugs, etc. */
29
39
  readonly branded: typeof branded;
30
40
  readonly getErrorMap: typeof z.getErrorMap;
31
41
  readonly setErrorMap: typeof z.setErrorMap;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAM1B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAE1D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAiBlD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYT,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAM1B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAE1D,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAwBlD,yHAAyH;AACzH,eAAO,MAAM,MAAM;IAOjB,iHAAiH;;IAGjH,iGAAiG;;;;;;;;;;;IATjG,0HAA0H;;QAjB1H,kDAAkD;;QAElD,uEAAuE;;QAGvE,kGAAkG;;QAElG,+FAA+F;;QAE/F,2EAA2E;;QAE3E,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiB3D,CAAA"}
@@ -12,27 +12,35 @@ import { branded } from './branded.js';
12
12
  import * as col from '../db/col/index.js';
13
13
  import * as idx from '../db/idx/index.js';
14
14
  import * as schemaFeatures from '../db/schema-features.js';
15
+ /** Validation sub-namespace — type constructors (string, number, object, array), combinators (union, intersection), formats (email, uuid), coerce, parse, tryParse, toJsonSchema, branded. */
15
16
  const check = {
16
17
  ...typeConstructors,
17
18
  ...combinators,
18
19
  ...formats,
19
20
  ...encoding,
20
21
  ...errors,
22
+ /** Enum schema from a list of string literals. */
21
23
  enum: z.enum,
24
+ /** Coercion sub-namespace — coerce.number(), coerce.boolean(), etc. */
22
25
  coerce: z.coerce,
26
+ /** Validates data against a schema, throws ValidationError with actionable message on failure. */
23
27
  parse,
28
+ /** Validates data, returns { success, data } or { success: false, error } without throwing. */
24
29
  tryParse,
30
+ /** Converts a schema to JSON Schema for OpenAPI or external validation. */
25
31
  toJsonSchema,
32
+ /** Creates a branded type — nominal typing for IDs, slugs, etc. */
26
33
  branded,
27
34
  };
35
+ /** Schema definition and validation namespace — wraps zod for validation, drizzle for table/column/index definitions. */
28
36
  export const schema = {
29
- // Validation (zod wrapper)
37
+ /** Validation sub-namespace — type constructors, combinators, formats, coerce, parse, tryParse, toJsonSchema, branded. */
30
38
  check,
31
- // Table/view definition
39
+ // Table/view definition — table, view, materializedView, pgSchema, sequence, policy, role, tableCreator, withReplicas
32
40
  ...schemaFeatures,
33
- // Column types
41
+ /** Column type builders for table definitions — text, uuid, integer, timestamp, jsonb, boolean, varchar, etc. */
34
42
  col,
35
- // Index/constraint builders
43
+ /** Index and constraint builders — index, uniqueIndex, primaryKey, foreignKey, unique, check. */
36
44
  idx,
37
45
  };
38
46
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,8DAA8D;AAC9D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAK1D,MAAM,KAAK,GAAG;IACZ,GAAG,gBAAgB;IACnB,GAAG,WAAW;IACd,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,MAAM;IACT,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,MAAM,EAAE,CAAC,CAAC,MAAM;IAEhB,KAAK;IACL,QAAQ;IACR,YAAY;IACZ,OAAO;CACC,CAAA;AAEV,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2BAA2B;IAC3B,KAAK;IAEL,wBAAwB;IACxB,GAAG,cAAc;IAEjB,eAAe;IACf,GAAG;IAEH,4BAA4B;IAC5B,GAAG;CACK,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/schema/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,gBAAgB,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,8DAA8D;AAC9D,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AACzC,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAA;AAK1D,8LAA8L;AAC9L,MAAM,KAAK,GAAG;IACZ,GAAG,gBAAgB;IACnB,GAAG,WAAW;IACd,GAAG,OAAO;IACV,GAAG,QAAQ;IACX,GAAG,MAAM;IACT,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,uEAAuE;IACvE,MAAM,EAAE,CAAC,CAAC,MAAM;IAEhB,kGAAkG;IAClG,KAAK;IACL,+FAA+F;IAC/F,QAAQ;IACR,2EAA2E;IAC3E,YAAY;IACZ,mEAAmE;IACnE,OAAO;CACC,CAAA;AAEV,yHAAyH;AACzH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,0HAA0H;IAC1H,KAAK;IAEL,sHAAsH;IACtH,GAAG,cAAc;IAEjB,iHAAiH;IACjH,GAAG;IAEH,iGAAiG;IACjG,GAAG;CACK,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import type { z } from 'zod/v4';
2
+ /** Any validation schema — the base type accepted by .input(), .query(), .params() in the fitting builder. */
2
3
  export type Schema<T = unknown> = z.ZodType<T>;
4
+ /** Extracts the TypeScript type from a Schema — Infer<typeof mySchema> gives you the validated type. */
3
5
  export type Infer<T extends Schema> = z.infer<T>;
4
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC9C,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE/B,8GAA8G;AAC9G,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC9C,wGAAwG;AACxG,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA"}
@@ -1,8 +1,12 @@
1
1
  import { defineStateMachine } from './define.js';
2
2
  import { InvalidTransitionError, InvalidStateMachineError } from './errors.js';
3
+ /** State machine namespace — define valid transitions with guards and side effects. */
3
4
  export declare const state: {
5
+ /** Defines a state machine from states, transitions, guards, and effects. Returns a StateMachine with transition/canTransition. */
4
6
  define: typeof defineStateMachine;
7
+ /** Thrown when a transition is not allowed from the current state. */
5
8
  InvalidTransitionError: typeof InvalidTransitionError;
9
+ /** Thrown when the state machine definition is internally inconsistent. */
6
10
  InvalidStateMachineError: typeof InvalidStateMachineError;
7
11
  };
8
12
  //# sourceMappingURL=namespace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/state-machine/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE9E,eAAO,MAAM,KAAK;;;;CAIjB,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/state-machine/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE9E,uFAAuF;AACvF,eAAO,MAAM,KAAK;IAChB,mIAAmI;;IAEnI,sEAAsE;;IAEtE,2EAA2E;;CAE5E,CAAA"}
@@ -1,8 +1,12 @@
1
1
  import { defineStateMachine } from './define.js';
2
2
  import { InvalidTransitionError, InvalidStateMachineError } from './errors.js';
3
+ /** State machine namespace — define valid transitions with guards and side effects. */
3
4
  export const state = {
5
+ /** Defines a state machine from states, transitions, guards, and effects. Returns a StateMachine with transition/canTransition. */
4
6
  define: defineStateMachine,
7
+ /** Thrown when a transition is not allowed from the current state. */
5
8
  InvalidTransitionError,
9
+ /** Thrown when the state machine definition is internally inconsistent. */
6
10
  InvalidStateMachineError,
7
11
  };
8
12
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/state-machine/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE9E,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,kBAAkB;IAC1B,sBAAsB;IACtB,wBAAwB;CACzB,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/state-machine/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAE9E,uFAAuF;AACvF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,mIAAmI;IACnI,MAAM,EAAE,kBAAkB;IAC1B,sEAAsE;IACtE,sBAAsB;IACtB,2EAA2E;IAC3E,wBAAwB;CACzB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceBuilder, HttpSurfaceConfig } from './types.js';
2
+ export declare function createHttpSurface(config: HttpSurfaceConfig): SurfaceBuilder;
3
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/surface/http.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,iBAAiB,EAAkB,MAAM,YAAY,CAAA;AAKlG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAwC3E"}
@@ -0,0 +1,84 @@
1
+ import { DEFAULT_DB } from '../di/types.js';
2
+ import { createServer } from '../http/server.js';
3
+ export function createHttpSurface(config) {
4
+ const databases = collectHttpDatabases(config);
5
+ const deps = {};
6
+ const surface = {
7
+ kind: 'http',
8
+ manifest: { databases, jobTypes: [], dependencies: deps },
9
+ dependencies(d) {
10
+ Object.assign(deps, d);
11
+ return surface;
12
+ },
13
+ async start(context) {
14
+ const serverConfig = buildServerConfig(config);
15
+ const server = createServer(context, serverConfig);
16
+ const handlers = config.handlers ?? [];
17
+ if (handlers.length > 0) {
18
+ server.registerHandlers([...handlers]);
19
+ }
20
+ const resources = config.resources ?? [];
21
+ for (const resource of resources) {
22
+ server.registerResource(resource);
23
+ }
24
+ const address = await server.listen();
25
+ return {
26
+ kind: 'http',
27
+ address,
28
+ async stop() {
29
+ await server.close();
30
+ },
31
+ };
32
+ },
33
+ };
34
+ return surface;
35
+ }
36
+ function buildServerConfig(config) {
37
+ const sc = { managed: true };
38
+ if (config.port !== undefined)
39
+ sc.port = config.port;
40
+ if (config.host !== undefined)
41
+ sc.host = config.host;
42
+ if (config.gracefulShutdownMs !== undefined)
43
+ sc.gracefulShutdownMs = config.gracefulShutdownMs;
44
+ if (config.auth !== undefined)
45
+ sc.auth = config.auth;
46
+ if (config.tenant !== undefined)
47
+ sc.tenant = config.tenant;
48
+ if (config.cors !== undefined)
49
+ sc.cors = config.cors;
50
+ if (config.security !== undefined)
51
+ sc.security = config.security;
52
+ if (config.rateLimit !== undefined)
53
+ sc.rateLimit = config.rateLimit;
54
+ if (config.openapi !== undefined)
55
+ sc.openapi = config.openapi;
56
+ if (config.rbac !== undefined)
57
+ sc.rbac = config.rbac;
58
+ if (config.transactionPerRequest !== undefined)
59
+ sc.transactionPerRequest = config.transactionPerRequest;
60
+ if (config.transactionTimeoutMs !== undefined)
61
+ sc.transactionTimeoutMs = config.transactionTimeoutMs;
62
+ if (config.healthChecks !== undefined)
63
+ sc.healthChecks = config.healthChecks;
64
+ if (config.logging !== undefined)
65
+ sc.logging = config.logging;
66
+ if (config.logger !== undefined)
67
+ sc.logger = config.logger;
68
+ if (config.trustProxy !== undefined)
69
+ sc.trustProxy = config.trustProxy;
70
+ return sc;
71
+ }
72
+ function collectHttpDatabases(config) {
73
+ const dbs = new Set();
74
+ for (const h of config.handlers ?? []) {
75
+ for (const db of h.meta.databases) {
76
+ dbs.add(db === DEFAULT_DB ? DEFAULT_DB : db);
77
+ }
78
+ }
79
+ for (const r of config.resources ?? []) {
80
+ dbs.add(r.meta.database);
81
+ }
82
+ return [...dbs];
83
+ }
84
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/surface/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { createHttpSurface } from './http.js';
2
+ export { createWorkerSurface } from './worker.js';
3
+ export { createScriptSurface } from './script.js';
4
+ export { validateSurfaces, validateNoJobTypeDuplicates } from './validate.js';
5
+ export { startSurfaces, type StartResult } from './start.js';
6
+ export type { SurfaceKind, SurfaceManifest, SurfaceHandle, Surface, SurfaceBuilder, SurfaceContext, HttpSurfaceConfig, WorkerSurfaceConfig, ScriptSurfaceConfig, ScriptContext, RetryConfig, SurfaceMap, } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAC5D,YAAY,EACV,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EACpF,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAC1E,WAAW,EAAE,UAAU,GACxB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { createHttpSurface } from './http.js';
2
+ export { createWorkerSurface } from './worker.js';
3
+ export { createScriptSurface } from './script.js';
4
+ export { validateSurfaces, validateNoJobTypeDuplicates } from './validate.js';
5
+ export { startSurfaces } from './start.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAoB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { createHttpSurface } from './http.js';
2
+ import { createWorkerSurface } from './worker.js';
3
+ import { createScriptSurface } from './script.js';
4
+ /** Surface namespace — declarative entry points that define how the app runs (HTTP server, background worker, one-shot script). */
5
+ export declare const surface: {
6
+ /** Creates an HTTP surface — a Fastify server with routes, middleware, and production validation. */
7
+ http: typeof createHttpSurface;
8
+ /** Creates a worker surface — a long-running process that claims and executes jobs from queues. */
9
+ worker: typeof createWorkerSurface;
10
+ /** Creates a script surface — a one-shot process that runs and exits (migrations, seeds, CLI tools). */
11
+ script: typeof createScriptSurface;
12
+ };
13
+ //# sourceMappingURL=namespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/surface/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,mIAAmI;AACnI,eAAO,MAAM,OAAO;IAClB,qGAAqG;;IAErG,mGAAmG;;IAEnG,wGAAwG;;CAEzG,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { createHttpSurface } from './http.js';
2
+ import { createWorkerSurface } from './worker.js';
3
+ import { createScriptSurface } from './script.js';
4
+ /** Surface namespace — declarative entry points that define how the app runs (HTTP server, background worker, one-shot script). */
5
+ export const surface = {
6
+ /** Creates an HTTP surface — a Fastify server with routes, middleware, and production validation. */
7
+ http: createHttpSurface,
8
+ /** Creates a worker surface — a long-running process that claims and executes jobs from queues. */
9
+ worker: createWorkerSurface,
10
+ /** Creates a script surface — a one-shot process that runs and exits (migrations, seeds, CLI tools). */
11
+ script: createScriptSurface,
12
+ };
13
+ //# sourceMappingURL=namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/surface/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,mIAAmI;AACnI,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,qGAAqG;IACrG,IAAI,EAAE,iBAAiB;IACvB,mGAAmG;IACnG,MAAM,EAAE,mBAAmB;IAC3B,wGAAwG;IACxG,MAAM,EAAE,mBAAmB;CAC5B,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { SurfaceBuilder, ScriptSurfaceConfig } from './types.js';
2
+ export declare function createScriptSurface(config: ScriptSurfaceConfig): SurfaceBuilder;
3
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/surface/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,mBAAmB,EAAkB,MAAM,YAAY,CAAA;AAEpG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CA2B/E"}
@@ -0,0 +1,24 @@
1
+ export function createScriptSurface(config) {
2
+ const deps = {};
3
+ const surface = {
4
+ kind: 'script',
5
+ manifest: { databases: config.databases ?? [], jobTypes: [], dependencies: deps },
6
+ dependencies(d) {
7
+ Object.assign(deps, d);
8
+ return surface;
9
+ },
10
+ async start(context) {
11
+ await config.run({
12
+ config: context.config,
13
+ env: context.env,
14
+ pool: context.pool,
15
+ });
16
+ return {
17
+ kind: 'script',
18
+ async stop() { },
19
+ };
20
+ },
21
+ };
22
+ return surface;
23
+ }
24
+ //# sourceMappingURL=script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../src/surface/script.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,MAAM,IAAI,GAA2B,EAAE,CAAA;IAEvC,MAAM,OAAO,GAAmB;QAC9B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;QAEjF,YAAY,CAAC,CAAyB;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACtB,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAuB;YACjC,MAAM,MAAM,CAAC,GAAG,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAA;YAEF,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,CAAC,IAAI,KAAI,CAAC;aAChB,CAAA;QACH,CAAC;KACF,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { SurfaceContext, SurfaceHandle, SurfaceMap } from './types.js';
2
+ import type { ResolvedConfig } from '../config/load.js';
3
+ export interface StartResult {
4
+ readonly handles: ReadonlyMap<string, SurfaceHandle>;
5
+ stop(): Promise<void>;
6
+ }
7
+ export declare function startSurfaces(context: SurfaceContext, config: ResolvedConfig, surfaces: SurfaceMap): Promise<StartResult>;
8
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/surface/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGvD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,UAAU,GACnB,OAAO,CAAC,WAAW,CAAC,CAyEtB"}