datafolder 1.0.5 → 1.0.7

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 (49) hide show
  1. package/README.md +5 -0
  2. package/internal.md +119 -0
  3. package/package.json +2 -2
  4. package/sample.js +19 -19
  5. package/scripts/convertBinFiles.js +49 -0
  6. package/scripts/fastify.js +2 -2
  7. package/src/QyAcl.js +44 -44
  8. package/src/QyAclSaver_Worker.js +2 -2
  9. package/src/QyAclWriter.js +1 -1
  10. package/src/QyBatch.js +1 -3
  11. package/src/QyBinWriter.js +65 -66
  12. package/src/QyCD.js +72 -27
  13. package/src/QyCache.js +39 -33
  14. package/src/QyDB.js +4 -30
  15. package/src/QyDefaultOptions.js +2 -1
  16. package/src/QyFetch.js +4 -22
  17. package/src/QyFileLogger.js +2 -2
  18. package/src/QyKVData.js +168 -183
  19. package/src/QyKVDataCleaner_Worker.js +15 -14
  20. package/src/QyKVDataSaver_Worker.js +20 -20
  21. package/src/QyLogFileSaver.js +1 -1
  22. package/src/QyLogFileSaver_Worker.js +2 -2
  23. package/src/QyMod.js +7 -7
  24. package/src/QyOpRunner.js +19 -16
  25. package/src/QySnapshotCompactor_Worker.js +54 -52
  26. package/src/QySnapshotSaver_Worker.js +55 -53
  27. package/src/QySnapshots.js +157 -147
  28. package/src/QyUnionNode.js +2 -2
  29. package/src/rpc/evalCode.js +4 -4
  30. package/src/rpc/getFileContent.js +4 -4
  31. package/src/rpc/getSubItems.js +12 -12
  32. package/src/rpc/getTriggerFiles.js +1 -0
  33. package/src/rpc/queryFiles.js +1 -1
  34. package/src/soc_pokec.js +7 -7
  35. package/static/codemirror.bundle/editor.bundle.js +27906 -0
  36. package/static/datafolderui/QyStyledElement.js +6 -15
  37. package/static/datafolderui/QyUIFolderTree.js +130 -145
  38. package/static/datafolderui/QyUIFolderViewer.js +210 -0
  39. package/static/datafolderui/QyUIUtils.js +10 -5
  40. package/static/datafolderui/code-mirror.js +35 -0
  41. package/static/datafolderui/display-tree.js +21 -94
  42. package/static/datafolderui/explore-tree.js +66 -81
  43. package/static/datafolderui/folder-tree.js +71 -2
  44. package/static/datafolderui/index.css +7 -0
  45. package/static/datafolderui/index.html +1 -0
  46. package/static/datafolderui/json-view.js +7 -3
  47. package/static/datafolderui/main-page.js +42 -60
  48. package/static/datafolderui/query-editor.js +178 -198
  49. package/static/datafolderui/trigger-editor.js +30 -0
package/src/QyKVData.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  } from "node:fs/promises";
8
8
 
9
9
  import {
10
- getDefaultOptions as e
10
+ getDefaultOptions as s
11
11
  } from "./QyDefaultOptions.js";
12
12
 
13
13
  import {
@@ -24,116 +24,119 @@ import {
24
24
 
25
25
  import {
26
26
  arrayLast as y,
27
- readBufferAsync as g,
27
+ readBufferAsync as C,
28
28
  sleep as c
29
29
  } from "./QyUtils.js";
30
30
 
31
- class t {
32
- constructor(t, a, o) {
33
- a = {
34
- ...e("QyKVData"),
35
- ...a
31
+ class a {
32
+ constructor(a, t, o) {
33
+ t = {
34
+ ...s("QyKVData"),
35
+ ...t
36
36
  };
37
- var s = n(t, "snapshot");
37
+ var e = n(a, "snapshot");
38
38
  Object.assign(this, {
39
39
  qyCache: o,
40
- options: a,
41
- kvFolder: t,
42
- snapshotFolder: s,
43
- qyKVDataSaver: new p(this, t, a),
44
- qySnapshotCompactor: new i(this, t, a),
45
- qyKVDataCleaner: new r(this, t, a),
40
+ options: t,
41
+ kvFolder: a,
42
+ snapshotFolder: e,
43
+ qyKVDataSaver: new p(this, a, t),
44
+ qySnapshotCompactor: new i(this, a, t),
45
+ qyKVDataCleaner: new r(this, a, t),
46
46
  compactState: 1,
47
47
  compactMaxChangeId: 0,
48
48
  snapshotSavedChangeId: 0,
49
- snapshotInfoNumList: [],
50
49
  emptySnapshotNumList: []
51
50
  });
52
51
  }
53
- start(t, a, o, s) {
52
+ start(a, t, o, e) {
54
53
  var {
55
54
  options: n,
56
- qyKVDataSaver: e,
55
+ qyKVDataSaver: s,
57
56
  qySnapshotCompactor: p,
58
57
  qyKVDataCleaner: i
59
58
  } = this, {
60
59
  maxSnapshotNum: r,
61
60
  snapshotMaxChangeId: h
62
- } = o, e = (e.start(t, r, a, s), p.start(), i.start(), setInterval(() => l(this), n.compactSnapshotsInterval)), r = setInterval(() => (async o => {
61
+ } = o, s = (s.start(a, r, t, e), p.start(), i.start(), setInterval(() => l(this), n.compactSnapshotsInterval)), r = setInterval(() => (async o => {
63
62
  if (!o.unloadingMemory) {
64
63
  o.unloadingMemory = !0;
65
64
  var {
66
- qyCache: s,
65
+ qyCache: e,
67
66
  options: n
68
67
  } = o;
69
- let t = 0, a = 0;
70
- if (s) {
71
- var e, p = n.maxFileCountToUnload, n = s.rootDir;
72
- a = m(o, n), t = a;
73
- for (e of n.allLoadedSubdirs()) if ((a += m(o, e)) > p && (t += a,
74
- a = 0, await c(0), o.isStopping)) break;
68
+ let a = 0, t = 0;
69
+ if (e) {
70
+ var s, p = n.maxFileCountToUnload, n = e.rootDir;
71
+ t = d(o, n), a = t;
72
+ for (s of n.allLoadedSubdirs()) if ((t += d(o, s)) > p && (a += t,
73
+ t = 0, await c(0), o.isStopping)) break;
75
74
  }
76
- t += a, global.gc && global.gc(), o.unloadingMemory = !1;
75
+ a += t, global.gc && global.gc(), o.unloadingMemory = !1;
77
76
  }
78
77
  })(this), n.unloadMemInterval);
79
78
  return Object.assign(this, {
80
- maxChangeId: t,
79
+ maxChangeId: a,
81
80
  snapshotSavedChangeId: h,
82
81
  qySnapshots: o,
83
- aclKeyValueMap: s,
84
- compactInterval: e,
82
+ aclKeyValueMap: e,
83
+ compactInterval: s,
85
84
  unloadInterval: r
86
- }), n.bgLoadPosMaps ? (async t => {
87
- for (var a of Object.keys(t.qySnapshots.numToSnapshotMap).sort((t, a) => a - t)) {
88
- if (await async function e(p, i, r, h, c, l) {
85
+ }), n.bgLoadPosMaps ? (async a => {
86
+ var t, {
87
+ qySnapshots: o,
88
+ options: e
89
+ } = a;
90
+ for (t of Object.keys(o.numToSnapshotMap).sort((a, t) => t - a)) {
91
+ if (await async function s(p, i, r, h, c, l) {
89
92
  if (p.isStopping) return void (l && l.close());
90
- let m = p.qySnapshots;
91
- let u = m.numToSnapshotMap;
92
- let d = u[i];
93
- if (!d) return void (l && l.close());
93
+ let d = p.qySnapshots;
94
+ let m = d.numToSnapshotMap;
95
+ let u = m[i];
96
+ if (!u) return void (l && l.close());
94
97
  let {
95
98
  info: S,
96
99
  prefixPM: f
97
- } = d;
100
+ } = u;
98
101
  r = r || Object.keys(f).sort().reverse();
99
102
  if (0 == r.length) return void (l && l.close());
100
- if (null == h || h != S.pMVersion) return l && l.close(), c = m.getPMFilePath(d),
101
- e(p, i, r, S.pMVersion, c, await v(c));
103
+ if (null == h || h != S.pMVersion) return l && l.close(), c = d.getPMFilePath(u),
104
+ s(p, i, r, S.pMVersion, c, await v(c));
102
105
  for (;0 < r.length; ) {
103
- let s = y(r), n = f[s];
106
+ let e = y(r), n = f[e];
104
107
  if (n) {
105
- let [ t, a ] = n, o = await g(c, l, t, a);
106
- if (p.isStopping || !u[i]) return void l.close();
107
- if (h != S.pMVersion) return l.close(), e(p, i, r);
108
- s in f && m.loadPartialPosMapBuffer(d, s, o);
108
+ let [ a, t ] = n, o = await C(c, l, a, t);
109
+ if (p.isStopping || !m[i]) return void l.close();
110
+ if (h != S.pMVersion) return l.close(), s(p, i, r);
111
+ e in f && d.loadPartialPosMapBuffer(u, e, o);
109
112
  }
110
113
  r.pop();
111
114
  }
112
115
  l.close();
113
116
  logger.info("bgLoadPosMap:" + i);
114
- }(t, a), t.isStopping) break;
115
- if (await c(0), t.isStopping) break;
117
+ }(a, t), a.isStopping) break;
118
+ if (await c(0), a.isStopping) break;
116
119
  }
117
- !t.isStopping && t.options.compactAtStart && l(t);
120
+ !a.isStopping && e.compactAtStart && l(a);
118
121
  })(this) : n.compactAtStart && l(this), this;
119
122
  }
120
123
  async stop() {
121
124
  this.isStopping = !0;
122
125
  var {
123
- qyKVDataSaver: t,
124
- qySnapshotCompactor: a,
126
+ qyKVDataSaver: a,
127
+ qySnapshotCompactor: t,
125
128
  qySnapshots: o,
126
- compactInterval: s,
129
+ compactInterval: e,
127
130
  unloadInterval: n,
128
- qyKVDataCleaner: e
131
+ qyKVDataCleaner: s
129
132
  } = this;
130
- clearInterval(s), clearInterval(n), await t.stop(), o && o.closeAllFDs(),
131
- await a.stop(), await e.stop();
133
+ clearInterval(e), clearInterval(n), this.onSnapshotSavedChangeId(await a.stop()),
134
+ o && o.closeAllFDs(), await t.stop(), await s.stop();
132
135
  }
133
- save(t, a, o, s) {
136
+ save(a, t, o, e) {
134
137
  var n = this.qyKVDataSaver;
135
- if (s) return n.callSave(t, a, o);
136
- n.castSave(t, a, o);
138
+ if (e) return n.callSave(a, t, o);
139
+ n.castSave(a, t, o);
137
140
  }
138
141
  increaseChangeId() {
139
142
  return ++this.maxChangeId;
@@ -141,183 +144,165 @@ class t {
141
144
  decreaseChangeId() {
142
145
  --this.maxChangeId;
143
146
  }
144
- getValueSync(t) {
147
+ getValueSync(a) {
145
148
  var {
146
- qySnapshots: a,
149
+ qySnapshots: t,
147
150
  aclKeyValueMap: o
148
151
  } = this;
149
- return t in o ? o[t] : a.getValueSync(t);
152
+ return a in o ? o[a] : t.getValueSync(a);
150
153
  }
151
- removeKey(t) {
154
+ removeKey(a) {
152
155
  var {
153
- qySnapshots: a,
156
+ qySnapshots: t,
154
157
  aclKeyValueMap: o
155
158
  } = this;
156
- if (!(t in o)) return a.removeKey(t);
157
- o[t] = void 0;
159
+ if (!(a in o)) return t.removeKey(a);
160
+ o[a] = void 0;
158
161
  }
159
- onSnapshotSavedChangeId(t, a) {
160
- if (this.snapshotSavedChangeId = t, 3 == this.compactState && t >= this.compactMaxChangeId && (w(this),
161
- this.compactState = 1), a) {
162
- var o, t = a, s = this.qySnapshots, n = s.keyToSnapshotMap;
163
- for (o in t.posMap) {
164
- var e = n[o];
165
- e && s.removeKeyFromSnapshot(e, o);
162
+ onSnapshotSavedChangeId(a, t) {
163
+ this.snapshotSavedChangeId = a;
164
+ var {
165
+ compactState: o,
166
+ compactMaxChangeId: e,
167
+ qyKVDataSaver: n
168
+ } = this;
169
+ if (3 == o && e <= a && (K(this), this.compactState = 1), t) {
170
+ var s, o = t, p = this.qySnapshots, i = p.keyToSnapshotMap;
171
+ for (s in o.posMap) {
172
+ var r = i[s];
173
+ r && p.removeKeyFromSnapshot(r, s);
166
174
  }
167
- s.addMaxSnapshot(t), logger.info("addPMOnlySnapshot: " + s.snapshotMaxChangeId),
168
- this.qyKVDataSaver.releaseSnapshot(a.snapshotNum);
175
+ p.addMaxSnapshot(o), logger.info("addPMOnlySnapshot: " + p.snapshotMaxChangeId),
176
+ n.releaseSnapshot(t.snapshotNum);
169
177
  }
170
178
  }
171
- onCompactUpdates(t) {
179
+ onCompactUpdates(a) {
172
180
  if (2 == this.compactState) {
173
- var u = this, {
174
- pMUpdates: t,
181
+ var l = this, {
182
+ pMUpdates: a,
175
183
  vLUpdates: d,
176
- combineUpdate: S
177
- } = t = t;
178
- if (t) {
179
- var a, o = t, {
180
- qySnapshots: s,
181
- snapshotInfoNumList: n,
182
- emptySnapshotNumList: e
183
- } = u, p = s.numToSnapshotMap;
184
- for (a in o) {
185
- var i = p[a];
186
- if (s.isEmptySnapshot(i)) s.delSnapshot(i), e.push(a); else {
187
- var r, h = o[a], {
188
- prefixPM: c,
189
- info: l
190
- } = i;
191
- for (r in c) c[r] = h[r];
192
- ++l.pMVersion, (t => {
193
- var {
194
- info: a,
195
- compactOutedCount: o
196
- } = t;
197
- a.outdatedCount += o, t.outdatedCount -= o, t.compactOutedCount = 0;
198
- })(i), n.push(a);
199
- }
184
+ combineUpdate: m
185
+ } = a = a;
186
+ if (a) {
187
+ var t = a, o = l.qySnapshots.numToSnapshotMap;
188
+ for (s in t) {
189
+ var e, n = t[s], s = o[s], {
190
+ prefixPM: p,
191
+ info: i
192
+ } = s;
193
+ for (e in p) p[e] = n[e];
194
+ ++i.pMVersion, (a => {
195
+ var {
196
+ info: t,
197
+ compactOutedCount: o
198
+ } = a;
199
+ t.outdatedCount += o, a.outdatedCount -= o, a.compactOutedCount = 0;
200
+ })(s);
200
201
  }
201
202
  }
202
203
  if (d) {
203
- var m, f = d, {
204
- qySnapshots: v,
205
- snapshotInfoNumList: y,
206
- emptySnapshotNumList: g
207
- } = t = u, C = v.numToSnapshotMap;
208
- for (m in f) {
209
- var M = C[m];
210
- if (v.isEmptySnapshot(M)) v.delSnapshot(M), g.push(m); else {
211
- var I, q, {
212
- posMap: V,
213
- prefixPM: L
214
- } = f[m], {
215
- posMap: K,
216
- prefixPM: x,
217
- info: D
218
- } = M;
219
- for (I in K) K[I] = V[I];
220
- for (q in x) x[q] = L[q];
221
- ++D.pMVersion, ++D.vLVersion, j(M), y.push(m);
222
- }
204
+ var r = d, h = (a = l).qySnapshots.numToSnapshotMap;
205
+ for (v in r) {
206
+ var c, u, {
207
+ posMap: S,
208
+ prefixPM: f
209
+ } = r[v], v = h[v], {
210
+ posMap: y,
211
+ prefixPM: C,
212
+ info: g
213
+ } = v;
214
+ for (c in y) y[c] = S[c];
215
+ for (u in C) C[u] = f[u];
216
+ ++g.pMVersion, ++g.vLVersion, V(v);
223
217
  }
224
218
  }
225
- if (S) {
226
- var b, d = S;
227
- let {
228
- qySnapshots: s,
229
- snapshotInfoNumList: t,
230
- emptySnapshotNumList: a
231
- } = u, {
219
+ if (m) {
220
+ var M, d = m;
221
+ let e = l.qySnapshots, {
232
222
  numToSnapshotMap: n,
233
- keyToSnapshotMap: e
234
- } = s, {
235
- snapshotNum: o,
236
- combinedSnapshotNumList: p,
237
- posMap: i
238
- } = d, r = n[o], {
239
- posMap: h,
240
- info: c
241
- } = r;
242
- for (b in h) h[b] = i[b];
243
- j(r);
244
- let l = c.totalCount, m = r.outdatedCount;
245
- for (let o of p) {
246
- var N, O = n[o];
223
+ keyToSnapshotMap: s
224
+ } = e, {
225
+ snapshotNum: a,
226
+ combinedSnapshotNumList: t,
227
+ posMap: p
228
+ } = d, i = n[a], {
229
+ posMap: r,
230
+ info: o
231
+ } = i;
232
+ for (M in r) r[M] = p[M];
233
+ V(i);
234
+ let h = o.totalCount, c = i.outdatedCount;
235
+ for (let o of t) {
236
+ var I, q = n[o];
247
237
  let {
248
- posMap: t,
249
- info: a
250
- } = O;
251
- for (N in t) h[N] = i[N], e[N] = r;
252
- j(O), l += a.totalCount, m += O.outdatedCount, s.delSnapshot(O);
238
+ posMap: a,
239
+ info: t
240
+ } = q;
241
+ for (I in a) r[I] = p[I], s[I] = i;
242
+ V(q), h += t.totalCount, c += q.outdatedCount, e.delSnapshot(q);
253
243
  }
254
- a.push(...p), (l == m ? a : (++c.pMVersion, ++c.vLVersion, c.totalCount = l,
255
- r.outdatedCount = m, t)).push(o);
244
+ ++o.pMVersion, ++o.vLVersion, o.totalCount = h, i.outdatedCount = c;
256
245
  }
257
- this.snapshotSavedChangeId >= this.compactMaxChangeId ? (w(this), this.compactState = 1) : this.compactState = 3;
246
+ this.snapshotSavedChangeId >= this.compactMaxChangeId ? (K(this), this.compactState = 1) : this.compactState = 3;
258
247
  }
259
248
  }
260
249
  }
261
250
 
262
- function j(t) {
251
+ function V(a) {
263
252
  var {
264
- info: a,
253
+ info: t,
265
254
  compactOutedCount: o
266
- } = t;
267
- a.totalCount -= a.outdatedCount + o, a.outdatedCount = 0, t.outdatedCount -= o,
268
- t.compactOutedCount = 0;
255
+ } = a;
256
+ t.totalCount -= t.outdatedCount + o, t.outdatedCount = 0, a.outdatedCount -= o,
257
+ a.compactOutedCount = 0;
269
258
  }
270
259
 
271
- function l(t) {
272
- if (1 == t.compactState) {
260
+ function l(a) {
261
+ if (1 == a.compactState) {
273
262
  var {
274
- maxChangeId: a,
263
+ maxChangeId: t,
275
264
  qySnapshots: o,
276
- qySnapshotCompactor: s
277
- } = t, {
265
+ qySnapshotCompactor: e
266
+ } = a, {
278
267
  emptySnapshotNumList: o,
279
268
  pMCompactSnapshotList: n,
280
- vLCompactSnapshotList: e,
269
+ vLCompactSnapshotList: s,
281
270
  combiningSnapshotList: p
282
271
  } = o.calOutdates();
283
- if (0 < p.length || 0 < n.length || 0 < e.length) {
284
- Object.assign(t, {
272
+ if (0 < p.length || 0 < n.length || 0 < s.length) {
273
+ Object.assign(a, {
285
274
  compactState: 2,
286
- compactMaxChangeId: a
275
+ compactMaxChangeId: t
287
276
  });
288
- for (var i of [ n, e, p ]) for (var r of i) r.compactOutedCount = r.outdatedCount;
289
- s.compactSnapshots(n, e, p);
277
+ for (var i of [ n, s, p ]) for (var r of i) r.compactOutedCount = r.outdatedCount;
278
+ e.compactSnapshots(n, s, p);
290
279
  }
291
- 0 < o.length && (t.emptySnapshotNumList.push(...o), t.snapshotSavedChangeId >= a ? h(t) : 1 == t.compactState && Object.assign(t, {
280
+ 0 < o.length && (a.emptySnapshotNumList.push(...o), a.snapshotSavedChangeId >= t ? h(a) : 1 == a.compactState && Object.assign(a, {
292
281
  compactState: 3,
293
- compactMaxChangeId: a
282
+ compactMaxChangeId: t
294
283
  }));
295
284
  }
296
285
  }
297
286
 
298
- function m(t, a) {
299
- var o = t.qySnapshots.snapshotMaxChangeId;
300
- let s = 0;
301
- if (a.fileMapLoaded) for (var n of a.fileList) ++s, n.cChangeId <= o && (n.visited ? n.visited = !1 : n.unloadFileContent());
302
- return s;
287
+ function d(a, t) {
288
+ var o = a.qySnapshots.snapshotMaxChangeId;
289
+ let e = 0;
290
+ if (t.fileMapLoaded) for (var n of t.fileList) ++e, n.cChangeId <= o && (n.visited ? n.visited = !1 : n.unloadFileContent());
291
+ return e;
303
292
  }
304
293
 
305
- function h(t) {
294
+ function h(a) {
306
295
  var {
307
- qyKVDataCleaner: t,
308
- emptySnapshotNumList: a
309
- } = t;
310
- 0 < a.length && (t.removeSnapshotsFiles(a), a.length = 0);
296
+ qyKVDataCleaner: a,
297
+ emptySnapshotNumList: t
298
+ } = a;
299
+ 0 < t.length && (a.removeSnapshotsFiles(t), t.length = 0);
311
300
  }
312
301
 
313
- function w(t) {
314
- var {
315
- qySnapshotCompactor: a,
316
- snapshotInfoNumList: o
317
- } = t;
318
- 0 < o.length && (a.saveSnapshotInfos(o), o.length = 0), h(t);
302
+ function K(a) {
303
+ a.qySnapshotCompactor.saveSnapshotInfos(), h(a);
319
304
  }
320
305
 
321
306
  export {
322
- t as QyKVData
307
+ a as QyKVData
323
308
  };
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  rm as m,
7
7
  rename as r,
8
- readdir as d
8
+ readdir as f
9
9
  } from "node:fs/promises";
10
10
 
11
11
  import {
@@ -17,8 +17,8 @@ import {
17
17
  } from "./QyMessageWorker.js";
18
18
 
19
19
  import {
20
- folderOrFileExists as f,
21
- ensureDir as h
20
+ folderOrFileExists as h,
21
+ ensureDir as d
22
22
  } from "./QyUtils.js";
23
23
 
24
24
  import {
@@ -34,7 +34,7 @@ class s extends e {
34
34
  super(s = {
35
35
  ...o("QyKVDataCleaner_Worker"),
36
36
  ...s
37
- }, [ "start", "stop" ], [ "cleanAclFiles", "cleanPMFiles", "cleanVLFiles", "removeSnapshotsFiles" ]);
37
+ }, [], [ "cleanAclFiles", "cleanPMFiles", "cleanVLFiles", "removeSnapshotsFiles" ]);
38
38
  var s = c(e, "history"), a = c(e, "snapshot");
39
39
  Object.assign(this, {
40
40
  kvFolder: e,
@@ -49,14 +49,14 @@ class s extends e {
49
49
  _op_stop() {}
50
50
  async _op_cleanAclFiles(e) {
51
51
  var s = this, a = e, e = s.aclFolder;
52
- if (await f(e)) {
52
+ if (await h(e)) {
53
53
  var o, r = [];
54
- for (o of (await d(e)).filter(e => /^[1-9]/.test(e))) parseInt(o) <= a && r.push((async (e, s) => {
54
+ for (o of (await f(e)).filter(e => /^[1-9]/.test(e))) parseInt(o) <= a && r.push((async (e, s) => {
55
55
  var {
56
56
  aclFolder: a,
57
57
  historyAclFolder: o
58
58
  } = e;
59
- return await h(o), F(e, s, a, o);
59
+ return await d(o), F(e, s, a, o);
60
60
  })(s, o));
61
61
  0 < r.length && await Promise.allSettled(r);
62
62
  }
@@ -72,11 +72,12 @@ class s extends e {
72
72
  }
73
73
  async _op_removeSnapshotsFiles(e) {
74
74
  let {
75
- snapshotFolder: s,
76
- snapshotInfoFolder: a
75
+ snapshotFolder: a,
76
+ snapshotInfoFolder: o
77
77
  } = this;
78
- await Promise.all(e.map(async e => {
79
- await m(c(a, e + ".json")), await m(c(s, "" + e), {
78
+ await Promise.all(e.map(async s => {
79
+ await m(c(o, s + ".json")), await Promise.all([ "pM", "prefixPM", "vL" ].map(e => l(this, s, 1 / 0, e))),
80
+ await m(c(a, "" + s), {
80
81
  recursive: !0
81
82
  });
82
83
  }));
@@ -96,13 +97,13 @@ async function l(s, a, o, r) {
96
97
  snapshotFolder: e,
97
98
  historySnapshotFolder: t
98
99
  } = s, i = c(e, "" + a);
99
- if (await f(i)) {
100
+ if (await h(i)) {
100
101
  let e;
101
102
  var l, n = [];
102
- for (l of await d(i)) {
103
+ for (l of await f(i)) {
103
104
  var p = new RegExp("^([0-9]+)_" + r).exec(l);
104
105
  p && (p = parseInt(p[1])) < o && (1 == p ? (e || (e = c(t, "" + a),
105
- await h(e)), n.push(F(s, l, i, e))) : (p = c(i, l), logger.info("Removing " + p),
106
+ await d(e)), n.push(F(s, l, i, e))) : (p = c(i, l), logger.info("Removing " + p),
106
107
  n.push(m(p))));
107
108
  }
108
109
  0 < n.length && await Promise.allSettled(n);
@@ -7,7 +7,7 @@ import {
7
7
  } from "./QyDefaultOptions.js";
8
8
 
9
9
  import {
10
- QyAclSaver as n
10
+ QyAclSaver as o
11
11
  } from "./QyAclSaver.js";
12
12
 
13
13
  import {
@@ -15,11 +15,11 @@ import {
15
15
  } from "./QyMessageWorker.js";
16
16
 
17
17
  import {
18
- QySnapshotSaver as o
18
+ QySnapshotSaver as n
19
19
  } from "./QySnapshotSaver.js";
20
20
 
21
21
  import {
22
- delCmdKey as m
22
+ delCmdKey as u
23
23
  } from "./QyAcl.js";
24
24
 
25
25
  class s extends a {
@@ -33,32 +33,32 @@ class s extends a {
33
33
  }), Object.assign(this, {
34
34
  kvFolder: a,
35
35
  aclFolder: t(a, "acl"),
36
- qyAclSaver: new n(this, s),
37
- qySnapshotSaver: new o(this, a, s)
36
+ qyAclSaver: new o(this, s),
37
+ qySnapshotSaver: new n(this, a, s)
38
38
  });
39
39
  }
40
- start(a, s, t, e) {
40
+ _op_start(a, s, t, e) {
41
41
  var {
42
- qyAclSaver: n,
43
- qySnapshotSaver: o
42
+ qyAclSaver: o,
43
+ qySnapshotSaver: n
44
44
  } = this;
45
45
  Object.assign(this, {
46
46
  maxChangeId: a,
47
47
  snapshotMaxChangeId: a,
48
48
  currentAclNum: (t || s) + 1
49
- }), n.start(u(this)), o.start(a, t, e);
49
+ }), o.start(m(this)), n.start(a, t, e);
50
50
  }
51
- async stop() {
51
+ async _op_stop() {
52
52
  var {
53
53
  qyAclSaver: a,
54
54
  options: s,
55
55
  qySnapshotSaver: t,
56
56
  currentAclNum: e,
57
- maxChangeId: n,
58
- snapshotMaxChangeId: o
57
+ maxChangeId: o,
58
+ snapshotMaxChangeId: n
59
59
  } = this;
60
- this.isStopping = !0, await a.stop(), s.saveSnapshotAtStop && o < n && (this.isSavingSnapshot && await new Promise(a => this.saveSnapshotResolve = a),
61
- logger.log(`Saving snapshot ${e} at stop.`), t.saveSnapshot(e)), await t.stop();
60
+ return this.isStopping = !0, await a.stop(), s.saveSnapshotAtStop && n < o && (this.isSavingSnapshot && await new Promise(a => this.saveSnapshotResolve = a),
61
+ logger.log(`Saving snapshot ${e} at stop.`), t.saveSnapshot(e)), t.stop();
62
62
  }
63
63
  callSave(a, s, t) {
64
64
  return r(this, a, s, t, !0);
@@ -74,9 +74,9 @@ class s extends a {
74
74
  }
75
75
  }
76
76
 
77
- function r(a, s, t, e, n) {
77
+ function r(a, s, t, e, o) {
78
78
  var {
79
- qyAclSaver: o,
79
+ qyAclSaver: n,
80
80
  qySnapshotSaver: r,
81
81
  options: h,
82
82
  snapshotMaxChangeId: i,
@@ -84,20 +84,20 @@ function r(a, s, t, e, n) {
84
84
  isSavingSnapshot: S
85
85
  } = a;
86
86
  let v;
87
- n ? v = o.callSave(s, t) : o.castSave(s, t);
87
+ o ? v = n.callSave(s, t) : n.castSave(s, t);
88
88
  var l = t, c = e;
89
89
  if (c) {
90
90
  var g = c.length;
91
- for (let a = 0; a < g; a += 2) m(l, c[a]);
91
+ for (let a = 0; a < g; a += 2) u(l, c[a]);
92
92
  }
93
93
  return r.castSave(s, t, e), a.maxChangeId = s, !S && s - i >= h.snapshotMaxChangeCount && (++a.currentAclNum,
94
- o.switch(u(a)), r.saveSnapshot(p), Object.assign(a, {
94
+ n.switch(m(a)), r.saveSnapshot(p), Object.assign(a, {
95
95
  snapshotMaxChangeId: s,
96
96
  isSavingSnapshot: !0
97
97
  })), v;
98
98
  }
99
99
 
100
- function u(a) {
100
+ function m(a) {
101
101
  return t(a.aclFolder, a.currentAclNum + "_acl.txt");
102
102
  }
103
103