pipework 0.5.0 → 0.6.1

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 (152) hide show
  1. package/dist/cli/commands/add.js +2 -2
  2. package/dist/cli/commands/add.js.map +1 -1
  3. package/dist/cli/commands/install.d.ts.map +1 -1
  4. package/dist/cli/commands/install.js +1 -2
  5. package/dist/cli/commands/install.js.map +1 -1
  6. package/dist/cli/commands/remove.js +2 -2
  7. package/dist/cli/commands/remove.js.map +1 -1
  8. package/dist/cli/commands/shared/load-config.d.ts +1 -5
  9. package/dist/cli/commands/shared/load-config.d.ts.map +1 -1
  10. package/dist/cli/commands/shared/load-config.js +2 -7
  11. package/dist/cli/commands/shared/load-config.js.map +1 -1
  12. package/dist/cli/commands/sync.d.ts.map +1 -1
  13. package/dist/cli/commands/sync.js +1 -2
  14. package/dist/cli/commands/sync.js.map +1 -1
  15. package/dist/config/index.d.ts +1 -1
  16. package/dist/config/index.d.ts.map +1 -1
  17. package/dist/config/index.js.map +1 -1
  18. package/dist/config/load.d.ts +3 -0
  19. package/dist/config/load.d.ts.map +1 -1
  20. package/dist/config/load.js +1 -0
  21. package/dist/config/load.js.map +1 -1
  22. package/dist/config/namespace.d.ts +18 -1
  23. package/dist/config/namespace.d.ts.map +1 -1
  24. package/dist/config/schema.d.ts +35 -1
  25. package/dist/config/schema.d.ts.map +1 -1
  26. package/dist/config/schema.js +27 -5
  27. package/dist/config/schema.js.map +1 -1
  28. package/dist/db/generated/drizzle-orm/introspection.d.ts +1 -1
  29. package/dist/db/generated/drizzle-orm/introspection.d.ts.map +1 -1
  30. package/dist/db/generated/drizzle-orm/introspection.js +1 -1
  31. package/dist/db/generated/drizzle-orm/introspection.js.map +1 -1
  32. package/dist/db/namespace.d.ts +1 -0
  33. package/dist/db/namespace.d.ts.map +1 -1
  34. package/dist/domain/define.d.ts +3 -3
  35. package/dist/domain/define.d.ts.map +1 -1
  36. package/dist/domain/define.js +99 -17
  37. package/dist/domain/define.js.map +1 -1
  38. package/dist/domain/field.d.ts +2 -2
  39. package/dist/domain/field.d.ts.map +1 -1
  40. package/dist/domain/field.js +2 -1
  41. package/dist/domain/field.js.map +1 -1
  42. package/dist/domain/index.d.ts +2 -1
  43. package/dist/domain/index.d.ts.map +1 -1
  44. package/dist/domain/index.js +1 -0
  45. package/dist/domain/index.js.map +1 -1
  46. package/dist/domain/project-factory.d.ts +2 -2
  47. package/dist/domain/project-factory.d.ts.map +1 -1
  48. package/dist/domain/project-factory.js +3 -3
  49. package/dist/domain/project-factory.js.map +1 -1
  50. package/dist/domain/project-schema.d.ts.map +1 -1
  51. package/dist/domain/project-schema.js +4 -0
  52. package/dist/domain/project-schema.js.map +1 -1
  53. package/dist/domain/project-table.d.ts.map +1 -1
  54. package/dist/domain/project-table.js +40 -42
  55. package/dist/domain/project-table.js.map +1 -1
  56. package/dist/domain/traits.d.ts +9 -0
  57. package/dist/domain/traits.d.ts.map +1 -0
  58. package/dist/domain/traits.js +48 -0
  59. package/dist/domain/traits.js.map +1 -0
  60. package/dist/domain/types.d.ts +40 -7
  61. package/dist/domain/types.d.ts.map +1 -1
  62. package/dist/drizzle/index.d.ts +3 -0
  63. package/dist/drizzle/index.d.ts.map +1 -0
  64. package/dist/drizzle/index.js +3 -0
  65. package/dist/drizzle/index.js.map +1 -0
  66. package/dist/index.d.ts +3 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/migrate/generate.d.ts.map +1 -1
  70. package/dist/migrate/generate.js +8 -1
  71. package/dist/migrate/generate.js.map +1 -1
  72. package/dist/migrate/index.d.ts +2 -0
  73. package/dist/migrate/index.d.ts.map +1 -1
  74. package/dist/migrate/index.js +2 -0
  75. package/dist/migrate/index.js.map +1 -1
  76. package/dist/migrate/post-process.d.ts +9 -0
  77. package/dist/migrate/post-process.d.ts.map +1 -0
  78. package/dist/migrate/post-process.js +60 -0
  79. package/dist/migrate/post-process.js.map +1 -0
  80. package/dist/migrate/rls-generate.d.ts +3 -0
  81. package/dist/migrate/rls-generate.d.ts.map +1 -0
  82. package/dist/migrate/rls-generate.js +28 -0
  83. package/dist/migrate/rls-generate.js.map +1 -0
  84. package/dist/resource/batch.d.ts +17 -0
  85. package/dist/resource/batch.d.ts.map +1 -0
  86. package/dist/resource/batch.js +47 -0
  87. package/dist/resource/batch.js.map +1 -0
  88. package/dist/resource/builder.d.ts +11 -0
  89. package/dist/resource/builder.d.ts.map +1 -0
  90. package/dist/resource/builder.js +12 -0
  91. package/dist/resource/builder.js.map +1 -0
  92. package/dist/resource/errors.d.ts +7 -0
  93. package/dist/resource/errors.d.ts.map +1 -0
  94. package/dist/resource/errors.js +9 -0
  95. package/dist/resource/errors.js.map +1 -0
  96. package/dist/resource/index.d.ts +9 -0
  97. package/dist/resource/index.d.ts.map +1 -0
  98. package/dist/resource/index.js +6 -0
  99. package/dist/resource/index.js.map +1 -0
  100. package/dist/resource/paginate.d.ts +13 -0
  101. package/dist/resource/paginate.d.ts.map +1 -0
  102. package/dist/resource/paginate.js +29 -0
  103. package/dist/resource/paginate.js.map +1 -0
  104. package/dist/resource/register.d.ts +16 -0
  105. package/dist/resource/register.d.ts.map +1 -0
  106. package/dist/resource/register.js +181 -0
  107. package/dist/resource/register.js.map +1 -0
  108. package/dist/resource/types.d.ts +69 -0
  109. package/dist/resource/types.d.ts.map +1 -0
  110. package/dist/resource/types.js +2 -0
  111. package/dist/resource/types.js.map +1 -0
  112. package/dist/temporal/definition-queries.d.ts +14 -0
  113. package/dist/temporal/definition-queries.d.ts.map +1 -0
  114. package/dist/temporal/definition-queries.js +45 -0
  115. package/dist/temporal/definition-queries.js.map +1 -0
  116. package/dist/temporal/index.d.ts +1 -0
  117. package/dist/temporal/index.d.ts.map +1 -1
  118. package/dist/temporal/index.js +1 -0
  119. package/dist/temporal/index.js.map +1 -1
  120. package/dist/temporal/namespace.d.ts +7 -0
  121. package/dist/temporal/namespace.d.ts.map +1 -1
  122. package/dist/temporal/namespace.js +7 -0
  123. package/dist/temporal/namespace.js.map +1 -1
  124. package/dist/tenant/rls.d.ts +1 -1
  125. package/dist/tenant/rls.d.ts.map +1 -1
  126. package/dist/tenant/rls.js +4 -2
  127. package/dist/tenant/rls.js.map +1 -1
  128. package/dist/trunk.d.ts +35 -0
  129. package/dist/trunk.d.ts.map +1 -0
  130. package/dist/trunk.js +102 -0
  131. package/dist/trunk.js.map +1 -0
  132. package/dist/validation/domain.d.ts +2 -2
  133. package/dist/validation/domain.d.ts.map +1 -1
  134. package/dist/validation/domain.js +10 -10
  135. package/dist/validation/domain.js.map +1 -1
  136. package/dist/workspace/discover.d.ts +6 -4
  137. package/dist/workspace/discover.d.ts.map +1 -1
  138. package/dist/workspace/discover.js +58 -12
  139. package/dist/workspace/discover.js.map +1 -1
  140. package/dist/workspace/generate.d.ts +5 -8
  141. package/dist/workspace/generate.d.ts.map +1 -1
  142. package/dist/workspace/generate.js +101 -43
  143. package/dist/workspace/generate.js.map +1 -1
  144. package/dist/workspace/index.d.ts +2 -2
  145. package/dist/workspace/index.d.ts.map +1 -1
  146. package/dist/workspace/index.js +1 -1
  147. package/dist/workspace/index.js.map +1 -1
  148. package/dist/workspace/sync.d.ts +1 -5
  149. package/dist/workspace/sync.d.ts.map +1 -1
  150. package/dist/workspace/sync.js +4 -10
  151. package/dist/workspace/sync.js.map +1 -1
  152. package/package.json +1 -1
@@ -1,22 +1,93 @@
1
1
  import { projectTable } from './project-table.js';
2
2
  import { projectInsertShape, projectSelectShape, projectUpdateShape } from './project-schema.js';
3
3
  import { projectFactory } from './project-factory.js';
4
+ import { applyTrait, effectiveDatedTrait, auditedTrait, softDeletedTrait } from './traits.js';
4
5
  const registry = new Map();
5
- export function define(name, fields, options) {
6
- const opts = options ?? {};
7
- let cachedTable;
6
+ export function define(name, initialFields, options) {
7
+ if (registry.has(name)) {
8
+ throw new Error(`[pipework] Duplicate domain definition: "${name}" is already registered.\n\n` +
9
+ ' Each definition must have a unique name.\n' +
10
+ ` Existing: ${registry.get(name).$options.virtual === true ? 'virtual' : 'database table'}\n` +
11
+ ` Duplicate: ${options?.virtual === true ? 'virtual' : 'database table'}\n`);
12
+ }
13
+ const result = buildDefinedTable(name, initialFields, options ?? {}, []);
14
+ registry.set(name, result);
15
+ return result;
16
+ }
17
+ function buildDefinedTable(name, fields, opts, traits) {
18
+ if (opts.virtual === true) {
19
+ return buildVirtualDefinition(name, fields, opts, traits);
20
+ }
21
+ const table = projectTable(name, fields, opts);
22
+ let cachedInsertShape;
23
+ let cachedSelectShape;
24
+ let cachedUpdateShape;
25
+ const methods = {
26
+ $name: name,
27
+ get $fields() { return fields; },
28
+ $options: opts,
29
+ get $traits() { return traits; },
30
+ table() { return table; },
31
+ insertShape() {
32
+ if (cachedInsertShape === undefined) {
33
+ cachedInsertShape = projectInsertShape(fields);
34
+ }
35
+ return cachedInsertShape;
36
+ },
37
+ selectShape() {
38
+ if (cachedSelectShape === undefined) {
39
+ cachedSelectShape = projectSelectShape(fields);
40
+ }
41
+ return cachedSelectShape;
42
+ },
43
+ updateShape() {
44
+ if (cachedUpdateShape === undefined) {
45
+ cachedUpdateShape = projectUpdateShape(fields);
46
+ }
47
+ return cachedUpdateShape;
48
+ },
49
+ factory() {
50
+ return projectFactory(result);
51
+ },
52
+ effectiveDated() {
53
+ const applied = applyTrait(name, fields, traits, effectiveDatedTrait);
54
+ const rebuilt = buildDefinedTable(name, applied.fields, opts, applied.traits);
55
+ registry.set(name, rebuilt);
56
+ return rebuilt;
57
+ },
58
+ audited() {
59
+ const applied = applyTrait(name, fields, traits, auditedTrait);
60
+ const rebuilt = buildDefinedTable(name, applied.fields, opts, applied.traits);
61
+ registry.set(name, rebuilt);
62
+ return rebuilt;
63
+ },
64
+ softDeleted() {
65
+ const applied = applyTrait(name, fields, traits, softDeletedTrait);
66
+ const rebuilt = buildDefinedTable(name, applied.fields, opts, applied.traits);
67
+ registry.set(name, rebuilt);
68
+ return rebuilt;
69
+ },
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- phantom type marker, never accessed at runtime
71
+ get Select() { return undefined; },
72
+ get Insert() { return undefined; },
73
+ get Update() { return undefined; },
74
+ };
75
+ const result = Object.assign(table, methods);
76
+ return result;
77
+ }
78
+ function buildVirtualDefinition(name, fields, opts, traits) {
8
79
  let cachedInsertShape;
9
80
  let cachedSelectShape;
10
81
  let cachedUpdateShape;
11
82
  const definition = {
12
- name,
13
- fields,
14
- options: opts,
83
+ $name: name,
84
+ get $fields() { return fields; },
85
+ $options: opts,
86
+ get $traits() { return traits; },
15
87
  table() {
16
- if (cachedTable === undefined) {
17
- cachedTable = projectTable(name, fields, opts);
18
- }
19
- return cachedTable;
88
+ throw new Error(`[pipework] "${name}" is a virtual definition — no database table.\n\n` +
89
+ ' Virtual definitions have no .table() projection.\n' +
90
+ ' Remove { virtual: true } if this definition needs a database table.\n');
20
91
  },
21
92
  insertShape() {
22
93
  if (cachedInsertShape === undefined) {
@@ -39,18 +110,29 @@ export function define(name, fields, options) {
39
110
  factory() {
40
111
  return projectFactory(definition);
41
112
  },
113
+ effectiveDated() {
114
+ const applied = applyTrait(name, fields, traits, effectiveDatedTrait);
115
+ const rebuilt = buildVirtualDefinition(name, applied.fields, opts, applied.traits);
116
+ registry.set(name, rebuilt);
117
+ return rebuilt;
118
+ },
119
+ audited() {
120
+ const applied = applyTrait(name, fields, traits, auditedTrait);
121
+ const rebuilt = buildVirtualDefinition(name, applied.fields, opts, applied.traits);
122
+ registry.set(name, rebuilt);
123
+ return rebuilt;
124
+ },
125
+ softDeleted() {
126
+ const applied = applyTrait(name, fields, traits, softDeletedTrait);
127
+ const rebuilt = buildVirtualDefinition(name, applied.fields, opts, applied.traits);
128
+ registry.set(name, rebuilt);
129
+ return rebuilt;
130
+ },
42
131
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- phantom type marker, never accessed at runtime
43
132
  get Select() { return undefined; },
44
133
  get Insert() { return undefined; },
45
134
  get Update() { return undefined; },
46
135
  };
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
136
  return definition;
55
137
  }
56
138
  export function definitions() {
@@ -1 +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"}
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;AACrD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE7F,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAA;AAEhD,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,aAAsB,EACtB,OAAuB;IAEvB,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,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI;YAC/F,gBAAgB,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAC7E,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAY,EACZ,MAAe,EACf,IAAmB,EACnB,MAAgB;IAEhB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAyC,EAAE,IAAI,CAAC,CAAA;IAEjF,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAE5C,MAAM,OAAO,GAA+B;QAC1C,KAAK,EAAE,IAAI;QACX,IAAI,OAAO,KAAK,OAAO,MAAM,CAAA,CAAC,CAAC;QAC/B,QAAQ,EAAE,IAAI;QACd,IAAI,OAAO,KAAK,OAAO,MAA2B,CAAA,CAAC,CAAC;QAEpD,KAAK,KAAK,OAAO,KAAK,CAAA,CAAC,CAAC;QAExB,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,OAAO;YACL,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;QAED,cAAc;YACZ,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;YACxG,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACxF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO;YACL,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;YACjG,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACxF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,WAAW;YACT,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACrG,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YACxF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAChB,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,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAqC,CAAA;IAChF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAY,EACZ,MAAe,EACf,IAAmB,EACnB,MAAgB;IAEhB,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAC5C,IAAI,iBAAwC,CAAA;IAE5C,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,OAAO,KAAK,OAAO,MAAM,CAAA,CAAC,CAAC;QAC/B,QAAQ,EAAE,IAAI;QACd,IAAI,OAAO,KAAK,OAAO,MAA2B,CAAA,CAAC,CAAC;QAEpD,KAAK;YACH,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,oDAAoD;gBACvE,sDAAsD;gBACtD,yEAAyE,CAC1E,CAAA;QACH,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,WAAW;YACT,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBACpC,iBAAiB,GAAG,kBAAkB,CAAC,MAAyC,CAAC,CAAA;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAA;QAC1B,CAAC;QAED,OAAO;YACL,OAAO,cAAc,CAAC,UAAqC,CAAC,CAAA;QAC9D,CAAC;QAED,cAAc;YACZ,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAA;YACxG,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAA;YACtD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO;YACL,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;YACjG,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAA;YACtD,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,WAAW;YACT,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,MAAyC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAA;YACrG,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7F,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAA;YACtD,OAAO,OAAO,CAAA;QAChB,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,OAAO,UAA8C,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { z } from 'zod/v4';
2
- import type { FieldDescriptor, DomainDefinition } from './types.js';
2
+ import type { FieldDescriptor, DefinedTable } from './types.js';
3
3
  import type { Branded, InferFieldOutput } from './brand.js';
4
4
  export interface FieldModifiers<TOutput = unknown> {
5
5
  nullable(): FieldDescriptor<TOutput | null> & FieldModifiers<TOutput | null>;
@@ -10,7 +10,7 @@ export interface FieldModifiers<TOutput = unknown> {
10
10
  readOnly(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
11
11
  tenant(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
12
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]>>;
13
+ references<TRefFields extends Record<string, FieldDescriptor>, TField extends string & keyof TRefFields>(definition: DefinedTable<TRefFields>, field: TField): FieldDescriptor<InferFieldOutput<TRefFields[TField]>> & FieldModifiers<InferFieldOutput<TRefFields[TField]>>;
14
14
  min(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
15
15
  max(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
16
16
  email(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ function createField(meta) {
26
26
  return createField({ ...meta, brand: name });
27
27
  },
28
28
  references(definition, fieldName) {
29
- const referencedField = definition.fields[fieldName];
29
+ const referencedField = definition.$fields[fieldName];
30
30
  const inferredBrand = referencedField?._meta.brand;
31
31
  return createField({
32
32
  ...meta,
@@ -68,6 +68,7 @@ function baseMeta(kind) {
68
68
  unique: false,
69
69
  readOnly: false,
70
70
  tenant: false,
71
+ autoManaged: false,
71
72
  email: false,
72
73
  url: false,
73
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/domain/field.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export { field, type FieldModifiers } from './field.js';
2
2
  export { define, definitions, clearRegistry } from './define.js';
3
3
  export { camelToSnake } from './naming.js';
4
4
  export { resetFactoryCounter } from './project-factory.js';
5
+ export { effectiveDatedTrait, auditedTrait, softDeletedTrait } from './traits.js';
5
6
  export type { Branded, Brand, InferSelect, InferFieldOutput } from './brand.js';
6
- export type { FieldDescriptor, FieldMeta, DomainDefinition, DefineOptions, FactoryBuilder, FactoryOptions } from './types.js';
7
+ export type { FieldDescriptor, FieldMeta, DomainDefinition, DefinedTable, DefinitionMethods, DefineOptions, FactoryBuilder, FactoryOptions, TraitDefinition, FieldColumn, ProjectedColumns } from './types.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACjF,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EACzF,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAC9D,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
@@ -2,4 +2,5 @@ export { field } from './field.js';
2
2
  export { define, definitions, clearRegistry } from './define.js';
3
3
  export { camelToSnake } from './naming.js';
4
4
  export { resetFactoryCounter } from './project-factory.js';
5
+ export { effectiveDatedTrait, auditedTrait, softDeletedTrait } from './traits.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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;AAC1D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { DomainDefinition, FactoryBuilder } from './types.js';
2
- export declare function projectFactory(definition: DomainDefinition): FactoryBuilder;
1
+ import type { DefinedTable, FactoryBuilder } from './types.js';
2
+ export declare function projectFactory(definition: DefinedTable): FactoryBuilder;
3
3
  export declare function resetFactoryCounter(): void;
4
4
  //# sourceMappingURL=project-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-factory.d.ts","sourceRoot":"","sources":["../../src/domain/project-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAA6B,MAAM,YAAY,CAAA;AAG7F,wBAAgB,cAAc,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAyB3E;AA0ED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"project-factory.d.ts","sourceRoot":"","sources":["../../src/domain/project-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAA6B,MAAM,YAAY,CAAA;AAGzF,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,GAAG,cAAc,CAyBvE;AA0ED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -4,7 +4,7 @@ export function projectFactory(definition) {
4
4
  return {
5
5
  async create(overrides, options) {
6
6
  const values = await buildValues(definition, overrides ?? {}, options);
7
- if (definition.options.virtual === true) {
7
+ if (definition.$options.virtual === true) {
8
8
  return values;
9
9
  }
10
10
  const db = resolveDb(definition, options);
@@ -33,7 +33,7 @@ function resolveDb(definition, options) {
33
33
  ' In a test body: ensure you have test isolation set up (pipework wraps each test in a flow context).\n' +
34
34
  ' In beforeAll: pass { db: useSetupDb() } as the options argument.\n');
35
35
  }
36
- const dbName = definition.options.database ?? ctx.instance.config.defaultDatabaseName();
36
+ const dbName = definition.$options.database ?? ctx.instance.config.defaultDatabaseName();
37
37
  const dbConfig = ctx.instance.config.database(dbName);
38
38
  const bound = ctx.transactions.get(dbName);
39
39
  if (bound !== undefined) {
@@ -43,7 +43,7 @@ function resolveDb(definition, options) {
43
43
  }
44
44
  async function buildValues(definition, overrides, options) {
45
45
  const values = {};
46
- for (const [key, descriptor] of Object.entries(definition.fields)) {
46
+ for (const [key, descriptor] of Object.entries(definition.$fields)) {
47
47
  const meta = descriptor._meta;
48
48
  if (key in overrides) {
49
49
  values[key] = overrides[key];
@@ -1 +1 @@
1
- {"version":3,"file":"project-factory.js","sourceRoot":"","sources":["../../src/domain/project-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-factory.js","sourceRoot":"","sources":["../../src/domain/project-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-schema.d.ts","sourceRoot":"","sources":["../../src/domain/project-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,YAAY,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAkBrF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAerF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAmBrF"}
1
+ {"version":3,"file":"project-schema.d.ts","sourceRoot":"","sources":["../../src/domain/project-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAa,MAAM,YAAY,CAAA;AAE5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAmBrF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAerF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAoBrF"}
@@ -5,6 +5,8 @@ export function projectInsertShape(fields) {
5
5
  const meta = descriptor._meta;
6
6
  if (meta.primaryKey && meta.defaultRandom)
7
7
  continue;
8
+ if (meta.autoManaged)
9
+ continue;
8
10
  let validator = buildValidator(meta);
9
11
  if (meta.nullable || meta.hasDefault) {
10
12
  validator = validator.optional();
@@ -33,6 +35,8 @@ export function projectUpdateShape(fields) {
33
35
  continue;
34
36
  if (meta.readOnly)
35
37
  continue;
38
+ if (meta.autoManaged)
39
+ continue;
36
40
  let validator = buildValidator(meta);
37
41
  if (meta.nullable) {
38
42
  validator = validator.nullable();
@@ -1 +1 @@
1
- {"version":3,"file":"project-schema.js","sourceRoot":"","sources":["../../src/domain/project-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-schema.js","sourceRoot":"","sources":["../../src/domain/project-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-table.d.ts","sourceRoot":"","sources":["../../src/domain/project-table.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAE,MAAM,YAAY,CAAA;AAG3E,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEvB"}
1
+ {"version":3,"file":"project-table.d.ts","sourceRoot":"","sources":["../../src/domain/project-table.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAE,MAAM,YAAY,CAAA;AAG3E,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEvB"}
@@ -8,51 +8,49 @@ export function projectTable(tableName, fields, options) {
8
8
  ' Remove { virtual: true } if this definition needs a database table.\n');
9
9
  }
10
10
  /* eslint-disable @typescript-eslint/no-explicit-any -- Drizzle pgTable callback requires untyped column builders */
11
- return pgTable(tableName, (_t) => {
12
- const columns = {};
13
- const checks = [];
14
- for (const [key, descriptor] of Object.entries(fields)) {
15
- const meta = descriptor._meta;
16
- const colName = camelToSnake(key);
17
- let col = buildColumn(colName, meta);
18
- if (!meta.nullable) {
19
- col = col.notNull();
20
- }
21
- if (meta.primaryKey) {
22
- col = col.primaryKey();
23
- }
24
- if (meta.unique) {
25
- col = col.unique();
26
- }
27
- if (meta.defaultRandom && meta.kind === 'uuid') {
28
- col = col.defaultRandom();
29
- }
30
- else if (meta.hasDefault && meta.defaultValue === 'now' && meta.kind === 'timestamp') {
31
- col = col.defaultNow();
32
- }
33
- else if (meta.hasDefault && meta.defaultValue !== undefined) {
34
- col = col.default(meta.defaultValue);
35
- }
36
- if (meta.reference !== undefined) {
37
- const refTable = meta.reference.definition.table();
38
- const refColName = camelToSnake(meta.reference.field);
39
- col = col.references(() => refTable[refColName]);
40
- }
41
- columns[key] = col;
42
- buildChecks(colName, meta, checks);
11
+ const columns = {};
12
+ const extraConfig = [];
13
+ for (const [key, descriptor] of Object.entries(fields)) {
14
+ const meta = descriptor._meta;
15
+ const colName = camelToSnake(key);
16
+ let col = buildColumn(colName, meta);
17
+ if (!meta.nullable) {
18
+ col = col.notNull();
43
19
  }
44
- const result = { ...columns };
45
- for (let i = 0; i < checks.length; i++) {
46
- result[`__check_${i}`] = checks[i];
20
+ if (meta.primaryKey) {
21
+ col = col.primaryKey();
47
22
  }
48
- if (options.indexes !== undefined) {
49
- const indexes = options.indexes(columns);
50
- for (const [name, idx] of Object.entries(indexes)) {
51
- result[name] = idx;
52
- }
23
+ if (meta.unique) {
24
+ col = col.unique();
53
25
  }
54
- return result;
55
- });
26
+ if (meta.defaultRandom && meta.kind === 'uuid') {
27
+ col = col.defaultRandom();
28
+ }
29
+ else if (meta.hasDefault && meta.defaultValue === 'now' && meta.kind === 'timestamp') {
30
+ col = col.defaultNow();
31
+ }
32
+ else if (meta.hasDefault && meta.defaultValue !== undefined) {
33
+ col = col.default(meta.defaultValue);
34
+ }
35
+ if (meta.reference !== undefined) {
36
+ const refTable = meta.reference.definition.table();
37
+ const refColName = camelToSnake(meta.reference.field);
38
+ col = col.references(() => refTable[refColName]);
39
+ }
40
+ columns[key] = col;
41
+ buildChecks(colName, meta, extraConfig);
42
+ }
43
+ if (options.indexes !== undefined) {
44
+ const builtCols = { ...columns };
45
+ const indexes = options.indexes(builtCols);
46
+ for (const [, idx] of Object.entries(indexes)) {
47
+ extraConfig.push(idx);
48
+ }
49
+ }
50
+ if (extraConfig.length > 0) {
51
+ return pgTable(tableName, columns, () => extraConfig);
52
+ }
53
+ return pgTable(tableName, columns);
56
54
  /* eslint-enable @typescript-eslint/no-explicit-any */
57
55
  }
58
56
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle column builders have deeply generic types
@@ -1 +1 @@
1
- {"version":3,"file":"project-table.js","sourceRoot":"","sources":["../../src/domain/project-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-table.js","sourceRoot":"","sources":["../../src/domain/project-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FieldDescriptor, TraitDefinition } from './types.js';
2
+ export declare const effectiveDatedTrait: TraitDefinition;
3
+ export declare const auditedTrait: TraitDefinition;
4
+ export declare const softDeletedTrait: TraitDefinition;
5
+ export declare function applyTrait(definitionName: string, existingFields: Record<string, FieldDescriptor>, existingTraits: string[], trait: TraitDefinition): {
6
+ fields: Record<string, FieldDescriptor>;
7
+ traits: string[];
8
+ };
9
+ //# sourceMappingURL=traits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../../src/domain/traits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAUlE,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,eAQ1B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,eAM9B,CAAA;AAED,wBAAgB,UAAU,CACxB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC/C,cAAc,EAAE,MAAM,EAAE,EACxB,KAAK,EAAE,eAAe,GACrB;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB/D"}
@@ -0,0 +1,48 @@
1
+ import { field } from './field.js';
2
+ function autoManaged(f) {
3
+ return { _meta: { ...f._meta, autoManaged: true } };
4
+ }
5
+ function autoManagedReadOnly(f) {
6
+ return { _meta: { ...f._meta, autoManaged: true, readOnly: true } };
7
+ }
8
+ export const effectiveDatedTrait = {
9
+ name: 'effectiveDated',
10
+ fields: {
11
+ effectiveFrom: autoManaged(field.timestamp().default('now')),
12
+ effectiveTo: autoManaged(field.timestamp().nullable()),
13
+ version: autoManaged(field.integer().default(1)),
14
+ },
15
+ };
16
+ export const auditedTrait = {
17
+ name: 'audited',
18
+ fields: {
19
+ createdAt: autoManagedReadOnly(field.timestamp().default('now')),
20
+ updatedAt: autoManaged(field.timestamp().default('now')),
21
+ createdBy: autoManagedReadOnly(field.text().nullable()),
22
+ updatedBy: autoManaged(field.text().nullable()),
23
+ },
24
+ };
25
+ export const softDeletedTrait = {
26
+ name: 'softDeleted',
27
+ fields: {
28
+ deletedAt: autoManaged(field.timestamp().nullable()),
29
+ deletedBy: autoManaged(field.text().nullable()),
30
+ },
31
+ };
32
+ export function applyTrait(definitionName, existingFields, existingTraits, trait) {
33
+ if (existingTraits.includes(trait.name)) {
34
+ throw new Error(`[pipework] Trait "${trait.name}" is already applied to "${definitionName}".`);
35
+ }
36
+ for (const fieldName of Object.keys(trait.fields)) {
37
+ if (fieldName in existingFields) {
38
+ throw new Error(`[pipework] Trait "${trait.name}" adds field "${fieldName}" which already exists in "${definitionName}".\n\n` +
39
+ ` Remove the field from your definition or choose a different name.\n` +
40
+ ` Trait "${trait.name}" provides: ${Object.keys(trait.fields).join(', ')}`);
41
+ }
42
+ }
43
+ return {
44
+ fields: { ...existingFields, ...trait.fields },
45
+ traits: [...existingTraits, trait.name],
46
+ };
47
+ }
48
+ //# sourceMappingURL=traits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traits.js","sourceRoot":"","sources":["../../src/domain/traits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGlC,SAAS,WAAW,CAAC,CAAkB;IACrC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAA;AACrD,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAkB;IAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAA;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAoB;IAClD,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE;QACN,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5D,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtD,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACjD;CACF,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,SAAS;IACf,MAAM,EAAE;QACN,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChE,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvD,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;KAChD;CACF,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE,aAAa;IACnB,MAAM,EAAE;QACN,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpD,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;KAChD;CACF,CAAA;AAED,MAAM,UAAU,UAAU,CACxB,cAAsB,EACtB,cAA+C,EAC/C,cAAwB,EACxB,KAAsB;IAEtB,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,CAAC,IAAI,4BAA4B,cAAc,IAAI,CAC9E,CAAA;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,CAAC,IAAI,iBAAiB,SAAS,8BAA8B,cAAc,QAAQ;gBAC7G,uEAAuE;gBACvE,YAAY,KAAK,CAAC,IAAI,eAAe,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE;QAC9C,MAAM,EAAE,CAAC,GAAG,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC;KACxC,CAAA;AACH,CAAC"}