datafolder 1.0.6 → 1.0.8

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 (159) hide show
  1. package/README.md +7 -2
  2. package/index.js +1 -1
  3. package/internal.md +121 -0
  4. package/package.json +8 -6
  5. package/scripts/airbnb.js +77 -72
  6. package/scripts/airbnb2.js +78 -73
  7. package/scripts/airbnb2_queries.js +181 -229
  8. package/scripts/airbnb_queries.js +214 -265
  9. package/scripts/convertBinFiles.js +47 -0
  10. package/scripts/downloadFile.js +41 -40
  11. package/scripts/express.js +44 -48
  12. package/scripts/fastify.js +71 -80
  13. package/scripts/flights.js +71 -75
  14. package/scripts/flights2.js +78 -81
  15. package/scripts/flights2_queries.js +417 -455
  16. package/scripts/flights_queries.js +381 -407
  17. package/src/QyAcl.d.ts +17 -0
  18. package/src/QyAcl.js +113 -116
  19. package/src/QyAclSaver.d.ts +4 -0
  20. package/src/QyAclSaver.js +3 -3
  21. package/src/QyAclSaver_Worker.d.ts +9 -0
  22. package/src/QyAclSaver_Worker.js +2 -4
  23. package/src/QyAclWriter.d.ts +5 -0
  24. package/src/QyBatch.d.ts +42 -0
  25. package/src/QyBatch.js +8 -8
  26. package/src/QyBinWriter.d.ts +15 -0
  27. package/src/QyCD.d.ts +37 -0
  28. package/src/QyCD.js +27 -16
  29. package/src/QyCache.d.ts +44 -0
  30. package/src/QyCache.js +71 -59
  31. package/src/QyCompressor.d.ts +9 -0
  32. package/src/QyCompressor.js +29 -29
  33. package/src/QyCompressor_Worker.d.ts +1 -0
  34. package/src/QyDB.d.ts +42 -0
  35. package/src/QyDB.js +13 -11
  36. package/src/QyDefaultOptions.d.ts +1 -0
  37. package/src/QyDefaultOptions.js +3 -0
  38. package/src/QyDir.d.ts +48 -0
  39. package/src/QyDir.js +41 -41
  40. package/src/QyFetch.d.ts +7 -0
  41. package/src/QyFetch.js +3 -4
  42. package/src/QyFile.d.ts +19 -0
  43. package/src/QyFile.js +35 -34
  44. package/src/QyFileContentUtils.d.ts +13 -0
  45. package/src/QyFileContentUtils.js +126 -126
  46. package/src/QyFileLogger.d.ts +11 -0
  47. package/src/QyIndex.d.ts +6 -0
  48. package/src/QyIndex.js +73 -75
  49. package/src/QyIndexPropTree.d.ts +7 -0
  50. package/src/QyIndexPropTree.js +24 -24
  51. package/src/QyIntersectNode.d.ts +7 -0
  52. package/src/QyIntersectNode.js +15 -15
  53. package/src/QyItem.d.ts +30 -0
  54. package/src/QyItem.js +32 -28
  55. package/src/QyJsonSaver.d.ts +6 -0
  56. package/src/QyKVData.d.ts +12 -0
  57. package/src/QyKVData.js +30 -20
  58. package/src/QyKVDataCleaner.d.ts +4 -0
  59. package/src/QyKVDataCleaner.js +1 -1
  60. package/src/QyKVDataCleaner_Worker.d.ts +13 -0
  61. package/src/QyKVDataCleaner_Worker.js +2 -4
  62. package/src/QyKVDataLoader.d.ts +9 -0
  63. package/src/QyKVDataLoader.js +11 -11
  64. package/src/QyKVDataSaver.d.ts +4 -0
  65. package/src/QyKVDataSaver.js +6 -6
  66. package/src/QyKVDataSaver_Worker.d.ts +13 -0
  67. package/src/QyKVDataSaver_Worker.js +11 -13
  68. package/src/QyLogFileSaver.d.ts +4 -0
  69. package/src/QyLogFileSaver.js +1 -1
  70. package/src/QyLogFileSaver_Worker.d.ts +8 -0
  71. package/src/QyLogFileSaver_Worker.js +2 -4
  72. package/src/QyLogger.d.ts +10 -0
  73. package/src/QyLogger.js +40 -40
  74. package/src/QyMessageWorker.d.ts +5 -0
  75. package/src/QyMessageWorker.js +7 -7
  76. package/src/QyMessager.d.ts +7 -0
  77. package/src/QyMessager.js +30 -27
  78. package/src/QyMessager_Run.d.ts +1 -0
  79. package/src/QyMessager_Run.js +11 -6
  80. package/src/QyMod.d.ts +1 -0
  81. package/src/QyMod.js +6 -6
  82. package/src/QyOpRunner.d.ts +10 -0
  83. package/src/QyOpRunner.js +39 -39
  84. package/src/QyQueue.d.ts +11 -0
  85. package/src/QySaver.d.ts +10 -0
  86. package/src/QySnapshotCompactor.d.ts +4 -0
  87. package/src/QySnapshotCompactor.js +1 -1
  88. package/src/QySnapshotCompactor_Worker.d.ts +11 -0
  89. package/src/QySnapshotCompactor_Worker.js +21 -22
  90. package/src/QySnapshotSaver.d.ts +4 -0
  91. package/src/QySnapshotSaver.js +1 -1
  92. package/src/QySnapshotSaver_Worker.d.ts +16 -0
  93. package/src/QySnapshotSaver_Worker.js +56 -53
  94. package/src/QySnapshots.d.ts +27 -0
  95. package/src/QySnapshots.js +74 -66
  96. package/src/QyStructure.d.ts +1 -0
  97. package/src/QyStructure.js +18 -18
  98. package/src/QyTrigger.d.ts +9 -0
  99. package/src/QyTrigger.js +30 -30
  100. package/src/QyUnionNode.d.ts +17 -0
  101. package/src/QyUnionNode.js +2 -2
  102. package/src/QyUtils.d.ts +53 -0
  103. package/src/QyUtils.js +140 -117
  104. package/src/QyWorker.d.ts +5 -0
  105. package/src/QyWorker.js +18 -18
  106. package/src/hackernews.d.ts +1 -0
  107. package/src/hackernews.js +59 -47
  108. package/src/rpc/getRpcFiles.js +1 -0
  109. package/src/rpc/getTriggerFiles.js +1 -0
  110. package/src/simulate.d.ts +1 -0
  111. package/src/simulate2.d.ts +1 -0
  112. package/src/soc_pokec.d.ts +1 -0
  113. package/src/soc_pokec.js +7 -7
  114. package/static/codemirror.bundle/editor.bundle.js +370 -166
  115. package/static/datafolderui/QyStyledElement.js +8 -17
  116. package/static/datafolderui/QyUIFolderViewer.js +230 -0
  117. package/static/datafolderui/QyUIUtils.js +5 -5
  118. package/static/datafolderui/code-mirror.js +7 -7
  119. package/static/datafolderui/display-tree.js +22 -58
  120. package/static/datafolderui/explore-tree.js +10 -10
  121. package/static/datafolderui/folder-tree.js +71 -2
  122. package/static/datafolderui/hscrpt.js +26 -7
  123. package/static/datafolderui/json-view.js +34 -3
  124. package/static/datafolderui/main-page.js +67 -36
  125. package/static/datafolderui/query-editor.js +9 -9
  126. package/static/datafolderui/rpc-editor.js +31 -0
  127. package/static/datafolderui/trigger-editor.js +33 -0
  128. package/data/sampleDataFolder/qykv/history/acl/1_acl.txt +0 -1
  129. package/data/sampleDataFolder/qykv/history/acl/2_acl.txt +0 -1
  130. package/data/sampleDataFolder/qykv/history/acl/3_acl.txt +0 -1
  131. package/data/sampleDataFolder/qykv/history/acl/4_acl.txt +0 -1
  132. package/data/sampleDataFolder/qykv/history/acl/5_acl.txt +0 -1
  133. package/data/sampleDataFolder/qykv/snapshot/1/1_pM.txt +0 -0
  134. package/data/sampleDataFolder/qykv/snapshot/1/1_prefixPM.txt +0 -0
  135. package/data/sampleDataFolder/qykv/snapshot/1/1_vL.txt +0 -10
  136. package/data/sampleDataFolder/qykv/snapshot/2/1_pM.txt +0 -0
  137. package/data/sampleDataFolder/qykv/snapshot/2/1_prefixPM.txt +0 -0
  138. package/data/sampleDataFolder/qykv/snapshot/2/1_vL.txt +0 -1
  139. package/data/sampleDataFolder/qykv/snapshot/3/1_pM.txt +0 -0
  140. package/data/sampleDataFolder/qykv/snapshot/3/1_prefixPM.txt +0 -0
  141. package/data/sampleDataFolder/qykv/snapshot/3/1_vL.txt +0 -1
  142. package/data/sampleDataFolder/qykv/snapshot/4/1_pM.txt +0 -0
  143. package/data/sampleDataFolder/qykv/snapshot/4/1_prefixPM.txt +0 -0
  144. package/data/sampleDataFolder/qykv/snapshot/4/1_vL.txt +0 -1
  145. package/data/sampleDataFolder/qykv/snapshot/4/2_pM.txt +0 -0
  146. package/data/sampleDataFolder/qykv/snapshot/4/2_prefixPM.txt +0 -0
  147. package/data/sampleDataFolder/qykv/snapshot/4/2_vL.txt +0 -9
  148. package/data/sampleDataFolder/qykv/snapshot/5/1_pM.txt +0 -0
  149. package/data/sampleDataFolder/qykv/snapshot/5/1_prefixPM.txt +0 -0
  150. package/data/sampleDataFolder/qykv/snapshot/5/1_vL.txt +0 -55
  151. package/data/sampleDataFolder/qykv/snapshot/info/1.json +0 -1
  152. package/data/sampleDataFolder/qykv/snapshot/info/2.json +0 -1
  153. package/data/sampleDataFolder/qykv/snapshot/info/3.json +0 -1
  154. package/data/sampleDataFolder/qykv/snapshot/info/4.json +0 -1
  155. package/data/sampleDataFolder/qykv/snapshot/info/5.json +0 -1
  156. package/data/sampleDataFolder/qylog/2026/02/15/08/change.txt +0 -58
  157. package/data/sampleDataFolder/qylog/2026/02/15/08/stderr.txt +0 -11
  158. package/data/sampleDataFolder/qylog/2026/02/15/08/stdout.txt +0 -36
  159. package/static/datafolderui/QyUIFolderTree.js +0 -179
package/src/QyAcl.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ export declare function delCmdKey(cmdArgAsListObj: any, key: string): void;
2
+ export declare function applyAclChange(aclKeyValueMap: any, cmdArgAsListObj: any): void;
3
+ export declare function iterCmdKeys(cmdArgAsListObj: any, fun: any): void;
4
+ export declare class QyAclCmdGenerator {
5
+ cmdArgAsMapObj: {};
6
+ cmdCount: number;
7
+ batchSize: number;
8
+ constructor();
9
+ pushCmd(cmdName: string, cmdHashKey: string, cmdArg: any): void;
10
+ pushCmdArgAsListObj(cmdArgAsListObj: any): this;
11
+ takeCmdArgAsListObj(): {};
12
+ toAclBuffer(changeId: any): Buffer<ArrayBuffer> | undefined;
13
+ }
14
+ export declare function readAclFile(aclFilePath: any, autoRepairAclFile?: boolean, currentChangeId?: number): Promise<never[]>;
15
+ export declare function numsToBuffer(nums: any): Buffer<ArrayBuffer>;
16
+ export declare function bufferToNums(buffer: any, offset: any, nums: any): any;
17
+ export declare function readAclBuffer(aclFilePath: any, contentBuffer: any, autoRepairAclFile: any, currentChangeId: any): Promise<never[]>;
package/src/QyAcl.js CHANGED
@@ -1,181 +1,178 @@
1
1
  import u from "node:fs/promises";
2
2
 
3
3
  import {
4
- mergeContent as m,
5
- mergeContentChanges as n,
4
+ mergeContent as g,
5
+ mergeContentChanges as i,
6
6
  setValByNamePath as a
7
7
  } from "./QyFileContentUtils.js";
8
8
 
9
9
  import {
10
- isEmptyObj as g,
11
- arrayLast as s
10
+ isEmptyObj as m,
11
+ arrayLast as n
12
12
  } from "./QyUtils.js";
13
13
 
14
14
  import {
15
15
  logger as d
16
16
  } from "./QyLogger.js";
17
17
 
18
- function r(r, e) {
18
+ function r(r, t) {
19
19
  var {
20
20
  A: r,
21
- R: t,
21
+ R: e,
22
22
  M: a,
23
- D: s
23
+ D: n
24
24
  } = r;
25
- s && delete s[e], e.startsWith("c") ? a && delete a[e] : (r && delete r[e],
26
- t && delete t[e]);
25
+ n && delete n[t], t.startsWith("c") ? a && delete a[t] : (r && delete r[t],
26
+ e && delete e[t]);
27
27
  }
28
28
 
29
- function e(r, e) {
30
- var t, a, s, n, {
31
- D: e,
32
- A: i,
29
+ function t(r, t) {
30
+ var e, a, n, i, {
31
+ D: t,
32
+ A: s,
33
33
  R: o,
34
34
  M: f
35
- } = e;
36
- for (t in e) null != r[t] && (r[t] = void 0);
37
- for (a in i) {
35
+ } = t;
36
+ for (e in t) null != r[e] && (r[e] = void 0);
37
+ for (a in s) {
38
38
  var c, l = r[a] || (r[a] = {});
39
- for (c of i[a]) l[c] = 1;
39
+ for (c of s[a]) l[c] = 1;
40
40
  }
41
- for (s in o) {
42
- var u = r[s];
41
+ for (n in o) {
42
+ var u = r[n];
43
43
  if (u) {
44
- var d = o[s];
44
+ var d = o[n];
45
45
  if (d) {
46
46
  for (var h of d) delete u[h];
47
- g(u) && (r[s] = void 0);
47
+ m(u) && (r[n] = void 0);
48
48
  }
49
49
  }
50
50
  }
51
- for (n in f) r[n] = m(r[n], f[n]);
51
+ for (i in f) r[i] = g(r[i], f[i]);
52
52
  }
53
53
 
54
- function t(r, e) {
55
- var t, {
54
+ function e(r, t) {
55
+ var e, {
56
56
  D: r,
57
57
  A: a,
58
- R: s,
59
- M: n
58
+ R: n,
59
+ M: i
60
60
  } = r;
61
- for (t of [ r, a, s, n ]) for (var i in t) e(i);
61
+ for (e of [ r, a, n, i ]) for (var s in e) t(s);
62
62
  }
63
63
 
64
- class i {
65
- constructor() {
66
- Object.assign(this, {
67
- cmdArgAsMapObj: {},
68
- cmdCount: 0,
69
- batchSize: 0
70
- });
71
- }
72
- pushCmd(r, e, t) {
64
+ class s {
65
+ cmdArgAsMapObj = {};
66
+ cmdCount = 0;
67
+ batchSize = 0;
68
+ constructor() {}
69
+ pushCmd(r, t, e) {
73
70
  switch (++this.cmdCount, r) {
74
71
  case "A":
75
- o(this, [ "A", e, t ]), f(this, [ "R", e, t ]);
72
+ o(this, [ "A", t, e ]), f(this, [ "R", t, e ]);
76
73
  break;
77
74
 
78
75
  case "R":
79
- o(this, [ "R", e, t ]), f(this, [ "A", e, t ]);
76
+ o(this, [ "R", t, e ]), f(this, [ "A", t, e ]);
80
77
  break;
81
78
 
82
79
  case "D":
83
- if (o(this, [ "D", e ]), e.startsWith("c")) f(this, [ "M", e ]); else for (var a of [ "A", "R" ]) f(this, [ a, e ]);
80
+ if (o(this, [ "D", t ]), t.startsWith("c")) f(this, [ "M", t ]); else for (var a of [ "A", "R" ]) f(this, [ a, t ]);
84
81
  break;
85
82
 
86
83
  case "M":
87
84
  {
88
- var s = this.cmdArgAsMapObj;
89
- let r = s.M;
90
- s = (r = null == r ? s.M = {} : r)[e];
91
- r[e] = null != s ? n(s, t) : t;
85
+ var n = this.cmdArgAsMapObj;
86
+ let r = n.M;
87
+ n = (r = null == r ? n.M = {} : r)[t];
88
+ r[t] = null != n ? i(n, e) : e;
92
89
  break;
93
90
  }
94
91
 
95
92
  default:
96
- d.error(`unsupported cmdName:${r}, called with ${e} ` + t), --this.cmdCount;
93
+ d.error(`unsupported cmdName:${r}, called with ${t} ` + e), --this.cmdCount;
97
94
  }
98
95
  }
99
96
  pushCmdArgAsListObj(r) {
100
97
  if (r) {
101
98
  ++this.batchSize;
102
- var e, t, a, {
103
- D: s,
104
- M: n
99
+ var t, e, a, {
100
+ D: n,
101
+ M: i
105
102
  } = r;
106
- for (e in s) this.pushCmd("D", e);
107
- for (t of [ "A", "R" ]) {
108
- var i, o = r[t];
109
- for (i in o) for (var f of o[i]) this.pushCmd(t, i, f);
103
+ for (t in n) this.pushCmd("D", t);
104
+ for (e of [ "A", "R" ]) {
105
+ var s, o = r[e];
106
+ for (s in o) for (var f of o[s]) this.pushCmd(e, s, f);
110
107
  }
111
- for (a in n) this.pushCmd("M", a, n[a]);
108
+ for (a in i) this.pushCmd("M", a, i[a]);
112
109
  }
113
110
  return this;
114
111
  }
115
112
  takeCmdArgAsListObj() {
116
- var r, e = this.cmdArgAsMapObj;
113
+ var r, t = this.cmdArgAsMapObj;
117
114
  Object.assign(this, {
118
115
  cmdArgAsMapObj: {},
119
116
  cmdCount: 0,
120
117
  batchSize: 0
121
118
  });
122
119
  for (r of [ "A", "R" ]) {
123
- var t, a = e[r];
124
- for (t in a) {
125
- var s = Object.keys(a[t]);
126
- 0 < s.length ? a[t] = s : delete a[t];
120
+ var e, a = t[r];
121
+ for (e in a) {
122
+ var n = Object.keys(a[e]);
123
+ 0 < n.length ? a[e] = n : delete a[e];
127
124
  }
128
- g(a) && delete e[r];
125
+ m(a) && delete t[r];
129
126
  }
130
127
  var {
131
- D: n,
132
- M: i
133
- } = e;
134
- return n && g(n) && delete e.D, i && g(i) && delete e.M, e;
128
+ D: i,
129
+ M: s
130
+ } = t;
131
+ return i && m(i) && delete t.D, s && m(s) && delete t.M, t;
135
132
  }
136
133
  toAclBuffer(r) {
137
- var e, t = this.batchSize;
138
- if (0 < t) return r = r, t = t, e = this.takeCmdArgAsListObj(), e = Buffer.from(JSON.stringify(e)),
139
- Buffer.concat([ l([ r, t, e.length ]), e ]);
134
+ var t, e = this.batchSize;
135
+ if (0 < e) return r = r, e = e, t = this.takeCmdArgAsListObj(), t = Buffer.from(JSON.stringify(t)),
136
+ Buffer.concat([ l([ r, e, t.length ]), t ]);
140
137
  }
141
138
  }
142
139
 
143
- function o(r, e, t = 1) {
144
- a(r.cmdArgAsMapObj, e, t);
140
+ function o(r, t, e = 1) {
141
+ a(r.cmdArgAsMapObj, t, e);
145
142
  }
146
143
 
147
- function f(r, e) {
148
- let t = r.cmdArgAsMapObj;
149
- if (t && e && !(e.length <= 1)) {
150
- for (let r = 0; r < e.length - 1; ++r) if (null == (t = t[e[r]])) return;
151
- delete t[s(e)];
144
+ function f(r, t) {
145
+ let e = r.cmdArgAsMapObj;
146
+ if (e && t && !(t.length <= 1)) {
147
+ for (let r = 0; r < t.length - 1; ++r) if (null == (e = e[t[r]])) return;
148
+ delete e[n(t)];
152
149
  }
153
150
  }
154
151
 
155
- async function c(e, r = !1, t = 0) {
152
+ async function c(t, r = !1, e = 0) {
156
153
  try {
157
- return await v(e, await u.readFile(e), r, t);
154
+ return await v(t, await u.readFile(t), r, e);
158
155
  } catch (r) {
159
- throw d.error(`Reading ${e} failed:`, r), r;
156
+ throw d.error(`Reading ${t} failed:`, r), r;
160
157
  }
161
158
  }
162
159
 
163
160
  let A = [ 1, 2, 4, 8 ];
164
161
 
165
- function l(e) {
166
- var t = e.length, a = new Array(t), s = new Array(t);
167
- let n = t << 6, i = 1;
168
- for (let r = 0; r < t; ++r) {
169
- var o = a[r] = (o = e[r]) <= 255 ? 0 : o <= 65535 ? 1 : o <= 4294967295 ? 2 : 3, o = (n |= o << (r << 1),
170
- s[r] = A[o]);
171
- i += o;
162
+ function l(t) {
163
+ var e = t.length, a = new Array(e), n = new Array(e);
164
+ let i = e << 6, s = 1;
165
+ for (let r = 0; r < e; ++r) {
166
+ var o = a[r] = (o = t[r]) <= 255 ? 0 : o <= 65535 ? 1 : o <= 4294967295 ? 2 : 3, o = (i |= o << (r << 1),
167
+ n[r] = A[o]);
168
+ s += o;
172
169
  }
173
- var f = Buffer.allocUnsafe(i);
174
- f.writeUInt8(n);
170
+ var f = Buffer.allocUnsafe(s);
171
+ f.writeUInt8(i);
175
172
  let c = 1;
176
- for (let r = 0; r < t; ++r) {
173
+ for (let r = 0; r < e; ++r) {
177
174
  h = d = u = l = void 0;
178
- var [ l, u, d, h = 0 ] = [ f, e[r], s[r], c ];
175
+ var [ l, u, d, h = 0 ] = [ f, t[r], n[r], c ];
179
176
  switch (d) {
180
177
  case 1:
181
178
  l.writeUInt8(u, h);
@@ -192,62 +189,62 @@ function l(e) {
192
189
  default:
193
190
  l.writeBigUInt64BE(BigInt(u), h);
194
191
  }
195
- c += s[r];
192
+ c += n[r];
196
193
  }
197
194
  return f;
198
195
  }
199
196
 
200
- function h(e, t, a) {
201
- var s = e.readUInt8(t), n = (++t, s >> 6 & 3);
202
- for (let r = 0; r < n; ++r) {
203
- var i = A[s >> (r << 1) & 3];
204
- a[r] = ((r, e, t = 0) => {
205
- switch (e) {
197
+ function h(t, e, a) {
198
+ var n = t.readUInt8(e), i = (++e, n >> 6 & 3);
199
+ for (let r = 0; r < i; ++r) {
200
+ var s = A[n >> (r << 1) & 3];
201
+ a[r] = ((r, t, e = 0) => {
202
+ switch (t) {
206
203
  case 1:
207
- return r.readUInt8(t);
204
+ return r.readUInt8(e);
208
205
 
209
206
  case 2:
210
- return r.readUInt16BE(t);
207
+ return r.readUInt16BE(e);
211
208
 
212
209
  case 4:
213
- return r.readUInt32BE(t);
210
+ return r.readUInt32BE(e);
214
211
 
215
212
  default:
216
- return Number(r.readBigUInt64BE(t));
213
+ return Number(r.readBigUInt64BE(e));
217
214
  }
218
- })(e, i, t), t += i;
215
+ })(t, s, e), e += s;
219
216
  }
220
- return t;
217
+ return e;
221
218
  }
222
219
 
223
- async function v(t, r, a, s) {
224
- var n = [];
225
- for (let e = 0; e < r.length; ) {
226
- var i = [], o = h(r, e, i), [ i, f, c ] = i;
227
- if (i <= s) d.warn(`changeId ${i} <= currentChangeId ${s} at ${t}:${e}. Ignored.`),
228
- e = o + c; else {
229
- s + f != i && d.warn(`currentChangeId ${s} + batchSize ${f} != changeId ` + i);
220
+ async function v(e, r, a, n) {
221
+ var i = [];
222
+ for (let t = 0; t < r.length; ) {
223
+ var s = [], o = h(r, t, s), [ s, f, c ] = s;
224
+ if (s <= n) d.warn(`changeId ${s} <= currentChangeId ${n} at ${e}:${t}. Ignored.`),
225
+ t = o + c; else {
226
+ n + f != s && d.warn(`currentChangeId ${n} + batchSize ${f} != changeId ` + s);
230
227
  try {
231
228
  var l = JSON.parse(r.subarray(o, o + c));
232
- n.push([ i, l ]), s = i, e = o + c;
229
+ i.push([ s, l ]), n = s, t = o + c;
233
230
  } catch (r) {
234
- if (d.error(`Parse ${t} failed at ${e}:`, r), a) return d.warn(`Autorepair by truncating ${t} to ` + e),
235
- null == (f = await u.truncate(t, e)) ? d.log("truncate success") : d.error("truncate failed:", f),
236
- n;
231
+ if (d.error(`Parse ${e} failed at ${t}:`, r), a) return d.warn(`Autorepair by truncating ${e} to ` + t),
232
+ null == (f = await u.truncate(e, t)) ? d.log("truncate success") : d.error("truncate failed:", f),
233
+ i;
237
234
  throw r;
238
235
  }
239
236
  }
240
237
  }
241
- return n;
238
+ return i;
242
239
  }
243
240
 
244
241
  export {
245
- i as QyAclCmdGenerator,
246
- e as applyAclChange,
247
- t as iterCmdKeys,
242
+ r as delCmdKey,
243
+ t as applyAclChange,
244
+ e as iterCmdKeys,
245
+ s as QyAclCmdGenerator,
248
246
  c as readAclFile,
249
- v as readAclBuffer,
250
247
  l as numsToBuffer,
251
248
  h as bufferToNums,
252
- r as delCmdKey
249
+ v as readAclBuffer
253
250
  };
@@ -0,0 +1,4 @@
1
+ import { QyMessager } from "./QyMessager.ts";
2
+ export declare class QyAclSaver extends QyMessager {
3
+ constructor(parent: any, options: any);
4
+ }
package/src/QyAclSaver.js CHANGED
@@ -3,13 +3,13 @@ import {
3
3
  } from "./QyMessager.js";
4
4
 
5
5
  import {
6
- getDefaultOptions as a
6
+ getDefaultOptions as r
7
7
  } from "./QyDefaultOptions.js";
8
8
 
9
9
  class e extends s {
10
10
  constructor(s, e) {
11
- super(s, "QyAclSaver_Worker.js", e = {
12
- ...a("QyAclSaver"),
11
+ super(s, "QyAclSaver_Worker", e = {
12
+ ...r("QyAclSaver"),
13
13
  ...e
14
14
  }, e, [ "callSave" ], [ "switch", "castSave" ]);
15
15
  }
@@ -0,0 +1,9 @@
1
+ import { QyMessageWorker } from "./QyMessageWorker.ts";
2
+ export default class QyAclSaver_Worker extends QyMessageWorker {
3
+ constructor(options: any);
4
+ _op_start(aclFilePath: any): Promise<void>;
5
+ _op_stop(): Promise<void>;
6
+ switch(aclFilePath: any): void;
7
+ callSave(changeId: any, cmdArgAsListObj: any): Promise<void>;
8
+ castSave(changeId: any, cmdArgAsListObj: any): void;
9
+ }
@@ -6,7 +6,7 @@ import {
6
6
  QyAclWriter as s
7
7
  } from "./QyAclWriter.js";
8
8
 
9
- class r extends t {
9
+ export default class extends t {
10
10
  constructor(t) {
11
11
  super(t), Object.assign(this, {
12
12
  options: t,
@@ -30,6 +30,4 @@ class r extends t {
30
30
  castSave(t, s) {
31
31
  this.qyAclWriter.save(t, s);
32
32
  }
33
- }
34
-
35
- export default r;
33
+ }
@@ -0,0 +1,5 @@
1
+ import { QyBinWriter } from "./QyBinWriter.ts";
2
+ export declare class QyAclWriter extends QyBinWriter {
3
+ constructor(options: any, filePath: any);
4
+ getBinData(dataQueue: any, changeId: any): any;
5
+ }
@@ -0,0 +1,42 @@
1
+ import { QyCD } from "./QyCD.ts";
2
+ export declare class QyBatch extends QyCD {
3
+ constructor(qyCache?: any, options?: any);
4
+ createDir(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
5
+ createDirP(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
6
+ delDir(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
7
+ delDirP(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
8
+ createFile(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
9
+ createFileP(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
10
+ delFile(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
11
+ delFileP(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
12
+ createIndex(indexHostDirNamePath: any, indexPropPathList: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
13
+ createIndexP(indexHostDirNamePath: any, indexPropPathList: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
14
+ delIndex(indexHostDirNamePath: any, indexPropPath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
15
+ delIndexP(indexHostDirNamePath: any, indexPropPath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
16
+ insert(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
17
+ insertP(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
18
+ remove(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
19
+ removeP(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
20
+ replace(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
21
+ replaceP(namePath: any, content: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
22
+ delContent(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
23
+ delContentP(namePath: any, parentDir?: import("./QyDir.ts").QyDir | undefined): any;
24
+ insertTrigger(triggerName: any, fileNamePath: any, propNamePathList: any, modCode: any): any;
25
+ removeTrigger(triggerName: any): any;
26
+ insertRpc(rpcFunName: any, modCode: any): any;
27
+ removeRpc(rpcFunName: any): any;
28
+ run(needPromise: any): any;
29
+ getTopHistoryCmdObj(): any;
30
+ _action_insertTrigger(action: any): boolean;
31
+ _action_removeTrigger(action: any): boolean;
32
+ _action_insertRpc(action: any): boolean;
33
+ _action_removeRpc(action: any): boolean;
34
+ _action_createIndex(action: any): void;
35
+ _action_delIndex(action: any): void;
36
+ _action_delFile(action: any, deletingParentDir: any): boolean;
37
+ _action_delDir(action: any): boolean;
38
+ _action_delContent(action: any): boolean;
39
+ _action_insert(action: any): boolean;
40
+ _action_createFile(action: any): boolean;
41
+ _action_createDir(action: any): boolean;
42
+ }
package/src/QyBatch.js CHANGED
@@ -35,10 +35,10 @@ import {
35
35
  } from "./QyCD.js";
36
36
 
37
37
  import {
38
- getPrefixPropPaths as y
38
+ getPrefixPropPaths as D
39
39
  } from "./QyIndexPropTree.js";
40
40
 
41
- let u = Array.isArray, f = e.$del, D = t.IndexPropPathsFileName, p = {
41
+ let u = Array.isArray, f = e.$del, y = t.IndexPropPathsFileName, p = {
42
42
  none: 0,
43
43
  basic: 1,
44
44
  delta: 2,
@@ -66,7 +66,7 @@ class v extends m {
66
66
  return s(e) && (e = n(e)), this.createDirP(e, t);
67
67
  }
68
68
  createDirP(e, t = this.currentDir) {
69
- return _(this, "createDir", this.qyCache.getOrCreateDir(e, t));
69
+ return _(this, "createDir", this.qyCache?.getOrCreateDir(e, t));
70
70
  }
71
71
  delDir(e, t = this.currentDir) {
72
72
  return s(e) && (e = n(e)), this.delDirP(e, t);
@@ -90,7 +90,7 @@ class v extends m {
90
90
  return s(e) && (e = n(e)), this.createIndexP(e, t, r);
91
91
  }
92
92
  createIndexP(e, t, r = this.currentDir) {
93
- return u(t) || (t = [ t ]), _(this, "createIndex", this.qyCache.getOrCreateDir(e, r), {
93
+ return u(t) || (t = [ t ]), _(this, "createIndex", this.qyCache?.getOrCreateDir(e, r), {
94
94
  indexPropPathList: t
95
95
  });
96
96
  }
@@ -251,7 +251,7 @@ ${r}
251
251
  var e, {
252
252
  item: t,
253
253
  indexPropPathList: r
254
- } = t, i = this.qyCache.getOrCreateIndexDir(t), n = i.getOrCreateFile(D), {
254
+ } = t, i = this.qyCache.getOrCreateIndexDir(t), n = i.getOrCreateFile(y), {
255
255
  fileContent: a,
256
256
  qyIndexPropTree: s
257
257
  } = (n.created || this._action_createFile({
@@ -268,7 +268,7 @@ ${r}
268
268
  content: l
269
269
  });
270
270
  {
271
- var h, d = this, m = t, u = i, r = y(o);
271
+ var h, d = this, m = t, u = i, r = D(o);
272
272
  let e;
273
273
  for (h of r) {
274
274
  var f = u.searchOrCreateSubdir(h);
@@ -294,7 +294,7 @@ ${r}
294
294
  item: e,
295
295
  indexPropPath: i
296
296
  } = e, e = this.qyCache.getIndexDir(e);
297
- e && ((r = e.getFile(D)) ? (t = r.qyIndexPropTree, this._action_insert({
297
+ e && ((r = e.getFile(y)) ? (t = r.qyIndexPropTree, this._action_insert({
298
298
  item: r,
299
299
  content: {
300
300
  [C(i)]: f
@@ -476,7 +476,7 @@ function F(e, t, r, i, n) {
476
476
  if (!t) {
477
477
  var o = e.qyCache.getIndexDir(s);
478
478
  if (o) {
479
- t = o.getFile(D);
479
+ t = o.getFile(y);
480
480
  if (t) for (var l of t.qyIndexPropTree.getAllIndexPropPaths()) N(e, o.searchOrCreateSubdir(l), l, a, r, i, n);
481
481
  }
482
482
  }
@@ -0,0 +1,15 @@
1
+ import { QyOpRunner } from "./QyOpRunner.ts";
2
+ export declare class QyBinWriter extends QyOpRunner {
3
+ constructor(options: any, filePath: any);
4
+ getFilePath(): any;
5
+ getTotalSavedSize(): any;
6
+ save(changeId: any, data: any, needPromise: any): any;
7
+ truncate(): any;
8
+ switch(newFilePath: any): any;
9
+ getBinData(dataQueue: any): any;
10
+ _op_start(filePath: any): Promise<this>;
11
+ _op_stop(): Promise<void>;
12
+ _op_save(changeId: any, dataQueue: any): Promise<void> | undefined;
13
+ _op_truncate(): Promise<void>;
14
+ _op_switch(newFilePath: any): Promise<void>;
15
+ }
package/src/QyCD.d.ts ADDED
@@ -0,0 +1,37 @@
1
+ import type { QyCache } from "./QyCache.ts";
2
+ import type { QyDir } from "./QyDir.ts";
3
+ import type { QyFile } from "./QyFile.ts";
4
+ export declare class QyCD {
5
+ qyCache: QyCache | undefined;
6
+ currentDir: QyDir | undefined;
7
+ constructor(qyCache?: QyCache);
8
+ cd(namePath: string | string[] | QyDir, parentDir?: QyDir | undefined): this;
9
+ cdP(namePath: string | string[] | QyDir, parentDir?: QyDir | undefined): this;
10
+ dir(namePath: string | string[], parentDir?: QyDir | undefined): QyDir | undefined;
11
+ dirP(namePath: string | string[], parentDir?: QyDir | undefined): QyDir | undefined;
12
+ indexDir(indexHostDirNamePath: string | string[] | QyDir, namePath: string | string[], parentDir?: QyDir | undefined): QyDir | undefined;
13
+ indexDirP(indexHostDirNamePath: string | string[] | QyDir, namePath: string | string[], parentDir?: QyDir | undefined): QyDir | undefined;
14
+ file(namePath: string | string[], parentDir?: QyDir | undefined): QyFile | undefined;
15
+ fileP(namePath: string | string[], parentDir?: QyDir | undefined): QyFile | undefined;
16
+ triggerFile(triggerName: any): any;
17
+ get triggerFileList(): any;
18
+ rpcFile(rpcName: any): any;
19
+ get rpcFileList(): any;
20
+ view(namePath: any, spec: any, parentDir?: QyDir | undefined): any;
21
+ viewP(namePath: any, spec: any, parentDir?: QyDir | undefined): any;
22
+ queryFiles(indexHostDirNamePath: any, queryObj: any, limit: any, cursor: any, parentDir?: QyDir | undefined): never[];
23
+ queryFilesMulti(indexHostDirNamePathMulti: any, limit: any, cursor: any, parentDir?: QyDir | undefined): never[];
24
+ queryTree(indexHostDirNamePath: any, queryObj: any, view: any, limit: any, cursor: any, parentDir?: QyDir | undefined): {
25
+ tree: {};
26
+ count: any;
27
+ };
28
+ queryTreeMulti(indexHostDirNamePathMulti: any, view: any, limit: any, cursor: any, parentDir?: QyDir | undefined): {
29
+ tree: {};
30
+ count: any;
31
+ };
32
+ resetCurrentDir(): void;
33
+ fileListToTree(fileList: any, view: any): {
34
+ tree: {};
35
+ count: any;
36
+ };
37
+ }