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.
- package/README.md +7 -2
- package/index.js +1 -1
- package/internal.md +121 -0
- package/package.json +8 -6
- package/scripts/airbnb.js +77 -72
- package/scripts/airbnb2.js +78 -73
- package/scripts/airbnb2_queries.js +181 -229
- package/scripts/airbnb_queries.js +214 -265
- package/scripts/convertBinFiles.js +47 -0
- package/scripts/downloadFile.js +41 -40
- package/scripts/express.js +44 -48
- package/scripts/fastify.js +71 -80
- package/scripts/flights.js +71 -75
- package/scripts/flights2.js +78 -81
- package/scripts/flights2_queries.js +417 -455
- package/scripts/flights_queries.js +381 -407
- package/src/QyAcl.d.ts +17 -0
- package/src/QyAcl.js +113 -116
- package/src/QyAclSaver.d.ts +4 -0
- package/src/QyAclSaver.js +3 -3
- package/src/QyAclSaver_Worker.d.ts +9 -0
- package/src/QyAclSaver_Worker.js +2 -4
- package/src/QyAclWriter.d.ts +5 -0
- package/src/QyBatch.d.ts +42 -0
- package/src/QyBatch.js +8 -8
- package/src/QyBinWriter.d.ts +15 -0
- package/src/QyCD.d.ts +37 -0
- package/src/QyCD.js +27 -16
- package/src/QyCache.d.ts +44 -0
- package/src/QyCache.js +71 -59
- package/src/QyCompressor.d.ts +9 -0
- package/src/QyCompressor.js +29 -29
- package/src/QyCompressor_Worker.d.ts +1 -0
- package/src/QyDB.d.ts +42 -0
- package/src/QyDB.js +13 -11
- package/src/QyDefaultOptions.d.ts +1 -0
- package/src/QyDefaultOptions.js +3 -0
- package/src/QyDir.d.ts +48 -0
- package/src/QyDir.js +41 -41
- package/src/QyFetch.d.ts +7 -0
- package/src/QyFetch.js +3 -4
- package/src/QyFile.d.ts +19 -0
- package/src/QyFile.js +35 -34
- package/src/QyFileContentUtils.d.ts +13 -0
- package/src/QyFileContentUtils.js +126 -126
- package/src/QyFileLogger.d.ts +11 -0
- package/src/QyIndex.d.ts +6 -0
- package/src/QyIndex.js +73 -75
- package/src/QyIndexPropTree.d.ts +7 -0
- package/src/QyIndexPropTree.js +24 -24
- package/src/QyIntersectNode.d.ts +7 -0
- package/src/QyIntersectNode.js +15 -15
- package/src/QyItem.d.ts +30 -0
- package/src/QyItem.js +32 -28
- package/src/QyJsonSaver.d.ts +6 -0
- package/src/QyKVData.d.ts +12 -0
- package/src/QyKVData.js +30 -20
- package/src/QyKVDataCleaner.d.ts +4 -0
- package/src/QyKVDataCleaner.js +1 -1
- package/src/QyKVDataCleaner_Worker.d.ts +13 -0
- package/src/QyKVDataCleaner_Worker.js +2 -4
- package/src/QyKVDataLoader.d.ts +9 -0
- package/src/QyKVDataLoader.js +11 -11
- package/src/QyKVDataSaver.d.ts +4 -0
- package/src/QyKVDataSaver.js +6 -6
- package/src/QyKVDataSaver_Worker.d.ts +13 -0
- package/src/QyKVDataSaver_Worker.js +11 -13
- package/src/QyLogFileSaver.d.ts +4 -0
- package/src/QyLogFileSaver.js +1 -1
- package/src/QyLogFileSaver_Worker.d.ts +8 -0
- package/src/QyLogFileSaver_Worker.js +2 -4
- package/src/QyLogger.d.ts +10 -0
- package/src/QyLogger.js +40 -40
- package/src/QyMessageWorker.d.ts +5 -0
- package/src/QyMessageWorker.js +7 -7
- package/src/QyMessager.d.ts +7 -0
- package/src/QyMessager.js +30 -27
- package/src/QyMessager_Run.d.ts +1 -0
- package/src/QyMessager_Run.js +11 -6
- package/src/QyMod.d.ts +1 -0
- package/src/QyMod.js +6 -6
- package/src/QyOpRunner.d.ts +10 -0
- package/src/QyOpRunner.js +39 -39
- package/src/QyQueue.d.ts +11 -0
- package/src/QySaver.d.ts +10 -0
- package/src/QySnapshotCompactor.d.ts +4 -0
- package/src/QySnapshotCompactor.js +1 -1
- package/src/QySnapshotCompactor_Worker.d.ts +11 -0
- package/src/QySnapshotCompactor_Worker.js +21 -22
- package/src/QySnapshotSaver.d.ts +4 -0
- package/src/QySnapshotSaver.js +1 -1
- package/src/QySnapshotSaver_Worker.d.ts +16 -0
- package/src/QySnapshotSaver_Worker.js +56 -53
- package/src/QySnapshots.d.ts +27 -0
- package/src/QySnapshots.js +74 -66
- package/src/QyStructure.d.ts +1 -0
- package/src/QyStructure.js +18 -18
- package/src/QyTrigger.d.ts +9 -0
- package/src/QyTrigger.js +30 -30
- package/src/QyUnionNode.d.ts +17 -0
- package/src/QyUnionNode.js +2 -2
- package/src/QyUtils.d.ts +53 -0
- package/src/QyUtils.js +140 -117
- package/src/QyWorker.d.ts +5 -0
- package/src/QyWorker.js +18 -18
- package/src/hackernews.d.ts +1 -0
- package/src/hackernews.js +59 -47
- package/src/rpc/getRpcFiles.js +1 -0
- package/src/rpc/getTriggerFiles.js +1 -0
- package/src/simulate.d.ts +1 -0
- package/src/simulate2.d.ts +1 -0
- package/src/soc_pokec.d.ts +1 -0
- package/src/soc_pokec.js +7 -7
- package/static/codemirror.bundle/editor.bundle.js +370 -166
- package/static/datafolderui/QyStyledElement.js +8 -17
- package/static/datafolderui/QyUIFolderViewer.js +230 -0
- package/static/datafolderui/QyUIUtils.js +5 -5
- package/static/datafolderui/code-mirror.js +7 -7
- package/static/datafolderui/display-tree.js +22 -58
- package/static/datafolderui/explore-tree.js +10 -10
- package/static/datafolderui/folder-tree.js +71 -2
- package/static/datafolderui/hscrpt.js +26 -7
- package/static/datafolderui/json-view.js +34 -3
- package/static/datafolderui/main-page.js +67 -36
- package/static/datafolderui/query-editor.js +9 -9
- package/static/datafolderui/rpc-editor.js +31 -0
- package/static/datafolderui/trigger-editor.js +33 -0
- package/data/sampleDataFolder/qykv/history/acl/1_acl.txt +0 -1
- package/data/sampleDataFolder/qykv/history/acl/2_acl.txt +0 -1
- package/data/sampleDataFolder/qykv/history/acl/3_acl.txt +0 -1
- package/data/sampleDataFolder/qykv/history/acl/4_acl.txt +0 -1
- package/data/sampleDataFolder/qykv/history/acl/5_acl.txt +0 -1
- package/data/sampleDataFolder/qykv/snapshot/1/1_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/1/1_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/1/1_vL.txt +0 -10
- package/data/sampleDataFolder/qykv/snapshot/2/1_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/2/1_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/2/1_vL.txt +0 -1
- package/data/sampleDataFolder/qykv/snapshot/3/1_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/3/1_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/3/1_vL.txt +0 -1
- package/data/sampleDataFolder/qykv/snapshot/4/1_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/4/1_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/4/1_vL.txt +0 -1
- package/data/sampleDataFolder/qykv/snapshot/4/2_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/4/2_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/4/2_vL.txt +0 -9
- package/data/sampleDataFolder/qykv/snapshot/5/1_pM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/5/1_prefixPM.txt +0 -0
- package/data/sampleDataFolder/qykv/snapshot/5/1_vL.txt +0 -55
- package/data/sampleDataFolder/qykv/snapshot/info/1.json +0 -1
- package/data/sampleDataFolder/qykv/snapshot/info/2.json +0 -1
- package/data/sampleDataFolder/qykv/snapshot/info/3.json +0 -1
- package/data/sampleDataFolder/qykv/snapshot/info/4.json +0 -1
- package/data/sampleDataFolder/qykv/snapshot/info/5.json +0 -1
- package/data/sampleDataFolder/qylog/2026/02/15/08/change.txt +0 -58
- package/data/sampleDataFolder/qylog/2026/02/15/08/stderr.txt +0 -11
- package/data/sampleDataFolder/qylog/2026/02/15/08/stdout.txt +0 -36
- 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
|
|
22
|
+
delCmdKey as u
|
|
23
23
|
} from "./QyAcl.js";
|
|
24
24
|
|
|
25
|
-
class
|
|
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(
|
|
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)),
|
|
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)
|
|
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(
|
|
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
|
|
100
|
+
function m(a) {
|
|
101
101
|
return t(a.aclFolder, a.currentAclNum + "_acl.txt");
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
export default s;
|
|
102
|
+
}
|
package/src/QyLogFileSaver.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
11
|
+
threadId as r
|
|
12
12
|
} from "node:worker_threads";
|
|
13
13
|
|
|
14
|
-
let i = e ? "" : `W${
|
|
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
|
-
},
|
|
21
|
-
verbose:
|
|
22
|
-
info:
|
|
23
|
-
log:
|
|
24
|
-
debug:
|
|
25
|
-
warn:
|
|
26
|
-
error:
|
|
27
|
-
none:
|
|
28
|
-
},
|
|
29
|
-
currentLogLevel:
|
|
30
|
-
info: function() {
|
|
31
|
-
|
|
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
|
-
|
|
33
|
+
log: function(...e) {
|
|
34
|
+
l.currentLogLevel <= u.Debug && b("log", e);
|
|
35
35
|
},
|
|
36
|
-
debug: function() {
|
|
37
|
-
|
|
36
|
+
debug: function(...e) {
|
|
37
|
+
l.currentLogLevel <= u.Debug && b("debug", e);
|
|
38
38
|
},
|
|
39
|
-
warn: function() {
|
|
40
|
-
|
|
39
|
+
warn: function(...e) {
|
|
40
|
+
l.currentLogLevel <= u.Warn && b("warn", e);
|
|
41
41
|
},
|
|
42
|
-
error: function() {
|
|
43
|
-
|
|
42
|
+
error: function(...e) {
|
|
43
|
+
l.currentLogLevel <= u.Error && b("error", e);
|
|
44
44
|
}
|
|
45
|
-
},
|
|
45
|
+
}, a, g, f;
|
|
46
46
|
|
|
47
47
|
function d() {
|
|
48
|
-
|
|
48
|
+
a = void 0, g && (g.close(), g = void 0), f && (f.close(), f = void 0);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
function L(e,
|
|
51
|
+
function L(e, r) {
|
|
52
52
|
d();
|
|
53
|
-
|
|
54
|
-
flags:
|
|
53
|
+
r = {
|
|
54
|
+
flags: r ? "w" : "a",
|
|
55
55
|
flush: !0,
|
|
56
56
|
autoClose: !1
|
|
57
57
|
};
|
|
58
|
-
g =
|
|
59
|
-
|
|
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,
|
|
70
|
-
var
|
|
71
|
-
console[e](
|
|
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(
|
|
74
|
+
Object.defineProperty(l, "level", {
|
|
75
75
|
get() {
|
|
76
|
-
return
|
|
76
|
+
return s[l.currentLogLevel];
|
|
77
77
|
},
|
|
78
78
|
set(e) {
|
|
79
|
-
|
|
79
|
+
l.currentLogLevel = c[e];
|
|
80
80
|
}
|
|
81
|
-
}), globalThis.logger =
|
|
81
|
+
}), globalThis.logger = l;
|
|
82
82
|
|
|
83
83
|
export {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
l as logger,
|
|
85
|
+
d as closeFileConsole,
|
|
86
|
+
L as setFileConsoleDateDirPath
|
|
87
87
|
};
|
package/src/QyMessageWorker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
parentPort as
|
|
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),
|
|
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
|
|
31
|
-
r ||
|
|
30
|
+
var t = await this[e](...a);
|
|
31
|
+
r || o.postMessage({
|
|
32
32
|
ack: e,
|
|
33
|
-
result:
|
|
33
|
+
result: t
|
|
34
34
|
}), "stop" == e && process.exit();
|
|
35
35
|
} catch (s) {
|
|
36
|
-
n.error(`Running ${e} failed:`, s), r ||
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
...
|
|
32
|
-
}, Object.assign(this, {
|
|
34
|
+
...s
|
|
35
|
+
}, r += k, Object.assign(this, {
|
|
33
36
|
parent: e,
|
|
34
37
|
workerTypeFileName: r,
|
|
35
|
-
initArgMap:
|
|
36
|
-
options:
|
|
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,
|
|
46
|
+
this.started = !0, s("logLevel", n.level);
|
|
44
47
|
var i = this;
|
|
45
48
|
if (!i.worker) {
|
|
46
49
|
let {
|
|
47
|
-
workerTypeFileName:
|
|
50
|
+
workerTypeFileName: s,
|
|
48
51
|
initArgMap: e,
|
|
49
52
|
receiverQueueMap: o
|
|
50
53
|
} = i;
|
|
51
54
|
var r = {
|
|
52
|
-
workerTypeFileName:
|
|
55
|
+
workerTypeFileName: s,
|
|
53
56
|
initArgMap: e
|
|
54
57
|
};
|
|
55
|
-
let a = i.worker = new p(
|
|
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 ${
|
|
62
|
+
n.error(`Worker ${s} error:`, e);
|
|
60
63
|
}), a.on("message", e => {
|
|
61
64
|
var {
|
|
62
65
|
opName: r,
|
|
63
|
-
ack:
|
|
64
|
-
result:
|
|
66
|
+
ack: t,
|
|
67
|
+
result: s
|
|
65
68
|
} = e;
|
|
66
|
-
r ? (e = e.args || [], (i.parent || i)[r](...e)) : o[
|
|
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 ${
|
|
69
|
-
o) for (var
|
|
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:
|
|
88
|
-
receiverQueueMap:
|
|
90
|
+
worker: t,
|
|
91
|
+
receiverQueueMap: s,
|
|
89
92
|
options: o
|
|
90
93
|
} = this;
|
|
91
|
-
|
|
94
|
+
t.postMessage({
|
|
92
95
|
opName: e,
|
|
93
96
|
args: r
|
|
94
97
|
});
|
|
95
|
-
let a =
|
|
96
|
-
a = a || (
|
|
97
|
-
|
|
98
|
-
return a.push(
|
|
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
|
-
|
|
106
|
+
r as QyMessager
|
|
104
107
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/src/QyMessager_Run.js
CHANGED
|
@@ -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
|
|
12
|
+
getEnvironmentData as a,
|
|
8
13
|
workerData as i
|
|
9
14
|
} from "node:worker_threads";
|
|
10
15
|
|
|
11
16
|
import {
|
|
12
|
-
logger as
|
|
17
|
+
logger as s
|
|
13
18
|
} from "./QyLogger.js";
|
|
14
19
|
|
|
15
20
|
import {
|
|
16
|
-
__dirname as
|
|
21
|
+
__dirname as n
|
|
17
22
|
} from "./QyUtils.js";
|
|
18
23
|
|
|
19
24
|
(async () => {
|
|
20
|
-
|
|
25
|
+
s.level = a("logLevel");
|
|
21
26
|
var {
|
|
22
27
|
workerTypeFileName: e,
|
|
23
28
|
initArgMap: r
|
|
24
29
|
} = i;
|
|
25
|
-
new (await import("file://" +
|
|
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,
|
|
8
|
-
if (
|
|
9
|
-
var i = r + "_" + e,
|
|
10
|
-
return
|
|
11
|
-
|
|
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,
|
|
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
|
|
1
|
+
import t from "node:events";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
setPromise as
|
|
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
|
|
12
|
+
getDefaultOptions as i
|
|
13
13
|
} from "./QyDefaultOptions.js";
|
|
14
14
|
|
|
15
15
|
import {
|
|
16
|
-
QyQueue as
|
|
16
|
+
QyQueue as r
|
|
17
17
|
} from "./QyQueue.js";
|
|
18
18
|
|
|
19
|
-
class e extends
|
|
20
|
-
constructor(
|
|
21
|
-
super(),
|
|
22
|
-
...
|
|
23
|
-
...
|
|
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:
|
|
25
|
+
options: t,
|
|
26
26
|
running: !1,
|
|
27
|
-
opQueue: new
|
|
28
|
-
}), n(this,
|
|
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(
|
|
40
|
-
return t
|
|
39
|
+
pushAndRunWithPromise(t) {
|
|
40
|
+
return s(t), this.pushAndRun(t), t.promise;
|
|
41
41
|
}
|
|
42
|
-
pushAndRun(...
|
|
43
|
-
var
|
|
44
|
-
"_op_stop" === e?.opFunName ? (
|
|
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
|
|
51
|
-
var
|
|
50
|
+
for (var t = this.opQueue; !t.isEmpty; ) {
|
|
51
|
+
var s = t.shift(), {
|
|
52
52
|
opFunName: e,
|
|
53
|
-
eventName:
|
|
54
|
-
resolve:
|
|
53
|
+
eventName: i,
|
|
54
|
+
resolve: r,
|
|
55
55
|
args: n
|
|
56
|
-
} =
|
|
56
|
+
} = s;
|
|
57
57
|
if (e) {
|
|
58
|
-
this.runningOp =
|
|
58
|
+
this.runningOp = s;
|
|
59
59
|
try {
|
|
60
60
|
var o = await (n ? this[e](...n) : this[e]());
|
|
61
|
-
|
|
62
|
-
} catch (
|
|
63
|
-
u.error(`Run ${e} failed:`,
|
|
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
|
|
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(
|
|
74
|
-
for (let e of
|
|
75
|
-
let
|
|
76
|
-
if (
|
|
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:
|
|
79
|
-
args:
|
|
80
|
-
}) : (...
|
|
78
|
+
opFunName: s,
|
|
79
|
+
args: t
|
|
80
|
+
}) : (...t) => i.pushAndRun({
|
|
81
81
|
opName: e,
|
|
82
|
-
opFunName:
|
|
83
|
-
args:
|
|
84
|
-
})), !
|
|
85
|
-
let
|
|
86
|
-
|
|
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
|
}
|
package/src/QyQueue.d.ts
ADDED
package/src/QySaver.d.ts
ADDED
|
@@ -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
|
+
}
|