@substrat-run/engine-absence 0.5.3 → 0.5.4

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 CHANGED
@@ -129,36 +129,49 @@ export declare const absenceMigrations: {
129
129
  version: string;
130
130
  sql: string;
131
131
  }[];
132
- interface EntryRow {
133
- id: string;
134
- subject_type: string;
135
- subject_id: string;
136
- data_subject_id: string;
137
- leave_type_key: string;
138
- entry_kind: 'accrual' | 'booking' | 'correction' | 'carryover' | 'reversal';
139
- delta: string;
140
- effective_date: string;
141
- request_id: string | null;
142
- note: string | null;
143
- created_by: string;
144
- created_at: string;
145
- }
146
- interface RequestRow {
147
- id: string;
148
- subject_type: string;
149
- subject_id: string;
150
- data_subject_id: string;
151
- leave_type_key: string;
152
- start_date: string;
153
- end_date: string;
154
- days: string;
155
- status: 'requested' | 'approved' | 'rejected' | 'cancelled';
156
- note: string | null;
157
- decided_by: string | null;
158
- decided_at: string | null;
159
- created_by: string;
160
- created_at: string;
161
- }
132
+ declare const entryRow: z.ZodObject<{
133
+ id: z.ZodString;
134
+ subject_type: z.ZodString;
135
+ subject_id: z.ZodString;
136
+ data_subject_id: z.ZodString;
137
+ leave_type_key: z.ZodString;
138
+ entry_kind: z.ZodEnum<{
139
+ accrual: "accrual";
140
+ booking: "booking";
141
+ carryover: "carryover";
142
+ correction: "correction";
143
+ reversal: "reversal";
144
+ }>;
145
+ delta: z.ZodString;
146
+ effective_date: z.ZodString;
147
+ request_id: z.ZodNullable<z.ZodString>;
148
+ note: z.ZodNullable<z.ZodString>;
149
+ created_by: z.ZodString;
150
+ created_at: z.ZodString;
151
+ }, z.core.$strip>;
152
+ type EntryRow = z.infer<typeof entryRow>;
153
+ declare const requestRow: z.ZodObject<{
154
+ id: z.ZodString;
155
+ subject_type: z.ZodString;
156
+ subject_id: z.ZodString;
157
+ data_subject_id: z.ZodString;
158
+ leave_type_key: z.ZodString;
159
+ start_date: z.ZodString;
160
+ end_date: z.ZodString;
161
+ days: z.ZodString;
162
+ status: z.ZodEnum<{
163
+ approved: "approved";
164
+ cancelled: "cancelled";
165
+ rejected: "rejected";
166
+ requested: "requested";
167
+ }>;
168
+ note: z.ZodNullable<z.ZodString>;
169
+ decided_by: z.ZodNullable<z.ZodString>;
170
+ decided_at: z.ZodNullable<z.ZodString>;
171
+ created_by: z.ZodString;
172
+ created_at: z.ZodString;
173
+ }, z.core.$strip>;
174
+ type RequestRow = z.infer<typeof requestRow>;
162
175
  export declare function configureLeaveType(ctx: OperationContext, rawInput: ConfigureLeaveTypeInput): LeaveType;
163
176
  export declare function listLeaveTypes(ctx: OperationContext): LeaveType[];
164
177
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EASL,KAAK,SAAS,EAIf,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,YACnC,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,CACN,CAAC;AACX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAS9E,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,cAAc,cAAc,CAAC;AAG7B,OAAO,EAgBL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,sBAAsB,CAAC;AAgB9B,eAAO,MAAM,IAAI;IACf,IAAI;IACJ,OAAO;IACP,OAAO;IACP,SAAS;CACV,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;GA4C7B,CAAC;AAmBF,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;iBAaZ,CAAC;AACH,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEzC,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;iBAed,CAAC;AACH,KAAK,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAoL7C,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,uBAAuB,GAChC,SAAS,CA0BX;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,EAAE,CAIjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,YAAY,CAI3F;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,MAAM,CAsBR;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,cAAc,CA6CnG;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,kBAAkB,GAC3B;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CA4E3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,kBAAkB,GAC3B;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;CAAE,CAiD5D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CA6B9E;AAMD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;CAAE,GAC7D,cAAc,EAAE,CAalB;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,YAAY,EAAE,CAehB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;CAAE,GACtE,YAAY,EAAE,CAiBhB;AAoBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,CA4BpD;AAoJD,eAAO,MAAM,aAAa,EAAE,kBAgB3B,CAAC"}
package/dist/index.js CHANGED
@@ -24,7 +24,9 @@ export { absenceEntities, leaveTypeRow } from './entities.js';
24
24
  // a composing vertical imports one module, as it did when these lived inline.
25
25
  export { ABSENCE_PERMISSIONS, absenceOperations } from './operations.js';
26
26
  export * from './schemas.js';
27
- import { absenceSubject, isoDate, cancelAbsenceInput, configureLeaveTypeInput, decideAbsenceInput, recordEntryInput, requestAbsenceInput, } from './schemas.js';
27
+ import { leaveTypeRow } from './entities.js';
28
+ import { columnsOf, returns } from './seam.js';
29
+ import { absenceDay, absenceEntry, absenceRequest, absenceSubject, entryKind, isoDate, leaveType as leaveTypeShape, posDecimal, requestStatus, signedDecimal, cancelAbsenceInput, configureLeaveTypeInput, decideAbsenceInput, recordEntryInput, requestAbsenceInput, } from './schemas.js';
28
30
  import { assertAllowed, ulid, } from '@substrat-run/kernel';
29
31
  // ============================================================================
30
32
  // The absence engine (docs/engines/absence.md). Owns an APPEND-ONLY entry
@@ -126,58 +128,129 @@ export const absenceMigrations = [
126
128
  `,
127
129
  },
128
130
  ];
129
- const toEntry = (r) => ({
130
- id: r.id,
131
- subject: { entityType: r.subject_type, entityId: r.subject_id },
132
- leaveTypeKey: r.leave_type_key,
133
- entryKind: r.entry_kind,
134
- delta: r.delta,
135
- effectiveDate: r.effective_date,
136
- requestId: r.request_id,
137
- note: r.note,
138
- createdBy: r.created_by,
139
- createdAt: r.created_at,
131
+ const entryRow = z.object({
132
+ id: z.string(),
133
+ subject_type: z.string(),
134
+ subject_id: z.string(),
135
+ data_subject_id: z.string(),
136
+ leave_type_key: z.string(),
137
+ entry_kind: entryKind,
138
+ delta: signedDecimal,
139
+ effective_date: isoDate,
140
+ request_id: z.string().nullable(),
141
+ note: z.string().nullable(),
142
+ created_by: z.string(),
143
+ created_at: z.string(),
140
144
  });
141
- const toRequest = (r) => ({
142
- id: r.id,
143
- subject: { entityType: r.subject_type, entityId: r.subject_id },
144
- leaveTypeKey: r.leave_type_key,
145
- startDate: r.start_date,
146
- endDate: r.end_date,
147
- days: r.days,
148
- status: r.status,
149
- note: r.note,
150
- decidedBy: r.decided_by,
151
- decidedAt: r.decided_at,
152
- createdBy: r.created_by,
153
- createdAt: r.created_at,
154
- });
155
- const toLeaveType = (r) => ({
156
- key: r.key,
157
- floor: r.floor,
158
- active: r.active === 1,
159
- createdAt: r.created_at,
145
+ const requestRow = z.object({
146
+ id: z.string(),
147
+ subject_type: z.string(),
148
+ subject_id: z.string(),
149
+ data_subject_id: z.string(),
150
+ leave_type_key: z.string(),
151
+ start_date: isoDate,
152
+ end_date: isoDate,
153
+ days: posDecimal,
154
+ status: requestStatus,
155
+ note: z.string().nullable(),
156
+ decided_by: z.string().nullable(),
157
+ decided_at: z.string().nullable(),
158
+ created_by: z.string(),
159
+ created_at: z.string(),
160
160
  });
161
+ /**
162
+ * The SELECT lists, derived from the row schemas (#771).
163
+ *
164
+ * Never `SELECT *`: that pins the shape a read returns to whatever the physical
165
+ * table currently holds, which is the same trust-TypeScript hole `returns` closes
166
+ * from the other side. A column dropped from the table is then a SQL error naming
167
+ * it; a column added to the table is simply never read.
168
+ */
169
+ /** The single column `balanceAsOf` folds — a projection of `entryRow`, not a table. */
170
+ const ledgerDelta = entryRow.pick({ delta: true });
171
+ /** `availability`'s computed half, published as one array. */
172
+ const absenceDays = z.array(absenceDay);
173
+ const LEAVE_TYPE_COLUMNS = columnsOf(leaveTypeRow);
174
+ const ENTRY_COLUMNS = columnsOf(entryRow);
175
+ const REQUEST_COLUMNS = columnsOf(requestRow);
176
+ /** A stored row, parsed BEFORE anything is made of it. */
177
+ const storedLeaveType = (r) => returns(leaveTypeRow, `leave type row ${r.key}`, r);
178
+ const storedEntry = (r) => returns(entryRow, `ledger row ${r.id}`, r);
179
+ const storedRequest = (r) => returns(requestRow, `absence request row ${r.id}`, r);
180
+ /**
181
+ * A stored row, published (#771).
182
+ *
183
+ * The projection AND the parse in one place, because every path out of this
184
+ * engine that returns an entry, a request or a leave type goes through one of
185
+ * these three — the in-scope reads, the page walks, and each operation binding.
186
+ * `returns` refuses a row that no longer matches the published schema, which is
187
+ * the shape a composing vertical declared its `output` with when it compiled
188
+ * against some earlier version of this engine.
189
+ */
190
+ const toEntry = (raw) => {
191
+ const r = storedEntry(raw);
192
+ return returns(absenceEntry, `absence entry ${r.id}`, {
193
+ id: r.id,
194
+ subject: { entityType: r.subject_type, entityId: r.subject_id },
195
+ leaveTypeKey: r.leave_type_key,
196
+ entryKind: r.entry_kind,
197
+ delta: r.delta,
198
+ effectiveDate: r.effective_date,
199
+ requestId: r.request_id,
200
+ note: r.note,
201
+ createdBy: r.created_by,
202
+ createdAt: r.created_at,
203
+ });
204
+ };
205
+ const toRequest = (raw) => {
206
+ const r = storedRequest(raw);
207
+ return returns(absenceRequest, `absence request ${r.id}`, {
208
+ id: r.id,
209
+ subject: { entityType: r.subject_type, entityId: r.subject_id },
210
+ leaveTypeKey: r.leave_type_key,
211
+ startDate: r.start_date,
212
+ endDate: r.end_date,
213
+ days: r.days,
214
+ status: r.status,
215
+ note: r.note,
216
+ decidedBy: r.decided_by,
217
+ decidedAt: r.decided_at,
218
+ createdBy: r.created_by,
219
+ createdAt: r.created_at,
220
+ });
221
+ };
222
+ const toLeaveType = (raw) => {
223
+ const r = storedLeaveType(raw);
224
+ return returns(leaveTypeShape, `leave type ${r.key}`, {
225
+ key: r.key,
226
+ floor: r.floor,
227
+ active: r.active === 1,
228
+ createdAt: r.created_at,
229
+ });
230
+ };
161
231
  /** Negate a signed decimal string ('5' → '-5', '-5' → '5', '0' → '0'). */
162
232
  const negate = (d) => compareDecimal(d, '0') === 0 ? '0' : d.startsWith('-') ? d.slice(1) : `-${d}`;
163
233
  function getRequestRow(ctx, requestId) {
164
- const row = ctx.sql.query('SELECT * FROM absence_requests WHERE id = ?', [
165
- requestId,
166
- ])[0];
234
+ const row = ctx.sql.query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests WHERE id = ?`, [requestId])[0];
167
235
  if (!row)
168
236
  throw substratError('not_found', `absence request not found: ${requestId}`);
169
- return row;
237
+ return storedRequest(row);
170
238
  }
171
239
  function getLeaveTypeRow(ctx, key) {
172
- const row = ctx.sql.query('SELECT * FROM absence_leave_types WHERE key = ?', [
173
- key,
174
- ])[0];
240
+ const row = ctx.sql.query(`SELECT ${LEAVE_TYPE_COLUMNS} FROM absence_leave_types WHERE key = ?`, [key])[0];
175
241
  if (!row)
176
242
  throw substratError('not_found', `leave type not found: ${key}`);
177
- return row;
243
+ return storedLeaveType(row);
178
244
  }
179
245
  function getEntryRow(ctx, id) {
180
- return ctx.sql.query('SELECT * FROM absence_ledger WHERE id = ?', [id])[0];
246
+ const row = ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger WHERE id = ?`, [id])[0];
247
+ // Only ever called with an id this transaction just inserted, so this is a
248
+ // ledger-integrity claim rather than a lookup — but it must stay a CLASSIFIED
249
+ // engine error: `storedEntry` reads `r.id` to name the surface, so a bare `!`
250
+ // would answer an unclassified TypeError that `errorCodeOf` cannot read.
251
+ if (!row)
252
+ throw substratError('internal', `ledger entry ${id} vanished after insert`);
253
+ return storedEntry(row);
181
254
  }
182
255
  const subjectRefOf = (r) => ({
183
256
  entityType: r.subject_type,
@@ -252,7 +325,7 @@ export function configureLeaveType(ctx, rawInput) {
252
325
  }
253
326
  export function listLeaveTypes(ctx) {
254
327
  return ctx.sql
255
- .query('SELECT * FROM absence_leave_types ORDER BY key')
328
+ .query(`SELECT ${LEAVE_TYPE_COLUMNS} FROM absence_leave_types ORDER BY key`)
256
329
  .map(toLeaveType);
257
330
  }
258
331
  /**
@@ -277,7 +350,12 @@ export function balanceAsOf(ctx, input) {
277
350
  WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ? AND effective_date <= ?`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey, asOf])
278
351
  : ctx.sql.query(`SELECT delta FROM absence_ledger
279
352
  WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ?`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey]);
280
- return rows.reduce((sum, r) => addDecimal(sum, r.delta), '0');
353
+ // Each summand is parsed, not just the total: `addDecimal` over a drifted
354
+ // `delta` is the one path here that answers a *plausible number* rather than
355
+ // throwing — a balance nobody questions is exactly the wrong-data-on-a-screen
356
+ // failure #771 is about.
357
+ const balance = rows.reduce((sum, r) => addDecimal(sum, returns(ledgerDelta, 'ledger delta', r).delta), '0');
358
+ return returns(signedDecimal, `balance of '${input.leaveTypeKey}'`, balance);
281
359
  }
282
360
  export function requestAbsence(ctx, rawInput) {
283
361
  const input = requestAbsenceInput.parse(rawInput);
@@ -407,9 +485,10 @@ export function cancelAbsence(ctx, rawInput) {
407
485
  };
408
486
  let reversal = null;
409
487
  if (req.status === 'approved') {
410
- const booking = ctx.sql.query(`SELECT * FROM absence_ledger WHERE request_id = ? AND entry_kind = 'booking'`, [req.id])[0];
411
- if (!booking)
488
+ const bookingRow = ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger WHERE request_id = ? AND entry_kind = 'booking'`, [req.id])[0];
489
+ if (!bookingRow)
412
490
  throw substratError('internal', `approved request ${req.id} has no booking entry — ledger integrity violated`);
491
+ const booking = storedEntry(bookingRow);
413
492
  reversal = insertEntry(ctx, {
414
493
  subject,
415
494
  leaveTypeKey: req.leave_type_key,
@@ -446,9 +525,11 @@ export function cancelAbsence(ctx, rawInput) {
446
525
  */
447
526
  export function expireStaleRequests(ctx) {
448
527
  const today = ctx.now().slice(0, 10);
449
- const stale = ctx.sql.query(`SELECT * FROM absence_requests
528
+ const stale = ctx.sql
529
+ .query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests
450
530
  WHERE status = 'requested' AND start_date < ?
451
- ORDER BY start_date LIMIT 100`, [today]);
531
+ ORDER BY start_date LIMIT 100`, [today])
532
+ .map(storedRequest);
452
533
  const now = ctx.now();
453
534
  for (const req of stale) {
454
535
  ctx.sql.exec(`UPDATE absence_requests
@@ -480,15 +561,15 @@ export function listRequests(ctx, input) {
480
561
  where.push('status = ?');
481
562
  params.push(input.status);
482
563
  }
483
- const sql = `SELECT * FROM absence_requests${where.length ? ` WHERE ${where.join(' AND ')}` : ''} ORDER BY created_at DESC, id DESC`;
564
+ const sql = `SELECT ${REQUEST_COLUMNS} FROM absence_requests${where.length ? ` WHERE ${where.join(' AND ')}` : ''} ORDER BY created_at DESC, id DESC`;
484
565
  return ctx.sql.query(sql, params).map(toRequest);
485
566
  }
486
567
  export function listEntries(ctx, input) {
487
568
  const rows = input.leaveTypeKey
488
- ? ctx.sql.query(`SELECT * FROM absence_ledger
569
+ ? ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
489
570
  WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ?
490
571
  ORDER BY effective_date, id`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey])
491
- : ctx.sql.query(`SELECT * FROM absence_ledger
572
+ : ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
492
573
  WHERE subject_type = ? AND subject_id = ?
493
574
  ORDER BY effective_date, id`, [input.subject.entityType, input.subject.entityId]);
494
575
  return rows.map(toEntry);
@@ -502,10 +583,10 @@ export function entriesInWindow(ctx, input) {
502
583
  const from = isoDate.parse(input.from);
503
584
  const to = isoDate.parse(input.to);
504
585
  const rows = input.entryKind
505
- ? ctx.sql.query(`SELECT * FROM absence_ledger
586
+ ? ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
506
587
  WHERE effective_date >= ? AND effective_date <= ? AND entry_kind = ?
507
588
  ORDER BY subject_id, effective_date, id`, [from, to, input.entryKind])
508
- : ctx.sql.query(`SELECT * FROM absence_ledger
589
+ : ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
509
590
  WHERE effective_date >= ? AND effective_date <= ?
510
591
  ORDER BY subject_id, effective_date, id`, [from, to]);
511
592
  return rows.map(toEntry);
@@ -530,10 +611,12 @@ export function availability(ctx, input) {
530
611
  const to = isoDate.parse(input.to);
531
612
  if (to < from)
532
613
  throw substratError('validation_failed', `to ${to} precedes from ${from}`);
533
- const rows = ctx.sql.query(`SELECT * FROM absence_requests
614
+ const rows = ctx.sql
615
+ .query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests
534
616
  WHERE subject_type = ? AND subject_id = ? AND status = 'approved'
535
617
  AND start_date <= ? AND end_date >= ?
536
- ORDER BY start_date, id`, [input.subject.entityType, input.subject.entityId, to, from]);
618
+ ORDER BY start_date, id`, [input.subject.entityType, input.subject.entityId, to, from])
619
+ .map(storedRequest);
537
620
  const days = [];
538
621
  for (const req of rows) {
539
622
  const start = req.start_date < from ? from : req.start_date;
@@ -542,7 +625,13 @@ export function availability(ctx, input) {
542
625
  days.push({ date, leaveTypeKey: req.leave_type_key, requestId: req.id });
543
626
  }
544
627
  }
545
- return { days, requests: rows.map(toRequest) };
628
+ // The days are COMPUTED rather than stored, so nothing else parses them: the
629
+ // walk is driven by two stored dates, and a drifted one would answer a
630
+ // plausible calendar. The requests are each parsed by `toRequest`.
631
+ return {
632
+ days: returns(absenceDays, `availability of ${input.subject.entityId}`, days),
633
+ requests: rows.map(toRequest),
634
+ };
546
635
  }
547
636
  // ---------------------------------------------------------------------------
548
637
  // Default operation bindings — each starts with the permission check.
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,60 @@
1
+ /**
2
+ * The engine seam, PARSED rather than asserted (#771).
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, lifted from `engines/workorder`
13
+ * (the reference conversion) with only the engine's name changed:
14
+ *
15
+ * - `returns(schema, surface, value)` — every published shape is parsed on the way
16
+ * OUT, by the same schema a composing vertical declares its `output` with. The
17
+ * engine's public surfaces evolve additively *by review*; this makes a row that
18
+ * stopped matching the published shape a throw at the seam.
19
+ * - `columnsOf(schema)` — the SELECT list is DERIVED from the row schema, so a
20
+ * read asks for exactly the columns the seam promises. `SELECT *` pinned the
21
+ * public return shape to whatever the physical table currently held: a column
22
+ * added upstream leaked through the seam, and a column renamed became a missing
23
+ * field nothing noticed.
24
+ *
25
+ * **Parse always** — including the ledger fold. A balance is the sum of every
26
+ * `delta` in the ledger, so a `delta` that drifted is the one value here that
27
+ * would otherwise cross as a *number nobody questions*: wrong on a screen, never
28
+ * a throw. Dev-only validation would be absent exactly where the version skew
29
+ * lives — in production, against an engine nobody in this repo deployed. Every
30
+ * read here is one row, one subject's ledger, one page (#811), or one date
31
+ * window, so the parsed set is bounded by the caller's own window.
32
+ */
33
+ import { z } from '@substrat-run/contracts';
34
+ /**
35
+ * Parse a value on its way ACROSS the seam, or refuse to publish it.
36
+ *
37
+ * The throw is `internal`, deliberately, and not `validation_failed`: the caller's
38
+ * input was already parsed and is not what went wrong — the engine's own stored
39
+ * row no longer matches the shape the engine publishes. `validation_failed` is a
40
+ * 400 blaming the caller for a fault on this side, and `toProblem` drops
41
+ * `internal`'s detail from the response body, so the drift is logged rather than
42
+ * handed to a client that can do nothing with it.
43
+ */
44
+ export declare function returns<T>(schema: z.ZodType<T>, surface: string, value: unknown): T;
45
+ /**
46
+ * The SELECT list a schema describes: `'id, subject_type, subject_id, …'`.
47
+ *
48
+ * Derived rather than transcribed, for the same reason the manifest's `lists` are
49
+ * derived from the operations' own `paged.over` — two descriptions of one column
50
+ * set is how they come to disagree. A column dropped from the table is then a SQL
51
+ * error naming it, and a column added to the table is simply never read.
52
+ *
53
+ * Structurally typed (`{ shape }`) rather than taking a `z.ZodObject`, so it
54
+ * accepts both the entity registry's row schemas and a local row schema without
55
+ * either widening to `any`.
56
+ */
57
+ export declare function columnsOf(schema: {
58
+ readonly shape: Readonly<Record<string, unknown>>;
59
+ }): string;
60
+ //# sourceMappingURL=seam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.d.ts","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAuC,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAKjF;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAUnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,GAAG,MAAM,CAU/F"}
package/dist/seam.js ADDED
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The engine seam, PARSED rather than asserted (#771).
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, lifted from `engines/workorder`
13
+ * (the reference conversion) with only the engine's name changed:
14
+ *
15
+ * - `returns(schema, surface, value)` — every published shape is parsed on the way
16
+ * OUT, by the same schema a composing vertical declares its `output` with. The
17
+ * engine's public surfaces evolve additively *by review*; this makes a row that
18
+ * stopped matching the published shape a throw at the seam.
19
+ * - `columnsOf(schema)` — the SELECT list is DERIVED from the row schema, so a
20
+ * read asks for exactly the columns the seam promises. `SELECT *` pinned the
21
+ * public return shape to whatever the physical table currently held: a column
22
+ * added upstream leaked through the seam, and a column renamed became a missing
23
+ * field nothing noticed.
24
+ *
25
+ * **Parse always** — including the ledger fold. A balance is the sum of every
26
+ * `delta` in the ledger, so a `delta` that drifted is the one value here that
27
+ * would otherwise cross as a *number nobody questions*: wrong on a screen, never
28
+ * a throw. Dev-only validation would be absent exactly where the version skew
29
+ * lives — in production, against an engine nobody in this repo deployed. Every
30
+ * read here is one row, one subject's ledger, one page (#811), or one date
31
+ * window, so the parsed set is bounded by the caller's own window.
32
+ */
33
+ import { substratError, validationIssuesFrom, z } from '@substrat-run/contracts';
34
+ /** How this engine names itself in a seam failure. */
35
+ const ENGINE = 'engine-absence';
36
+ /**
37
+ * Parse a value on its way ACROSS the seam, or refuse to publish it.
38
+ *
39
+ * The throw is `internal`, deliberately, and not `validation_failed`: the caller's
40
+ * input was already parsed and is not what went wrong — the engine's own stored
41
+ * row no longer matches the shape the engine publishes. `validation_failed` is a
42
+ * 400 blaming the caller for a fault on this side, and `toProblem` drops
43
+ * `internal`'s detail from the response body, so the drift is logged rather than
44
+ * handed to a client that can do nothing with it.
45
+ */
46
+ export function returns(schema, surface, value) {
47
+ const result = schema.safeParse(value);
48
+ if (result.success)
49
+ return result.data;
50
+ const issues = validationIssuesFrom(result.error)
51
+ .map((issue) => `${issue.path || '(root)'}: ${issue.message}`)
52
+ .join('; ');
53
+ throw substratError('internal', `${ENGINE}: ${surface} does not match the shape this engine publishes — ${issues}`);
54
+ }
55
+ /**
56
+ * The SELECT list a schema describes: `'id, subject_type, subject_id, …'`.
57
+ *
58
+ * Derived rather than transcribed, for the same reason the manifest's `lists` are
59
+ * derived from the operations' own `paged.over` — two descriptions of one column
60
+ * set is how they come to disagree. A column dropped from the table is then a SQL
61
+ * error naming it, and a column added to the table is simply never read.
62
+ *
63
+ * Structurally typed (`{ shape }`) rather than taking a `z.ZodObject`, so it
64
+ * accepts both the entity registry's row schemas and a local row schema without
65
+ * either widening to `any`.
66
+ */
67
+ export function columnsOf(schema) {
68
+ const names = Object.keys(schema.shape);
69
+ for (const name of names) {
70
+ // These are code-defined identifiers, never input — the check is here so that
71
+ // stays true of a schema key somebody adds later.
72
+ if (!/^[a-z_][a-z0-9_]*$/i.test(name)) {
73
+ throw new Error(`${ENGINE}: ${name} is not a column name`);
74
+ }
75
+ }
76
+ return names.join(', ');
77
+ }
78
+ //# sourceMappingURL=seam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC,EAAE,MAAM,yBAAyB,CAAC;AAEjF,sDAAsD;AACtD,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAEhC;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAI,MAAoB,EAAE,OAAe,EAAE,KAAc;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;SAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,aAAa,CACjB,UAAU,EACV,GAAG,MAAM,KAAK,OAAO,qDAAqD,MAAM,EAAE,CACnF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,MAA6D;IACrF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,8EAA8E;QAC9E,kDAAkD;QAClD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,IAAI,uBAAuB,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/engine-absence",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Substrat engine: approved absence — an append-only entry ledger over an opaque subject, balance as a fold, approval as a state machine",
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.91.0",
29
- "@substrat-run/kernel": "^0.91.0"
28
+ "@substrat-run/contracts": "^0.92.0",
29
+ "@substrat-run/kernel": "^0.92.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.91.0",
36
- "@substrat-run/engine-test-kit": "^0.3.18",
37
- "@substrat-run/model-emit": "0.8.4"
35
+ "@substrat-run/contract-tests": "^0.92.0",
36
+ "@substrat-run/engine-test-kit": "^0.3.19",
37
+ "@substrat-run/model-emit": "0.8.6"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "zod": "^4.4.0"