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
@@ -19,10 +19,10 @@ import {
19
19
  } from "./QySnapshotSaver.js";
20
20
 
21
21
  import {
22
- delCmdKey as m
22
+ delCmdKey as u
23
23
  } from "./QyAcl.js";
24
24
 
25
- class s extends a {
25
+ export default class extends a {
26
26
  constructor({
27
27
  kvFolder: a,
28
28
  options: s
@@ -33,7 +33,7 @@ class s extends a {
33
33
  }), Object.assign(this, {
34
34
  kvFolder: a,
35
35
  aclFolder: t(a, "acl"),
36
- qyAclSaver: new o(this, s),
36
+ qyAclSaver: s.noAcl ? void 0 : new o(this, s),
37
37
  qySnapshotSaver: new n(this, a, s)
38
38
  });
39
39
  }
@@ -46,7 +46,7 @@ class s extends a {
46
46
  maxChangeId: a,
47
47
  snapshotMaxChangeId: a,
48
48
  currentAclNum: (t || s) + 1
49
- }), o.start(u(this)), n.start(a, t, e);
49
+ }), o && o.start(m(this)), n.start(a, t, e);
50
50
  }
51
51
  async _op_stop() {
52
52
  var {
@@ -57,8 +57,8 @@ class s extends a {
57
57
  maxChangeId: o,
58
58
  snapshotMaxChangeId: n
59
59
  } = this;
60
- this.isStopping = !0, await a.stop(), s.saveSnapshotAtStop && n < o && (this.isSavingSnapshot && await new Promise(a => this.saveSnapshotResolve = a),
61
- logger.log(`Saving snapshot ${e} at stop.`), t.saveSnapshot(e)), await t.stop();
60
+ return this.isStopping = !0, a && await a.stop(), s.saveSnapshotAtStop && n < o && (this.isSavingSnapshot && await new Promise(a => this.saveSnapshotResolve = a),
61
+ logger.log(`Saving snapshot ${e} at stop.`), t.saveSnapshot(e)), t.stop();
62
62
  }
63
63
  callSave(a, s, t) {
64
64
  return r(this, a, s, t, !0);
@@ -84,21 +84,19 @@ function r(a, s, t, e, o) {
84
84
  isSavingSnapshot: S
85
85
  } = a;
86
86
  let v;
87
- o ? v = n.callSave(s, t) : n.castSave(s, t);
87
+ n && (o ? v = n.callSave(s, t) : n.castSave(s, t));
88
88
  var l = t, c = e;
89
89
  if (c) {
90
90
  var g = c.length;
91
- for (let a = 0; a < g; a += 2) m(l, c[a]);
91
+ for (let a = 0; a < g; a += 2) u(l, c[a]);
92
92
  }
93
93
  return r.castSave(s, t, e), a.maxChangeId = s, !S && s - i >= h.snapshotMaxChangeCount && (++a.currentAclNum,
94
- n.switch(u(a)), r.saveSnapshot(p), Object.assign(a, {
94
+ n && n.switch(m(a)), r.saveSnapshot(p), Object.assign(a, {
95
95
  snapshotMaxChangeId: s,
96
96
  isSavingSnapshot: !0
97
97
  })), v;
98
98
  }
99
99
 
100
- function u(a) {
100
+ function m(a) {
101
101
  return t(a.aclFolder, a.currentAclNum + "_acl.txt");
102
- }
103
-
104
- export default s;
102
+ }
@@ -0,0 +1,4 @@
1
+ import { QyMessager } from "./QyMessager.ts";
2
+ export declare class QyLogFileSaver extends QyMessager {
3
+ constructor(parent: any, options: any);
4
+ }
@@ -8,7 +8,7 @@ import {
8
8
 
9
9
  class s extends e {
10
10
  constructor(e, s) {
11
- super(e, "QyLogFileSaver_Worker.js", s = {
11
+ super(e, "QyLogFileSaver_Worker", s = {
12
12
  ...r("QyLogFileSaver"),
13
13
  ...s
14
14
  }, s, [], [ "switch", "save" ]);
@@ -0,0 +1,8 @@
1
+ import { QyMessageWorker } from "./QyMessageWorker.ts";
2
+ export default class QyLogFileSaver_Worker extends QyMessageWorker {
3
+ constructor(options: any);
4
+ _op_start(logFilePath: any): Promise<void>;
5
+ _op_stop(): Promise<void>;
6
+ switch(logFilePath: any): Promise<void>;
7
+ save(changeId: any, data: any): void;
8
+ }
@@ -10,7 +10,7 @@ import {
10
10
  QyBinWriter as r
11
11
  } from "./QyBinWriter.js";
12
12
 
13
- class i extends t {
13
+ export default class extends t {
14
14
  constructor(t) {
15
15
  super(t = {
16
16
  ...s("QyLogFileSaver_Worker"),
@@ -31,6 +31,4 @@ class i extends t {
31
31
  save(t, s) {
32
32
  this.qyBinWriter.save(t, s);
33
33
  }
34
- }
35
-
36
- export default i;
34
+ }
@@ -0,0 +1,10 @@
1
+ export declare const logger: {
2
+ currentLogLevel: number;
3
+ info: (...args: any[]) => void;
4
+ log: (...args: any[]) => void;
5
+ debug: (...args: any[]) => void;
6
+ warn: (...args: any[]) => void;
7
+ error: (...args: any[]) => void;
8
+ };
9
+ export declare function closeFileConsole(): void;
10
+ export declare function setFileConsoleDateDirPath(dateDirPath: any, clearLogAtStart: any): void;
package/src/QyLogger.js CHANGED
@@ -1,4 +1,4 @@
1
- import r from "node:fs";
1
+ import o from "node:fs";
2
2
 
3
3
  import n from "node:path";
4
4
 
@@ -8,55 +8,55 @@ import {
8
8
 
9
9
  import {
10
10
  isMainThread as e,
11
- threadId as o
11
+ threadId as r
12
12
  } from "node:worker_threads";
13
13
 
14
- let i = e ? "" : `W${o}:`, s = {
14
+ let i = e ? "" : `W${r}:`, u = {
15
15
  Info: 0,
16
16
  Debug: 1,
17
17
  Warn: 2,
18
18
  Error: 3,
19
19
  None: 4
20
- }, l = {
21
- verbose: s.Info,
22
- info: s.Info,
23
- log: s.Debug,
24
- debug: s.Debug,
25
- warn: s.Warn,
26
- error: s.Error,
27
- none: s.None
28
- }, a = Object.fromEntries(Object.entries(l).map(([ e, o ]) => [ o, e ])), c = {
29
- currentLogLevel: s.Debug,
30
- info: function() {
31
- c.currentLogLevel == s.Info && b("info", arguments);
20
+ }, c = {
21
+ verbose: u.Info,
22
+ info: u.Info,
23
+ log: u.Debug,
24
+ debug: u.Debug,
25
+ warn: u.Warn,
26
+ error: u.Error,
27
+ none: u.None
28
+ }, s = Object.fromEntries(Object.entries(c).map(([ e, r ]) => [ r, e ])), l = {
29
+ currentLogLevel: u.Debug,
30
+ info: function(...e) {
31
+ l.currentLogLevel == u.Info && b("info", e);
32
32
  },
33
- log: function() {
34
- c.currentLogLevel <= s.Debug && b("log", arguments);
33
+ log: function(...e) {
34
+ l.currentLogLevel <= u.Debug && b("log", e);
35
35
  },
36
- debug: function() {
37
- c.currentLogLevel <= s.Debug && b("debug", arguments);
36
+ debug: function(...e) {
37
+ l.currentLogLevel <= u.Debug && b("debug", e);
38
38
  },
39
- warn: function() {
40
- c.currentLogLevel <= s.Warn && b("warn", arguments);
39
+ warn: function(...e) {
40
+ l.currentLogLevel <= u.Warn && b("warn", e);
41
41
  },
42
- error: function() {
43
- c.currentLogLevel <= s.Error && b("error", arguments);
42
+ error: function(...e) {
43
+ l.currentLogLevel <= u.Error && b("error", e);
44
44
  }
45
- }, u, g, f;
45
+ }, a, g, f;
46
46
 
47
47
  function d() {
48
- u = void 0, g && (g.close(), g = void 0), f && (f.close(), f = void 0);
48
+ a = void 0, g && (g.close(), g = void 0), f && (f.close(), f = void 0);
49
49
  }
50
50
 
51
- function L(e, o) {
51
+ function L(e, r) {
52
52
  d();
53
- o = {
54
- flags: o ? "w" : "a",
53
+ r = {
54
+ flags: r ? "w" : "a",
55
55
  flush: !0,
56
56
  autoClose: !1
57
57
  };
58
- g = r.createWriteStream(n.join(e, "stdout.txt"), o), f = r.createWriteStream(n.join(e, "stderr.txt"), o),
59
- u = new t({
58
+ g = o.createWriteStream(n.join(e, "stdout.txt"), r), f = o.createWriteStream(n.join(e, "stderr.txt"), r),
59
+ a = new t({
60
60
  stdout: g,
61
61
  stderr: f,
62
62
  inspectOptions: {
@@ -66,22 +66,22 @@ function L(e, o) {
66
66
  });
67
67
  }
68
68
 
69
- function b(e, o) {
70
- var r = new Error().stack.split("\n"), r = `${new Date().toISOString()} ${i}${/([^/\\()]+)\)?$/.exec(r[3])[1]}:${e}:`;
71
- console[e](r, ...o), u && u[e](r, ...o);
69
+ function b(e, r) {
70
+ var o = new Error().stack?.split("\n"), o = o && /([^/\\()]+)\)?$/.exec(o[3] ?? ""), o = (o && o[1]) ?? "", o = `${new Date().toISOString()} ${i}${o}:${e}:`;
71
+ console[e](o, ...r), a && a[e](o, ...r);
72
72
  }
73
73
 
74
- Object.defineProperty(c, "level", {
74
+ Object.defineProperty(l, "level", {
75
75
  get() {
76
- return a[c.currentLogLevel];
76
+ return s[l.currentLogLevel];
77
77
  },
78
78
  set(e) {
79
- c.currentLogLevel = l[e];
79
+ l.currentLogLevel = c[e];
80
80
  }
81
- }), globalThis.logger = c;
81
+ }), globalThis.logger = l;
82
82
 
83
83
  export {
84
- c as logger,
85
- L as setFileConsoleDateDirPath,
86
- d as closeFileConsole
84
+ l as logger,
85
+ d as closeFileConsole,
86
+ L as setFileConsoleDateDirPath
87
87
  };
@@ -0,0 +1,5 @@
1
+ import { QyOpRunner } from "./QyOpRunner.ts";
2
+ export declare class QyMessageWorker extends QyOpRunner {
3
+ constructor(options: any, callOpNameList: any, castOpNameList: any);
4
+ castParent(opName: any, ...args: any[]): void;
5
+ }
@@ -1,5 +1,5 @@
1
1
  import {
2
- parentPort as t
2
+ parentPort as o
3
3
  } from "node:worker_threads";
4
4
 
5
5
  import {
@@ -19,7 +19,7 @@ class e extends s {
19
19
  super(s = {
20
20
  ...a("QyMessageWorker"),
21
21
  ...s
22
- }, e, r), t.on("message", async s => {
22
+ }, e, r), o.on("message", async s => {
23
23
  var {
24
24
  opName: e,
25
25
  _cast: r
@@ -27,13 +27,13 @@ class e extends s {
27
27
  if (e) {
28
28
  var a = s.args || [];
29
29
  try {
30
- var o = await this[e](...a);
31
- r || t.postMessage({
30
+ var t = await this[e](...a);
31
+ r || o.postMessage({
32
32
  ack: e,
33
- result: o
33
+ result: t
34
34
  }), "stop" == e && process.exit();
35
35
  } catch (s) {
36
- n.error(`Running ${e} failed:`, s), r || t.postMessage({
36
+ n.error(`Running ${e} failed:`, s), r || o.postMessage({
37
37
  ack: e,
38
38
  exception: s
39
39
  });
@@ -42,7 +42,7 @@ class e extends s {
42
42
  });
43
43
  }
44
44
  castParent(s, ...e) {
45
- t.postMessage({
45
+ o.postMessage({
46
46
  opName: s,
47
47
  args: e,
48
48
  _cast: !0
@@ -0,0 +1,7 @@
1
+ export declare class QyMessager {
2
+ constructor(parent: any, workerTypeFileName: any, initArgMap: any, options: any, callOpNameList?: never[], castOpNameList?: never[]);
3
+ start(...args: any[]): any;
4
+ stop(...args: any[]): any;
5
+ castWorker(opName: any, args: any): void;
6
+ callWorker(opName: any, args: any): any;
7
+ }
package/src/QyMessager.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import {
2
- join as s
2
+ join as t,
3
+ extname as e
3
4
  } from "node:path";
4
5
 
5
6
  import {
6
7
  Worker as p,
7
- setEnvironmentData as t
8
+ setEnvironmentData as s
8
9
  } from "node:worker_threads";
9
10
 
10
11
  import {
@@ -24,49 +25,51 @@ import {
24
25
  QyQueue as h
25
26
  } from "./QyQueue.js";
26
27
 
27
- class e {
28
- constructor(e, r, s, t, o = [], a = []) {
29
- t = {
28
+ let k = e(import.meta.filename);
29
+
30
+ class r {
31
+ constructor(e, r, t, s, o = [], a = []) {
32
+ s = {
30
33
  ...i("QyMessager"),
31
- ...t
32
- }, Object.assign(this, {
34
+ ...s
35
+ }, r += k, Object.assign(this, {
33
36
  parent: e,
34
37
  workerTypeFileName: r,
35
- initArgMap: s,
36
- options: t,
38
+ initArgMap: t,
39
+ options: s,
37
40
  receiverQueueMap: {}
38
41
  });
39
42
  for (let r of o) this[r] || (this[r] = (...e) => this.callWorker(r, e));
40
43
  for (let r of a) this[r] || (this[r] = (...e) => this.castWorker(r, e));
41
44
  }
42
45
  start(...e) {
43
- this.started = !0, t("logLevel", n.level);
46
+ this.started = !0, s("logLevel", n.level);
44
47
  var i = this;
45
48
  if (!i.worker) {
46
49
  let {
47
- workerTypeFileName: t,
50
+ workerTypeFileName: s,
48
51
  initArgMap: e,
49
52
  receiverQueueMap: o
50
53
  } = i;
51
54
  var r = {
52
- workerTypeFileName: t,
55
+ workerTypeFileName: s,
53
56
  initArgMap: e
54
57
  };
55
- let a = i.worker = new p(s(m, "QyMessager_Run.js"), {
58
+ let a = i.worker = new p(t(m, "QyMessager_Run" + k), {
56
59
  workerData: r
57
60
  });
58
61
  a.on("error", e => {
59
- n.error(`Worker ${t} error:`, e);
62
+ n.error(`Worker ${s} error:`, e);
60
63
  }), a.on("message", e => {
61
64
  var {
62
65
  opName: r,
63
- ack: s,
64
- result: t
66
+ ack: t,
67
+ result: s
65
68
  } = e;
66
- r ? (e = e.args || [], (i.parent || i)[r](...e)) : o[s]?.shift().resolve(t);
69
+ r ? (e = e.args || [], (i.parent || i)[r](...e)) : o[t]?.shift().resolve(s);
67
70
  }), a.on("exit", e => {
68
- for (var r in a.removeAllListeners(), 0 != e ? n.warn(`Worker ${t} stopped with exitCode ` + e) : n.info(`Worker ${t} stopped.`),
69
- o) for (var s = o[r]; !s.isEmpty; ) s.shift()?.resolve();
71
+ for (var r in a.removeAllListeners(), 0 != e ? n.warn(`Worker ${s} stopped with exitCode ` + e) : n.info(`Worker ${s} stopped.`),
72
+ o) for (var t = o[r]; !t.isEmpty; ) t.shift()?.resolve();
70
73
  i.worker = void 0;
71
74
  });
72
75
  }
@@ -84,21 +87,21 @@ class e {
84
87
  }
85
88
  callWorker(e, r) {
86
89
  var {
87
- worker: s,
88
- receiverQueueMap: t,
90
+ worker: t,
91
+ receiverQueueMap: s,
89
92
  options: o
90
93
  } = this;
91
- s.postMessage({
94
+ t.postMessage({
92
95
  opName: e,
93
96
  args: r
94
97
  });
95
- let a = t[e];
96
- a = a || (t[e] = new h(o));
97
- s = l({});
98
- return a.push(s), s.promise;
98
+ let a = s[e];
99
+ a = a || (s[e] = new h(o));
100
+ t = l({});
101
+ return a.push(t), t.promise;
99
102
  }
100
103
  }
101
104
 
102
105
  export {
103
- e as QyMessager
106
+ r as QyMessager
104
107
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,26 +1,31 @@
1
+ var t = this && this.__rewriteRelativeImportExtension || function(e, i) {
2
+ return "string" == typeof e && /^\.\.?\//.test(e) ? e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(e, r, t, o, a) {
3
+ return r ? i ? ".jsx" : ".js" : !t || o && a ? t + o + "." + a.toLowerCase() + "js" : e;
4
+ }) : e;
5
+ };
6
+
1
7
  import {
2
- resolve as a,
3
8
  join as o
4
9
  } from "node:path";
5
10
 
6
11
  import {
7
- getEnvironmentData as t,
12
+ getEnvironmentData as a,
8
13
  workerData as i
9
14
  } from "node:worker_threads";
10
15
 
11
16
  import {
12
- logger as m
17
+ logger as s
13
18
  } from "./QyLogger.js";
14
19
 
15
20
  import {
16
- __dirname as s
21
+ __dirname as n
17
22
  } from "./QyUtils.js";
18
23
 
19
24
  (async () => {
20
- m.level = t("logLevel");
25
+ s.level = a("logLevel");
21
26
  var {
22
27
  workerTypeFileName: e,
23
28
  initArgMap: r
24
29
  } = i;
25
- new (await import("file://" + a(o(s, e)))).default(r);
30
+ new (await import(t("file://" + o(n, e)))).default(r);
26
31
  })();
package/src/QyMod.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function requireFromModCode(modFolder: any, modName: any, modCode: any, qyDB: any): any;
package/src/QyMod.js CHANGED
@@ -4,13 +4,13 @@ import {
4
4
  logger as m
5
5
  } from "./QyLogger.js";
6
6
 
7
- function o(r, e, d, o) {
8
- if (d) try {
9
- var i = r + "_" + e, t = `_${i}_qydb`, l = (globalThis[t] = o, new a(e));
10
- return l._compile(`(function(dataFolder){${d}})(${t});`, i + ".js"), delete globalThis[t],
11
- l.exports;
7
+ function o(r, e, t, o) {
8
+ if (t) try {
9
+ var i = r + "_" + e, l = `_${i}_qydb`, d = (globalThis[l] = o, new a(e));
10
+ return d._compile(`(function(dataFolder){${t}})(${l});`, i + ".ts"), delete globalThis[l],
11
+ d.exports;
12
12
  } catch (o) {
13
- m.error("requireFromModCode failed:", r, e, d, o);
13
+ m.error("requireFromModCode failed:", r, e, t, o);
14
14
  }
15
15
  }
16
16
 
@@ -0,0 +1,10 @@
1
+ import EventEmitter from "node:events";
2
+ export declare class QyOpRunner extends EventEmitter {
3
+ constructor(options: any, callOpNameList?: never[], castOpNameList?: never[]);
4
+ get firstOp(): any;
5
+ get lastOp(): any;
6
+ finish(): any;
7
+ pushAndRunWithPromise(op: any): any;
8
+ pushAndRun(...ops: any[]): void;
9
+ run(): Promise<void>;
10
+ }
package/src/QyOpRunner.js CHANGED
@@ -1,7 +1,7 @@
1
- import s from "node:events";
1
+ import t from "node:events";
2
2
 
3
3
  import {
4
- setPromise as t
4
+ setPromise as s
5
5
  } from "./QyUtils.js";
6
6
 
7
7
  import {
@@ -9,23 +9,23 @@ import {
9
9
  } from "./QyLogger.js";
10
10
 
11
11
  import {
12
- getDefaultOptions as r
12
+ getDefaultOptions as i
13
13
  } from "./QyDefaultOptions.js";
14
14
 
15
15
  import {
16
- QyQueue as i
16
+ QyQueue as r
17
17
  } from "./QyQueue.js";
18
18
 
19
- class e extends s {
20
- constructor(s, t = [], e = []) {
21
- super(), s = {
22
- ...r("QyOpRunner"),
23
- ...s
19
+ class e extends t {
20
+ constructor(t, s = [], e = []) {
21
+ super(), t = {
22
+ ...i("QyOpRunner"),
23
+ ...t
24
24
  }, Object.assign(this, {
25
- options: s,
25
+ options: t,
26
26
  running: !1,
27
- opQueue: new i(s)
28
- }), n(this, t, !0), n(this, e), n(this, [ "start", "stop" ], !0);
27
+ opQueue: new r(t)
28
+ }), n(this, s, !0), n(this, e), n(this, [ "start", "stop" ], !0);
29
29
  }
30
30
  get firstOp() {
31
31
  return this.opQueue.first;
@@ -36,54 +36,54 @@ class e extends s {
36
36
  finish() {
37
37
  return this.lastOp?.promise || this.runningOp?.promise;
38
38
  }
39
- pushAndRunWithPromise(s) {
40
- return t(s), this.pushAndRun(s), s.promise;
39
+ pushAndRunWithPromise(t) {
40
+ return s(t), this.pushAndRun(t), t.promise;
41
41
  }
42
- pushAndRun(...s) {
43
- var t = this.opQueue, e = this.lastOp;
44
- "_op_stop" === e?.opFunName ? (t.pop(), t.push(...s, e)) : t.push(...s),
42
+ pushAndRun(...t) {
43
+ var s = this.opQueue, e = this.lastOp;
44
+ "_op_stop" === e?.opFunName ? (s.pop(), s.push(...t, e)) : s.push(...t),
45
45
  this.run();
46
46
  }
47
47
  async run() {
48
48
  if (!this.running) {
49
49
  this.running = !0;
50
- for (var s = this.opQueue; !s.isEmpty; ) {
51
- var t = s.shift(), {
50
+ for (var t = this.opQueue; !t.isEmpty; ) {
51
+ var s = t.shift(), {
52
52
  opFunName: e,
53
- eventName: r,
54
- resolve: i,
53
+ eventName: i,
54
+ resolve: r,
55
55
  args: n
56
- } = t;
56
+ } = s;
57
57
  if (e) {
58
- this.runningOp = t;
58
+ this.runningOp = s;
59
59
  try {
60
60
  var o = await (n ? this[e](...n) : this[e]());
61
- i && i(o), r && this.emit(r, o);
62
- } catch (s) {
63
- u.error(`Run ${e} failed:`, s), r && this.emit(r, s);
61
+ r && r(o), i && this.emit(i, o);
62
+ } catch (t) {
63
+ u.error(`Run ${e} failed:`, t), i && this.emit(i, t);
64
64
  }
65
65
  this.runningOp = void 0;
66
- } else i && i(), r && this.emit(r);
66
+ } else r && r(), i && this.emit(i);
67
67
  }
68
68
  this.running = !1;
69
69
  }
70
70
  }
71
71
  }
72
72
 
73
- function n(r, s, i) {
74
- for (let e of s) {
75
- let t = "_op_" + e;
76
- if (r[e] || (r[e] = i ? (...s) => r.pushAndRunWithPromise({
73
+ function n(i, t, r) {
74
+ for (let e of t) {
75
+ let s = "_op_" + e;
76
+ if (i[e] || (i[e] = r ? (...t) => i.pushAndRunWithPromise({
77
77
  opName: e,
78
- opFunName: t,
79
- args: s
80
- }) : (...s) => r.pushAndRun({
78
+ opFunName: s,
79
+ args: t
80
+ }) : (...t) => i.pushAndRun({
81
81
  opName: e,
82
- opFunName: t,
83
- args: s
84
- })), !r[t]) {
85
- let s = r.constructor.name + " not implemented " + t;
86
- r[t] = () => u.error(s), u.error(s);
82
+ opFunName: s,
83
+ args: t
84
+ })), !i[s]) {
85
+ let t = i.constructor.name + " not implemented " + s;
86
+ i[s] = () => u.error(t), u.error(t);
87
87
  }
88
88
  }
89
89
  }
@@ -0,0 +1,11 @@
1
+ export declare class QyQueue {
2
+ constructor(options: any);
3
+ get first(): any;
4
+ get last(): any;
5
+ get isEmpty(): boolean;
6
+ get waterMark(): any;
7
+ pop(): any;
8
+ reset(): void;
9
+ push(...args: any[]): void;
10
+ shift(): any;
11
+ }
@@ -0,0 +1,10 @@
1
+ export declare class QySaver {
2
+ constructor(dataFolder: any, options: any);
3
+ setDataFolder(dataFolder: any): this;
4
+ processAfterLoad(data: any): any;
5
+ processBeforeSave(data: any): Buffer<any>;
6
+ loadFromFile(fileName: any, defaultValue: any): Promise<any>;
7
+ saveToFile(data: any, fileName: any, override?: boolean): Promise<boolean>;
8
+ _saveTmpFileAndRename(contentBuffer: any, tmpFilePath: any, targetFilePath: any): Promise<boolean>;
9
+ _saveContent(filePath: any, contentBuffer: any): Promise<number | false>;
10
+ }
@@ -0,0 +1,4 @@
1
+ import { QyMessager } from "./QyMessager.ts";
2
+ export declare class QySnapshotCompactor extends QyMessager {
3
+ constructor(parent: any, kvFolder: any, options: any);
4
+ }
@@ -8,7 +8,7 @@ import {
8
8
 
9
9
  class s extends o {
10
10
  constructor(o, s, t) {
11
- super(o, "QySnapshotCompactor_Worker.js", {
11
+ super(o, "QySnapshotCompactor_Worker", {
12
12
  kvFolder: s,
13
13
  options: t = {
14
14
  ...a("QySnapshotCompactor"),