@substrat-run/kernel 0.135.0 → 0.137.0
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/async-invocation-log.d.ts +61 -0
- package/dist/async-invocation-log.d.ts.map +1 -0
- package/dist/async-invocation-log.js +149 -0
- package/dist/async-invocation-log.js.map +1 -0
- package/dist/base64url.d.ts +6 -0
- package/dist/base64url.d.ts.map +1 -0
- package/dist/base64url.js +19 -0
- package/dist/base64url.js.map +1 -0
- package/dist/capability.d.ts +4 -0
- package/dist/capability.d.ts.map +1 -1
- package/dist/capability.js +7 -8
- package/dist/capability.js.map +1 -1
- package/dist/carried-copy.d.ts +117 -0
- package/dist/carried-copy.d.ts.map +1 -0
- package/dist/carried-copy.js +134 -0
- package/dist/carried-copy.js.map +1 -0
- package/dist/index.d.ts +101 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -14
- package/dist/index.js.map +1 -1
- package/dist/invocation-log.d.ts +115 -9
- package/dist/invocation-log.d.ts.map +1 -1
- package/dist/invocation-log.js +78 -15
- package/dist/invocation-log.js.map +1 -1
- package/dist/job-run.d.ts +77 -15
- package/dist/job-run.d.ts.map +1 -1
- package/dist/job-run.js +107 -24
- package/dist/job-run.js.map +1 -1
- package/dist/lifecycle-flow.d.ts.map +1 -1
- package/dist/lifecycle-flow.js +2 -1
- package/dist/lifecycle-flow.js.map +1 -1
- package/dist/list-index.d.ts +19 -4
- package/dist/list-index.d.ts.map +1 -1
- package/dist/list-index.js +150 -8
- package/dist/list-index.js.map +1 -1
- package/dist/permission-eval.d.ts +9 -0
- package/dist/permission-eval.d.ts.map +1 -1
- package/dist/permission-eval.js +26 -0
- package/dist/permission-eval.js.map +1 -1
- package/dist/platform-call.d.ts +4 -37
- package/dist/platform-call.d.ts.map +1 -1
- package/dist/platform-call.js +5 -37
- package/dist/platform-call.js.map +1 -1
- package/dist/platform-sweep.d.ts +17 -0
- package/dist/platform-sweep.d.ts.map +1 -1
- package/dist/platform-sweep.js +22 -4
- package/dist/platform-sweep.js.map +1 -1
- package/dist/provider-error.d.ts.map +1 -1
- package/dist/provider-error.js +2 -1
- package/dist/provider-error.js.map +1 -1
- package/dist/refusal-query.d.ts +4 -1
- package/dist/refusal-query.d.ts.map +1 -1
- package/dist/refusal-query.js +6 -4
- package/dist/refusal-query.js.map +1 -1
- package/dist/refusals.d.ts +80 -8
- package/dist/refusals.d.ts.map +1 -1
- package/dist/refusals.js +141 -22
- package/dist/refusals.js.map +1 -1
- package/dist/routed-node.d.ts +3 -2
- package/dist/routed-node.d.ts.map +1 -1
- package/dist/routed-node.js.map +1 -1
- package/dist/scope-copy.d.ts +122 -0
- package/dist/scope-copy.d.ts.map +1 -0
- package/dist/scope-copy.js +187 -0
- package/dist/scope-copy.js.map +1 -0
- package/dist/scope-host.d.ts +95 -27
- package/dist/scope-host.d.ts.map +1 -1
- package/dist/scope-host.js +5 -14
- package/dist/scope-host.js.map +1 -1
- package/dist/scope-lifecycle.d.ts +70 -0
- package/dist/scope-lifecycle.d.ts.map +1 -0
- package/dist/scope-lifecycle.js +124 -0
- package/dist/scope-lifecycle.js.map +1 -0
- package/dist/system-switch-record.d.ts +27 -11
- package/dist/system-switch-record.d.ts.map +1 -1
- package/dist/system-switch-record.js +59 -24
- package/dist/system-switch-record.js.map +1 -1
- package/dist/system-switch.d.ts +41 -11
- package/dist/system-switch.d.ts.map +1 -1
- package/dist/system-switch.js +48 -15
- package/dist/system-switch.js.map +1 -1
- package/package.json +2 -2
package/dist/job-run.js
CHANGED
|
@@ -138,6 +138,10 @@ export const JOB_RUN_DDL = `
|
|
|
138
138
|
-- table that RETAINS every finished run, so the cost tracks how much is in flight
|
|
139
139
|
-- rather than how much the scope has ever imported.
|
|
140
140
|
CREATE INDEX IF NOT EXISTS _substrat_job_runs_due ON _substrat_job_runs (status, next_attempt_at, id);
|
|
141
|
+
-- #1834: the drive's ORDER -- by when each run became due (JOB_RUN_DUE_AT), then id -- so a run
|
|
142
|
+
-- that waited (a deferral, a backoff) queues behind work that was due before it, instead of
|
|
143
|
+
-- heading every drive by its age. The expression is spelled exactly as the query spells it.
|
|
144
|
+
CREATE INDEX IF NOT EXISTS _substrat_job_runs_due_at ON _substrat_job_runs (status, COALESCE(next_attempt_at, started_at), id);
|
|
141
145
|
-- Coalescing's read, and the operator read's filter.
|
|
142
146
|
CREATE INDEX IF NOT EXISTS _substrat_job_runs_key ON _substrat_job_runs (module_id, job, instance, id);
|
|
143
147
|
-- The step ledger of the pass currently in flight. Rows are written as each step
|
|
@@ -233,6 +237,41 @@ export const JOB_DRIVE_LIMIT = 50;
|
|
|
233
237
|
export const JOB_DRIVE_SCAN_MAX = 500;
|
|
234
238
|
/** `conflict` reason: two `step()` calls under one name in one pass. */
|
|
235
239
|
export const JOB_STEP_REUSED = 'job_step_reused';
|
|
240
|
+
/**
|
|
241
|
+
* #1834: the reason a host's system door gives a refusal that means "not now", never "no": the
|
|
242
|
+
* module is held off on this scope until its switch is applied again, or the scope kept restarting
|
|
243
|
+
* under the door. It is for a caller READING the refusal. It decides nothing: anyone can throw an
|
|
244
|
+
* error with this reason, so the job driver never defers on it (`deferral` below is how a host
|
|
245
|
+
* says which refusals are its own).
|
|
246
|
+
*/
|
|
247
|
+
export const SYSTEM_DOOR_WAIT = 'system_door_wait';
|
|
248
|
+
/**
|
|
249
|
+
* #1834: when a run became due — its `next_attempt_at`, or when it started if it has none — and the
|
|
250
|
+
* key the drive orders by. Ordering by id instead let an older run that keeps waiting (a deferral, a
|
|
251
|
+
* backoff) head every drive the moment it was due again, and take the turn of a run that had been
|
|
252
|
+
* due for longer. Spelled exactly as the `_substrat_job_runs_due_at` index spells it.
|
|
253
|
+
*/
|
|
254
|
+
export const JOB_RUN_DUE_AT = 'COALESCE(next_attempt_at, started_at)';
|
|
255
|
+
/**
|
|
256
|
+
* #1834: a pass that a host's door told to wait, carrying the pass it belongs to. Kernel-private,
|
|
257
|
+
* and checked against the CURRENT pass, so a handler that catches one and throws it again on a
|
|
258
|
+
* later pass is an ordinary failure there, not a wait.
|
|
259
|
+
*/
|
|
260
|
+
class PassDeferred extends Error {
|
|
261
|
+
pass;
|
|
262
|
+
cause;
|
|
263
|
+
constructor(pass, cause) {
|
|
264
|
+
super(message(cause));
|
|
265
|
+
this.pass = pass;
|
|
266
|
+
this.cause = cause;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* #1834: how long a deferred run waits before it is due again. Not an attempt: nothing counts and
|
|
271
|
+
* there is no backoff. It only stops a waiting run from heading the due order on every drive, where
|
|
272
|
+
* it would take the turn of a run behind it that could make progress.
|
|
273
|
+
*/
|
|
274
|
+
export const JOB_DEFER_MS = 60_000;
|
|
236
275
|
const message = (err) => (err instanceof Error ? err.message : String(err));
|
|
237
276
|
/** What a value is, for the refusal message: `a Uint8Array`, `a function`, `a Date`. */
|
|
238
277
|
function describe(value) {
|
|
@@ -456,6 +495,14 @@ class JobStepFailure extends Error {
|
|
|
456
495
|
*/
|
|
457
496
|
export async function runJobPass(options) {
|
|
458
497
|
const { store, run, handler, now, openScope } = options;
|
|
498
|
+
// This pass's token, and nothing else's: the door's refusals are tied to it.
|
|
499
|
+
const passToken = {};
|
|
500
|
+
/** Asked once per refusal, since the host consumes its mark; the answer then travels as `PassDeferred`. */
|
|
501
|
+
const deferral = (err) => {
|
|
502
|
+
if (err instanceof PassDeferred)
|
|
503
|
+
return err.pass === passToken ? err : null;
|
|
504
|
+
return options.deferral?.(err, passToken) === true ? new PassDeferred(passToken, err) : null;
|
|
505
|
+
};
|
|
459
506
|
const jobPolicy = resolveRetryPolicy(options.retry);
|
|
460
507
|
const usedThisPass = new Set();
|
|
461
508
|
let scope = null;
|
|
@@ -490,7 +537,7 @@ export async function runJobPass(options) {
|
|
|
490
537
|
count: (name, by = 1) => {
|
|
491
538
|
counters[name] = (counters[name] ?? 0) + by;
|
|
492
539
|
},
|
|
493
|
-
scope: () => (scope ??= openScope()),
|
|
540
|
+
scope: () => (scope ??= openScope(passToken)),
|
|
494
541
|
step: async (name, fn, retry) => {
|
|
495
542
|
if (usedThisPass.has(name)) {
|
|
496
543
|
// The determinism rule's mechanical half. The second call would read the
|
|
@@ -523,6 +570,10 @@ export async function runJobPass(options) {
|
|
|
523
570
|
value = await fn();
|
|
524
571
|
}
|
|
525
572
|
catch (err) {
|
|
573
|
+
// #1834: the door's "not now" is not this step's failure, so it is not one of its attempts.
|
|
574
|
+
const wait = deferral(err);
|
|
575
|
+
if (wait)
|
|
576
|
+
throw wait;
|
|
526
577
|
const cause = message(err);
|
|
527
578
|
await store.recordStep(run.id, name, null, attempts, cause, now());
|
|
528
579
|
throw new JobStepFailure(name, attempts, policy, cause);
|
|
@@ -579,6 +630,22 @@ export async function runJobPass(options) {
|
|
|
579
630
|
return { status: done ? 'completed' : 'advanced' };
|
|
580
631
|
}
|
|
581
632
|
catch (err) {
|
|
633
|
+
// #1834: the host's system door said wait, so the call did not run. The run keeps what the last
|
|
634
|
+
// commit wrote (its attempts and its last error included); only when it is next due moves.
|
|
635
|
+
if (deferral(err)) {
|
|
636
|
+
const at = now();
|
|
637
|
+
await store.patch(run.id, {
|
|
638
|
+
status: 'running',
|
|
639
|
+
cursor: run.cursor,
|
|
640
|
+
counters: run.counters,
|
|
641
|
+
attempts: run.attempts,
|
|
642
|
+
lastError: run.last_error,
|
|
643
|
+
updatedAt: at,
|
|
644
|
+
nextAttemptAt: new Date(Date.parse(at) + JOB_DEFER_MS).toISOString(),
|
|
645
|
+
endedAt: null,
|
|
646
|
+
});
|
|
647
|
+
return { status: 'deferred', error: message(err) };
|
|
648
|
+
}
|
|
582
649
|
const stepFailure = err instanceof JobStepFailure ? err : null;
|
|
583
650
|
const policy = stepFailure?.policy ?? jobPolicy;
|
|
584
651
|
// The RUN's attempts counts consecutive failed passes — what an operator reads as
|
|
@@ -617,9 +684,20 @@ export async function runJobPass(options) {
|
|
|
617
684
|
* when the budget was applied to the query instead, a scope holding `limit` such rows
|
|
618
685
|
* at the head of the due order returned the same unrunnable batch on every call —
|
|
619
686
|
* nothing newer was ever reached, and the report said `attempted: 0` forever with no
|
|
620
|
-
* indication why. So the read
|
|
687
|
+
* indication why. So the read looks past them, bounded by `JOB_DRIVE_SCAN_MAX` rows
|
|
621
688
|
* examined so one scope full of orphans cannot turn a tick into a table scan.
|
|
622
689
|
*
|
|
690
|
+
* **Selection is ONE snapshot per drive** (#1834). The drive reads the keys of up to
|
|
691
|
+
* `JOB_DRIVE_SCAN_MAX` due runs in a single query, picks up to `limit` runnable ones
|
|
692
|
+
* (each id once), and re-reads each row just before it runs it, skipping one that is no
|
|
693
|
+
* longer `running` or no longer due. A cursor across several reads met rows that another
|
|
694
|
+
* writer had moved in between, and ran one twice or skipped it. A run that moves, or
|
|
695
|
+
* becomes due, after the snapshot is the NEXT drive's business, never this one's.
|
|
696
|
+
*
|
|
697
|
+
* The re-read is a READ, not a reservation: it does not make overlapping drives safe. Two
|
|
698
|
+
* drives on one scope at once can both re-read a row as due and both run its handler. The
|
|
699
|
+
* one-driver-per-scope bound in the file header still applies.
|
|
700
|
+
*
|
|
623
701
|
* The starvation was spotted while re-reading this file, judged unlikely and left
|
|
624
702
|
* alone — and then found independently by a reviewer. The judgement may even have
|
|
625
703
|
* been right; recording it only in the author's head was not, because a decision
|
|
@@ -633,34 +711,34 @@ export async function runDueJobRuns(options) {
|
|
|
633
711
|
completed: 0,
|
|
634
712
|
retrying: 0,
|
|
635
713
|
failed: 0,
|
|
714
|
+
deferred: 0,
|
|
636
715
|
errors: [],
|
|
637
716
|
};
|
|
638
717
|
const maxPasses = Math.max(1, options.maxPasses ?? 1);
|
|
639
718
|
// Bound for the store's `LIMIT` (#1632): refused, not normalized, when it is not a positive integer.
|
|
640
719
|
const want = options.limit === undefined ? JOB_DRIVE_LIMIT : assertRowLimit('limit', options.limit);
|
|
641
|
-
//
|
|
642
|
-
//
|
|
643
|
-
//
|
|
644
|
-
//
|
|
645
|
-
|
|
646
|
-
const
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
while (runnable.length < want && scanned < JOB_DRIVE_SCAN_MAX) {
|
|
650
|
-
const batch = await options.store.due(options.now(), want, afterId);
|
|
651
|
-
if (batch.length === 0)
|
|
652
|
-
break;
|
|
653
|
-
scanned += batch.length;
|
|
654
|
-
for (const row of batch) {
|
|
655
|
-
if (options.handlerFor(row) && runnable.length < want)
|
|
656
|
-
runnable.push(row);
|
|
657
|
-
}
|
|
658
|
-
afterId = batch[batch.length - 1].id;
|
|
659
|
-
// A short batch is the end of the due set; another round trip would read nothing.
|
|
660
|
-
if (batch.length < want)
|
|
720
|
+
// ONE snapshot of the due keys, then up to `want` RUNNABLE ones from it, each id once. A
|
|
721
|
+
// run whose job this host does not register — another deployment's, or one whose
|
|
722
|
+
// registration was removed — is stepped over and NOT failed: failing it would destroy
|
|
723
|
+
// a resumable run because the wrong process happened to look at it.
|
|
724
|
+
const picked = [];
|
|
725
|
+
const seen = new Set();
|
|
726
|
+
for (const key of await options.store.dueKeys(options.now(), JOB_DRIVE_SCAN_MAX)) {
|
|
727
|
+
if (picked.length >= want)
|
|
661
728
|
break;
|
|
729
|
+
if (seen.has(key.id))
|
|
730
|
+
continue;
|
|
731
|
+
seen.add(key.id);
|
|
732
|
+
if (options.handlerFor(key))
|
|
733
|
+
picked.push(key);
|
|
662
734
|
}
|
|
663
|
-
for (const
|
|
735
|
+
for (const key of picked) {
|
|
736
|
+
// The re-read: the row as it is NOW. One that was finished, or moved past this moment, since
|
|
737
|
+
// the snapshot is skipped; it is the next drive's. This reserves nothing (see above).
|
|
738
|
+
const row = await options.store.get(key.id);
|
|
739
|
+
if (!row || row.status !== 'running' || (row.next_attempt_at !== null && row.next_attempt_at > options.now())) {
|
|
740
|
+
continue;
|
|
741
|
+
}
|
|
664
742
|
const registered = options.handlerFor(row);
|
|
665
743
|
report.attempted += 1;
|
|
666
744
|
let run = row;
|
|
@@ -671,7 +749,8 @@ export async function runDueJobRuns(options) {
|
|
|
671
749
|
handler: registered.handler,
|
|
672
750
|
retry: registered.retry,
|
|
673
751
|
now: options.now,
|
|
674
|
-
openScope: () => options.openScope(run),
|
|
752
|
+
openScope: (pass) => options.openScope(run, pass),
|
|
753
|
+
deferral: options.deferral,
|
|
675
754
|
});
|
|
676
755
|
if (outcome.status === 'completed') {
|
|
677
756
|
report.completed += 1;
|
|
@@ -682,6 +761,10 @@ export async function runDueJobRuns(options) {
|
|
|
682
761
|
report.errors.push({ runId: run.id, error: outcome.error });
|
|
683
762
|
break;
|
|
684
763
|
}
|
|
764
|
+
if (outcome.status === 'deferred') {
|
|
765
|
+
report.deferred += 1;
|
|
766
|
+
break;
|
|
767
|
+
}
|
|
685
768
|
if (outcome.status === 'retrying') {
|
|
686
769
|
report.retrying += 1;
|
|
687
770
|
report.errors.push({ runId: run.id, error: outcome.error });
|
package/dist/job-run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-run.js","sourceRoot":"","sources":["../src/job-run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"job-run.js","sourceRoot":"","sources":["../src/job-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-flow.d.ts","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwCpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAa9D;AAsBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,
|
|
1
|
+
{"version":3,"file":"lifecycle-flow.d.ts","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAwCpD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAa9D;AAsBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAqSrG"}
|
package/dist/lifecycle-flow.js
CHANGED
|
@@ -322,8 +322,9 @@ export function readLifecycleFlow(ctx, input) {
|
|
|
322
322
|
settle(walk);
|
|
323
323
|
// #1745: the moves the lifecycle refused in the window — recorded after each rollback, so
|
|
324
324
|
// they are a separate, bounded read rather than part of the replay (nothing committed).
|
|
325
|
+
// Transitions only: a guard row has no from-state to draw a stub from.
|
|
325
326
|
const refusedRows = ctx.sql.query(`SELECT from_state, attempted_state, operation, actor FROM _substrat_refusals
|
|
326
|
-
WHERE entity_type = ? AND at >= ? AND at < ?
|
|
327
|
+
WHERE entity_type = ? AND kind = 'transition' AND at >= ? AND at < ?
|
|
327
328
|
ORDER BY at LIMIT ?`, [input.entityType, since, until, LIFECYCLE_FLOW_EVENT_BUDGET]);
|
|
328
329
|
const refusedBy = new Map();
|
|
329
330
|
for (const r of refusedRows) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-flow.js","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lifecycle-flow.js","sourceRoot":"","sources":["../src/lifecycle-flow.ts"],"names":[],"mappings":"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"}
|
package/dist/list-index.d.ts
CHANGED
|
@@ -38,9 +38,10 @@
|
|
|
38
38
|
* skipped, because `status > 'open'` excludes its own ties. So every walk here
|
|
39
39
|
* is over `(sortColumn, idColumn)` and the cursor is composite — which is the
|
|
40
40
|
* `|`-joined form `pagination.ts` already pins ("first part always `|`-free").
|
|
41
|
-
* Where the sort column IS the id, the pair collapses and the cursor
|
|
42
|
-
*
|
|
41
|
+
* Where the sort column IS the id, the pair collapses and the cursor carries the
|
|
42
|
+
* id alone (its envelope has no separate `id`, K-44).
|
|
43
43
|
*/
|
|
44
|
+
import { SubstratError } from '@substrat-run/contracts';
|
|
44
45
|
import type { SqlMigration } from './scope-host.js';
|
|
45
46
|
/**
|
|
46
47
|
* One paged read's kernel-composed half, as the kernel needs it.
|
|
@@ -187,8 +188,22 @@ export declare function splitCursor(cursor: string): {
|
|
|
187
188
|
value: string;
|
|
188
189
|
id: string | undefined;
|
|
189
190
|
};
|
|
190
|
-
/**
|
|
191
|
-
|
|
191
|
+
/**
|
|
192
|
+
* Raised for a cursor this walk cannot continue (#2001): one minted under a
|
|
193
|
+
* different order or sort, or one `ctx.page` never minted at all.
|
|
194
|
+
*
|
|
195
|
+
* A keyset position only means something in the walk that produced it. Replayed
|
|
196
|
+
* under the other order, `created_at < ?` becomes `created_at > ?` over the same
|
|
197
|
+
* value and the "next" page is the rows the caller has already seen — a silent
|
|
198
|
+
* answer that reads as a working list. So the cursor names its walk, and a
|
|
199
|
+
* disagreement is the caller's 400, narrowed by `reason: 'cursor_restart'` so a
|
|
200
|
+
* client can tell "read the first page again" from a malformed request.
|
|
201
|
+
*/
|
|
202
|
+
export declare class CursorMismatch extends SubstratError {
|
|
203
|
+
constructor(message: string);
|
|
204
|
+
}
|
|
205
|
+
/** Build the cursor a row hands to the next page — the walk that minted it, and where. */
|
|
206
|
+
export declare function cursorOf(row: Record<string, unknown>, sortColumn: string, idColumn: string, order: 'asc' | 'desc'): string;
|
|
192
207
|
/**
|
|
193
208
|
* Compose the page query and its count.
|
|
194
209
|
*
|
package/dist/list-index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-index.d.ts","sourceRoot":"","sources":["../src/list-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-index.d.ts","sourceRoot":"","sources":["../src/list-index.ts"],"names":[],"mappings":"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"}
|
package/dist/list-index.js
CHANGED
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List indexes and the queries that use them, derived from a paged read's
|
|
3
|
+
* `paged.over` declaration (#811, K-18).
|
|
4
|
+
*
|
|
5
|
+
* K-18 promised *"engine list APIs accept registry-declared filter/sort
|
|
6
|
+
* predicates with correct pagination and counts, the kernel composing the join
|
|
7
|
+
* inside the scope DB"* and nothing implemented it. This is that, and it takes
|
|
8
|
+
* the same shape `searchables` took in #827 for the same reasons.
|
|
9
|
+
*
|
|
10
|
+
* ## Why the kernel owns this rather than a helper in contracts
|
|
11
|
+
*
|
|
12
|
+
* A fragment builder in `@substrat-run/contracts` could emit a correct
|
|
13
|
+
* `WHERE status = ?` and a correct keyset comparison. It could not create the
|
|
14
|
+
* INDEX behind either, because contracts sits below the migration machinery and
|
|
15
|
+
* has no way to reach a scope's DDL. A declared filter with no index is a table
|
|
16
|
+
* scan that passes every test, survives review, and degrades when one tenant's
|
|
17
|
+
* table grows — the same delayed bug an unbounded list read is.
|
|
18
|
+
*
|
|
19
|
+
* That is what K-18 means by filter, sort key and index being *one declared
|
|
20
|
+
* thing*: the third one is the reason it has to be here.
|
|
21
|
+
*
|
|
22
|
+
* ## What is derived, and what stays the handler's
|
|
23
|
+
*
|
|
24
|
+
* | Kernel | Handler |
|
|
25
|
+
* |---|---|
|
|
26
|
+
* | `WHERE` from declared filters, `ORDER BY` from the chosen sort, the keyset comparison, `LIMIT`, and the `COUNT` over the same `WHERE` | The projection, and any hydration — a `toWorkOrder`, a per-row aggregate, a second query for children |
|
|
27
|
+
* | The indexes behind those, emitted as migrations and refused if unindexable | The permission check, which nothing on `ctx` ever does |
|
|
28
|
+
*
|
|
29
|
+
* The handler still writes its own `SELECT`, so this is not the generated-CRUD
|
|
30
|
+
* layer `generated-verticals.md` §4 says does not exist: it invents no routes and
|
|
31
|
+
* no handlers. It stops eleven call sites hand-writing the same cursor branch and
|
|
32
|
+
* the same duplicated count `WHERE`.
|
|
33
|
+
*
|
|
34
|
+
* ## The tie-break, which is not optional
|
|
35
|
+
*
|
|
36
|
+
* A keyset walk over a NON-UNIQUE column drops and duplicates rows: order
|
|
37
|
+
* `status ASC` with a cursor of `'open'` and every remaining `open` row is
|
|
38
|
+
* skipped, because `status > 'open'` excludes its own ties. So every walk here
|
|
39
|
+
* is over `(sortColumn, idColumn)` and the cursor is composite — which is the
|
|
40
|
+
* `|`-joined form `pagination.ts` already pins ("first part always `|`-free").
|
|
41
|
+
* Where the sort column IS the id, the pair collapses and the cursor carries the
|
|
42
|
+
* id alone (its envelope has no separate `id`, K-44).
|
|
43
|
+
*/
|
|
44
|
+
import { PAGE_CURSOR_RESTART, SubstratError, ULID_PATTERN, z } from '@substrat-run/contracts';
|
|
45
|
+
import { fromBase64url, toBase64url } from './base64url.js';
|
|
1
46
|
/** The prefix every derived list index carries. */
|
|
2
47
|
export const LIST_INDEX_PREFIX = '_substrat_list_';
|
|
3
48
|
/** Is this index one the kernel derived for a paged read? */
|
|
@@ -212,12 +257,109 @@ export function splitCursor(cursor) {
|
|
|
212
257
|
return { value: cursor, id: undefined };
|
|
213
258
|
return { value: cursor.slice(0, at), id: cursor.slice(at + 1) };
|
|
214
259
|
}
|
|
215
|
-
/**
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
260
|
+
/**
|
|
261
|
+
* Raised for a cursor this walk cannot continue (#2001): one minted under a
|
|
262
|
+
* different order or sort, or one `ctx.page` never minted at all.
|
|
263
|
+
*
|
|
264
|
+
* A keyset position only means something in the walk that produced it. Replayed
|
|
265
|
+
* under the other order, `created_at < ?` becomes `created_at > ?` over the same
|
|
266
|
+
* value and the "next" page is the rows the caller has already seen — a silent
|
|
267
|
+
* answer that reads as a working list. So the cursor names its walk, and a
|
|
268
|
+
* disagreement is the caller's 400, narrowed by `reason: 'cursor_restart'` so a
|
|
269
|
+
* client can tell "read the first page again" from a malformed request.
|
|
270
|
+
*/
|
|
271
|
+
export class CursorMismatch extends SubstratError {
|
|
272
|
+
constructor(message) {
|
|
273
|
+
// A SEMANTIC refusal, so no `errors` list: that list is what marks a parse failure,
|
|
274
|
+
// and `toProblem` would trade this sentence and its reason for "did not parse".
|
|
275
|
+
super('validation_failed', message, { reason: PAGE_CURSOR_RESTART });
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* The cursor `ctx.page` mints: base64url of `{ v: 1, order, sort, value, id? }` (K-44).
|
|
280
|
+
*
|
|
281
|
+
* Opaque and versioned, and **distinct from a pre-#2001 cursor by construction**, not by
|
|
282
|
+
* a guess at what a sort value might look like. A legacy cursor is either `<value>|<id>`,
|
|
283
|
+
* which carries a `|` that base64url never emits, or a bare ULID, whose first character
|
|
284
|
+
* (a timestamp digit) can never decode to the `{` an envelope always starts with. A
|
|
285
|
+
* readable prefix such as `asc.name.` could not promise that: a row named `asc.name.foo`
|
|
286
|
+
* minted exactly that legacy cursor (#2018 review).
|
|
287
|
+
*
|
|
288
|
+
* `id` is present exactly when the walk sorts by something other than the id itself.
|
|
289
|
+
*/
|
|
290
|
+
const cursorEnvelope = z.strictObject({
|
|
291
|
+
v: z.literal(1),
|
|
292
|
+
order: z.enum(['asc', 'desc']),
|
|
293
|
+
sort: z.string().regex(IDENTIFIER),
|
|
294
|
+
value: z.string(),
|
|
295
|
+
id: z.string().optional(),
|
|
296
|
+
});
|
|
297
|
+
/** Build the cursor a row hands to the next page — the walk that minted it, and where. */
|
|
298
|
+
export function cursorOf(row, sortColumn, idColumn, order) {
|
|
299
|
+
const envelope = {
|
|
300
|
+
v: 1,
|
|
301
|
+
order,
|
|
302
|
+
sort: sortColumn,
|
|
303
|
+
value: String(row[sortColumn] ?? ''),
|
|
304
|
+
...(sortColumn === idColumn ? {} : { id: String(row[idColumn] ?? '') }),
|
|
305
|
+
};
|
|
306
|
+
return toBase64url(new TextEncoder().encode(JSON.stringify(envelope)));
|
|
307
|
+
}
|
|
308
|
+
/** The envelope a cursor decodes to, or `undefined` when it is not one — every field checked. */
|
|
309
|
+
function envelopeOf(cursor) {
|
|
310
|
+
const bytes = fromBase64url(cursor);
|
|
311
|
+
if (!bytes)
|
|
312
|
+
return undefined;
|
|
313
|
+
try {
|
|
314
|
+
return cursorEnvelope.parse(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)));
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* A pre-#2001 cursor, recognised only by its exact old shape: `<value>|<id>` with the
|
|
322
|
+
* id a ULID, or — for a walk sorted by the id itself — the bare ULID. Split on the LAST
|
|
323
|
+
* `|`, which a ULID cannot contain, so a value that holds one still comes back whole.
|
|
324
|
+
*/
|
|
325
|
+
function legacyPositionOf(cursor, plan, sortColumn) {
|
|
326
|
+
if (sortColumn === plan.idColumn)
|
|
327
|
+
return ULID_PATTERN.test(cursor) ? { value: cursor, id: undefined } : undefined;
|
|
328
|
+
const at = cursor.lastIndexOf('|');
|
|
329
|
+
if (at === -1)
|
|
330
|
+
return undefined;
|
|
331
|
+
const id = cursor.slice(at + 1);
|
|
332
|
+
return ULID_PATTERN.test(id) ? { value: cursor.slice(0, at), id } : undefined;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* The position a cursor holds in THIS walk, or a refusal.
|
|
336
|
+
*
|
|
337
|
+
* An envelope is continued only in the walk it names. A legacy cursor was minted under
|
|
338
|
+
* the ONLY default there was — ascending, by the first declared sort — so it is continued
|
|
339
|
+
* exactly there (an in-flight walk survives the deploy) and refused anywhere else, which
|
|
340
|
+
* is where it would replay silently: under a newly honoured `desc` default above all.
|
|
341
|
+
* Anything that is neither is refused too. Every refusal is the same `cursor_restart`.
|
|
342
|
+
*/
|
|
343
|
+
function positionIn(cursor, plan, sortColumn, order) {
|
|
344
|
+
const envelope = envelopeOf(cursor);
|
|
345
|
+
if (envelope) {
|
|
346
|
+
if (envelope.order !== order || envelope.sort !== sortColumn) {
|
|
347
|
+
throw new CursorMismatch(`list: this cursor continues a walk by '${envelope.sort}' ${envelope.order}, and this request ` +
|
|
348
|
+
`asks for '${sortColumn}' ${order} — keep the sort and order the first page was read with, ` +
|
|
349
|
+
'or restart paging from the first page, without a cursor');
|
|
350
|
+
}
|
|
351
|
+
if ((envelope.id === undefined) !== (sortColumn === plan.idColumn)) {
|
|
352
|
+
throw new CursorMismatch('list: this cursor is malformed — restart paging from the first page, without a cursor');
|
|
353
|
+
}
|
|
354
|
+
return { value: envelope.value, id: envelope.id };
|
|
355
|
+
}
|
|
356
|
+
const legacy = legacyPositionOf(cursor, plan, sortColumn);
|
|
357
|
+
if (legacy && order === 'asc' && sortColumn === plan.sortable[0])
|
|
358
|
+
return legacy;
|
|
359
|
+
throw new CursorMismatch(legacy
|
|
360
|
+
? `list: this cursor predates the walk it is replayed in ('${sortColumn}' ${order}) — ` +
|
|
361
|
+
'restart paging from the first page, without a cursor'
|
|
362
|
+
: 'list: this cursor was not minted by this list — restart paging from the first page, without a cursor');
|
|
221
363
|
}
|
|
222
364
|
/**
|
|
223
365
|
* Compose the page query and its count.
|
|
@@ -283,8 +425,8 @@ export function listQuery(plan, params) {
|
|
|
283
425
|
const countParams = [...args];
|
|
284
426
|
const cmp = order === 'asc' ? '>' : '<';
|
|
285
427
|
if (params.cursor !== undefined && params.cursor !== '') {
|
|
286
|
-
const { value, id } =
|
|
287
|
-
if (
|
|
428
|
+
const { value, id } = positionIn(params.cursor, plan, sortColumn, order);
|
|
429
|
+
if (id === undefined) {
|
|
288
430
|
where.push(`${sortColumn} ${cmp} ?`);
|
|
289
431
|
args.push(value);
|
|
290
432
|
}
|