@substrat-run/engine-invoicing 0.9.8 → 0.9.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAYL,KAAK,SAAS,EAGf,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,YACrC,mBAAmB,EACnB,wBAAwB,CAChB,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAKlF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKhE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7E;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAIL,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,cAAc;IACzB,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;GAuE/B,CAAC;AAmEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAgWD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;CAY9B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,kBAS7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAaL,KAAK,SAAS,EAGf,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,YACrC,mBAAmB,EACnB,wBAAwB,CAChB,CAAC;AACX,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAKlF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAe,MAAM,eAAe,CAAC;AAO7E,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7E;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAIL,KAAK,kBAAkB,EAGxB,MAAM,sBAAsB,CAAC;AAS9B,eAAO,MAAM,cAAc;IACzB,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;GAuE/B,CAAC;AAmEF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAubD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;CAY9B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,kBAa7B,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@
21
21
  * invoicing engine consumed the event", then reads the basis via `invoicing/list`.
22
22
  */
23
23
  import { z } from 'zod';
24
- import { addMoney, defineLifecycles, listsDeclaredBy, mapPage, entityRef, money, moduleManifest, moneyOf, permissionKey, transitionFor, substratError, } from '@substrat-run/contracts';
24
+ import { addMoney, defineLifecycles, listsDeclaredBy, mapPage, entityRef, money, moduleManifest, moneyOf, operationInputsOf, permissionKey, transitionFor, substratError, } from '@substrat-run/contracts';
25
25
  /**
26
26
  * The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
27
27
  * `conflict` code (#113). Exported so a vertical can branch on WHY a refusal happened
@@ -37,7 +37,9 @@ export const INVOICING_CONFLICT_REASONS = [
37
37
  ];
38
38
  /** `conflict(reason, message)` — reason first, so the classification reads before the prose. */
39
39
  const conflict = (reason, message) => substratError('conflict', message, { reason });
40
- import { invoicingEntities, underlagLine } from './entities.js';
40
+ import { invoicingEntities, underlagLine, underlagRow } from './entities.js';
41
+ import { underlagDetail, underlagListRow } from './schemas.js';
42
+ import { columnsOf, returns } from './seam.js';
41
43
  // The entity registry is PUBLIC: every demo composes this engine, and a vertical
42
44
  // declaring an operation that returns an invoice basis needs the schema rather
43
45
  // than a retyped copy of it.
@@ -232,6 +234,41 @@ const timesheetClosedPayload = z.object({
232
234
  })),
233
235
  total: money,
234
236
  });
237
+ /**
238
+ * The SELECT lists, derived from the schemas (#771/#970).
239
+ *
240
+ * Never `SELECT *`: that pins the shape a read returns to whatever the physical
241
+ * table currently holds, which is the same trust-TypeScript hole `returns` closes
242
+ * from the other side. Migration 0002 rebuilt `invoicing_lines` — a table this
243
+ * engine has already reshaped once, under a vertical that compiled against the
244
+ * shape before it.
245
+ */
246
+ const UNDERLAG_COLUMNS = columnsOf(underlagRow);
247
+ const LINE_COLUMNS = columnsOf(underlagLine);
248
+ /**
249
+ * The stored line, narrowed to the formats this engine folds (#771).
250
+ *
251
+ * `entities.ts` publishes `underlagLine` for a vertical to declare a return
252
+ * against, and it describes those columns as strings — which is what they are.
253
+ * What it cannot say is that three of them are DECIMALS this engine sums into a
254
+ * financial artifact: `moneyOf` would refuse them eventually, with a raw Zod
255
+ * issue naming `amount` and no mention of which row or which engine. Narrowing
256
+ * them here moves the refusal to the seam, where it names both. The TypeScript
257
+ * shape is unchanged (a regex on a string infers a string), so this is not a
258
+ * change to the published contract.
259
+ */
260
+ const decimalAmount = z.string().regex(/^-?\d+(\.\d+)?$/, 'must be a decimal amount');
261
+ const storedLineShape = underlagLine.extend({
262
+ qty: decimalAmount,
263
+ unit_price_amount: decimalAmount,
264
+ line_total_amount: decimalAmount,
265
+ currency: z.string().regex(/^[A-Z]{3}$/, 'must be an ISO-4217 currency code'),
266
+ });
267
+ /** The two columns the total folds — a projection of the line, not a table. */
268
+ const lineAmount = storedLineShape.pick({ line_total_amount: true, currency: true });
269
+ /** A stored row, parsed BEFORE anything is made of it. */
270
+ const storedUnderlag = (r) => returns(underlagRow, `underlag row ${r.id}`, r);
271
+ const storedLine = (r) => returns(storedLineShape, `underlag line ${r.id}`, r);
235
272
  /**
236
273
  * The underlag's total, as Money.
237
274
  *
@@ -242,7 +279,12 @@ const timesheetClosedPayload = z.object({
242
279
  * the real guard — this is defence in depth behind it.
243
280
  */
244
281
  function underlagTotalMoney(ctx, underlagId) {
245
- const rows = ctx.sql.query('SELECT line_total_amount, currency FROM invoicing_lines WHERE underlag_id = ?', [underlagId]);
282
+ const rows = ctx.sql
283
+ .query(`SELECT ${columnsOf(lineAmount)} FROM invoicing_lines WHERE underlag_id = ?`, [underlagId])
284
+ // Parsed on the way into the fold, for the reason absence parses a ledger
285
+ // delta: a summand that drifted crosses as a number nobody questions, and
286
+ // this one ends up on an exported invoice.
287
+ .map((r) => returns(lineAmount, `line amount on underlag ${underlagId}`, r));
246
288
  // An underlag with no lines is unreachable in practice — find-or-create and
247
289
  // the line inserts share one transaction — but a zero total must still have a
248
290
  // currency to be Money at all. Attributing a currency to an empty document is
@@ -291,13 +333,15 @@ const onWorkOrderCompleted = (ctx, event) => {
291
333
  // Find-or-create the OPEN underlag for this customer; an exported underlag
292
334
  // is immutable — late deliveries open a new one (engine invariant on top of
293
335
  // the kernel's delivery journal).
294
- let underlag = ctx.sql.query(`SELECT * FROM invoicing_underlag WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
336
+ const open = ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag
337
+ WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
338
+ let underlag = open ? storedUnderlag(open) : undefined;
295
339
  if (!underlag) {
296
340
  const id = ulid();
297
341
  const number = ctx.sql.query('SELECT COALESCE(MAX(number), 0) + 1 AS n FROM invoicing_underlag')[0]?.n ?? 1;
298
342
  ctx.sql.exec(`INSERT INTO invoicing_underlag (id, number, customer_type, customer_id, status, created_at)
299
343
  VALUES (?, ?, ?, ?, 'open', ?)`, [id, number, p.customer.entityType, p.customer.entityId, ctx.now()]);
300
- underlag = ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [id])[0];
344
+ underlag = storedUnderlag(ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [id])[0]);
301
345
  }
302
346
  assertSingleCurrency(ctx, underlag.id, p.billable);
303
347
  for (const line of p.billable) {
@@ -347,13 +391,15 @@ const onCommerceOrderPlaced = (ctx, event) => {
347
391
  const already = ctx.sql.query(`SELECT 1 AS found FROM invoicing_lines WHERE document_type = 'order' AND document_id = ? LIMIT 1`, [p.orderId])[0];
348
392
  if (already)
349
393
  return;
350
- let underlag = ctx.sql.query(`SELECT * FROM invoicing_underlag WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
394
+ const open = ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag
395
+ WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
396
+ let underlag = open ? storedUnderlag(open) : undefined;
351
397
  if (!underlag) {
352
398
  const id = ulid();
353
399
  const number = ctx.sql.query('SELECT COALESCE(MAX(number), 0) + 1 AS n FROM invoicing_underlag')[0]?.n ?? 1;
354
400
  ctx.sql.exec(`INSERT INTO invoicing_underlag (id, number, customer_type, customer_id, status, created_at)
355
401
  VALUES (?, ?, ?, ?, 'open', ?)`, [id, number, p.customer.entityType, p.customer.entityId, ctx.now()]);
356
- underlag = ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [id])[0];
402
+ underlag = storedUnderlag(ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [id])[0]);
357
403
  }
358
404
  assertSingleCurrency(ctx, underlag.id, p.billable);
359
405
  for (const line of p.billable) {
@@ -398,13 +444,15 @@ const onTimesheetPeriodClosed = (ctx, event) => {
398
444
  const already = ctx.sql.query(`SELECT 1 AS found FROM invoicing_lines WHERE document_type = 'timesheet' AND document_id = ? LIMIT 1`, [p.closeId])[0];
399
445
  if (already)
400
446
  return;
401
- let underlag = ctx.sql.query(`SELECT * FROM invoicing_underlag WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
447
+ const open = ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag
448
+ WHERE customer_type = ? AND customer_id = ? AND status = 'open'`, [p.customer.entityType, p.customer.entityId])[0];
449
+ let underlag = open ? storedUnderlag(open) : undefined;
402
450
  if (!underlag) {
403
451
  const id = ulid();
404
452
  const number = ctx.sql.query('SELECT COALESCE(MAX(number), 0) + 1 AS n FROM invoicing_underlag')[0]?.n ?? 1;
405
453
  ctx.sql.exec(`INSERT INTO invoicing_underlag (id, number, customer_type, customer_id, status, created_at)
406
454
  VALUES (?, ?, ?, ?, 'open', ?)`, [id, number, p.customer.entityType, p.customer.entityId, ctx.now()]);
407
- underlag = ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [id])[0];
455
+ underlag = storedUnderlag(ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [id])[0]);
408
456
  }
409
457
  assertSingleCurrency(ctx, underlag.id, p.billable);
410
458
  for (const line of p.billable) {
@@ -451,25 +499,35 @@ const listOp = async (ctx, input) => {
451
499
  ...input,
452
500
  filters: { status: input?.status },
453
501
  });
454
- return mapPage(page, (r) => ({ ...r, total: underlagTotal(ctx, r.id) }));
502
+ // The page walk is the kernel's, so the rows arrive shaped by whatever the
503
+ // physical table holds; `returns` is what pins them back to the shape a
504
+ // composing vertical declared its `output` with.
505
+ return mapPage(page, (r) => returns(underlagListRow, `underlag ${r.id}`, {
506
+ ...storedUnderlag(r),
507
+ total: underlagTotal(ctx, r.id),
508
+ }));
455
509
  };
456
510
  const getOp = async (ctx, input) => {
457
511
  assertAllowed(await ctx.check(INVOICING_PERM.read));
458
- const underlag = ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [
459
- input.underlagId,
460
- ])[0];
512
+ const underlag = ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [input.underlagId])[0];
461
513
  if (!underlag)
462
514
  throw substratError('not_found', `underlag not found: ${input.underlagId}`);
463
- const lines = ctx.sql.query('SELECT * FROM invoicing_lines WHERE underlag_id = ? ORDER BY id', [input.underlagId]);
464
- return { underlag, lines, total: underlagTotal(ctx, input.underlagId) };
515
+ const lines = ctx.sql.query(`SELECT ${LINE_COLUMNS} FROM invoicing_lines WHERE underlag_id = ? ORDER BY id`, [input.underlagId]);
516
+ return returns(underlagDetail, `underlag ${input.underlagId}`, {
517
+ underlag: storedUnderlag(underlag),
518
+ lines: lines.map(storedLine),
519
+ total: underlagTotal(ctx, input.underlagId),
520
+ });
465
521
  };
466
522
  const exportOp = async (ctx, input) => {
467
523
  assertAllowed(await ctx.check(INVOICING_PERM.export));
468
- const underlag = ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [
469
- input.underlagId,
470
- ])[0];
471
- if (!underlag)
524
+ const stored = ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [input.underlagId])[0];
525
+ if (!stored)
472
526
  throw substratError('not_found', `underlag not found: ${input.underlagId}`);
527
+ // Parsed before the transition is judged: `status` IS the
528
+ // immutable-after-export invariant, so a drifted one must refuse rather than
529
+ // fall through `transitionFor` as an unknown state.
530
+ const underlag = storedUnderlag(stored);
473
531
  // `transitionFor`, not `assertTransition` (#844): the declaration answers
474
532
  // whether the verb is legal here, and this engine keeps its OWN reason for
475
533
  // the refusal. `immutable_after_export` is the invariant a caller needs to
@@ -491,9 +549,9 @@ const exportOp = async (ctx, input) => {
491
549
  total: underlagTotalMoney(ctx, underlag.id),
492
550
  },
493
551
  });
494
- return ctx.sql.query('SELECT * FROM invoicing_underlag WHERE id = ?', [
552
+ return storedUnderlag(ctx.sql.query(`SELECT ${UNDERLAG_COLUMNS} FROM invoicing_underlag WHERE id = ?`, [
495
553
  underlag.id,
496
- ])[0];
554
+ ])[0]);
497
555
  };
498
556
  const OPERATIONS = {
499
557
  'invoicing/list': listOp,
@@ -526,6 +584,10 @@ export const invoicingLifecycles = defineLifecycles(invoicingEntities, OPERATION
526
584
  export const invoicingModule = {
527
585
  manifest: invoicingManifest,
528
586
  migrations: invoicingMigrations,
587
+ // The host parses every invocation against the same declaration the manifest
588
+ // and the routes come from, so "parse, don't trust" holds on every path in
589
+ // rather than in the handlers that remembered (#953).
590
+ operationInputs: operationInputsOf(invoicingOperations),
529
591
  operations: OPERATIONS,
530
592
  consumers: {
531
593
  'workorder.completed': onWorkOrderCompleted,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/seam.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /** How this engine names itself in a seam failure. */
2
+ export declare const columnsOf: (schema: {
3
+ readonly shape: Readonly<Record<string, unknown>>;
4
+ }) => string, returns: <T>(schema: import("zod").ZodType<T>, surface: string, value: unknown) => T;
5
+ //# sourceMappingURL=seam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAgBA,sDAAsD;AACtD,eAAO,MAAQ,SAAS;;cAAE,OAAO,6EAAmC,CAAC"}
package/dist/seam.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The engine seam (#771) for engine-invoicing — the NAME, and nothing else.
3
+ *
4
+ * `returns(schema, surface, value)` and `columnsOf(schema)` live in
5
+ * `@substrat-run/contracts` (#970), where the prose explaining what they are for
6
+ * lives with them; an engine supplies only the name it answers under.
7
+ *
8
+ * What is specific to this engine is what a drifted row costs. An invoice basis
9
+ * is a financial artifact: `line_total_amount` and `currency` are folded into the
10
+ * total this engine emits on `invoicing.underlag-exported`, so a summand that
11
+ * moved crosses as a NUMBER an accounting connector then invoices — wrong money
12
+ * on a real document, never a throw. And `status` is the immutable-after-export
13
+ * invariant itself, read to decide whether a basis may still change.
14
+ */
15
+ import { engineSeam } from '@substrat-run/contracts';
16
+ /** How this engine names itself in a seam failure. */
17
+ export const { columnsOf, returns } = engineSeam('engine-invoicing');
18
+ //# sourceMappingURL=seam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,sDAAsD;AACtD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-invoicing",
3
- "version": "0.9.8",
3
+ "version": "0.9.11",
4
4
  "description": "Substrat engine: invoice basis — consumes billable events, snapshots lines with provenance, immutable once exported",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -25,16 +25,16 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@substrat-run/contracts": "^0.92.0",
29
- "@substrat-run/kernel": "^0.92.0"
28
+ "@substrat-run/kernel": "^0.95.0",
29
+ "@substrat-run/contracts": "^0.95.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^7.0.0",
33
33
  "vitest": "^3.2.7",
34
34
  "zod": "^4.4.3",
35
- "@substrat-run/contract-tests": "^0.92.0",
36
- "@substrat-run/model-emit": "0.8.6",
37
- "@substrat-run/engine-test-kit": "^0.3.19"
35
+ "@substrat-run/contract-tests": "^0.95.0",
36
+ "@substrat-run/model-emit": "0.8.10",
37
+ "@substrat-run/engine-test-kit": "^0.3.22"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "zod": "^4.4.0"