pipework 0.4.1 → 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 (324) 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/install.d.ts +2 -0
  44. package/dist/cli/commands/install.d.ts.map +1 -0
  45. package/dist/cli/commands/install.js +31 -0
  46. package/dist/cli/commands/install.js.map +1 -0
  47. package/dist/cli/commands/remove.d.ts +2 -0
  48. package/dist/cli/commands/remove.d.ts.map +1 -0
  49. package/dist/cli/commands/remove.js +60 -0
  50. package/dist/cli/commands/remove.js.map +1 -0
  51. package/dist/cli/commands/shared/find-config.d.ts +2 -0
  52. package/dist/cli/commands/shared/find-config.d.ts.map +1 -0
  53. package/dist/cli/commands/shared/find-config.js +19 -0
  54. package/dist/cli/commands/shared/find-config.js.map +1 -0
  55. package/dist/cli/commands/shared/load-config.d.ts +11 -0
  56. package/dist/cli/commands/shared/load-config.d.ts.map +1 -0
  57. package/dist/cli/commands/shared/load-config.js +25 -0
  58. package/dist/cli/commands/shared/load-config.js.map +1 -0
  59. package/dist/cli/commands/sync.d.ts +2 -0
  60. package/dist/cli/commands/sync.d.ts.map +1 -0
  61. package/dist/cli/commands/sync.js +28 -0
  62. package/dist/cli/commands/sync.js.map +1 -0
  63. package/dist/cli/index.d.ts.map +1 -1
  64. package/dist/cli/index.js +28 -0
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/config/namespace.d.ts +7 -0
  67. package/dist/config/namespace.d.ts.map +1 -1
  68. package/dist/config/namespace.js +5 -0
  69. package/dist/config/namespace.js.map +1 -1
  70. package/dist/config/schema.d.ts +2 -0
  71. package/dist/config/schema.d.ts.map +1 -1
  72. package/dist/config/schema.js +6 -0
  73. package/dist/config/schema.js.map +1 -1
  74. package/dist/context/types.d.ts +3 -0
  75. package/dist/context/types.d.ts.map +1 -1
  76. package/dist/db/namespace.d.ts +25 -0
  77. package/dist/db/namespace.d.ts.map +1 -1
  78. package/dist/db/namespace.js +17 -6
  79. package/dist/db/namespace.js.map +1 -1
  80. package/dist/db/types.d.ts +4 -0
  81. package/dist/db/types.d.ts.map +1 -1
  82. package/dist/di/types.d.ts +11 -0
  83. package/dist/di/types.d.ts.map +1 -1
  84. package/dist/di/types.js +1 -0
  85. package/dist/di/types.js.map +1 -1
  86. package/dist/domain/brand.d.ts +19 -0
  87. package/dist/domain/brand.d.ts.map +1 -0
  88. package/dist/domain/brand.js +2 -0
  89. package/dist/domain/brand.js.map +1 -0
  90. package/dist/domain/define.d.ts +5 -0
  91. package/dist/domain/define.d.ts.map +1 -0
  92. package/dist/domain/define.js +62 -0
  93. package/dist/domain/define.js.map +1 -0
  94. package/dist/domain/field.d.ts +34 -0
  95. package/dist/domain/field.d.ts.map +1 -0
  96. package/dist/domain/field.js +111 -0
  97. package/dist/domain/field.js.map +1 -0
  98. package/dist/domain/index.d.ts +7 -0
  99. package/dist/domain/index.d.ts.map +1 -0
  100. package/dist/domain/index.js +5 -0
  101. package/dist/domain/index.js.map +1 -0
  102. package/dist/domain/naming.d.ts +2 -0
  103. package/dist/domain/naming.d.ts.map +1 -0
  104. package/dist/domain/naming.js +7 -0
  105. package/dist/domain/naming.js.map +1 -0
  106. package/dist/domain/project-factory.d.ts +4 -0
  107. package/dist/domain/project-factory.d.ts.map +1 -0
  108. package/dist/domain/project-factory.js +136 -0
  109. package/dist/domain/project-factory.js.map +1 -0
  110. package/dist/domain/project-schema.d.ts +6 -0
  111. package/dist/domain/project-schema.d.ts.map +1 -0
  112. package/dist/domain/project-schema.js +118 -0
  113. package/dist/domain/project-schema.js.map +1 -0
  114. package/dist/domain/project-table.d.ts +30 -0
  115. package/dist/domain/project-table.d.ts.map +1 -0
  116. package/dist/domain/project-table.js +117 -0
  117. package/dist/domain/project-table.js.map +1 -0
  118. package/dist/domain/types.d.ts +68 -0
  119. package/dist/domain/types.d.ts.map +1 -0
  120. package/dist/{resource → domain}/types.js.map +1 -1
  121. package/dist/errors/namespace.d.ts +7 -0
  122. package/dist/errors/namespace.d.ts.map +1 -1
  123. package/dist/errors/namespace.js +7 -0
  124. package/dist/errors/namespace.js.map +1 -1
  125. package/dist/fitting/namespace.d.ts +2 -0
  126. package/dist/fitting/namespace.d.ts.map +1 -1
  127. package/dist/fitting/namespace.js +2 -0
  128. package/dist/fitting/namespace.js.map +1 -1
  129. package/dist/fixture/namespace.d.ts +8 -0
  130. package/dist/fixture/namespace.d.ts.map +1 -1
  131. package/dist/fixture/namespace.js +8 -0
  132. package/dist/fixture/namespace.js.map +1 -1
  133. package/dist/flow/namespace.d.ts +9 -0
  134. package/dist/flow/namespace.d.ts.map +1 -1
  135. package/dist/flow/namespace.js +9 -0
  136. package/dist/flow/namespace.js.map +1 -1
  137. package/dist/http/namespace.d.ts +2 -0
  138. package/dist/http/namespace.d.ts.map +1 -1
  139. package/dist/http/namespace.js +2 -0
  140. package/dist/http/namespace.js.map +1 -1
  141. package/dist/http/server.d.ts +2 -0
  142. package/dist/http/server.d.ts.map +1 -1
  143. package/dist/http/server.js +1 -0
  144. package/dist/http/server.js.map +1 -1
  145. package/dist/http/types.d.ts +12 -0
  146. package/dist/http/types.d.ts.map +1 -1
  147. package/dist/jobs/cron.d.ts +1 -0
  148. package/dist/jobs/cron.d.ts.map +1 -1
  149. package/dist/jobs/cron.js.map +1 -1
  150. package/dist/jobs/namespace.d.ts +5 -0
  151. package/dist/jobs/namespace.d.ts.map +1 -1
  152. package/dist/jobs/namespace.js +5 -0
  153. package/dist/jobs/namespace.js.map +1 -1
  154. package/dist/jobs/queue.d.ts +4 -0
  155. package/dist/jobs/queue.d.ts.map +1 -1
  156. package/dist/jobs/queue.js.map +1 -1
  157. package/dist/lifecycle/namespace.d.ts +2 -0
  158. package/dist/lifecycle/namespace.d.ts.map +1 -1
  159. package/dist/lifecycle/namespace.js +2 -0
  160. package/dist/lifecycle/namespace.js.map +1 -1
  161. package/dist/log/namespace.d.ts +6 -0
  162. package/dist/log/namespace.d.ts.map +1 -1
  163. package/dist/log/namespace.js +6 -0
  164. package/dist/log/namespace.js.map +1 -1
  165. package/dist/openapi/namespace.d.ts +2 -0
  166. package/dist/openapi/namespace.d.ts.map +1 -1
  167. package/dist/openapi/namespace.js +2 -0
  168. package/dist/openapi/namespace.js.map +1 -1
  169. package/dist/pipeline/namespace.d.ts +4 -0
  170. package/dist/pipeline/namespace.d.ts.map +1 -1
  171. package/dist/pipeline/namespace.js +4 -0
  172. package/dist/pipeline/namespace.js.map +1 -1
  173. package/dist/pipework.d.ts +31 -0
  174. package/dist/pipework.d.ts.map +1 -1
  175. package/dist/pipework.js +15 -0
  176. package/dist/pipework.js.map +1 -1
  177. package/dist/rbac/index.d.ts +1 -0
  178. package/dist/rbac/index.d.ts.map +1 -1
  179. package/dist/rbac/index.js +1 -0
  180. package/dist/rbac/index.js.map +1 -1
  181. package/dist/rbac/namespace.d.ts +6 -0
  182. package/dist/rbac/namespace.d.ts.map +1 -1
  183. package/dist/rbac/namespace.js +6 -0
  184. package/dist/rbac/namespace.js.map +1 -1
  185. package/dist/schema/namespace.d.ts +10 -0
  186. package/dist/schema/namespace.d.ts.map +1 -1
  187. package/dist/schema/namespace.js +12 -4
  188. package/dist/schema/namespace.js.map +1 -1
  189. package/dist/schema/types.d.ts +2 -0
  190. package/dist/schema/types.d.ts.map +1 -1
  191. package/dist/state-machine/namespace.d.ts +4 -0
  192. package/dist/state-machine/namespace.d.ts.map +1 -1
  193. package/dist/state-machine/namespace.js +4 -0
  194. package/dist/state-machine/namespace.js.map +1 -1
  195. package/dist/surface/http.d.ts +2 -2
  196. package/dist/surface/http.d.ts.map +1 -1
  197. package/dist/surface/http.js +8 -2
  198. package/dist/surface/http.js.map +1 -1
  199. package/dist/surface/index.d.ts +1 -1
  200. package/dist/surface/index.d.ts.map +1 -1
  201. package/dist/surface/namespace.d.ts +4 -0
  202. package/dist/surface/namespace.d.ts.map +1 -1
  203. package/dist/surface/namespace.js +4 -0
  204. package/dist/surface/namespace.js.map +1 -1
  205. package/dist/surface/script.d.ts +2 -2
  206. package/dist/surface/script.d.ts.map +1 -1
  207. package/dist/surface/script.js +8 -2
  208. package/dist/surface/script.js.map +1 -1
  209. package/dist/surface/types.d.ts +4 -0
  210. package/dist/surface/types.d.ts.map +1 -1
  211. package/dist/surface/worker.d.ts +2 -2
  212. package/dist/surface/worker.d.ts.map +1 -1
  213. package/dist/surface/worker.js +8 -2
  214. package/dist/surface/worker.js.map +1 -1
  215. package/dist/temporal/namespace.d.ts +8 -0
  216. package/dist/temporal/namespace.d.ts.map +1 -1
  217. package/dist/temporal/namespace.js +8 -0
  218. package/dist/temporal/namespace.js.map +1 -1
  219. package/dist/tenant/namespace.d.ts +9 -0
  220. package/dist/tenant/namespace.d.ts.map +1 -1
  221. package/dist/tenant/namespace.js +9 -0
  222. package/dist/tenant/namespace.js.map +1 -1
  223. package/dist/tenant/types.d.ts +2 -0
  224. package/dist/tenant/types.d.ts.map +1 -1
  225. package/dist/test/index.d.ts +1 -0
  226. package/dist/test/index.d.ts.map +1 -1
  227. package/dist/test/index.js +1 -0
  228. package/dist/test/index.js.map +1 -1
  229. package/dist/test/vitest-config.d.ts +2 -0
  230. package/dist/test/vitest-config.d.ts.map +1 -1
  231. package/dist/test/vitest-config.js +5 -2
  232. package/dist/test/vitest-config.js.map +1 -1
  233. package/dist/test/vitest-plugin.d.ts +3 -1
  234. package/dist/test/vitest-plugin.d.ts.map +1 -1
  235. package/dist/test/vitest-plugin.js +3 -2
  236. package/dist/test/vitest-plugin.js.map +1 -1
  237. package/dist/validation/connectivity.d.ts +4 -0
  238. package/dist/validation/connectivity.d.ts.map +1 -0
  239. package/dist/validation/connectivity.js +32 -0
  240. package/dist/validation/connectivity.js.map +1 -0
  241. package/dist/validation/domain.d.ts +4 -0
  242. package/dist/validation/domain.d.ts.map +1 -0
  243. package/dist/validation/domain.js +72 -0
  244. package/dist/validation/domain.js.map +1 -0
  245. package/dist/validation/index.d.ts +6 -0
  246. package/dist/validation/index.d.ts.map +1 -0
  247. package/dist/validation/index.js +6 -0
  248. package/dist/validation/index.js.map +1 -0
  249. package/dist/validation/startup.d.ts +12 -0
  250. package/dist/validation/startup.d.ts.map +1 -0
  251. package/dist/validation/startup.js +19 -0
  252. package/dist/validation/startup.js.map +1 -0
  253. package/dist/validation/surface.d.ts +4 -0
  254. package/dist/validation/surface.d.ts.map +1 -0
  255. package/dist/validation/surface.js +55 -0
  256. package/dist/validation/surface.js.map +1 -0
  257. package/dist/validation/types.d.ts +13 -0
  258. package/dist/validation/types.d.ts.map +1 -0
  259. package/dist/validation/types.js +13 -0
  260. package/dist/validation/types.js.map +1 -0
  261. package/dist/vector/namespace.d.ts +11 -0
  262. package/dist/vector/namespace.d.ts.map +1 -1
  263. package/dist/vector/namespace.js +11 -0
  264. package/dist/vector/namespace.js.map +1 -1
  265. package/dist/webhook/namespace.d.ts +7 -0
  266. package/dist/webhook/namespace.d.ts.map +1 -1
  267. package/dist/webhook/namespace.js +7 -0
  268. package/dist/webhook/namespace.js.map +1 -1
  269. package/dist/workspace/checksum.d.ts +4 -0
  270. package/dist/workspace/checksum.d.ts.map +1 -0
  271. package/dist/workspace/checksum.js +20 -0
  272. package/dist/workspace/checksum.js.map +1 -0
  273. package/dist/workspace/discover.d.ts +6 -0
  274. package/dist/workspace/discover.d.ts.map +1 -0
  275. package/dist/workspace/discover.js +43 -0
  276. package/dist/workspace/discover.js.map +1 -0
  277. package/dist/workspace/generate.d.ts +17 -0
  278. package/dist/workspace/generate.d.ts.map +1 -0
  279. package/dist/workspace/generate.js +153 -0
  280. package/dist/workspace/generate.js.map +1 -0
  281. package/dist/workspace/index.d.ts +5 -0
  282. package/dist/workspace/index.d.ts.map +1 -0
  283. package/dist/workspace/index.js +5 -0
  284. package/dist/workspace/index.js.map +1 -0
  285. package/dist/workspace/sync.d.ts +18 -0
  286. package/dist/workspace/sync.d.ts.map +1 -0
  287. package/dist/workspace/sync.js +58 -0
  288. package/dist/workspace/sync.js.map +1 -0
  289. package/package.json +7 -1
  290. package/dist/drizzle/index.d.ts +0 -3
  291. package/dist/drizzle/index.d.ts.map +0 -1
  292. package/dist/drizzle/index.js +0 -3
  293. package/dist/drizzle/index.js.map +0 -1
  294. package/dist/resource/batch.d.ts +0 -17
  295. package/dist/resource/batch.d.ts.map +0 -1
  296. package/dist/resource/batch.js +0 -47
  297. package/dist/resource/batch.js.map +0 -1
  298. package/dist/resource/builder.d.ts +0 -11
  299. package/dist/resource/builder.d.ts.map +0 -1
  300. package/dist/resource/builder.js +0 -12
  301. package/dist/resource/builder.js.map +0 -1
  302. package/dist/resource/errors.d.ts +0 -7
  303. package/dist/resource/errors.d.ts.map +0 -1
  304. package/dist/resource/errors.js +0 -9
  305. package/dist/resource/errors.js.map +0 -1
  306. package/dist/resource/index.d.ts +0 -9
  307. package/dist/resource/index.d.ts.map +0 -1
  308. package/dist/resource/index.js +0 -6
  309. package/dist/resource/index.js.map +0 -1
  310. package/dist/resource/paginate.d.ts +0 -13
  311. package/dist/resource/paginate.d.ts.map +0 -1
  312. package/dist/resource/paginate.js +0 -29
  313. package/dist/resource/paginate.js.map +0 -1
  314. package/dist/resource/register.d.ts +0 -16
  315. package/dist/resource/register.d.ts.map +0 -1
  316. package/dist/resource/register.js +0 -181
  317. package/dist/resource/register.js.map +0 -1
  318. package/dist/resource/types.d.ts +0 -69
  319. package/dist/resource/types.d.ts.map +0 -1
  320. package/dist/trunk.d.ts +0 -35
  321. package/dist/trunk.d.ts.map +0 -1
  322. package/dist/trunk.js +0 -102
  323. package/dist/trunk.js.map +0 -1
  324. /package/dist/{resource → domain}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlB,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,oGAAoG;AACpG,eAAO,MAAM,MAAM;IACjB,4FAA4F;;IAE5F,0FAA0F;;IAE1F,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAElF,gFAAgF;;CAEjF,CAAA"}
@@ -1,9 +1,14 @@
1
1
  import { loadConfig, trunkConfigSchema, ConfigError } from './index.js';
2
2
  import { discoverInstance } from './discover.js';
3
+ /** Configuration namespace — loads and resolves Blueprint configs, discovers pipework.config.ts. */
3
4
  export const config = {
5
+ /** Parses and resolves a raw Blueprint into a ResolvedConfig with environment detection. */
4
6
  load: loadConfig,
7
+ /** Walks up from cwd to find pipework.config.ts, imports it, and returns the Manifold. */
5
8
  discover: discoverInstance,
9
+ /** The zod schema for Blueprint validation — useful for custom config tooling. */
6
10
  configSchema: trunkConfigSchema,
11
+ /** Thrown for configuration problems — includes a suggestion for how to fix. */
7
12
  ConfigError,
8
13
  };
9
14
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,iBAAiB;IAC/B,WAAW;CACZ,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/config/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,oGAAoG;AACpG,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,4FAA4F;IAC5F,IAAI,EAAE,UAAU;IAChB,0FAA0F;IAC1F,QAAQ,EAAE,gBAAgB;IAC1B,kFAAkF;IAClF,YAAY,EAAE,iBAAiB;IAC/B,gFAAgF;IAChF,WAAW;CACZ,CAAA"}
@@ -53,6 +53,8 @@ export declare const trunkConfigSchema: z.ZodObject<{
53
53
  idleTimeout: z.ZodOptional<z.ZodNumber>;
54
54
  }, z.core.$strip>>;
55
55
  }, z.core.$strip>>;
56
+ dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
57
+ modules: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
56
58
  environment: z.ZodOptional<z.ZodEnum<{
57
59
  development: "development";
58
60
  test: "test";
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,QAAA,MAAM,cAAc;;;;;;;;;;;iBAWlB,CAAA;AAEF,QAAA,MAAM,qBAAqB;;;;EAAmD,CAAA;AAE9E,QAAA,MAAM,UAAU;;;;;;;;;;;;;iBAKd,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;EAAgD,CAAA;AAEvE,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AASF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM5B,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAE1B,QAAA,MAAM,cAAc;;;;;;;;;;;iBAWlB,CAAA;AAEF,QAAA,MAAM,qBAAqB;;;;EAAmD,CAAA;AAE9E,QAAA,MAAM,UAAU;;;;;;;;;;;;;iBAKd,CAAA;AAEF,QAAA,MAAM,iBAAiB;;;;EAAgD,CAAA;AAEvE,QAAA,MAAM,mBAAmB;;;;iBAIvB,CAAA;AAcF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ5B,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -30,8 +30,14 @@ const envVarDefSchema = z.discriminatedUnion('type', [
30
30
  z.object({ type: z.literal('boolean'), required: z.boolean().optional(), default: z.boolean().optional(), sensitive: z.boolean().optional(), defaults: z.record(z.string(), z.string()).optional() }),
31
31
  z.object({ type: z.literal('string[]'), separator: z.string().optional(), required: z.boolean().optional(), default: z.array(z.string()).optional(), sensitive: z.boolean().optional(), defaults: z.record(z.string(), z.string()).optional() }),
32
32
  ]);
33
+ const modulesSchema = z.union([
34
+ z.string().describe('Glob pattern for module directories (e.g. "packages/*")'),
35
+ z.record(z.string(), z.string()).describe('Explicit map of module name → directory path'),
36
+ ]);
33
37
  export const trunkConfigSchema = z.object({
34
38
  databases: z.record(z.string(), databaseSchema),
39
+ dependencies: z.record(z.string(), z.string()).optional().describe('App-wide runtime dependencies (package name → version range)'),
40
+ modules: modulesSchema.optional().describe('Module directories — glob pattern or explicit map'),
35
41
  environment: environmentSchema.optional(),
36
42
  test: testSchema.optional(),
37
43
  observability: observabilitySchema.optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { DB } from '../db/index.js';
2
2
  import type { Manifold } from '../pipework.js';
3
+ /** A transaction bound to a specific context nonce and tenant — defense-in-depth against ALS context swaps. */
3
4
  export interface BoundTransaction {
4
5
  readonly drizzle: DB;
5
6
  readonly nonce: string;
6
7
  readonly tenant: string | null;
7
8
  }
9
+ /** The AsyncLocalStorage context — carries requestId, auth, tenant, active transactions, and a nonce for integrity checks. */
8
10
  export interface Flow<TAuth = unknown> {
9
11
  readonly instance: Manifold;
10
12
  readonly requestId: string;
@@ -15,6 +17,7 @@ export interface Flow<TAuth = unknown> {
15
17
  readonly jobType: string | null;
16
18
  readonly transactions: Map<string, BoundTransaction>;
17
19
  }
20
+ /** HTTP request metadata stored in a Flow — method, path, trace ID, session ID. */
18
21
  export interface RequestMetadata {
19
22
  readonly method: string;
20
23
  readonly path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,OAAO;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/context/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,+GAA+G;AAC/G,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,8HAA8H;AAC9H,MAAM,WAAW,IAAI,CAAC,KAAK,GAAG,OAAO;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACrD;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC"}
@@ -3,12 +3,35 @@ import { pipe as getDb } from './db.js';
3
3
  import { migrateAll, migrateOne } from '../migrate/index.js';
4
4
  import * as introspection from './generated/drizzle-orm/introspection.js';
5
5
  import * as relationOps from './generated/drizzle-orm/relation.js';
6
+ import { define, definitions } from '../domain/index.js';
6
7
  export type { DB, SQL, Table, Column } from './types.js';
8
+ /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
7
9
  export { filter } from './filter.js';
10
+ /** Database accessor — returns a Drizzle DB instance scoped to the current request/job/test context. Requires active AsyncLocalStorage context. */
8
11
  export declare const pipe: typeof getDb & {
12
+ /** SQL template tag for raw SQL expressions — pipe.sql\`NOW()\`. */
9
13
  sql: typeof sql;
14
+ /** Runs migrations for all configured databases. */
10
15
  migrate: typeof migrateAll;
16
+ /** Runs migrations for a single named database. */
11
17
  migrateOne: typeof migrateOne;
18
+ /** Field builders for domain definitions — uuid(), text(), integer(), etc. */
19
+ field: {
20
+ uuid(): import("../domain/types.js").FieldDescriptor<string> & import("../domain/field.js").FieldModifiers<string>;
21
+ text(): import("../domain/types.js").FieldDescriptor<string> & import("../domain/field.js").FieldModifiers<string>;
22
+ integer(): import("../domain/types.js").FieldDescriptor<number> & import("../domain/field.js").FieldModifiers<number>;
23
+ bigint(): import("../domain/types.js").FieldDescriptor<bigint> & import("../domain/field.js").FieldModifiers<bigint>;
24
+ boolean(): import("../domain/types.js").FieldDescriptor<boolean> & import("../domain/field.js").FieldModifiers<boolean>;
25
+ timestamp(): import("../domain/types.js").FieldDescriptor<Date> & import("../domain/field.js").FieldModifiers<Date>;
26
+ enum<const V extends readonly [string, ...string[]]>(values: V): import("../domain/types.js").FieldDescriptor<V[number]> & import("../domain/field.js").FieldModifiers<V[number]>;
27
+ jsonb<S extends import("zod").ZodType>(shape: S): import("../domain/types.js").FieldDescriptor<import("zod").infer<S>> & import("../domain/field.js").FieldModifiers<import("zod").infer<S>>;
28
+ decimal(): import("../domain/types.js").FieldDescriptor<string> & import("../domain/field.js").FieldModifiers<string>;
29
+ custom<S extends import("zod").ZodType>(column: unknown, validator: S): import("../domain/types.js").FieldDescriptor<import("zod").infer<S>> & import("../domain/field.js").FieldModifiers<import("zod").infer<S>>;
30
+ };
31
+ /** Registers a domain definition with table, validators, and factory projections. */
32
+ define: typeof define;
33
+ /** Returns the global registry of all domain definitions. */
34
+ definitions: typeof definitions;
12
35
  createMany: typeof relationOps.createMany;
13
36
  createOne: typeof relationOps.createOne;
14
37
  relations: typeof relationOps.relations;
@@ -19,7 +42,9 @@ export declare const pipe: typeof getDb & {
19
42
  getTableName: typeof introspection.getTableName;
20
43
  getViewName: typeof introspection.getViewName;
21
44
  getViewSelectedFields: typeof introspection.getViewSelectedFields;
45
+ /** Bypasses tenant scoping for admin/cross-tenant queries. Still requires ALS context. */
22
46
  unscoped: (name?: string) => import("drizzle-orm/postgres-js/driver").PostgresJsDatabase;
47
+ /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
23
48
  filter: {
24
49
  readonly except: import("drizzle-orm/pg-core").PgCreateSetOperatorFn;
25
50
  readonly exceptAll: import("drizzle-orm/pg-core").PgCreateSetOperatorFn;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAI5D,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAA;AAGlE,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBf,CAAA"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAI5D,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAA;AAGlE,OAAO,EAAS,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAG/D,YAAY,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExD,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,mJAAmJ;AACnJ,eAAO,MAAM,IAAI;IAaf,oEAAoE;;IAGpE,oDAAoD;;IAEpD,mDAAmD;;IAGnD,8EAA8E;;;;;;;;;;;;;IAE9E,qFAAqF;;IAErF,6DAA6D;;;;;;;;;;;;IAxB7D,0FAA0F;;IAG1F,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB7E,CAAA"}
@@ -5,20 +5,31 @@ import { filter } from './filter.js';
5
5
  // Auto-generated re-export layers (scaffold-namespace tool)
6
6
  import * as introspection from './generated/drizzle-orm/introspection.js';
7
7
  import * as relationOps from './generated/drizzle-orm/relation.js';
8
+ // Domain definitions
9
+ import { field, define, definitions } from '../domain/index.js';
10
+ /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
8
11
  export { filter } from './filter.js';
12
+ /** Database accessor — returns a Drizzle DB instance scoped to the current request/job/test context. Requires active AsyncLocalStorage context. */
9
13
  export const pipe = Object.assign(getDb, {
10
- // Escape hatch for admin/cross-tenant queries
14
+ /** Bypasses tenant scoping for admin/cross-tenant queries. Still requires ALS context. */
11
15
  unscoped: getDb.unscoped,
12
- // Query operators and aggregates (sub-namespace, also exported top-level)
16
+ /** Query operators and aggregates — eq, gt, lt, and, or, count, sum, etc. */
13
17
  filter,
14
- // Introspection (flat)
18
+ // Introspection — aliasedTable, aliasedRelation, getTableColumns, getTableName, getViewName, etc.
15
19
  ...introspection,
16
- // Relations
20
+ // Relations — relations(), createOne(), createMany()
17
21
  ...relationOps,
18
- // SQL template tag (manual wrapping potential for query analysis)
22
+ /** SQL template tag for raw SQL expressions pipe.sql\`NOW()\`. */
19
23
  sql,
20
- // Migration (already pipework-owned)
24
+ /** Runs migrations for all configured databases. */
21
25
  migrate: migrateAll,
26
+ /** Runs migrations for a single named database. */
22
27
  migrateOne,
28
+ /** Field builders for domain definitions — uuid(), text(), integer(), etc. */
29
+ field,
30
+ /** Registers a domain definition with table, validators, and factory projections. */
31
+ define,
32
+ /** Returns the global registry of all domain definitions. */
33
+ definitions,
23
34
  });
24
35
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,4DAA4D;AAC5D,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAA;AAKlE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,8CAA8C;IAC9C,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAExB,0EAA0E;IAC1E,MAAM;IAEN,uBAAuB;IACvB,GAAG,aAAa;IAEhB,YAAY;IACZ,GAAG,WAAW;IAEd,oEAAoE;IACpE,GAAG;IAEH,qCAAqC;IACrC,OAAO,EAAE,UAAU;IACnB,UAAU;CACX,CAAC,CAAA"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/db/namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,4DAA4D;AAC5D,OAAO,KAAK,aAAa,MAAM,0CAA0C,CAAA;AACzE,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAA;AAElE,qBAAqB;AACrB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAK/D,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,mJAAmJ;AACnJ,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;IACvC,0FAA0F;IAC1F,QAAQ,EAAE,KAAK,CAAC,QAAQ;IAExB,6EAA6E;IAC7E,MAAM;IAEN,kGAAkG;IAClG,GAAG,aAAa;IAEhB,qDAAqD;IACrD,GAAG,WAAW;IAEd,oEAAoE;IACpE,GAAG;IAEH,oDAAoD;IACpD,OAAO,EAAE,UAAU;IACnB,mDAAmD;IACnD,UAAU;IAEV,8EAA8E;IAC9E,KAAK;IACL,qFAAqF;IACrF,MAAM;IACN,6DAA6D;IAC7D,WAAW;CACZ,CAAC,CAAA"}
@@ -1,7 +1,11 @@
1
1
  import type { SQL as _SQL } from 'drizzle-orm';
2
2
  import type { PgTable, PgColumn } from 'drizzle-orm/pg-core';
3
+ /** Drizzle database instance — use pipe() to get one inside a managed context. */
3
4
  export type { PostgresJsDatabase as DB } from 'drizzle-orm/postgres-js';
5
+ /** SQL expression type — created by pipe.sql template tag or query operators. */
4
6
  export type SQL<T = unknown> = _SQL<T>;
7
+ /** Drizzle table definition type — created by schema.table(). */
5
8
  export type Table = PgTable;
9
+ /** Drizzle column type — created by schema.col.* builders. */
6
10
  export type Column = PgColumn;
7
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE5D,YAAY,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,yBAAyB,CAAA;AACvE,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AACtC,MAAM,MAAM,KAAK,GAAG,OAAO,CAAA;AAC3B,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE5D,kFAAkF;AAClF,YAAY,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,yBAAyB,CAAA;AACvE,iFAAiF;AACjF,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;AACtC,iEAAiE;AACjE,MAAM,MAAM,KAAK,GAAG,OAAO,CAAA;AAC3B,8DAA8D;AAC9D,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAA"}
@@ -1,17 +1,22 @@
1
1
  import type { Schema } from '../schema/types.js';
2
2
  import type { DB } from '../db/index.js';
3
3
  import type { BackoffConfig } from '../jobs/queue.js';
4
+ /** The default database name constant ('default') used when pipe() is called without a name argument. */
4
5
  export declare const DEFAULT_DB: "__pipework_default__";
6
+ /** Auth requirement level for a handler — 'required', 'optional', or 'public'. */
5
7
  export type AuthRequirement = 'required' | 'optional' | 'none';
8
+ /** Permission requirement attached to a handler — resource, action, scope. */
6
9
  export interface PermissionMeta {
7
10
  readonly resource: string;
8
11
  readonly action: string;
9
12
  readonly scope?: string;
10
13
  }
14
+ /** Retry configuration for job handlers — maxAttempts, backoff strategy, delay. */
11
15
  export interface JobRetryConfig {
12
16
  readonly attempts: number;
13
17
  readonly backoff?: BackoffConfig;
14
18
  }
19
+ /** Metadata attached to a handler — route info, auth requirements, input/output schemas, database names. */
15
20
  export interface HandlerMeta {
16
21
  readonly databases: readonly string[];
17
22
  readonly requiresAuth: boolean;
@@ -30,16 +35,22 @@ export interface HandlerMeta {
30
35
  readonly wantsResponse: boolean;
31
36
  readonly wantsRawBody: boolean;
32
37
  }
38
+ /** HTTP route metadata — method, path, and registered middleware. */
33
39
  export interface RouteMeta {
34
40
  readonly method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
35
41
  readonly path: string;
36
42
  }
43
+ /** HTTP method literal type — 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'. */
37
44
  export type HttpMethod = RouteMeta['method'];
45
+ /** A resolved handler produced by fitting().fit() — carries metadata, dependencies, and the handler function. */
38
46
  export interface Handler<TDeps extends Record<string, unknown>, TReturn> {
39
47
  execute(deps: TDeps): Promise<TReturn>;
40
48
  readonly meta: HandlerMeta;
41
49
  }
50
+ /** Extracts the dependency type from a Handler — InferDeps<typeof myHandler> gives you the deps object shape. */
42
51
  export type InferDeps<H> = H extends Handler<infer D, unknown> ? D : never;
52
+ /** Extracts the return type from a Handler — InferReturn<typeof myHandler> gives you the resolved return type. */
43
53
  export type InferReturn<H> = H extends Handler<Record<string, unknown>, infer R> ? R : never;
54
+ /** Map of database names to their resolved DB instances for a handler. */
44
55
  export type DatabaseDeps<N extends string> = Record<N, DB>;
45
56
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,eAAO,MAAM,UAAU,EAAG,sBAA+B,CAAA;AAEzD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CACjC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IACrC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAA;IAC1C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAE5C,MAAM,WAAW,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IACrE,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAC3B;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAC1E,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE5F,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"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"}
package/dist/di/types.js CHANGED
@@ -1,2 +1,3 @@
1
+ /** The default database name constant ('default') used when pipe() is called without a name argument. */
1
2
  export const DEFAULT_DB = '__pipework_default__';
2
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,UAAU,GAAG,sBAA+B,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAIA,yGAAyG;AACzG,MAAM,CAAC,MAAM,UAAU,GAAG,sBAA+B,CAAA"}
@@ -0,0 +1,19 @@
1
+ declare const __brand: unique symbol;
2
+ /** Phantom brand marker — attaches a nominal tag to a base type. */
3
+ export type Brand<B extends string> = {
4
+ readonly [__brand]: B;
5
+ };
6
+ /** Nominal type — `Branded<string, 'UserId'>` is not assignable to `Branded<string, 'PostId'>`. */
7
+ export type Branded<T, B extends string> = T & Brand<B>;
8
+ /** Extracts the phantom output type from a FieldDescriptor. */
9
+ export type InferFieldOutput<F> = F extends {
10
+ readonly _output?: infer O;
11
+ } ? O : unknown;
12
+ /** Projects field output types into a readonly record — used for DomainDefinition.Select. */
13
+ export type InferSelect<T extends Record<string, {
14
+ readonly _output?: unknown;
15
+ }>> = {
16
+ readonly [K in keyof T]: InferFieldOutput<T[K]>;
17
+ };
18
+ export {};
19
+ //# sourceMappingURL=brand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/domain/brand.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAA;AAEpC,oEAAoE;AACpE,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAA;AAE/D,mGAAmG;AACnG,MAAM,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;AAEvD,+DAA+D;AAC/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,OAAO,CAAA;AAExF,6FAA6F;AAC7F,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,IAAI;IAClF,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChD,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/domain/brand.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { FieldDescriptor, DefineOptions, DomainDefinition } from './types.js';
2
+ export declare function define<TFields extends Record<string, FieldDescriptor>>(name: string, fields: TFields, options?: DefineOptions): DomainDefinition<TFields>;
3
+ export declare function definitions(): ReadonlyMap<string, DomainDefinition>;
4
+ export declare function clearRegistry(): void;
5
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/domain/define.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAQlF,wBAAgB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACpE,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,aAAa,GACtB,gBAAgB,CAAC,OAAO,CAAC,CA8D3B;AAED,wBAAgB,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAEnE;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
@@ -0,0 +1,62 @@
1
+ import { projectTable } from './project-table.js';
2
+ import { projectInsertShape, projectSelectShape, projectUpdateShape } from './project-schema.js';
3
+ import { projectFactory } from './project-factory.js';
4
+ const registry = new Map();
5
+ export function define(name, fields, options) {
6
+ const opts = options ?? {};
7
+ let cachedTable;
8
+ let cachedInsertShape;
9
+ let cachedSelectShape;
10
+ let cachedUpdateShape;
11
+ const definition = {
12
+ name,
13
+ fields,
14
+ options: opts,
15
+ table() {
16
+ if (cachedTable === undefined) {
17
+ cachedTable = projectTable(name, fields, opts);
18
+ }
19
+ return cachedTable;
20
+ },
21
+ insertShape() {
22
+ if (cachedInsertShape === undefined) {
23
+ cachedInsertShape = projectInsertShape(fields);
24
+ }
25
+ return cachedInsertShape;
26
+ },
27
+ selectShape() {
28
+ if (cachedSelectShape === undefined) {
29
+ cachedSelectShape = projectSelectShape(fields);
30
+ }
31
+ return cachedSelectShape;
32
+ },
33
+ updateShape() {
34
+ if (cachedUpdateShape === undefined) {
35
+ cachedUpdateShape = projectUpdateShape(fields);
36
+ }
37
+ return cachedUpdateShape;
38
+ },
39
+ factory() {
40
+ return projectFactory(definition);
41
+ },
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- phantom type marker, never accessed at runtime
43
+ get Select() { return undefined; },
44
+ get Insert() { return undefined; },
45
+ get Update() { return undefined; },
46
+ };
47
+ if (registry.has(name)) {
48
+ throw new Error(`[pipework] Duplicate domain definition: "${name}" is already registered.\n\n` +
49
+ ' Each definition must have a unique name.\n' +
50
+ ` Existing: ${registry.get(name).options.virtual === true ? 'virtual' : 'database table'}\n` +
51
+ ` Duplicate: ${opts.virtual === true ? 'virtual' : 'database table'}\n`);
52
+ }
53
+ registry.set(name, definition);
54
+ return definition;
55
+ }
56
+ export function definitions() {
57
+ return registry;
58
+ }
59
+ export function clearRegistry() {
60
+ registry.clear();
61
+ }
62
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/domain/define.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;AAEpD,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,MAAe,EACf,OAAuB;IAEvB,MAAM,IAAI,GAAkB,OAAO,IAAI,EAAE,CAAA;IAEzC,IAAI,WAAoB,CAAA;IACxB,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAE5C,MAAM,UAAU,GAA8B;QAC5C,IAAI;QACJ,MAAM;QACN,OAAO,EAAE,IAAI;QAEb,KAAK;YACH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,WAAW,CAAA;QACpB,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAChD,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,OAAO;YACL,OAAO,cAAc,CAAC,UAAU,CAAC,CAAA;QACnC,CAAC;QAED,gHAAgH;QAChH,IAAI,MAAM,KAA2B,OAAO,SAAgB,CAAA,CAAC,CAAC;QAC9D,IAAI,MAAM,KAAc,OAAO,SAAS,CAAA,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAc,OAAO,SAAS,CAAA,CAAC,CAAC;KAC3C,CAAA;IAED,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,8BAA8B;YAC9E,8CAA8C;YAC9C,eAAe,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI;YAC9F,gBAAgB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CACzE,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC9B,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { z } from 'zod/v4';
2
+ import type { FieldDescriptor, DomainDefinition } from './types.js';
3
+ import type { Branded, InferFieldOutput } from './brand.js';
4
+ export interface FieldModifiers<TOutput = unknown> {
5
+ nullable(): FieldDescriptor<TOutput | null> & FieldModifiers<TOutput | null>;
6
+ default(value: unknown): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
7
+ primaryKey(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
8
+ defaultRandom(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
9
+ unique(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
10
+ readOnly(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
11
+ tenant(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
12
+ brand<B extends string>(name: B): FieldDescriptor<Branded<TOutput, B>> & FieldModifiers<Branded<TOutput, B>>;
13
+ references<TRefFields extends Record<string, FieldDescriptor>, TField extends string & keyof TRefFields>(definition: DomainDefinition<TRefFields>, field: TField): FieldDescriptor<InferFieldOutput<TRefFields[TField]>> & FieldModifiers<InferFieldOutput<TRefFields[TField]>>;
14
+ min(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
15
+ max(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
16
+ email(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
17
+ url(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
18
+ regex(pattern: RegExp): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
19
+ precision(p: number, s: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
20
+ serializedAs(format: 'string'): FieldDescriptor<string> & FieldModifiers<string>;
21
+ }
22
+ export declare const field: {
23
+ uuid(): FieldDescriptor<string> & FieldModifiers<string>;
24
+ text(): FieldDescriptor<string> & FieldModifiers<string>;
25
+ integer(): FieldDescriptor<number> & FieldModifiers<number>;
26
+ bigint(): FieldDescriptor<bigint> & FieldModifiers<bigint>;
27
+ boolean(): FieldDescriptor<boolean> & FieldModifiers<boolean>;
28
+ timestamp(): FieldDescriptor<Date> & FieldModifiers<Date>;
29
+ enum<const V extends readonly [string, ...string[]]>(values: V): FieldDescriptor<V[number]> & FieldModifiers<V[number]>;
30
+ jsonb<S extends z.ZodType>(shape: S): FieldDescriptor<z.infer<S>> & FieldModifiers<z.infer<S>>;
31
+ decimal(): FieldDescriptor<string> & FieldModifiers<string>;
32
+ custom<S extends z.ZodType>(column: unknown, validator: S): FieldDescriptor<z.infer<S>> & FieldModifiers<z.infer<S>>;
33
+ };
34
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ function createField(meta) {
2
+ const self = {
3
+ _meta: meta,
4
+ nullable() {
5
+ return createField({ ...meta, nullable: true });
6
+ },
7
+ default(value) {
8
+ return createField({ ...meta, hasDefault: true, defaultValue: value });
9
+ },
10
+ primaryKey() {
11
+ return createField({ ...meta, primaryKey: true });
12
+ },
13
+ defaultRandom() {
14
+ return createField({ ...meta, defaultRandom: true, hasDefault: true });
15
+ },
16
+ unique() {
17
+ return createField({ ...meta, unique: true });
18
+ },
19
+ readOnly() {
20
+ return createField({ ...meta, readOnly: true });
21
+ },
22
+ tenant() {
23
+ return createField({ ...meta, tenant: true });
24
+ },
25
+ brand(name) {
26
+ return createField({ ...meta, brand: name });
27
+ },
28
+ references(definition, fieldName) {
29
+ const referencedField = definition.fields[fieldName];
30
+ const inferredBrand = referencedField?._meta.brand;
31
+ return createField({
32
+ ...meta,
33
+ reference: { definition, field: fieldName },
34
+ ...(inferredBrand !== undefined && meta.brand === undefined ? { brand: inferredBrand } : {}),
35
+ });
36
+ },
37
+ min(value) {
38
+ return createField({ ...meta, min: value });
39
+ },
40
+ max(value) {
41
+ return createField({ ...meta, max: value });
42
+ },
43
+ email() {
44
+ return createField({ ...meta, email: true });
45
+ },
46
+ url() {
47
+ return createField({ ...meta, url: true });
48
+ },
49
+ regex(pattern) {
50
+ return createField({ ...meta, regex: pattern });
51
+ },
52
+ precision(p, s) {
53
+ return createField({ ...meta, precision: { p, s } });
54
+ },
55
+ serializedAs(_format) {
56
+ return createField({ ...meta, serializedAs: _format });
57
+ },
58
+ };
59
+ return self;
60
+ }
61
+ function baseMeta(kind) {
62
+ return {
63
+ kind,
64
+ nullable: false,
65
+ hasDefault: false,
66
+ primaryKey: false,
67
+ defaultRandom: false,
68
+ unique: false,
69
+ readOnly: false,
70
+ tenant: false,
71
+ email: false,
72
+ url: false,
73
+ };
74
+ }
75
+ export const field = {
76
+ uuid() {
77
+ return createField(baseMeta('uuid'));
78
+ },
79
+ text() {
80
+ return createField(baseMeta('text'));
81
+ },
82
+ integer() {
83
+ return createField(baseMeta('integer'));
84
+ },
85
+ bigint() {
86
+ return createField(baseMeta('bigint'));
87
+ },
88
+ boolean() {
89
+ return createField(baseMeta('boolean'));
90
+ },
91
+ timestamp() {
92
+ return createField(baseMeta('timestamp'));
93
+ },
94
+ enum(values) {
95
+ return createField({ ...baseMeta('enum'), enumValues: values });
96
+ },
97
+ jsonb(shape) {
98
+ return createField({ ...baseMeta('jsonb'), jsonbShape: shape });
99
+ },
100
+ decimal() {
101
+ return createField(baseMeta('decimal'));
102
+ },
103
+ custom(column, validator) {
104
+ return createField({
105
+ ...baseMeta('custom'),
106
+ customColumn: column,
107
+ customValidator: validator,
108
+ });
109
+ },
110
+ };
111
+ //# sourceMappingURL=field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { field, type FieldModifiers } from './field.js';
2
+ export { define, definitions, clearRegistry } from './define.js';
3
+ export { camelToSnake } from './naming.js';
4
+ export { resetFactoryCounter } from './project-factory.js';
5
+ export type { Branded, Brand, InferSelect, InferFieldOutput } from './brand.js';
6
+ export type { FieldDescriptor, FieldMeta, DomainDefinition, DefineOptions, FactoryBuilder, FactoryOptions } from './types.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { field } from './field.js';
2
+ export { define, definitions, clearRegistry } from './define.js';
3
+ export { camelToSnake } from './naming.js';
4
+ export { resetFactoryCounter } from './project-factory.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuB,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function camelToSnake(str: string): string;
2
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/domain/naming.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}