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
@@ -29,6 +29,13 @@ import {
29
29
  } from "./QyUtils.js";
30
30
 
31
31
  export default class extends a {
32
+ kvFolder;
33
+ snapshotFolder;
34
+ qySnapshots;
35
+ qyKVDataCleaner;
36
+ pMInfoMap = {};
37
+ vLInfoMap = {};
38
+ combinedSnapshotNumVersionList = [];
32
39
  constructor({
33
40
  kvFolder: a,
34
41
  options: s
@@ -42,10 +49,7 @@ export default class extends a {
42
49
  kvFolder: a,
43
50
  snapshotFolder: o,
44
51
  qySnapshots: new n(o, s),
45
- qyKVDataCleaner: new p(this, a, s),
46
- pMInfoMap: {},
47
- vLInfoMap: {},
48
- combinedSnapshotNumList: []
52
+ qyKVDataCleaner: new p(this, a, s)
49
53
  });
50
54
  }
51
55
  _op_start() {
@@ -89,30 +93,37 @@ export default class extends a {
89
93
  });
90
94
  })(this, a, s)));
91
95
  }
92
- 0 < s.length && e.push((async (a, s, o) => {
93
- var t, {
94
- qySnapshots: e,
95
- vLInfoMap: p,
96
- combinedSnapshotNumList: n
97
- } = a, i = e.getMaxCombinedSnapshot(s), {
98
- snapshotNum: r,
99
- info: f,
100
- keyValueMap: h
101
- } = (await m(a, i), i);
102
- Object.assign(i, {
96
+ 0 < s.length && e.push((async (t, a, s) => {
97
+ let {
98
+ qySnapshots: o,
99
+ vLInfoMap: e,
100
+ combinedSnapshotNumVersionList: p
101
+ } = t, n = o.getMaxCombinedSnapshot(a), {
102
+ snapshotNum: i,
103
+ info: r,
104
+ keyValueMap: f
105
+ } = (await m(t, n), n);
106
+ Object.assign(n, {
103
107
  posMap: void 0,
104
108
  prefixPM: void 0
105
109
  });
106
- for (t of s) t != i && (n.push(t.snapshotNum), await m(a, t), Object.assign(h, t.keyValueMap),
107
- Object.assign(t, {
108
- keyValueMap: void 0,
109
- posMap: void 0,
110
- prefixPM: void 0
111
- }));
112
- await e.saveKeyValueMap(i), p[r] = f, o.combineUpdate = {
113
- snapshotNum: r,
114
- combinedSnapshotNumList: n,
115
- posMap: i.posMap
110
+ for (var h of a) if (h != n) {
111
+ await m(t, h);
112
+ let {
113
+ snapshotNum: a,
114
+ info: s,
115
+ keyValueMap: o
116
+ } = h;
117
+ p.push([ a, s.verList[0] ]), Object.assign(f, o), Object.assign(h, {
118
+ keyValueMap: void 0,
119
+ posMap: void 0,
120
+ prefixPM: void 0
121
+ });
122
+ }
123
+ await o.saveKeyValueMap(n), e[i] = r, s.combinationUpdate = {
124
+ snapshotNum: i,
125
+ combinedSnapshotNumVersionList: p,
126
+ posMap: n.posMap
116
127
  };
117
128
  })(this, s, t)), await Promise.all(e), this.castParent("onCompactUpdates", t);
118
129
  }
@@ -121,7 +132,7 @@ export default class extends a {
121
132
  qySnapshots: o,
122
133
  pMInfoMap: t,
123
134
  vLInfoMap: e,
124
- combinedSnapshotNumList: p,
135
+ combinedSnapshotNumVersionList: p,
125
136
  qyKVDataCleaner: n
126
137
  } = this, i = (Object.assign(this, {
127
138
  pMInfoMap: {},
@@ -1,5 +1,12 @@
1
1
  import { QyMessageWorker } from "./QyMessageWorker.ts";
2
2
  export default class QySnapshotSaver_Worker extends QyMessageWorker {
3
+ kvFolder: any;
4
+ snapshotFolder: any;
5
+ qySnapshots: any;
6
+ qyKVDataCleaner: any;
7
+ aclKeyValueMap: any;
8
+ snapshotSavedChangeId: number;
9
+ maxChangeId: any;
3
10
  constructor({ kvFolder, options }: {
4
11
  kvFolder: any;
5
12
  options: any;
@@ -8,7 +15,7 @@ export default class QySnapshotSaver_Worker extends QyMessageWorker {
8
15
  castSave(changeId: any, cmdArgAsListObj: any, syncList: any): void;
9
16
  saveSnapshot(maxSnapshotNum: any): Promise<void>;
10
17
  releaseSnapshot(snapshotNum: any): void;
11
- _op_stop(): Promise<any>;
18
+ _op_stop(): Promise<number>;
12
19
  _op_waitForSnapshotSaved({ saveMaxSnapshotInfoPromise, outdates }: {
13
20
  saveMaxSnapshotInfoPromise: any;
14
21
  outdates: any;
@@ -23,6 +23,13 @@ import {
23
23
  } from "./QyLogger.js";
24
24
 
25
25
  export default class extends a {
26
+ kvFolder;
27
+ snapshotFolder;
28
+ qySnapshots;
29
+ qyKVDataCleaner;
30
+ aclKeyValueMap = {};
31
+ snapshotSavedChangeId = 0;
32
+ maxChangeId;
26
33
  constructor({
27
34
  kvFolder: a,
28
35
  options: s
@@ -36,9 +43,7 @@ export default class extends a {
36
43
  kvFolder: a,
37
44
  snapshotFolder: e,
38
45
  qySnapshots: new n(e, s),
39
- qyKVDataCleaner: new p(this, a, s),
40
- aclKeyValueMap: {},
41
- snapshotSavedChangeId: 0
46
+ qyKVDataCleaner: new p(this, a, s)
42
47
  });
43
48
  }
44
49
  _op_start(a, s, e) {
@@ -82,7 +87,7 @@ export default class extends a {
82
87
  snapshotNum: a,
83
88
  maxChangeId: t
84
89
  } = await a, {
85
- emptySnapshotNumList: s,
90
+ emptySnapshotNumVersionList: s,
86
91
  pMChangeList: o,
87
92
  vLChange: n,
88
93
  snapshotInfoMap: p,
@@ -92,9 +97,9 @@ export default class extends a {
92
97
  qySnapshots: i,
93
98
  options: l
94
99
  } = this;
95
- for (e in r.cleanAclFiles(a), 0 < h.length && await Promise.all(h), h.length = 0,
100
+ for (e in r.cleanAclFiles(a), 0 < h.length && (await Promise.all(h), h.length = 0),
96
101
  p) h.push(i.saveSnapshotInfo(e, p[e]));
97
- 0 < h.length && await Promise.all(h), 0 < s.length && r.removeSnapshotsFiles(s),
102
+ 0 < h.length && (await Promise.all(h), h.length = 0), 0 < s.length && r.removeSnapshotsFiles(s),
98
103
  0 < o.length && r.cleanPMFiles(o), 0 < n.length && r.cleanVLFiles(n[0], n[1]);
99
104
  let u;
100
105
  a = i.snapshotCount;
@@ -115,7 +120,7 @@ export default class extends a {
115
120
  function h(a, s, e, t) {
116
121
  var o = (a => {
117
122
  var s, e = a.qySnapshots, {
118
- emptySnapshotNumList: t,
123
+ emptySnapshotNumVersionList: t,
119
124
  combiningSnapshotList: a,
120
125
  pMCompactSnapshotList: o
121
126
  } = e.calOutdates(), n = {}, p = [], h = [], r = [];
@@ -130,18 +135,19 @@ function h(a, s, e, t) {
130
135
  }
131
136
  let u = a.length, m;
132
137
  if (0 < u) {
133
- var S, y = e.keyToSnapshotMap, {
134
- keyValueMap: d,
138
+ var S, d = e.keyToSnapshotMap, {
139
+ keyValueMap: y,
135
140
  info: o,
136
141
  snapshotNum: v
137
142
  } = m = e.getMaxCombinedSnapshot(a);
138
143
  for (S of a) if (m != S) {
139
144
  var g, {
140
145
  keyValueMap: M,
141
- snapshotNum: f
146
+ snapshotNum: f,
147
+ info: C
142
148
  } = S;
143
- for (g in M) d[g] = M[g], y[g] = m;
144
- e.delSnapshot(S), t.push(f);
149
+ for (g in M) y[g] = M[g], d[g] = m;
150
+ e.delSnapshot(S), t.push([ f, C.verList[0] ]);
145
151
  }
146
152
  p.push(e.saveKeyValueMap(m)), h.push([ v, o.pMVersion ]), r.push(v, o.vLVersion),
147
153
  n[v] = {
@@ -149,7 +155,7 @@ function h(a, s, e, t) {
149
155
  };
150
156
  }
151
157
  return {
152
- emptySnapshotNumList: t,
158
+ emptySnapshotNumVersionList: t,
153
159
  pMChangeList: h,
154
160
  vLChange: r,
155
161
  snapshotInfoMap: n,
@@ -162,7 +168,8 @@ function h(a, s, e, t) {
162
168
  info: {
163
169
  maxChangeId: e,
164
170
  pMVersion: 0,
165
- vLVersion: 0
171
+ vLVersion: 0,
172
+ verList: []
166
173
  }
167
174
  }, t = (a.qySnapshots.addMaxSnapshot(s), (async (a, s) => {
168
175
  await (a = a.qySnapshots).saveKeyValueMap(s);
@@ -1,8 +1,19 @@
1
1
  export declare class QySnapshots {
2
+ snapshotFolder: any;
3
+ snapshotInfoFolder: any;
4
+ options: any;
5
+ qyJsonSaver: any;
6
+ numToSnapshotMap: any;
7
+ keyToSnapshotMap: any;
8
+ fDMap: any;
9
+ prefixMap: any;
10
+ snapshotMaxChangeId: number;
11
+ maxSnapshotNum: number;
12
+ snapshotCount: number;
2
13
  constructor(snapshotFolder: any, options: any);
3
14
  loadSnapshotInfos(): Promise<void>;
4
15
  closeAllFDs(): void;
5
- saveKeyValueMap(snapshot: any): Promise<any>;
16
+ saveKeyValueMap(snapshot: any): Promise<[[any, any], any]>;
6
17
  addMaxSnapshot(maxSnapshot: any): void;
7
18
  removeKey(key: any): true | undefined;
8
19
  applyCmdObj(cmdObj: any, aclKeyValueMap: any, syncList: any): void;
@@ -10,18 +21,19 @@ export declare class QySnapshots {
10
21
  loadPartialPosMapBuffer(snapshot: any, prefix: any, buffer: any): void;
11
22
  delSnapshot(snapshot: any): void;
12
23
  calOutdates(): {
13
- emptySnapshotNumList: never[];
14
- combiningSnapshotList: never[];
15
- pMCompactSnapshotList: never[];
16
- vLCompactSnapshotList: never[];
24
+ emptySnapshotNumVersionList: any[];
25
+ combiningSnapshotList: any[];
26
+ pMCompactSnapshotList: any[];
27
+ vLCompactSnapshotList: any[];
17
28
  };
18
29
  getMaxCombinedSnapshot(snapshotList: any): any;
19
30
  getPMFilePath(snapshot: any): string;
20
31
  getVLFilePath(snapshot: any): string;
21
- saveSnapshotInfo(snapshotNum: any, info: any): any;
22
- savePosMap(snapshot: any, sortedKeyList: any): Promise<any>;
32
+ saveSnapshotInfo(snapshotNum: any, info: any): Promise<boolean>;
33
+ savePosMap(snapshot: any, sortedKeyList: any): Promise<[any, any]>;
23
34
  isEmptySnapshot(snapshot: any): boolean;
24
35
  removeKeyFromSnapshot(snapshot: any, key: any): void;
25
36
  }
26
37
  export declare function iterPMBuffer(buffer: any, fun: any): void;
27
38
  export declare function loadPrefixPMFile(prefixPMFilePath: any): Promise<{}>;
39
+ export declare function getSnapshotInfoFileName(snapshotNum: any, version: any): string;