@substrat-run/engine-absence 0.5.3 → 0.5.6
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 +56 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -73
- package/dist/index.js.map +1 -1
- package/dist/seam.d.ts +5 -0
- package/dist/seam.d.ts.map +1 -0
- package/dist/seam.js +19 -0
- package/dist/seam.js.map +1 -0
- package/package.json +6 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* engine-absence — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `configureLeaveType`, `recordEntry`,
|
|
5
|
+
* `requestAbsence`, `decideAbsence`, `cancelAbsence`, `expireStaleRequests`,
|
|
6
|
+
* `balanceAsOf`, `availability`, `entriesInWindow` and the reads beside them. A
|
|
7
|
+
* vertical imports those into its own operations and runs them inside its own
|
|
8
|
+
* transaction — Meridian composes exactly this way, which is why `operations.ts`
|
|
9
|
+
* declares no `http`: an engine owns no URL shape, and the bindings below are its
|
|
10
|
+
* default surface rather than the path any vertical serves.
|
|
11
|
+
*
|
|
12
|
+
* There are no consumers here. Nothing composes this engine by emitting at it.
|
|
13
|
+
*/
|
|
1
14
|
import { z } from 'zod';
|
|
2
15
|
import { type EntityRef } from '@substrat-run/contracts';
|
|
3
16
|
/**
|
|
@@ -129,36 +142,49 @@ export declare const absenceMigrations: {
|
|
|
129
142
|
version: string;
|
|
130
143
|
sql: string;
|
|
131
144
|
}[];
|
|
132
|
-
|
|
133
|
-
id:
|
|
134
|
-
subject_type:
|
|
135
|
-
subject_id:
|
|
136
|
-
data_subject_id:
|
|
137
|
-
leave_type_key:
|
|
138
|
-
entry_kind:
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
145
|
+
declare const entryRow: z.ZodObject<{
|
|
146
|
+
id: z.ZodString;
|
|
147
|
+
subject_type: z.ZodString;
|
|
148
|
+
subject_id: z.ZodString;
|
|
149
|
+
data_subject_id: z.ZodString;
|
|
150
|
+
leave_type_key: z.ZodString;
|
|
151
|
+
entry_kind: z.ZodEnum<{
|
|
152
|
+
accrual: "accrual";
|
|
153
|
+
booking: "booking";
|
|
154
|
+
carryover: "carryover";
|
|
155
|
+
correction: "correction";
|
|
156
|
+
reversal: "reversal";
|
|
157
|
+
}>;
|
|
158
|
+
delta: z.ZodString;
|
|
159
|
+
effective_date: z.ZodString;
|
|
160
|
+
request_id: z.ZodNullable<z.ZodString>;
|
|
161
|
+
note: z.ZodNullable<z.ZodString>;
|
|
162
|
+
created_by: z.ZodString;
|
|
163
|
+
created_at: z.ZodString;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
type EntryRow = z.infer<typeof entryRow>;
|
|
166
|
+
declare const requestRow: z.ZodObject<{
|
|
167
|
+
id: z.ZodString;
|
|
168
|
+
subject_type: z.ZodString;
|
|
169
|
+
subject_id: z.ZodString;
|
|
170
|
+
data_subject_id: z.ZodString;
|
|
171
|
+
leave_type_key: z.ZodString;
|
|
172
|
+
start_date: z.ZodString;
|
|
173
|
+
end_date: z.ZodString;
|
|
174
|
+
days: z.ZodString;
|
|
175
|
+
status: z.ZodEnum<{
|
|
176
|
+
approved: "approved";
|
|
177
|
+
cancelled: "cancelled";
|
|
178
|
+
rejected: "rejected";
|
|
179
|
+
requested: "requested";
|
|
180
|
+
}>;
|
|
181
|
+
note: z.ZodNullable<z.ZodString>;
|
|
182
|
+
decided_by: z.ZodNullable<z.ZodString>;
|
|
183
|
+
decided_at: z.ZodNullable<z.ZodString>;
|
|
184
|
+
created_by: z.ZodString;
|
|
185
|
+
created_at: z.ZodString;
|
|
186
|
+
}, z.core.$strip>;
|
|
187
|
+
type RequestRow = z.infer<typeof requestRow>;
|
|
162
188
|
export declare function configureLeaveType(ctx: OperationContext, rawInput: ConfigureLeaveTypeInput): LeaveType;
|
|
163
189
|
export declare function listLeaveTypes(ctx: OperationContext): LeaveType[];
|
|
164
190
|
/**
|
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,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* engine-absence — composed **by call**, not by event.
|
|
3
|
+
*
|
|
4
|
+
* The in-scope functions are the surface: `configureLeaveType`, `recordEntry`,
|
|
5
|
+
* `requestAbsence`, `decideAbsence`, `cancelAbsence`, `expireStaleRequests`,
|
|
6
|
+
* `balanceAsOf`, `availability`, `entriesInWindow` and the reads beside them. A
|
|
7
|
+
* vertical imports those into its own operations and runs them inside its own
|
|
8
|
+
* transaction — Meridian composes exactly this way, which is why `operations.ts`
|
|
9
|
+
* declares no `http`: an engine owns no URL shape, and the bindings below are its
|
|
10
|
+
* default surface rather than the path any vertical serves.
|
|
11
|
+
*
|
|
12
|
+
* There are no consumers here. Nothing composes this engine by emitting at it.
|
|
13
|
+
*/
|
|
1
14
|
import { z } from 'zod';
|
|
2
|
-
import { addDecimal, compareDecimal, dataSubjectId, entityRef, listLimitOf, moduleManifest, pageOf, permissionKey, substratError, } from '@substrat-run/contracts';
|
|
15
|
+
import { addDecimal, compareDecimal, dataSubjectId, entityRef, listLimitOf, moduleManifest, operationInputsOf, pageOf, pageOverFold, permissionKey, substratError, } from '@substrat-run/contracts';
|
|
3
16
|
/**
|
|
4
17
|
* The conflict reasons this engine raises — its own vocabulary, narrowing the platform's
|
|
5
18
|
* `conflict` code (#113). Exported so a vertical can branch on WHY a refusal happened
|
|
@@ -24,7 +37,10 @@ export { absenceEntities, leaveTypeRow } from './entities.js';
|
|
|
24
37
|
// a composing vertical imports one module, as it did when these lived inline.
|
|
25
38
|
export { ABSENCE_PERMISSIONS, absenceOperations } from './operations.js';
|
|
26
39
|
export * from './schemas.js';
|
|
27
|
-
import {
|
|
40
|
+
import { absenceOperations } from './operations.js';
|
|
41
|
+
import { leaveTypeRow } from './entities.js';
|
|
42
|
+
import { columnsOf, returns } from './seam.js';
|
|
43
|
+
import { absenceDay, absenceEntry, absenceRequest, absenceSubject, entryKind, isoDate, leaveType as leaveTypeShape, posDecimal, requestStatus, signedDecimal, cancelAbsenceInput, configureLeaveTypeInput, decideAbsenceInput, recordEntryInput, requestAbsenceInput, } from './schemas.js';
|
|
28
44
|
import { assertAllowed, ulid, } from '@substrat-run/kernel';
|
|
29
45
|
// ============================================================================
|
|
30
46
|
// The absence engine (docs/engines/absence.md). Owns an APPEND-ONLY entry
|
|
@@ -126,58 +142,129 @@ export const absenceMigrations = [
|
|
|
126
142
|
`,
|
|
127
143
|
},
|
|
128
144
|
];
|
|
129
|
-
const
|
|
130
|
-
id:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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,
|
|
145
|
+
const entryRow = 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
|
+
entry_kind: entryKind,
|
|
152
|
+
delta: signedDecimal,
|
|
153
|
+
effective_date: isoDate,
|
|
154
|
+
request_id: z.string().nullable(),
|
|
155
|
+
note: z.string().nullable(),
|
|
156
|
+
created_by: z.string(),
|
|
157
|
+
created_at: z.string(),
|
|
154
158
|
});
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
159
|
+
const requestRow = z.object({
|
|
160
|
+
id: z.string(),
|
|
161
|
+
subject_type: z.string(),
|
|
162
|
+
subject_id: z.string(),
|
|
163
|
+
data_subject_id: z.string(),
|
|
164
|
+
leave_type_key: z.string(),
|
|
165
|
+
start_date: isoDate,
|
|
166
|
+
end_date: isoDate,
|
|
167
|
+
days: posDecimal,
|
|
168
|
+
status: requestStatus,
|
|
169
|
+
note: z.string().nullable(),
|
|
170
|
+
decided_by: z.string().nullable(),
|
|
171
|
+
decided_at: z.string().nullable(),
|
|
172
|
+
created_by: z.string(),
|
|
173
|
+
created_at: z.string(),
|
|
160
174
|
});
|
|
175
|
+
/**
|
|
176
|
+
* The SELECT lists, derived from the row schemas (#771).
|
|
177
|
+
*
|
|
178
|
+
* Never `SELECT *`: that pins the shape a read returns to whatever the physical
|
|
179
|
+
* table currently holds, which is the same trust-TypeScript hole `returns` closes
|
|
180
|
+
* from the other side. A column dropped from the table is then a SQL error naming
|
|
181
|
+
* it; a column added to the table is simply never read.
|
|
182
|
+
*/
|
|
183
|
+
/** The single column `balanceAsOf` folds — a projection of `entryRow`, not a table. */
|
|
184
|
+
const ledgerDelta = entryRow.pick({ delta: true });
|
|
185
|
+
/** `availability`'s computed half, published as one array. */
|
|
186
|
+
const absenceDays = z.array(absenceDay);
|
|
187
|
+
const LEAVE_TYPE_COLUMNS = columnsOf(leaveTypeRow);
|
|
188
|
+
const ENTRY_COLUMNS = columnsOf(entryRow);
|
|
189
|
+
const REQUEST_COLUMNS = columnsOf(requestRow);
|
|
190
|
+
/** A stored row, parsed BEFORE anything is made of it. */
|
|
191
|
+
const storedLeaveType = (r) => returns(leaveTypeRow, `leave type row ${r.key}`, r);
|
|
192
|
+
const storedEntry = (r) => returns(entryRow, `ledger row ${r.id}`, r);
|
|
193
|
+
const storedRequest = (r) => returns(requestRow, `absence request row ${r.id}`, r);
|
|
194
|
+
/**
|
|
195
|
+
* A stored row, published (#771).
|
|
196
|
+
*
|
|
197
|
+
* The projection AND the parse in one place, because every path out of this
|
|
198
|
+
* engine that returns an entry, a request or a leave type goes through one of
|
|
199
|
+
* these three — the in-scope reads, the page walks, and each operation binding.
|
|
200
|
+
* `returns` refuses a row that no longer matches the published schema, which is
|
|
201
|
+
* the shape a composing vertical declared its `output` with when it compiled
|
|
202
|
+
* against some earlier version of this engine.
|
|
203
|
+
*/
|
|
204
|
+
const toEntry = (raw) => {
|
|
205
|
+
const r = storedEntry(raw);
|
|
206
|
+
return returns(absenceEntry, `absence entry ${r.id}`, {
|
|
207
|
+
id: r.id,
|
|
208
|
+
subject: { entityType: r.subject_type, entityId: r.subject_id },
|
|
209
|
+
leaveTypeKey: r.leave_type_key,
|
|
210
|
+
entryKind: r.entry_kind,
|
|
211
|
+
delta: r.delta,
|
|
212
|
+
effectiveDate: r.effective_date,
|
|
213
|
+
requestId: r.request_id,
|
|
214
|
+
note: r.note,
|
|
215
|
+
createdBy: r.created_by,
|
|
216
|
+
createdAt: r.created_at,
|
|
217
|
+
});
|
|
218
|
+
};
|
|
219
|
+
const toRequest = (raw) => {
|
|
220
|
+
const r = storedRequest(raw);
|
|
221
|
+
return returns(absenceRequest, `absence request ${r.id}`, {
|
|
222
|
+
id: r.id,
|
|
223
|
+
subject: { entityType: r.subject_type, entityId: r.subject_id },
|
|
224
|
+
leaveTypeKey: r.leave_type_key,
|
|
225
|
+
startDate: r.start_date,
|
|
226
|
+
endDate: r.end_date,
|
|
227
|
+
days: r.days,
|
|
228
|
+
status: r.status,
|
|
229
|
+
note: r.note,
|
|
230
|
+
decidedBy: r.decided_by,
|
|
231
|
+
decidedAt: r.decided_at,
|
|
232
|
+
createdBy: r.created_by,
|
|
233
|
+
createdAt: r.created_at,
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
const toLeaveType = (raw) => {
|
|
237
|
+
const r = storedLeaveType(raw);
|
|
238
|
+
return returns(leaveTypeShape, `leave type ${r.key}`, {
|
|
239
|
+
key: r.key,
|
|
240
|
+
floor: r.floor,
|
|
241
|
+
active: r.active === 1,
|
|
242
|
+
createdAt: r.created_at,
|
|
243
|
+
});
|
|
244
|
+
};
|
|
161
245
|
/** Negate a signed decimal string ('5' → '-5', '-5' → '5', '0' → '0'). */
|
|
162
246
|
const negate = (d) => compareDecimal(d, '0') === 0 ? '0' : d.startsWith('-') ? d.slice(1) : `-${d}`;
|
|
163
247
|
function getRequestRow(ctx, requestId) {
|
|
164
|
-
const row = ctx.sql.query(
|
|
165
|
-
requestId,
|
|
166
|
-
])[0];
|
|
248
|
+
const row = ctx.sql.query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests WHERE id = ?`, [requestId])[0];
|
|
167
249
|
if (!row)
|
|
168
250
|
throw substratError('not_found', `absence request not found: ${requestId}`);
|
|
169
|
-
return row;
|
|
251
|
+
return storedRequest(row);
|
|
170
252
|
}
|
|
171
253
|
function getLeaveTypeRow(ctx, key) {
|
|
172
|
-
const row = ctx.sql.query(
|
|
173
|
-
key,
|
|
174
|
-
])[0];
|
|
254
|
+
const row = ctx.sql.query(`SELECT ${LEAVE_TYPE_COLUMNS} FROM absence_leave_types WHERE key = ?`, [key])[0];
|
|
175
255
|
if (!row)
|
|
176
256
|
throw substratError('not_found', `leave type not found: ${key}`);
|
|
177
|
-
return row;
|
|
257
|
+
return storedLeaveType(row);
|
|
178
258
|
}
|
|
179
259
|
function getEntryRow(ctx, id) {
|
|
180
|
-
|
|
260
|
+
const row = ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger WHERE id = ?`, [id])[0];
|
|
261
|
+
// Only ever called with an id this transaction just inserted, so this is a
|
|
262
|
+
// ledger-integrity claim rather than a lookup — but it must stay a CLASSIFIED
|
|
263
|
+
// engine error: `storedEntry` reads `r.id` to name the surface, so a bare `!`
|
|
264
|
+
// would answer an unclassified TypeError that `errorCodeOf` cannot read.
|
|
265
|
+
if (!row)
|
|
266
|
+
throw substratError('internal', `ledger entry ${id} vanished after insert`);
|
|
267
|
+
return storedEntry(row);
|
|
181
268
|
}
|
|
182
269
|
const subjectRefOf = (r) => ({
|
|
183
270
|
entityType: r.subject_type,
|
|
@@ -252,7 +339,7 @@ export function configureLeaveType(ctx, rawInput) {
|
|
|
252
339
|
}
|
|
253
340
|
export function listLeaveTypes(ctx) {
|
|
254
341
|
return ctx.sql
|
|
255
|
-
.query(
|
|
342
|
+
.query(`SELECT ${LEAVE_TYPE_COLUMNS} FROM absence_leave_types ORDER BY key`)
|
|
256
343
|
.map(toLeaveType);
|
|
257
344
|
}
|
|
258
345
|
/**
|
|
@@ -277,7 +364,12 @@ export function balanceAsOf(ctx, input) {
|
|
|
277
364
|
WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ? AND effective_date <= ?`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey, asOf])
|
|
278
365
|
: ctx.sql.query(`SELECT delta FROM absence_ledger
|
|
279
366
|
WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ?`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey]);
|
|
280
|
-
|
|
367
|
+
// Each summand is parsed, not just the total: `addDecimal` over a drifted
|
|
368
|
+
// `delta` is the one path here that answers a *plausible number* rather than
|
|
369
|
+
// throwing — a balance nobody questions is exactly the wrong-data-on-a-screen
|
|
370
|
+
// failure #771 is about.
|
|
371
|
+
const balance = rows.reduce((sum, r) => addDecimal(sum, returns(ledgerDelta, 'ledger delta', r).delta), '0');
|
|
372
|
+
return returns(signedDecimal, `balance of '${input.leaveTypeKey}'`, balance);
|
|
281
373
|
}
|
|
282
374
|
export function requestAbsence(ctx, rawInput) {
|
|
283
375
|
const input = requestAbsenceInput.parse(rawInput);
|
|
@@ -407,9 +499,10 @@ export function cancelAbsence(ctx, rawInput) {
|
|
|
407
499
|
};
|
|
408
500
|
let reversal = null;
|
|
409
501
|
if (req.status === 'approved') {
|
|
410
|
-
const
|
|
411
|
-
if (!
|
|
502
|
+
const bookingRow = ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger WHERE request_id = ? AND entry_kind = 'booking'`, [req.id])[0];
|
|
503
|
+
if (!bookingRow)
|
|
412
504
|
throw substratError('internal', `approved request ${req.id} has no booking entry — ledger integrity violated`);
|
|
505
|
+
const booking = storedEntry(bookingRow);
|
|
413
506
|
reversal = insertEntry(ctx, {
|
|
414
507
|
subject,
|
|
415
508
|
leaveTypeKey: req.leave_type_key,
|
|
@@ -446,9 +539,11 @@ export function cancelAbsence(ctx, rawInput) {
|
|
|
446
539
|
*/
|
|
447
540
|
export function expireStaleRequests(ctx) {
|
|
448
541
|
const today = ctx.now().slice(0, 10);
|
|
449
|
-
const stale = ctx.sql
|
|
542
|
+
const stale = ctx.sql
|
|
543
|
+
.query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests
|
|
450
544
|
WHERE status = 'requested' AND start_date < ?
|
|
451
|
-
ORDER BY start_date LIMIT 100`, [today])
|
|
545
|
+
ORDER BY start_date LIMIT 100`, [today])
|
|
546
|
+
.map(storedRequest);
|
|
452
547
|
const now = ctx.now();
|
|
453
548
|
for (const req of stale) {
|
|
454
549
|
ctx.sql.exec(`UPDATE absence_requests
|
|
@@ -480,15 +575,15 @@ export function listRequests(ctx, input) {
|
|
|
480
575
|
where.push('status = ?');
|
|
481
576
|
params.push(input.status);
|
|
482
577
|
}
|
|
483
|
-
const sql = `SELECT
|
|
578
|
+
const sql = `SELECT ${REQUEST_COLUMNS} FROM absence_requests${where.length ? ` WHERE ${where.join(' AND ')}` : ''} ORDER BY created_at DESC, id DESC`;
|
|
484
579
|
return ctx.sql.query(sql, params).map(toRequest);
|
|
485
580
|
}
|
|
486
581
|
export function listEntries(ctx, input) {
|
|
487
582
|
const rows = input.leaveTypeKey
|
|
488
|
-
? ctx.sql.query(`SELECT
|
|
583
|
+
? ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
|
|
489
584
|
WHERE subject_type = ? AND subject_id = ? AND leave_type_key = ?
|
|
490
585
|
ORDER BY effective_date, id`, [input.subject.entityType, input.subject.entityId, input.leaveTypeKey])
|
|
491
|
-
: ctx.sql.query(`SELECT
|
|
586
|
+
: ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
|
|
492
587
|
WHERE subject_type = ? AND subject_id = ?
|
|
493
588
|
ORDER BY effective_date, id`, [input.subject.entityType, input.subject.entityId]);
|
|
494
589
|
return rows.map(toEntry);
|
|
@@ -502,10 +597,10 @@ export function entriesInWindow(ctx, input) {
|
|
|
502
597
|
const from = isoDate.parse(input.from);
|
|
503
598
|
const to = isoDate.parse(input.to);
|
|
504
599
|
const rows = input.entryKind
|
|
505
|
-
? ctx.sql.query(`SELECT
|
|
600
|
+
? ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
|
|
506
601
|
WHERE effective_date >= ? AND effective_date <= ? AND entry_kind = ?
|
|
507
602
|
ORDER BY subject_id, effective_date, id`, [from, to, input.entryKind])
|
|
508
|
-
: ctx.sql.query(`SELECT
|
|
603
|
+
: ctx.sql.query(`SELECT ${ENTRY_COLUMNS} FROM absence_ledger
|
|
509
604
|
WHERE effective_date >= ? AND effective_date <= ?
|
|
510
605
|
ORDER BY subject_id, effective_date, id`, [from, to]);
|
|
511
606
|
return rows.map(toEntry);
|
|
@@ -530,10 +625,12 @@ export function availability(ctx, input) {
|
|
|
530
625
|
const to = isoDate.parse(input.to);
|
|
531
626
|
if (to < from)
|
|
532
627
|
throw substratError('validation_failed', `to ${to} precedes from ${from}`);
|
|
533
|
-
const rows = ctx.sql
|
|
628
|
+
const rows = ctx.sql
|
|
629
|
+
.query(`SELECT ${REQUEST_COLUMNS} FROM absence_requests
|
|
534
630
|
WHERE subject_type = ? AND subject_id = ? AND status = 'approved'
|
|
535
631
|
AND start_date <= ? AND end_date >= ?
|
|
536
|
-
ORDER BY start_date, id`, [input.subject.entityType, input.subject.entityId, to, from])
|
|
632
|
+
ORDER BY start_date, id`, [input.subject.entityType, input.subject.entityId, to, from])
|
|
633
|
+
.map(storedRequest);
|
|
537
634
|
const days = [];
|
|
538
635
|
for (const req of rows) {
|
|
539
636
|
const start = req.start_date < from ? from : req.start_date;
|
|
@@ -542,37 +639,31 @@ export function availability(ctx, input) {
|
|
|
542
639
|
days.push({ date, leaveTypeKey: req.leave_type_key, requestId: req.id });
|
|
543
640
|
}
|
|
544
641
|
}
|
|
545
|
-
|
|
642
|
+
// The days are COMPUTED rather than stored, so nothing else parses them: the
|
|
643
|
+
// walk is driven by two stored dates, and a drifted one would answer a
|
|
644
|
+
// plausible calendar. The requests are each parsed by `toRequest`.
|
|
645
|
+
return {
|
|
646
|
+
days: returns(absenceDays, `availability of ${input.subject.entityId}`, days),
|
|
647
|
+
requests: rows.map(toRequest),
|
|
648
|
+
};
|
|
546
649
|
}
|
|
547
650
|
// ---------------------------------------------------------------------------
|
|
548
651
|
// Default operation bindings — each starts with the permission check.
|
|
549
652
|
// ---------------------------------------------------------------------------
|
|
550
653
|
/**
|
|
551
|
-
*
|
|
654
|
+
* Why all three of this engine's list reads take their page off a fold (#811).
|
|
552
655
|
*
|
|
553
|
-
*
|
|
656
|
+
* `pageOverFold` is `@substrat-run/contracts`'; what is particular to this engine
|
|
657
|
+
* is that none of its three reads CAN be kernel-composed, and the reason is
|
|
554
658
|
* structural rather than a shortcut: `absenceEntities` declares exactly one
|
|
555
659
|
* entity, `leave-type`. The ledger and the request book are ROWS this engine
|
|
556
660
|
* owns — an accrual is not something a grant narrows to — so `paged.over` has
|
|
557
661
|
* nothing to name for them, and the leave-type read answers the PROJECTION
|
|
558
|
-
* (`active` as a boolean) rather than the stored row.
|
|
559
|
-
* page is taken off it, exactly as rally's folds do.
|
|
662
|
+
* (`active` as a boolean) rather than the stored row.
|
|
560
663
|
*
|
|
561
|
-
*
|
|
562
|
-
* sorted; each declaration in `operations.ts` says which field that is.
|
|
664
|
+
* The cursor must be UNIQUE among the rows and must move in the direction they
|
|
665
|
+
* are sorted; each declaration in `operations.ts` says which field that is.
|
|
563
666
|
*/
|
|
564
|
-
function pageOverFold(rows, page, key, direction = 'asc') {
|
|
565
|
-
const limit = listLimitOf(page.limit);
|
|
566
|
-
const cursor = page.cursor;
|
|
567
|
-
const past = (row) => (direction === 'asc' ? key(row) > cursor : key(row) < cursor);
|
|
568
|
-
const after = cursor === undefined
|
|
569
|
-
? 0
|
|
570
|
-
: (() => {
|
|
571
|
-
const i = rows.findIndex(past);
|
|
572
|
-
return i < 0 ? rows.length : i;
|
|
573
|
-
})();
|
|
574
|
-
return pageOf(rows.slice(after, after + limit), limit, key);
|
|
575
|
-
}
|
|
576
667
|
const configureLeaveTypeOp = async (ctx, input) => {
|
|
577
668
|
assertAllowed(await ctx.check(PERM.configure));
|
|
578
669
|
return configureLeaveType(ctx, input);
|
|
@@ -648,6 +739,10 @@ const listEntriesOp = async (ctx, input) => {
|
|
|
648
739
|
export const absenceModule = {
|
|
649
740
|
manifest: absenceManifest,
|
|
650
741
|
migrations: absenceMigrations,
|
|
742
|
+
// The host parses every invocation against the same declaration the manifest
|
|
743
|
+
// and the routes come from, so "parse, don't trust" holds on every path in
|
|
744
|
+
// rather than in the handlers that remembered (#953).
|
|
745
|
+
operationInputs: operationInputsOf(absenceOperations),
|
|
651
746
|
operations: {
|
|
652
747
|
'absence/configure-leave-type': configureLeaveTypeOp,
|
|
653
748
|
'absence/list-leave-types': listLeaveTypesOp,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,cAAc,EACd,MAAM,EACN,aAAa,EAIb,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,sBAAsB;IACtB,qBAAqB;IACrB,cAAc;CACN,CAAC;AAGX,gGAAgG;AAChG,MAAM,QAAQ,GAAG,CAAC,MAA6B,EAAE,OAAe,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAGpH,4EAA4E;AAC5E,+EAA+E;AAC/E,sEAAsE;AACtE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,iFAAiF;AACjF,8EAA8E;AAC9E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GAWpB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,IAAI,GAIL,MAAM,sBAAsB,CAAC;AAE9B,+EAA+E;AAC/E,0EAA0E;AAC1E,0EAA0E;AAC1E,gFAAgF;AAChF,6CAA6C;AAC7C,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,2DAA2D;AAC3D,+EAA+E;AAE/E,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC;IACzC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC/C,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC/C,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC;IAClD,EAAE,EAAE,8BAA8B;IAClC,OAAO,EAAE,OAAO;IAChB,cAAc,EAAE,QAAQ;IACxB,WAAW,EAAE;QACX,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,mDAAmD,EAAE;QACzF,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,oDAAoD,EAAE;QAC7F,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,6CAA6C,EAAE;QACtF,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,oEAAoE,EAAE;KAChH;IACD,MAAM,EAAE;QACN,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,+BAA+B,EAAE,aAAa,EAAE,CAAC,EAAE;YAC3D,EAAE,IAAI,EAAE,wBAAwB,EAAE,aAAa,EAAE,CAAC,EAAE;YACpD,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC7C,EAAE,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,CAAC,EAAE;YAC/C,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC,EAAE;SAC9C;QACD,QAAQ,EAAE,EAAE;KACb;IACD,UAAU,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE;IACnE,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,SAAS;IACzB,8EAA8E;IAC9E,6EAA6E;IAC7E,8CAA8C;IAC9C,SAAS,EAAE;QACT;YACE,SAAS,EAAE,sBAAsB;YACjC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YAC/B,WAAW,EAAE,CAAC,iBAAiB,CAAC;SACjC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;QACE,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAuCJ;KACF;CACF,CAAC;AA8CF,MAAM,OAAO,GAAG,CAAC,CAAW,EAAgB,EAAE,CAAC,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IAC/D,YAAY,EAAE,CAAC,CAAC,cAAc;IAC9B,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,aAAa,EAAE,CAAC,CAAC,cAAc;IAC/B,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;CACxB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,CAAa,EAAkB,EAAE,CAAC,CAAC;IACpD,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,UAAU,EAAE;IAC/D,YAAY,EAAE,CAAC,CAAC,cAAc;IAC9B,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,OAAO,EAAE,CAAC,CAAC,QAAQ;IACnB,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,MAAM,EAAE,CAAC,CAAC,MAAM;IAChB,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;IACvB,SAAS,EAAE,CAAC,CAAC,UAAU;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAe,EAAa,EAAE,CAAC,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;IACtB,SAAS,EAAE,CAAC,CAAC,UAAU;CACxB,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CACnC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AAEhF,SAAS,aAAa,CAAC,GAAqB,EAAE,SAAiB;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAa,6CAA6C,EAAE;QACnF,SAAS;KACV,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,GAAG;QAAE,MAAM,aAAa,CAAC,WAAW,EAAE,8BAA8B,SAAS,EAAE,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,GAAqB,EAAE,GAAW;IACzD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAe,iDAAiD,EAAE;QACzF,GAAG;KACJ,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,CAAC,GAAG;QAAE,MAAM,aAAa,CAAC,WAAW,EAAE,yBAAyB,GAAG,EAAE,CAAC,CAAC;IAC3E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,GAAqB,EAAE,EAAU;IACpD,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAW,2CAA2C,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;AACxF,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAA+C,EAAa,EAAE,CAAC,CAAC;IACpF,UAAU,EAAE,CAAC,CAAC,YAAY;IAC1B,QAAQ,EAAE,CAAC,CAAC,UAAU;CACvB,CAAC,CAAC;AAEH,SAAS,WAAW,CAClB,GAAqB,EACrB,KAQC;IAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;iDAG6C,EAC7C;QACE,EAAE;QACF,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC1B,KAAK,CAAC,OAAO,CAAC,aAAa;QAC3B,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,aAAa;QACnB,KAAK,CAAC,SAAS,IAAI,IAAI;QACvB,KAAK,CAAC,IAAI,IAAI,IAAI;QAClB,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,GAAG,EAAE;KACV,CACF,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,wBAAwB;QAC9B,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;QACzB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;QACtC,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;SACnC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,2EAA2E;AAC3E,sDAAsD;AACtD,8EAA8E;AAE9E,MAAM,UAAU,kBAAkB,CAChC,GAAqB,EACrB,QAAiC;IAEjC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;;oCAIgC,EAChC;QACE,KAAK,CAAC,GAAG;QACT,KAAK,CAAC,KAAK,IAAI,GAAG;QAClB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,GAAG,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,KAAK,IAAI,IAAI;QACnB,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD,CACF,CAAC;IACF,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,+BAA+B;QACrC,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE;QACjE,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;KACtE,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,OAAO,GAAG,CAAC,GAAG;SACX,KAAK,CAAe,gDAAgD,CAAC;SACrE,GAAG,CAAC,WAAW,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,QAA0B;IAC3E,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/C,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,WAAW,CACzB,GAAqB,EACrB,KAAkE;IAElE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,IAAI;QACf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;mGAC2F,EAC3F,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,CAC7E;QACH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;2EACmE,EACnE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CACvE,CAAC;IACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB,EAAE,QAA6B;IACjF,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,aAAa,CAAC,mBAAmB,EAAE,WAAW,KAAK,CAAC,OAAO,uBAAuB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,CAAC,qBAAqB,EAAE,eAAe,KAAK,CAAC,YAAY,eAAe,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;2DAGuD,EACvD;QACE,EAAE;QACF,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ;QAC1B,KAAK,CAAC,OAAO,CAAC,aAAa;QAC3B,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,IAAI;QACV,KAAK,CAAC,IAAI,IAAI,IAAI;QAClB,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,GAAG,EAAE;KACV,CACF,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;QACzB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa;QACtC,OAAO,EAAE;YACP,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB;KACF,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAqB,EACrB,QAA4B;IAE5B,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,4EAA4E;IAC5E,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,cAAc,EAAE,mBAAmB,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,6CAA6C,CAAC,CAAC;IAC3H,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAmB;QAC9B,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;KACxD,CAAC;IAEF,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,wHAAwH,EACxH,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CACjD,CAAC;QACF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,OAAO,CAAC,aAAa;YAChC,OAAO,EAAE;gBACP,SAAS,EAAE,GAAG,CAAC,EAAE;gBACjB,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,YAAY,EAAE,GAAG,CAAC,cAAc;gBAChC,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI;aAChB;SACF,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,4CAA4C;IAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7F,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,MAAM,QAAQ,CAAC,sBAAsB,EACnC,yBAAyB,OAAO,eAAe,GAAG,CAAC,cAAc,YAAY,SAAS,CAAC,KAAK,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAC3H,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,OAAO;QACP,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACvB,aAAa,EAAE,GAAG,CAAC,UAAU;QAC7B,SAAS,EAAE,GAAG,CAAC,EAAE;QACjB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,8FAA8F,EAC9F,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAC7B,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,iBAAiB;QACvB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,OAAO,EAAE;YACP,SAAS,EAAE,GAAG,CAAC,EAAE;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG;YACpB,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;SACtB;KACF,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAqB,EACrB,QAA4B;IAE5B,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC5D,MAAM,QAAQ,CAAC,cAAc,EAAE,mBAAmB,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,iDAAiD,CAAC,CAAC;IAC/H,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,OAAO,GAAmB;QAC9B,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;KACxD,CAAC;IAEF,IAAI,QAAQ,GAAwB,IAAI,CAAC;IACzC,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAC3B,8EAA8E,EAC9E,CAAC,GAAG,CAAC,EAAE,CAAC,CACT,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,OAAO;YAAE,MAAM,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,CAAC,EAAE,mDAAmD,CAAC,CAAC;QAC7H,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAC1B,OAAO;YACP,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,SAAS,EAAE,UAAU;YACrB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5B,aAAa,EAAE,OAAO,CAAC,cAAc;YACrC,SAAS,EAAE,GAAG,CAAC,EAAE;YACjB,IAAI,EAAE,KAAK,CAAC,MAAM;SACnB,CAAC,CAAC;IACL,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,yGAAyG,EACzG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CACpC,CAAC;IACF,GAAG,CAAC,IAAI,CAAC;QACP,IAAI,EAAE,mBAAmB;QACzB,aAAa,EAAE,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,OAAO,EAAE;YACP,SAAS,EAAE,GAAG,CAAC,EAAE;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG;YACpB,YAAY,EAAE,GAAG,CAAC,cAAc;YAChC,WAAW,EAAE,GAAG,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI;SACjC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAqB;IACvD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CACzB;;qCAEiC,EACjC,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,GAAG,CAAC,GAAG,CAAC,IAAI,CACV;;;qBAGe,EACf,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CACd,CAAC;QACF,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,iBAAiB;YACvB,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;YACzB,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;YACnD,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE;SACtF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAC1B,GAAqB,EACrB,KAA8D;IAE9D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,GAAG,GAAG,iCAAiC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oCAAoC,CAAC;IACrI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAa,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,GAAqB,EACrB,KAAoD;IAEpD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY;QAC7B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;;sCAE8B,EAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,CACvE;QACH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;;sCAE8B,EAC9B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CACnD,CAAC;IACN,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAqB,EACrB,KAAuE;IAEvE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS;QAC1B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;;kDAE0C,EAC1C,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAC5B;QACH,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CACX;;kDAE0C,EAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,CACX,CAAC;IACN,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,iFAAiF;AACjF,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAY,EAAE,EAAU;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAClB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACxB,CAAC;IACF,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC1B,CAAC;IACF,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,GAAG,IAAI,UAAU,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAqB,EACrB,KAAuD;IAEvD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,EAAE,GAAG,IAAI;QAAE,MAAM,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CACxB;;;+BAG2B,EAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAC7D,CAAC;IACF,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,SAAS,YAAY,CACnB,IAAS,EACT,IAAc,EACd,GAAuB,EACvB,SAAS,GAAmB,KAAK;IAEjC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,GAAM,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAO,CAAC,CAAC;IACzF,MAAM,KAAK,GACT,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,oBAAoB,GAAyD,KAAK,EACtF,GAAG,EACH,KAAK,EACL,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,OAAO,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAA4D,KAAK,EACrF,GAAG,EACH,IAAI,EACJ,EAAE;IACF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,kFAAkF;IAClF,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAqD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IAC3F,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,SAAS,GAA0D,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1F,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,8EAA8E;IAC9E,yEAAyE;IACzE,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAGV,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,QAAQ,GAGV,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,2EAA2E;IAC3E,sEAAsE;IACtE,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW;YAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1D,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAqD,KAAK,EAAE,GAAG,EAAE,EAAE;IACpF,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,SAAS,GAGX,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,cAAc,GAGhB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,cAAc,GAGhB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,0EAA0E;IAC1E,+EAA+E;IAC/E,iCAAiC;IACjC,IAAI,KAAK,EAAE,OAAO,EAAE,CAAC;QACnB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,gFAAgF;IAChF,4BAA4B;IAC5B,OAAO,YAAY,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC,CAAC;AAEF,MAAM,aAAa,GAGf,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,aAAa,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1E,gFAAgF;IAChF,kEAAkE;IAClE,8EAA8E;IAC9E,0CAA0C;IAC1C,OAAO,YAAY,CACjB,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,EACvB,KAAK,EACL,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,SAAS,CAAC,CAAC,EAAE,EAAE,CACzC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,iBAAiB;IAC7B,UAAU,EAAE;QACV,8BAA8B,EAAE,oBAAwD;QACxF,0BAA0B,EAAE,gBAAoD;QAChF,sBAAsB,EAAE,aAAiD;QACzE,iBAAiB,EAAE,SAA6C;QAChE,gBAAgB,EAAE,QAA4C;QAC9D,gBAAgB,EAAE,QAA4C;QAC9D,sBAAsB,EAAE,aAAiD;QACzE,iBAAiB,EAAE,SAA6C;QAChE,sBAAsB,EAAE,cAAkD;QAC1E,uBAAuB,EAAE,cAAkD;QAC3E,sBAAsB,EAAE,aAAiD;KAC1E;CACF,CAAC"}
|
|
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":"AAiBA,sDAAsD;AACtD,eAAO,MAAQ,SAAS;;cAAE,OAAO,6EAAiC,CAAC"}
|
package/dist/seam.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The engine seam (#771) for engine-absence — 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; this file used to be a byte-identical copy of that
|
|
7
|
+
* implementation, differing only in the name below.
|
|
8
|
+
*
|
|
9
|
+
* What is specific to this engine is the reach of "parse always": it covers the
|
|
10
|
+
* ledger fold. A balance is the sum of every `delta` in the ledger, so a `delta`
|
|
11
|
+
* that drifted is the one value here that would otherwise cross as a *number
|
|
12
|
+
* nobody questions*: wrong on a screen, never a throw. Every read here is one row,
|
|
13
|
+
* one subject's ledger, one page (#811), or one date window, so the parsed set is
|
|
14
|
+
* bounded by the caller's own window.
|
|
15
|
+
*/
|
|
16
|
+
import { engineSeam } from '@substrat-run/contracts';
|
|
17
|
+
/** How this engine names itself in a seam failure. */
|
|
18
|
+
export const { columnsOf, returns } = engineSeam('engine-absence');
|
|
19
|
+
//# sourceMappingURL=seam.js.map
|
package/dist/seam.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seam.js","sourceRoot":"","sources":["../src/seam.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,sDAAsD;AACtD,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/engine-absence",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
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.
|
|
29
|
-
"@substrat-run/kernel": "^0.
|
|
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/contract-tests": "^0.
|
|
36
|
-
"@substrat-run/engine-test-kit": "^0.3.
|
|
37
|
-
"@substrat-run/model-emit": "0.8.
|
|
35
|
+
"@substrat-run/contract-tests": "^0.94.0",
|
|
36
|
+
"@substrat-run/engine-test-kit": "^0.3.21",
|
|
37
|
+
"@substrat-run/model-emit": "0.8.9"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"zod": "^4.4.0"
|