@substrat-run/engine-workorder 0.9.2 → 0.10.2
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.
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -56
- package/dist/index.js.map +1 -1
- package/dist/operations.d.ts +1 -1
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +5 -1
- package/dist/operations.js.map +1 -1
- package/dist/seam.d.ts +3 -62
- package/dist/seam.d.ts.map +1 -1
- package/dist/seam.js +12 -78
- package/dist/seam.js.map +1 -1
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* engine-workorder — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `createWorkOrder`, `assignWorkOrder`,
|
|
5
|
+
* `startWorkOrder`, `reportTime`, `reportMaterial`, `completeWorkOrder`,
|
|
6
|
+
* `closeWorkOrder`, `getReportedLines`, `listOrders`. A vertical imports those into
|
|
7
|
+
* its OWN operations and runs them inside its own transaction — Callout's
|
|
8
|
+
* `callout/complete-workorder` is a permission check and one call.
|
|
9
|
+
*
|
|
10
|
+
* So the registered operations below are thin by design: each is
|
|
11
|
+
* `assertAllowed(await ctx.check(PERM.…))` plus the matching export, and it is the
|
|
12
|
+
* export that carries the invariant. That is what lets a vertical extend by
|
|
13
|
+
* composition rather than by forking — and why the lifecycle check lives with the
|
|
14
|
+
* in-scope function (`lifecycle.ts`), where both routes in pass through it.
|
|
15
|
+
*
|
|
16
|
+
* This engine emits events as every engine does, but nothing composes it by
|
|
17
|
+
* consuming them: `invoicing` is the by-event engine downstream of
|
|
18
|
+
* `workorder.completed`, which is a different relationship from being composed.
|
|
19
|
+
*/
|
|
1
20
|
import { z } from 'zod';
|
|
2
21
|
import { type Page, type Money } from '@substrat-run/contracts';
|
|
3
22
|
import type { PageParams } from '@substrat-run/kernel';
|
|
@@ -147,6 +166,34 @@ export declare const createWorkOrderInput: z.ZodObject<{
|
|
|
147
166
|
description: z.ZodOptional<z.ZodString>;
|
|
148
167
|
}, z.core.$strip>;
|
|
149
168
|
export type CreateWorkOrderInput = z.infer<typeof createWorkOrderInput>;
|
|
169
|
+
/**
|
|
170
|
+
* The inputs of the four in-scope functions extracted in #975 are the schemas
|
|
171
|
+
* their default operation bindings DECLARE — read from `operations.ts`, never
|
|
172
|
+
* restated here. One description of each input, parsed on the way in whether
|
|
173
|
+
* the call arrives through the operation or from a vertical's own code.
|
|
174
|
+
*/
|
|
175
|
+
export declare const assignWorkOrderInput: z.ZodObject<{
|
|
176
|
+
orderId: z.ZodString;
|
|
177
|
+
technician: z.ZodString;
|
|
178
|
+
}, z.core.$strip>;
|
|
179
|
+
export type AssignWorkOrderInput = z.infer<typeof assignWorkOrderInput>;
|
|
180
|
+
export declare const startWorkOrderInput: z.ZodObject<{
|
|
181
|
+
orderId: z.ZodString;
|
|
182
|
+
}, z.core.$strip>;
|
|
183
|
+
export type StartWorkOrderInput = z.infer<typeof startWorkOrderInput>;
|
|
184
|
+
export declare const reportTimeInput: z.ZodObject<{
|
|
185
|
+
orderId: z.ZodString;
|
|
186
|
+
hours: z.ZodString;
|
|
187
|
+
note: z.ZodOptional<z.ZodString>;
|
|
188
|
+
}, z.core.$strip>;
|
|
189
|
+
export type ReportTimeInput = z.infer<typeof reportTimeInput>;
|
|
190
|
+
export declare const reportMaterialInput: z.ZodObject<{
|
|
191
|
+
orderId: z.ZodString;
|
|
192
|
+
article: z.ZodString;
|
|
193
|
+
qty: z.ZodString;
|
|
194
|
+
note: z.ZodOptional<z.ZodString>;
|
|
195
|
+
}, z.core.$strip>;
|
|
196
|
+
export type ReportMaterialInput = z.infer<typeof reportMaterialInput>;
|
|
150
197
|
export declare function createWorkOrder(ctx: OperationContext, rawInput: CreateWorkOrderInput): WorkOrder;
|
|
151
198
|
/**
|
|
152
199
|
* Everything reported against one order — the read a vertical prices FROM (§4).
|
|
@@ -189,6 +236,27 @@ export declare function listOrders(ctx: OperationContext, page: PageParams): Pag
|
|
|
189
236
|
* names nothing is a caller's mistake, and `getRow` already refuses it.
|
|
190
237
|
*/
|
|
191
238
|
export declare function getWorkOrder(ctx: OperationContext, orderId: string): WorkOrder;
|
|
239
|
+
/**
|
|
240
|
+
* Assign a technician. Records and emits; the order stays `planned` (§3).
|
|
241
|
+
*
|
|
242
|
+
* In-scope (K-16) since #975: `assignWorkOrder`, `startWorkOrder`, `reportTime`
|
|
243
|
+
* and `reportMaterial` used to live inline in their operation handlers, so a
|
|
244
|
+
* vertical could not assign, start or report inside its own transaction without
|
|
245
|
+
* forking — the exact failure the by-call shape exists to prevent. Each is now a
|
|
246
|
+
* plain export, and `workorder/assign` … `workorder/report-material` below are
|
|
247
|
+
* their default bindings. The CALLER owns the permission check, as with every
|
|
248
|
+
* other function in this section.
|
|
249
|
+
*/
|
|
250
|
+
export declare function assignWorkOrder(ctx: OperationContext, rawInput: AssignWorkOrderInput): WorkOrder;
|
|
251
|
+
/** planned → in_progress. See `assignWorkOrder` for why this is exported. */
|
|
252
|
+
export declare function startWorkOrder(ctx: OperationContext, rawInput: StartWorkOrderInput): WorkOrder;
|
|
253
|
+
/**
|
|
254
|
+
* Append a time entry, attributed to the acting principal. Append-only: there
|
|
255
|
+
* is no update path, so a correction is another entry (§2).
|
|
256
|
+
*/
|
|
257
|
+
export declare function reportTime(ctx: OperationContext, rawInput: ReportTimeInput): TimeEntry;
|
|
258
|
+
/** Append a material line, reported by the acting principal. Append-only, as above. */
|
|
259
|
+
export declare function reportMaterial(ctx: OperationContext, rawInput: ReportMaterialInput): MaterialLine;
|
|
192
260
|
export declare function completeWorkOrder(ctx: OperationContext, input: {
|
|
193
261
|
orderId: string;
|
|
194
262
|
billable: BillableLine[];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* engine-workorder — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `createWorkOrder`, `assignWorkOrder`,
|
|
5
|
+
* `startWorkOrder`, `reportTime`, `reportMaterial`, `completeWorkOrder`,
|
|
6
|
+
* `closeWorkOrder`, `getReportedLines`, `listOrders`. A vertical imports those into
|
|
7
|
+
* its OWN operations and runs them inside its own transaction — Callout's
|
|
8
|
+
* `callout/complete-workorder` is a permission check and one call.
|
|
9
|
+
*
|
|
10
|
+
* So the registered operations below are thin by design: each is
|
|
11
|
+
* `assertAllowed(await ctx.check(PERM.…))` plus the matching export, and it is the
|
|
12
|
+
* export that carries the invariant. That is what lets a vertical extend by
|
|
13
|
+
* composition rather than by forking — and why the lifecycle check lives with the
|
|
14
|
+
* in-scope function (`lifecycle.ts`), where both routes in pass through it.
|
|
15
|
+
*
|
|
16
|
+
* This engine emits events as every engine does, but nothing composes it by
|
|
17
|
+
* consuming them: `invoicing` is the by-event engine downstream of
|
|
18
|
+
* `workorder.completed`, which is a different relationship from being composed.
|
|
19
|
+
*/
|
|
1
20
|
import { z } from 'zod';
|
|
2
|
-
import { addMoney, assertTransition, INVALID_TRANSITION, dataSubjectId, entityRef, money, mapPage, moduleManifest, moneyOf, permissionKey, listsDeclaredBy, substratError, } from '@substrat-run/contracts';
|
|
21
|
+
import { addMoney, assertTransition, INVALID_TRANSITION, dataSubjectId, entityRef, money, mapPage, moduleManifest, moneyOf, operationInputsOf, permissionKey, listsDeclaredBy, substratError, } from '@substrat-run/contracts';
|
|
3
22
|
/**
|
|
4
23
|
* The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
|
|
5
24
|
* `conflict` code (#113). Exported so a vertical can branch on WHY a refusal happened
|
|
@@ -133,6 +152,16 @@ export const createWorkOrderInput = z.object({
|
|
|
133
152
|
title: z.string().min(1),
|
|
134
153
|
description: z.string().optional(),
|
|
135
154
|
});
|
|
155
|
+
/**
|
|
156
|
+
* The inputs of the four in-scope functions extracted in #975 are the schemas
|
|
157
|
+
* their default operation bindings DECLARE — read from `operations.ts`, never
|
|
158
|
+
* restated here. One description of each input, parsed on the way in whether
|
|
159
|
+
* the call arrives through the operation or from a vertical's own code.
|
|
160
|
+
*/
|
|
161
|
+
export const assignWorkOrderInput = workorderOperations['workorder/assign'].input;
|
|
162
|
+
export const startWorkOrderInput = workorderOperations['workorder/start'].input;
|
|
163
|
+
export const reportTimeInput = workorderOperations['workorder/report-time'].input;
|
|
164
|
+
export const reportMaterialInput = workorderOperations['workorder/report-material'].input;
|
|
136
165
|
/**
|
|
137
166
|
* A work order as this engine PUBLISHES it — not as it stores it.
|
|
138
167
|
*
|
|
@@ -301,6 +330,90 @@ export function listOrders(ctx, page) {
|
|
|
301
330
|
export function getWorkOrder(ctx, orderId) {
|
|
302
331
|
return toWorkOrder(getRow(ctx, orderId));
|
|
303
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* Assign a technician. Records and emits; the order stays `planned` (§3).
|
|
335
|
+
*
|
|
336
|
+
* In-scope (K-16) since #975: `assignWorkOrder`, `startWorkOrder`, `reportTime`
|
|
337
|
+
* and `reportMaterial` used to live inline in their operation handlers, so a
|
|
338
|
+
* vertical could not assign, start or report inside its own transaction without
|
|
339
|
+
* forking — the exact failure the by-call shape exists to prevent. Each is now a
|
|
340
|
+
* plain export, and `workorder/assign` … `workorder/report-material` below are
|
|
341
|
+
* their default bindings. The CALLER owns the permission check, as with every
|
|
342
|
+
* other function in this section.
|
|
343
|
+
*/
|
|
344
|
+
export function assignWorkOrder(ctx, rawInput) {
|
|
345
|
+
const input = assignWorkOrderInput.parse(rawInput);
|
|
346
|
+
const row = getRow(ctx, input.orderId);
|
|
347
|
+
requireTransition(row, 'workorder/assign');
|
|
348
|
+
ctx.sql.exec('UPDATE workorder_orders SET assigned_to = ? WHERE id = ?', [
|
|
349
|
+
input.technician,
|
|
350
|
+
row.id,
|
|
351
|
+
]);
|
|
352
|
+
ctx.emit({
|
|
353
|
+
type: 'workorder.assigned',
|
|
354
|
+
schemaVersion: 1,
|
|
355
|
+
entity: orderRef(row.id),
|
|
356
|
+
piiClass: 'pseudonymous',
|
|
357
|
+
subjectId: dataSubjectId.parse(input.technician),
|
|
358
|
+
payload: { orderId: row.id, technician: input.technician },
|
|
359
|
+
});
|
|
360
|
+
return toWorkOrder(getRow(ctx, row.id));
|
|
361
|
+
}
|
|
362
|
+
/** planned → in_progress. See `assignWorkOrder` for why this is exported. */
|
|
363
|
+
export function startWorkOrder(ctx, rawInput) {
|
|
364
|
+
const input = startWorkOrderInput.parse(rawInput);
|
|
365
|
+
const row = getRow(ctx, input.orderId);
|
|
366
|
+
requireTransition(row, 'workorder/start');
|
|
367
|
+
ctx.sql.exec(`UPDATE workorder_orders SET status = 'in_progress' WHERE id = ?`, [row.id]);
|
|
368
|
+
ctx.emit({
|
|
369
|
+
type: 'workorder.started',
|
|
370
|
+
schemaVersion: 1,
|
|
371
|
+
entity: orderRef(row.id),
|
|
372
|
+
piiClass: 'none',
|
|
373
|
+
payload: { orderId: row.id },
|
|
374
|
+
});
|
|
375
|
+
return toWorkOrder(getRow(ctx, row.id));
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Append a time entry, attributed to the acting principal. Append-only: there
|
|
379
|
+
* is no update path, so a correction is another entry (§2).
|
|
380
|
+
*/
|
|
381
|
+
export function reportTime(ctx, rawInput) {
|
|
382
|
+
const input = reportTimeInput.parse(rawInput);
|
|
383
|
+
const hours = decimal.parse(input.hours);
|
|
384
|
+
const row = getRow(ctx, input.orderId);
|
|
385
|
+
requireTransition(row, 'workorder/report-time');
|
|
386
|
+
const id = ulid();
|
|
387
|
+
ctx.sql.exec(`INSERT INTO workorder_time_entries (id, order_id, technician, hours, note, reported_at)
|
|
388
|
+
VALUES (?, ?, ?, ?, ?, ?)`, [id, row.id, ctx.principal, hours, input.note ?? null, ctx.now()]);
|
|
389
|
+
ctx.emit({
|
|
390
|
+
type: 'workorder.time-reported',
|
|
391
|
+
schemaVersion: 1,
|
|
392
|
+
entity: orderRef(row.id),
|
|
393
|
+
piiClass: 'pseudonymous',
|
|
394
|
+
subjectId: dataSubjectId.parse(ctx.principal),
|
|
395
|
+
payload: { orderId: row.id, entryId: id, hours },
|
|
396
|
+
});
|
|
397
|
+
return returns(timeEntry, `time entry ${id}`, ctx.sql.query(`SELECT ${TIME_ENTRY_COLUMNS} FROM workorder_time_entries WHERE id = ?`, [id])[0]);
|
|
398
|
+
}
|
|
399
|
+
/** Append a material line, reported by the acting principal. Append-only, as above. */
|
|
400
|
+
export function reportMaterial(ctx, rawInput) {
|
|
401
|
+
const input = reportMaterialInput.parse(rawInput);
|
|
402
|
+
const qty = decimal.parse(input.qty);
|
|
403
|
+
const row = getRow(ctx, input.orderId);
|
|
404
|
+
requireTransition(row, 'workorder/report-material');
|
|
405
|
+
const id = ulid();
|
|
406
|
+
ctx.sql.exec(`INSERT INTO workorder_material_lines (id, order_id, article, qty, note, reported_by, reported_at)
|
|
407
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [id, row.id, input.article, qty, input.note ?? null, ctx.principal, ctx.now()]);
|
|
408
|
+
ctx.emit({
|
|
409
|
+
type: 'workorder.material-reported',
|
|
410
|
+
schemaVersion: 1,
|
|
411
|
+
entity: orderRef(row.id),
|
|
412
|
+
piiClass: 'none',
|
|
413
|
+
payload: { orderId: row.id, lineId: id, article: input.article, qty },
|
|
414
|
+
});
|
|
415
|
+
return returns(materialLine, `material line ${id}`, ctx.sql.query(`SELECT ${MATERIAL_LINE_COLUMNS} FROM workorder_material_lines WHERE id = ?`, [id])[0]);
|
|
416
|
+
}
|
|
304
417
|
export function completeWorkOrder(ctx, input) {
|
|
305
418
|
const row = getRow(ctx, input.orderId);
|
|
306
419
|
requireTransition(row, 'workorder/complete');
|
|
@@ -364,70 +477,19 @@ const listOp = async (ctx, input) => {
|
|
|
364
477
|
};
|
|
365
478
|
const assignOp = async (ctx, input) => {
|
|
366
479
|
assertAllowed(await ctx.check(PERM.assign));
|
|
367
|
-
|
|
368
|
-
requireTransition(row, 'workorder/assign');
|
|
369
|
-
ctx.sql.exec('UPDATE workorder_orders SET assigned_to = ? WHERE id = ?', [
|
|
370
|
-
input.technician,
|
|
371
|
-
row.id,
|
|
372
|
-
]);
|
|
373
|
-
ctx.emit({
|
|
374
|
-
type: 'workorder.assigned',
|
|
375
|
-
schemaVersion: 1,
|
|
376
|
-
entity: orderRef(row.id),
|
|
377
|
-
piiClass: 'pseudonymous',
|
|
378
|
-
subjectId: dataSubjectId.parse(input.technician),
|
|
379
|
-
payload: { orderId: row.id, technician: input.technician },
|
|
380
|
-
});
|
|
381
|
-
return toWorkOrder(getRow(ctx, row.id));
|
|
480
|
+
return assignWorkOrder(ctx, input);
|
|
382
481
|
};
|
|
383
482
|
const startOp = async (ctx, input) => {
|
|
384
483
|
assertAllowed(await ctx.check(PERM.report));
|
|
385
|
-
|
|
386
|
-
requireTransition(row, 'workorder/start');
|
|
387
|
-
ctx.sql.exec(`UPDATE workorder_orders SET status = 'in_progress' WHERE id = ?`, [row.id]);
|
|
388
|
-
ctx.emit({
|
|
389
|
-
type: 'workorder.started',
|
|
390
|
-
schemaVersion: 1,
|
|
391
|
-
entity: orderRef(row.id),
|
|
392
|
-
piiClass: 'none',
|
|
393
|
-
payload: { orderId: row.id },
|
|
394
|
-
});
|
|
395
|
-
return toWorkOrder(getRow(ctx, row.id));
|
|
484
|
+
return startWorkOrder(ctx, input);
|
|
396
485
|
};
|
|
397
486
|
const reportTimeOp = async (ctx, input) => {
|
|
398
487
|
assertAllowed(await ctx.check(PERM.report));
|
|
399
|
-
|
|
400
|
-
const row = getRow(ctx, input.orderId);
|
|
401
|
-
requireTransition(row, 'workorder/report-time');
|
|
402
|
-
const id = ulid();
|
|
403
|
-
ctx.sql.exec(`INSERT INTO workorder_time_entries (id, order_id, technician, hours, note, reported_at)
|
|
404
|
-
VALUES (?, ?, ?, ?, ?, ?)`, [id, row.id, ctx.principal, hours, input.note ?? null, ctx.now()]);
|
|
405
|
-
ctx.emit({
|
|
406
|
-
type: 'workorder.time-reported',
|
|
407
|
-
schemaVersion: 1,
|
|
408
|
-
entity: orderRef(row.id),
|
|
409
|
-
piiClass: 'pseudonymous',
|
|
410
|
-
subjectId: dataSubjectId.parse(ctx.principal),
|
|
411
|
-
payload: { orderId: row.id, entryId: id, hours },
|
|
412
|
-
});
|
|
413
|
-
return returns(timeEntry, `time entry ${id}`, ctx.sql.query(`SELECT ${TIME_ENTRY_COLUMNS} FROM workorder_time_entries WHERE id = ?`, [id])[0]);
|
|
488
|
+
return reportTime(ctx, input);
|
|
414
489
|
};
|
|
415
490
|
const reportMaterialOp = async (ctx, input) => {
|
|
416
491
|
assertAllowed(await ctx.check(PERM.report));
|
|
417
|
-
|
|
418
|
-
const row = getRow(ctx, input.orderId);
|
|
419
|
-
requireTransition(row, 'workorder/report-material');
|
|
420
|
-
const id = ulid();
|
|
421
|
-
ctx.sql.exec(`INSERT INTO workorder_material_lines (id, order_id, article, qty, note, reported_by, reported_at)
|
|
422
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`, [id, row.id, input.article, qty, input.note ?? null, ctx.principal, ctx.now()]);
|
|
423
|
-
ctx.emit({
|
|
424
|
-
type: 'workorder.material-reported',
|
|
425
|
-
schemaVersion: 1,
|
|
426
|
-
entity: orderRef(row.id),
|
|
427
|
-
piiClass: 'none',
|
|
428
|
-
payload: { orderId: row.id, lineId: id, article: input.article, qty },
|
|
429
|
-
});
|
|
430
|
-
return returns(materialLine, `material line ${id}`, ctx.sql.query(`SELECT ${MATERIAL_LINE_COLUMNS} FROM workorder_material_lines WHERE id = ?`, [id])[0]);
|
|
492
|
+
return reportMaterial(ctx, input);
|
|
431
493
|
};
|
|
432
494
|
const completeOp = async (ctx, input) => {
|
|
433
495
|
assertAllowed(await ctx.check(PERM.complete));
|
|
@@ -440,6 +502,10 @@ const closeOp = async (ctx, input) => {
|
|
|
440
502
|
export const workorderModule = {
|
|
441
503
|
manifest: workorderManifest,
|
|
442
504
|
migrations: workorderMigrations,
|
|
505
|
+
// The host parses every invocation against the same declaration the manifest
|
|
506
|
+
// and the routes come from, so "parse, don't trust" holds on every path in
|
|
507
|
+
// rather than in the handlers that remembered (#953).
|
|
508
|
+
operationInputs: operationInputsOf(workorderOperations),
|
|
443
509
|
operations: {
|
|
444
510
|
'workorder/get': getOp,
|
|
445
511
|
'workorder/list': listOp,
|
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/operations.d.ts
CHANGED
|
@@ -153,7 +153,7 @@ export declare const workorderOperations: {
|
|
|
153
153
|
};
|
|
154
154
|
readonly 'workorder/start': {
|
|
155
155
|
readonly summary: "Start the work";
|
|
156
|
-
readonly permission: "workorder:
|
|
156
|
+
readonly permission: "workorder:report";
|
|
157
157
|
readonly input: z.ZodObject<{
|
|
158
158
|
orderId: z.ZodString;
|
|
159
159
|
}, z.core.$strip>;
|
package/dist/operations.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAI9D,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,YAChC,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,CACT,CAAC;AAIX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAoB,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAI9D,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,YAChC,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,CACT,CAAC;AAIX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+E9B,CAAC"}
|
package/dist/operations.js
CHANGED
|
@@ -71,7 +71,11 @@ export const workorderOperations = defineOperations(workorderEntities, WORKORDER
|
|
|
71
71
|
},
|
|
72
72
|
'workorder/start': {
|
|
73
73
|
summary: 'Start the work',
|
|
74
|
-
|
|
74
|
+
// `workorder:report`, not `workorder:assign` (#960): the handler checks
|
|
75
|
+
// `PERM.report` and the manifest describes that key as "Start work, report
|
|
76
|
+
// time and material". `test/permissions.test.ts` holds every declaration
|
|
77
|
+
// here to the key its handler actually checks.
|
|
78
|
+
permission: 'workorder:report',
|
|
75
79
|
input: orderId,
|
|
76
80
|
output: workOrder,
|
|
77
81
|
},
|
package/dist/operations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../src/operations.ts"],"names":[],"mappings":"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"}
|
package/dist/seam.d.ts
CHANGED
|
@@ -1,64 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* "Parse, don't trust" was enforced in one direction only. Operation inputs go
|
|
5
|
-
* through Zod at the boundary; return values crossing the engine seam were
|
|
6
|
-
* trusted because TypeScript said so — and TypeScript is not there at runtime.
|
|
7
|
-
* The failure that lets through is precise: a vertical compiled against engine
|
|
8
|
-
* 0.3, running against engine 0.4, whose row shape moved. The vertical reads a
|
|
9
|
-
* field that is now `null`, or misses one that appeared, and the first symptom is
|
|
10
|
-
* wrong data on a screen rather than a throw.
|
|
11
|
-
*
|
|
12
|
-
* This file is the two halves of closing that:
|
|
13
|
-
*
|
|
14
|
-
* - `returns(schema, surface, value)` — every published shape is parsed on the way
|
|
15
|
-
* OUT, by the same schema a composing vertical declares its `output` with. The
|
|
16
|
-
* engine's five public surfaces (D-28) evolve additively *by review*; this makes
|
|
17
|
-
* a row that stopped matching the published shape a throw at the seam.
|
|
18
|
-
* - `columnsOf(schema)` — the SELECT list is DERIVED from the published schema, so
|
|
19
|
-
* a read asks for exactly the columns the seam promises. `SELECT *` pinned the
|
|
20
|
-
* public return shape to whatever the physical table currently held: a column
|
|
21
|
-
* added upstream leaked through the seam, and a column renamed became a missing
|
|
22
|
-
* field nothing noticed.
|
|
23
|
-
*
|
|
24
|
-
* ## Decisions (#771 open questions 1 and 2)
|
|
25
|
-
*
|
|
26
|
-
* **Parse always** — including on bulk reads. The boring answer, taken because no
|
|
27
|
-
* benchmark says otherwise and the alternative (dev-only validation) makes the
|
|
28
|
-
* check absent exactly where the version skew lives: in production, against an
|
|
29
|
-
* engine nobody in this repo deployed. Every read here is either one row or one
|
|
30
|
-
* page (#811), so the parsed set is bounded by construction.
|
|
31
|
-
*
|
|
32
|
-
* **A helper, not a convention.** One call site per surface, one spelling, and a
|
|
33
|
-
* shape `boundary-lint` can plausibly be taught to require of an exported in-scope
|
|
34
|
-
* function later — a convention repeated in seven engines is a habit, and habits
|
|
35
|
-
* are what the checkpoints in this repo exist to replace.
|
|
36
|
-
*/
|
|
37
|
-
import { z } from '@substrat-run/contracts';
|
|
38
|
-
/**
|
|
39
|
-
* Parse a value on its way ACROSS the seam, or refuse to publish it.
|
|
40
|
-
*
|
|
41
|
-
* The throw is `internal`, deliberately, and not `validation_failed`: the caller's
|
|
42
|
-
* input was already parsed and is not what went wrong — the engine's own stored
|
|
43
|
-
* row no longer matches the shape the engine publishes. `validation_failed` is a
|
|
44
|
-
* 400 blaming the caller for a fault on this side, and `toProblem` drops
|
|
45
|
-
* `internal`'s detail from the response body, so the drift is logged rather than
|
|
46
|
-
* handed to a client that can do nothing with it.
|
|
47
|
-
*/
|
|
48
|
-
export declare function returns<T>(schema: z.ZodType<T>, surface: string, value: unknown): T;
|
|
49
|
-
/**
|
|
50
|
-
* The SELECT list a schema describes: `'id, order_id, technician, …'`.
|
|
51
|
-
*
|
|
52
|
-
* Derived rather than transcribed, for the same reason the manifest's `lists` are
|
|
53
|
-
* derived from the operations' own `paged.over` — two descriptions of one column
|
|
54
|
-
* set is how they come to disagree. A column dropped from the table is then a SQL
|
|
55
|
-
* error naming it, and a column added to the table is simply never read.
|
|
56
|
-
*
|
|
57
|
-
* Structurally typed (`{ shape }`) rather than taking a `z.ZodObject`, so it
|
|
58
|
-
* accepts both the published schemas and the entity registry's row schema without
|
|
59
|
-
* either widening to `any`.
|
|
60
|
-
*/
|
|
61
|
-
export declare function columnsOf(schema: {
|
|
1
|
+
/** How this engine names itself in a seam failure. */
|
|
2
|
+
export declare const columnsOf: (schema: {
|
|
62
3
|
readonly shape: Readonly<Record<string, unknown>>;
|
|
63
|
-
}): string;
|
|
4
|
+
}) => string, returns: <T>(schema: import("zod").ZodType<T>, surface: string, value: unknown) => T;
|
|
64
5
|
//# sourceMappingURL=seam.d.ts.map
|
package/dist/seam.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAcA,sDAAsD;AACtD,eAAO,MAAQ,SAAS;;cAAE,OAAO,6EAAmC,CAAC"}
|
package/dist/seam.js
CHANGED
|
@@ -1,82 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The engine seam
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* This file is the two halves of closing that:
|
|
13
|
-
*
|
|
14
|
-
* - `returns(schema, surface, value)` — every published shape is parsed on the way
|
|
15
|
-
* OUT, by the same schema a composing vertical declares its `output` with. The
|
|
16
|
-
* engine's five public surfaces (D-28) evolve additively *by review*; this makes
|
|
17
|
-
* a row that stopped matching the published shape a throw at the seam.
|
|
18
|
-
* - `columnsOf(schema)` — the SELECT list is DERIVED from the published schema, so
|
|
19
|
-
* a read asks for exactly the columns the seam promises. `SELECT *` pinned the
|
|
20
|
-
* public return shape to whatever the physical table currently held: a column
|
|
21
|
-
* added upstream leaked through the seam, and a column renamed became a missing
|
|
22
|
-
* field nothing noticed.
|
|
23
|
-
*
|
|
24
|
-
* ## Decisions (#771 open questions 1 and 2)
|
|
25
|
-
*
|
|
26
|
-
* **Parse always** — including on bulk reads. The boring answer, taken because no
|
|
27
|
-
* benchmark says otherwise and the alternative (dev-only validation) makes the
|
|
28
|
-
* check absent exactly where the version skew lives: in production, against an
|
|
29
|
-
* engine nobody in this repo deployed. Every read here is either one row or one
|
|
30
|
-
* page (#811), so the parsed set is bounded by construction.
|
|
31
|
-
*
|
|
32
|
-
* **A helper, not a convention.** One call site per surface, one spelling, and a
|
|
33
|
-
* shape `boundary-lint` can plausibly be taught to require of an exported in-scope
|
|
34
|
-
* function later — a convention repeated in seven engines is a habit, and habits
|
|
35
|
-
* are what the checkpoints in this repo exist to replace.
|
|
2
|
+
* The engine seam (#771) for engine-workorder — the NAME, and nothing else.
|
|
3
|
+
*
|
|
4
|
+
* `returns(schema, surface, value)` and `columnsOf(schema)` live in
|
|
5
|
+
* `@substrat-run/contracts` (#970). Four engines carried byte-identical copies of
|
|
6
|
+
* the implementation, differing only in the name each put into a seam failure —
|
|
7
|
+
* so the seam had itself become the kind of convention-repeated-in-seven-engines
|
|
8
|
+
* that it was written to replace. The prose explaining what the two helpers are
|
|
9
|
+
* FOR, and why parsing is unconditional, lives with them in
|
|
10
|
+
* `packages/contracts/src/seam.ts`; this engine's reference conversion is the
|
|
11
|
+
* call sites in `index.ts`.
|
|
36
12
|
*/
|
|
37
|
-
import {
|
|
13
|
+
import { engineSeam } from '@substrat-run/contracts';
|
|
38
14
|
/** How this engine names itself in a seam failure. */
|
|
39
|
-
const
|
|
40
|
-
/**
|
|
41
|
-
* Parse a value on its way ACROSS the seam, or refuse to publish it.
|
|
42
|
-
*
|
|
43
|
-
* The throw is `internal`, deliberately, and not `validation_failed`: the caller's
|
|
44
|
-
* input was already parsed and is not what went wrong — the engine's own stored
|
|
45
|
-
* row no longer matches the shape the engine publishes. `validation_failed` is a
|
|
46
|
-
* 400 blaming the caller for a fault on this side, and `toProblem` drops
|
|
47
|
-
* `internal`'s detail from the response body, so the drift is logged rather than
|
|
48
|
-
* handed to a client that can do nothing with it.
|
|
49
|
-
*/
|
|
50
|
-
export function returns(schema, surface, value) {
|
|
51
|
-
const result = schema.safeParse(value);
|
|
52
|
-
if (result.success)
|
|
53
|
-
return result.data;
|
|
54
|
-
const issues = validationIssuesFrom(result.error)
|
|
55
|
-
.map((issue) => `${issue.path || '(root)'}: ${issue.message}`)
|
|
56
|
-
.join('; ');
|
|
57
|
-
throw substratError('internal', `${ENGINE}: ${surface} does not match the shape this engine publishes — ${issues}`);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* The SELECT list a schema describes: `'id, order_id, technician, …'`.
|
|
61
|
-
*
|
|
62
|
-
* Derived rather than transcribed, for the same reason the manifest's `lists` are
|
|
63
|
-
* derived from the operations' own `paged.over` — two descriptions of one column
|
|
64
|
-
* set is how they come to disagree. A column dropped from the table is then a SQL
|
|
65
|
-
* error naming it, and a column added to the table is simply never read.
|
|
66
|
-
*
|
|
67
|
-
* Structurally typed (`{ shape }`) rather than taking a `z.ZodObject`, so it
|
|
68
|
-
* accepts both the published schemas and the entity registry's row schema without
|
|
69
|
-
* either widening to `any`.
|
|
70
|
-
*/
|
|
71
|
-
export function columnsOf(schema) {
|
|
72
|
-
const names = Object.keys(schema.shape);
|
|
73
|
-
for (const name of names) {
|
|
74
|
-
// These are code-defined identifiers, never input — the check is here so that
|
|
75
|
-
// stays true of a schema key somebody adds later.
|
|
76
|
-
if (!/^[a-z_][a-z0-9_]*$/i.test(name)) {
|
|
77
|
-
throw new Error(`${ENGINE}: ${name} is not a column name`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return names.join(', ');
|
|
81
|
-
}
|
|
15
|
+
export const { columnsOf, returns } = engineSeam('engine-workorder');
|
|
82
16
|
//# sourceMappingURL=seam.js.map
|
package/dist/seam.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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-workorder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.2",
|
|
4
4
|
"description": "Substrat engine: work orders + time + material — one engine, one state machine, append-only reporting",
|
|
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/
|
|
29
|
-
"@substrat-run/
|
|
28
|
+
"@substrat-run/contracts": "^0.94.0",
|
|
29
|
+
"@substrat-run/kernel": "^0.94.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/
|
|
36
|
-
"@substrat-run/model-emit": "0.8.
|
|
37
|
-
"@substrat-run/
|
|
35
|
+
"@substrat-run/contract-tests": "^0.94.0",
|
|
36
|
+
"@substrat-run/model-emit": "0.8.9",
|
|
37
|
+
"@substrat-run/engine-test-kit": "^0.3.21"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"zod": "^4.4.0"
|