datafolder 1.0.8 → 1.0.10

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 (82) hide show
  1. package/README.md +4 -2
  2. package/SSD.md +60 -0
  3. package/index.js +1 -0
  4. package/package.json +1 -1
  5. package/sample.js +4 -4
  6. package/scripts/airbnb.js +1 -0
  7. package/scripts/airbnb2.js +1 -0
  8. package/scripts/convertBinFiles.js +1 -0
  9. package/scripts/express.js +2 -1
  10. package/scripts/fastify.js +3 -2
  11. package/scripts/flights.js +1 -0
  12. package/scripts/flights2.js +1 -0
  13. package/scripts/flights_queries.js +1 -0
  14. package/src/QyAcl.d.ts +3 -3
  15. package/src/QyAcl.js +7 -7
  16. package/src/QyAclSaver_Worker.d.ts +1 -0
  17. package/src/QyAclSaver_Worker.js +1 -0
  18. package/src/QyAclWriter.d.ts +2 -1
  19. package/src/QyAclWriter.js +7 -6
  20. package/src/QyBatch.d.ts +29 -22
  21. package/src/QyBatch.js +85 -72
  22. package/src/QyBinWriter.d.ts +9 -4
  23. package/src/QyBinWriter.js +83 -70
  24. package/src/QyCD.d.ts +19 -19
  25. package/src/QyCD.js +2 -2
  26. package/src/QyCache.d.ts +22 -23
  27. package/src/QyCache.js +47 -36
  28. package/src/QyCompressor_Worker.js +2 -2
  29. package/src/QyDB.d.ts +6 -9
  30. package/src/QyDB.js +1 -1
  31. package/src/QyFile.d.ts +2 -0
  32. package/src/QyFile.js +42 -40
  33. package/src/QyFileContentUtils.d.ts +1 -4
  34. package/src/QyFileLogger.d.ts +4 -0
  35. package/src/QyFileLogger.js +30 -26
  36. package/src/QyIndex.d.ts +2 -2
  37. package/src/QyIndex.js +84 -80
  38. package/src/QyIndexPropTree.d.ts +4 -0
  39. package/src/QyIndexPropTree.js +19 -10
  40. package/src/QyIntersectNode.d.ts +1 -0
  41. package/src/QyIntersectNode.js +1 -0
  42. package/src/QyJsonSaver.d.ts +2 -2
  43. package/src/QyJsonSaver.js +4 -4
  44. package/src/QyKVData.d.ts +18 -1
  45. package/src/QyKVData.js +98 -78
  46. package/src/QyKVDataCleaner_Worker.d.ts +7 -1
  47. package/src/QyKVDataCleaner_Worker.js +69 -55
  48. package/src/QyKVDataLoader.d.ts +10 -2
  49. package/src/QyKVDataLoader.js +27 -21
  50. package/src/QyKVDataSaver_Worker.d.ts +10 -0
  51. package/src/QyKVDataSaver_Worker.js +23 -9
  52. package/src/QyLogFileSaver_Worker.d.ts +1 -0
  53. package/src/QyLogFileSaver_Worker.js +7 -6
  54. package/src/QyLogger.d.ts +20 -10
  55. package/src/QyLogger.js +110 -67
  56. package/src/QyMessageWorker.d.ts +1 -1
  57. package/src/QyMessageWorker.js +5 -5
  58. package/src/QyMessager.d.ts +5 -1
  59. package/src/QyMessager.js +6 -1
  60. package/src/QyMod.js +9 -8
  61. package/src/QyOpRunner.d.ts +5 -1
  62. package/src/QyOpRunner.js +7 -7
  63. package/src/QyQueue.d.ts +5 -1
  64. package/src/QyQueue.js +6 -7
  65. package/src/QySaver.d.ts +3 -0
  66. package/src/QySaver.js +26 -15
  67. package/src/QySnapshotCompactor_Worker.d.ts +7 -0
  68. package/src/QySnapshotCompactor_Worker.js +37 -26
  69. package/src/QySnapshotSaver_Worker.d.ts +8 -1
  70. package/src/QySnapshotSaver_Worker.js +21 -14
  71. package/src/QySnapshots.d.ts +19 -7
  72. package/src/QySnapshots.js +195 -172
  73. package/src/QyTrigger.d.ts +5 -1
  74. package/src/QyTrigger.js +44 -34
  75. package/src/QyUnionNode.d.ts +10 -1
  76. package/src/QyUnionNode.js +34 -36
  77. package/src/QyUtils.d.ts +2 -2
  78. package/src/QyUtils.js +116 -111
  79. package/src/simulate.js +34 -31
  80. package/src/simulate2.js +49 -46
  81. package/src/soc_pokec.js +17 -11
  82. package/static/codemirror.bundle/editor.bundle.js +31 -18
package/src/soc_pokec.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {
2
- open as c,
2
+ open as l,
3
3
  rm as t
4
4
  } from "node:fs/promises";
5
5
 
@@ -10,30 +10,36 @@ import {
10
10
  } from "../src/QyDB.js";
11
11
 
12
12
  import {
13
- folderOrFileExists as p
13
+ folderOrFileExists as m
14
14
  } from "../src/QyUtils.js";
15
15
 
16
- logger.level = "info";
16
+ import {
17
+ logger as p
18
+ } from "./QyLogger.js";
19
+
20
+ import "node:assert";
21
+
22
+ p.level = "info";
17
23
 
18
- let m = "D:/SampleData/soc_pokec/soc-pokec-relationships.txt";
24
+ let f = "D:/SampleData/soc_pokec/soc-pokec-relationships.txt";
19
25
 
20
- let f = "./tmp/soc_pokec", w = new e(f);
26
+ let d = "./tmp/soc_pokec", w = new e(d);
21
27
 
22
28
  (async () => {
23
- process.argv[3] && (logger.level = process.argv[3]);
29
+ process.argv[3] && (p.level = process.argv[3]);
24
30
  let e;
25
31
  if ("true" == process.argv[2]) {
26
32
  try {
27
- await t(f, {
33
+ await t(d, {
28
34
  recursive: !0
29
35
  });
30
36
  } catch (e) {}
31
37
  e = !0;
32
- } else await p(f) || (e = !0);
38
+ } else await m(d) || (e = !0);
33
39
  if (console.time("run"), await w.start(), e) {
34
40
  {
35
41
  console.time("readData");
36
- var a, s = await c(m, "r"), r = {};
42
+ var a, s = await l(f, "r"), r = {};
37
43
  for await (o of s.readLines()) {
38
44
  var [ o, i ] = o.split("\t"), n = r[o];
39
45
  n ? n[i] = 1 : r[o] = {
@@ -43,8 +49,8 @@ let f = "./tmp/soc_pokec", w = new e(f);
43
49
  console.timeEnd("readData"), console.time("insertData");
44
50
  let e = w.batch, t = 0;
45
51
  for (a in r) {
46
- var l = r[a];
47
- e.insertP([ "relationships", a ], l), 3e4 < ++t && (await e.run(!0),
52
+ var c = r[a];
53
+ e.insertP([ "relationships", a ], c), 3e4 < ++t && (await e.run(!0),
48
54
  t = 0);
49
55
  }
50
56
  await e.run(!0), console.timeEnd("insertData"), s.close();
@@ -1406,11 +1406,11 @@
1406
1406
  /**
1407
1407
  Extend this range to cover at least `from` to `to`.
1408
1408
  */
1409
- extend(from, to = from) {
1409
+ extend(from, to = from, assoc = 0) {
1410
1410
  if (from <= this.anchor && to >= this.anchor)
1411
- return EditorSelection.range(from, to);
1411
+ return EditorSelection.range(from, to, undefined, undefined, assoc);
1412
1412
  let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;
1413
- return EditorSelection.range(this.anchor, head);
1413
+ return EditorSelection.range(this.anchor, head, undefined, undefined, assoc);
1414
1414
  }
1415
1415
  /**
1416
1416
  Compare this range to another range.
@@ -1557,11 +1557,13 @@
1557
1557
  /**
1558
1558
  Create a selection range.
1559
1559
  */
1560
- static range(anchor, head, goalColumn, bidiLevel) {
1560
+ static range(anchor, head, goalColumn, bidiLevel, assoc) {
1561
1561
  let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */) |
1562
1562
  (bidiLevel == null ? 7 : Math.min(6, bidiLevel));
1563
+ if (!assoc && anchor != head)
1564
+ assoc = head < anchor ? 1 : -1;
1563
1565
  return head < anchor ? SelectionRange.create(head, anchor, 32 /* RangeFlag.Inverted */ | 16 /* RangeFlag.AssocAfter */ | flags)
1564
- : SelectionRange.create(anchor, head, (head > anchor ? 8 /* RangeFlag.AssocBefore */ : 0) | flags);
1566
+ : SelectionRange.create(anchor, head, (!assoc ? 0 : assoc < 0 ? 8 /* RangeFlag.AssocBefore */ : 16 /* RangeFlag.AssocAfter */) | flags);
1565
1567
  }
1566
1568
  /**
1567
1569
  @internal
@@ -4418,7 +4420,7 @@
4418
4420
  couldn't (in which case the widget will be redrawn). The default
4419
4421
  implementation just returns false.
4420
4422
  */
4421
- updateDOM(dom, view) { return false; }
4423
+ updateDOM(dom, view, from) { return false; }
4422
4424
  /**
4423
4425
  @internal
4424
4426
  */
@@ -6821,7 +6823,7 @@
6821
6823
  let tile = widgets[i];
6822
6824
  if (!this.reused.has(tile) &&
6823
6825
  (pass == 0 ? tile.widget.compare(widget)
6824
- : tile.widget.constructor == widget.constructor && widget.updateDOM(tile.dom, this.view))) {
6826
+ : tile.widget.constructor == widget.constructor && widget.updateDOM(tile.dom, this.view, tile.widget))) {
6825
6827
  widgets.splice(i, 1);
6826
6828
  if (i < this.index[0])
6827
6829
  this.index[0]--;
@@ -7677,6 +7679,7 @@
7677
7679
  this.blockWrappers = this.view.state.facet(blockWrappers).map(v => typeof v == "function" ? v(this.view) : v);
7678
7680
  }
7679
7681
  scrollIntoView(target) {
7682
+ var _a;
7680
7683
  if (target.isSnapshot) {
7681
7684
  let ref = this.view.viewState.lineBlockAt(target.range.head);
7682
7685
  this.view.scrollDOM.scrollTop = ref.top - target.yMargin;
@@ -7693,7 +7696,7 @@
7693
7696
  }
7694
7697
  }
7695
7698
  let { range } = target;
7696
- let rect = this.coordsAt(range.head, range.empty ? range.assoc : range.head > range.anchor ? -1 : 1), other;
7699
+ let rect = this.coordsAt(range.head, (_a = range.assoc) !== null && _a !== void 0 ? _a : (range.empty ? 0 : range.head > range.anchor ? -1 : 1)), other;
7697
7700
  if (!rect)
7698
7701
  return;
7699
7702
  if (!range.empty && (other = this.coordsAt(range.anchor, range.anchor > range.head ? -1 : 1)))
@@ -7960,7 +7963,8 @@
7960
7963
  return EditorSelection.cursor(startPos, start.assoc);
7961
7964
  let goal = start.goalColumn, startY;
7962
7965
  let rect = view.contentDOM.getBoundingClientRect();
7963
- let startCoords = view.coordsAtPos(startPos, (start.empty ? start.assoc : 0) || (forward ? 1 : -1)), docTop = view.documentTop;
7966
+ let startCoords = view.coordsAtPos(startPos, start.assoc || ((start.empty ? forward : start.head == start.from) ? 1 : -1));
7967
+ let docTop = view.documentTop;
7964
7968
  if (startCoords) {
7965
7969
  if (goal == null)
7966
7970
  goal = startCoords.left - rect.left;
@@ -7973,9 +7977,16 @@
7973
7977
  startY = (dir < 0 ? line.top : line.bottom) + docTop;
7974
7978
  }
7975
7979
  let resolvedGoal = rect.left + goal;
7976
- let dist = distance !== null && distance !== void 0 ? distance : (view.viewState.heightOracle.textHeight >> 1);
7977
- let pos = posAtCoords(view, { x: resolvedGoal, y: startY + dist * dir }, false, dir);
7978
- return EditorSelection.cursor(pos.pos, pos.assoc, undefined, goal);
7980
+ let halfText = view.viewState.heightOracle.textHeight >> 1, dist = distance !== null && distance !== void 0 ? distance : halfText;
7981
+ for (let scan = 0;; scan += halfText) {
7982
+ let y = startY + (dist + scan) * dir;
7983
+ let pos = posAtCoords(view, { x: resolvedGoal, y }, false, dir);
7984
+ if (forward ? y > rect.bottom : y < rect.top)
7985
+ return EditorSelection.cursor(pos.pos, pos.assoc);
7986
+ let posCoords = view.coordsAtPos(pos.pos, pos.assoc), mid = posCoords ? (posCoords.top + posCoords.bottom) / 2 : 0;
7987
+ if (!posCoords || (forward ? mid > startY : mid < startY))
7988
+ return EditorSelection.cursor(pos.pos, pos.assoc, undefined, goal);
7989
+ }
7979
7990
  }
7980
7991
  function skipAtomicRanges(atoms, pos, bias) {
7981
7992
  for (;;) {
@@ -8834,9 +8845,9 @@
8834
8845
  // applyDOMChange, notify key handlers of it and reset to
8835
8846
  // the state they produce.
8836
8847
  let pending;
8837
- if (browser.ios && !event.synthetic && !event.altKey && !event.metaKey &&
8848
+ if (browser.ios && !event.synthetic && !event.altKey && !event.metaKey && !event.shiftKey &&
8838
8849
  ((pending = PendingKeys.find(key => key.keyCode == event.keyCode)) && !event.ctrlKey ||
8839
- EmacsyPendingKeys.indexOf(event.key) > -1 && event.ctrlKey && !event.shiftKey)) {
8850
+ EmacsyPendingKeys.indexOf(event.key) > -1 && event.ctrlKey)) {
8840
8851
  this.pendingIOSKey = pending || event;
8841
8852
  setTimeout(() => this.flushIOSKey(), 250);
8842
8853
  return true;
@@ -9240,10 +9251,10 @@
9240
9251
  if (start.pos != cur.pos && !extend) {
9241
9252
  let startRange = rangeForClick(view, start.pos, start.assoc, type);
9242
9253
  let from = Math.min(startRange.from, range.from), to = Math.max(startRange.to, range.to);
9243
- range = from < range.from ? EditorSelection.range(from, to) : EditorSelection.range(to, from);
9254
+ range = from < range.from ? EditorSelection.range(from, to, range.assoc) : EditorSelection.range(to, from, range.assoc);
9244
9255
  }
9245
9256
  if (extend)
9246
- return startSel.replaceRange(startSel.main.extend(range.from, range.to));
9257
+ return startSel.replaceRange(startSel.main.extend(range.from, range.to, range.assoc));
9247
9258
  else if (multiple && type == 1 && startSel.ranges.length > 1 && (removed = removeRangeAround(startSel, cur.pos)))
9248
9259
  return removed;
9249
9260
  else if (multiple)
@@ -13727,7 +13738,7 @@
13727
13738
  let prim = r == state.selection.main;
13728
13739
  if (r.empty || conf.drawRangeCursor && !(prim && browser.ios && conf.iosSelectionHandles)) {
13729
13740
  let className = prim ? "cm-cursor cm-cursor-primary" : "cm-cursor cm-cursor-secondary";
13730
- let cursor = r.empty ? r : EditorSelection.cursor(r.head, r.head > r.anchor ? -1 : 1);
13741
+ let cursor = r.empty ? r : EditorSelection.cursor(r.head, r.assoc);
13731
13742
  for (let piece of RectangleMarker.forRange(view, className, cursor))
13732
13743
  cursors.push(piece);
13733
13744
  }
@@ -20218,6 +20229,8 @@
20218
20229
  return { start: firstToken, matched: false };
20219
20230
  }
20220
20231
  function matchPlainBrackets(state, pos, dir, tree, tokenType, maxScanDistance, brackets) {
20232
+ if (dir < 0 ? !pos : pos == state.doc.length)
20233
+ return null;
20221
20234
  let startCh = dir < 0 ? state.sliceDoc(pos - 1, pos) : state.sliceDoc(pos, pos + 1);
20222
20235
  let bracket = brackets.indexOf(startCh);
20223
20236
  if (bracket < 0 || (bracket % 2 == 0) != (dir > 0))
@@ -21035,7 +21048,7 @@
21035
21048
  function extendSel(target, how) {
21036
21049
  let selection = updateSel(target.state.selection, range => {
21037
21050
  let head = how(range);
21038
- return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);
21051
+ return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined, head.assoc);
21039
21052
  });
21040
21053
  if (selection.eq(target.state.selection))
21041
21054
  return false;