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