sensemaking 0.19.2 → 0.21.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.
Files changed (221) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/chunk/extract.d.cts +1 -0
  3. package/dist/cjs/chunk/extract.d.ts +1 -0
  4. package/dist/cjs/chunk/extract.js +23 -5
  5. package/dist/cjs/chunk/extract.js.map +1 -1
  6. package/dist/cjs/chunk/index.d.cts +1 -1
  7. package/dist/cjs/chunk/index.d.ts +1 -1
  8. package/dist/cjs/chunk/index.js +3 -0
  9. package/dist/cjs/chunk/index.js.map +1 -1
  10. package/dist/cjs/config/access.d.cts +0 -1
  11. package/dist/cjs/config/access.d.ts +0 -1
  12. package/dist/cjs/config/access.js +10 -17
  13. package/dist/cjs/config/access.js.map +1 -1
  14. package/dist/cjs/config/index.d.cts +1 -1
  15. package/dist/cjs/config/index.d.ts +1 -1
  16. package/dist/cjs/config/index.js +0 -3
  17. package/dist/cjs/config/index.js.map +1 -1
  18. package/dist/cjs/config/types.d.cts +0 -3
  19. package/dist/cjs/config/types.d.ts +0 -3
  20. package/dist/cjs/config/types.js.map +1 -1
  21. package/dist/cjs/config/validate.js +6 -24
  22. package/dist/cjs/config/validate.js.map +1 -1
  23. package/dist/cjs/errors.d.cts +1 -1
  24. package/dist/cjs/errors.d.ts +1 -1
  25. package/dist/cjs/errors.js.map +1 -1
  26. package/dist/cjs/features/links.js +4 -5
  27. package/dist/cjs/features/links.js.map +1 -1
  28. package/dist/cjs/features/sections.js +4 -1
  29. package/dist/cjs/features/sections.js.map +1 -1
  30. package/dist/cjs/scan/pool.d.cts +15 -0
  31. package/dist/cjs/scan/pool.d.ts +15 -0
  32. package/dist/cjs/scan/pool.js +263 -0
  33. package/dist/cjs/scan/pool.js.map +1 -0
  34. package/dist/cjs/scan/reparse.d.cts +2 -0
  35. package/dist/cjs/scan/reparse.d.ts +2 -0
  36. package/dist/cjs/scan/reparse.js +15 -76
  37. package/dist/cjs/scan/reparse.js.map +1 -1
  38. package/dist/cjs/store/builder.d.cts +19 -0
  39. package/dist/cjs/store/builder.d.ts +19 -0
  40. package/dist/cjs/store/builder.js +618 -0
  41. package/dist/cjs/store/builder.js.map +1 -0
  42. package/dist/cjs/store/duckdb/lexical.d.cts +1 -0
  43. package/dist/cjs/store/duckdb/lexical.d.ts +1 -0
  44. package/dist/cjs/store/duckdb/lexical.js +21 -5
  45. package/dist/cjs/store/duckdb/lexical.js.map +1 -1
  46. package/dist/cjs/store/duckdb/open.d.cts +9 -8
  47. package/dist/cjs/store/duckdb/open.d.ts +9 -8
  48. package/dist/cjs/store/duckdb/open.js +77 -123
  49. package/dist/cjs/store/duckdb/open.js.map +1 -1
  50. package/dist/cjs/store/duckdb/reconcile.js +34 -5
  51. package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
  52. package/dist/cjs/store/duckdb/store.d.cts +1 -2
  53. package/dist/cjs/store/duckdb/store.d.ts +1 -2
  54. package/dist/cjs/store/duckdb/store.js +1 -26
  55. package/dist/cjs/store/duckdb/store.js.map +1 -1
  56. package/dist/cjs/store/embed-scope.d.cts +2 -0
  57. package/dist/cjs/store/embed-scope.d.ts +2 -0
  58. package/dist/cjs/store/embed-scope.js +85 -0
  59. package/dist/cjs/store/embed-scope.js.map +1 -0
  60. package/dist/cjs/store/feature-scope.d.cts +8 -0
  61. package/dist/cjs/store/feature-scope.d.ts +8 -0
  62. package/dist/cjs/store/feature-scope.js +107 -0
  63. package/dist/cjs/store/feature-scope.js.map +1 -0
  64. package/dist/cjs/store/index.d.cts +8 -3
  65. package/dist/cjs/store/index.d.ts +8 -3
  66. package/dist/cjs/store/index.js +36 -7
  67. package/dist/cjs/store/index.js.map +1 -1
  68. package/dist/cjs/store/open.d.cts +15 -0
  69. package/dist/cjs/store/open.d.ts +15 -0
  70. package/dist/cjs/store/open.js +608 -0
  71. package/dist/cjs/store/open.js.map +1 -0
  72. package/dist/cjs/store/preset-scope.d.cts +3 -0
  73. package/dist/cjs/store/preset-scope.d.ts +3 -0
  74. package/dist/cjs/store/preset-scope.js +293 -0
  75. package/dist/cjs/store/preset-scope.js.map +1 -0
  76. package/dist/cjs/store/reconcile.d.cts +2 -1
  77. package/dist/cjs/store/reconcile.d.ts +2 -1
  78. package/dist/cjs/store/reconcile.js +175 -179
  79. package/dist/cjs/store/reconcile.js.map +1 -1
  80. package/dist/cjs/store/{sqlite/signature.d.cts → signature.d.cts} +0 -3
  81. package/dist/cjs/store/{sqlite/signature.d.ts → signature.d.ts} +0 -3
  82. package/dist/cjs/store/signature.js +164 -0
  83. package/dist/cjs/store/signature.js.map +1 -0
  84. package/dist/cjs/store/sqlite/lexical.d.cts +1 -1
  85. package/dist/cjs/store/sqlite/lexical.d.ts +1 -1
  86. package/dist/cjs/store/sqlite/lexical.js +2 -2
  87. package/dist/cjs/store/sqlite/lexical.js.map +1 -1
  88. package/dist/cjs/store/sqlite/open.d.cts +8 -9
  89. package/dist/cjs/store/sqlite/open.d.ts +8 -9
  90. package/dist/cjs/store/sqlite/open.js +82 -311
  91. package/dist/cjs/store/sqlite/open.js.map +1 -1
  92. package/dist/cjs/store/sqlite/reconcile.d.cts +1 -1
  93. package/dist/cjs/store/sqlite/reconcile.d.ts +1 -1
  94. package/dist/cjs/store/sqlite/reconcile.js +78 -16
  95. package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
  96. package/dist/cjs/store/sqlite/sql-functions.d.cts +1 -1
  97. package/dist/cjs/store/sqlite/sql-functions.d.ts +1 -1
  98. package/dist/cjs/store/sqlite/sql-functions.js +3 -3
  99. package/dist/cjs/store/sqlite/sql-functions.js.map +1 -1
  100. package/dist/cjs/store/sqlite/store.d.cts +1 -2
  101. package/dist/cjs/store/sqlite/store.d.ts +1 -2
  102. package/dist/cjs/store/sqlite/store.js +2 -15
  103. package/dist/cjs/store/sqlite/store.js.map +1 -1
  104. package/dist/cjs/store/turso/open.d.cts +6 -11
  105. package/dist/cjs/store/turso/open.d.ts +6 -11
  106. package/dist/cjs/store/turso/open.js +85 -171
  107. package/dist/cjs/store/turso/open.js.map +1 -1
  108. package/dist/cjs/store/turso/reconcile.d.cts +2 -0
  109. package/dist/cjs/store/turso/reconcile.d.ts +2 -0
  110. package/dist/cjs/store/turso/reconcile.js +88 -8
  111. package/dist/cjs/store/turso/reconcile.js.map +1 -1
  112. package/dist/cjs/store/turso/store.d.cts +1 -2
  113. package/dist/cjs/store/turso/store.d.ts +1 -2
  114. package/dist/cjs/store/turso/store.js +1 -13
  115. package/dist/cjs/store/turso/store.js.map +1 -1
  116. package/dist/cjs/store/types.d.cts +16 -6
  117. package/dist/cjs/store/types.d.ts +16 -6
  118. package/dist/cjs/store/types.js.map +1 -1
  119. package/dist/cjs/text/strip.js +3 -6
  120. package/dist/cjs/text/strip.js.map +1 -1
  121. package/dist/cjs/watch.js +28 -16
  122. package/dist/cjs/watch.js.map +1 -1
  123. package/dist/esm/chunk/extract.d.ts +1 -0
  124. package/dist/esm/chunk/extract.js +10 -2
  125. package/dist/esm/chunk/extract.js.map +1 -1
  126. package/dist/esm/chunk/index.d.ts +1 -1
  127. package/dist/esm/chunk/index.js +1 -1
  128. package/dist/esm/chunk/index.js.map +1 -1
  129. package/dist/esm/config/access.d.ts +0 -1
  130. package/dist/esm/config/access.js +12 -17
  131. package/dist/esm/config/access.js.map +1 -1
  132. package/dist/esm/config/index.d.ts +1 -1
  133. package/dist/esm/config/index.js +1 -1
  134. package/dist/esm/config/index.js.map +1 -1
  135. package/dist/esm/config/types.d.ts +0 -3
  136. package/dist/esm/config/types.js.map +1 -1
  137. package/dist/esm/config/validate.js +6 -22
  138. package/dist/esm/config/validate.js.map +1 -1
  139. package/dist/esm/errors.d.ts +1 -1
  140. package/dist/esm/errors.js.map +1 -1
  141. package/dist/esm/features/links.js +3 -4
  142. package/dist/esm/features/links.js.map +1 -1
  143. package/dist/esm/features/sections.js +4 -1
  144. package/dist/esm/features/sections.js.map +1 -1
  145. package/dist/esm/scan/pool.d.ts +15 -0
  146. package/dist/esm/scan/pool.js +77 -0
  147. package/dist/esm/scan/pool.js.map +1 -0
  148. package/dist/esm/scan/reparse.d.ts +2 -0
  149. package/dist/esm/scan/reparse.js +11 -58
  150. package/dist/esm/scan/reparse.js.map +1 -1
  151. package/dist/esm/store/builder.d.ts +19 -0
  152. package/dist/esm/store/builder.js +163 -0
  153. package/dist/esm/store/builder.js.map +1 -0
  154. package/dist/esm/store/duckdb/lexical.d.ts +1 -0
  155. package/dist/esm/store/duckdb/lexical.js +22 -9
  156. package/dist/esm/store/duckdb/lexical.js.map +1 -1
  157. package/dist/esm/store/duckdb/open.d.ts +9 -8
  158. package/dist/esm/store/duckdb/open.js +36 -58
  159. package/dist/esm/store/duckdb/open.js.map +1 -1
  160. package/dist/esm/store/duckdb/reconcile.js +15 -3
  161. package/dist/esm/store/duckdb/reconcile.js.map +1 -1
  162. package/dist/esm/store/duckdb/store.d.ts +1 -2
  163. package/dist/esm/store/duckdb/store.js +2 -11
  164. package/dist/esm/store/duckdb/store.js.map +1 -1
  165. package/dist/esm/store/embed-scope.d.ts +2 -0
  166. package/dist/esm/store/embed-scope.js +28 -0
  167. package/dist/esm/store/embed-scope.js.map +1 -0
  168. package/dist/esm/store/feature-scope.d.ts +8 -0
  169. package/dist/esm/store/feature-scope.js +49 -0
  170. package/dist/esm/store/feature-scope.js.map +1 -0
  171. package/dist/esm/store/index.d.ts +8 -3
  172. package/dist/esm/store/index.js +22 -7
  173. package/dist/esm/store/index.js.map +1 -1
  174. package/dist/esm/store/open.d.ts +15 -0
  175. package/dist/esm/store/open.js +187 -0
  176. package/dist/esm/store/open.js.map +1 -0
  177. package/dist/esm/store/preset-scope.d.ts +3 -0
  178. package/dist/esm/store/preset-scope.js +77 -0
  179. package/dist/esm/store/preset-scope.js.map +1 -0
  180. package/dist/esm/store/reconcile.d.ts +2 -1
  181. package/dist/esm/store/reconcile.js +33 -6
  182. package/dist/esm/store/reconcile.js.map +1 -1
  183. package/dist/esm/store/{sqlite/signature.d.ts → signature.d.ts} +0 -3
  184. package/dist/esm/store/signature.js +37 -0
  185. package/dist/esm/store/signature.js.map +1 -0
  186. package/dist/esm/store/sqlite/lexical.d.ts +1 -1
  187. package/dist/esm/store/sqlite/lexical.js +4 -4
  188. package/dist/esm/store/sqlite/lexical.js.map +1 -1
  189. package/dist/esm/store/sqlite/open.d.ts +8 -9
  190. package/dist/esm/store/sqlite/open.js +41 -147
  191. package/dist/esm/store/sqlite/open.js.map +1 -1
  192. package/dist/esm/store/sqlite/reconcile.d.ts +1 -1
  193. package/dist/esm/store/sqlite/reconcile.js +14 -14
  194. package/dist/esm/store/sqlite/reconcile.js.map +1 -1
  195. package/dist/esm/store/sqlite/sql-functions.d.ts +1 -1
  196. package/dist/esm/store/sqlite/sql-functions.js +3 -3
  197. package/dist/esm/store/sqlite/sql-functions.js.map +1 -1
  198. package/dist/esm/store/sqlite/store.d.ts +1 -2
  199. package/dist/esm/store/sqlite/store.js +3 -9
  200. package/dist/esm/store/sqlite/store.js.map +1 -1
  201. package/dist/esm/store/turso/open.d.ts +6 -11
  202. package/dist/esm/store/turso/open.js +34 -78
  203. package/dist/esm/store/turso/open.js.map +1 -1
  204. package/dist/esm/store/turso/reconcile.d.ts +2 -0
  205. package/dist/esm/store/turso/reconcile.js +18 -3
  206. package/dist/esm/store/turso/reconcile.js.map +1 -1
  207. package/dist/esm/store/turso/store.d.ts +1 -2
  208. package/dist/esm/store/turso/store.js +2 -7
  209. package/dist/esm/store/turso/store.js.map +1 -1
  210. package/dist/esm/store/types.d.ts +16 -6
  211. package/dist/esm/store/types.js.map +1 -1
  212. package/dist/esm/text/strip.js +3 -4
  213. package/dist/esm/text/strip.js.map +1 -1
  214. package/dist/esm/watch.js +5 -3
  215. package/dist/esm/watch.js.map +1 -1
  216. package/package.json +4 -3
  217. package/schema.json +0 -11
  218. package/dist/cjs/store/sqlite/signature.js +0 -380
  219. package/dist/cjs/store/sqlite/signature.js.map +0 -1
  220. package/dist/esm/store/sqlite/signature.js +0 -58
  221. package/dist/esm/store/sqlite/signature.js.map +0 -1
@@ -200,7 +200,7 @@ var CORE_FRONTMATTER_COLUMNS = new Set([
200
200
  '_size',
201
201
  '_parse_error'
202
202
  ]);
203
- function reconcile(conn, cfg, baseDir, dialect) {
203
+ function reconcile(conn, cfg, baseDir, dialect, pool, forcedPaths) {
204
204
  return _async_to_generator(function() {
205
205
  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, touched, txStart, durationMs;
206
206
  return _ts_generator(this, function(_state) {
@@ -228,14 +228,20 @@ function reconcile(conn, cfg, baseDir, dialect) {
228
228
  r
229
229
  ];
230
230
  }));
231
+ // A path whose coverage moved between presets (forcedPaths) but is no longer covered at all is
232
+ // already caught below by !currentSet.has, since it can only be forced by having existed under
233
+ // an old preset's match, which means it was reconciled into `existing` already.
231
234
  vanished = existingRows.filter(function(r) {
232
235
  return !currentSet.has(r.path);
233
236
  }).map(function(r) {
234
237
  return r.path;
235
238
  });
239
+ // forcedPaths treats an unchanged file as touched because its preset coverage moved, not its
240
+ // stamp -- reconcile still owns add/update/remove and every cross-feature cascade for it.
236
241
  toReparse = files.filter(function(f) {
242
+ var _ref;
237
243
  var row = existing.get(f.relPath);
238
- return !row || row._mtime !== f.mtimeMs || row._size !== f.size;
244
+ return !row || row._mtime !== f.mtimeMs || row._size !== f.size || ((_ref = forcedPaths === null || forcedPaths === void 0 ? void 0 : forcedPaths.has(f.relPath)) !== null && _ref !== void 0 ? _ref : false);
239
245
  });
240
246
  if (vanished.length === 0 && toReparse.length === 0) return [
241
247
  2,
@@ -256,7 +262,9 @@ function reconcile(conn, cfg, baseDir, dialect) {
256
262
  report = (0, _progressts.progress)('reparsing files', toReparse.length);
257
263
  return [
258
264
  4,
259
- (0, _reparsets.reparseFiles)(toReparse, features, cfg, seenColumns, report.tick)
265
+ (0, _reparsets.reparseFiles)(toReparse, features, cfg, seenColumns, report.tick, {
266
+ pool: pool
267
+ })
260
268
  ];
261
269
  case 4:
262
270
  _ref = _state.sent(), parsedDocs = _ref.docs, warnings = _ref.warnings, newColumns = _ref.newColumns;
@@ -326,7 +334,7 @@ function reconcile(conn, cfg, baseDir, dialect) {
326
334
  4,
327
335
  (0, _transactionts.withTransaction)(conn, function() {
328
336
  return _async_to_generator(function() {
329
- var _feature_remove, _feature_afterReconcile, present, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, col, err, rows, presetRows, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator1, _step1, doc, _iterator2, _step2, presetName, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, feature, err, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _loop, _iterator4, _step4, err, _iteratorNormalCompletion5, _didIteratorError5, _iteratorError5, _iterator5, _step5, feature1, err;
337
+ var _feature_remove, _feature_afterReconcile, present, missingColumns, contentTouched, currentPathsStmt, currentPaths, _, staleAdded, rows, presetRows, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator, _step, doc, _iterator1, _step1, presetName, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, feature, err, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _loop, _iterator3, _step3, err, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, feature1, err;
330
338
  return _ts_generator(this, function(_state) {
331
339
  switch(_state.label){
332
340
  case 0:
@@ -336,70 +344,58 @@ function reconcile(conn, cfg, baseDir, dialect) {
336
344
  ];
337
345
  case 1:
338
346
  present = _state.sent();
339
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
340
- _state.label = 2;
347
+ missingColumns = newColumns.filter(function(col) {
348
+ return !present.has(col);
349
+ });
350
+ if (!(missingColumns.length > 0)) return [
351
+ 3,
352
+ 3
353
+ ];
354
+ return [
355
+ 4,
356
+ dialect.addColumns(conn, missingColumns)
357
+ ];
341
358
  case 2:
342
- _state.trys.push([
343
- 2,
344
- 7,
345
- 8,
346
- 9
347
- ]);
348
- _iterator = newColumns[Symbol.iterator]();
359
+ _state.sent();
349
360
  _state.label = 3;
350
361
  case 3:
351
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
362
+ // Revalidated once the lock is held, before this process's own frontmatter upsert below:
363
+ // `added` came from a path read taken before this transaction's lock, so a path still
364
+ // called "added" here may already have a content row from a concurrent reconcile that
365
+ // committed while this one waited. One SELECT, not a DELETE per added file -- with no
366
+ // contention it returns the same set `existing` already ruled out, so nothing extra clears.
367
+ contentTouched = touched;
368
+ if (!(added.length > 0)) return [
352
369
  3,
353
370
  6
354
371
  ];
355
- col = _step.value;
356
- if (!!present.has(col)) return [
357
- 3,
358
- 5
359
- ];
360
372
  return [
361
373
  4,
362
- conn.exec("ALTER TABLE frontmatter ADD COLUMN ".concat((0, _sharedts.quoteIdent)(col)).concat(dialect.columnTypeSuffix()))
374
+ conn.prepare('SELECT "path" FROM frontmatter')
363
375
  ];
364
376
  case 4:
365
- _state.sent();
366
- _state.label = 5;
367
- case 5:
368
- _iteratorNormalCompletion = true;
377
+ currentPathsStmt = _state.sent();
378
+ _ = Set.bind;
369
379
  return [
370
- 3,
371
- 3
380
+ 4,
381
+ currentPathsStmt.all()
372
382
  ];
383
+ 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;
373
395
  case 6:
374
- return [
375
- 3,
376
- 9
377
- ];
378
- case 7:
379
- err = _state.sent();
380
- _didIteratorError = true;
381
- _iteratorError = err;
382
- return [
383
- 3,
384
- 9
385
- ];
386
- case 8:
387
- try {
388
- if (!_iteratorNormalCompletion && _iterator.return != null) {
389
- _iterator.return();
390
- }
391
- } finally{
392
- if (_didIteratorError) {
393
- throw _iteratorError;
394
- }
395
- }
396
- return [
397
- 7
398
- ];
399
- case 9:
400
396
  if (!(parsedDocs.length > 0)) return [
401
397
  3,
402
- 11
398
+ 8
403
399
  ];
404
400
  rows = parsedDocs.map(function(doc) {
405
401
  return writableColumns.map(function(col) {
@@ -417,21 +413,21 @@ function reconcile(conn, cfg, baseDir, dialect) {
417
413
  4,
418
414
  conn.runBatch(insertSql, rows)
419
415
  ];
420
- case 10:
416
+ case 7:
421
417
  _state.sent();
422
- _state.label = 11;
423
- case 11:
418
+ _state.label = 8;
419
+ case 8:
424
420
  // After the upsert, so every doc already has the frontmatter row sqlite's content rowid
425
421
  // couples to. ON CONFLICT DO UPDATE preserves that rowid, so a reparse keeps its identity.
426
422
  return [
427
423
  4,
428
- dialect.reconcileContent(conn, touched, parsedDocs, delta, cfg)
424
+ dialect.reconcileContent(conn, contentTouched, parsedDocs, delta, cfg)
429
425
  ];
430
- case 12:
426
+ case 9:
431
427
  _state.sent();
432
428
  if (!(touched.length > 0)) return [
433
429
  3,
434
- 14
430
+ 11
435
431
  ];
436
432
  return [
437
433
  4,
@@ -441,67 +437,67 @@ function reconcile(conn, cfg, baseDir, dialect) {
441
437
  ];
442
438
  }))
443
439
  ];
444
- case 13:
440
+ case 10:
445
441
  _state.sent();
446
- _state.label = 14;
447
- case 14:
442
+ _state.label = 11;
443
+ case 11:
448
444
  presetRows = [];
449
- _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined, _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
445
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined, _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
450
446
  try {
451
- for(_iterator1 = parsedDocs[Symbol.iterator](); !(_iteratorNormalCompletion2 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion2 = true){
452
- doc = _step1.value;
447
+ for(_iterator = parsedDocs[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step = _iterator.next()).done); _iteratorNormalCompletion1 = true){
448
+ doc = _step.value;
453
449
  try {
454
- for(_iterator2 = doc.presets[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion1 = true){
455
- presetName = _step2.value;
450
+ for(_iterator1 = doc.presets[Symbol.iterator](); !(_iteratorNormalCompletion = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion = true){
451
+ presetName = _step1.value;
456
452
  presetRows.push([
457
453
  doc.relPath,
458
454
  presetName
459
455
  ]);
460
456
  }
461
457
  } catch (err) {
462
- _didIteratorError1 = true;
463
- _iteratorError1 = err;
458
+ _didIteratorError = true;
459
+ _iteratorError = err;
464
460
  } finally{
465
461
  try {
466
- if (!_iteratorNormalCompletion1 && _iterator2.return != null) {
467
- _iterator2.return();
462
+ if (!_iteratorNormalCompletion && _iterator1.return != null) {
463
+ _iterator1.return();
468
464
  }
469
465
  } finally{
470
- if (_didIteratorError1) {
471
- throw _iteratorError1;
466
+ if (_didIteratorError) {
467
+ throw _iteratorError;
472
468
  }
473
469
  }
474
470
  }
475
471
  }
476
472
  } catch (err) {
477
- _didIteratorError2 = true;
478
- _iteratorError2 = err;
473
+ _didIteratorError1 = true;
474
+ _iteratorError1 = err;
479
475
  } finally{
480
476
  try {
481
- if (!_iteratorNormalCompletion2 && _iterator1.return != null) {
482
- _iterator1.return();
477
+ if (!_iteratorNormalCompletion1 && _iterator.return != null) {
478
+ _iterator.return();
483
479
  }
484
480
  } finally{
485
- if (_didIteratorError2) {
486
- throw _iteratorError2;
481
+ if (_didIteratorError1) {
482
+ throw _iteratorError1;
487
483
  }
488
484
  }
489
485
  }
490
486
  if (!(presetRows.length > 0)) return [
491
487
  3,
492
- 16
488
+ 13
493
489
  ];
494
490
  return [
495
491
  4,
496
- conn.runBatch('INSERT INTO preset_files ("path", preset) VALUES (?, ?)', presetRows)
492
+ conn.runBatch('INSERT INTO preset_files ("path", preset) VALUES (?, ?) ON CONFLICT("path", preset) DO NOTHING', presetRows)
497
493
  ];
498
- case 15:
494
+ case 12:
499
495
  _state.sent();
500
- _state.label = 16;
501
- case 16:
496
+ _state.label = 13;
497
+ case 13:
502
498
  if (!(vanished.length > 0)) return [
503
499
  3,
504
- 18
500
+ 15
505
501
  ];
506
502
  return [
507
503
  4,
@@ -511,86 +507,86 @@ function reconcile(conn, cfg, baseDir, dialect) {
511
507
  ];
512
508
  }))
513
509
  ];
514
- case 17:
510
+ case 14:
515
511
  _state.sent();
516
- _state.label = 18;
517
- case 18:
518
- _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = undefined;
512
+ _state.label = 15;
513
+ case 15:
514
+ _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
519
515
  if (!(touched.length > 0)) return [
520
516
  3,
521
- 26
517
+ 23
522
518
  ];
523
- _state.label = 19;
524
- case 19:
519
+ _state.label = 16;
520
+ case 16:
525
521
  _state.trys.push([
526
- 19,
527
- 24,
528
- 25,
529
- 26
522
+ 16,
523
+ 21,
524
+ 22,
525
+ 23
530
526
  ]);
531
- _iterator3 = features[Symbol.iterator]();
532
- _state.label = 20;
533
- case 20:
534
- if (!!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done)) return [
527
+ _iterator2 = features[Symbol.iterator]();
528
+ _state.label = 17;
529
+ case 17:
530
+ if (!!(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done)) return [
535
531
  3,
536
- 23
532
+ 20
537
533
  ];
538
- feature = _step3.value;
534
+ feature = _step2.value;
539
535
  return [
540
536
  4,
541
537
  (_feature_remove = feature.remove) === null || _feature_remove === void 0 ? void 0 : _feature_remove.call(feature, conn, touched, delta)
542
538
  ];
543
- case 21:
539
+ case 18:
544
540
  _state.sent();
545
- _state.label = 22;
546
- case 22:
547
- _iteratorNormalCompletion3 = true;
541
+ _state.label = 19;
542
+ case 19:
543
+ _iteratorNormalCompletion2 = true;
548
544
  return [
549
545
  3,
550
- 20
546
+ 17
551
547
  ];
552
- case 23:
548
+ case 20:
553
549
  return [
554
550
  3,
555
- 26
551
+ 23
556
552
  ];
557
- case 24:
553
+ case 21:
558
554
  err = _state.sent();
559
- _didIteratorError3 = true;
560
- _iteratorError3 = err;
555
+ _didIteratorError2 = true;
556
+ _iteratorError2 = err;
561
557
  return [
562
558
  3,
563
- 26
559
+ 23
564
560
  ];
565
- case 25:
561
+ case 22:
566
562
  try {
567
- if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
568
- _iterator3.return();
563
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
564
+ _iterator2.return();
569
565
  }
570
566
  } finally{
571
- if (_didIteratorError3) {
572
- throw _iteratorError3;
567
+ if (_didIteratorError2) {
568
+ throw _iteratorError2;
573
569
  }
574
570
  }
575
571
  return [
576
572
  7
577
573
  ];
578
- case 26:
579
- _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = undefined;
580
- _state.label = 27;
581
- case 27:
574
+ case 23:
575
+ _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = undefined;
576
+ _state.label = 24;
577
+ case 24:
582
578
  _state.trys.push([
583
- 27,
584
- 32,
585
- 33,
586
- 34
579
+ 24,
580
+ 29,
581
+ 30,
582
+ 31
587
583
  ]);
588
584
  _loop = function() {
589
585
  var feature, _feature_store, docsForFeature;
590
586
  return _ts_generator(this, function(_state) {
591
587
  switch(_state.label){
592
588
  case 0:
593
- feature = _step4.value;
589
+ feature = _step3.value;
594
590
  docsForFeature = parsedDocs.map(function(doc) {
595
591
  return {
596
592
  path: doc.relPath,
@@ -609,110 +605,110 @@ function reconcile(conn, cfg, baseDir, dialect) {
609
605
  }
610
606
  });
611
607
  };
612
- _iterator4 = features[Symbol.iterator]();
613
- _state.label = 28;
614
- case 28:
615
- if (!!(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done)) return [
608
+ _iterator3 = features[Symbol.iterator]();
609
+ _state.label = 25;
610
+ case 25:
611
+ if (!!(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done)) return [
616
612
  3,
617
- 31
613
+ 28
618
614
  ];
619
615
  return [
620
616
  5,
621
617
  _ts_values(_loop())
622
618
  ];
623
- case 29:
619
+ case 26:
624
620
  _state.sent();
625
- _state.label = 30;
626
- case 30:
627
- _iteratorNormalCompletion4 = true;
621
+ _state.label = 27;
622
+ case 27:
623
+ _iteratorNormalCompletion3 = true;
628
624
  return [
629
625
  3,
630
- 28
626
+ 25
631
627
  ];
632
- case 31:
628
+ case 28:
633
629
  return [
634
630
  3,
635
- 34
631
+ 31
636
632
  ];
637
- case 32:
633
+ case 29:
638
634
  err = _state.sent();
639
- _didIteratorError4 = true;
640
- _iteratorError4 = err;
635
+ _didIteratorError3 = true;
636
+ _iteratorError3 = err;
641
637
  return [
642
638
  3,
643
- 34
639
+ 31
644
640
  ];
645
- case 33:
641
+ case 30:
646
642
  try {
647
- if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
648
- _iterator4.return();
643
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
644
+ _iterator3.return();
649
645
  }
650
646
  } finally{
651
- if (_didIteratorError4) {
652
- throw _iteratorError4;
647
+ if (_didIteratorError3) {
648
+ throw _iteratorError3;
653
649
  }
654
650
  }
655
651
  return [
656
652
  7
657
653
  ];
658
- case 34:
659
- _iteratorNormalCompletion5 = true, _didIteratorError5 = false, _iteratorError5 = undefined;
660
- _state.label = 35;
661
- case 35:
654
+ case 31:
655
+ _iteratorNormalCompletion4 = true, _didIteratorError4 = false, _iteratorError4 = undefined;
656
+ _state.label = 32;
657
+ case 32:
662
658
  _state.trys.push([
663
- 35,
664
- 40,
665
- 41,
666
- 42
659
+ 32,
660
+ 37,
661
+ 38,
662
+ 39
667
663
  ]);
668
- _iterator5 = features[Symbol.iterator]();
669
- _state.label = 36;
670
- case 36:
671
- if (!!(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done)) return [
664
+ _iterator4 = features[Symbol.iterator]();
665
+ _state.label = 33;
666
+ case 33:
667
+ if (!!(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done)) return [
672
668
  3,
673
- 39
669
+ 36
674
670
  ];
675
- feature1 = _step5.value;
671
+ feature1 = _step4.value;
676
672
  return [
677
673
  4,
678
674
  (_feature_afterReconcile = feature1.afterReconcile) === null || _feature_afterReconcile === void 0 ? void 0 : _feature_afterReconcile.call(feature1, conn, delta)
679
675
  ];
680
- case 37:
676
+ case 34:
681
677
  _state.sent();
682
- _state.label = 38;
683
- case 38:
684
- _iteratorNormalCompletion5 = true;
678
+ _state.label = 35;
679
+ case 35:
680
+ _iteratorNormalCompletion4 = true;
685
681
  return [
686
682
  3,
687
- 36
683
+ 33
688
684
  ];
689
- case 39:
685
+ case 36:
690
686
  return [
691
687
  3,
692
- 42
688
+ 39
693
689
  ];
694
- case 40:
690
+ case 37:
695
691
  err = _state.sent();
696
- _didIteratorError5 = true;
697
- _iteratorError5 = err;
692
+ _didIteratorError4 = true;
693
+ _iteratorError4 = err;
698
694
  return [
699
695
  3,
700
- 42
696
+ 39
701
697
  ];
702
- case 41:
698
+ case 38:
703
699
  try {
704
- if (!_iteratorNormalCompletion5 && _iterator5.return != null) {
705
- _iterator5.return();
700
+ if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
701
+ _iterator4.return();
706
702
  }
707
703
  } finally{
708
- if (_didIteratorError5) {
709
- throw _iteratorError5;
704
+ if (_didIteratorError4) {
705
+ throw _iteratorError4;
710
706
  }
711
707
  }
712
708
  return [
713
709
  7
714
710
  ];
715
- case 42:
711
+ case 39:
716
712
  return [
717
713
  2
718
714
  ];