pipework 0.8.5 → 0.8.7

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 (34) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/audit/schema/audit-record-fields.d.ts.map +1 -1
  3. package/dist/audit/schema/audit-record-fields.js +8 -5
  4. package/dist/audit/schema/audit-record-fields.js.map +1 -1
  5. package/dist/audit/schema/audit-record.d.ts.map +1 -1
  6. package/dist/audit/schema/audit-record.js +4 -3
  7. package/dist/audit/schema/audit-record.js.map +1 -1
  8. package/dist/core/validation/domain.d.ts.map +1 -1
  9. package/dist/core/validation/domain.js +3 -2
  10. package/dist/core/validation/domain.js.map +1 -1
  11. package/dist/data/domain/build-factory.d.ts.map +1 -1
  12. package/dist/data/domain/build-factory.js +3 -1
  13. package/dist/data/domain/build-factory.js.map +1 -1
  14. package/dist/data/domain/build-table.d.ts.map +1 -1
  15. package/dist/data/domain/build-table.js +6 -3
  16. package/dist/data/domain/build-table.js.map +1 -1
  17. package/dist/data/domain/field.d.ts +12 -2
  18. package/dist/data/domain/field.d.ts.map +1 -1
  19. package/dist/data/domain/field.js +10 -4
  20. package/dist/data/domain/field.js.map +1 -1
  21. package/dist/data/domain/types.d.ts +24 -2
  22. package/dist/data/domain/types.d.ts.map +1 -1
  23. package/dist/data/domain/types.js +5 -1
  24. package/dist/data/domain/types.js.map +1 -1
  25. package/dist/trace/entry/close-trace.d.ts.map +1 -1
  26. package/dist/trace/entry/close-trace.js +18 -6
  27. package/dist/trace/entry/close-trace.js.map +1 -1
  28. package/dist/trace/schema/trace-fields.d.ts.map +1 -1
  29. package/dist/trace/schema/trace-fields.js +18 -6
  30. package/dist/trace/schema/trace-fields.js.map +1 -1
  31. package/dist/trace/schema/trace-step-fields.d.ts.map +1 -1
  32. package/dist/trace/schema/trace-step-fields.js +11 -3
  33. package/dist/trace/schema/trace-step-fields.js.map +1 -1
  34. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.7
4
+
5
+ - **Fix: pipework's startup validator rejected its own internal tables** — booting a manifold with pipework-only definitions (`audit_record`, `trace`, `trace_step`) crashed with seven `brand "TraceId"/"TraceStepId" used by both …` errors. `audit_record.traceId`/`traceStepId` are deliberately branded but unreferenced (the audit partition outlives its source trace partition, so an FK would prevent independent retention). The validator's brand-reuse check had no way to express "logical reference without enforced FK" and flagged the columns as conflicting brand definitions. The startup tests missed it because `tests/validation/startup.test.ts` wipes the registry in `beforeEach`, so the validator only ever saw synthetic fixtures.
6
+ - **New: `.references(table, 'field', { enforced: false })`** — declares a logical reference. The brand inherits from the target field exactly like a normal `.references()`, and the validator treats the column as FK-derived for brand-reuse purposes, but no FK constraint is emitted in the generated DDL. Use for cross-partition references where an FK would prevent independent partition lifecycle.
7
+ - **New: thunk form `.references(() => table, 'field', …)`** — for self-references and forward-references where the target table is defined later in an import cycle. The thunk is resolved at validation / table-build time. Brand inference is skipped (the target can't be read at construction time), so the caller must chain `.brand('Foo')` explicitly. Composite `foreignKeys` accept the same thunk form on `references.definition`.
8
+
9
+ ## 0.8.6
10
+
11
+ - **Expose `pipework/package.json` in the `exports` map** — bundlers (Vite, Webpack, esbuild), framework version probes, and monorepo tools often `require('pipework/package.json')` for introspection. With `exports` defined and `./package.json` absent, Node refused the resolution (`ERR_PACKAGE_PATH_NOT_EXPORTED`). Adding the explicit subpath restores the standard read.
12
+
3
13
  ## 0.8.5
4
14
 
5
15
  - **Fix: broken install of 0.8.4** — 0.8.4 declared `@pipework/flow-step-parser@0.1.0` as a dependency, but the `@pipework` npm scope does not exist and the workspace package was never published, so `pnpm add pipework@0.8.4` failed with a 404. The workspace package is now `pipework-flow-parser` (unscoped) and the release script publishes workspace packages before the root, so the dependency resolves.
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record-fields.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAgC7B,CAAA"}
1
+ {"version":3,"file":"audit-record-fields.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAiC7B,CAAA"}
@@ -14,18 +14,21 @@
14
14
  // to join. `occurredAt` records when the operation completed.
15
15
  import { field } from '../../data/domain/index.js';
16
16
  import { schema } from '../../data/schema/namespace.js';
17
+ import { trace } from '../../trace/schema/trace.js';
18
+ import { traceStep } from '../../trace/schema/trace-step.js';
17
19
  export const auditRecordFields = {
18
20
  id: field.uuid().brand('AuditRecordId').defaultRandom(),
19
21
  // Partition key — the parent trace's `openedDay`. The audit row files under
20
22
  // the same calendar day as its trace step; retention is independent of
21
23
  // trace storage so the partition can outlive the trace it came from.
22
24
  traceDay: field.date(),
23
- // The trace this audit row was emitted under. No foreign key: trace's
25
+ // Logical reference to the originating trace. `enforced: false` means the
26
+ // brand is inherited (TraceId) but no FK constraint is emitted — trace's
24
27
  // partition can retire while the audit row is still in retention.
25
- traceId: field.uuid().brand('TraceId'),
26
- // The specific flow step the row was emitted from. Same retention argument
27
- // as `traceId` — plain uuid, no FK.
28
- traceStepId: field.uuid().brand('TraceStepId'),
28
+ traceId: field.uuid().references(trace, 'id', { enforced: false }),
29
+ // Logical reference to the originating trace step. Same retention argument
30
+ // as `traceId` — branded TraceStepId without an enforced FK.
31
+ traceStepId: field.uuid().references(traceStep, 'id', { enforced: false }),
29
32
  tenantId: field.uuid().tenant().nullable(),
30
33
  // The user who performed the action. Null for system-actor traces (cron,
31
34
  // worker-claimed jobs without an auth principal). Plain text, not branded —
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record-fields.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,wBAAwB;AACxB,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE;IACvD,4EAA4E;IAC5E,uEAAuE;IACvE,qEAAqE;IACrE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,sEAAsE;IACtE,kEAAkE;IAClE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACtC,2EAA2E;IAC3E,oCAAoC;IACpC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IAClB,2EAA2E;IAC3E,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,8BAA8B;IAC9B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE;CAC9B,CAAA"}
1
+ {"version":3,"file":"audit-record-fields.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record-fields.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,wBAAwB;AACxB,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,oEAAoE;AACpE,0EAA0E;AAC1E,2EAA2E;AAC3E,8DAA8D;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAE5D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE;IACvD,4EAA4E;IAC5E,uEAAuE;IACvE,qEAAqE;IACrE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,2EAA2E;IAC3E,6DAA6D;IAC7D,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAChC,0EAA0E;IAC1E,2DAA2D;IAC3D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE;IACpB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;IAClB,2EAA2E;IAC3E,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,8BAA8B;IAC9B,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE;CAC9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW;;;;;;;;;;;;;EAGtB,CAAA"}
1
+ {"version":3,"file":"audit-record.d.ts","sourceRoot":"","sources":["../../../src/audit/schema/audit-record.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW;;;;;;;;;;;;;EAGtB,CAAA"}
@@ -1,8 +1,9 @@
1
1
  // The `audit_record` table — durable per-(entity × affected row) audit
2
2
  // projection. RANGE-partitioned by `traceDay`; retention is independent of
3
- // the trace tables (long / indefinite, configured separately). No foreign
4
- // key to `trace` the audit partition is free to outlive its source trace
5
- // partition.
3
+ // the trace tables (long / indefinite, configured separately). The `traceId`
4
+ // and `traceStepId` columns declare a logical reference (`enforced: false`)
5
+ // to inherit the TraceId/TraceStepId brands without emitting an FK — the
6
+ // audit partition is free to outlive its source trace partition.
6
7
  import { define } from '../../data/domain/index.js';
7
8
  import { auditRecordFields } from './audit-record-fields.js';
8
9
  export const auditRecord = define('audit_record', auditRecordFields, {
@@ -1 +1 @@
1
- {"version":3,"file":"audit-record.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,aAAa;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;IAC9B,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;CACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"audit-record.js","sourceRoot":"","sources":["../../../src/audit/schema/audit-record.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,yEAAyE;AACzE,iEAAiE;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE;IACnE,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC;IAC9B,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;CACvD,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/core/validation/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,eAAe,EAAE,CA+EnB"}
1
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../src/core/validation/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC9C,mBAAmB,EAAE,SAAS,MAAM,EAAE,GACrC,eAAe,EAAE,CA+EnB"}
@@ -1,3 +1,4 @@
1
+ import { resolveDefinitionRef } from '../../data/domain/types.js';
1
2
  export function validateDomainIntegrity(definitions, configuredDatabases) {
2
3
  const issues = [];
3
4
  const tableNames = new Map();
@@ -28,7 +29,7 @@ export function validateDomainIntegrity(definitions, configuredDatabases) {
28
29
  if (meta.tenant)
29
30
  tenantFieldCount++;
30
31
  if (meta.reference !== undefined) {
31
- const refDef = meta.reference.definition;
32
+ const refDef = resolveDefinitionRef(meta.reference.definition);
32
33
  if (!definitions.has(refDef.$name)) {
33
34
  issues.push({
34
35
  phase: 'domain',
@@ -45,7 +46,7 @@ export function validateDomainIntegrity(definitions, configuredDatabases) {
45
46
  }
46
47
  if (meta.brand !== undefined) {
47
48
  const isInheritedFromFK = meta.reference !== undefined
48
- && meta.reference.definition.$fields[meta.reference.field]?._meta.brand === meta.brand;
49
+ && resolveDefinitionRef(meta.reference.definition).$fields[meta.reference.field]?._meta.brand === meta.brand;
49
50
  if (!isInheritedFromFK) {
50
51
  const existing = brandNames.get(meta.brand);
51
52
  if (existing !== undefined && existing !== `${name}.${fieldName}`) {
@@ -1 +1 @@
1
- {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/core/validation/domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/core/validation/domain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-factory.d.ts","sourceRoot":"","sources":["../../../src/data/domain/build-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAA6B,MAAM,YAAY,CAAA;AAIzF,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAyB5E;AA0ED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"build-factory.d.ts","sourceRoot":"","sources":["../../../src/data/domain/build-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAA6B,MAAM,YAAY,CAAA;AAKzF,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,cAAc,CAyB5E;AA2ED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from 'node:crypto';
2
+ import { resolveDefinitionRef } from './types.js';
2
3
  import { getContext } from '../../request/context/store.js';
3
4
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- accepts any DefinedTable regardless of field generics
4
5
  export function projectFactory(definition) {
@@ -61,7 +62,8 @@ async function buildValues(definition, overrides, options) {
61
62
  continue;
62
63
  }
63
64
  if (meta.reference !== undefined) {
64
- const parent = await meta.reference.definition.factory().create(undefined, options);
65
+ const parentDef = resolveDefinitionRef(meta.reference.definition);
66
+ const parent = await parentDef.factory().create(undefined, options);
65
67
  values[key] = parent[meta.reference.field];
66
68
  continue;
67
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-factory.js","sourceRoot":"","sources":["../../../src/data/domain/build-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-factory.js","sourceRoot":"","sources":["../../../src/data/domain/build-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-table.d.ts","sourceRoot":"","sources":["../../../src/data/domain/build-table.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAuB,MAAM,YAAY,CAAA;AAGhG,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFvB"}
1
+ {"version":3,"file":"build-table.d.ts","sourceRoot":"","sources":["../../../src/data/domain/build-table.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAa,aAAa,EAAuB,MAAM,YAAY,CAAA;AAIhG,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuFvB"}
@@ -1,5 +1,6 @@
1
1
  import { pgTable, text, uuid, integer, serial, bigint as pgBigint, boolean, timestamp, date, jsonb, numeric, check, primaryKey, foreignKey, } from '../query/pg-core/index.js';
2
2
  import { sql } from '../query/index.js';
3
+ import { resolveDefinitionRef } from './types.js';
3
4
  import { camelToSnake } from './naming.js';
4
5
  export function projectTable(tableName, fields, options) {
5
6
  if (options.virtual === true) {
@@ -32,8 +33,9 @@ export function projectTable(tableName, fields, options) {
32
33
  else if (meta.hasDefault && meta.defaultValue !== undefined) {
33
34
  col = col.default(meta.defaultValue);
34
35
  }
35
- if (meta.reference !== undefined) {
36
- const refTable = meta.reference.definition.table();
36
+ if (meta.reference !== undefined && meta.reference.enforced !== false) {
37
+ const refDef = resolveDefinitionRef(meta.reference.definition);
38
+ const refTable = refDef.table();
37
39
  const refColName = camelToSnake(meta.reference.field);
38
40
  col = col.references(() => refTable[refColName]);
39
41
  }
@@ -70,7 +72,8 @@ export function projectTable(tableName, fields, options) {
70
72
  }
71
73
  /* eslint-disable @typescript-eslint/no-explicit-any -- Drizzle column/builder types are deeply generic */
72
74
  function buildForeignKey(cfk, table) {
73
- const refTable = cfk.references.definition.table();
75
+ const refDef = resolveDefinitionRef(cfk.references.definition);
76
+ const refTable = refDef.table();
74
77
  let builder = foreignKey({
75
78
  columns: cfk.columns.map(k => table[k]),
76
79
  foreignColumns: cfk.references.columns.map(k => refTable[k]),
@@ -1 +1 @@
1
- {"version":3,"file":"build-table.js","sourceRoot":"","sources":["../../../src/data/domain/build-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-table.js","sourceRoot":"","sources":["../../../src/data/domain/build-table.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { z } from 'zod/v4';
2
- import type { FieldDescriptor } 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>;
@@ -13,7 +13,17 @@ export interface FieldModifiers<TOutput = unknown> {
13
13
  brand<B extends string>(name: B): FieldDescriptor<Branded<TOutput, B>> & FieldModifiers<Branded<TOutput, B>>;
14
14
  references<TDef extends {
15
15
  readonly $fields: any;
16
- }, TField extends string & keyof TDef['$fields']>(definition: TDef, field: TField): FieldDescriptor<InferFieldOutput<TDef['$fields'][TField]>> & FieldModifiers<InferFieldOutput<TDef['$fields'][TField]>>;
16
+ }, TField extends string & keyof TDef['$fields']>(definition: TDef, field: TField, options?: {
17
+ enforced?: boolean;
18
+ }): FieldDescriptor<InferFieldOutput<TDef['$fields'][TField]>> & FieldModifiers<InferFieldOutput<TDef['$fields'][TField]>>;
19
+ /**
20
+ * Thunk form — defers resolution past an import cycle. Brand is NOT
21
+ * inferred from the referenced field (the cycle prevents it); the caller
22
+ * must `.brand()` the field explicitly. Existing TOutput is preserved.
23
+ */
24
+ references(definition: () => DefinedTable<any>, field: string, options?: {
25
+ enforced?: boolean;
26
+ }): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
17
27
  min(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
18
28
  max(value: number): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
19
29
  email(): FieldDescriptor<TOutput> & FieldModifiers<TOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/data/domain/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAsC,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAoF3D,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,QAAQ,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5E,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3E,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAChE,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5D,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC9D,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5D,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5G,UAAU,CAAC,IAAI,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAC9F,UAAU,EAAE,IAAI,EAChB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACzH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtE,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3D,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACzD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnF,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;CACjF;AAmBD,eAAO,MAAM,KAAK;YACR,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAIhD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI7C,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIjD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIhD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI/C,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;iBAIhD,eAAe,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;YAIjD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI7C,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;UAIjH,CAAC,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;eAInF,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIjD,MAAM,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;WAKxE,CAAC,SAAS,CAAC,CAAC,OAAO,UAAU,OAAO,aAAa,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAOrH,CAAA"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/data/domain/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAwB,YAAY,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AA8F3D,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,QAAQ,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5E,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3E,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAChE,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnE,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5D,QAAQ,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC9D,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC5D,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC/D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5G,UAAU,CAAC,IAAI,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAA;KAAE,EAAE,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAC9F,UAAU,EAAE,IAAI,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACzH;;;;OAIG;IACH,UAAU,CAER,UAAU,EAAE,MAAM,YAAY,CAAC,GAAG,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACrD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtE,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACtE,KAAK,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3D,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACzD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAC1E,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnF,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;CACjF;AAmBD,eAAO,MAAM,KAAK;YACR,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAIhD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI7C,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIjD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIhD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI/C,eAAe,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC;iBAIhD,eAAe,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC;YAIjD,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;eAI7C,CAAC,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;UAIjH,CAAC,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;eAInF,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;cAIjD,MAAM,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;WAKxE,CAAC,SAAS,CAAC,CAAC,OAAO,UAAU,OAAO,aAAa,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAOrH,CAAA"}
@@ -28,12 +28,18 @@ function createField(meta) {
28
28
  brand(name) {
29
29
  return createField({ ...meta, brand: name });
30
30
  },
31
- references(definition, fieldName) {
32
- const referencedField = definition.$fields[fieldName];
33
- const inferredBrand = referencedField?._meta.brand;
31
+ references(definition, fieldName, options) {
32
+ const enforced = options?.enforced ?? true;
33
+ // Eager form: infer brand from the referenced field at construction.
34
+ // Thunk form: can't resolve yet — the caller must chain .brand()
35
+ // explicitly. The validator still recognises brand reuse as intentional
36
+ // because it resolves the thunk at validation time and compares.
37
+ const inferredBrand = typeof definition === 'function'
38
+ ? undefined
39
+ : definition.$fields[fieldName]?._meta.brand;
34
40
  return createField({
35
41
  ...meta,
36
- reference: { definition, field: fieldName },
42
+ reference: { definition, field: fieldName, ...(enforced ? {} : { enforced: false }) },
37
43
  ...(inferredBrand !== undefined && meta.brand === undefined ? { brand: inferredBrand } : {}),
38
44
  });
39
45
  },
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/data/domain/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/data/domain/field.ts"],"names":[],"mappings":"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"}
@@ -21,8 +21,22 @@ export interface FieldMeta {
21
21
  readonly traceSafe: boolean;
22
22
  readonly brand?: string;
23
23
  readonly reference?: {
24
- readonly definition: DomainDefinition;
24
+ /**
25
+ * Eager DefinedTable, or a thunk returning one. The thunk form lets a
26
+ * field reference its own table (self-reference) or a table defined later
27
+ * in the same import cycle (forward-reference) — the thunk is only
28
+ * resolved at table build / validation time, after the cycle has settled.
29
+ */
30
+ readonly definition: DomainDefinition | (() => DomainDefinition);
25
31
  readonly field: string;
32
+ /**
33
+ * When `false`, the brand and the validator's brand-reuse check inherit
34
+ * from the referenced field, but no FK constraint is emitted in the
35
+ * generated DDL. Used for cross-partition references where an enforced
36
+ * FK would prevent independent partition lifecycle (e.g. `audit_record`
37
+ * keeping `traceId` after the trace partition is dropped). Default true.
38
+ */
39
+ readonly enforced?: boolean;
26
40
  };
27
41
  readonly min?: number;
28
42
  readonly max?: number;
@@ -55,13 +69,21 @@ export interface CompositeForeignKey {
55
69
  /** Local field keys forming the key, in order. */
56
70
  readonly columns: readonly string[];
57
71
  readonly references: {
58
- readonly definition: DefinedTable<any>;
72
+ /**
73
+ * Eager DefinedTable or a thunk returning one. The thunk form lets a
74
+ * composite FK target a table from the same import cycle (e.g.
75
+ * `trace_step` referencing `trace` where both modules import each other
76
+ * via field-level thunked references).
77
+ */
78
+ readonly definition: DefinedTable<any> | (() => DefinedTable<any>);
59
79
  /** Foreign field keys, positionally matched to `columns`. */
60
80
  readonly columns: readonly string[];
61
81
  };
62
82
  readonly onDelete?: ForeignKeyAction;
63
83
  readonly onUpdate?: ForeignKeyAction;
64
84
  }
85
+ /** Resolves a possibly-lazy definition reference to its concrete DefinedTable. */
86
+ export declare function resolveDefinitionRef<T extends DefinedTable<any>>(ref: T | (() => T)): T;
65
87
  /** Declares a table as RANGE-partitioned. The partition column must be part of the primary key. */
66
88
  export interface PartitionSpec {
67
89
  readonly strategy: 'range';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export {};
1
+ /** Resolves a possibly-lazy definition reference to its concrete DefinedTable. */
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- structural pass-through; concrete generics flow at the call site
3
+ export function resolveDefinitionRef(ref) {
4
+ return typeof ref === 'function' ? ref() : ref;
5
+ }
2
6
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/data/domain/types.ts"],"names":[],"mappings":"AAwGA,kFAAkF;AAClF,kIAAkI;AAClI,MAAM,UAAU,oBAAoB,CAA8B,GAAkB;IAClF,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"close-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAOtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE7C,8GAA8G;AAC9G,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAiCf"}
1
+ {"version":3,"file":"close-trace.d.ts","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAOtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE7C,8GAA8G;AAC9G,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,YAAY,GAAG,IAAI,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
@@ -4,15 +4,25 @@
4
4
  // waits on `persisted`, so neither the closing `UPDATE` nor the step `INSERT`s
5
5
  // can outrun the opening `INSERT` and miss the row.
6
6
  //
7
+ // **Ordering: step inserts settle before the status UPDATE.** Without this,
8
+ // an outside observer polling the trace row sees `status='error'/'closed'`
9
+ // the moment the UPDATE commits, but the step rows for that trace can still
10
+ // be in flight — a race that flakes any test of the shape "wait for status,
11
+ // then assert on step rows." Sequencing here makes the published status the
12
+ // settled-trace signal it visually appears to be. The hot path is unaffected
13
+ // because the caller ignores the returned promise; step-write failures are
14
+ // already swallowed inside `flushSteps`, so the UPDATE still runs.
15
+ //
7
16
  // A truncated trace (Q7) keeps its `truncated` status here: `truncateTrace`
8
17
  // already settled the cap-blowing path, and `closeTrace` running last must not
9
18
  // downgrade a casualty to `closed` / `error`. The buffer drain is still safe —
10
19
  // `truncateTrace` already drained it, and `__flowStep` records nothing after
11
20
  // truncation, so `drain()` returns the empty array.
12
21
  //
13
- // The returned promise settles once the `UPDATE` and the step `INSERT` have —
14
- // callers on the hot path ignore it (the close must not block the entry's
15
- // response), but it gives a test a handle to await before asserting on rows.
22
+ // The returned promise settles once the step `INSERT`s and then the `UPDATE`
23
+ // have — callers on the hot path ignore it (the close must not block the
24
+ // entry's response), but it gives a test a handle to await before asserting
25
+ // on rows.
16
26
  import { getBaseLogger } from '../../core/logging/index.js';
17
27
  import { eq, and, getTableColumns } from '../../data/query/index.js';
18
28
  import { trace } from '../schema/trace.js';
@@ -26,17 +36,19 @@ export function closeTrace(instance, ctx, outcome) {
26
36
  return ctx.persisted
27
37
  .then(async () => {
28
38
  const status = ctx.buffer.truncated ? 'truncated' : outcome;
29
- const stepFlush = flushSteps(instance, ctx.buffer.drain());
39
+ // Step inserts MUST settle before the status UPDATE — see file header
40
+ // for the race this prevents. `flushSteps` swallows its own errors, so
41
+ // a failed batch still lets the UPDATE proceed.
42
+ await flushSteps(instance, ctx.buffer.drain());
30
43
  const db = instance.pool.getOrCreate(instance.config.database()).drizzle;
31
44
  const table = trace.table();
32
45
  // The composite primary key is `[id, openedDay]` — both are matched so the
33
46
  // UPDATE targets exactly one partition's one row.
34
47
  const cols = getTableColumns(table);
35
48
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Drizzle's update needs the concrete runtime table type
36
- const traceUpdate = db.update(table)
49
+ await db.update(table)
37
50
  .set({ status, closedAt })
38
51
  .where(and(eq(cols.id, ctx.id), eq(cols.openedDay, ctx.openedDay)));
39
- await Promise.all([stepFlush, traceUpdate]);
40
52
  // Copy errored / truncated traces to the cold set before their hot
41
53
  // partition retires (Q4). For a truncated trace, `truncationDone` is the
42
54
  // settle handle from `truncateTrace`; awaiting it ensures the cold row
@@ -1 +1 @@
1
- {"version":3,"file":"close-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,oDAAoD;AACpD,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAG7E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,8GAA8G;AAC9G,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,GAAwB,EACxB,OAAqB;IAErB,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IAC3B,OAAO,GAAG,CAAC,SAAS;SACjB,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAqC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7F,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC1D,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAA;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAuC,CAAA;QACzE,wHAAwH;QACxH,MAAM,WAAW,GAAI,EAAU,CAAC,MAAM,CAAC,KAAK,CAAC;aAC1C,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aACzB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACrE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QAC3C,mEAAmE;QACnE,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA;YAC/B,MAAM,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EACxB,6DAA6D,CAC9D,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"close-trace.js","sourceRoot":"","sources":["../../../src/trace/entry/close-trace.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,oDAAoD;AACpD,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,mEAAmE;AACnE,EAAE;AACF,4EAA4E;AAC5E,+EAA+E;AAC/E,+EAA+E;AAC/E,6EAA6E;AAC7E,oDAAoD;AACpD,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,WAAW;AAGX,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAM7D,8GAA8G;AAC9G,MAAM,UAAU,UAAU,CACxB,QAAkB,EAClB,GAAwB,EACxB,OAAqB;IAErB,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAA;IAC3B,OAAO,GAAG,CAAC,SAAS;SACjB,IAAI,CAAC,KAAK,IAAI,EAAE;QACf,MAAM,MAAM,GAAqC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAA;QAC7F,sEAAsE;QACtE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9C,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAA;QACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAuC,CAAA;QACzE,wHAAwH;QACxH,MAAO,EAAU,CAAC,MAAM,CAAC,KAAK,CAAC;aAC5B,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aACzB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACrE,mEAAmE;QACnE,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,CAAA;YAC/B,MAAM,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,aAAa,EAAE,CAAC,KAAK,CACnB,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EACxB,6DAA6D,CAC9D,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-fields.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAwBvB,CAAA"}
1
+ {"version":3,"file":"trace-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-fields.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAuBvB,CAAA"}
@@ -5,17 +5,29 @@
5
5
  // Field descriptors are immutable, so the same record is handed to both
6
6
  // `define()` calls — the hot and retained tables are structurally identical
7
7
  // and differ only in retention policy.
8
- import { field } from '../../data/domain/index.js';
8
+ //
9
+ // Self-reference (`rootId`, `parentId` → `trace.id`) and forward-reference
10
+ // (`parentStepId` → `trace_step.id`) resolve their targets lazily via the
11
+ // global registry. Importing `trace` / `traceStep` directly would create a
12
+ // load-order trap: `trace-retained.ts` imports this module before `trace.ts`
13
+ // has run, so a direct cycle leaves `trace` in TDZ when `define()` reads
14
+ // `traceFields`. Resolving by name dodges the cycle entirely; the validator
15
+ // catches a bad name. `enforced: false` keeps the brand inheritance — and
16
+ // therefore the validator's recognition that the reuse is intentional —
17
+ // without emitting a physical FK; retention is free to drop ancestor
18
+ // partitions out from under these columns.
19
+ import { field, definitions } from '../../data/domain/index.js';
20
+ const lazyTrace = () => definitions().get('trace');
21
+ const lazyTraceStep = () => definitions().get('trace_step');
9
22
  export const traceFields = {
10
23
  id: field.uuid().brand('TraceId').defaultRandom(),
11
24
  // Partition key — the calendar day the trace opened. Retention drops whole
12
25
  // day-partitions, so every row carries the day it belongs to.
13
26
  openedDay: field.date(),
14
- // The root of the trace tree. Equals `id` for a root trace. No DB foreign
15
- // key: retention must be free to drop ancestor partitions out from under it.
16
- rootId: field.uuid().brand('TraceId'),
17
- parentId: field.uuid().brand('TraceId').nullable(),
18
- parentStepId: field.uuid().brand('TraceStepId').nullable(),
27
+ // The root of the trace tree. Equals `id` for a root trace.
28
+ rootId: field.uuid().brand('TraceId').references(lazyTrace, 'id', { enforced: false }),
29
+ parentId: field.uuid().brand('TraceId').references(lazyTrace, 'id', { enforced: false }).nullable(),
30
+ parentStepId: field.uuid().brand('TraceStepId').references(lazyTraceStep, 'id', { enforced: false }).nullable(),
19
31
  entryKind: field.enum(['http', 'job', 'cron', 'test']),
20
32
  status: field.enum(['open', 'closed', 'error', 'truncated', 'expired']),
21
33
  tenantId: field.uuid().tenant().nullable(),
@@ -1 +1 @@
1
- {"version":3,"file":"trace-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-fields.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,uCAAuC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE;IACjD,2EAA2E;IAC3E,8DAA8D;IAC9D,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;IACvB,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAClD,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IAC1D,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACtC,8EAA8E;IAC9E,gCAAgC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,6EAA6E;IAC7E,mBAAmB;IACnB,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAA"}
1
+ {"version":3,"file":"trace-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-fields.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,uCAAuC;AACvC,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,qEAAqE;AACrE,2CAA2C;AAE3C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAG/D,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAiB,CAAA;AAChF,MAAM,aAAa,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAiB,CAAA;AAEzF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE;IACjD,2EAA2E;IAC3E,8DAA8D;IAC9D,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;IACvB,4DAA4D;IAC5D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACtF,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnG,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/G,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACtC,8EAA8E;IAC9E,gCAAgC;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,6EAA6E;IAC7E,mBAAmB;IACnB,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-step-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAqB3B,CAAA"}
1
+ {"version":3,"file":"trace-step-fields.d.ts","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAqB3B,CAAA"}
@@ -4,8 +4,16 @@
4
4
  //
5
5
  // Field descriptors are immutable, so the same record is handed to both
6
6
  // `define()` calls.
7
- import { field } from '../../data/domain/index.js';
7
+ //
8
+ // `traceId` and `parentStepId` declare logical references resolved lazily via
9
+ // the registry — see the same pattern in `trace-fields.ts`. The actual
10
+ // `trace` FK lives in the composite (`traceId`, `traceDay`) on the table; the
11
+ // field-level reference exists only to inherit the brand and surface a
12
+ // `references` annotation to the validator.
13
+ import { field, definitions } from '../../data/domain/index.js';
8
14
  import { schema } from '../../data/schema/namespace.js';
15
+ const lazyTrace = () => definitions().get('trace');
16
+ const lazyTraceStep = () => definitions().get('trace_step');
9
17
  export const traceStepFields = {
10
18
  id: field.uuid().brand('TraceStepId').defaultRandom(),
11
19
  // Partition key — the parent trace's `openedDay`, NOT the step's own
@@ -13,11 +21,11 @@ export const traceStepFields = {
13
21
  // step and its trace always sit in the same day-partition, so the two
14
22
  // tables' partitions retire together.
15
23
  traceDay: field.date(),
16
- traceId: field.uuid().brand('TraceId'),
24
+ traceId: field.uuid().brand('TraceId').references(lazyTrace, 'id', { enforced: false }),
17
25
  // Spawn order within the trace. Branch vs step is an edge property, not a
18
26
  // node property — `seq` only records sequencing.
19
27
  seq: field.integer(),
20
- parentStepId: field.uuid().brand('TraceStepId').nullable(),
28
+ parentStepId: field.uuid().brand('TraceStepId').references(lazyTraceStep, 'id', { enforced: false }).nullable(),
21
29
  // The `path:symbol` identity of the flow step, matching the annotation's
22
30
  // upstream/downstream targets.
23
31
  flowStepRef: field.text(),
@@ -1 +1 @@
1
- {"version":3,"file":"trace-step-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,4EAA4E;AAC5E,eAAe;AACf,EAAE;AACF,wEAAwE;AACxE,oBAAoB;AAEpB,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAEvD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE;IACrD,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IACtC,0EAA0E;IAC1E,iDAAiD;IACjD,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE;IACpB,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE;IAC1D,yEAAyE;IACzE,+BAA+B;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE;IACzB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAA"}
1
+ {"version":3,"file":"trace-step-fields.js","sourceRoot":"","sources":["../../../src/trace/schema/trace-step-fields.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,4EAA4E;AAC5E,eAAe;AACf,EAAE;AACF,wEAAwE;AACxE,oBAAoB;AACpB,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,uEAAuE;AACvE,4CAA4C;AAE5C,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAGvD,MAAM,SAAS,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,CAAiB,CAAA;AAChF,MAAM,aAAa,GAAG,GAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAiB,CAAA;AAEzF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE;IACrD,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,sCAAsC;IACtC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;IACtB,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvF,0EAA0E;IAC1E,iDAAiD;IACjD,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE;IACpB,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/G,yEAAyE;IACzE,+BAA+B;IAC/B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE;IACzB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;IAC5B,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,7 +54,8 @@
54
54
  "./eslint/preset": {
55
55
  "import": "./dist/lint/preset.js",
56
56
  "types": "./dist/lint/preset.d.ts"
57
- }
57
+ },
58
+ "./package.json": "./package.json"
58
59
  },
59
60
  "main": "./dist/index.js",
60
61
  "types": "./dist/index.d.ts",