datafolder 1.0.10 → 1.0.12

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