@vibesdotdev/localdb 0.0.2 → 1.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +123 -2
- package/dist/cli/commands/_shared.consumer.d.ts +1 -3
- package/dist/cli/commands/_shared.consumer.d.ts.map +1 -1
- package/dist/cli/commands/_shared.consumer.js +1 -11
- package/dist/cli/commands/_shared.consumer.js.map +1 -1
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js +1 -1
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.js.map +1 -1
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts +9 -3
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.d.ts.map +1 -1
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js +59 -45
- package/dist/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.js.map +1 -1
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js +1 -1
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.js.map +1 -1
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts +8 -3
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js +12 -10
- package/dist/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js +1 -1
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.js.map +1 -1
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts +6 -3
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.d.ts.map +1 -1
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js +8 -7
- package/dist/cli/commands/pools/dev.localdb.pools.cli-command.impl.js.map +1 -1
- package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js +1 -1
- package/dist/cli/commands/query/dev.localdb.query.cli-command.descriptor.js.map +1 -1
- package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts +13 -3
- package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.d.ts.map +1 -1
- package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js +66 -51
- package/dist/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.js.map +1 -1
- package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js +1 -1
- package/dist/cli/commands/status/dev.localdb.status.cli-command.descriptor.js.map +1 -1
- package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts +9 -3
- package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.d.ts.map +1 -1
- package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js +41 -29
- package/dist/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.js.map +1 -1
- package/dist/cli/inputs.d.ts +25 -0
- package/dist/cli/inputs.d.ts.map +1 -0
- package/dist/cli/inputs.js +81 -0
- package/dist/cli/inputs.js.map +1 -0
- package/dist/cli/types.d.ts +45 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +14 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/core/connection-pool.d.ts +204 -46
- package/dist/core/connection-pool.d.ts.map +1 -1
- package/dist/core/connection-pool.js +610 -101
- package/dist/core/connection-pool.js.map +1 -1
- package/dist/core/database.d.ts +243 -63
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +937 -203
- package/dist/core/database.js.map +1 -1
- package/dist/core/holders.d.ts +15 -0
- package/dist/core/holders.d.ts.map +1 -0
- package/dist/core/holders.js +4 -0
- package/dist/core/holders.js.map +1 -0
- package/dist/core/host-kinds.d.ts +22 -0
- package/dist/core/host-kinds.d.ts.map +1 -0
- package/dist/core/host-kinds.js +52 -0
- package/dist/core/host-kinds.js.map +1 -0
- package/dist/core/live-runtime.d.ts +17 -0
- package/dist/core/live-runtime.d.ts.map +1 -0
- package/dist/core/live-runtime.js +28 -0
- package/dist/core/live-runtime.js.map +1 -0
- package/dist/core/migration-registry.d.ts +115 -80
- package/dist/core/migration-registry.d.ts.map +1 -1
- package/dist/core/migration-registry.js +340 -199
- package/dist/core/migration-registry.js.map +1 -1
- package/dist/core/open-connection.d.ts +11 -0
- package/dist/core/open-connection.d.ts.map +1 -0
- package/dist/core/open-connection.js +70 -0
- package/dist/core/open-connection.js.map +1 -0
- package/dist/core/outcome.d.ts +21 -0
- package/dist/core/outcome.d.ts.map +1 -0
- package/dist/core/outcome.js +22 -0
- package/dist/core/outcome.js.map +1 -0
- package/dist/core/pool-api.d.ts +19 -0
- package/dist/core/pool-api.d.ts.map +1 -0
- package/dist/core/pool-api.js +59 -0
- package/dist/core/pool-api.js.map +1 -0
- package/dist/core/slow-statement.d.ts +81 -0
- package/dist/core/slow-statement.d.ts.map +1 -0
- package/dist/core/slow-statement.js +149 -0
- package/dist/core/slow-statement.js.map +1 -0
- package/dist/core/wal-policy.d.ts +86 -0
- package/dist/core/wal-policy.d.ts.map +1 -0
- package/dist/core/wal-policy.js +115 -0
- package/dist/core/wal-policy.js.map +1 -0
- package/dist/dev.localdb.cli-group.descriptor.d.ts +1 -1
- package/dist/dev.localdb.cli-group.descriptor.d.ts.map +1 -1
- package/dist/dev.localdb.context.descriptor.d.ts +15 -1
- package/dist/dev.localdb.context.descriptor.d.ts.map +1 -1
- package/dist/dev.localdb.context.descriptor.js +1 -1
- package/dist/dev.localdb.context.descriptor.js.map +1 -1
- package/dist/dev.localdb.context.impl.consumer.d.ts +12 -5
- package/dist/dev.localdb.context.impl.consumer.d.ts.map +1 -1
- package/dist/dev.localdb.context.impl.consumer.js +14 -5
- package/dist/dev.localdb.context.impl.consumer.js.map +1 -1
- package/dist/driver/sqlite-driver.base.d.ts +107 -0
- package/dist/driver/sqlite-driver.base.d.ts.map +1 -0
- package/dist/driver/sqlite-driver.base.js +426 -0
- package/dist/driver/sqlite-driver.base.js.map +1 -0
- package/dist/driver/sqlite-driver.d.ts +154 -0
- package/dist/driver/sqlite-driver.d.ts.map +1 -0
- package/dist/driver/sqlite-driver.js +103 -0
- package/dist/driver/sqlite-driver.js.map +1 -0
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/localdb.client.descriptor.d.ts +10 -0
- package/dist/localdb.client.descriptor.d.ts.map +1 -0
- package/dist/localdb.client.descriptor.js +13 -0
- package/dist/localdb.client.descriptor.js.map +1 -0
- package/dist/localdb.client.impl.consumer.d.ts +11 -0
- package/dist/localdb.client.impl.consumer.d.ts.map +1 -0
- package/dist/localdb.client.impl.consumer.js +11 -0
- package/dist/localdb.client.impl.consumer.js.map +1 -0
- package/dist/localdb.plugin.d.ts +2 -2
- package/dist/localdb.plugin.d.ts.map +1 -1
- package/dist/localdb.plugin.js +58 -10
- package/dist/localdb.plugin.js.map +1 -1
- package/dist/location.d.ts +6 -0
- package/dist/location.d.ts.map +1 -0
- package/dist/location.js +6 -0
- package/dist/location.js.map +1 -0
- package/dist/migrations/load-sql.d.ts +25 -21
- package/dist/migrations/load-sql.d.ts.map +1 -1
- package/dist/migrations/load-sql.js +91 -76
- package/dist/migrations/load-sql.js.map +1 -1
- package/dist/pool.d.ts +3 -0
- package/dist/pool.d.ts.map +1 -0
- package/dist/pool.js +3 -0
- package/dist/pool.js.map +1 -0
- package/dist/schemas/api.d.ts +133 -59
- package/dist/schemas/api.d.ts.map +1 -1
- package/dist/schemas/api.js +1 -1
- package/dist/schemas/api.js.map +1 -1
- package/dist/schemas/migrations.d.ts +123 -0
- package/dist/schemas/migrations.d.ts.map +1 -0
- package/dist/schemas/migrations.js +55 -0
- package/dist/schemas/migrations.js.map +1 -0
- package/dist/schemas/pool.d.ts +27 -0
- package/dist/schemas/pool.d.ts.map +1 -0
- package/dist/schemas/pool.js +7 -0
- package/dist/schemas/pool.js.map +1 -0
- package/dist/schemas/sqlite-driver-base.d.ts +50 -0
- package/dist/schemas/sqlite-driver-base.d.ts.map +1 -0
- package/dist/schemas/sqlite-driver-base.js +2 -0
- package/dist/schemas/sqlite-driver-base.js.map +1 -0
- package/dist/testing/sqlite-driver-conformance.d.ts +42 -0
- package/dist/testing/sqlite-driver-conformance.d.ts.map +1 -0
- package/dist/testing/sqlite-driver-conformance.js +471 -0
- package/dist/testing/sqlite-driver-conformance.js.map +1 -0
- package/package.json +78 -104
- package/dist/core/error-context.d.ts +0 -2
- package/dist/core/error-context.d.ts.map +0 -1
- package/dist/core/error-context.js +0 -17
- package/dist/core/error-context.js.map +0 -1
- package/dist/core/runtime.d.ts +0 -3
- package/dist/core/runtime.d.ts.map +0 -1
- package/dist/core/runtime.js +0 -17
- package/dist/core/runtime.js.map +0 -1
- package/dist/localdb.cloud.plugin.d.ts +0 -17
- package/dist/localdb.cloud.plugin.d.ts.map +0 -1
- package/dist/localdb.cloud.plugin.js +0 -23
- package/dist/localdb.cloud.plugin.js.map +0 -1
- package/src/cli/commands/_shared.consumer.ts +0 -20
- package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.descriptor.ts +0 -20
- package/src/cli/commands/migrate/dev.localdb.migrate.cli-command.impl.consumer.ts +0 -97
- package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.descriptor.ts +0 -17
- package/src/cli/commands/namespaces/dev.localdb.namespaces.cli-command.impl.ts +0 -46
- package/src/cli/commands/pools/dev.localdb.pools.cli-command.descriptor.ts +0 -16
- package/src/cli/commands/pools/dev.localdb.pools.cli-command.impl.ts +0 -37
- package/src/cli/commands/query/dev.localdb.query.cli-command.descriptor.ts +0 -21
- package/src/cli/commands/query/dev.localdb.query.cli-command.impl.consumer.ts +0 -69
- package/src/cli/commands/status/dev.localdb.status.cli-command.descriptor.ts +0 -20
- package/src/cli/commands/status/dev.localdb.status.cli-command.impl.consumer.ts +0 -93
- package/src/core/connection-pool.ts +0 -240
- package/src/core/database.ts +0 -419
- package/src/core/error-context.ts +0 -19
- package/src/core/migration-registry.ts +0 -321
- package/src/core/runtime.ts +0 -17
- package/src/dev.localdb.cli-group.descriptor.ts +0 -20
- package/src/dev.localdb.context.descriptor.ts +0 -13
- package/src/dev.localdb.context.impl.consumer.ts +0 -12
- package/src/index.ts +0 -28
- package/src/localdb.cloud.plugin.ts +0 -24
- package/src/localdb.plugin.ts +0 -43
- package/src/migrations/atlas/001-initial-schema.sql +0 -173
- package/src/migrations/atlas/002-lang-server-fields.sql +0 -12
- package/src/migrations/atlas/003-config-id-dedup.sql +0 -31
- package/src/migrations/atlas/004-fix-on-conflict-constraints.sql +0 -25
- package/src/migrations/atlas/005-diagnostics.sql +0 -66
- package/src/migrations/atlas/006-diagnostic-summaries.sql +0 -65
- package/src/migrations/atlas/007-diagnostic-slice.sql +0 -83
- package/src/migrations/load-sql.ts +0 -133
- package/src/schemas/api.ts +0 -92
|
@@ -5,222 +5,363 @@
|
|
|
5
5
|
* Consumers register their migrations with the registry, which ensures
|
|
6
6
|
* they run in order with proper error handling and version tracking.
|
|
7
7
|
*/
|
|
8
|
+
import * as z from 'zod/v4';
|
|
8
9
|
import { getLogger } from '@vibesdotdev/logging';
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
import { CapabilityError, createRuntimeKind, isCapabilityError } from '@vibesdotdev/kernel';
|
|
11
|
+
import { MigrationDescriptorSchema, MigrationRegistrationSchema, MigrationReplacementSchema, NamespaceDatabaseLocationSchema } from "../schemas/migrations.js";
|
|
12
|
+
/** The registry's Logging on the runtime one call serves (C083a). */
|
|
13
|
+
function migrationsLogger(runtime) {
|
|
14
|
+
return getLogger('localdb:migrations', runtime);
|
|
15
|
+
}
|
|
16
|
+
/** The rows the registry reads back. */
|
|
17
|
+
const NameRowSchema = z.object({ name: z.string() });
|
|
18
|
+
const UserVersionRowSchema = z.object({ user_version: z.number() });
|
|
19
|
+
const VersionRowSchema = z.object({ version: z.number() });
|
|
20
|
+
const CountRowSchema = z.object({ count: z.number() });
|
|
21
|
+
/** The typed refusal of a second registration of one migration namespace. */
|
|
22
|
+
export const MIGRATION_NAMESPACE_REGISTERED = 'migration-namespace-registered';
|
|
23
|
+
/**
|
|
24
|
+
* Whether a caught failure is the registry's refusal to register `namespace`
|
|
25
|
+
* (any namespace when omitted) a second time. A catch site parses its binding
|
|
26
|
+
* with Runtime's `CaughtFailureSchema` first.
|
|
27
|
+
*/
|
|
28
|
+
export function isMigrationNamespaceRegistered(failure, namespace) {
|
|
29
|
+
return (isCapabilityError(failure) &&
|
|
30
|
+
failure.reason === MIGRATION_NAMESPACE_REGISTERED &&
|
|
31
|
+
(namespace === undefined || failure.details?.namespace === namespace));
|
|
32
|
+
}
|
|
33
|
+
export const MIGRATION_KIND = 'localdb/migrations';
|
|
34
|
+
export const migrationKind = createRuntimeKind({
|
|
35
|
+
id: MIGRATION_KIND,
|
|
36
|
+
descriptorSchema: MigrationDescriptorSchema
|
|
37
|
+
});
|
|
38
|
+
function validated(schema, input, reason) {
|
|
39
|
+
try {
|
|
40
|
+
return schema.parse(input);
|
|
18
41
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
CREATE TABLE IF NOT EXISTS vibes_schema_versions (
|
|
24
|
-
namespace TEXT PRIMARY KEY,
|
|
25
|
-
version INTEGER NOT NULL DEFAULT 0,
|
|
26
|
-
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
27
|
-
)
|
|
28
|
-
`);
|
|
42
|
+
catch (cause) {
|
|
43
|
+
throw new CapabilityError('Invalid LocalDB migration declaration', 'INVALID_INPUT', {
|
|
44
|
+
reason, retryable: false, cause
|
|
45
|
+
});
|
|
29
46
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
}
|
|
48
|
+
function declarations(runtime) {
|
|
49
|
+
if (!runtime.hasKind(MIGRATION_KIND))
|
|
50
|
+
return [];
|
|
51
|
+
// SAFETY: the kernel validates every contribution with MigrationDescriptorSchema at registration.
|
|
52
|
+
return runtime.query(MIGRATION_KIND).descriptors();
|
|
53
|
+
}
|
|
54
|
+
function declaration(runtime, namespace) {
|
|
55
|
+
return declarations(runtime).find(entry => entry.namespace === namespace);
|
|
56
|
+
}
|
|
57
|
+
function install(runtime, declaration) {
|
|
58
|
+
if (!runtime.hasKind(MIGRATION_KIND))
|
|
59
|
+
runtime.registerKind(migrationKind);
|
|
60
|
+
runtime.registerDescriptor(MIGRATION_KIND, {
|
|
61
|
+
kind: MIGRATION_KIND, id: declaration.namespace, ...declaration
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function buildNamespace(namespace, migrations, autoReset, location) {
|
|
65
|
+
return {
|
|
66
|
+
namespace,
|
|
67
|
+
migrations,
|
|
68
|
+
currentVersion: migrations.length,
|
|
69
|
+
autoReset,
|
|
70
|
+
location
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function getMigrationIds(migrations) {
|
|
74
|
+
return migrations.map(({ version, name }) => `${String(version).padStart(3, '0')}-${name}`);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Whether `right` names exactly the ids in `left` (the registered ids, which
|
|
78
|
+
* are distinct: versions are sequential). Equal lengths plus every distinct
|
|
79
|
+
* `left` id present in `right` means `right` repeats none.
|
|
80
|
+
*/
|
|
81
|
+
function hasSameMigrationIds(left, right) {
|
|
82
|
+
if (left.length !== right.length)
|
|
83
|
+
return false;
|
|
84
|
+
const rightIds = new Set(right);
|
|
85
|
+
return left.every((id) => rightIds.has(id));
|
|
86
|
+
}
|
|
87
|
+
function hasVersionTable(db) {
|
|
88
|
+
const row = NameRowSchema.nullable().parse(db.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'vibes_schema_versions'").get());
|
|
89
|
+
return row?.name === 'vibes_schema_versions';
|
|
90
|
+
}
|
|
91
|
+
function ensureVersionTable(db) {
|
|
92
|
+
if (hasVersionTable(db))
|
|
93
|
+
return;
|
|
94
|
+
db.exec(`
|
|
95
|
+
CREATE TABLE IF NOT EXISTS vibes_schema_versions (
|
|
96
|
+
namespace TEXT PRIMARY KEY,
|
|
97
|
+
version INTEGER NOT NULL DEFAULT 0,
|
|
98
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
99
|
+
)
|
|
100
|
+
`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* The legacy `user_version`. Contention is the connection's own wait: every
|
|
104
|
+
* LocalDB connection carries a `busy_timeout`, so SQLite's busy handler has
|
|
105
|
+
* already waited before a `SQLITE_BUSY` reaches here — it propagates. (A
|
|
106
|
+
* second, hand-rolled retry with a thread-parking sleep used to sit on top.)
|
|
107
|
+
*/
|
|
108
|
+
function getLegacyUserVersion(db) {
|
|
109
|
+
return UserVersionRowSchema.nullable().parse(db.prepare('PRAGMA user_version').get())?.user_version ?? 0;
|
|
110
|
+
}
|
|
111
|
+
function getTrackedSchemaVersion(db, namespace) {
|
|
112
|
+
ensureVersionTable(db);
|
|
113
|
+
const row = VersionRowSchema.nullable().parse(db.prepare('SELECT version FROM vibes_schema_versions WHERE namespace = ?').get(namespace));
|
|
114
|
+
return row ? row.version : null;
|
|
115
|
+
}
|
|
116
|
+
function bootstrapSchemaVersion(runtime, db, namespace) {
|
|
117
|
+
const tracked = getTrackedSchemaVersion(db, namespace);
|
|
118
|
+
if (tracked !== null)
|
|
119
|
+
return tracked;
|
|
120
|
+
const ns = declaration(runtime, namespace);
|
|
121
|
+
if (!ns) {
|
|
122
|
+
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
50
123
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
124
|
+
const legacyVersion = getLegacyUserVersion(db);
|
|
125
|
+
const trackedNamespaceCount = CountRowSchema.nullable().parse(db.prepare('SELECT COUNT(*) as count FROM vibes_schema_versions').get())?.count ?? 0;
|
|
126
|
+
const bootstrapVersion = trackedNamespaceCount === 0 && legacyVersion > 0 && legacyVersion <= ns.currentVersion
|
|
127
|
+
? legacyVersion
|
|
128
|
+
: 0;
|
|
129
|
+
setSchemaVersion(db, namespace, bootstrapVersion);
|
|
130
|
+
return bootstrapVersion;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Register migrations for a namespace (e.g., 'atlas', 'session'), reported
|
|
134
|
+
* on the registering runtime. Declarations belong to the handed runtime.
|
|
135
|
+
*/
|
|
136
|
+
function register(runtime, namespace, migrations, options) {
|
|
137
|
+
({ namespace, migrations, options } = validated(MigrationRegistrationSchema, { namespace, migrations, options }, 'localdb-migration-registration-invalid'));
|
|
138
|
+
if (declaration(runtime, namespace) !== undefined) {
|
|
139
|
+
throw new CapabilityError(`Migration namespace '${namespace}' is already registered`, 'CONFLICT', {
|
|
140
|
+
reason: MIGRATION_NAMESPACE_REGISTERED,
|
|
141
|
+
retryable: false,
|
|
142
|
+
details: { namespace }
|
|
143
|
+
});
|
|
57
144
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
145
|
+
install(runtime, buildNamespace(namespace, migrations, options?.autoReset ?? false, options?.location));
|
|
146
|
+
migrationsLogger(runtime).debug(`Registered ${migrations.length} migration(s) for namespace '${namespace}'`);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Repair a namespace that was registered with an incomplete migration set.
|
|
150
|
+
*
|
|
151
|
+
* `register()` deliberately remains immutable. This guarded escape hatch is
|
|
152
|
+
* for callers that can prove the registry contains the poisoned set they
|
|
153
|
+
* just observed, such as Atlas after an earlier empty registration. The
|
|
154
|
+
* compare-and-swap guard prevents a stale observer from overwriting a
|
|
155
|
+
* namespace another registrar repaired in the meantime.
|
|
156
|
+
*
|
|
157
|
+
* Returns `true` when the expectation matched. An identical incoming set is
|
|
158
|
+
* a successful no-op; otherwise the complete replacement is installed only
|
|
159
|
+
* after validating its migration sequence.
|
|
160
|
+
*/
|
|
161
|
+
function replaceMigrations(runtime, namespace, migrations, options) {
|
|
162
|
+
({ namespace, migrations, options } = validated(MigrationReplacementSchema, { namespace, migrations, options }, 'localdb-migration-replacement-invalid'));
|
|
163
|
+
const registered = declaration(runtime, namespace);
|
|
164
|
+
if (!registered)
|
|
165
|
+
return false;
|
|
166
|
+
const registeredIds = getMigrationIds(registered.migrations);
|
|
167
|
+
if (!hasSameMigrationIds(registeredIds, options.expectedRegisteredIds)) {
|
|
168
|
+
return false;
|
|
74
169
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
register(namespace, migrations) {
|
|
79
|
-
if (this.namespaces.has(namespace)) {
|
|
80
|
-
throw new Error(`Migration namespace '${namespace}' is already registered`);
|
|
81
|
-
}
|
|
82
|
-
// Sort migrations by version
|
|
83
|
-
const sorted = [...migrations].sort((a, b) => a.version - b.version);
|
|
84
|
-
// Validate version sequence
|
|
85
|
-
for (let i = 0; i < sorted.length; i++) {
|
|
86
|
-
const expected = i + 1;
|
|
87
|
-
const actual = sorted[i].version;
|
|
88
|
-
if (actual !== expected) {
|
|
89
|
-
throw new Error(`Invalid migration sequence in '${namespace}': expected version ${expected}, got ${actual}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const currentVersion = sorted.length > 0 ? sorted[sorted.length - 1].version : 0;
|
|
93
|
-
this.namespaces.set(namespace, {
|
|
94
|
-
namespace,
|
|
95
|
-
migrations: sorted,
|
|
96
|
-
currentVersion
|
|
97
|
-
});
|
|
98
|
-
logger.debug(`Registered ${migrations.length} migration(s) for namespace '${namespace}'`);
|
|
170
|
+
const incomingIds = getMigrationIds(migrations);
|
|
171
|
+
if (hasSameMigrationIds(registeredIds, incomingIds)) {
|
|
172
|
+
return true;
|
|
99
173
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
174
|
+
const replacement = buildNamespace(namespace, migrations, registered.autoReset, registered.location);
|
|
175
|
+
install(runtime, replacement);
|
|
176
|
+
migrationsLogger(runtime).info(`Replaced migrations for namespace '${namespace}' after guarded repair`);
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get current schema version from database
|
|
181
|
+
*/
|
|
182
|
+
function getSchemaVersion(runtime, db, namespace) {
|
|
183
|
+
return bootstrapSchemaVersion(runtime, db, namespace);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Set schema version in database
|
|
187
|
+
*/
|
|
188
|
+
function setSchemaVersion(db, namespace, version) {
|
|
189
|
+
ensureVersionTable(db);
|
|
190
|
+
db.prepare(`INSERT INTO vibes_schema_versions (namespace, version, updated_at)
|
|
191
|
+
VALUES (?, ?, datetime('now'))
|
|
192
|
+
ON CONFLICT(namespace) DO UPDATE SET
|
|
193
|
+
version = excluded.version,
|
|
194
|
+
updated_at = datetime('now')`).run(namespace, version);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check if database needs migration
|
|
198
|
+
*/
|
|
199
|
+
function needsMigration(runtime, db, namespace) {
|
|
200
|
+
const ns = declaration(runtime, namespace);
|
|
201
|
+
if (!ns) {
|
|
202
|
+
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
105
203
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
204
|
+
const currentVersion = getSchemaVersion(runtime, db, namespace);
|
|
205
|
+
return currentVersion < ns.currentVersion;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Check if database is from an incompatible/old migration system
|
|
209
|
+
* This happens when the version is higher than our max (legacy system)
|
|
210
|
+
*/
|
|
211
|
+
function isIncompatibleDatabase(runtime, db, namespace) {
|
|
212
|
+
const ns = declaration(runtime, namespace);
|
|
213
|
+
if (!ns) {
|
|
214
|
+
return false;
|
|
116
215
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
needsMigration(db, namespace) {
|
|
121
|
-
const ns = this.namespaces.get(namespace);
|
|
122
|
-
if (!ns) {
|
|
123
|
-
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
124
|
-
}
|
|
125
|
-
const currentVersion = this.getSchemaVersion(db, namespace);
|
|
126
|
-
return currentVersion < ns.currentVersion;
|
|
216
|
+
const trackedVersion = getTrackedSchemaVersion(db, namespace);
|
|
217
|
+
if (trackedVersion === null) {
|
|
218
|
+
return false;
|
|
127
219
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
220
|
+
return trackedVersion > ns.currentVersion;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Whether the namespace opted into destructive auto-reset recovery.
|
|
224
|
+
*/
|
|
225
|
+
function allowsAutoReset(runtime, namespace) {
|
|
226
|
+
return declaration(runtime, namespace)?.autoReset ?? false;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Tracked schema version for diagnostics (e.g. incompatible-database errors).
|
|
230
|
+
*/
|
|
231
|
+
function describeVersions(runtime, db, namespace) {
|
|
232
|
+
return {
|
|
233
|
+
tracked: getTrackedSchemaVersion(db, namespace),
|
|
234
|
+
current: declaration(runtime, namespace)?.currentVersion ?? 0
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Run all pending migrations for a namespace, reported on the runtime the
|
|
239
|
+
* run serves.
|
|
240
|
+
*/
|
|
241
|
+
async function runMigrations(runtime, db, namespace) {
|
|
242
|
+
const ns = declaration(runtime, namespace);
|
|
243
|
+
if (!ns) {
|
|
244
|
+
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
142
245
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
let currentVersion = this.getSchemaVersion(db, namespace);
|
|
152
|
-
logger.debug(`Running migrations for '${namespace}' (v${currentVersion} → v${ns.currentVersion})`);
|
|
153
|
-
for (const migration of ns.migrations) {
|
|
154
|
-
if (migration.version > currentVersion) {
|
|
155
|
-
logger.debug(`Applying migration ${migration.version}: ${migration.name}`);
|
|
156
|
-
try {
|
|
157
|
-
await migration.up(db);
|
|
158
|
-
currentVersion = migration.version;
|
|
159
|
-
this.setSchemaVersion(db, namespace, currentVersion);
|
|
160
|
-
logger.debug(`[LocalDB] Migration ${migration.version} completed`);
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
logger.error(`[LocalDB] Migration ${migration.version} failed:`, toErrorContext(error));
|
|
164
|
-
throw new Error(`Migration ${migration.version} (${migration.name}) failed: ${error}`);
|
|
165
|
-
}
|
|
246
|
+
const logger = migrationsLogger(runtime);
|
|
247
|
+
let currentVersion = getSchemaVersion(runtime, db, namespace);
|
|
248
|
+
logger.debug(`Running migrations for '${namespace}' (v${currentVersion} → v${ns.currentVersion})`);
|
|
249
|
+
for (const migration of ns.migrations) {
|
|
250
|
+
if (migration.version > currentVersion) {
|
|
251
|
+
logger.debug(`Applying migration ${migration.version}: ${migration.name}`);
|
|
252
|
+
try {
|
|
253
|
+
await migration.up(db);
|
|
166
254
|
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
throw new CapabilityError(`Migration ${migration.version} (${migration.name}) failed.`, 'INTERNAL', {
|
|
257
|
+
reason: 'localdb-migration-failed',
|
|
258
|
+
retryable: false,
|
|
259
|
+
details: { namespace, version: migration.version, name: migration.name },
|
|
260
|
+
cause: error
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
currentVersion = migration.version;
|
|
264
|
+
setSchemaVersion(db, namespace, currentVersion);
|
|
265
|
+
logger.debug(`[LocalDB] Migration ${migration.version} completed`);
|
|
167
266
|
}
|
|
168
|
-
logger.debug(`[LocalDB] All migrations completed for '${namespace}'`);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Get migration status for all namespaces
|
|
172
|
-
*/
|
|
173
|
-
getStatus() {
|
|
174
|
-
const status = [];
|
|
175
|
-
for (const ns of this.namespaces.values()) {
|
|
176
|
-
status.push({
|
|
177
|
-
namespace: ns.namespace,
|
|
178
|
-
currentVersion: 0, // Will be determined per-database
|
|
179
|
-
targetVersion: ns.currentVersion,
|
|
180
|
-
pendingMigrations: 0 // Will be determined per-database
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
return status;
|
|
184
267
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
namespace,
|
|
197
|
-
currentVersion,
|
|
268
|
+
logger.debug(`[LocalDB] All migrations completed for '${namespace}'`);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Get migration status for all namespaces
|
|
272
|
+
*/
|
|
273
|
+
function getStatus(runtime) {
|
|
274
|
+
const status = [];
|
|
275
|
+
for (const ns of declarations(runtime)) {
|
|
276
|
+
status.push({
|
|
277
|
+
namespace: ns.namespace,
|
|
278
|
+
currentVersion: 0, // Will be determined per-database
|
|
198
279
|
targetVersion: ns.currentVersion,
|
|
199
|
-
pendingMigrations:
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
280
|
+
pendingMigrations: 0 // Will be determined per-database
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return status;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Get migration status for a specific database and namespace
|
|
287
|
+
*/
|
|
288
|
+
function getDatabaseStatus(runtime, db, namespace) {
|
|
289
|
+
const ns = declaration(runtime, namespace);
|
|
290
|
+
if (!ns) {
|
|
291
|
+
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
206
292
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
293
|
+
const currentVersion = getSchemaVersion(runtime, db, namespace);
|
|
294
|
+
const pending = Math.max(0, ns.currentVersion - currentVersion);
|
|
295
|
+
return {
|
|
296
|
+
namespace,
|
|
297
|
+
currentVersion,
|
|
298
|
+
targetVersion: ns.currentVersion,
|
|
299
|
+
pendingMigrations: pending,
|
|
300
|
+
migrations: ns.migrations.map((m) => ({
|
|
301
|
+
version: m.version,
|
|
302
|
+
name: m.name,
|
|
303
|
+
applied: m.version <= currentVersion
|
|
304
|
+
}))
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* List all registered namespaces
|
|
309
|
+
*/
|
|
310
|
+
function listNamespaces(runtime) {
|
|
311
|
+
return declarations(runtime).map(entry => entry.namespace);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Resolve the owner-declared database location for a namespace, or
|
|
315
|
+
* `undefined` when the namespace is unknown or declared no location.
|
|
316
|
+
* Propagates resolver throws (e.g. an unbound project) — callers report
|
|
317
|
+
* that as the finding rather than guessing a path.
|
|
318
|
+
*/
|
|
319
|
+
function getNamespaceLocation(runtime, namespace) {
|
|
320
|
+
const location = declaration(runtime, namespace)?.location;
|
|
321
|
+
return location ? validated(NamespaceDatabaseLocationSchema, location(), 'localdb-migration-location-invalid') : undefined;
|
|
322
|
+
}
|
|
323
|
+
function getMigrations(runtime, namespace) {
|
|
324
|
+
if (!(runtime instanceof Object) || namespace === undefined) {
|
|
325
|
+
throw new CapabilityError('A runtime is required for migration declarations', 'INVALID_INPUT', {
|
|
326
|
+
reason: 'localdb-runtime-required', retryable: false
|
|
327
|
+
});
|
|
212
328
|
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
getMigrations(namespace) {
|
|
217
|
-
const ns = this.namespaces.get(namespace);
|
|
218
|
-
if (!ns) {
|
|
219
|
-
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
220
|
-
}
|
|
221
|
-
return [...ns.migrations];
|
|
329
|
+
const ns = declaration(runtime, namespace);
|
|
330
|
+
if (!ns) {
|
|
331
|
+
throw new Error(`Unknown migration namespace: ${namespace}`);
|
|
222
332
|
}
|
|
333
|
+
return [...ns.migrations];
|
|
334
|
+
}
|
|
335
|
+
/** Stateless compatibility facade; declarations live only in the handed kernel. */
|
|
336
|
+
export const migrationRegistry = {
|
|
337
|
+
register,
|
|
338
|
+
replaceMigrations,
|
|
339
|
+
getSchemaVersion,
|
|
340
|
+
needsMigration,
|
|
341
|
+
isIncompatibleDatabase,
|
|
342
|
+
allowsAutoReset,
|
|
343
|
+
describeVersions,
|
|
344
|
+
runMigrations,
|
|
345
|
+
getStatus,
|
|
346
|
+
getDatabaseStatus,
|
|
347
|
+
listNamespaces,
|
|
348
|
+
getNamespaceLocation,
|
|
349
|
+
getMigrations,
|
|
350
|
+
};
|
|
351
|
+
/** Compatibility constructor; no copied declarations or owned registry state. */
|
|
352
|
+
export class MigrationRegistry {
|
|
353
|
+
register = register;
|
|
354
|
+
replaceMigrations = replaceMigrations;
|
|
355
|
+
getSchemaVersion = getSchemaVersion;
|
|
356
|
+
needsMigration = needsMigration;
|
|
357
|
+
isIncompatibleDatabase = isIncompatibleDatabase;
|
|
358
|
+
allowsAutoReset = allowsAutoReset;
|
|
359
|
+
describeVersions = describeVersions;
|
|
360
|
+
runMigrations = runMigrations;
|
|
361
|
+
getStatus = getStatus;
|
|
362
|
+
getDatabaseStatus = getDatabaseStatus;
|
|
363
|
+
listNamespaces = listNamespaces;
|
|
364
|
+
getNamespaceLocation = getNamespaceLocation;
|
|
365
|
+
getMigrations = getMigrations;
|
|
223
366
|
}
|
|
224
|
-
// Singleton instance
|
|
225
|
-
export const migrationRegistry = new MigrationRegistry();
|
|
226
367
|
//# sourceMappingURL=migration-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migration-registry.js","sourceRoot":"","sources":["../../src/core/migration-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAmB/C,MAAM,iBAAiB;IACd,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEnD,eAAe,CAAC,EAAY;QACnC,MAAM,GAAG,GAAG,EAAE;aACZ,KAAK,CAGJ,wFAAwF,CAAC;aAC1F,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,EAAE,IAAI,KAAK,uBAAuB,CAAC;IAC9C,CAAC;IAEO,kBAAkB,CAAC,EAAY;QACtC,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YAAE,OAAO;QAErC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,EAAY;QACxC,IAAI,SAA4B,CAAC;QACjC,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,MAAM,SAAS,GAAG,GAAG,CAAC;QAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAA8B,CAAC;gBACjF,OAAO,MAAM,CAAC,YAAY,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,GAAG,KAAc,CAAC;gBAC3B,IAAK,KAA2B,EAAE,IAAI,KAAK,aAAa,IAAI,OAAO,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC;oBACtF,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC/C,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACrB,SAAS;gBACV,CAAC;gBACD,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC;IAEO,uBAAuB,CAAC,EAAY,EAAE,SAAiB;QAC9D,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAE5B,MAAM,GAAG,GAAG,EAAE;aACZ,KAAK,CAGJ,+DAA+D,CAAC;aACjE,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjB,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAEO,sBAAsB,CAAC,EAAY,EAAE,SAAiB;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC;QAErC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,qBAAqB,GAC1B,EAAE,CAAC,KAAK,CAAwB,qDAAqD,CAAC,CAAC,GAAG,EAAE;YAC3F,EAAE,KAAK,IAAI,CAAC,CAAC;QAEf,MAAM,gBAAgB,GACrB,qBAAqB,KAAK,CAAC,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,IAAI,EAAE,CAAC,cAAc;YACrF,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACvD,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB,EAAE,UAAuB;QAClD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,yBAAyB,CAAC,CAAC;QAC7E,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAErE,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACd,kCAAkC,SAAS,uBAAuB,QAAQ,SAAS,MAAM,EAAE,CAC3F,CAAC;YACH,CAAC;QACF,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE;YAC9B,SAAS;YACT,UAAU,EAAE,MAAM;YAClB,cAAc;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,cAAc,UAAU,CAAC,MAAM,gCAAgC,SAAS,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,EAAY,EAAE,SAAiB;QAC/C,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,EAAY,EAAE,SAAiB,EAAE,OAAe;QACxE,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAE5B,EAAE,CAAC,KAAK,CACP;;;;mCAIgC,CAChC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAY,EAAE,SAAiB;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5D,OAAO,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,EAAY,EAAE,SAAiB;QACrD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,OAAO,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,EAAY,EAAE,SAAiB;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CACX,2BAA2B,SAAS,OAAO,cAAc,OAAO,EAAE,CAAC,cAAc,GAAG,CACpF,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,SAAS,CAAC,OAAO,GAAG,cAAc,EAAE,CAAC;gBACxC,MAAM,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE3E,IAAI,CAAC;oBACJ,MAAM,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACvB,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC;oBACnC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;oBACrD,MAAM,CAAC,KAAK,CAAC,uBAAuB,SAAS,CAAC,OAAO,YAAY,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CACX,uBAAuB,SAAS,CAAC,OAAO,UAAU,EAClD,cAAc,CAAC,KAAK,CAAC,CACrB,CAAC;oBACF,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,aAAa,KAAK,EAAE,CAAC,CAAC;gBACxF,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,2CAA2C,SAAS,GAAG,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,SAAS;QAMR,MAAM,MAAM,GAKP,EAAE,CAAC;QAER,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,cAAc,EAAE,CAAC,EAAE,kCAAkC;gBACrD,aAAa,EAAE,EAAE,CAAC,cAAc;gBAChC,iBAAiB,EAAE,CAAC,CAAC,kCAAkC;aACvD,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;OAEG;IACH,iBAAiB,CAChB,EAAY,EACZ,SAAiB;QAQjB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC;QAEhE,OAAO;YACN,SAAS;YACT,cAAc;YACd,aAAa,EAAE,EAAE,CAAC,cAAc;YAChC,iBAAiB,EAAE,OAAO;YAC1B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,cAAc;aACpC,CAAC,CAAC;SACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAiB;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;CACD;AAED,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"migration-registry.js","sourceRoot":"","sources":["../../src/core/migration-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type RuntimeRef } from '@vibesdotdev/kernel';
|
|
2
|
+
import { type SqliteConnection } from '../driver/sqlite-driver.ts';
|
|
3
|
+
/** Keep custody of a just-opened handle across the caller's async continuation. */
|
|
4
|
+
export declare function assertOpenedConnectionLive(runtime: RuntimeRef, db: SqliteConnection, lifecycle?: import("@vibesdotdev/kernel").RuntimeLifecycle): void;
|
|
5
|
+
/**
|
|
6
|
+
* Foreground SQLite setup only: one five-second contention budget, with the
|
|
7
|
+
* calling lifecycle owning the wait and cancellation. Migrations and application
|
|
8
|
+
* statements never enter this policy.
|
|
9
|
+
*/
|
|
10
|
+
export declare function openConfiguredDatabase(runtime: RuntimeRef, open: () => SqliteConnection, configure: (exec: (sql: string) => void) => void, lifecycle?: import("@vibesdotdev/kernel").RuntimeLifecycle): Promise<SqliteConnection>;
|
|
11
|
+
//# sourceMappingURL=open-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-connection.d.ts","sourceRoot":"","sources":["../../src/core/open-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAkCjF,mFAAmF;AACnF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,gBAAgB,EAAE,SAAS,iDAAoB,GAAG,IAAI,CAQzH;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,UAAU,EACnB,IAAI,EAAE,MAAM,gBAAgB,EAC5B,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,EAChD,SAAS,iDAAoB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAoB3B"}
|