@substrat-run/kernel 0.121.0 → 0.122.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.
@@ -1 +1 @@
1
- {"version":3,"file":"system-switch.d.ts","sourceRoot":"","sources":["../src/system-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,4FAA4F;AAC5F,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAKvD,sFAAsF;AACtF,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC1E,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oHACmD,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAErG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAalG;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAWlF;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlF;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACzE,aAAa,CAOf;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxE,aAAa,CA4Ff"}
1
+ {"version":3,"file":"system-switch.d.ts","sourceRoot":"","sources":["../src/system-switch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,4FAA4F;AAC5F,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAKvD,sFAAsF;AACtF,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACnF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,oHACmD,CAAC;AAE5F;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAErG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAalG;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAWlF;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1E;AAED,+FAA+F;AAC/F,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlF;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACzE,aAAa,CAOf;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACxE,aAAa,CA4Ff"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * A version's SQL migrations, stored apart from its manifest (#1764), shared by both adapters.
3
+ *
4
+ * Since #1677 a pushed deploy manifest carries its whole cumulative migration set
5
+ * (`migrations: { moduleId, version, sql }[]`). The manifest is one `manifest_json` column on
6
+ * `vertical_versions`, so every read of a version moved that SQL too: `readVersion` on every
7
+ * admit, promote and bind, and every `storedDeployManifest.parse` behind `/registry`, `/model`,
8
+ * `/schedules` and the serving upload. Only the promote review reads the SQL.
9
+ *
10
+ * So `publishVersion` splits the field off: the SQL goes to `vertical_version_migrations`, one
11
+ * row per migration, and the manifest is stored without it. The wire is unchanged, since the
12
+ * CLI still sends `migrations` inside the manifest. Two columns on `vertical_versions` carry
13
+ * what the rows alone cannot:
14
+ *
15
+ * - `migration_count`: how many rows the version stored. **NULL means the version carries no
16
+ * SQL** (pushed before #1677, over the push's caps, or malformed), which a reader must show
17
+ * as "not available", never as "no migrations". `0` is a version whose modules ship none. A
18
+ * read whose row count disagrees with it answers null rather than a short list.
19
+ * - `migrations_split`: 1 once the version's SQL is out of its manifest. NULL is a version
20
+ * stored before this, whose manifest may still carry it. The backfill below moves those a
21
+ * bounded batch at a time, and until it reaches a version the read falls back to that
22
+ * version's manifest. The fallback is only for those rows. A version published by this code
23
+ * is split on the way in.
24
+ */
25
+ import { type DeclaredMigration } from '@substrat-run/contracts';
26
+ import type { SwitchSql } from './system-switch.js';
27
+ /**
28
+ * The table, and the index the backfill walks. Interpolated into both adapters' directory DDL,
29
+ * so `lint:spine-ddl` sees one spelling on each side. Anything that references this table or
30
+ * this index goes in this fragment, which is what the adapters run after their column additions.
31
+ *
32
+ * The index is partial: it holds only versions still waiting for the backfill, so "is there
33
+ * anything left" is one probe that costs nothing once the backfill is done. It names a column
34
+ * a directory from before #1764 lacks, so the adapters run these statements after their
35
+ * column additions, not in their DDL loop.
36
+ */
37
+ export declare const VERSION_MIGRATIONS_DDL = "\n CREATE TABLE IF NOT EXISTS vertical_version_migrations (\n version_id TEXT NOT NULL,\n -- The migration's place in the order the host runs them, from 0.\n ordinal INTEGER NOT NULL,\n module_id TEXT NOT NULL,\n -- The module's SqlMigration.version, e.g. 0001-init.\n version TEXT NOT NULL,\n sql TEXT NOT NULL,\n PRIMARY KEY (version_id, ordinal)\n );\n CREATE INDEX IF NOT EXISTS vertical_versions_unsplit\n ON vertical_versions (id) WHERE migrations_split IS NULL;\n";
38
+ /** A manifest with its SQL taken out, and the SQL. */
39
+ export interface SplitManifest {
40
+ /** The manifest to store: without `migrations`, or exactly as given when there was nothing to take. */
41
+ manifestJson: string | null;
42
+ /** The migrations to store, or null when the version carries none that can be stored. */
43
+ migrations: DeclaredMigration[] | null;
44
+ }
45
+ /**
46
+ * Take `migrations` out of a manifest.
47
+ *
48
+ * `push` holds the field to the push boundary's caps (`deployManifest`): at most 2000 entries
49
+ * and 512 KiB of SQL, which also bounds every row under a Durable Object's 2 MB row limit.
50
+ * `/deploy` already refuses an over-cap set, before the upload, because it parses the whole
51
+ * manifest with `deployManifest`. This split caps whatever reaches `publishVersion` by any
52
+ * route, including `POST /verticals/:slug/versions`, which stores `manifestJson` unparsed
53
+ * (#1765). There, a field over the caps or not shaped like migrations is dropped and the
54
+ * version reads as "SQL not available", so the promote dialog still asks. `stored` is for a
55
+ * manifest already in the directory, whose history the caps must never make unreadable
56
+ * (`storedDeployManifest`).
57
+ *
58
+ * A manifest that is not a JSON object is returned as it came, with no migrations. The
59
+ * manifest is only rewritten when it has a `migrations` key to remove.
60
+ */
61
+ export declare function splitManifestMigrations(manifestJson: string | null, mode: 'push' | 'stored'): SplitManifest;
62
+ /** Replace one version's migration rows. The caller sets its `migration_count` and `migrations_split`. */
63
+ export declare function writeVersionMigrations(db: SwitchSql, versionId: string, migrations: readonly DeclaredMigration[] | null): void;
64
+ /**
65
+ * The two reads that find unsplit versions. Named so the kernel's test can EXPLAIN these
66
+ * exact strings: each must be answered from `vertical_versions_unsplit`, never by a scan of
67
+ * every version's row (and its manifest's overflow pages).
68
+ */
69
+ export declare const UNSPLIT_IDS_SQL = "SELECT id FROM vertical_versions WHERE migrations_split IS NULL ORDER BY id LIMIT ?";
70
+ export declare const UNSPLIT_PROBE_SQL = "SELECT 1 AS present FROM vertical_versions WHERE migrations_split IS NULL LIMIT 1";
71
+ /**
72
+ * How much manifest one batch reads at most, in UTF-8 bytes (the first version is always
73
+ * moved). A stored manifest can be up to about 1.5 MiB, and a batch holds the directory DO.
74
+ * Bytes, because what a batch costs is the bytes it reads: a manifest of four-byte characters
75
+ * is four times its character count.
76
+ */
77
+ export declare const BATCH_MANIFEST_BYTES: number;
78
+ /**
79
+ * Move the SQL out of the next versions stored before #1764: at most `limit` of them, and
80
+ * at most `BATCH_MANIFEST_BYTES` of manifest. Returns how many it moved, and whether any are
81
+ * left.
82
+ *
83
+ * Bounded so that no one run has to read the whole version history: the Durable-Object
84
+ * adapter runs one batch per alarm and re-arms while any are left, so its constructor never
85
+ * does per-version work. Resumable because each version is marked as it is moved, in the
86
+ * caller's transaction with its rows. A version is moved by the same `splitManifestMigrations`
87
+ * a push goes through, in `stored` mode, so history is read without the push caps.
88
+ *
89
+ * Idempotent: a version that is already split is never selected, and moving one replaces its
90
+ * rows. A directory restored from a dump taken before the backfill comes back unsplit and is
91
+ * simply moved again.
92
+ */
93
+ export declare function splitVersionMigrationsBatch(db: SwitchSql, limit?: number): {
94
+ moved: number;
95
+ more: boolean;
96
+ };
97
+ /** Whether any version still waits for the backfill. One probe of the partial index. */
98
+ export declare function versionsAwaitSplit(db: SwitchSql): boolean;
99
+ /**
100
+ * One version's migrations, in the order the host runs them. `undefined` when there is no
101
+ * such version. `migrations` is null when the version carries none that can be shown, which
102
+ * a reader must say as "not available", never as "no migrations".
103
+ */
104
+ export declare function versionMigrationsOf(db: SwitchSql, versionId: string): {
105
+ verticalSlug: string;
106
+ migrations: DeclaredMigration[] | null;
107
+ } | undefined;
108
+ //# sourceMappingURL=version-migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-migrations.d.ts","sourceRoot":"","sources":["../src/version-migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,ugBAalC,CAAC;AAEF,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B,uGAAuG;IACvG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yFAAyF;IACzF,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;CACxC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAkB3G;AAED,0GAA0G;AAC1G,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,IAAI,GAC9C,IAAI,CASN;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,wFAAwF,CAAC;AACrH,eAAO,MAAM,iBAAiB,sFAAsF,CAAC;AAIrH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAAkB,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,SAAS,EACb,KAAK,GAAE,MAAuB,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAiClC;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,MAAM,GAChB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CA4B9E"}
@@ -0,0 +1,187 @@
1
+ /**
2
+ * A version's SQL migrations, stored apart from its manifest (#1764), shared by both adapters.
3
+ *
4
+ * Since #1677 a pushed deploy manifest carries its whole cumulative migration set
5
+ * (`migrations: { moduleId, version, sql }[]`). The manifest is one `manifest_json` column on
6
+ * `vertical_versions`, so every read of a version moved that SQL too: `readVersion` on every
7
+ * admit, promote and bind, and every `storedDeployManifest.parse` behind `/registry`, `/model`,
8
+ * `/schedules` and the serving upload. Only the promote review reads the SQL.
9
+ *
10
+ * So `publishVersion` splits the field off: the SQL goes to `vertical_version_migrations`, one
11
+ * row per migration, and the manifest is stored without it. The wire is unchanged, since the
12
+ * CLI still sends `migrations` inside the manifest. Two columns on `vertical_versions` carry
13
+ * what the rows alone cannot:
14
+ *
15
+ * - `migration_count`: how many rows the version stored. **NULL means the version carries no
16
+ * SQL** (pushed before #1677, over the push's caps, or malformed), which a reader must show
17
+ * as "not available", never as "no migrations". `0` is a version whose modules ship none. A
18
+ * read whose row count disagrees with it answers null rather than a short list.
19
+ * - `migrations_split`: 1 once the version's SQL is out of its manifest. NULL is a version
20
+ * stored before this, whose manifest may still carry it. The backfill below moves those a
21
+ * bounded batch at a time, and until it reaches a version the read falls back to that
22
+ * version's manifest. The fallback is only for those rows. A version published by this code
23
+ * is split on the way in.
24
+ */
25
+ import { deployManifest, storedDeployManifest, } from '@substrat-run/contracts';
26
+ /**
27
+ * The table, and the index the backfill walks. Interpolated into both adapters' directory DDL,
28
+ * so `lint:spine-ddl` sees one spelling on each side. Anything that references this table or
29
+ * this index goes in this fragment, which is what the adapters run after their column additions.
30
+ *
31
+ * The index is partial: it holds only versions still waiting for the backfill, so "is there
32
+ * anything left" is one probe that costs nothing once the backfill is done. It names a column
33
+ * a directory from before #1764 lacks, so the adapters run these statements after their
34
+ * column additions, not in their DDL loop.
35
+ */
36
+ export const VERSION_MIGRATIONS_DDL = `
37
+ CREATE TABLE IF NOT EXISTS vertical_version_migrations (
38
+ version_id TEXT NOT NULL,
39
+ -- The migration's place in the order the host runs them, from 0.
40
+ ordinal INTEGER NOT NULL,
41
+ module_id TEXT NOT NULL,
42
+ -- The module's SqlMigration.version, e.g. 0001-init.
43
+ version TEXT NOT NULL,
44
+ sql TEXT NOT NULL,
45
+ PRIMARY KEY (version_id, ordinal)
46
+ );
47
+ CREATE INDEX IF NOT EXISTS vertical_versions_unsplit
48
+ ON vertical_versions (id) WHERE migrations_split IS NULL;
49
+ `;
50
+ /**
51
+ * Take `migrations` out of a manifest.
52
+ *
53
+ * `push` holds the field to the push boundary's caps (`deployManifest`): at most 2000 entries
54
+ * and 512 KiB of SQL, which also bounds every row under a Durable Object's 2 MB row limit.
55
+ * `/deploy` already refuses an over-cap set, before the upload, because it parses the whole
56
+ * manifest with `deployManifest`. This split caps whatever reaches `publishVersion` by any
57
+ * route, including `POST /verticals/:slug/versions`, which stores `manifestJson` unparsed
58
+ * (#1765). There, a field over the caps or not shaped like migrations is dropped and the
59
+ * version reads as "SQL not available", so the promote dialog still asks. `stored` is for a
60
+ * manifest already in the directory, whose history the caps must never make unreadable
61
+ * (`storedDeployManifest`).
62
+ *
63
+ * A manifest that is not a JSON object is returned as it came, with no migrations. The
64
+ * manifest is only rewritten when it has a `migrations` key to remove.
65
+ */
66
+ export function splitManifestMigrations(manifestJson, mode) {
67
+ if (manifestJson === null)
68
+ return { manifestJson, migrations: null };
69
+ let parsed;
70
+ try {
71
+ parsed = JSON.parse(manifestJson);
72
+ }
73
+ catch {
74
+ return { manifestJson, migrations: null };
75
+ }
76
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed) || !('migrations' in parsed)) {
77
+ return { manifestJson, migrations: null };
78
+ }
79
+ const { migrations: carried, ...rest } = parsed;
80
+ const schema = (mode === 'push' ? deployManifest : storedDeployManifest).shape.migrations;
81
+ const result = schema.safeParse(carried);
82
+ return {
83
+ manifestJson: JSON.stringify(rest),
84
+ migrations: result.success && result.data !== undefined ? result.data : null,
85
+ };
86
+ }
87
+ /** Replace one version's migration rows. The caller sets its `migration_count` and `migrations_split`. */
88
+ export function writeVersionMigrations(db, versionId, migrations) {
89
+ db.run('DELETE FROM vertical_version_migrations WHERE version_id = ?', versionId);
90
+ (migrations ?? []).forEach((m, ordinal) => {
91
+ db.run(`INSERT INTO vertical_version_migrations (version_id, ordinal, module_id, version, sql)
92
+ VALUES (?, ?, ?, ?, ?)`, versionId, ordinal, m.moduleId, m.version, m.sql);
93
+ });
94
+ }
95
+ /**
96
+ * The two reads that find unsplit versions. Named so the kernel's test can EXPLAIN these
97
+ * exact strings: each must be answered from `vertical_versions_unsplit`, never by a scan of
98
+ * every version's row (and its manifest's overflow pages).
99
+ */
100
+ export const UNSPLIT_IDS_SQL = 'SELECT id FROM vertical_versions WHERE migrations_split IS NULL ORDER BY id LIMIT ?';
101
+ export const UNSPLIT_PROBE_SQL = 'SELECT 1 AS present FROM vertical_versions WHERE migrations_split IS NULL LIMIT 1';
102
+ /** How many versions one backfill batch moves at most. */
103
+ const BATCH_VERSIONS = 25;
104
+ /**
105
+ * How much manifest one batch reads at most, in UTF-8 bytes (the first version is always
106
+ * moved). A stored manifest can be up to about 1.5 MiB, and a batch holds the directory DO.
107
+ * Bytes, because what a batch costs is the bytes it reads: a manifest of four-byte characters
108
+ * is four times its character count.
109
+ */
110
+ export const BATCH_MANIFEST_BYTES = 4 * 1024 * 1024;
111
+ /**
112
+ * Move the SQL out of the next versions stored before #1764: at most `limit` of them, and
113
+ * at most `BATCH_MANIFEST_BYTES` of manifest. Returns how many it moved, and whether any are
114
+ * left.
115
+ *
116
+ * Bounded so that no one run has to read the whole version history: the Durable-Object
117
+ * adapter runs one batch per alarm and re-arms while any are left, so its constructor never
118
+ * does per-version work. Resumable because each version is marked as it is moved, in the
119
+ * caller's transaction with its rows. A version is moved by the same `splitManifestMigrations`
120
+ * a push goes through, in `stored` mode, so history is read without the push caps.
121
+ *
122
+ * Idempotent: a version that is already split is never selected, and moving one replaces its
123
+ * rows. A directory restored from a dump taken before the backfill comes back unsplit and is
124
+ * simply moved again.
125
+ */
126
+ export function splitVersionMigrationsBatch(db, limit = BATCH_VERSIONS) {
127
+ // The ids come off the partial index alone; each manifest is read only when it is moved.
128
+ const ids = db.all(UNSPLIT_IDS_SQL, limit);
129
+ let moved = 0;
130
+ let bytes = 0;
131
+ for (const { id } of ids) {
132
+ // The candidate is measured before it is taken, so a batch never passes the bound by one
133
+ // more manifest. The first is always taken, or a manifest over the bound would never move.
134
+ // `octet_length` (SQLite 3.43+) counts bytes; `length` would count code points.
135
+ const { size } = db.all('SELECT COALESCE(octet_length(manifest_json), 0) AS size FROM vertical_versions WHERE id = ?', id)[0];
136
+ if (moved > 0 && bytes + size > BATCH_MANIFEST_BYTES)
137
+ break;
138
+ bytes += size;
139
+ const { manifest_json: stored } = db.all('SELECT manifest_json FROM vertical_versions WHERE id = ?', id)[0];
140
+ const split = splitManifestMigrations(stored, 'stored');
141
+ writeVersionMigrations(db, id, split.migrations);
142
+ const count = split.migrations?.length ?? null;
143
+ // A manifest with nothing taken out is left where it is, not rewritten.
144
+ if (split.manifestJson === stored) {
145
+ db.run('UPDATE vertical_versions SET migration_count = ?, migrations_split = 1 WHERE id = ?', count, id);
146
+ }
147
+ else {
148
+ db.run('UPDATE vertical_versions SET manifest_json = ?, migration_count = ?, migrations_split = 1 WHERE id = ?', split.manifestJson, count, id);
149
+ }
150
+ moved++;
151
+ }
152
+ return { moved, more: versionsAwaitSplit(db) };
153
+ }
154
+ /** Whether any version still waits for the backfill. One probe of the partial index. */
155
+ export function versionsAwaitSplit(db) {
156
+ return db.all(UNSPLIT_PROBE_SQL).length > 0;
157
+ }
158
+ /**
159
+ * One version's migrations, in the order the host runs them. `undefined` when there is no
160
+ * such version. `migrations` is null when the version carries none that can be shown, which
161
+ * a reader must say as "not available", never as "no migrations".
162
+ */
163
+ export function versionMigrationsOf(db, versionId) {
164
+ // The manifest is read only for a version the backfill has not reached: its SQL, if any,
165
+ // is still in there. A split version's manifest carries none, so it is left unread.
166
+ const row = db.all(`SELECT vertical_slug, migration_count, migrations_split,
167
+ CASE WHEN migrations_split IS NULL THEN manifest_json END AS manifest_json
168
+ FROM vertical_versions WHERE id = ?`, versionId)[0];
169
+ if (!row)
170
+ return undefined;
171
+ if (row.migrations_split === null) {
172
+ return { verticalSlug: row.vertical_slug, migrations: splitManifestMigrations(row.manifest_json, 'stored').migrations };
173
+ }
174
+ if (row.migration_count === null)
175
+ return { verticalSlug: row.vertical_slug, migrations: null };
176
+ const rows = db.all(`SELECT module_id, version, sql FROM vertical_version_migrations
177
+ WHERE version_id = ? ORDER BY ordinal`, versionId);
178
+ // Never a short list: rows that disagree with the count are not the version's migrations.
179
+ if (rows.length !== row.migration_count)
180
+ return { verticalSlug: row.vertical_slug, migrations: null };
181
+ return {
182
+ verticalSlug: row.vertical_slug,
183
+ // Parsed on the way in (`splitManifestMigrations`), so the brand is the stored value's.
184
+ migrations: rows.map((r) => ({ moduleId: r.module_id, version: r.version, sql: r.sql })),
185
+ };
186
+ }
187
+ //# sourceMappingURL=version-migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-migrations.js","sourceRoot":"","sources":["../src/version-migrations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-events.d.ts","sourceRoot":"","sources":["../src/vertical-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vertical-events.d.ts","sourceRoot":"","sources":["../src/vertical-events.ts"],"names":[],"mappings":"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"}
@@ -104,12 +104,17 @@ export const VERTICAL_EVENTS_DDL = `
104
104
  export function exportReadQuery(types, after, limit) {
105
105
  if (types.length === 0)
106
106
  throw new Error('exportReadQuery: no types to read');
107
- const placeholders = types.map(() => '?').join(', ');
107
+ // The types travel as ONE bound JSON array (#1776): a Durable Object binds at most 100
108
+ // parameters, and nothing caps how many event types a manifest exports. The plan depends on
109
+ // there being no table statistics: with none, this seeks `_substrat_outbox_type_id` as the
110
+ // old `IN (?, …)` did. After an ANALYZE, SQLite walks the primary key with a bloom filter
111
+ // instead. The platform runs neither ANALYZE nor `PRAGMA optimize`, but a module's `ctx.sql` can
112
+ // (#1787). Whoever adds one should recheck this plan (`adapter-cloudflare/test/do-sql-limits.test.ts` pins it).
108
113
  return {
109
- sql: `SELECT * FROM _substrat_outbox WHERE type IN (${placeholders})` +
114
+ sql: 'SELECT * FROM _substrat_outbox WHERE type IN (SELECT value FROM json_each(?))' +
110
115
  (after === null ? '' : ' AND id > ?') +
111
116
  ' ORDER BY id LIMIT ?',
112
- params: [...types, ...(after === null ? [] : [after]), limit],
117
+ params: [JSON.stringify(types), ...(after === null ? [] : [after]), limit],
113
118
  };
114
119
  }
115
120
  /**
@@ -262,8 +267,9 @@ export function exportedSinceQuery(types, mark) {
262
267
  if (types.length === 0)
263
268
  throw new Error('exportedSinceQuery: no types to count');
264
269
  return {
265
- sql: `SELECT COUNT(*) AS n FROM _substrat_outbox WHERE rowid > ? AND type IN (${types.map(() => '?').join(', ')})`,
266
- params: [mark, ...types],
270
+ // One bound JSON array, on `exportReadQuery`'s reasoning (#1776).
271
+ sql: 'SELECT COUNT(*) AS n FROM _substrat_outbox WHERE rowid > ? AND type IN (SELECT value FROM json_each(?))',
272
+ params: [mark, JSON.stringify(types)],
267
273
  };
268
274
  }
269
275
  /** The consumer's watermark per producer, oldest source first. */
@@ -1 +1 @@
1
- {"version":3,"file":"vertical-events.js","sourceRoot":"","sources":["../src/vertical-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vertical-events.js","sourceRoot":"","sources":["../src/vertical-events.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/kernel",
3
- "version": "0.121.0",
3
+ "version": "0.122.0",
4
4
  "description": "Substrat kernel contracts and services — pure TypeScript, no platform imports (D-14)",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -22,7 +22,7 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@substrat-run/contracts": "^0.121.0"
25
+ "@substrat-run/contracts": "^0.122.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/node": "^22.0.0",