sensemaking 0.19.1 → 0.19.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/dist/cjs/index.d.cts +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/store/duckdb/fieldStats.js +87 -10
- package/dist/cjs/store/duckdb/fieldStats.js.map +1 -1
- package/dist/cjs/store/duckdb/open.js +3 -2
- package/dist/cjs/store/duckdb/open.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.d.cts +2 -6
- package/dist/cjs/store/duckdb/reconcile.d.ts +2 -6
- package/dist/cjs/store/duckdb/reconcile.js +41 -581
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/duckdb/store.js +5 -3
- package/dist/cjs/store/duckdb/store.js.map +1 -1
- package/dist/cjs/store/index.d.cts +1 -0
- package/dist/cjs/store/index.d.ts +1 -0
- package/dist/cjs/store/index.js +4 -0
- package/dist/cjs/store/index.js.map +1 -1
- package/dist/cjs/store/reconcile.d.cts +6 -0
- package/dist/cjs/store/reconcile.d.ts +6 -0
- package/dist/cjs/store/reconcile.js +750 -0
- package/dist/cjs/store/reconcile.js.map +1 -0
- package/dist/cjs/store/shared.d.cts +1 -0
- package/dist/cjs/store/shared.d.ts +1 -0
- package/dist/cjs/store/shared.js +37 -0
- package/dist/cjs/store/shared.js.map +1 -1
- package/dist/cjs/store/sqlite/open.js +8 -6
- package/dist/cjs/store/sqlite/open.js.map +1 -1
- package/dist/cjs/store/sqlite/reconcile.d.cts +5 -10
- package/dist/cjs/store/sqlite/reconcile.d.ts +5 -10
- package/dist/cjs/store/sqlite/reconcile.js +48 -850
- package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
- package/dist/cjs/store/sqlite/signature.d.cts +6 -0
- package/dist/cjs/store/sqlite/signature.d.ts +6 -0
- package/dist/cjs/store/sqlite/signature.js +380 -0
- package/dist/cjs/store/sqlite/signature.js.map +1 -0
- package/dist/cjs/store/sqlite/store.js +5 -3
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/turso/open.js +3 -2
- package/dist/cjs/store/turso/open.js.map +1 -1
- package/dist/cjs/store/turso/reconcile.d.cts +3 -6
- package/dist/cjs/store/turso/reconcile.d.ts +3 -6
- package/dist/cjs/store/turso/reconcile.js +157 -728
- package/dist/cjs/store/turso/reconcile.js.map +1 -1
- package/dist/cjs/store/turso/store.js +3 -2
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/types.d.cts +12 -2
- package/dist/cjs/store/types.d.ts +12 -2
- package/dist/cjs/store/types.js +14 -0
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/store/duckdb/fieldStats.js +32 -19
- package/dist/esm/store/duckdb/fieldStats.js.map +1 -1
- package/dist/esm/store/duckdb/open.js +3 -2
- package/dist/esm/store/duckdb/open.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.d.ts +2 -6
- package/dist/esm/store/duckdb/reconcile.js +20 -117
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/duckdb/store.js +5 -3
- package/dist/esm/store/duckdb/store.js.map +1 -1
- package/dist/esm/store/index.d.ts +1 -0
- package/dist/esm/store/index.js +1 -0
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/reconcile.d.ts +6 -0
- package/dist/esm/store/reconcile.js +130 -0
- package/dist/esm/store/reconcile.js.map +1 -0
- package/dist/esm/store/shared.d.ts +1 -0
- package/dist/esm/store/shared.js +9 -0
- package/dist/esm/store/shared.js.map +1 -1
- package/dist/esm/store/sqlite/open.js +4 -2
- package/dist/esm/store/sqlite/open.js.map +1 -1
- package/dist/esm/store/sqlite/reconcile.d.ts +5 -10
- package/dist/esm/store/sqlite/reconcile.js +31 -201
- package/dist/esm/store/sqlite/reconcile.js.map +1 -1
- package/dist/esm/store/sqlite/signature.d.ts +6 -0
- package/dist/esm/store/sqlite/signature.js +58 -0
- package/dist/esm/store/sqlite/signature.js.map +1 -0
- package/dist/esm/store/sqlite/store.js +5 -3
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/turso/open.js +3 -2
- package/dist/esm/store/turso/open.js.map +1 -1
- package/dist/esm/store/turso/reconcile.d.ts +3 -6
- package/dist/esm/store/turso/reconcile.js +30 -145
- package/dist/esm/store/turso/reconcile.js.map +1 -1
- package/dist/esm/store/turso/store.js +3 -2
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/types.d.ts +12 -2
- package/dist/esm/store/types.js +12 -1
- package/dist/esm/store/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,27 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "duckdbDialect", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return duckdbDialect;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _errorsts = require("../../errors.js");
|
|
12
|
-
var _indexts = require("../../features/index.js");
|
|
13
|
-
var _progressts = require("../../output/progress.js");
|
|
14
|
-
var _indexts1 = require("../../scan/index.js");
|
|
15
|
-
var _reparsets = require("../../scan/reparse.js");
|
|
16
|
-
var _sharedts = require("../shared.js");
|
|
17
|
-
var _transactionts = require("../transaction.js");
|
|
18
|
-
function _array_like_to_array(arr, len) {
|
|
19
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
20
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
21
|
-
return arr2;
|
|
22
|
-
}
|
|
23
|
-
function _array_without_holes(arr) {
|
|
24
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
25
|
-
}
|
|
26
12
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
27
13
|
try {
|
|
28
14
|
var info = gen[key](arg);
|
|
@@ -49,17 +35,6 @@ function _async_to_generator(fn) {
|
|
|
49
35
|
});
|
|
50
36
|
};
|
|
51
37
|
}
|
|
52
|
-
function _iterable_to_array(iter) {
|
|
53
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
|
|
54
|
-
return Array.from(iter);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function _non_iterable_spread() {
|
|
58
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
59
|
-
}
|
|
60
|
-
function _to_consumable_array(arr) {
|
|
61
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
62
|
-
}
|
|
63
38
|
function _ts_generator(thisArg, body) {
|
|
64
39
|
var f, y, t, _ = {
|
|
65
40
|
label: 0,
|
|
@@ -159,43 +134,10 @@ function _ts_generator(thisArg, body) {
|
|
|
159
134
|
};
|
|
160
135
|
}
|
|
161
136
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
if (o && typeof o.length === "number") {
|
|
168
|
-
return {
|
|
169
|
-
next: function() {
|
|
170
|
-
if (o && i >= o.length) {
|
|
171
|
-
o = void 0;
|
|
172
|
-
}
|
|
173
|
-
return {
|
|
174
|
-
value: o && o[i++],
|
|
175
|
-
done: !o
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
181
|
-
}
|
|
182
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
183
|
-
if (!o) return;
|
|
184
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
185
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
186
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
187
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
188
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
189
|
-
}
|
|
190
|
-
// Mirrors sqlite/reconcile.ts's frontmatter-upsert shape (dynamic ALTER TABLE per discovered key, ON CONFLICT upsert). `content` is
|
|
191
|
-
// a plain table, not FTS-virtual, so rows are maintained here unconditionally; DuckDB's ALTER TABLE needs a declared type, so every dynamic frontmatter column is VARIANT (holds mapValue()'s mixed JS types for one key across files).
|
|
192
|
-
var CORE_FRONTMATTER_COLUMNS = new Set([
|
|
193
|
-
'path',
|
|
194
|
-
'_mtime',
|
|
195
|
-
'_ctime',
|
|
196
|
-
'_size',
|
|
197
|
-
'_parse_error'
|
|
198
|
-
]);
|
|
137
|
+
// This store's dialect (types.ts's ReconcileDialect) for the shared orchestration in
|
|
138
|
+
// store/reconcile.ts. `content` is a plain table, not FTS-virtual, so rows are maintained here
|
|
139
|
+
// unconditionally; DuckDB's ALTER TABLE needs a declared type, so every dynamic frontmatter
|
|
140
|
+
// column is VARIANT (holds mapValue()'s mixed JS types for one key across files).
|
|
199
141
|
// No rowid coupling needed (unlike sqlite's content, which links to frontmatter's rowid):
|
|
200
142
|
// `path` is content's own primary key, so this is a plain per-doc row.
|
|
201
143
|
var INSERT_CONTENT_SQL = 'INSERT INTO content ("path", title, summary, text) VALUES (?, ?, ?, ?)';
|
|
@@ -210,542 +152,60 @@ function contentRow(doc) {
|
|
|
210
152
|
// No compile-time column cap in DuckDB (unlike SQLite's SQLITE_MAX_COLUMN); kept as a sanity fence anyway
|
|
211
153
|
// so a runaway frontmatter generator fails with a clear message instead of an unbounded ALTER TABLE loop.
|
|
212
154
|
var MAX_FRONTMATTER_COLUMNS = 10000;
|
|
213
|
-
function
|
|
155
|
+
function reconcileContent(conn, touched, docs, _delta) {
|
|
214
156
|
return _async_to_generator(function() {
|
|
215
|
-
var files, currentSet, existingStmt, existingRows, existing, vanished, toReparse, features, seenColumns, report, _ref, parsedDocs, warnings, newColumns, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, col, allColumns, writableColumns, insertSql, added, delta, addedSet, reparsedExisting;
|
|
216
157
|
return _ts_generator(this, function(_state) {
|
|
217
158
|
switch(_state.label){
|
|
218
159
|
case 0:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}));
|
|
223
|
-
return [
|
|
224
|
-
4,
|
|
225
|
-
conn.prepare('SELECT "path", "_mtime", "_size" FROM frontmatter')
|
|
160
|
+
if (!(touched.length > 0)) return [
|
|
161
|
+
3,
|
|
162
|
+
2
|
|
226
163
|
];
|
|
227
|
-
case 1:
|
|
228
|
-
existingStmt = _state.sent();
|
|
229
164
|
return [
|
|
230
165
|
4,
|
|
231
|
-
|
|
166
|
+
conn.runBatch('DELETE FROM content WHERE "path" = ?', touched.map(function(p) {
|
|
167
|
+
return [
|
|
168
|
+
p
|
|
169
|
+
];
|
|
170
|
+
}))
|
|
232
171
|
];
|
|
172
|
+
case 1:
|
|
173
|
+
_state.sent();
|
|
174
|
+
_state.label = 2;
|
|
233
175
|
case 2:
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
r.path,
|
|
238
|
-
r
|
|
239
|
-
];
|
|
240
|
-
}));
|
|
241
|
-
vanished = existingRows.filter(function(r) {
|
|
242
|
-
return !currentSet.has(r.path);
|
|
243
|
-
}).map(function(r) {
|
|
244
|
-
return r.path;
|
|
245
|
-
});
|
|
246
|
-
toReparse = files.filter(function(f) {
|
|
247
|
-
var row = existing.get(f.relPath);
|
|
248
|
-
return !row || row._mtime !== f.mtimeMs || row._size !== f.size;
|
|
249
|
-
});
|
|
250
|
-
if (vanished.length === 0 && toReparse.length === 0) return [
|
|
251
|
-
2,
|
|
252
|
-
{
|
|
253
|
-
parsed: 0,
|
|
254
|
-
warnings: []
|
|
255
|
-
}
|
|
176
|
+
if (!(docs.length > 0)) return [
|
|
177
|
+
3,
|
|
178
|
+
4
|
|
256
179
|
];
|
|
257
|
-
features = (0, _indexts.activeFeatures)(cfg);
|
|
258
180
|
return [
|
|
259
181
|
4,
|
|
260
|
-
(
|
|
182
|
+
conn.runBatch(INSERT_CONTENT_SQL, docs.map(contentRow))
|
|
261
183
|
];
|
|
262
184
|
case 3:
|
|
263
|
-
seenColumns = _state.sent();
|
|
264
|
-
report = (0, _progressts.progress)('reparsing files', toReparse.length);
|
|
265
|
-
return [
|
|
266
|
-
4,
|
|
267
|
-
(0, _reparsets.reparseFiles)(toReparse, features, cfg, seenColumns, report.tick)
|
|
268
|
-
];
|
|
269
|
-
case 4:
|
|
270
|
-
_ref = _state.sent(), parsedDocs = _ref.docs, warnings = _ref.warnings, newColumns = _ref.newColumns;
|
|
271
|
-
report.finish();
|
|
272
|
-
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
273
|
-
try {
|
|
274
|
-
for(_iterator = newColumns[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
275
|
-
col = _step.value;
|
|
276
|
-
seenColumns.add(col);
|
|
277
|
-
}
|
|
278
|
-
} catch (err) {
|
|
279
|
-
_didIteratorError = true;
|
|
280
|
-
_iteratorError = err;
|
|
281
|
-
} finally{
|
|
282
|
-
try {
|
|
283
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
284
|
-
_iterator.return();
|
|
285
|
-
}
|
|
286
|
-
} finally{
|
|
287
|
-
if (_didIteratorError) {
|
|
288
|
-
throw _iteratorError;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
allColumns = _to_consumable_array(seenColumns);
|
|
293
|
-
if (allColumns.length > MAX_FRONTMATTER_COLUMNS) {
|
|
294
|
-
throw new _errorsts.SenseError('COLUMN_LIMIT', "frontmatter would need ".concat(allColumns.length, " columns, crossing this store's sanity limit (").concat(MAX_FRONTMATTER_COLUMNS, "). Narrow the presets' include globs so fewer/other files are indexed, or fix whatever is generating unbounded frontmatter keys."));
|
|
295
|
-
}
|
|
296
|
-
writableColumns = allColumns.filter(function(c) {
|
|
297
|
-
return CORE_FRONTMATTER_COLUMNS.has(c) || !_indexts1.RESERVED_COLUMNS.has(c);
|
|
298
|
-
});
|
|
299
|
-
insertSql = "INSERT INTO frontmatter (".concat(writableColumns.map(_sharedts.quoteIdent).join(', '), ") VALUES (").concat(writableColumns.map(function() {
|
|
300
|
-
return '?';
|
|
301
|
-
}).join(', '), ') ON CONFLICT("path") DO UPDATE SET ').concat(writableColumns.filter(function(c) {
|
|
302
|
-
return c !== 'path';
|
|
303
|
-
}).map(function(c) {
|
|
304
|
-
return "".concat((0, _sharedts.quoteIdent)(c), " = excluded.").concat((0, _sharedts.quoteIdent)(c));
|
|
305
|
-
}).join(', '));
|
|
306
|
-
added = toReparse.filter(function(f) {
|
|
307
|
-
return !existing.has(f.relPath);
|
|
308
|
-
}).map(function(f) {
|
|
309
|
-
return f.relPath;
|
|
310
|
-
});
|
|
311
|
-
delta = {
|
|
312
|
-
files: files,
|
|
313
|
-
reparsed: parsedDocs.map(function(d) {
|
|
314
|
-
return d.relPath;
|
|
315
|
-
}),
|
|
316
|
-
added: added,
|
|
317
|
-
vanished: vanished
|
|
318
|
-
};
|
|
319
|
-
addedSet = new Set(added);
|
|
320
|
-
reparsedExisting = parsedDocs.map(function(d) {
|
|
321
|
-
return d.relPath;
|
|
322
|
-
}).filter(function(p) {
|
|
323
|
-
return !addedSet.has(p);
|
|
324
|
-
});
|
|
325
|
-
return [
|
|
326
|
-
4,
|
|
327
|
-
(0, _transactionts.withTransaction)(conn, function() {
|
|
328
|
-
return _async_to_generator(function() {
|
|
329
|
-
var _feature_remove, _feature_afterReconcile, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, col, err, rows, contentTouched, presetTouched, presetRows, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator1, _step1, doc, _iterator2, _step2, presetName, removedPaths, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, feature, err, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _loop, _iterator4, _step4, err, _iteratorNormalCompletion5, _didIteratorError5, _iteratorError5, _iterator5, _step5, feature1, err;
|
|
330
|
-
return _ts_generator(this, function(_state) {
|
|
331
|
-
switch(_state.label){
|
|
332
|
-
case 0:
|
|
333
|
-
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
334
|
-
_state.label = 1;
|
|
335
|
-
case 1:
|
|
336
|
-
_state.trys.push([
|
|
337
|
-
1,
|
|
338
|
-
6,
|
|
339
|
-
7,
|
|
340
|
-
8
|
|
341
|
-
]);
|
|
342
|
-
_iterator = newColumns[Symbol.iterator]();
|
|
343
|
-
_state.label = 2;
|
|
344
|
-
case 2:
|
|
345
|
-
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
346
|
-
3,
|
|
347
|
-
5
|
|
348
|
-
];
|
|
349
|
-
col = _step.value;
|
|
350
|
-
return [
|
|
351
|
-
4,
|
|
352
|
-
conn.exec("ALTER TABLE frontmatter ADD COLUMN ".concat((0, _sharedts.quoteIdent)(col), " VARIANT"))
|
|
353
|
-
];
|
|
354
|
-
case 3:
|
|
355
|
-
_state.sent();
|
|
356
|
-
_state.label = 4;
|
|
357
|
-
case 4:
|
|
358
|
-
_iteratorNormalCompletion = true;
|
|
359
|
-
return [
|
|
360
|
-
3,
|
|
361
|
-
2
|
|
362
|
-
];
|
|
363
|
-
case 5:
|
|
364
|
-
return [
|
|
365
|
-
3,
|
|
366
|
-
8
|
|
367
|
-
];
|
|
368
|
-
case 6:
|
|
369
|
-
err = _state.sent();
|
|
370
|
-
_didIteratorError = true;
|
|
371
|
-
_iteratorError = err;
|
|
372
|
-
return [
|
|
373
|
-
3,
|
|
374
|
-
8
|
|
375
|
-
];
|
|
376
|
-
case 7:
|
|
377
|
-
try {
|
|
378
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
379
|
-
_iterator.return();
|
|
380
|
-
}
|
|
381
|
-
} finally{
|
|
382
|
-
if (_didIteratorError) {
|
|
383
|
-
throw _iteratorError;
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
return [
|
|
387
|
-
7
|
|
388
|
-
];
|
|
389
|
-
case 8:
|
|
390
|
-
if (!(parsedDocs.length > 0)) return [
|
|
391
|
-
3,
|
|
392
|
-
10
|
|
393
|
-
];
|
|
394
|
-
rows = parsedDocs.map(function(doc) {
|
|
395
|
-
return writableColumns.map(function(col) {
|
|
396
|
-
var _doc_data_col;
|
|
397
|
-
if (col === 'path') return doc.relPath;
|
|
398
|
-
if (col === '_mtime') return doc.mtimeMs;
|
|
399
|
-
if (col === '_ctime') return doc.ctimeMs;
|
|
400
|
-
if (col === '_size') return doc.size;
|
|
401
|
-
if (col === '_parse_error') return doc.parseError;
|
|
402
|
-
return (_doc_data_col = doc.data[col]) !== null && _doc_data_col !== void 0 ? _doc_data_col : null;
|
|
403
|
-
});
|
|
404
|
-
});
|
|
405
|
-
return [
|
|
406
|
-
4,
|
|
407
|
-
conn.runBatch(insertSql, rows)
|
|
408
|
-
];
|
|
409
|
-
case 9:
|
|
410
|
-
_state.sent();
|
|
411
|
-
_state.label = 10;
|
|
412
|
-
case 10:
|
|
413
|
-
contentTouched = _to_consumable_array(vanished).concat(_to_consumable_array(reparsedExisting));
|
|
414
|
-
if (!(contentTouched.length > 0)) return [
|
|
415
|
-
3,
|
|
416
|
-
12
|
|
417
|
-
];
|
|
418
|
-
return [
|
|
419
|
-
4,
|
|
420
|
-
conn.runBatch('DELETE FROM content WHERE "path" = ?', contentTouched.map(function(p) {
|
|
421
|
-
return [
|
|
422
|
-
p
|
|
423
|
-
];
|
|
424
|
-
}))
|
|
425
|
-
];
|
|
426
|
-
case 11:
|
|
427
|
-
_state.sent();
|
|
428
|
-
_state.label = 12;
|
|
429
|
-
case 12:
|
|
430
|
-
if (!(parsedDocs.length > 0)) return [
|
|
431
|
-
3,
|
|
432
|
-
14
|
|
433
|
-
];
|
|
434
|
-
return [
|
|
435
|
-
4,
|
|
436
|
-
conn.runBatch(INSERT_CONTENT_SQL, parsedDocs.map(contentRow))
|
|
437
|
-
];
|
|
438
|
-
case 13:
|
|
439
|
-
_state.sent();
|
|
440
|
-
_state.label = 14;
|
|
441
|
-
case 14:
|
|
442
|
-
if (!(vanished.length > 0)) return [
|
|
443
|
-
3,
|
|
444
|
-
16
|
|
445
|
-
];
|
|
446
|
-
return [
|
|
447
|
-
4,
|
|
448
|
-
conn.runBatch('DELETE FROM frontmatter WHERE "path" = ?', vanished.map(function(p) {
|
|
449
|
-
return [
|
|
450
|
-
p
|
|
451
|
-
];
|
|
452
|
-
}))
|
|
453
|
-
];
|
|
454
|
-
case 15:
|
|
455
|
-
_state.sent();
|
|
456
|
-
_state.label = 16;
|
|
457
|
-
case 16:
|
|
458
|
-
// A preset edit forces a full rebuild, so an unchanged doc's coverage is already correct;
|
|
459
|
-
// new docs have nothing to clear, which keeps cold builds linear.
|
|
460
|
-
presetTouched = _to_consumable_array(vanished).concat(_to_consumable_array(reparsedExisting));
|
|
461
|
-
if (!(presetTouched.length > 0)) return [
|
|
462
|
-
3,
|
|
463
|
-
18
|
|
464
|
-
];
|
|
465
|
-
return [
|
|
466
|
-
4,
|
|
467
|
-
conn.runBatch('DELETE FROM preset_files WHERE "path" = ?', presetTouched.map(function(p) {
|
|
468
|
-
return [
|
|
469
|
-
p
|
|
470
|
-
];
|
|
471
|
-
}))
|
|
472
|
-
];
|
|
473
|
-
case 17:
|
|
474
|
-
_state.sent();
|
|
475
|
-
_state.label = 18;
|
|
476
|
-
case 18:
|
|
477
|
-
presetRows = [];
|
|
478
|
-
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined, _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
|
|
479
|
-
try {
|
|
480
|
-
for(_iterator1 = parsedDocs[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion2 = true){
|
|
481
|
-
doc = _step1.value;
|
|
482
|
-
try {
|
|
483
|
-
for(_iterator2 = doc.presets[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion1 = true){
|
|
484
|
-
presetName = _step2.value;
|
|
485
|
-
presetRows.push([
|
|
486
|
-
doc.relPath,
|
|
487
|
-
presetName
|
|
488
|
-
]);
|
|
489
|
-
}
|
|
490
|
-
} catch (err) {
|
|
491
|
-
_didIteratorError1 = true;
|
|
492
|
-
_iteratorError1 = err;
|
|
493
|
-
} finally{
|
|
494
|
-
try {
|
|
495
|
-
if (!_iteratorNormalCompletion1 && _iterator2.return != null) {
|
|
496
|
-
_iterator2.return();
|
|
497
|
-
}
|
|
498
|
-
} finally{
|
|
499
|
-
if (_didIteratorError1) {
|
|
500
|
-
throw _iteratorError1;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
} catch (err) {
|
|
506
|
-
_didIteratorError2 = true;
|
|
507
|
-
_iteratorError2 = err;
|
|
508
|
-
} finally{
|
|
509
|
-
try {
|
|
510
|
-
if (!_iteratorNormalCompletion2 && _iterator1.return != null) {
|
|
511
|
-
_iterator1.return();
|
|
512
|
-
}
|
|
513
|
-
} finally{
|
|
514
|
-
if (_didIteratorError2) {
|
|
515
|
-
throw _iteratorError2;
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
if (!(presetRows.length > 0)) return [
|
|
520
|
-
3,
|
|
521
|
-
20
|
|
522
|
-
];
|
|
523
|
-
return [
|
|
524
|
-
4,
|
|
525
|
-
conn.runBatch('INSERT INTO preset_files ("path", preset) VALUES (?, ?)', presetRows)
|
|
526
|
-
];
|
|
527
|
-
case 19:
|
|
528
|
-
_state.sent();
|
|
529
|
-
_state.label = 20;
|
|
530
|
-
case 20:
|
|
531
|
-
removedPaths = _to_consumable_array(vanished).concat(_to_consumable_array(reparsedExisting));
|
|
532
|
-
_iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = undefined;
|
|
533
|
-
if (!(removedPaths.length > 0)) return [
|
|
534
|
-
3,
|
|
535
|
-
28
|
|
536
|
-
];
|
|
537
|
-
_state.label = 21;
|
|
538
|
-
case 21:
|
|
539
|
-
_state.trys.push([
|
|
540
|
-
21,
|
|
541
|
-
26,
|
|
542
|
-
27,
|
|
543
|
-
28
|
|
544
|
-
]);
|
|
545
|
-
_iterator3 = features[Symbol.iterator]();
|
|
546
|
-
_state.label = 22;
|
|
547
|
-
case 22:
|
|
548
|
-
if (!!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done)) return [
|
|
549
|
-
3,
|
|
550
|
-
25
|
|
551
|
-
];
|
|
552
|
-
feature = _step3.value;
|
|
553
|
-
return [
|
|
554
|
-
4,
|
|
555
|
-
(_feature_remove = feature.remove) === null || _feature_remove === void 0 ? void 0 : _feature_remove.call(feature, conn, removedPaths, delta)
|
|
556
|
-
];
|
|
557
|
-
case 23:
|
|
558
|
-
_state.sent();
|
|
559
|
-
_state.label = 24;
|
|
560
|
-
case 24:
|
|
561
|
-
_iteratorNormalCompletion3 = true;
|
|
562
|
-
return [
|
|
563
|
-
3,
|
|
564
|
-
22
|
|
565
|
-
];
|
|
566
|
-
case 25:
|
|
567
|
-
return [
|
|
568
|
-
3,
|
|
569
|
-
28
|
|
570
|
-
];
|
|
571
|
-
case 26:
|
|
572
|
-
err = _state.sent();
|
|
573
|
-
_didIteratorError3 = true;
|
|
574
|
-
_iteratorError3 = err;
|
|
575
|
-
return [
|
|
576
|
-
3,
|
|
577
|
-
28
|
|
578
|
-
];
|
|
579
|
-
case 27:
|
|
580
|
-
try {
|
|
581
|
-
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
582
|
-
_iterator3.return();
|
|
583
|
-
}
|
|
584
|
-
} finally{
|
|
585
|
-
if (_didIteratorError3) {
|
|
586
|
-
throw _iteratorError3;
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
return [
|
|
590
|
-
7
|
|
591
|
-
];
|
|
592
|
-
case 28:
|
|
593
|
-
_iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = undefined;
|
|
594
|
-
_state.label = 29;
|
|
595
|
-
case 29:
|
|
596
|
-
_state.trys.push([
|
|
597
|
-
29,
|
|
598
|
-
34,
|
|
599
|
-
35,
|
|
600
|
-
36
|
|
601
|
-
]);
|
|
602
|
-
_loop = function() {
|
|
603
|
-
var feature, _feature_store, docsForFeature;
|
|
604
|
-
return _ts_generator(this, function(_state) {
|
|
605
|
-
switch(_state.label){
|
|
606
|
-
case 0:
|
|
607
|
-
feature = _step4.value;
|
|
608
|
-
docsForFeature = parsedDocs.map(function(doc) {
|
|
609
|
-
return {
|
|
610
|
-
path: doc.relPath,
|
|
611
|
-
extracted: doc.extracted[feature.name]
|
|
612
|
-
};
|
|
613
|
-
});
|
|
614
|
-
return [
|
|
615
|
-
4,
|
|
616
|
-
(_feature_store = feature.store) === null || _feature_store === void 0 ? void 0 : _feature_store.call(feature, conn, docsForFeature, delta)
|
|
617
|
-
];
|
|
618
|
-
case 1:
|
|
619
|
-
_state.sent();
|
|
620
|
-
return [
|
|
621
|
-
2
|
|
622
|
-
];
|
|
623
|
-
}
|
|
624
|
-
});
|
|
625
|
-
};
|
|
626
|
-
_iterator4 = features[Symbol.iterator]();
|
|
627
|
-
_state.label = 30;
|
|
628
|
-
case 30:
|
|
629
|
-
if (!!(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done)) return [
|
|
630
|
-
3,
|
|
631
|
-
33
|
|
632
|
-
];
|
|
633
|
-
return [
|
|
634
|
-
5,
|
|
635
|
-
_ts_values(_loop())
|
|
636
|
-
];
|
|
637
|
-
case 31:
|
|
638
|
-
_state.sent();
|
|
639
|
-
_state.label = 32;
|
|
640
|
-
case 32:
|
|
641
|
-
_iteratorNormalCompletion4 = true;
|
|
642
|
-
return [
|
|
643
|
-
3,
|
|
644
|
-
30
|
|
645
|
-
];
|
|
646
|
-
case 33:
|
|
647
|
-
return [
|
|
648
|
-
3,
|
|
649
|
-
36
|
|
650
|
-
];
|
|
651
|
-
case 34:
|
|
652
|
-
err = _state.sent();
|
|
653
|
-
_didIteratorError4 = true;
|
|
654
|
-
_iteratorError4 = err;
|
|
655
|
-
return [
|
|
656
|
-
3,
|
|
657
|
-
36
|
|
658
|
-
];
|
|
659
|
-
case 35:
|
|
660
|
-
try {
|
|
661
|
-
if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
|
|
662
|
-
_iterator4.return();
|
|
663
|
-
}
|
|
664
|
-
} finally{
|
|
665
|
-
if (_didIteratorError4) {
|
|
666
|
-
throw _iteratorError4;
|
|
667
|
-
}
|
|
668
|
-
}
|
|
669
|
-
return [
|
|
670
|
-
7
|
|
671
|
-
];
|
|
672
|
-
case 36:
|
|
673
|
-
_iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = undefined;
|
|
674
|
-
_state.label = 37;
|
|
675
|
-
case 37:
|
|
676
|
-
_state.trys.push([
|
|
677
|
-
37,
|
|
678
|
-
42,
|
|
679
|
-
43,
|
|
680
|
-
44
|
|
681
|
-
]);
|
|
682
|
-
_iterator5 = features[Symbol.iterator]();
|
|
683
|
-
_state.label = 38;
|
|
684
|
-
case 38:
|
|
685
|
-
if (!!(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done)) return [
|
|
686
|
-
3,
|
|
687
|
-
41
|
|
688
|
-
];
|
|
689
|
-
feature1 = _step5.value;
|
|
690
|
-
return [
|
|
691
|
-
4,
|
|
692
|
-
(_feature_afterReconcile = feature1.afterReconcile) === null || _feature_afterReconcile === void 0 ? void 0 : _feature_afterReconcile.call(feature1, conn, delta)
|
|
693
|
-
];
|
|
694
|
-
case 39:
|
|
695
|
-
_state.sent();
|
|
696
|
-
_state.label = 40;
|
|
697
|
-
case 40:
|
|
698
|
-
_iteratorNormalCompletion5 = true;
|
|
699
|
-
return [
|
|
700
|
-
3,
|
|
701
|
-
38
|
|
702
|
-
];
|
|
703
|
-
case 41:
|
|
704
|
-
return [
|
|
705
|
-
3,
|
|
706
|
-
44
|
|
707
|
-
];
|
|
708
|
-
case 42:
|
|
709
|
-
err = _state.sent();
|
|
710
|
-
_didIteratorError5 = true;
|
|
711
|
-
_iteratorError5 = err;
|
|
712
|
-
return [
|
|
713
|
-
3,
|
|
714
|
-
44
|
|
715
|
-
];
|
|
716
|
-
case 43:
|
|
717
|
-
try {
|
|
718
|
-
if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
|
|
719
|
-
_iterator5.return();
|
|
720
|
-
}
|
|
721
|
-
} finally{
|
|
722
|
-
if (_didIteratorError5) {
|
|
723
|
-
throw _iteratorError5;
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
return [
|
|
727
|
-
7
|
|
728
|
-
];
|
|
729
|
-
case 44:
|
|
730
|
-
return [
|
|
731
|
-
2
|
|
732
|
-
];
|
|
733
|
-
}
|
|
734
|
-
});
|
|
735
|
-
})();
|
|
736
|
-
})
|
|
737
|
-
];
|
|
738
|
-
case 5:
|
|
739
185
|
_state.sent();
|
|
186
|
+
_state.label = 4;
|
|
187
|
+
case 4:
|
|
740
188
|
return [
|
|
741
|
-
2
|
|
742
|
-
{
|
|
743
|
-
parsed: parsedDocs.length,
|
|
744
|
-
warnings: warnings
|
|
745
|
-
}
|
|
189
|
+
2
|
|
746
190
|
];
|
|
747
191
|
}
|
|
748
192
|
});
|
|
749
193
|
})();
|
|
750
194
|
}
|
|
195
|
+
var duckdbDialect = {
|
|
196
|
+
beginMode: function beginMode() {
|
|
197
|
+
return 'BEGIN';
|
|
198
|
+
},
|
|
199
|
+
checkColumnLimit: function checkColumnLimit(count) {
|
|
200
|
+
if (count > MAX_FRONTMATTER_COLUMNS) {
|
|
201
|
+
throw new _errorsts.SenseError('COLUMN_LIMIT', "frontmatter would need ".concat(count, " columns, crossing this store's sanity limit (").concat(MAX_FRONTMATTER_COLUMNS, "). Narrow the presets' include globs so fewer/other files are indexed, or fix whatever is generating unbounded frontmatter keys."));
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
// DuckDB's ALTER TABLE ADD COLUMN requires a type; VARIANT is the only one that can hold
|
|
205
|
+
// the mixed bigint/number/string/null shapes mapValue() produces for one key across files.
|
|
206
|
+
columnTypeSuffix: function columnTypeSuffix() {
|
|
207
|
+
return ' VARIANT';
|
|
208
|
+
},
|
|
209
|
+
reconcileContent: reconcileContent
|
|
210
|
+
};
|
|
751
211
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|