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
@@ -7,24 +7,26 @@ import {
7
7
  } from "./QyOpRunner.js";
8
8
 
9
9
  import {
10
- ensureParentDir as r,
11
- getSize as n,
12
- getSizeStr as d,
13
- sleep as _,
14
- setPromise as o,
15
- toBuffer as v
10
+ ensureParentDir as n,
11
+ getSize as o,
12
+ getSizeStr as g,
13
+ sleep as v,
14
+ setPromise as l,
15
+ toBuffer as _
16
16
  } from "./QyUtils.js";
17
17
 
18
18
  import {
19
19
  getDefaultOptions as a
20
20
  } from "./QyDefaultOptions.js";
21
21
 
22
+ let h = Array.isArray;
23
+
22
24
  class t extends e {
23
25
  constructor(e, t) {
24
26
  super({
25
27
  ...a("QyBinWriter"),
26
28
  ...e
27
- }, [ "start", "stop" ]), this.filePath = t, this._resetParams();
29
+ }), this.filePath = t, p(this);
28
30
  }
29
31
  getFilePath() {
30
32
  return this.filePath;
@@ -34,11 +36,11 @@ class t extends e {
34
36
  }
35
37
  save(e, t, a) {
36
38
  null == t && (t = e, e = 0);
37
- var i, s = this.lastOp;
38
- return "_op_save" === s?.opFunName ? (i = s.args, i[0] = e, i[1].push(t),
39
- a && o(s), s.promise) : (i = {
39
+ var i, r = this.lastOp;
40
+ return "_op_save" === r?.opFunName ? (i = r.args, i[0] = e, i = i[1], h(t) ? i.push(...t) : i.push(t),
41
+ a && l(r), r.promise) : (i = {
40
42
  opFunName: "_op_save",
41
- args: [ e, [ t ] ]
43
+ args: [ e, h(t) ? t : [ t ] ]
42
44
  }, a ? this.pushAndRunWithPromise(i) : this.pushAndRun(i));
43
45
  }
44
46
  truncate() {
@@ -54,41 +56,12 @@ class t extends e {
54
56
  args: [ e ]
55
57
  });
56
58
  }
57
- supressMaxFileSizeEvent() {
58
- this.maxFileSizeEmitted = !0;
59
- }
60
- _getBinData(e) {
59
+ getBinData(e) {
61
60
  var t = e.length;
62
61
  return 0 == t ? "" : 1 == t ? e[0] : Buffer.isBuffer(e[0]) ? Buffer.concat(e) : Buffer.concat(e.map(e => Buffer.from(e)));
63
62
  }
64
- async _saveBinData(e, t) {
65
- var {
66
- fileHandle: a,
67
- totalSavedSize: i,
68
- filePath: s,
69
- options: r
70
- } = this, {
71
- emitSaveEvent: n,
72
- maxFileSize: o,
73
- maxRetryInterval: l,
74
- retryIntervalFactor: h
75
- } = r, p = v(t), u = p.length, f = `size ${d(u)} (MaxId:${e}) to ` + s;
76
- let m;
77
- for (;"_op_truncate" !== this.firstOp?.opFunName; ) try {
78
- await a.appendFile(p, {
79
- flush: !0
80
- });
81
- var c = this.totalSavedSize = i + u;
82
- return n && this.emit("save", e), void (o && o < c && !this.maxFileSizeEmitted && (this.supressMaxFileSizeEvent(),
83
- this.emit("maxFileSize", c)));
84
- } catch (e) {
85
- logger.error(`Saving ${f} failed:`, e, "Truncated back to " + i), await a.truncate(i),
86
- m = m ? Math.min(l, m * h) : 1, logger.log(`Retry in ${m} seconds`),
87
- await _(m);
88
- }
89
- }
90
63
  async _op_start(e) {
91
- return e = e || this.filePath, await this._openFile(e), this;
64
+ return await i(this, e = e || this.filePath), this;
92
65
  }
93
66
  async _op_stop() {
94
67
  var {
@@ -100,11 +73,35 @@ class t extends e {
100
73
  } catch (e) {
101
74
  logger.error(`Close ${t} failed:`, e);
102
75
  }
103
- this._resetParams();
76
+ p(this);
104
77
  }
105
78
  _op_save(e, t) {
106
- t = this._getBinData(t, e);
107
- if (t) return this._saveBinData(e, t);
79
+ t = this.getBinData(t, e);
80
+ if (t) return (async (e, t, a) => {
81
+ let {
82
+ fileHandle: i,
83
+ totalSavedSize: r,
84
+ filePath: s,
85
+ options: n
86
+ } = e, {
87
+ emitSaveEvent: o,
88
+ maxFileSize: l,
89
+ maxRetryInterval: h,
90
+ retryIntervalFactor: p
91
+ } = n, u = _(a), f = u.length, c = `size ${g(f)} (MaxId:${t}) to ` + s, m;
92
+ for (;"_op_truncate" !== e.firstOp?.opFunName; ) try {
93
+ await i.appendFile(u, {
94
+ flush: !0
95
+ });
96
+ var d = e.totalSavedSize = r + f;
97
+ return o && 0 < t && e.emit("save", t), void (!e.maxFileSizeEmitted && l && d > l && (e.maxFileSizeEmitted = !0,
98
+ e.emit("maxFileSize", d)));
99
+ } catch (e) {
100
+ logger.error(`Saving ${c} failed:`, e, "Truncated back to " + r),
101
+ await i.truncate(r), m = m ? Math.min(h, m * p) : 1, logger.log(`Retry in ${m} seconds`),
102
+ await v(m);
103
+ }
104
+ })(this, e, t);
108
105
  }
109
106
  async _op_truncate() {
110
107
  var {
@@ -116,37 +113,39 @@ class t extends e {
116
113
  } catch (e) {
117
114
  logger.error(`Truncate ${t} failed:`, e);
118
115
  }
119
- this._resetParams();
116
+ p(this);
120
117
  }
121
118
  async _op_switch(e) {
122
119
  var {
123
120
  fileHandle: t,
124
121
  filePath: a
125
122
  } = this;
126
- t && a == e || (await this._openFile(e), logger.info(`Switched from ${a} to ` + e));
123
+ t && a == e || (await i(this, e), logger.info(`Switched from ${a} to ` + e));
127
124
  }
128
- async _openFile(t) {
129
- var {
130
- fileHandle: e,
131
- options: a
132
- } = this;
133
- this._resetParams();
134
- try {
135
- e && (e.close(), this.fileHandle = void 0), await r(t);
136
- var i = a.append;
137
- this.fileHandle = await s(t, i ? "a" : "w"), this.filePath = t, i && (this.totalSavedSize = await n(t));
138
- } catch (e) {
139
- logger.error(`Open ${t} failed:`, e);
140
- }
141
- }
142
- _resetParams() {
143
- Object.assign(this, {
144
- totalSavedSize: 0,
145
- maxFileSizeEmitted: !1
146
- });
125
+ }
126
+
127
+ async function i(e, t) {
128
+ var {
129
+ fileHandle: a,
130
+ options: i
131
+ } = e;
132
+ p(e);
133
+ try {
134
+ a && (a.close(), e.fileHandle = void 0), await n(t);
135
+ var r = i.append;
136
+ e.fileHandle = await s(t, r ? "a" : "w"), e.filePath = t, r && (e.totalSavedSize = await o(t));
137
+ } catch (e) {
138
+ logger.error(`Open ${t} failed:`, e);
147
139
  }
148
140
  }
149
141
 
142
+ function p(e) {
143
+ Object.assign(e, {
144
+ totalSavedSize: 0,
145
+ maxFileSizeEmitted: !1
146
+ });
147
+ }
148
+
150
149
  export {
151
150
  t as QyBinWriter
152
151
  };
package/src/QyCD.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {
2
- isString as e,
2
+ isString as i,
3
3
  pathSplit as s
4
4
  } from "./QyUtils.js";
5
5
 
@@ -7,52 +7,97 @@ class r {
7
7
  constructor(r) {
8
8
  this.qyCache = r;
9
9
  }
10
- cd(r, i = this.currentDir) {
11
- return e(r) && (r = s(r)), this.cdP(r, i);
10
+ cd(r, e = this.currentDir) {
11
+ return i(r) && (r = s(r)), this.cdP(r, e);
12
12
  }
13
- cdP(r, i = this.currentDir) {
14
- return this.currentDir = this.qyCache.getOrCreateDir(r, i), this;
13
+ cdP(r, e = this.currentDir) {
14
+ return this.currentDir = this.qyCache.getOrCreateDir(r, e), this;
15
15
  }
16
- dir(r, i = this.currentDir) {
17
- return e(r) && (r = s(r)), this.dirP(r, i);
16
+ dir(r, e = this.currentDir) {
17
+ return i(r) && (r = s(r)), this.dirP(r, e);
18
18
  }
19
- dirP(r, i = this.currentDir) {
20
- return this.qyCache.getDir(r, i);
19
+ dirP(r, e = this.currentDir) {
20
+ return this.qyCache.getDir(r, e);
21
21
  }
22
- indexDir(r, i, t = this.currentDir) {
23
- return e(r) && (r = s(r)), e(i) && (i = s(i)), this.indexDirP(r, i, t);
22
+ indexDir(r, e, t = this.currentDir) {
23
+ return i(r) && (r = s(r)), i(e) && (e = s(e)), this.indexDirP(r, e, t);
24
24
  }
25
- indexDirP(r, i, t = this.currentDir) {
26
- var e = this.qyCache, r = e.getDir(r, t);
25
+ indexDirP(r, e, t = this.currentDir) {
26
+ var i = this.qyCache, r = i.getDir(r, t);
27
27
  if (r) {
28
- t = e.getIndexDir(r);
29
- if (t) return i && 0 != i.length ? e.getDir(i, t) : t;
28
+ t = i.getIndexDir(r);
29
+ if (t) return e && 0 != e.length ? i.getDir(e, t) : t;
30
30
  }
31
31
  }
32
- file(r, i = this.currentDir) {
33
- return e(r) && (r = s(r)), this.fileP(r, i);
32
+ file(r, e = this.currentDir) {
33
+ return i(r) && (r = s(r)), this.fileP(r, e);
34
34
  }
35
- fileP(r, i = this.currentDir) {
36
- return this.qyCache.getFile(r, i);
35
+ fileP(r, e = this.currentDir) {
36
+ return this.qyCache.getFile(r, e);
37
37
  }
38
38
  triggerFile(r) {
39
39
  return this.qyCache.getTriggerFile(r);
40
40
  }
41
- view(r, i, t = this.currentDir) {
42
- return e(r) && (r = s(r)), this.viewP(r, i, t);
41
+ get triggerFileList() {
42
+ return this.qyCache.triggerFileList;
43
43
  }
44
- viewP(r, i, t = this.currentDir) {
45
- return this.qyCache.getFile(r, t)?.view(i);
44
+ rpcFile(r) {
45
+ return this.qyCache.getRpcFile(r);
46
46
  }
47
- queryFiles(r, i, t, e, s = this.currentDir) {
48
- return this.qyCache.queryFiles(r, i, t, e, s);
47
+ get rpcFileList() {
48
+ return this.qyCache.rpcFileList;
49
49
  }
50
- queryFilesMulti(r, i, t, e = this.currentDir) {
51
- return this.qyCache.queryFilesMulti(r, i, t, e);
50
+ view(r, e, t = this.currentDir) {
51
+ return i(r) && (r = s(r)), this.viewP(r, e, t);
52
+ }
53
+ viewP(r, e, t = this.currentDir) {
54
+ return this.qyCache.getFile(r, t)?.view(e);
55
+ }
56
+ queryFiles(r, e, t, i, s = this.currentDir) {
57
+ return this.qyCache.queryFiles(r, e, t, i, s);
58
+ }
59
+ queryFilesMulti(r, e, t, i = this.currentDir) {
60
+ return this.qyCache.queryFilesMulti(r, e, t, i);
61
+ }
62
+ queryTree(r, e, t, i, s, h = this.currentDir) {
63
+ return n(this.qyCache.queryFiles(r, e, i, s, h), t);
64
+ }
65
+ queryTreeMulti(r, e, t, i, s = this.currentDir) {
66
+ return n(this.qyCache.queryFilesMulti(r, t, i, s), e);
52
67
  }
53
68
  resetCurrentDir() {
54
69
  this.currentDir = void 0;
55
70
  }
71
+ fileListToTree(r, e) {
72
+ return n(r, e);
73
+ }
74
+ }
75
+
76
+ function n(r, t) {
77
+ var i, s = {};
78
+ for (i of r) {
79
+ var h, n = i.parentList;
80
+ let e = s;
81
+ for (h of n) {
82
+ var {
83
+ name: u,
84
+ fullPathHash: c
85
+ } = h;
86
+ let r = e.subdirMap;
87
+ r = r || (e.subdirMap = {}), e = (e = r[u]) || (r[u] = {
88
+ fullPathHash: c
89
+ });
90
+ }
91
+ let r = e.fileMap;
92
+ (r = r || (e.fileMap = {}))[i.name] = {
93
+ fileContent: i.view(t, !0),
94
+ fileContentKey: i.fileContentKey
95
+ };
96
+ }
97
+ return {
98
+ tree: s,
99
+ count: r.length
100
+ };
56
101
  }
57
102
 
58
103
  export {
package/src/QyCache.js CHANGED
@@ -22,51 +22,51 @@ import {
22
22
  } from "./QyTrigger.js";
23
23
 
24
24
  import {
25
- isString as n,
26
- lockExclusiveFilePath as C,
25
+ isString as C,
26
+ lockExclusiveFilePath as q,
27
27
  unlockExclusiveFilePath as i
28
28
  } from "./QyUtils.js";
29
29
 
30
30
  import {
31
- dumpStructure as q
31
+ dumpStructure as R
32
32
  } from "./QyStructure.js";
33
33
 
34
34
  import {
35
- getIndexPropPaths as l,
36
- parseNamePathAndQuery as d
35
+ getIndexPropPaths as n,
36
+ parseNamePathAndQuery as l
37
37
  } from "./QyIndex.js";
38
38
 
39
39
  import {
40
- getDefaultOptions as u
40
+ getDefaultOptions as d
41
41
  } from "./QyDefaultOptions.js";
42
42
 
43
43
  import {
44
- ensureDir as R,
44
+ ensureDir as Q,
45
45
  SpecialFilePaths as e
46
46
  } from "./QyUtils.js";
47
47
 
48
48
  import {
49
- QueryCounter as p
49
+ QueryCounter as u
50
50
  } from "./QyUnionNode.js";
51
51
 
52
52
  import {
53
- QyKVDataLoader as Q
53
+ QyKVDataLoader as S
54
54
  } from "./QyKVDataLoader.js";
55
55
 
56
56
  import {
57
- requireFromModCode as h
57
+ requireFromModCode as p
58
58
  } from "./QyMod.js";
59
59
 
60
60
  let {
61
- IndexDirPath: S,
62
- TriggerDirPath: x,
63
- RpcDirPath: O
61
+ IndexDirPath: x,
62
+ TriggerDirPath: O,
63
+ RpcDirPath: P
64
64
  } = e;
65
65
 
66
66
  class t extends r {
67
67
  constructor(r, e, t) {
68
68
  super(), e = {
69
- ...u("QyCache"),
69
+ ...d("QyCache"),
70
70
  ...e
71
71
  };
72
72
  var i = v(r, "qykv");
@@ -95,13 +95,13 @@ class t extends r {
95
95
  } = this;
96
96
  logger.log(`Starting at ${r}...`);
97
97
  try {
98
- await R(e), o.start();
98
+ await Q(e), o.start();
99
99
  var [ {
100
100
  maxChangeId: g,
101
101
  loadedMaxAclNum: n,
102
102
  qySnapshots: l,
103
103
  aclKeyValueMap: d
104
- } ] = await Promise.all([ ((r, e) => (r = new Q(r, e)).load())(e, t), C(a) ]);
104
+ } ] = await Promise.all([ ((r, e) => (r = new S(r, e)).load())(e, t), q(a) ]);
105
105
  await i.start(g, n, l, d);
106
106
  } catch (r) {
107
107
  throw o.stop(), r;
@@ -112,9 +112,9 @@ class t extends r {
112
112
  fileMap: i
113
113
  } = e;
114
114
  for (var o of t) r(o);
115
- }(s), this.indexRootDir = s.searchOrCreateSubdir(S);
115
+ }(s), this.indexRootDir = s.searchOrCreateSubdir(x);
116
116
  var u = this, e = u.rootDir;
117
- e.triggerNodes = [ new f() ], u.triggerRootDir = e.searchOrCreateSubdir(x);
117
+ e.triggerNodes = [ new f() ], u.triggerRootDir = e.searchOrCreateSubdir(O);
118
118
  for (p of u.triggerRootDir.fileList) {
119
119
  var {
120
120
  name: p,
@@ -127,15 +127,15 @@ class t extends r {
127
127
  u.insertTriggerToTree(p, h, c, D);
128
128
  }
129
129
  var y = this;
130
- y.rpcRootDir = y.rootDir.searchOrCreateSubdir(O);
130
+ y.rpcRootDir = y.rootDir.searchOrCreateSubdir(P);
131
131
  for (m of y.rpcRootDir.fileList) {
132
132
  var {
133
133
  name: m,
134
134
  fileContent: F
135
135
  } = m;
136
- F && (F = F.modCode, F) && y.insertRpc(m, F);
136
+ C(F) && y.insertRpc(m, F);
137
137
  }
138
- return t.dumpStructureAtStart && await q(v(r, "qystruct"), s), logger.log("Started."),
138
+ return t.dumpStructureAtStart && await R(v(r, "qystruct"), s), logger.log("Started."),
139
139
  this;
140
140
  }
141
141
  async stop() {
@@ -170,16 +170,16 @@ class t extends r {
170
170
  return t && s.save(r, t), a.save(r, e, i, o);
171
171
  }
172
172
  getFile(r, e = this.rootDir) {
173
- return r.isFile ? r : n(r) ? e.getFile(r) : e.searchFile(r);
173
+ return r.isFile ? r : C(r) ? e.getFile(r) : e.searchFile(r);
174
174
  }
175
175
  getDir(r, e = this.rootDir) {
176
- return r.isDir ? r : n(r) ? e.getSubdir(r) : e.searchSubdir(r);
176
+ return r.isDir ? r : C(r) ? e.getSubdir(r) : e.searchSubdir(r);
177
177
  }
178
178
  getOrCreateFile(r, e = this.rootDir) {
179
- return r.isFile ? r : n(r) ? e.getOrCreateFile(r) : e.searchOrCreateFile(r);
179
+ return r.isFile ? r : C(r) ? e.getOrCreateFile(r) : e.searchOrCreateFile(r);
180
180
  }
181
181
  getOrCreateDir(r, e = this.rootDir) {
182
- return r.isDir ? r : n(r) ? e.getOrCreateSubdir(r) : e.searchOrCreateSubdir(r);
182
+ return r.isDir ? r : C(r) ? e.getOrCreateSubdir(r) : e.searchOrCreateSubdir(r);
183
183
  }
184
184
  getIndexDir(r) {
185
185
  return this.indexRootDir.getSubdir(r.fullPathHash);
@@ -193,17 +193,23 @@ class t extends r {
193
193
  getOrCreateTriggerFile(r) {
194
194
  return this.triggerRootDir.getOrCreateFile(r);
195
195
  }
196
+ get triggerFileList() {
197
+ return this.triggerRootDir.fileList;
198
+ }
196
199
  getRpcFile(r) {
197
200
  return this.rpcRootDir.getFile(r);
198
201
  }
199
202
  getOrCreateRpcFile(r) {
200
203
  return this.rpcRootDir.getOrCreateFile(r);
201
204
  }
205
+ get rpcFileList() {
206
+ return this.rpcRootDir.fileList;
207
+ }
202
208
  insertTriggerToTree(r, e, t, i) {
203
209
  var {
204
210
  rootDir: o,
205
211
  qyDB: a
206
- } = this, i = h("trigger", r, i, a);
212
+ } = this, i = p("trigger", r, i, a);
207
213
  o.triggerNodes[0].insertTrigger(r, e, t, i), g(o, e);
208
214
  }
209
215
  removeTriggerFromTree(r, e) {
@@ -214,19 +220,19 @@ class t extends r {
214
220
  var {
215
221
  rpcFunMap: t,
216
222
  qyDB: i
217
- } = this, e = h("rpc", r, e, i);
223
+ } = this, e = p("rpc", r, e, i);
218
224
  e && (t[r] = e);
219
225
  }
220
226
  removeRpc(r) {
221
227
  delete this.rpcFunMap[r];
222
228
  }
223
229
  queryFiles(r, e, t, i, o = this.rootDir) {
224
- var a = [], t = (n(e) && null == t && (t = 1), new p(t, i)), i = this.options.queryAutoCreateIndex;
225
- return c(r, e, a, t, o, i), a;
230
+ var a = [], t = (C(e) && !t && (t = 1), new u(t, i)), i = this.options.queryAutoCreateIndex;
231
+ return h(r, e, a, t, o, i), a;
226
232
  }
227
233
  queryFilesMulti(r, e, t, i = this.rootDir) {
228
- var o, a, s = [], g = new p(e, t), n = this.options.queryAutoCreateIndex;
229
- for ([ o, a ] of r) c(o, a, s, g, i, n);
234
+ var o, a, s = [], g = new u(e, t), n = this.options.queryAutoCreateIndex;
235
+ for ([ o, a ] of r) h(o, a, s, g, i, n);
230
236
  return s;
231
237
  }
232
238
  async callRpc(e, r, t) {
@@ -240,8 +246,8 @@ class t extends r {
240
246
  }
241
247
  }
242
248
 
243
- function c(r, e, t, i, o, a) {
244
- e && (a = a ? l(e) : void 0, d(r, o, a, e, t, i));
249
+ function h(r, e, t, i, o, a) {
250
+ e && (a = a ? n(e) : void 0, l(r, o, a, e, t, i));
245
251
  }
246
252
 
247
253
  export {
package/src/QyDB.js CHANGED
@@ -11,11 +11,11 @@ import {
11
11
  } from "./QyBatch.js";
12
12
 
13
13
  import {
14
- QyCache as a
14
+ QyCache as n
15
15
  } from "./QyCache.js";
16
16
 
17
17
  import {
18
- getDefaultOptions as n
18
+ getDefaultOptions as a
19
19
  } from "./QyDefaultOptions.js";
20
20
 
21
21
  import {
@@ -34,7 +34,7 @@ class h extends t {
34
34
  s(e) && (t = e, e = d), super(), Object.assign(this, {
35
35
  rootFolder: e,
36
36
  options: {
37
- ...n("QyDB"),
37
+ ...a("QyDB"),
38
38
  ...t
39
39
  }
40
40
  });
@@ -44,7 +44,7 @@ class h extends t {
44
44
  return this.qyCache || (e = {
45
45
  ...this.options,
46
46
  ...e
47
- }, t = new a(this.rootFolder, e, this), Object.assign(this, {
47
+ }, t = new n(this.rootFolder, e, this), Object.assign(this, {
48
48
  qyCache: t,
49
49
  fetch: new r(t),
50
50
  batch: new i(t, e),
@@ -144,32 +144,6 @@ class h extends t {
144
144
  callRpc(e, t, r) {
145
145
  return this.qyCache.callRpc(e, t, r);
146
146
  }
147
- fileListToTree(e, t) {
148
- var r, i = t, a = {};
149
- for (r of e) {
150
- var n, s = r.parentList;
151
- let t = a;
152
- for (n of s) {
153
- var {
154
- name: m,
155
- fullPathHash: d
156
- } = n;
157
- let e = t.subdirMap;
158
- e = e || (t.subdirMap = {}), t = (t = e[m]) || (e[m] = {
159
- fullPathHash: d
160
- });
161
- }
162
- let e = t.fileMap;
163
- (e = e || (t.fileMap = {}))[r.name] = {
164
- fileContent: r.view(i, !0),
165
- fileContentKey: r.fileContentKey
166
- };
167
- }
168
- return {
169
- tree: a,
170
- count: e.length
171
- };
172
- }
173
147
  }
174
148
 
175
149
  export {
@@ -43,7 +43,8 @@ let t = {
43
43
  },
44
44
  QySnapshots: {
45
45
  pMOutdatedPercent: 30,
46
- minSnapshotKeyCount: 3e3
46
+ minSnapshotKeyCount: 3e3,
47
+ minLenToCompress: 4e3
47
48
  },
48
49
  QyKVDataCleaner_Worker: {
49
50
  compressRedundantFile: !1
package/src/QyFetch.js CHANGED
@@ -7,24 +7,10 @@ class e extends r {
7
7
  super(r), Object.assign(this, {
8
8
  stack: []
9
9
  });
10
- }
11
- dir(r, e) {
12
- return u(this, super.dir(r, e));
13
- }
14
- indexDir(r, e, s) {
15
- return u(this, super.indexDir(r, e, s));
16
- }
17
- file(r, e) {
18
- return u(this, super.file(r, e));
19
- }
20
- view(r, e, s) {
21
- return u(this, super.view(r, e, s));
22
- }
23
- queryFiles(r, e, s, t, i) {
24
- return u(this, super.queryFiles(r, e, s, t, i));
25
- }
26
- queryFilesMulti(r, e, s, t) {
27
- return u(this, super.queryFilesMulti(r, e, s, t));
10
+ for (let s of [ "dir", "indexDir", "file", "view", "triggerFile", "triggerFiles", "rpcFile", "rpcFiles", "queryFiles", "queryFilesMulti", "queryTree", "queryTreeMulti" ]) this[s] = (...r) => {
11
+ return e = this, r = super[s].apply(this, r), e.stack.push(r), e;
12
+ var e;
13
+ };
28
14
  }
29
15
  run() {
30
16
  var r = this.stack;
@@ -32,10 +18,6 @@ class e extends r {
32
18
  }
33
19
  }
34
20
 
35
- function u(r, e) {
36
- return r.stack.push(e), r;
37
- }
38
-
39
21
  export {
40
22
  e as QyFetch
41
23
  };
@@ -28,7 +28,7 @@ class n extends o {
28
28
  (e = {
29
29
  ...s("QyFileLogger"),
30
30
  ...e
31
- }).append = !e.clearLogAtStart, super(e, [ "stop" ], [ "startFileConsole", "switchFileConsole" ]),
31
+ }).append = !e.clearLogAtStart, super(e, [], [ "startFileConsole", "switchFileConsole" ]),
32
32
  Object.assign(this, {
33
33
  logFileFolder: t,
34
34
  qyLogFileSaver: new r(this, e)
@@ -40,7 +40,7 @@ class n extends o {
40
40
  getDateDirPath() {
41
41
  return this.dateDirPath;
42
42
  }
43
- async start() {
43
+ async _op_start() {
44
44
  var t = new Date(), t = (this.timeoutRef = setTimeout(this.switch.bind(this), g(t)),
45
45
  this.dateDirPath = h(this, t));
46
46
  this.qyLogFileSaver.start(a(t, "change.txt")), await this.startFileConsole(t);