datafolder 1.0.6 → 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 (57) hide show
  1. package/README.md +3 -1
  2. package/internal.md +119 -0
  3. package/package.json +2 -2
  4. package/scripts/convertBinFiles.js +49 -0
  5. package/scripts/fastify.js +2 -2
  6. package/src/QyCD.js +19 -10
  7. package/src/QyCache.js +6 -0
  8. package/src/QyFetch.js +1 -1
  9. package/src/QyKVData.js +21 -12
  10. package/src/QyKVDataSaver_Worker.js +7 -7
  11. package/src/QySnapshotCompactor_Worker.js +19 -18
  12. package/src/QySnapshotSaver_Worker.js +54 -52
  13. package/src/QySnapshots.js +72 -64
  14. package/src/rpc/getTriggerFiles.js +1 -0
  15. package/src/soc_pokec.js +7 -7
  16. package/static/datafolderui/QyStyledElement.js +6 -15
  17. package/static/datafolderui/QyUIFolderTree.js +71 -62
  18. package/static/datafolderui/QyUIFolderViewer.js +210 -0
  19. package/static/datafolderui/QyUIUtils.js +1 -1
  20. package/static/datafolderui/display-tree.js +18 -57
  21. package/static/datafolderui/explore-tree.js +10 -10
  22. package/static/datafolderui/folder-tree.js +71 -2
  23. package/static/datafolderui/json-view.js +7 -3
  24. package/static/datafolderui/main-page.js +22 -19
  25. package/static/datafolderui/query-editor.js +1 -1
  26. package/static/datafolderui/trigger-editor.js +30 -0
  27. package/data/sampleDataFolder/qykv/history/acl/1_acl.txt +0 -1
  28. package/data/sampleDataFolder/qykv/history/acl/2_acl.txt +0 -1
  29. package/data/sampleDataFolder/qykv/history/acl/3_acl.txt +0 -1
  30. package/data/sampleDataFolder/qykv/history/acl/4_acl.txt +0 -1
  31. package/data/sampleDataFolder/qykv/history/acl/5_acl.txt +0 -1
  32. package/data/sampleDataFolder/qykv/snapshot/1/1_pM.txt +0 -0
  33. package/data/sampleDataFolder/qykv/snapshot/1/1_prefixPM.txt +0 -0
  34. package/data/sampleDataFolder/qykv/snapshot/1/1_vL.txt +0 -10
  35. package/data/sampleDataFolder/qykv/snapshot/2/1_pM.txt +0 -0
  36. package/data/sampleDataFolder/qykv/snapshot/2/1_prefixPM.txt +0 -0
  37. package/data/sampleDataFolder/qykv/snapshot/2/1_vL.txt +0 -1
  38. package/data/sampleDataFolder/qykv/snapshot/3/1_pM.txt +0 -0
  39. package/data/sampleDataFolder/qykv/snapshot/3/1_prefixPM.txt +0 -0
  40. package/data/sampleDataFolder/qykv/snapshot/3/1_vL.txt +0 -1
  41. package/data/sampleDataFolder/qykv/snapshot/4/1_pM.txt +0 -0
  42. package/data/sampleDataFolder/qykv/snapshot/4/1_prefixPM.txt +0 -0
  43. package/data/sampleDataFolder/qykv/snapshot/4/1_vL.txt +0 -1
  44. package/data/sampleDataFolder/qykv/snapshot/4/2_pM.txt +0 -0
  45. package/data/sampleDataFolder/qykv/snapshot/4/2_prefixPM.txt +0 -0
  46. package/data/sampleDataFolder/qykv/snapshot/4/2_vL.txt +0 -9
  47. package/data/sampleDataFolder/qykv/snapshot/5/1_pM.txt +0 -0
  48. package/data/sampleDataFolder/qykv/snapshot/5/1_prefixPM.txt +0 -0
  49. package/data/sampleDataFolder/qykv/snapshot/5/1_vL.txt +0 -55
  50. package/data/sampleDataFolder/qykv/snapshot/info/1.json +0 -1
  51. package/data/sampleDataFolder/qykv/snapshot/info/2.json +0 -1
  52. package/data/sampleDataFolder/qykv/snapshot/info/3.json +0 -1
  53. package/data/sampleDataFolder/qykv/snapshot/info/4.json +0 -1
  54. package/data/sampleDataFolder/qykv/snapshot/info/5.json +0 -1
  55. package/data/sampleDataFolder/qylog/2026/02/15/08/change.txt +0 -58
  56. package/data/sampleDataFolder/qylog/2026/02/15/08/stderr.txt +0 -11
  57. package/data/sampleDataFolder/qylog/2026/02/15/08/stdout.txt +0 -36
@@ -1,5 +1,5 @@
1
1
  import {
2
- join as e
2
+ join as t
3
3
  } from "node:path";
4
4
 
5
5
  import {
@@ -27,123 +27,125 @@ class s extends a {
27
27
  ...o("QySnapshotSaver_Worker"),
28
28
  ...s
29
29
  }, [], [ "waitForSnapshotSaved" ]);
30
- var t = e(a, "snapshot");
30
+ var e = t(a, "snapshot");
31
31
  Object.assign(this, {
32
32
  kvFolder: a,
33
- snapshotFolder: t,
34
- qySnapshots: new n(t, s),
33
+ snapshotFolder: e,
34
+ qySnapshots: new n(e, s),
35
35
  qyKVDataCleaner: new p(this, a, s),
36
- aclKeyValueMap: {}
36
+ aclKeyValueMap: {},
37
+ snapshotSavedChangeId: 0
37
38
  });
38
39
  }
39
- _op_start(a, s, t) {
40
- this.maxChangeId = a, this.qyKVDataCleaner.start(), s && this.waitForSnapshotSaved(h(this, s, a, t));
40
+ _op_start(a, s, e) {
41
+ this.maxChangeId = a, this.qyKVDataCleaner.start(), s && this.waitForSnapshotSaved(h(this, s, a, e));
41
42
  }
42
- castSave(a, s, t) {
43
+ castSave(a, s, e) {
43
44
  var {
44
- aclKeyValueMap: e,
45
+ aclKeyValueMap: t,
45
46
  qySnapshots: o
46
47
  } = this;
47
- o.applyCmdObj(s, e, t), this.maxChangeId = a;
48
+ o.applyCmdObj(s, t, e), this.maxChangeId = a;
48
49
  }
49
50
  async saveSnapshot(a) {
50
51
  var {
51
52
  maxChangeId: s,
52
- aclKeyValueMap: t
53
+ aclKeyValueMap: e
53
54
  } = this;
54
- this.aclKeyValueMap = {}, this.waitForSnapshotSaved(h(this, a, s, t));
55
+ this.aclKeyValueMap = {}, this.waitForSnapshotSaved(h(this, a, s, e));
55
56
  }
56
57
  releaseSnapshot(a) {
57
- var s, t = this.qySnapshots, {
58
- numToSnapshotMap: e,
58
+ var s, e = this.qySnapshots, {
59
+ numToSnapshotMap: t,
59
60
  keyToSnapshotMap: o
60
- } = t, e = e[a], a = e.keyValueMap;
61
- for (s in delete e.keyValueMap, a) delete o[s];
62
- t.delSnapshot(e), global.gc && global.gc();
61
+ } = e, t = t[a], a = t.keyValueMap;
62
+ for (s in delete t.keyValueMap, a) delete o[s];
63
+ e.delSnapshot(t), global.gc && global.gc();
63
64
  }
64
65
  async _op_stop() {
65
66
  var {
66
67
  qySnapshots: a,
67
- qyKVDataCleaner: s
68
+ qyKVDataCleaner: s,
69
+ snapshotSavedChangeId: e
68
70
  } = this;
69
- a.closeAllFDs(), await s.stop();
71
+ return a.closeAllFDs(), await s.stop(), e;
70
72
  }
71
73
  async _op_waitForSnapshotSaved({
72
74
  saveMaxSnapshotInfoPromise: a,
73
75
  outdates: s
74
76
  }) {
75
- var t, {
77
+ var e, {
76
78
  snapshotNum: a,
77
- maxChangeId: e
79
+ maxChangeId: t
78
80
  } = await a, {
79
81
  emptySnapshotNumList: s,
80
82
  pMChangeList: o,
81
83
  vLChange: n,
82
84
  snapshotInfoMap: p,
83
85
  promises: h
84
- } = s, {
86
+ } = (this.snapshotSavedChangeId = t, s), {
85
87
  qyKVDataCleaner: r,
86
88
  qySnapshots: i,
87
89
  options: l
88
90
  } = this;
89
- for (t in r.cleanAclFiles(a), 0 < h.length && await Promise.all(h), h.length = 0,
90
- p) h.push(i.saveSnapshotInfo(t, p[t]));
91
+ for (e in r.cleanAclFiles(a), 0 < h.length && await Promise.all(h), h.length = 0,
92
+ p) h.push(i.saveSnapshotInfo(e, p[e]));
91
93
  0 < h.length && await Promise.all(h), 0 < s.length && r.removeSnapshotsFiles(s),
92
94
  0 < o.length && r.cleanPMFiles(o), 0 < n.length && r.cleanVLFiles(n[0], n[1]);
93
95
  let u;
94
96
  a = i.snapshotCount;
95
97
  0 < a && a >= l.maxInMemSnapshotCount && (delete (s = (a => {
96
- let s = a.qySnapshots.numToSnapshotMap, t;
97
- for (var e in s) {
98
- var o = s[e];
99
- (!t || t.snapshotNum > e) && (t = o);
98
+ let s = a.qySnapshots.numToSnapshotMap, e;
99
+ for (var t in s) {
100
+ var o = s[t];
101
+ (!e || e.snapshotNum > t) && (e = o);
100
102
  }
101
- return t;
103
+ return e;
102
104
  })(this)).prefixPM, delete (u = {
103
105
  ...s
104
106
  }).keyValueMap, delete s.posMap, s.isOut = !0, logger.info("Sending snapshot " + s.snapshotNum)),
105
- this.castParent("onSnapshotSavedChangeId", e, u);
107
+ this.castParent("onSnapshotSavedChangeId", t, u);
106
108
  }
107
109
  }
108
110
 
109
- function h(a, s, t, e) {
111
+ function h(a, s, e, t) {
110
112
  var o = (a => {
111
- var s, t = a.qySnapshots, {
112
- emptySnapshotNumList: e,
113
+ var s, e = a.qySnapshots, {
114
+ emptySnapshotNumList: t,
113
115
  combiningSnapshotList: a,
114
116
  pMCompactSnapshotList: o
115
- } = t.calOutdates(), n = {}, p = [], h = [], r = [];
117
+ } = e.calOutdates(), n = {}, p = [], h = [], r = [];
116
118
  for (s of o) {
117
119
  var {
118
120
  snapshotNum: i,
119
121
  info: l
120
122
  } = s;
121
- p.push(t.savePosMap(s)), h.push([ i, l.pMVersion ]), n[i] = {
123
+ p.push(e.savePosMap(s)), h.push([ i, l.pMVersion ]), n[i] = {
122
124
  ...l
123
125
  };
124
126
  }
125
- let u = a.length, m;
127
+ let u = a.length, S;
126
128
  if (0 < u) {
127
- var S, y = t.keyToSnapshotMap, {
128
- keyValueMap: d,
129
+ var m, d = e.keyToSnapshotMap, {
130
+ keyValueMap: y,
129
131
  info: o,
130
132
  snapshotNum: v
131
- } = m = t.getMaxCombinedSnapshot(a);
132
- for (S of a) if (m != S) {
133
+ } = S = e.getMaxCombinedSnapshot(a);
134
+ for (m of a) if (S != m) {
133
135
  var g, {
134
136
  keyValueMap: M,
135
137
  snapshotNum: f
136
- } = S;
137
- for (g in M) d[g] = M[g], y[g] = m;
138
- t.delSnapshot(S), e.push(f);
138
+ } = m;
139
+ for (g in M) y[g] = M[g], d[g] = S;
140
+ e.delSnapshot(m), t.push(f);
139
141
  }
140
- p.push(t.saveKeyValueMap(m)), h.push([ v, o.pMVersion ]), r.push(v, o.vLVersion),
142
+ p.push(e.saveKeyValueMap(S)), h.push([ v, o.pMVersion ]), r.push(v, o.vLVersion),
141
143
  n[v] = {
142
144
  ...o
143
145
  };
144
146
  }
145
147
  return {
146
- emptySnapshotNumList: e,
148
+ emptySnapshotNumList: t,
147
149
  pMChangeList: h,
148
150
  vLChange: r,
149
151
  snapshotInfoMap: n,
@@ -151,27 +153,27 @@ function h(a, s, t, e) {
151
153
  };
152
154
  })(a), s = {
153
155
  snapshotNum: s,
154
- keyValueMap: e,
156
+ keyValueMap: t,
155
157
  outdatedCount: 0,
156
158
  info: {
157
- maxChangeId: t,
159
+ maxChangeId: e,
158
160
  pMVersion: 0,
159
161
  vLVersion: 0
160
162
  }
161
- }, e = (a.qySnapshots.addMaxSnapshot(s), (async (a, s) => {
163
+ }, t = (a.qySnapshots.addMaxSnapshot(s), (async (a, s) => {
162
164
  await (a = a.qySnapshots).saveKeyValueMap(s);
163
165
  var {
164
166
  snapshotNum: s,
165
- info: t
167
+ info: e
166
168
  } = s;
167
- return await a.saveSnapshotInfo(s, t), logger.log("Created snapshot " + s),
169
+ return await a.saveSnapshotInfo(s, e), logger.log("Created snapshot " + s),
168
170
  {
169
171
  snapshotNum: s,
170
- maxChangeId: t.maxChangeId
172
+ maxChangeId: e.maxChangeId
171
173
  };
172
174
  })(a, s));
173
175
  return {
174
- saveMaxSnapshotInfoPromise: e,
176
+ saveMaxSnapshotInfoPromise: t,
175
177
  outdates: o
176
178
  };
177
179
  }
@@ -6,14 +6,14 @@ import {
6
6
 
7
7
  import {
8
8
  readdir as l,
9
- readFile as m
9
+ readFile as r
10
10
  } from "node:fs/promises";
11
11
 
12
12
  import {
13
13
  join as s
14
14
  } from "node:path";
15
15
 
16
- import d from "node:zlib";
16
+ import m from "node:zlib";
17
17
 
18
18
  import {
19
19
  getDefaultOptions as n
@@ -21,21 +21,21 @@ import {
21
21
 
22
22
  import {
23
23
  Hash_Key_Length as u,
24
- folderOrFileExists as v,
25
- listToMap as r,
26
- isEmptyObj as f,
27
- isString as M
24
+ folderOrFileExists as d,
25
+ listToMap as f,
26
+ isEmptyObj as h,
27
+ isString as v
28
28
  } from "./QyUtils.js";
29
29
 
30
30
  import {
31
- QyBinWriter as g
31
+ QyBinWriter as M
32
32
  } from "./QyBinWriter.js";
33
33
 
34
34
  import {
35
- bufferToNums as y,
36
- numsToBuffer as S,
37
- applyAclChange as h,
38
- iterCmdKeys as c
35
+ bufferToNums as g,
36
+ numsToBuffer as y,
37
+ applyAclChange as c,
38
+ iterCmdKeys as S
39
39
  } from "./QyAcl.js";
40
40
 
41
41
  import {
@@ -72,38 +72,34 @@ class t {
72
72
  async loadSnapshotInfos() {
73
73
  let {
74
74
  snapshotInfoFolder: t,
75
- qyJsonSaver: f,
76
- numToSnapshotMap: h
75
+ qyJsonSaver: n,
76
+ numToSnapshotMap: r
77
77
  } = this;
78
- if (await v(t)) {
78
+ if (await d(t)) {
79
79
  var a = (await l(t)).filter(t => /^[1-9]/.test(t)).map(t => parseInt(t)).sort((t, a) => t - a);
80
- let p = 0, u = 0;
80
+ let e = 0, s = 0;
81
81
  await Promise.all(a.map(async t => {
82
- var a = await f.loadFromFile(t + ".json"), o = h[t] = {
82
+ var a = await n.loadFromFile(t + ".json"), o = r[t] = {
83
83
  snapshotNum: t,
84
84
  info: a,
85
85
  posMap: {},
86
86
  outdatedCount: 0
87
- };
88
- ++this.snapshotCount, t > p && (p = t, u = a.maxChangeId);
89
- var t = o, a = V(a = this, t), e = (P.info("Loading " + a), await m(a)), s = e.length, n = t.prefixPM = {};
90
- for (let t = 0; t < s; ) {
91
- var r = t + k, i = e.toString("latin1", t, r), i = n[i] = [];
92
- t = y(e, r, i);
93
- }
87
+ }, t = (++this.snapshotCount, t > e && (e = t, s = a.maxChangeId),
88
+ this), a = o;
89
+ t = k(t, a), P.info("Loading " + t), a.prefixPM = await V(t);
94
90
  })), Object.assign(this, {
95
- maxSnapshotNum: p,
96
- snapshotMaxChangeId: u
91
+ maxSnapshotNum: e,
92
+ snapshotMaxChangeId: s
97
93
  });
98
94
  var {
99
95
  numToSnapshotMap: o,
100
- prefixMap: e
96
+ prefixMap: i
101
97
  } = this;
102
- for (r of a) {
103
- var s, n = o[r], r = n.prefixPM;
104
- for (s in r) {
105
- var i = e[s];
106
- i ? i.push(n) : e[s] = [ n ];
98
+ for (f of a) {
99
+ var p, u = o[f], f = u.prefixPM;
100
+ for (p in f) {
101
+ var h = i[p];
102
+ h ? h.push(u) : i[p] = [ u ];
107
103
  }
108
104
  }
109
105
  }
@@ -116,14 +112,14 @@ class t {
116
112
  var a, o = this.options.minLenToCompress, {
117
113
  keyValueMap: e,
118
114
  info: s
119
- } = t, n = (++s.vLVersion, new g()), r = (n.start(this.getVLFilePath(t)),
115
+ } = t, n = (++s.vLVersion, new M()), r = (n.start(this.getVLFilePath(t)),
120
116
  Object.keys(e).sort()), i = {};
121
117
  let p = 0, u = 0, f, h;
122
118
  for (a of r) {
123
119
  var l = e[a];
124
120
  let t;
125
- null == l ? t = T : (h = Buffer.isBuffer(l) ? (f = l, 0) : M(l) ? (f = l.length >= o ? (n.save(j),
126
- d.zstdCompressSync(l)) : (n.save(F), Buffer.from(l)), 1) : (f = Buffer.from(JSON.stringify(w(a) && !x(l) ? Object.keys(l) : l)),
121
+ null == l ? t = K : (h = Buffer.isBuffer(l) ? (f = l, 0) : v(l) ? (f = l.length >= o ? (n.save(j),
122
+ m.zstdCompressSync(l)) : (n.save(F), Buffer.from(l)), 1) : (f = Buffer.from(JSON.stringify(Q(a) && !x(l) ? Object.keys(l) : l)),
127
123
  0), n.save([ f, O ]), l = h + f.length, t = [ p, l ], p += l + 1), i[a] = t,
128
124
  ++u;
129
125
  }
@@ -160,12 +156,12 @@ class t {
160
156
  var e = o.length;
161
157
  for (let t = 0; t < e; t += 2) {
162
158
  var s = o[t], n = o[t + 1];
163
- a[s] = null != n && w(s) ? r(n) : n;
159
+ a[s] = null != n && Q(s) ? f(n) : n;
164
160
  }
165
161
  }
166
- c(t, t => {
162
+ S(t, t => {
167
163
  t in a || (a[t] = this.getValueSync(t)), this.removeKey(t);
168
- }), h(a, t);
164
+ }), c(a, t);
169
165
  }
170
166
  getValueSync(t) {
171
167
  var a = ((t, a) => {
@@ -182,7 +178,7 @@ class t {
182
178
  posMap: s,
183
179
  prefixPM: n
184
180
  } = a;
185
- if (n = n[o]) return [ n, e ] = n, n = B(t, t.getPMFilePath(a), n, e),
181
+ if (n = n[o]) return [ n, e ] = n, n = T(t, t.getPMFilePath(a), n, e),
186
182
  t.loadPartialPosMapBuffer(a, o, n), s;
187
183
  })(t, s, n);
188
184
  if (i && a in i) return s;
@@ -199,25 +195,18 @@ class t {
199
195
  var [ e, o ] = o;
200
196
  if (0 != o) {
201
197
  var s = this;
202
- if (a = s.getVLFilePath(a), s = B(s, a, e, o)) return (a = s[0]) == L ? s.toString("utf8", 1) : a == b ? d.zstdDecompressSync(s.subarray(1)).toString() : (e = JSON.parse(s),
203
- w(t) ? r(e) : e);
198
+ if (a = s.getVLFilePath(a), s = T(s, a, e, o)) return (a = s[0]) == L ? s.toString("utf8", 1) : a == b ? m.zstdDecompressSync(s.subarray(1)).toString() : (e = JSON.parse(s),
199
+ Q(t) ? f(e) : e);
204
200
  }
205
201
  }
206
202
  }
207
203
  }
208
- iterPMBuffer(a, o) {
209
- var e = a.length;
210
- for (let t = 0; t < e; ) {
211
- var s = t + u, n = a.toString("latin1", t, s), r = [];
212
- t = y(a, s, r), o(n, r);
213
- }
214
- }
215
204
  loadPartialPosMapBuffer(o, t, a) {
216
205
  let {
217
206
  posMap: e,
218
207
  prefixPM: s
219
208
  } = o, n = (delete s[t], this).keyToSnapshotMap;
220
- this.iterPMBuffer(a, (t, a) => {
209
+ N(a, (t, a) => {
221
210
  t in n ? ++o.outdatedCount : (e[t] = a, n[t] = o);
222
211
  });
223
212
  }
@@ -235,10 +224,10 @@ class t {
235
224
  } = n;
236
225
  for (t in r) {
237
226
  var u, f = r[t];
238
- f.isOut || (100 == (u = Q(f)) ? (this.delSnapshot(f), a.push(t)) : p < u ? (N(f) ? o : s).push(f) : Math.round(f.outdatedCount / f.info.totalCount * 100) > i ? e.push(f) : (u = this,
239
- f.info.totalCount < u.options.minSnapshotKeyCount && N(f) && o.push(f)));
227
+ f.isOut || (100 == (u = D(f)) ? (this.delSnapshot(f), a.push(t)) : p < u ? (B(f) ? o : s).push(f) : Math.round(f.outdatedCount / f.info.totalCount * 100) > i ? e.push(f) : (u = this,
228
+ f.info.totalCount < u.options.minSnapshotKeyCount && B(f) && o.push(f)));
240
229
  }
241
- return 1 == o.length && Q(o[0]) < p && (o.length = 0), 0 < e.length && P.log("pMCompacts:" + e.map(t => t.snapshotNum)),
230
+ return 1 == o.length && D(o[0]) < p && (o.length = 0), 0 < e.length && P.log("pMCompacts:" + e.map(t => t.snapshotNum)),
242
231
  0 < s.length && P.log("vLCompacts:" + s.map(t => t.snapshotNum)), 0 < o.length && P.log("combiningSnapshots:" + o.map(t => t.snapshotNum)),
243
232
  {
244
233
  emptySnapshotNumList: a,
@@ -282,18 +271,18 @@ class t {
282
271
  outdatedCount: e,
283
272
  info: s,
284
273
  posMap: n
285
- } = t, r = (s.outdatedCount += e, t.outdatedCount = 0, ++s.pMVersion, new g()), i = (r.start(this.getPMFilePath(t)),
274
+ } = t, r = (s.outdatedCount += e, t.outdatedCount = 0, ++s.pMVersion, new M()), i = (r.start(this.getPMFilePath(t)),
286
275
  t.prefixPM = {});
287
276
  let p = 0, u = 0, f;
288
277
  for (o of a = a || Object.keys(n).sort()) {
289
278
  null == f ? f = I(o) : o.startsWith(f) || (i[f] = [ p, u ], f = I(o),
290
279
  p += u, u = 0);
291
- var h = Buffer.from(o), l = S(n[o]);
280
+ var h = Buffer.from(o), l = y(n[o]);
292
281
  r.save([ h, l ]), u += h.length + l.length;
293
282
  }
294
283
  return null != f && (i[f] = [ p, u ]), Promise.all([ r.stop(), ((t, a) => {
295
- var o, e = new g(), s = (e.start(V(t, a)), a).prefixPM;
296
- for (o in s) e.save([ Buffer.from(o), S(s[o]) ]);
284
+ var o, e = new M(), s = (e.start(k(t, a)), a).prefixPM;
285
+ for (o in s) e.save([ Buffer.from(o), y(s[o]) ]);
297
286
  return e.stop();
298
287
  })(this, t) ]);
299
288
  }
@@ -313,7 +302,24 @@ class t {
313
302
  }
314
303
  }
315
304
 
316
- function B(t, a, o, e) {
305
+ function N(a, o) {
306
+ var e = a.length;
307
+ for (let t = 0; t < e; ) {
308
+ var s = t + u, n = a.toString("latin1", t, s), r = [];
309
+ t = g(a, s, r), o(n, r);
310
+ }
311
+ }
312
+
313
+ async function V(t) {
314
+ var a = await r(t), o = a.length, e = {};
315
+ for (let t = 0; t < o; ) {
316
+ var s = t + w, n = e[a.toString("latin1", t, s)] = [];
317
+ t = g(a, s, n);
318
+ }
319
+ return e;
320
+ }
321
+
322
+ function T(t, a, o, e) {
317
323
  var s = ((t, a) => {
318
324
  let o = t.fDMap, e = o[a];
319
325
  if (!e) {
@@ -334,15 +340,15 @@ function B(t, a, o, e) {
334
340
  return n;
335
341
  }
336
342
 
337
- function N(t) {
343
+ function B(t) {
338
344
  var {
339
345
  keyValueMap: a,
340
346
  prefixPM: o
341
347
  } = t;
342
- return a || null == o || f(t.prefixPM);
348
+ return a || null == o || h(t.prefixPM);
343
349
  }
344
350
 
345
- function V(t, a) {
351
+ function k(t, a) {
346
352
  var {
347
353
  snapshotNum: a,
348
354
  info: o
@@ -355,17 +361,17 @@ function a(t, a) {
355
361
  null != o && (e(o), delete t[a]);
356
362
  }
357
363
 
358
- let T = [ 0, 0 ], k = 3;
364
+ let K = [ 0, 0 ], w = 3;
359
365
 
360
366
  function I(t) {
361
- return t.substring(0, k);
367
+ return t.substring(0, w);
362
368
  }
363
369
 
364
- function w(t) {
370
+ function Q(t) {
365
371
  return !t.startsWith("c");
366
372
  }
367
373
 
368
- function Q(t) {
374
+ function D(t) {
369
375
  var {
370
376
  outdatedCount: t,
371
377
  info: a
@@ -374,5 +380,7 @@ function Q(t) {
374
380
  }
375
381
 
376
382
  export {
377
- t as QySnapshots
383
+ t as QySnapshots,
384
+ N as iterPMBuffer,
385
+ V as loadPrefixPMFile
378
386
  };
@@ -0,0 +1 @@
1
+ module.exports = () => dataFolder.fileListToTree(dataFolder.triggerFileList);
package/src/soc_pokec.js CHANGED
@@ -33,21 +33,21 @@ let f = "./tmp/soc_pokec", w = new e(f);
33
33
  if (console.time("run"), await w.start(), e) {
34
34
  {
35
35
  console.time("readData");
36
- var a, r = await c(m, "r"), s = {};
37
- for await (o of r.readLines()) {
38
- var [ o, i ] = o.split("\t"), n = s[o];
39
- n ? n[i] = 1 : s[o] = {
36
+ var a, s = await c(m, "r"), r = {};
37
+ for await (o of s.readLines()) {
38
+ var [ o, i ] = o.split("\t"), n = r[o];
39
+ n ? n[i] = 1 : r[o] = {
40
40
  [i]: 1
41
41
  };
42
42
  }
43
43
  console.timeEnd("readData"), console.time("insertData");
44
44
  let e = w.batch, t = 0;
45
- for (a in s) {
46
- var l = s[a];
45
+ for (a in r) {
46
+ var l = r[a];
47
47
  e.insertP([ "relationships", a ], l), 3e4 < ++t && (await e.run(!0),
48
48
  t = 0);
49
49
  }
50
- await e.run(!0), console.timeEnd("insertData");
50
+ await e.run(!0), console.timeEnd("insertData"), s.close();
51
51
  }
52
52
  await 0;
53
53
  }
@@ -1,30 +1,21 @@
1
1
  import {
2
- appendStyle as n
2
+ appendStyle as o
3
3
  } from "./QyUIUtils.js";
4
4
 
5
- class s extends HTMLElement {
5
+ class e extends HTMLElement {
6
6
  constructor(e, t) {
7
7
  super(), Array.isArray(e) && (t = e, e = void 0);
8
8
  var r = this.attachShadow({
9
9
  mode: "open"
10
10
  });
11
11
  if (t) for (var s of t) {
12
- var o = document.createElement("link");
13
- o.setAttribute("rel", "stylesheet"), o.setAttribute("href", s), r.appendChild(o);
12
+ var a = document.createElement("link");
13
+ a.setAttribute("rel", "stylesheet"), a.setAttribute("href", s), r.appendChild(a);
14
14
  }
15
- e && n(r, e);
15
+ e && o(r, e);
16
16
  }
17
17
  }
18
18
 
19
- function e(e, t, r) {
20
- customElements.define(e, class extends s {
21
- constructor() {
22
- super(t, r);
23
- }
24
- });
25
- }
26
-
27
19
  export {
28
- s as QyStyledElement,
29
- e as defineStyledElement
20
+ e as QyStyledElement
30
21
  };