videobook-engine 2.0.1 → 4.2.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/README.md +87 -41
- package/dist/artifact-names.d.ts +6 -0
- package/dist/artifact-names.d.ts.map +1 -0
- package/dist/artifact-names.js +56 -0
- package/dist/artifact-names.js.map +1 -0
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +57 -23
- package/dist/artifacts.js.map +1 -1
- package/dist/books.js +2 -1
- package/dist/books.js.map +1 -1
- package/dist/cas.d.ts +27 -1
- package/dist/cas.d.ts.map +1 -1
- package/dist/cas.js +78 -6
- package/dist/cas.js.map +1 -1
- package/dist/catalog-metadata.d.ts +56 -0
- package/dist/catalog-metadata.d.ts.map +1 -0
- package/dist/catalog-metadata.js +42 -0
- package/dist/catalog-metadata.js.map +1 -0
- package/dist/communications.js +4 -2
- package/dist/communications.js.map +1 -1
- package/dist/context.d.ts +6 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +35 -6
- package/dist/context.js.map +1 -1
- package/dist/domain.d.ts +4 -0
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +870 -58
- package/dist/domain.js.map +1 -1
- package/dist/edit-policy.d.ts +3 -0
- package/dist/edit-policy.d.ts.map +1 -0
- package/dist/edit-policy.js +6 -0
- package/dist/edit-policy.js.map +1 -0
- package/dist/edits.d.ts +10 -0
- package/dist/edits.d.ts.map +1 -0
- package/dist/edits.js +1392 -0
- package/dist/edits.js.map +1 -0
- package/dist/engine-types.d.ts +110 -60
- package/dist/engine-types.d.ts.map +1 -1
- package/dist/engine-types.js +33 -0
- package/dist/engine-types.js.map +1 -1
- package/dist/engine.d.ts +69 -8
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +24 -18
- package/dist/engine.js.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +31 -27
- package/dist/files.js.map +1 -1
- package/dist/fork.d.ts +147 -0
- package/dist/fork.d.ts.map +1 -0
- package/dist/fork.js +609 -0
- package/dist/fork.js.map +1 -0
- package/dist/history.d.ts +0 -4
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +166 -595
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +16 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/job-queue.d.ts +2 -0
- package/dist/job-queue.d.ts.map +1 -1
- package/dist/job-queue.js +29 -2
- package/dist/job-queue.js.map +1 -1
- package/dist/media.d.ts.map +1 -1
- package/dist/media.js +1 -0
- package/dist/media.js.map +1 -1
- package/dist/merge-policy.d.ts +99 -0
- package/dist/merge-policy.d.ts.map +1 -0
- package/dist/merge-policy.js +310 -0
- package/dist/merge-policy.js.map +1 -0
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +15 -20
- package/dist/metadata.js.map +1 -1
- package/dist/migration.d.ts +9 -0
- package/dist/migration.d.ts.map +1 -0
- package/dist/migration.js +534 -0
- package/dist/migration.js.map +1 -0
- package/dist/mvp-contract-fixtures.d.ts +244 -0
- package/dist/mvp-contract-fixtures.d.ts.map +1 -0
- package/dist/mvp-contract-fixtures.js +556 -0
- package/dist/mvp-contract-fixtures.js.map +1 -0
- package/dist/mvp-contracts.d.ts +761 -0
- package/dist/mvp-contracts.d.ts.map +1 -0
- package/dist/mvp-contracts.js +59 -0
- package/dist/mvp-contracts.js.map +1 -0
- package/dist/mvp-time.d.ts +54 -0
- package/dist/mvp-time.d.ts.map +1 -0
- package/dist/mvp-time.js +148 -0
- package/dist/mvp-time.js.map +1 -0
- package/dist/notebook/types.d.ts +113 -8
- package/dist/notebook/types.d.ts.map +1 -1
- package/dist/order-keys.d.ts +22 -0
- package/dist/order-keys.d.ts.map +1 -0
- package/dist/order-keys.js +262 -0
- package/dist/order-keys.js.map +1 -0
- package/dist/runtime-services.js +4 -2
- package/dist/runtime-services.js.map +1 -1
- package/dist/schema.d.ts +24 -5
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +644 -132
- package/dist/schema.js.map +1 -1
- package/dist/search-benchmark.d.ts +4 -0
- package/dist/search-benchmark.d.ts.map +1 -0
- package/dist/search-benchmark.js +144 -0
- package/dist/search-benchmark.js.map +1 -0
- package/dist/sequences.d.ts +20 -0
- package/dist/sequences.d.ts.map +1 -0
- package/dist/sequences.js +825 -0
- package/dist/sequences.js.map +1 -0
- package/dist/similarity.js +1 -1
- package/dist/storage.d.ts +3 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +388 -7
- package/dist/storage.js.map +1 -1
- package/dist/store.d.ts +63 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +351 -65
- package/dist/store.js.map +1 -1
- package/dist/streams.d.ts +10 -0
- package/dist/streams.d.ts.map +1 -0
- package/dist/streams.js +183 -0
- package/dist/streams.js.map +1 -0
- package/dist/temporal-models.d.ts +48 -0
- package/dist/temporal-models.d.ts.map +1 -0
- package/dist/temporal-models.js +278 -0
- package/dist/temporal-models.js.map +1 -0
- package/dist/temporal-search.d.ts +29 -0
- package/dist/temporal-search.d.ts.map +1 -0
- package/dist/temporal-search.js +1507 -0
- package/dist/temporal-search.js.map +1 -0
- package/dist/transcripts.d.ts +16 -0
- package/dist/transcripts.d.ts.map +1 -0
- package/dist/transcripts.js +519 -0
- package/dist/transcripts.js.map +1 -0
- package/docs/engine-layout.md +346 -106
- package/docs/mvp-prd.md +918 -0
- package/fixtures/media/vancat.mp4 +0 -0
- package/fixtures/media/vancat_profile.jpg +0 -0
- package/fixtures/v5/contract-fixtures.json +1532 -0
- package/package.json +30 -5
- package/dist/history-types.d.ts +0 -74
- package/dist/history-types.d.ts.map +0 -1
- package/dist/history-types.js +0 -2
- package/dist/history-types.js.map +0 -1
- package/dist/timeline.d.ts +0 -9
- package/dist/timeline.d.ts.map +0 -1
- package/dist/timeline.js +0 -236
- package/dist/timeline.js.map +0 -1
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { EngineFault } from "./store.js";
|
|
2
|
+
const CONSTRAINT_VIOLATION_REFUSAL = /working set with constraint violations/;
|
|
3
|
+
// Policy scans are table-tolerant so the same code runs against a full
|
|
4
|
+
// engine catalog and against purpose-built merge databases that carry only
|
|
5
|
+
// the semantic tables their scenario needs (see ve-wsu).
|
|
6
|
+
function tableExists(db, table) {
|
|
7
|
+
return (db
|
|
8
|
+
.prepare("SELECT 1 AS present FROM sqlite_master WHERE type='table' AND name=?")
|
|
9
|
+
.get(table) !== undefined);
|
|
10
|
+
}
|
|
11
|
+
function schemaVersionAt(db, ref) {
|
|
12
|
+
const row = db
|
|
13
|
+
.prepare("SELECT version FROM dolt_at_engine_schema(?) WHERE singleton=1")
|
|
14
|
+
.get(ref);
|
|
15
|
+
if (!row) {
|
|
16
|
+
throw new EngineFault({
|
|
17
|
+
code: "SCHEMA_INCOMPATIBLE",
|
|
18
|
+
message: `Ref ${ref} has no engine_schema version row`,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return row.version;
|
|
22
|
+
}
|
|
23
|
+
/** Merge precondition: both sides must carry the same schema version. */
|
|
24
|
+
export function assertSameSchemaVersion(db, oursRef, theirsRef) {
|
|
25
|
+
const ours = schemaVersionAt(db, oursRef);
|
|
26
|
+
const theirs = schemaVersionAt(db, theirsRef);
|
|
27
|
+
if (ours !== theirs) {
|
|
28
|
+
throw new EngineFault({
|
|
29
|
+
code: "SCHEMA_INCOMPATIBLE",
|
|
30
|
+
message: `Merge refused: schema version ${theirs} on ${theirsRef} does not ` +
|
|
31
|
+
`match version ${ours} on ${oursRef}`,
|
|
32
|
+
details: { oursRef, theirsRef, oursVersion: ours, theirsVersion: theirs },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function slugMapAt(db, ref) {
|
|
37
|
+
const rows = db
|
|
38
|
+
.prepare("SELECT artifact_id, slug FROM dolt_at_artifacts(?)")
|
|
39
|
+
.all(ref);
|
|
40
|
+
return new Map(rows.map((row) => [row.artifact_id, row.slug]));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Slugs that would be held by more than one artifact row after a three-way
|
|
44
|
+
* merge of `oursRef` and `theirsRef`. The survivor simulation mirrors Dolt
|
|
45
|
+
* row-level merge semantics over the (artifact_id, slug) projection; rows
|
|
46
|
+
* changed incompatibly on both sides count conservatively on both sides
|
|
47
|
+
* because Dolt will conflict them anyway.
|
|
48
|
+
*/
|
|
49
|
+
export function findSlugConflicts(db, oursRef, theirsRef) {
|
|
50
|
+
if (!tableExists(db, "artifacts"))
|
|
51
|
+
return [];
|
|
52
|
+
const baseRow = db
|
|
53
|
+
.prepare("SELECT dolt_merge_base(?, ?) AS hash")
|
|
54
|
+
.get(oursRef, theirsRef);
|
|
55
|
+
const base = baseRow?.hash
|
|
56
|
+
? slugMapAt(db, baseRow.hash)
|
|
57
|
+
: new Map();
|
|
58
|
+
const ours = slugMapAt(db, oursRef);
|
|
59
|
+
const theirs = slugMapAt(db, theirsRef);
|
|
60
|
+
const ids = new Set([...base.keys(), ...ours.keys(), ...theirs.keys()]);
|
|
61
|
+
const holders = new Map();
|
|
62
|
+
const hold = (id, slug) => {
|
|
63
|
+
if (slug === undefined)
|
|
64
|
+
return;
|
|
65
|
+
let set = holders.get(slug);
|
|
66
|
+
if (!set) {
|
|
67
|
+
set = new Set();
|
|
68
|
+
holders.set(slug, set);
|
|
69
|
+
}
|
|
70
|
+
set.add(id);
|
|
71
|
+
};
|
|
72
|
+
for (const id of ids) {
|
|
73
|
+
const b = base.get(id);
|
|
74
|
+
const o = ours.get(id);
|
|
75
|
+
const t = theirs.get(id);
|
|
76
|
+
if (b !== undefined && o === b && t === b) {
|
|
77
|
+
hold(id, b);
|
|
78
|
+
}
|
|
79
|
+
else if (b === undefined) {
|
|
80
|
+
if (o !== undefined && t !== undefined && o !== t) {
|
|
81
|
+
// Same row id added with different slugs on both sides: a row
|
|
82
|
+
// conflict Dolt will report; count both slugs conservatively.
|
|
83
|
+
hold(id, o);
|
|
84
|
+
hold(id, t);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
hold(id, o ?? t);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else if (o === t) {
|
|
91
|
+
hold(id, o);
|
|
92
|
+
}
|
|
93
|
+
else if (o === b) {
|
|
94
|
+
hold(id, t);
|
|
95
|
+
}
|
|
96
|
+
else if (t === b) {
|
|
97
|
+
hold(id, o);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
hold(id, o);
|
|
101
|
+
hold(id, t);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return [...holders.entries()]
|
|
105
|
+
.filter(([, set]) => set.size > 1)
|
|
106
|
+
.map(([slug, set]) => ({ slug, artifactIds: [...set].sort() }))
|
|
107
|
+
.sort((a, b) => a.slug.localeCompare(b.slug));
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Rewrites merged duplicate singleton flags to a single deterministic
|
|
111
|
+
* winner per group. Returns the number of demoted rows.
|
|
112
|
+
*/
|
|
113
|
+
export function reconcileSingletonFlags(db) {
|
|
114
|
+
let transcripts = 0;
|
|
115
|
+
if (tableExists(db, "transcripts")) {
|
|
116
|
+
const transcriptGroups = db
|
|
117
|
+
.prepare(`SELECT artifact_id, stream_id, object_hash
|
|
118
|
+
FROM transcripts
|
|
119
|
+
WHERE state='current'
|
|
120
|
+
GROUP BY artifact_id, stream_id, object_hash
|
|
121
|
+
HAVING COUNT(*) > 1`)
|
|
122
|
+
.all();
|
|
123
|
+
const demoteTranscripts = db.prepare(`UPDATE transcripts SET state='derived'
|
|
124
|
+
WHERE state='current'
|
|
125
|
+
AND artifact_id=? AND stream_id=? AND object_hash=?
|
|
126
|
+
AND transcript_id NOT IN (
|
|
127
|
+
SELECT transcript_id FROM transcripts
|
|
128
|
+
WHERE state='current'
|
|
129
|
+
AND artifact_id=? AND stream_id=? AND object_hash=?
|
|
130
|
+
ORDER BY created_at DESC, transcript_id ASC
|
|
131
|
+
LIMIT 1
|
|
132
|
+
)`);
|
|
133
|
+
for (const group of transcriptGroups) {
|
|
134
|
+
transcripts += demoteTranscripts.run(group.artifact_id, group.stream_id, group.object_hash, group.artifact_id, group.stream_id, group.object_hash).changes;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
let sequences = 0;
|
|
138
|
+
if (tableExists(db, "sequences")) {
|
|
139
|
+
const sequenceGroups = db
|
|
140
|
+
.prepare(`SELECT book_id
|
|
141
|
+
FROM sequences
|
|
142
|
+
WHERE is_primary=1
|
|
143
|
+
GROUP BY book_id
|
|
144
|
+
HAVING COUNT(*) > 1`)
|
|
145
|
+
.all();
|
|
146
|
+
const demoteSequences = db.prepare(`UPDATE sequences SET is_primary=0
|
|
147
|
+
WHERE is_primary=1
|
|
148
|
+
AND book_id=?
|
|
149
|
+
AND sequence_id NOT IN (
|
|
150
|
+
SELECT sequence_id FROM sequences
|
|
151
|
+
WHERE is_primary=1 AND book_id=?
|
|
152
|
+
ORDER BY created_at ASC, sequence_id ASC
|
|
153
|
+
LIMIT 1
|
|
154
|
+
)`);
|
|
155
|
+
for (const group of sequenceGroups) {
|
|
156
|
+
sequences += demoteSequences.run(group.book_id, group.book_id).changes;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return { transcripts, sequences };
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Post-merge verification: referential integrity plus the invariants the
|
|
163
|
+
* merge policy owns (unique slugs, single current transcript per source,
|
|
164
|
+
* single primary sequence per book). Throws MERGE_VIOLATION on any breach.
|
|
165
|
+
*/
|
|
166
|
+
export function verifyConstraintHealth(db) {
|
|
167
|
+
const foreignKeyRows = db.prepare("PRAGMA foreign_key_check").all();
|
|
168
|
+
const duplicateSlugs = tableExists(db, "artifacts")
|
|
169
|
+
? db
|
|
170
|
+
.prepare(
|
|
171
|
+
// +slug forces a full table scan: doltlite's checkout can leave
|
|
172
|
+
// the UNIQUE index on artifacts.slug missing rows (ve-wsu), and
|
|
173
|
+
// an index-backed GROUP BY would fail with "database disk image
|
|
174
|
+
// is malformed" instead of verifying anything.
|
|
175
|
+
`SELECT slug, COUNT(DISTINCT artifact_id) AS holders
|
|
176
|
+
FROM artifacts
|
|
177
|
+
GROUP BY +slug
|
|
178
|
+
HAVING holders > 1`)
|
|
179
|
+
.all()
|
|
180
|
+
: [];
|
|
181
|
+
const multipleCurrent = tableExists(db, "transcripts")
|
|
182
|
+
? db
|
|
183
|
+
.prepare(`SELECT artifact_id, stream_id, object_hash, COUNT(*) AS currents
|
|
184
|
+
FROM transcripts
|
|
185
|
+
WHERE state='current'
|
|
186
|
+
GROUP BY artifact_id, stream_id, object_hash
|
|
187
|
+
HAVING currents > 1`)
|
|
188
|
+
.all()
|
|
189
|
+
: [];
|
|
190
|
+
const multiplePrimary = tableExists(db, "sequences")
|
|
191
|
+
? db
|
|
192
|
+
.prepare(`SELECT book_id, COUNT(*) AS primaries
|
|
193
|
+
FROM sequences
|
|
194
|
+
WHERE is_primary=1
|
|
195
|
+
GROUP BY book_id
|
|
196
|
+
HAVING primaries > 1`)
|
|
197
|
+
.all()
|
|
198
|
+
: [];
|
|
199
|
+
if (foreignKeyRows.length > 0 ||
|
|
200
|
+
duplicateSlugs.length > 0 ||
|
|
201
|
+
multipleCurrent.length > 0 ||
|
|
202
|
+
multiplePrimary.length > 0) {
|
|
203
|
+
throw new EngineFault({
|
|
204
|
+
code: "MERGE_VIOLATION",
|
|
205
|
+
message: "Merged working set violates semantic constraints",
|
|
206
|
+
details: {
|
|
207
|
+
foreignKeyViolations: foreignKeyRows,
|
|
208
|
+
duplicateSlugs,
|
|
209
|
+
multipleCurrentTranscripts: multipleCurrent,
|
|
210
|
+
multiplePrimarySequences: multiplePrimary,
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
function mergeConflictFault(branch, slugConflicts) {
|
|
216
|
+
const listing = slugConflicts
|
|
217
|
+
.map((conflict) => conflict.slug)
|
|
218
|
+
.join(", ");
|
|
219
|
+
return new EngineFault({
|
|
220
|
+
code: "MERGE_CONFLICT",
|
|
221
|
+
message: `Merge of ${branch} conflicts on artifact slug(s): ${listing}`,
|
|
222
|
+
details: { branch, slugConflicts },
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
function mapMergeError(db, branch, error) {
|
|
226
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
227
|
+
if (CONSTRAINT_VIOLATION_REFUSAL.test(message)) {
|
|
228
|
+
// doltlite's merge-time verification refused and rolled back, so both
|
|
229
|
+
// refs are still intact: re-run the slug diagnosis to see whether this
|
|
230
|
+
// is a user-facing slug conflict.
|
|
231
|
+
const slugConflicts = findSlugConflicts(db, "HEAD", branch);
|
|
232
|
+
if (slugConflicts.length > 0) {
|
|
233
|
+
throw mergeConflictFault(branch, slugConflicts);
|
|
234
|
+
}
|
|
235
|
+
throw new EngineFault({
|
|
236
|
+
code: "MERGE_VIOLATION",
|
|
237
|
+
message: `Merge of ${branch} refused by Dolt constraint verification: ` +
|
|
238
|
+
"the merged working set would violate UNIQUE, CHECK, or " +
|
|
239
|
+
"foreign-key constraints (for example a RESTRICT reference to a " +
|
|
240
|
+
"row deleted on the other side)",
|
|
241
|
+
details: { branch, cause: message },
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
if (/merge conflict/i.test(message)) {
|
|
245
|
+
throw new EngineFault({
|
|
246
|
+
code: "MERGE_CONFLICT",
|
|
247
|
+
message: `Merge of ${branch} has row-level conflicts: ${message}`,
|
|
248
|
+
details: { branch, cause: message },
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
throw error;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Dolt-commits the singleton-flag reconcile, when it changed anything, so
|
|
255
|
+
* the working set is clean for the next merge. Kept separate from the
|
|
256
|
+
* merge commit because `dolt_merge()` finalizes its own commit before the
|
|
257
|
+
* merged working set can be inspected.
|
|
258
|
+
*/
|
|
259
|
+
function commitReconcile(db, reconciled) {
|
|
260
|
+
const tables = [];
|
|
261
|
+
if (reconciled.transcripts > 0)
|
|
262
|
+
tables.push("transcripts");
|
|
263
|
+
if (reconciled.sequences > 0)
|
|
264
|
+
tables.push("sequences");
|
|
265
|
+
if (tables.length === 0)
|
|
266
|
+
return;
|
|
267
|
+
for (const table of tables) {
|
|
268
|
+
db.prepare("SELECT dolt_add(?) AS result").get(table);
|
|
269
|
+
}
|
|
270
|
+
db.prepare("SELECT dolt_commit('-m', ?) AS hash").get(`Reconcile merged singleton flags: ${tables.join(", ")}`);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Merges `branch` into HEAD under the engine merge policy: same-schema
|
|
274
|
+
* precondition, user-facing slug-conflict detection, Dolt constraint
|
|
275
|
+
* verification with typed errors, deterministic singleton-flag reconcile,
|
|
276
|
+
* and a post-merge constraint health check.
|
|
277
|
+
*
|
|
278
|
+
* NOTE (ve-wsu): doltlite corrupts full engine catalogs on checkout and
|
|
279
|
+
* clone, misfires its "uncommitted changes" merge guard on the full
|
|
280
|
+
* 28-table working set, and — when the guard is bypassed — fails true
|
|
281
|
+
* merges of engine history in schema loading. The dedicated merge-back
|
|
282
|
+
* flow in src/fork.ts therefore applies this policy's primitives around a
|
|
283
|
+
* projection-level three-way merge instead of calling this function;
|
|
284
|
+
* `mergeWithPolicy` remains the drop-in mechanism once the upstream bugs
|
|
285
|
+
* are fixed, and it is exercised against the real semantic schema in
|
|
286
|
+
* tests/merge-policy.test.ts.
|
|
287
|
+
*/
|
|
288
|
+
export function mergeWithPolicy(db, branch) {
|
|
289
|
+
assertSameSchemaVersion(db, "HEAD", branch);
|
|
290
|
+
const slugConflicts = findSlugConflicts(db, "HEAD", branch);
|
|
291
|
+
if (slugConflicts.length > 0) {
|
|
292
|
+
throw mergeConflictFault(branch, slugConflicts);
|
|
293
|
+
}
|
|
294
|
+
let result;
|
|
295
|
+
try {
|
|
296
|
+
result = db.doltMerge(branch);
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
mapMergeError(db, branch, error);
|
|
300
|
+
}
|
|
301
|
+
const reconciled = reconcileSingletonFlags(db);
|
|
302
|
+
verifyConstraintHealth(db);
|
|
303
|
+
commitReconcile(db, reconciled);
|
|
304
|
+
return {
|
|
305
|
+
fastForward: result.fast_forward === 1,
|
|
306
|
+
reconciledTranscripts: reconciled.transcripts,
|
|
307
|
+
reconciledSequences: reconciled.sequences,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=merge-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-policy.js","sourceRoot":"","sources":["../src/merge-policy.ts"],"names":[],"mappings":"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"}
|
package/dist/metadata.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAEd,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EAEd,MAAM,cAAc,CAAC;AAOtB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa;;0BAItC,MAAM,OACX,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,YACI,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;yBAEjB,CAAC,YACN,MAAM,OACX,MAAM,YACD,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;2BAGtB,MAAM,OACX,MAAM,KACV,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;qBAKjC,MAAM,SACJ,OAAO,KACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;eAEhC,CAAC,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;sBAEzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;;0BAKhD,MAAM,SACT,MAAM,EAAE,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;yBAG3B,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;2BAEjC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;EAItE"}
|
package/dist/metadata.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ok } from "./engine-types.js";
|
|
2
2
|
import { resultOf, } from "./context.js";
|
|
3
3
|
import { canonicalJson, parseJson } from "./store.js";
|
|
4
|
-
import { EngineFault } from "./store.js";
|
|
5
4
|
export function createMetadataApi(context) {
|
|
6
5
|
return {
|
|
7
6
|
artifacts: {
|
|
@@ -34,10 +33,11 @@ async function deleteArtifactMetadata(context, artifactReference, key) {
|
|
|
34
33
|
return false;
|
|
35
34
|
await context.store.semantic({
|
|
36
35
|
operation: "delete_artifact_metadata",
|
|
36
|
+
tables: ["artifact_metadata"],
|
|
37
37
|
artifactId: artifact.artifact_id,
|
|
38
38
|
details: { key: normalizedKey },
|
|
39
39
|
writeSet: [`artifact-metadata:${artifact.artifact_id}:${normalizedKey}`],
|
|
40
|
-
},
|
|
40
|
+
}, () => {
|
|
41
41
|
context.store.db
|
|
42
42
|
.prepare("DELETE FROM artifact_metadata WHERE artifact_id=? AND key=?")
|
|
43
43
|
.run(artifact.artifact_id, normalizedKey);
|
|
@@ -47,7 +47,7 @@ async function deleteArtifactMetadata(context, artifactReference, key) {
|
|
|
47
47
|
}
|
|
48
48
|
async function deleteBookMetadata(context, key) {
|
|
49
49
|
return resultOf(async () => {
|
|
50
|
-
const normalizedKey =
|
|
50
|
+
const normalizedKey = metadataKey(key);
|
|
51
51
|
const exists = context.store.db
|
|
52
52
|
.prepare("SELECT 1 AS present FROM book_metadata WHERE key=?")
|
|
53
53
|
.get(normalizedKey);
|
|
@@ -55,9 +55,10 @@ async function deleteBookMetadata(context, key) {
|
|
|
55
55
|
return false;
|
|
56
56
|
await context.store.semantic({
|
|
57
57
|
operation: "delete_book_metadata",
|
|
58
|
+
tables: ["book_metadata"],
|
|
58
59
|
details: { key: normalizedKey },
|
|
59
60
|
writeSet: [`book-metadata:${normalizedKey}`],
|
|
60
|
-
},
|
|
61
|
+
}, () => {
|
|
61
62
|
context.store.db
|
|
62
63
|
.prepare("DELETE FROM book_metadata WHERE key=?")
|
|
63
64
|
.run(normalizedKey);
|
|
@@ -75,9 +76,10 @@ async function deleteWaveform(context, artifactReference) {
|
|
|
75
76
|
return false;
|
|
76
77
|
await context.store.semantic({
|
|
77
78
|
operation: "delete_audio_waveform",
|
|
79
|
+
tables: ["audio_waveforms"],
|
|
78
80
|
artifactId: artifact.artifact_id,
|
|
79
81
|
writeSet: [`waveform:${artifact.artifact_id}`],
|
|
80
|
-
},
|
|
82
|
+
}, () => {
|
|
81
83
|
context.store.db
|
|
82
84
|
.prepare("DELETE FROM audio_waveforms WHERE artifact_id=?")
|
|
83
85
|
.run(artifact.artifact_id);
|
|
@@ -91,10 +93,11 @@ async function writeArtifactMetadata(context, artifactReference, key, value) {
|
|
|
91
93
|
const normalizedKey = metadataKey(key);
|
|
92
94
|
const mutation = await context.store.semantic({
|
|
93
95
|
operation: "write_artifact_metadata",
|
|
96
|
+
tables: ["artifact_metadata"],
|
|
94
97
|
artifactId: artifact.artifact_id,
|
|
95
98
|
details: { key: normalizedKey },
|
|
96
99
|
writeSet: [`artifact-metadata:${artifact.artifact_id}:${normalizedKey}`],
|
|
97
|
-
},
|
|
100
|
+
}, () => {
|
|
98
101
|
context.store.db
|
|
99
102
|
.prepare(`INSERT INTO artifact_metadata(artifact_id, key, value_json)
|
|
100
103
|
VALUES (?, ?, ?)
|
|
@@ -140,12 +143,13 @@ async function readArtifactMetadataAtRevision(context, artifactReference, key, r
|
|
|
140
143
|
}
|
|
141
144
|
async function writeBookMetadata(context, key, value) {
|
|
142
145
|
return resultOf(async () => {
|
|
143
|
-
const normalizedKey =
|
|
146
|
+
const normalizedKey = metadataKey(key);
|
|
144
147
|
const mutation = await context.store.semantic({
|
|
145
148
|
operation: "write_book_metadata",
|
|
149
|
+
tables: ["book_metadata"],
|
|
146
150
|
details: { key: normalizedKey },
|
|
147
151
|
writeSet: [`book-metadata:${normalizedKey}`],
|
|
148
|
-
},
|
|
152
|
+
}, () => {
|
|
149
153
|
context.store.db
|
|
150
154
|
.prepare(`INSERT INTO book_metadata(key, value_json)
|
|
151
155
|
VALUES (?, ?)
|
|
@@ -158,7 +162,7 @@ async function writeBookMetadata(context, key, value) {
|
|
|
158
162
|
}
|
|
159
163
|
async function readBookMetadata(context, key) {
|
|
160
164
|
return resultOf(async () => {
|
|
161
|
-
const normalizedKey =
|
|
165
|
+
const normalizedKey = metadataKey(key);
|
|
162
166
|
const row = context.store.db
|
|
163
167
|
.prepare("SELECT value_json FROM book_metadata WHERE key=?")
|
|
164
168
|
.get(normalizedKey);
|
|
@@ -175,9 +179,10 @@ async function writeWaveform(context, artifactReference, peaks) {
|
|
|
175
179
|
const artifact = context.artifactRow(artifactReference);
|
|
176
180
|
const mutation = await context.store.semantic({
|
|
177
181
|
operation: "write_audio_waveform",
|
|
182
|
+
tables: ["audio_waveforms"],
|
|
178
183
|
artifactId: artifact.artifact_id,
|
|
179
184
|
writeSet: [`waveform:${artifact.artifact_id}`],
|
|
180
|
-
},
|
|
185
|
+
}, () => {
|
|
181
186
|
context.store.db
|
|
182
187
|
.prepare(`INSERT INTO audio_waveforms(artifact_id, peaks_json)
|
|
183
188
|
VALUES (?, ?)
|
|
@@ -202,16 +207,6 @@ async function readWaveform(context, artifactReference) {
|
|
|
202
207
|
};
|
|
203
208
|
});
|
|
204
209
|
}
|
|
205
|
-
function bookMetadataKey(input) {
|
|
206
|
-
const key = metadataKey(input);
|
|
207
|
-
if (key === "timeline") {
|
|
208
|
-
throw new EngineFault({
|
|
209
|
-
code: "INVALID_INPUT",
|
|
210
|
-
message: 'Book metadata key "timeline" is reserved; use engine.timeline instead',
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
return key;
|
|
214
|
-
}
|
|
215
210
|
function metadataKey(input) {
|
|
216
211
|
const key = input.trim();
|
|
217
212
|
if (!/^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$/.test(key)) {
|
package/dist/metadata.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAEL,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAEL,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMtD,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,OAAO;QACL,SAAS,EAAE;YACT,KAAK,EAAE,CACL,QAAgB,EAChB,GAAW,EACX,KAAc,EACwB,EAAE,CACxC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC;YACtD,IAAI,EAAE,CACJ,QAAgB,EAChB,GAAW,EACsB,EAAE,CACnC,oBAAoB,CAAI,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;YACjD,cAAc,EAAE,CACd,QAAgB,EAChB,GAAW,EACX,QAAgB,EACiB,EAAE,CACnC,8BAA8B,CAAI,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC;YACrE,MAAM,EAAE,CACN,QAAgB,EAChB,GAAW,EAC4B,EAAE,CACzC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC;SACjD;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,CACL,GAAW,EACX,KAAc,EACwB,EAAE,CACxC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;YACxC,IAAI,EAAE,CAAI,GAAW,EAAmC,EAAE,CACxD,gBAAgB,CAAI,OAAO,EAAE,GAAG,CAAC;YACnC,MAAM,EAAE,CAAC,GAAW,EAAyC,EAAE,CAC7D,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC;SACnC;QACD,SAAS,EAAE;YACT,KAAK,EAAE,CACL,QAAgB,EAChB,KAAe,EACuB,EAAE,CACxC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC;YACzC,IAAI,EAAE,CACJ,QAAgB,EACmC,EAAE,CACrD,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YACjC,MAAM,EAAE,CAAC,QAAgB,EAAyC,EAAE,CAClE,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC;SACpC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAAsB,EACtB,iBAAyB,EACzB,GAAW;IAEX,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aAC5B,OAAO,CACN;uCAC+B,CAChC;aACA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC1B;YACE,SAAS,EAAE,0BAA0B;YACrC,MAAM,EAAE,CAAC,mBAAmB,CAAC;YAC7B,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC/B,QAAQ,EAAE,CAAC,qBAAqB,QAAQ,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC;SACzE,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CAAC,6DAA6D,CAAC;iBACtE,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC9C,CAAC,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAsB,EACtB,GAAW;IAEX,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aAC5B,OAAO,CAAC,oDAAoD,CAAC;aAC7D,GAAG,CAAC,aAAa,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC1B;YACE,SAAS,EAAE,sBAAsB;YACjC,MAAM,EAAE,CAAC,eAAe,CAAC;YACzB,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC/B,QAAQ,EAAE,CAAC,iBAAiB,aAAa,EAAE,CAAC;SAC7C,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CAAC,uCAAuC,CAAC;iBAChD,GAAG,CAAC,aAAa,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAsB,EACtB,iBAAyB;IAEzB,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aAC5B,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC1B;YACE,SAAS,EAAE,uBAAuB;YAClC,MAAM,EAAE,CAAC,iBAAiB,CAAC;YAC3B,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,QAAQ,EAAE,CAAC,YAAY,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC/C,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CAAC,iDAAiD,CAAC;iBAC1D,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,OAAsB,EACtB,iBAAyB,EACzB,GAAW,EACX,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC3C;YACE,SAAS,EAAE,yBAAyB;YACpC,MAAM,EAAE,CAAC,mBAAmB,CAAC;YAC7B,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC/B,QAAQ,EAAE,CAAC,qBAAqB,QAAQ,CAAC,WAAW,IAAI,aAAa,EAAE,CAAC;SACzE,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CACN;;;8CAGkC,CACnC;iBACA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,CAAC,CACF,CAAC;QACF,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAsB,EACtB,iBAAyB,EACzB,GAAW;IAEX,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aACzB,OAAO,CACN;uCAC+B,CAChC;aACA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAEhC,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACjE,OAAO,SAAS,CAAI,GAAG,CAAC,UAAU,EAAE,IAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,OAAsB,EACtB,iBAAyB,EACzB,GAAW,EACX,QAAgB;IAEhB,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aAC9B,OAAO,CACN;;oEAE4D,CAC7D;aACA,GAAG,CACF,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,CACgC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,uBAAuB,iBAAiB,OAAO,QAAQ,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aACzB,OAAO,CACN;uCAC+B,CAChC;aACA,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAEvC,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,gCAAgC,iBAAiB,IAAI,aAAa,OAAO,QAAQ,EAAE,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAI,GAAG,CAAC,UAAU,EAAE,IAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAsB,EACtB,GAAW,EACX,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC3C;YACE,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,CAAC,eAAe,CAAC;YACzB,OAAO,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC/B,QAAQ,EAAE,CAAC,iBAAiB,aAAa,EAAE,CAAC;SAC7C,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CACN;;;8CAGkC,CACnC;iBACA,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC,CACF,CAAC;QACF,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAsB,EACtB,GAAW;IAEX,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aACzB,OAAO,CAAC,kDAAkD,CAAC;aAC3D,GAAG,CAAC,aAAa,CAAuC,CAAC;QAC5D,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAC7D,OAAO,SAAS,CAAI,GAAG,CAAC,UAAU,EAAE,IAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAsB,EACtB,iBAAyB,EACzB,KAAe;IAEf,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAC3C;YACE,SAAS,EAAE,sBAAsB;YACjC,MAAM,EAAE,CAAC,iBAAiB,CAAC;YAC3B,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,QAAQ,EAAE,CAAC,YAAY,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC/C,EACD,GAAG,EAAE;YACH,OAAO,CAAC,KAAK,CAAC,EAAE;iBACb,OAAO,CACN;;;8CAGkC,CACnC;iBACA,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC,CACF,CAAC;QACF,OAAO,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAsB,EACtB,iBAAyB;IAEzB,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;aACzB,OAAO,CAAC,4DAA4D,CAAC;aACrE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAEd,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtD,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,WAAW;YAChC,KAAK,EAAE,SAAS,CAAW,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACzB,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EngineError, Result } from "./engine-types.js";
|
|
2
|
+
import type { V4MigrationDryRun, V4MigrationRequest, V4MigrationResult } from "./mvp-contracts.js";
|
|
3
|
+
export declare function dryRunV4Migration(sourceRoot: string): Result<V4MigrationDryRun, EngineError>;
|
|
4
|
+
export declare function readV4BookIdentity(sourceRoot: string): Result<{
|
|
5
|
+
bookId: string;
|
|
6
|
+
slug: string;
|
|
7
|
+
}, EngineError>;
|
|
8
|
+
export declare function migrateV4(request: V4MigrationRequest): Promise<Result<V4MigrationDryRun | V4MigrationResult, EngineError>>;
|
|
9
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACP,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAgD5B,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CA2DxC;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,WAAW,CAAC,CAuBvD;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAsKrE"}
|