datafolder 1.0.9 → 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 +3 -1
  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 +1 -0
  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 +2 -0
package/src/QyTrigger.js CHANGED
@@ -1,49 +1,55 @@
1
1
  import {
2
- isDeepStrictEqual as c
2
+ isDeepStrictEqual as p
3
3
  } from "node:util";
4
4
 
5
5
  import {
6
- getValByNamePath as p,
6
+ getValByNamePath as c,
7
7
  setValByNamePath as u
8
8
  } from "./QyFileContentUtils.js";
9
9
 
10
10
  import {
11
11
  isEmptyObj as e,
12
- isMatchName as g,
12
+ isMatchName as l,
13
13
  getMatchParam as d,
14
14
  arrayLast as f,
15
15
  propNameJoin as v
16
16
  } from "./QyUtils.js";
17
17
 
18
- let N = Array.isArray;
18
+ import {
19
+ logger as N
20
+ } from "./QyLogger.js";
21
+
22
+ let y = Array.isArray;
19
23
 
20
24
  class h {
21
- constructor(e, r) {
25
+ name;
26
+ parent;
27
+ children = {};
28
+ triggerMap = {};
29
+ constructor(e = void 0, r = void 0) {
22
30
  Object.assign(this, {
23
31
  name: e,
24
- parent: r,
25
- children: {},
26
- triggerMap: {}
32
+ parent: r
27
33
  });
28
34
  }
29
35
  insertTrigger(e, r, t, a) {
30
36
  let i = this;
31
37
  for (var s of r) {
32
- g(s) && (s = "*");
33
- var n = i.children;
34
- i = n[s] || (n[s] = new h(s, i));
38
+ l(s) && (s = "*");
39
+ var o = i.children;
40
+ i = o[s] || (o[s] = new h(s, i));
35
41
  }
36
- var o = i.triggerMap, l = o[e];
37
- l ? Object.assign(l, {
42
+ var n = i.triggerMap, g = n[e];
43
+ g ? Object.assign(g, {
38
44
  triggerName: e,
39
45
  fileNamePath: r,
40
46
  propNamePathList: t,
41
47
  fun: a
42
- }) : o[e] = new m(e, r, t, a);
48
+ }) : n[e] = new m(e, r, t, a);
43
49
  }
44
50
  removeTrigger(e, r) {
45
51
  let t = this;
46
- for (var a of r) if (g(a) && (a = "*"), !(t = t.children[a])) return !1;
52
+ for (var a of r) if (l(a) && (a = "*"), !(t = t.children[a])) return !1;
47
53
  r = t.triggerMap;
48
54
  return !!r[e] && (delete r[e], t.isEmpty && t.removeEmptyNodes(), !0);
49
55
  }
@@ -69,6 +75,10 @@ class h {
69
75
  }
70
76
 
71
77
  class m {
78
+ triggerName;
79
+ fileNamePath;
80
+ propNamePathList;
81
+ fun;
72
82
  constructor(e, r, t, a) {
73
83
  Object.assign(this, {
74
84
  triggerName: e,
@@ -82,32 +92,32 @@ class m {
82
92
  triggerName: a,
83
93
  fileNamePath: i,
84
94
  propNamePathList: s,
85
- fun: n
86
- } = this, o = e.fileContent;
87
- let l;
95
+ fun: o
96
+ } = this, n = e.fileContent;
97
+ let g;
88
98
  for (t of s) {
89
- var g = p(r.oldValue, t), f = p(r.newValue, t);
90
- c(g, f) || (g = {
91
- oldValue: g,
99
+ var l = c(r.oldValue, t), f = c(r.newValue, t);
100
+ p(l, f) || (l = {
101
+ oldValue: l,
92
102
  newValue: f
93
- }, (N(f) || N(p(o, t))) && (g.isArrayDelta = !0), (l = l || {
103
+ }, (y(f) || y(c(n, t))) && (l.isArrayDelta = !0), (g = g || {
94
104
  _file: e,
95
- _fileContent: o
96
- })[v(t)] = g, u(l, t, g));
105
+ _fileContent: n
106
+ })[v(t)] = l, u(g, t, l));
97
107
  }
98
- if (l) {
108
+ if (g) {
99
109
  var {
100
110
  namePath: h,
101
111
  qyCache: s
102
112
  } = e;
103
113
  for (let e = 0; e < h.length; ++e) {
104
114
  var m = d(i[e]);
105
- m && (l[m] = h[e]);
115
+ m && (g[m] = h[e]);
106
116
  }
107
117
  try {
108
- n && n(l), s.emit(a, l);
118
+ o && o(g), s.emit(a, g);
109
119
  } catch (e) {
110
- logger.error(`Running trigger ${a} failed:`, l, e);
120
+ N.error(`Running trigger ${a} failed:`, g, e);
111
121
  }
112
122
  }
113
123
  }
@@ -115,8 +125,8 @@ class m {
115
125
 
116
126
  let t = [];
117
127
 
118
- function y(e, r) {
119
- return e ? g(r) ? Object.values(e) : (e = e[r]) ? [ e ] : t : t;
128
+ function P(e, r) {
129
+ return e ? l(r) ? Object.values(e) : (e = e[r]) ? [ e ] : t : t;
120
130
  }
121
131
 
122
132
  function r(e, a) {
@@ -124,13 +134,13 @@ function r(e, a) {
124
134
  let r = [ e ], t = [];
125
135
  for (let e = 0; e < a.length - 1; ++e) {
126
136
  var i, s = a[e];
127
- for (i of r) for (var n of y(i.subdirMap, s)) i.setChildTriggerNodes(n),
128
- t.push(n);
137
+ for (i of r) for (var o of P(i.subdirMap, s)) i.setChildTriggerNodes(o),
138
+ t.push(o);
129
139
  if (0 == t.length) return;
130
140
  [ r, t ] = [ t, r ], t.length = 0;
131
141
  }
132
- var o, l = f(a);
133
- for (o of r) for (var g of y(o.fileMap, l)) o.setChildTriggerNodes(g);
142
+ var n, g = f(a);
143
+ for (n of r) for (var l of P(n.fileMap, g)) n.setChildTriggerNodes(l);
134
144
  }
135
145
  }
136
146
 
@@ -1,15 +1,24 @@
1
1
  export declare class QueryCounter {
2
+ limit: any;
3
+ cursor: any;
4
+ added: number;
5
+ count: number;
6
+ encounteredMap: any;
2
7
  constructor(limit: any, cursor?: number);
3
8
  get isFull(): boolean;
4
9
  encounterOne(fileName: any): true | undefined;
5
10
  countOne(): true | undefined;
6
11
  }
7
12
  export declare class QyQueryNode {
13
+ fileCount: number;
14
+ nodeList: any;
8
15
  constructor();
9
16
  encounterOne(resultMap: any, fileName: any, queryCounter: any): true | undefined;
10
17
  }
11
18
  export declare class QyUnionNode extends QyQueryNode {
12
- constructor(dir: any);
19
+ dirMap: any;
20
+ checkedDirMap: any;
21
+ constructor(dir?: undefined);
13
22
  containsFile(fileName: any): boolean;
14
23
  getFiles(queryCounter: any, resultMap?: {}): Generator<any, void, any>;
15
24
  addNode(node: any): void;
@@ -1,11 +1,13 @@
1
1
  class i {
2
+ limit;
3
+ cursor;
4
+ added = 0;
5
+ count = 0;
6
+ encounteredMap = {};
2
7
  constructor(i, e = 0) {
3
8
  i = i || 1 / 0, Object.assign(this, {
4
9
  limit: i,
5
- cursor: e,
6
- added: 0,
7
- count: 0,
8
- encounteredMap: {}
10
+ cursor: e
9
11
  });
10
12
  }
11
13
  get isFull() {
@@ -14,9 +16,9 @@ class i {
14
16
  encounterOne(i) {
15
17
  var {
16
18
  encounteredMap: e,
17
- isFull: t
19
+ isFull: r
18
20
  } = this;
19
- if (!(t || i in e)) return e[i] = 1, this.countOne();
21
+ if (!(r || i in e)) return e[i] = 1, this.countOne();
20
22
  }
21
23
  countOne() {
22
24
  if (this.count++ >= this.cursor) return ++this.added, !0;
@@ -24,74 +26,70 @@ class i {
24
26
  }
25
27
 
26
28
  class e {
27
- constructor() {
28
- Object.assign(this, {
29
- fileCount: 0,
30
- nodeList: []
31
- });
32
- }
33
- encounterOne(i, e, t) {
34
- if (!t || t.encounterOne(e)) return i[e] = 1, !0;
29
+ fileCount = 0;
30
+ nodeList = [];
31
+ constructor() {}
32
+ encounterOne(i, e, r) {
33
+ if (!r || r.encounterOne(e)) return i[e] = 1, !0;
35
34
  }
36
35
  }
37
36
 
38
37
  class o extends e {
39
- constructor(i) {
40
- super(), Object.assign(this, {
41
- dirMap: {},
42
- checkedDirMap: {}
43
- }), i && this.addDir(i);
38
+ dirMap = {};
39
+ checkedDirMap = {};
40
+ constructor(i = void 0) {
41
+ super(), i && this.addDir(i);
44
42
  }
45
43
  containsFile(e) {
46
44
  var {
47
45
  fileCount: i,
48
- dirMap: t,
49
- nodeList: r
46
+ dirMap: r,
47
+ nodeList: t
50
48
  } = this;
51
49
  if (0 < i) {
52
- for (var n in t) if (null != t[n].getFile(e)) return !0;
53
- for (let i = 0; i < r.length; ++i) if (r[i].containsFile(e)) return !0;
50
+ for (var n in r) if (null != r[n].getFile(e)) return !0;
51
+ for (let i = 0; i < t.length; ++i) if (t[i].containsFile(e)) return !0;
54
52
  }
55
53
  return !1;
56
54
  }
57
55
  *getFiles(i, e = {}) {
58
- var t, r, {
56
+ var r, t, {
59
57
  dirMap: n,
60
58
  nodeList: s
61
59
  } = this;
62
- for (t in n) {
63
- var o = n[t];
64
- if (0 != o.fileCount) for (var a of o.fileNameList) if (!(a in e) && this.encounterOne(e, a, i) && (yield a,
60
+ for (r in n) {
61
+ var o = n[r];
62
+ if (0 != o.fileCount) for (var u of o.fileNameList) if (!(u in e) && this.encounterOne(e, u, i) && (yield u,
65
63
  i?.isFull)) return;
66
64
  }
67
- for (r of s) if (yield* r.getFiles(i, e), i?.isFull) return;
65
+ for (t of s) if (yield* t.getFiles(i, e), i?.isFull) return;
68
66
  }
69
67
  addNode(i) {
70
68
  if (i) {
71
69
  var {
72
70
  dirMap: e,
73
- checkedDirMap: t,
74
- nodeList: r
71
+ checkedDirMap: r,
72
+ nodeList: t
75
73
  } = this;
76
74
  if (i instanceof o) {
77
75
  for (var n in i.dirMap) e[n] = i.dirMap[n];
78
- for (var s in r.push(...i.nodeList), i.checkedDirMap) t[s] = 1;
79
- } else r.push(i);
76
+ for (var s in t.push(...i.nodeList), i.checkedDirMap) r[s] = 1;
77
+ } else t.push(i);
80
78
  this.fileCount += i.fileCount;
81
79
  }
82
80
  }
83
81
  addDir(i) {
84
82
  var {
85
83
  dirMap: e,
86
- checkedDirMap: t
84
+ checkedDirMap: r
87
85
  } = this, {
88
- fileCount: r,
86
+ fileCount: t,
89
87
  subdirCount: n,
90
88
  fullPathHash: s
91
89
  } = i;
92
- if (!(s in e || s in t)) {
90
+ if (!(s in e || s in r)) {
93
91
  if (0 < n) for (var o of i.subdirList) this.addDir(o);
94
- 0 < r ? (e[s] = i, this.fileCount += r) : t[s] = 1;
92
+ 0 < t ? (e[s] = i, this.fileCount += t) : r[s] = 1;
95
93
  }
96
94
  }
97
95
  }
package/src/QyUtils.d.ts CHANGED
@@ -29,12 +29,12 @@ export declare function isSimpleType(item: any): boolean;
29
29
  export declare function trimArrayTail(arr: any): any;
30
30
  export declare function setPromise(operation: any): any;
31
31
  export declare function toBuffer(data: any): Buffer<any>;
32
- export declare function getSuffix(num: any): "s" | "";
32
+ export declare function getSuffix(num: any): "" | "s";
33
33
  export declare function ensureDir(dirPath: any): Promise<string | undefined>;
34
34
  export declare function ensureParentDir(filePath: any): Promise<string | undefined>;
35
35
  export declare function getSize(filePath: any): Promise<number | false>;
36
36
  export declare function folderOrFileExists(folderPath: any): Promise<boolean>;
37
- export declare function sleep(seconds: any, signal: any): Promise<boolean>;
37
+ export declare function sleep(seconds: number, signal?: undefined): Promise<boolean> | Promise<void>;
38
38
  export declare function lockExclusiveFilePath(exclusiveFilePath: any): Promise<void>;
39
39
  export declare function unlockExclusiveFilePath(exclusiveFilePath: any): void;
40
40
  export declare function fromSingleName(name: any): any;