sensemaking 0.21.0 → 0.22.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 +1 -1
- package/dist/cjs/chunk/group.d.cts +0 -2
- package/dist/cjs/chunk/group.d.ts +0 -2
- package/dist/cjs/chunk/group.js +25 -62
- package/dist/cjs/chunk/group.js.map +1 -1
- package/dist/cjs/chunk/index.d.cts +1 -1
- package/dist/cjs/chunk/index.d.ts +1 -1
- package/dist/cjs/chunk/index.js +3 -2
- package/dist/cjs/chunk/index.js.map +1 -1
- package/dist/cjs/chunk/parse.js +46 -29
- package/dist/cjs/chunk/parse.js.map +1 -1
- package/dist/cjs/chunk/tokens.d.cts +2 -0
- package/dist/cjs/chunk/tokens.d.ts +2 -0
- package/dist/cjs/chunk/tokens.js +50 -0
- package/dist/cjs/chunk/tokens.js.map +1 -0
- package/dist/cjs/commands/search.js +1 -1
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/config/validate.js.map +1 -1
- package/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/scan/pool.d.cts +1 -0
- package/dist/cjs/scan/pool.d.ts +1 -0
- package/dist/cjs/scan/pool.js +2 -1
- package/dist/cjs/scan/pool.js.map +1 -1
- package/dist/cjs/scan/reparse.d.cts +1 -0
- package/dist/cjs/scan/reparse.d.ts +1 -0
- package/dist/cjs/scan/reparse.js +6 -3
- package/dist/cjs/scan/reparse.js.map +1 -1
- package/dist/cjs/store/builder.d.cts +2 -0
- package/dist/cjs/store/builder.d.ts +2 -0
- package/dist/cjs/store/builder.js.map +1 -1
- package/dist/cjs/store/duckdb/connection.d.cts +4 -1
- package/dist/cjs/store/duckdb/connection.d.ts +4 -1
- package/dist/cjs/store/duckdb/connection.js +1 -0
- package/dist/cjs/store/duckdb/connection.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.js +105 -1
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/index.d.cts +1 -5
- package/dist/cjs/store/index.d.ts +1 -5
- package/dist/cjs/store/index.js +9 -46
- package/dist/cjs/store/index.js.map +1 -1
- package/dist/cjs/store/lock-wait.d.cts +2 -0
- package/dist/cjs/store/lock-wait.d.ts +2 -0
- package/dist/cjs/store/lock-wait.js +51 -0
- package/dist/cjs/store/lock-wait.js.map +1 -0
- package/dist/cjs/store/open.d.cts +2 -4
- package/dist/cjs/store/open.d.ts +2 -4
- package/dist/cjs/store/open.js +29 -66
- package/dist/cjs/store/open.js.map +1 -1
- package/dist/cjs/store/reconcile.d.cts +3 -0
- package/dist/cjs/store/reconcile.d.ts +3 -0
- package/dist/cjs/store/reconcile.js +418 -226
- package/dist/cjs/store/reconcile.js.map +1 -1
- package/dist/cjs/store/sqlite/lexical.js +1 -1
- package/dist/cjs/store/sqlite/lexical.js.map +1 -1
- package/dist/cjs/store/sqlite/store.js +0 -1
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/stages.d.cts +18 -0
- package/dist/cjs/store/stages.d.ts +18 -0
- package/dist/cjs/store/stages.js +372 -0
- package/dist/cjs/store/stages.js.map +1 -0
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/types.d.cts +2 -1
- package/dist/cjs/store/types.d.ts +2 -1
- package/dist/cjs/store/types.js +0 -1
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/cjs/text/segment.js +7 -5
- package/dist/cjs/text/segment.js.map +1 -1
- package/dist/cjs/watch.js +162 -107
- package/dist/cjs/watch.js.map +1 -1
- package/dist/cjs/workers/parse.d.cts +1 -0
- package/dist/cjs/workers/parse.d.ts +1 -0
- package/dist/cjs/workers/parse.js +4 -1
- package/dist/cjs/workers/parse.js.map +1 -1
- package/dist/esm/chunk/group.d.ts +0 -2
- package/dist/esm/chunk/group.js +14 -24
- package/dist/esm/chunk/group.js.map +1 -1
- package/dist/esm/chunk/index.d.ts +1 -1
- package/dist/esm/chunk/index.js +1 -1
- package/dist/esm/chunk/index.js.map +1 -1
- package/dist/esm/chunk/parse.js +41 -29
- package/dist/esm/chunk/parse.js.map +1 -1
- package/dist/esm/chunk/tokens.d.ts +2 -0
- package/dist/esm/chunk/tokens.js +15 -0
- package/dist/esm/chunk/tokens.js.map +1 -0
- package/dist/esm/commands/search.js +1 -1
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/config/validate.js +2 -2
- package/dist/esm/config/validate.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/scan/pool.d.ts +1 -0
- package/dist/esm/scan/pool.js +2 -1
- package/dist/esm/scan/pool.js.map +1 -1
- package/dist/esm/scan/reparse.d.ts +1 -0
- package/dist/esm/scan/reparse.js +5 -2
- package/dist/esm/scan/reparse.js.map +1 -1
- package/dist/esm/store/builder.d.ts +2 -0
- package/dist/esm/store/builder.js.map +1 -1
- package/dist/esm/store/duckdb/connection.d.ts +4 -1
- package/dist/esm/store/duckdb/connection.js +1 -0
- package/dist/esm/store/duckdb/connection.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.js +34 -1
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/index.d.ts +1 -5
- package/dist/esm/store/index.js +6 -28
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/lock-wait.d.ts +2 -0
- package/dist/esm/store/lock-wait.js +36 -0
- package/dist/esm/store/lock-wait.js.map +1 -0
- package/dist/esm/store/open.d.ts +2 -4
- package/dist/esm/store/open.js +17 -32
- package/dist/esm/store/open.js.map +1 -1
- package/dist/esm/store/reconcile.d.ts +3 -0
- package/dist/esm/store/reconcile.js +77 -40
- package/dist/esm/store/reconcile.js.map +1 -1
- package/dist/esm/store/sqlite/lexical.js +1 -1
- package/dist/esm/store/sqlite/lexical.js.map +1 -1
- package/dist/esm/store/sqlite/store.js +0 -1
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/stages.d.ts +18 -0
- package/dist/esm/store/stages.js +63 -0
- package/dist/esm/store/stages.js.map +1 -0
- package/dist/esm/store/turso/store.js +1 -1
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/types.d.ts +2 -1
- package/dist/esm/store/types.js +0 -1
- package/dist/esm/store/types.js.map +1 -1
- package/dist/esm/text/segment.js +7 -5
- package/dist/esm/text/segment.js.map +1 -1
- package/dist/esm/watch.js +63 -38
- package/dist/esm/watch.js.map +1 -1
- package/dist/esm/workers/parse.d.ts +1 -0
- package/dist/esm/workers/parse.js +4 -1
- package/dist/esm/workers/parse.js.map +1 -1
- package/package.json +3 -3
- package/skills/sense/SKILL.md +1 -1
- package/skills/sense-setup/SKILL.md +1 -1
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get CORE_FRONTMATTER_COLUMNS () {
|
|
13
|
+
return CORE_FRONTMATTER_COLUMNS;
|
|
14
|
+
},
|
|
15
|
+
get reconcile () {
|
|
8
16
|
return reconcile;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
@@ -12,7 +20,9 @@ var _indexts = require("../features/index.js");
|
|
|
12
20
|
var _progressts = require("../output/progress.js");
|
|
13
21
|
var _indexts1 = require("../scan/index.js");
|
|
14
22
|
var _reparsets = require("../scan/reparse.js");
|
|
23
|
+
var _lockwaitts = require("./lock-wait.js");
|
|
15
24
|
var _sharedts = require("./shared.js");
|
|
25
|
+
var _stagests = require("./stages.js");
|
|
16
26
|
var _transactionts = require("./transaction.js");
|
|
17
27
|
function _array_like_to_array(arr, len) {
|
|
18
28
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -186,13 +196,6 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
186
196
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
187
197
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
188
198
|
}
|
|
189
|
-
// One reconcile algorithm shared by every store, parameterised by a per-engine ReconcileDialect
|
|
190
|
-
// (types.ts). Ordering is universal, not a dialect concern: ALTER, then the frontmatter upsert,
|
|
191
|
-
// then reconcileContent, then preset_files, then the vanished-frontmatter delete, then feature hooks
|
|
192
|
-
// -- a vanished path's content delete (inside reconcileContent) must precede its frontmatter
|
|
193
|
-
// delete, since sqlite's delete SQL resolves the row via its frontmatter rowid.
|
|
194
|
-
// Feature-owned columns (`_rank`) must stay out of the upsert: a reparse would null the last
|
|
195
|
-
// computed value on every touch, not just the reconciles that recompute it.
|
|
196
199
|
var CORE_FRONTMATTER_COLUMNS = new Set([
|
|
197
200
|
'path',
|
|
198
201
|
'_mtime',
|
|
@@ -202,23 +205,56 @@ var CORE_FRONTMATTER_COLUMNS = new Set([
|
|
|
202
205
|
]);
|
|
203
206
|
function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
204
207
|
return _async_to_generator(function() {
|
|
205
|
-
var files, currentSet,
|
|
208
|
+
var start, features, stages, elapsed, files, currentSet, existingRows, existing, vanished, toReparse, seenColumns, report, _ref, parsedDocs, warnings, newColumns, workerParseMs, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, col, allColumns, writableColumns, insertSql, added, delta, addedSet, reparsedExisting, touched, txStart, durationMs;
|
|
206
209
|
return _ts_generator(this, function(_state) {
|
|
207
210
|
switch(_state.label){
|
|
208
211
|
case 0:
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
+
start = process.hrtime.bigint();
|
|
213
|
+
features = (0, _indexts.activeFeatures)(cfg);
|
|
214
|
+
stages = (0, _stagests.stageRecorder)(features.map(function(f) {
|
|
215
|
+
return f.name;
|
|
212
216
|
}));
|
|
217
|
+
elapsed = function elapsed() {
|
|
218
|
+
return Number(process.hrtime.bigint() - start) / 1e6;
|
|
219
|
+
};
|
|
213
220
|
return [
|
|
214
221
|
4,
|
|
215
|
-
|
|
222
|
+
stages.time('list', function() {
|
|
223
|
+
return (0, _indexts1.listFiles)(cfg, baseDir);
|
|
224
|
+
})
|
|
216
225
|
];
|
|
217
226
|
case 1:
|
|
218
|
-
|
|
227
|
+
files = _state.sent();
|
|
228
|
+
currentSet = new Set(files.map(function(f) {
|
|
229
|
+
return f.relPath;
|
|
230
|
+
}));
|
|
219
231
|
return [
|
|
220
232
|
4,
|
|
221
|
-
|
|
233
|
+
stages.time('existing', function() {
|
|
234
|
+
return _async_to_generator(function() {
|
|
235
|
+
var existingStmt;
|
|
236
|
+
return _ts_generator(this, function(_state) {
|
|
237
|
+
switch(_state.label){
|
|
238
|
+
case 0:
|
|
239
|
+
return [
|
|
240
|
+
4,
|
|
241
|
+
conn.prepare('SELECT "path", "_mtime", "_size" FROM frontmatter')
|
|
242
|
+
];
|
|
243
|
+
case 1:
|
|
244
|
+
existingStmt = _state.sent();
|
|
245
|
+
return [
|
|
246
|
+
4,
|
|
247
|
+
existingStmt.all()
|
|
248
|
+
];
|
|
249
|
+
case 2:
|
|
250
|
+
return [
|
|
251
|
+
2,
|
|
252
|
+
_state.sent()
|
|
253
|
+
];
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
})();
|
|
257
|
+
})
|
|
222
258
|
];
|
|
223
259
|
case 2:
|
|
224
260
|
existingRows = _state.sent();
|
|
@@ -247,10 +283,10 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
247
283
|
2,
|
|
248
284
|
{
|
|
249
285
|
parsed: 0,
|
|
250
|
-
warnings: []
|
|
286
|
+
warnings: [],
|
|
287
|
+
stages: stages.take(elapsed(), 0)
|
|
251
288
|
}
|
|
252
289
|
];
|
|
253
|
-
features = (0, _indexts.activeFeatures)(cfg);
|
|
254
290
|
return [
|
|
255
291
|
4,
|
|
256
292
|
(0, _sharedts.getColumns)(conn)
|
|
@@ -262,12 +298,14 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
262
298
|
report = (0, _progressts.progress)('reparsing files', toReparse.length);
|
|
263
299
|
return [
|
|
264
300
|
4,
|
|
265
|
-
(
|
|
266
|
-
|
|
301
|
+
stages.time('parse', function() {
|
|
302
|
+
return (0, _reparsets.reparseFiles)(toReparse, features, cfg, seenColumns, report.tick, {
|
|
303
|
+
pool: pool
|
|
304
|
+
});
|
|
267
305
|
})
|
|
268
306
|
];
|
|
269
307
|
case 4:
|
|
270
|
-
_ref = _state.sent(), parsedDocs = _ref.docs, warnings = _ref.warnings, newColumns = _ref.newColumns;
|
|
308
|
+
_ref = _state.sent(), parsedDocs = _ref.docs, warnings = _ref.warnings, newColumns = _ref.newColumns, workerParseMs = _ref.workerParseMs;
|
|
271
309
|
report.finish();
|
|
272
310
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
273
311
|
try {
|
|
@@ -334,7 +372,7 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
334
372
|
4,
|
|
335
373
|
(0, _transactionts.withTransaction)(conn, function() {
|
|
336
374
|
return _async_to_generator(function() {
|
|
337
|
-
var
|
|
375
|
+
var present, missingColumns, contentTouched, toRow, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _loop1, _iterator1, _step1, err, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _loop2, _iterator2, _step2, err;
|
|
338
376
|
return _ts_generator(this, function(_state) {
|
|
339
377
|
switch(_state.label){
|
|
340
378
|
case 0:
|
|
@@ -353,7 +391,9 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
353
391
|
];
|
|
354
392
|
return [
|
|
355
393
|
4,
|
|
356
|
-
|
|
394
|
+
stages.time('alter', function() {
|
|
395
|
+
return dialect.addColumns(conn, missingColumns);
|
|
396
|
+
})
|
|
357
397
|
];
|
|
358
398
|
case 2:
|
|
359
399
|
_state.sent();
|
|
@@ -367,37 +407,55 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
367
407
|
contentTouched = touched;
|
|
368
408
|
if (!(added.length > 0)) return [
|
|
369
409
|
3,
|
|
370
|
-
|
|
410
|
+
5
|
|
371
411
|
];
|
|
372
412
|
return [
|
|
373
413
|
4,
|
|
374
|
-
|
|
414
|
+
stages.time('added-recheck', function() {
|
|
415
|
+
return _async_to_generator(function() {
|
|
416
|
+
var currentPathsStmt, currentPaths, _, staleAdded;
|
|
417
|
+
return _ts_generator(this, function(_state) {
|
|
418
|
+
switch(_state.label){
|
|
419
|
+
case 0:
|
|
420
|
+
return [
|
|
421
|
+
4,
|
|
422
|
+
conn.prepare('SELECT "path" FROM frontmatter')
|
|
423
|
+
];
|
|
424
|
+
case 1:
|
|
425
|
+
currentPathsStmt = _state.sent();
|
|
426
|
+
_ = Set.bind;
|
|
427
|
+
return [
|
|
428
|
+
4,
|
|
429
|
+
currentPathsStmt.all()
|
|
430
|
+
];
|
|
431
|
+
case 2:
|
|
432
|
+
currentPaths = new (_.apply(Set, [
|
|
433
|
+
void 0,
|
|
434
|
+
_state.sent().map(function(r) {
|
|
435
|
+
return r.path;
|
|
436
|
+
})
|
|
437
|
+
]));
|
|
438
|
+
staleAdded = added.filter(function(p) {
|
|
439
|
+
return currentPaths.has(p);
|
|
440
|
+
});
|
|
441
|
+
return [
|
|
442
|
+
2,
|
|
443
|
+
staleAdded.length > 0 ? _to_consumable_array(touched).concat(_to_consumable_array(staleAdded)) : touched
|
|
444
|
+
];
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
})();
|
|
448
|
+
})
|
|
375
449
|
];
|
|
376
450
|
case 4:
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
return [
|
|
380
|
-
4,
|
|
381
|
-
currentPathsStmt.all()
|
|
382
|
-
];
|
|
451
|
+
contentTouched = _state.sent();
|
|
452
|
+
_state.label = 5;
|
|
383
453
|
case 5:
|
|
384
|
-
currentPaths = new (_.apply(Set, [
|
|
385
|
-
void 0,
|
|
386
|
-
_state.sent().map(function(r) {
|
|
387
|
-
return r.path;
|
|
388
|
-
})
|
|
389
|
-
]));
|
|
390
|
-
staleAdded = added.filter(function(p) {
|
|
391
|
-
return currentPaths.has(p);
|
|
392
|
-
});
|
|
393
|
-
if (staleAdded.length > 0) contentTouched = _to_consumable_array(touched).concat(_to_consumable_array(staleAdded));
|
|
394
|
-
_state.label = 6;
|
|
395
|
-
case 6:
|
|
396
454
|
if (!(parsedDocs.length > 0)) return [
|
|
397
455
|
3,
|
|
398
|
-
|
|
456
|
+
7
|
|
399
457
|
];
|
|
400
|
-
|
|
458
|
+
toRow = function toRow(doc) {
|
|
401
459
|
return writableColumns.map(function(col) {
|
|
402
460
|
var _doc_data_col;
|
|
403
461
|
if (col === 'path') return doc.relPath;
|
|
@@ -408,185 +466,290 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
408
466
|
if (col === '_parse_error') return doc.parseError;
|
|
409
467
|
return (_doc_data_col = doc.data[col]) !== null && _doc_data_col !== void 0 ? _doc_data_col : null;
|
|
410
468
|
});
|
|
411
|
-
}
|
|
469
|
+
};
|
|
470
|
+
// A path in `added` has no existing frontmatter row, so it can never conflict: where a
|
|
471
|
+
// dialect offers a faster append-only path (insertNew), only the rest go through the upsert.
|
|
412
472
|
return [
|
|
413
473
|
4,
|
|
414
|
-
|
|
474
|
+
stages.time('fm-upsert', function() {
|
|
475
|
+
return _async_to_generator(function() {
|
|
476
|
+
var newDocs, updateDocs;
|
|
477
|
+
return _ts_generator(this, function(_state) {
|
|
478
|
+
switch(_state.label){
|
|
479
|
+
case 0:
|
|
480
|
+
if (!dialect.insertNew) return [
|
|
481
|
+
3,
|
|
482
|
+
5
|
|
483
|
+
];
|
|
484
|
+
newDocs = parsedDocs.filter(function(d) {
|
|
485
|
+
return addedSet.has(d.relPath);
|
|
486
|
+
});
|
|
487
|
+
updateDocs = parsedDocs.filter(function(d) {
|
|
488
|
+
return !addedSet.has(d.relPath);
|
|
489
|
+
});
|
|
490
|
+
if (!(newDocs.length > 0)) return [
|
|
491
|
+
3,
|
|
492
|
+
2
|
|
493
|
+
];
|
|
494
|
+
return [
|
|
495
|
+
4,
|
|
496
|
+
dialect.insertNew(conn, 'frontmatter', writableColumns, newDocs.map(toRow))
|
|
497
|
+
];
|
|
498
|
+
case 1:
|
|
499
|
+
_state.sent();
|
|
500
|
+
_state.label = 2;
|
|
501
|
+
case 2:
|
|
502
|
+
if (!(updateDocs.length > 0)) return [
|
|
503
|
+
3,
|
|
504
|
+
4
|
|
505
|
+
];
|
|
506
|
+
return [
|
|
507
|
+
4,
|
|
508
|
+
conn.runBatch(insertSql, updateDocs.map(toRow))
|
|
509
|
+
];
|
|
510
|
+
case 3:
|
|
511
|
+
_state.sent();
|
|
512
|
+
_state.label = 4;
|
|
513
|
+
case 4:
|
|
514
|
+
return [
|
|
515
|
+
3,
|
|
516
|
+
7
|
|
517
|
+
];
|
|
518
|
+
case 5:
|
|
519
|
+
return [
|
|
520
|
+
4,
|
|
521
|
+
conn.runBatch(insertSql, parsedDocs.map(toRow))
|
|
522
|
+
];
|
|
523
|
+
case 6:
|
|
524
|
+
_state.sent();
|
|
525
|
+
_state.label = 7;
|
|
526
|
+
case 7:
|
|
527
|
+
return [
|
|
528
|
+
2
|
|
529
|
+
];
|
|
530
|
+
}
|
|
531
|
+
});
|
|
532
|
+
})();
|
|
533
|
+
})
|
|
415
534
|
];
|
|
416
|
-
case
|
|
535
|
+
case 6:
|
|
417
536
|
_state.sent();
|
|
418
|
-
_state.label =
|
|
419
|
-
case
|
|
537
|
+
_state.label = 7;
|
|
538
|
+
case 7:
|
|
420
539
|
// After the upsert, so every doc already has the frontmatter row sqlite's content rowid
|
|
421
540
|
// couples to. ON CONFLICT DO UPDATE preserves that rowid, so a reparse keeps its identity.
|
|
422
541
|
return [
|
|
423
542
|
4,
|
|
424
|
-
|
|
543
|
+
stages.time('text-index', function() {
|
|
544
|
+
return dialect.reconcileContent(conn, contentTouched, parsedDocs, delta, cfg);
|
|
545
|
+
})
|
|
546
|
+
];
|
|
547
|
+
case 8:
|
|
548
|
+
_state.sent();
|
|
549
|
+
// A preset edit forces a full rebuild, so an unchanged doc's coverage is already correct;
|
|
550
|
+
// new docs have nothing to clear, which keeps cold builds linear.
|
|
551
|
+
return [
|
|
552
|
+
4,
|
|
553
|
+
stages.time('presets', function() {
|
|
554
|
+
return _async_to_generator(function() {
|
|
555
|
+
var presetRows, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator, _step, doc, _iterator1, _step1, presetName;
|
|
556
|
+
return _ts_generator(this, function(_state) {
|
|
557
|
+
switch(_state.label){
|
|
558
|
+
case 0:
|
|
559
|
+
if (!(touched.length > 0)) return [
|
|
560
|
+
3,
|
|
561
|
+
2
|
|
562
|
+
];
|
|
563
|
+
return [
|
|
564
|
+
4,
|
|
565
|
+
conn.runBatch('DELETE FROM preset_files WHERE "path" = ?', touched.map(function(p) {
|
|
566
|
+
return [
|
|
567
|
+
p
|
|
568
|
+
];
|
|
569
|
+
}))
|
|
570
|
+
];
|
|
571
|
+
case 1:
|
|
572
|
+
_state.sent();
|
|
573
|
+
_state.label = 2;
|
|
574
|
+
case 2:
|
|
575
|
+
presetRows = [];
|
|
576
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined, _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
577
|
+
try {
|
|
578
|
+
for(_iterator = parsedDocs[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step = _iterator.next()).done); _iteratorNormalCompletion1 = true){
|
|
579
|
+
doc = _step.value;
|
|
580
|
+
try {
|
|
581
|
+
for(_iterator1 = doc.presets[Symbol.iterator](); !(_iteratorNormalCompletion = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion = true){
|
|
582
|
+
presetName = _step1.value;
|
|
583
|
+
presetRows.push([
|
|
584
|
+
doc.relPath,
|
|
585
|
+
presetName
|
|
586
|
+
]);
|
|
587
|
+
}
|
|
588
|
+
} catch (err) {
|
|
589
|
+
_didIteratorError = true;
|
|
590
|
+
_iteratorError = err;
|
|
591
|
+
} finally{
|
|
592
|
+
try {
|
|
593
|
+
if (!_iteratorNormalCompletion && _iterator1.return != null) {
|
|
594
|
+
_iterator1.return();
|
|
595
|
+
}
|
|
596
|
+
} finally{
|
|
597
|
+
if (_didIteratorError) {
|
|
598
|
+
throw _iteratorError;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
} catch (err) {
|
|
604
|
+
_didIteratorError1 = true;
|
|
605
|
+
_iteratorError1 = err;
|
|
606
|
+
} finally{
|
|
607
|
+
try {
|
|
608
|
+
if (!_iteratorNormalCompletion1 && _iterator.return != null) {
|
|
609
|
+
_iterator.return();
|
|
610
|
+
}
|
|
611
|
+
} finally{
|
|
612
|
+
if (_didIteratorError1) {
|
|
613
|
+
throw _iteratorError1;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
if (!(presetRows.length > 0)) return [
|
|
618
|
+
3,
|
|
619
|
+
4
|
|
620
|
+
];
|
|
621
|
+
return [
|
|
622
|
+
4,
|
|
623
|
+
conn.runBatch('INSERT INTO preset_files ("path", preset) VALUES (?, ?) ON CONFLICT("path", preset) DO NOTHING', presetRows)
|
|
624
|
+
];
|
|
625
|
+
case 3:
|
|
626
|
+
_state.sent();
|
|
627
|
+
_state.label = 4;
|
|
628
|
+
case 4:
|
|
629
|
+
return [
|
|
630
|
+
2
|
|
631
|
+
];
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
})();
|
|
635
|
+
})
|
|
425
636
|
];
|
|
426
637
|
case 9:
|
|
427
638
|
_state.sent();
|
|
428
|
-
if (!(
|
|
639
|
+
if (!(vanished.length > 0)) return [
|
|
429
640
|
3,
|
|
430
641
|
11
|
|
431
642
|
];
|
|
432
643
|
return [
|
|
433
644
|
4,
|
|
434
|
-
|
|
435
|
-
return
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
645
|
+
stages.time('vanished', function() {
|
|
646
|
+
return conn.runBatch('DELETE FROM frontmatter WHERE "path" = ?', vanished.map(function(p) {
|
|
647
|
+
return [
|
|
648
|
+
p
|
|
649
|
+
];
|
|
650
|
+
}));
|
|
651
|
+
})
|
|
439
652
|
];
|
|
440
653
|
case 10:
|
|
441
654
|
_state.sent();
|
|
442
655
|
_state.label = 11;
|
|
443
656
|
case 11:
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
try {
|
|
447
|
-
for(_iterator = parsedDocs[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step = _iterator.next()).done); _iteratorNormalCompletion1 = true){
|
|
448
|
-
doc = _step.value;
|
|
449
|
-
try {
|
|
450
|
-
for(_iterator1 = doc.presets[Symbol.iterator](); !(_iteratorNormalCompletion = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion = true){
|
|
451
|
-
presetName = _step1.value;
|
|
452
|
-
presetRows.push([
|
|
453
|
-
doc.relPath,
|
|
454
|
-
presetName
|
|
455
|
-
]);
|
|
456
|
-
}
|
|
457
|
-
} catch (err) {
|
|
458
|
-
_didIteratorError = true;
|
|
459
|
-
_iteratorError = err;
|
|
460
|
-
} finally{
|
|
461
|
-
try {
|
|
462
|
-
if (!_iteratorNormalCompletion && _iterator1.return != null) {
|
|
463
|
-
_iterator1.return();
|
|
464
|
-
}
|
|
465
|
-
} finally{
|
|
466
|
-
if (_didIteratorError) {
|
|
467
|
-
throw _iteratorError;
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
} catch (err) {
|
|
473
|
-
_didIteratorError1 = true;
|
|
474
|
-
_iteratorError1 = err;
|
|
475
|
-
} finally{
|
|
476
|
-
try {
|
|
477
|
-
if (!_iteratorNormalCompletion1 && _iterator.return != null) {
|
|
478
|
-
_iterator.return();
|
|
479
|
-
}
|
|
480
|
-
} finally{
|
|
481
|
-
if (_didIteratorError1) {
|
|
482
|
-
throw _iteratorError1;
|
|
483
|
-
}
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
if (!(presetRows.length > 0)) return [
|
|
657
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
658
|
+
if (!(touched.length > 0)) return [
|
|
487
659
|
3,
|
|
488
|
-
|
|
489
|
-
];
|
|
490
|
-
return [
|
|
491
|
-
4,
|
|
492
|
-
conn.runBatch('INSERT INTO preset_files ("path", preset) VALUES (?, ?) ON CONFLICT("path", preset) DO NOTHING', presetRows)
|
|
660
|
+
19
|
|
493
661
|
];
|
|
662
|
+
_state.label = 12;
|
|
494
663
|
case 12:
|
|
495
|
-
_state.
|
|
664
|
+
_state.trys.push([
|
|
665
|
+
12,
|
|
666
|
+
17,
|
|
667
|
+
18,
|
|
668
|
+
19
|
|
669
|
+
]);
|
|
670
|
+
_loop = function() {
|
|
671
|
+
var feature;
|
|
672
|
+
return _ts_generator(this, function(_state) {
|
|
673
|
+
switch(_state.label){
|
|
674
|
+
case 0:
|
|
675
|
+
feature = _step.value;
|
|
676
|
+
return [
|
|
677
|
+
4,
|
|
678
|
+
stages.time((0, _stagests.featureStage)(feature.name, 'remove'), function() {
|
|
679
|
+
var _feature_remove;
|
|
680
|
+
return (_feature_remove = feature.remove) === null || _feature_remove === void 0 ? void 0 : _feature_remove.call(feature, conn, touched, delta);
|
|
681
|
+
})
|
|
682
|
+
];
|
|
683
|
+
case 1:
|
|
684
|
+
_state.sent();
|
|
685
|
+
return [
|
|
686
|
+
2
|
|
687
|
+
];
|
|
688
|
+
}
|
|
689
|
+
});
|
|
690
|
+
};
|
|
691
|
+
_iterator = features[Symbol.iterator]();
|
|
496
692
|
_state.label = 13;
|
|
497
693
|
case 13:
|
|
498
|
-
if (
|
|
694
|
+
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
499
695
|
3,
|
|
500
|
-
|
|
696
|
+
16
|
|
501
697
|
];
|
|
502
698
|
return [
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
return [
|
|
506
|
-
p
|
|
507
|
-
];
|
|
508
|
-
}))
|
|
699
|
+
5,
|
|
700
|
+
_ts_values(_loop())
|
|
509
701
|
];
|
|
510
702
|
case 14:
|
|
511
703
|
_state.sent();
|
|
512
704
|
_state.label = 15;
|
|
513
705
|
case 15:
|
|
514
|
-
|
|
515
|
-
if (!(touched.length > 0)) return [
|
|
516
|
-
3,
|
|
517
|
-
23
|
|
518
|
-
];
|
|
519
|
-
_state.label = 16;
|
|
520
|
-
case 16:
|
|
521
|
-
_state.trys.push([
|
|
522
|
-
16,
|
|
523
|
-
21,
|
|
524
|
-
22,
|
|
525
|
-
23
|
|
526
|
-
]);
|
|
527
|
-
_iterator2 = features[Symbol.iterator]();
|
|
528
|
-
_state.label = 17;
|
|
529
|
-
case 17:
|
|
530
|
-
if (!!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done)) return [
|
|
531
|
-
3,
|
|
532
|
-
20
|
|
533
|
-
];
|
|
534
|
-
feature = _step2.value;
|
|
535
|
-
return [
|
|
536
|
-
4,
|
|
537
|
-
(_feature_remove = feature.remove) === null || _feature_remove === void 0 ? void 0 : _feature_remove.call(feature, conn, touched, delta)
|
|
538
|
-
];
|
|
539
|
-
case 18:
|
|
540
|
-
_state.sent();
|
|
541
|
-
_state.label = 19;
|
|
542
|
-
case 19:
|
|
543
|
-
_iteratorNormalCompletion2 = true;
|
|
706
|
+
_iteratorNormalCompletion = true;
|
|
544
707
|
return [
|
|
545
708
|
3,
|
|
546
|
-
|
|
709
|
+
13
|
|
547
710
|
];
|
|
548
|
-
case
|
|
711
|
+
case 16:
|
|
549
712
|
return [
|
|
550
713
|
3,
|
|
551
|
-
|
|
714
|
+
19
|
|
552
715
|
];
|
|
553
|
-
case
|
|
716
|
+
case 17:
|
|
554
717
|
err = _state.sent();
|
|
555
|
-
|
|
556
|
-
|
|
718
|
+
_didIteratorError = true;
|
|
719
|
+
_iteratorError = err;
|
|
557
720
|
return [
|
|
558
721
|
3,
|
|
559
|
-
|
|
722
|
+
19
|
|
560
723
|
];
|
|
561
|
-
case
|
|
724
|
+
case 18:
|
|
562
725
|
try {
|
|
563
|
-
if (!
|
|
564
|
-
|
|
726
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
727
|
+
_iterator.return();
|
|
565
728
|
}
|
|
566
729
|
} finally{
|
|
567
|
-
if (
|
|
568
|
-
throw
|
|
730
|
+
if (_didIteratorError) {
|
|
731
|
+
throw _iteratorError;
|
|
569
732
|
}
|
|
570
733
|
}
|
|
571
734
|
return [
|
|
572
735
|
7
|
|
573
736
|
];
|
|
574
|
-
case
|
|
575
|
-
|
|
576
|
-
_state.label =
|
|
577
|
-
case
|
|
737
|
+
case 19:
|
|
738
|
+
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
739
|
+
_state.label = 20;
|
|
740
|
+
case 20:
|
|
578
741
|
_state.trys.push([
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
742
|
+
20,
|
|
743
|
+
25,
|
|
744
|
+
26,
|
|
745
|
+
27
|
|
583
746
|
]);
|
|
584
|
-
|
|
585
|
-
var feature,
|
|
747
|
+
_loop1 = function() {
|
|
748
|
+
var feature, docsForFeature;
|
|
586
749
|
return _ts_generator(this, function(_state) {
|
|
587
750
|
switch(_state.label){
|
|
588
751
|
case 0:
|
|
589
|
-
feature =
|
|
752
|
+
feature = _step1.value;
|
|
590
753
|
docsForFeature = parsedDocs.map(function(doc) {
|
|
591
754
|
return {
|
|
592
755
|
path: doc.relPath,
|
|
@@ -595,7 +758,10 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
595
758
|
});
|
|
596
759
|
return [
|
|
597
760
|
4,
|
|
598
|
-
(
|
|
761
|
+
stages.time((0, _stagests.featureStage)(feature.name, 'store'), function() {
|
|
762
|
+
var _feature_store;
|
|
763
|
+
return (_feature_store = feature.store) === null || _feature_store === void 0 ? void 0 : _feature_store.call(feature, conn, docsForFeature, delta);
|
|
764
|
+
})
|
|
599
765
|
];
|
|
600
766
|
case 1:
|
|
601
767
|
_state.sent();
|
|
@@ -605,110 +771,130 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
605
771
|
}
|
|
606
772
|
});
|
|
607
773
|
};
|
|
608
|
-
|
|
609
|
-
_state.label =
|
|
610
|
-
case
|
|
611
|
-
if (!!(
|
|
774
|
+
_iterator1 = features[Symbol.iterator]();
|
|
775
|
+
_state.label = 21;
|
|
776
|
+
case 21:
|
|
777
|
+
if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
|
|
612
778
|
3,
|
|
613
|
-
|
|
779
|
+
24
|
|
614
780
|
];
|
|
615
781
|
return [
|
|
616
782
|
5,
|
|
617
|
-
_ts_values(
|
|
783
|
+
_ts_values(_loop1())
|
|
618
784
|
];
|
|
619
|
-
case
|
|
785
|
+
case 22:
|
|
620
786
|
_state.sent();
|
|
621
|
-
_state.label =
|
|
622
|
-
case
|
|
623
|
-
|
|
787
|
+
_state.label = 23;
|
|
788
|
+
case 23:
|
|
789
|
+
_iteratorNormalCompletion1 = true;
|
|
624
790
|
return [
|
|
625
791
|
3,
|
|
626
|
-
|
|
792
|
+
21
|
|
627
793
|
];
|
|
628
|
-
case
|
|
794
|
+
case 24:
|
|
629
795
|
return [
|
|
630
796
|
3,
|
|
631
|
-
|
|
797
|
+
27
|
|
632
798
|
];
|
|
633
|
-
case
|
|
799
|
+
case 25:
|
|
634
800
|
err = _state.sent();
|
|
635
|
-
|
|
636
|
-
|
|
801
|
+
_didIteratorError1 = true;
|
|
802
|
+
_iteratorError1 = err;
|
|
637
803
|
return [
|
|
638
804
|
3,
|
|
639
|
-
|
|
805
|
+
27
|
|
640
806
|
];
|
|
641
|
-
case
|
|
807
|
+
case 26:
|
|
642
808
|
try {
|
|
643
|
-
if (!
|
|
644
|
-
|
|
809
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
810
|
+
_iterator1.return();
|
|
645
811
|
}
|
|
646
812
|
} finally{
|
|
647
|
-
if (
|
|
648
|
-
throw
|
|
813
|
+
if (_didIteratorError1) {
|
|
814
|
+
throw _iteratorError1;
|
|
649
815
|
}
|
|
650
816
|
}
|
|
651
817
|
return [
|
|
652
818
|
7
|
|
653
819
|
];
|
|
654
|
-
case
|
|
655
|
-
|
|
656
|
-
_state.label =
|
|
657
|
-
case
|
|
820
|
+
case 27:
|
|
821
|
+
_iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
822
|
+
_state.label = 28;
|
|
823
|
+
case 28:
|
|
658
824
|
_state.trys.push([
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
825
|
+
28,
|
|
826
|
+
33,
|
|
827
|
+
34,
|
|
828
|
+
35
|
|
663
829
|
]);
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
830
|
+
_loop2 = function() {
|
|
831
|
+
var feature;
|
|
832
|
+
return _ts_generator(this, function(_state) {
|
|
833
|
+
switch(_state.label){
|
|
834
|
+
case 0:
|
|
835
|
+
feature = _step2.value;
|
|
836
|
+
return [
|
|
837
|
+
4,
|
|
838
|
+
stages.time((0, _stagests.featureStage)(feature.name, 'after'), function() {
|
|
839
|
+
var _feature_afterReconcile;
|
|
840
|
+
return (_feature_afterReconcile = feature.afterReconcile) === null || _feature_afterReconcile === void 0 ? void 0 : _feature_afterReconcile.call(feature, conn, delta);
|
|
841
|
+
})
|
|
842
|
+
];
|
|
843
|
+
case 1:
|
|
844
|
+
_state.sent();
|
|
845
|
+
return [
|
|
846
|
+
2
|
|
847
|
+
];
|
|
848
|
+
}
|
|
849
|
+
});
|
|
850
|
+
};
|
|
851
|
+
_iterator2 = features[Symbol.iterator]();
|
|
852
|
+
_state.label = 29;
|
|
853
|
+
case 29:
|
|
854
|
+
if (!!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done)) return [
|
|
668
855
|
3,
|
|
669
|
-
|
|
856
|
+
32
|
|
670
857
|
];
|
|
671
|
-
feature1 = _step4.value;
|
|
672
858
|
return [
|
|
673
|
-
|
|
674
|
-
(
|
|
859
|
+
5,
|
|
860
|
+
_ts_values(_loop2())
|
|
675
861
|
];
|
|
676
|
-
case
|
|
862
|
+
case 30:
|
|
677
863
|
_state.sent();
|
|
678
|
-
_state.label =
|
|
679
|
-
case
|
|
680
|
-
|
|
864
|
+
_state.label = 31;
|
|
865
|
+
case 31:
|
|
866
|
+
_iteratorNormalCompletion2 = true;
|
|
681
867
|
return [
|
|
682
868
|
3,
|
|
683
|
-
|
|
869
|
+
29
|
|
684
870
|
];
|
|
685
|
-
case
|
|
871
|
+
case 32:
|
|
686
872
|
return [
|
|
687
873
|
3,
|
|
688
|
-
|
|
874
|
+
35
|
|
689
875
|
];
|
|
690
|
-
case
|
|
876
|
+
case 33:
|
|
691
877
|
err = _state.sent();
|
|
692
|
-
|
|
693
|
-
|
|
878
|
+
_didIteratorError2 = true;
|
|
879
|
+
_iteratorError2 = err;
|
|
694
880
|
return [
|
|
695
881
|
3,
|
|
696
|
-
|
|
882
|
+
35
|
|
697
883
|
];
|
|
698
|
-
case
|
|
884
|
+
case 34:
|
|
699
885
|
try {
|
|
700
|
-
if (!
|
|
701
|
-
|
|
886
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
887
|
+
_iterator2.return();
|
|
702
888
|
}
|
|
703
889
|
} finally{
|
|
704
|
-
if (
|
|
705
|
-
throw
|
|
890
|
+
if (_didIteratorError2) {
|
|
891
|
+
throw _iteratorError2;
|
|
706
892
|
}
|
|
707
893
|
}
|
|
708
894
|
return [
|
|
709
895
|
7
|
|
710
896
|
];
|
|
711
|
-
case
|
|
897
|
+
case 35:
|
|
712
898
|
return [
|
|
713
899
|
2
|
|
714
900
|
];
|
|
@@ -720,13 +906,18 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
720
906
|
case 5:
|
|
721
907
|
_state.sent();
|
|
722
908
|
durationMs = Date.now() - txStart;
|
|
909
|
+
// Every store, not just the ones with a PRAGMA to derive: connectUnlocked's lock-wait budget needs it too.
|
|
910
|
+
(0, _lockwaitts.recordLockWaitMs)(baseDir, durationMs);
|
|
723
911
|
if (!dialect.recordDuration) return [
|
|
724
912
|
3,
|
|
725
913
|
7
|
|
726
914
|
];
|
|
727
915
|
return [
|
|
728
916
|
4,
|
|
729
|
-
|
|
917
|
+
stages.time('meta', function() {
|
|
918
|
+
var _dialect_recordDuration;
|
|
919
|
+
return (_dialect_recordDuration = dialect.recordDuration) === null || _dialect_recordDuration === void 0 ? void 0 : _dialect_recordDuration.call(dialect, conn, durationMs);
|
|
920
|
+
})
|
|
730
921
|
];
|
|
731
922
|
case 6:
|
|
732
923
|
_state.sent();
|
|
@@ -736,7 +927,8 @@ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
|
|
|
736
927
|
2,
|
|
737
928
|
{
|
|
738
929
|
parsed: parsedDocs.length,
|
|
739
|
-
warnings: warnings
|
|
930
|
+
warnings: warnings,
|
|
931
|
+
stages: stages.take(elapsed(), durationMs, workerParseMs)
|
|
740
932
|
}
|
|
741
933
|
];
|
|
742
934
|
}
|