datafolder 1.0.8 → 1.0.10
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 +4 -2
- package/SSD.md +60 -0
- package/index.js +1 -0
- package/package.json +1 -1
- package/sample.js +4 -4
- package/scripts/airbnb.js +1 -0
- package/scripts/airbnb2.js +1 -0
- package/scripts/convertBinFiles.js +1 -0
- package/scripts/express.js +2 -1
- package/scripts/fastify.js +3 -2
- package/scripts/flights.js +1 -0
- package/scripts/flights2.js +1 -0
- package/scripts/flights_queries.js +1 -0
- package/src/QyAcl.d.ts +3 -3
- package/src/QyAcl.js +7 -7
- package/src/QyAclSaver_Worker.d.ts +1 -0
- package/src/QyAclSaver_Worker.js +1 -0
- package/src/QyAclWriter.d.ts +2 -1
- package/src/QyAclWriter.js +7 -6
- package/src/QyBatch.d.ts +29 -22
- package/src/QyBatch.js +85 -72
- package/src/QyBinWriter.d.ts +9 -4
- package/src/QyBinWriter.js +83 -70
- package/src/QyCD.d.ts +19 -19
- package/src/QyCD.js +2 -2
- package/src/QyCache.d.ts +22 -23
- package/src/QyCache.js +47 -36
- package/src/QyCompressor_Worker.js +2 -2
- package/src/QyDB.d.ts +6 -9
- package/src/QyDB.js +1 -1
- package/src/QyFile.d.ts +2 -0
- package/src/QyFile.js +42 -40
- package/src/QyFileContentUtils.d.ts +1 -4
- package/src/QyFileLogger.d.ts +4 -0
- package/src/QyFileLogger.js +30 -26
- package/src/QyIndex.d.ts +2 -2
- package/src/QyIndex.js +84 -80
- package/src/QyIndexPropTree.d.ts +4 -0
- package/src/QyIndexPropTree.js +19 -10
- package/src/QyIntersectNode.d.ts +1 -0
- package/src/QyIntersectNode.js +1 -0
- package/src/QyJsonSaver.d.ts +2 -2
- package/src/QyJsonSaver.js +4 -4
- package/src/QyKVData.d.ts +18 -1
- package/src/QyKVData.js +98 -78
- package/src/QyKVDataCleaner_Worker.d.ts +7 -1
- package/src/QyKVDataCleaner_Worker.js +69 -55
- package/src/QyKVDataLoader.d.ts +10 -2
- package/src/QyKVDataLoader.js +27 -21
- package/src/QyKVDataSaver_Worker.d.ts +10 -0
- package/src/QyKVDataSaver_Worker.js +23 -9
- package/src/QyLogFileSaver_Worker.d.ts +1 -0
- package/src/QyLogFileSaver_Worker.js +7 -6
- package/src/QyLogger.d.ts +20 -10
- package/src/QyLogger.js +110 -67
- package/src/QyMessageWorker.d.ts +1 -1
- package/src/QyMessageWorker.js +5 -5
- package/src/QyMessager.d.ts +5 -1
- package/src/QyMessager.js +6 -1
- package/src/QyMod.js +9 -8
- package/src/QyOpRunner.d.ts +5 -1
- package/src/QyOpRunner.js +7 -7
- package/src/QyQueue.d.ts +5 -1
- package/src/QyQueue.js +6 -7
- package/src/QySaver.d.ts +3 -0
- package/src/QySaver.js +26 -15
- package/src/QySnapshotCompactor_Worker.d.ts +7 -0
- package/src/QySnapshotCompactor_Worker.js +37 -26
- package/src/QySnapshotSaver_Worker.d.ts +8 -1
- package/src/QySnapshotSaver_Worker.js +21 -14
- package/src/QySnapshots.d.ts +19 -7
- package/src/QySnapshots.js +195 -172
- package/src/QyTrigger.d.ts +5 -1
- package/src/QyTrigger.js +44 -34
- package/src/QyUnionNode.d.ts +10 -1
- package/src/QyUnionNode.js +34 -36
- package/src/QyUtils.d.ts +2 -2
- package/src/QyUtils.js +116 -111
- package/src/simulate.js +34 -31
- package/src/simulate2.js +49 -46
- package/src/soc_pokec.js +17 -11
- package/static/codemirror.bundle/editor.bundle.js +31 -18
package/src/QyFileLogger.js
CHANGED
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
|
-
join as
|
|
2
|
+
join as r
|
|
3
3
|
} from "node:path";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
closeFileConsole as t
|
|
8
|
-
} from "./QyLogger.js";
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
ensureDir as i
|
|
6
|
+
ensureDir as e
|
|
12
7
|
} from "./QyUtils.js";
|
|
13
8
|
|
|
14
9
|
import {
|
|
15
|
-
getDefaultOptions as
|
|
10
|
+
getDefaultOptions as i
|
|
16
11
|
} from "./QyDefaultOptions.js";
|
|
17
12
|
|
|
18
13
|
import {
|
|
19
|
-
QyOpRunner as
|
|
14
|
+
QyOpRunner as t
|
|
20
15
|
} from "./QyOpRunner.js";
|
|
21
16
|
|
|
22
17
|
import {
|
|
23
|
-
QyLogFileSaver as
|
|
18
|
+
QyLogFileSaver as s
|
|
24
19
|
} from "./QyLogFileSaver.js";
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
import {
|
|
22
|
+
logger as o
|
|
23
|
+
} from "./QyLogger.js";
|
|
24
|
+
|
|
25
|
+
class a extends t {
|
|
26
|
+
qyLogFileSaver;
|
|
27
|
+
logFileFolder;
|
|
28
|
+
dateDirPath;
|
|
29
|
+
timeoutRef;
|
|
27
30
|
constructor(t, e) {
|
|
28
31
|
(e = {
|
|
29
|
-
...
|
|
32
|
+
...i("QyFileLogger"),
|
|
30
33
|
...e
|
|
31
34
|
}).append = !e.clearLogAtStart, super(e, [], [ "startFileConsole", "switchFileConsole" ]),
|
|
32
35
|
Object.assign(this, {
|
|
33
36
|
logFileFolder: t,
|
|
34
|
-
qyLogFileSaver: new
|
|
37
|
+
qyLogFileSaver: new s(this, e)
|
|
35
38
|
});
|
|
36
39
|
}
|
|
37
40
|
save(t, e) {
|
|
@@ -41,40 +44,41 @@ class n extends o {
|
|
|
41
44
|
return this.dateDirPath;
|
|
42
45
|
}
|
|
43
46
|
async _op_start() {
|
|
44
|
-
var t = new Date(), t = (this.timeoutRef = setTimeout(this.switch.bind(this),
|
|
45
|
-
this.dateDirPath =
|
|
46
|
-
this.qyLogFileSaver.start(
|
|
47
|
+
var t = new Date(), t = (this.timeoutRef = setTimeout(this.switch.bind(this), h(t)),
|
|
48
|
+
this.dateDirPath = n(this, t));
|
|
49
|
+
this.qyLogFileSaver.start(r(t, "change.txt")), await this.startFileConsole(t);
|
|
47
50
|
}
|
|
48
51
|
switch() {
|
|
49
|
-
var t = new Date(), t = (this.timeoutRef = setTimeout(this.switch.bind(this),
|
|
50
|
-
|
|
51
|
-
return this.dateDirPath != t && (this.dateDirPath = t, this.qyLogFileSaver.switch(
|
|
52
|
+
var t = new Date(), t = (this.timeoutRef = setTimeout(this.switch.bind(this), h(t)),
|
|
53
|
+
n(this, t));
|
|
54
|
+
return this.dateDirPath != t && (this.dateDirPath = t, this.qyLogFileSaver.switch(r(t, "change.txt")),
|
|
52
55
|
this.switchFileConsole(t)), this;
|
|
53
56
|
}
|
|
54
57
|
async _op_startFileConsole(t) {
|
|
55
|
-
await
|
|
58
|
+
await e(t), o.setFileConsoleDateDirPath(t, this.options.clearLogAtStart);
|
|
56
59
|
}
|
|
57
60
|
async _op_stop() {
|
|
58
|
-
clearTimeout(this.timeoutRef), this.timeoutRef = void 0
|
|
61
|
+
this.timeoutRef && (clearTimeout(this.timeoutRef), this.timeoutRef = void 0),
|
|
62
|
+
o.closeFileConsole(), await this.qyLogFileSaver.stop();
|
|
59
63
|
}
|
|
60
64
|
async _op_switchFileConsole(t) {
|
|
61
|
-
await
|
|
65
|
+
await e(t), o.setFileConsoleDateDirPath(t, this.options.clearLogAtStart);
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
|
|
65
|
-
function
|
|
69
|
+
function n(t, e) {
|
|
66
70
|
var i = e.getUTCFullYear(), s = e.getUTCMonth() + 1, o = e.getUTCDate(), e = e.getUTCHours();
|
|
67
|
-
return
|
|
71
|
+
return r(t.logFileFolder, i.toString(), l(s), l(o), l(e));
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
function l(t) {
|
|
71
75
|
return t.toString().padStart(2, "0");
|
|
72
76
|
}
|
|
73
77
|
|
|
74
|
-
function
|
|
78
|
+
function h(t) {
|
|
75
79
|
return 1e3 * (60 * (60 - t.getUTCMinutes()) - t.getUTCSeconds());
|
|
76
80
|
}
|
|
77
81
|
|
|
78
82
|
export {
|
|
79
|
-
|
|
83
|
+
a as QyFileLogger
|
|
80
84
|
};
|
package/src/QyIndex.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare function getIndexPropPaths(queryObj: any): any[] | undefined;
|
|
2
2
|
export declare function calDifferenceList(indexPropDir: any, indexPropPath: any, fileName: any, oldValue: any, newValue: any, rawContent: any): {
|
|
3
|
-
toAddFileList:
|
|
4
|
-
toDelFileList:
|
|
3
|
+
toAddFileList: any[];
|
|
4
|
+
toDelFileList: any[];
|
|
5
5
|
} | undefined;
|
|
6
6
|
export declare function parseNamePathAndQuery(indexHostDirNamePath: any, parentDir: any, indexPropPaths: any, queryObj: any, resultList: any, queryCounter: any): void;
|
package/src/QyIndex.js
CHANGED
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
isString as s,
|
|
6
6
|
isNotNullObj as c,
|
|
7
7
|
SpecialOperators as i,
|
|
8
|
-
getSuffix as
|
|
8
|
+
getSuffix as p,
|
|
9
9
|
fromSingleName as r,
|
|
10
10
|
toSingleName as o
|
|
11
11
|
} from "./QyUtils.js";
|
|
12
12
|
|
|
13
13
|
import {
|
|
14
|
-
getValByNamePath as
|
|
14
|
+
getValByNamePath as v
|
|
15
15
|
} from "./QyFileContentUtils.js";
|
|
16
16
|
|
|
17
17
|
import {
|
|
@@ -22,26 +22,30 @@ import {
|
|
|
22
22
|
QyIntersectNode as y
|
|
23
23
|
} from "./QyIntersectNode.js";
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
import {
|
|
26
|
+
logger as b
|
|
27
|
+
} from "./QyLogger.js";
|
|
28
|
+
|
|
29
|
+
let S = Array.isArray, {
|
|
30
|
+
$or: h,
|
|
31
|
+
$and: N
|
|
32
|
+
} = i, $ = new m(), l = [];
|
|
29
33
|
|
|
30
34
|
function e(e) {
|
|
31
|
-
if (null != e && !s(e)) return function r(i, n,
|
|
32
|
-
if (
|
|
33
|
-
let e = i[
|
|
34
|
-
if (null != e) if (
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
if (null != e && !s(e)) return function r(i, n, t, l) {
|
|
36
|
+
if (C(i)) 0 < t.length && (n[o(t)] = 1); else {
|
|
37
|
+
let e = i[h] || i[N];
|
|
38
|
+
if (null != e) if (S(e)) for (var f of e) r(f, n, t, l), t.length = l; else r(e, n, t, l),
|
|
39
|
+
t.length = l; else for (var u in i) t.push(u), r(i[u], n, t, l + 1),
|
|
40
|
+
t.length = l;
|
|
37
41
|
}
|
|
38
42
|
}(e, e = {}, [], 0), Object.keys(e).map(e => r(e));
|
|
39
43
|
}
|
|
40
44
|
|
|
41
|
-
function n(e, r, i, n,
|
|
42
|
-
n =
|
|
43
|
-
if (n !==
|
|
44
|
-
var f, u, o, a,
|
|
45
|
+
function n(e, r, i, n, t, l) {
|
|
46
|
+
n = v(n, r), t = v(t, r);
|
|
47
|
+
if (n !== t) {
|
|
48
|
+
var f, u, o, a, l = S(t) || S(v(l, r)), s = Object.fromEntries(Q(n, l).map(e => [ JSON.stringify(e), e ])), d = Object.fromEntries(Q(t, l).map(e => [ JSON.stringify(e), e ])), g = [], c = [];
|
|
45
49
|
for (f in s) d[f] || (u = s[f], (u = e.searchSubdir(u)) && (u = u.getFile(i)) && c.push(u));
|
|
46
50
|
for (o in d) s[o] || (a = d[o], a = e.searchOrCreateSubdir(a), g.push(a.getOrCreateFile(i)));
|
|
47
51
|
return {
|
|
@@ -51,76 +55,76 @@ function n(e, r, i, n, l, t) {
|
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
function
|
|
55
|
-
if (s(n) || c(n)) if (e.isDir)
|
|
58
|
+
function F(e, r, i, n, t, l) {
|
|
59
|
+
if (s(n) || c(n)) if (e.isDir) O(e, i, n, t, l); else {
|
|
56
60
|
var f = e.$or;
|
|
57
61
|
if (f) {
|
|
58
|
-
for (var u of f) if (
|
|
59
|
-
} else for (var o of
|
|
62
|
+
for (var u of f) if (F(u, r, i, n, t, l), l?.isFull) return;
|
|
63
|
+
} else for (var o of L(e = s(e) ? a(e) : e, r)) if (O(o, i, n, t, l), l?.isFull) return;
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
66
|
|
|
63
|
-
function*
|
|
64
|
-
i == e.length ? yield r : yield* function* r(i, n,
|
|
67
|
+
function* L(e, r, i = 0) {
|
|
68
|
+
i == e.length ? yield r : yield* function* r(i, n, t, l) {
|
|
65
69
|
if (null == n) return;
|
|
66
70
|
if ("**" == n) {
|
|
67
|
-
|
|
68
|
-
for (var e of
|
|
69
|
-
} else if ("*" == n) for (var f of
|
|
71
|
+
t.isHiddenFolder || (yield t);
|
|
72
|
+
for (var e of t.allSubdirs()) yield e;
|
|
73
|
+
} else if ("*" == n) for (var f of t.subdirList) yield* L(i, f, l + 1); else if (g(n)) for (var u of t.filterSubdirNames(n)) yield* L(i, u, l + 1); else if (S(n)) for (var o of n) yield* r(i, o, t, l); else {
|
|
70
74
|
let e = n.$or || n.$in;
|
|
71
|
-
if (
|
|
72
|
-
let e =
|
|
73
|
-
e && (yield*
|
|
75
|
+
if (S(e)) for (var a of e) yield* r(i, a, t, l); else if (H(n)) for (var s of R(t, n)) yield* L(i, s, l + 1); else {
|
|
76
|
+
let e = t.getSubdir(n);
|
|
77
|
+
e && (yield* L(i, e, l + 1));
|
|
74
78
|
}
|
|
75
79
|
}
|
|
76
80
|
}(e, e[i], r, i);
|
|
77
81
|
}
|
|
78
82
|
|
|
79
|
-
function
|
|
83
|
+
function O(r, i, n, t, l) {
|
|
80
84
|
var f = r.fileCount;
|
|
81
85
|
if (!(f <= 0)) {
|
|
82
86
|
let e = 0;
|
|
83
87
|
if (s(n)) {
|
|
84
88
|
var u = r.getFile(n);
|
|
85
|
-
u &&
|
|
89
|
+
u && l.countOne() && (t.push(u), ++e);
|
|
86
90
|
} else {
|
|
87
91
|
var o, u = r.qyCache, i = (0 < i?.length && u.qyDB.createIndex(r, i),
|
|
88
92
|
u.getIndexDir(r));
|
|
89
93
|
if (!i) return;
|
|
90
94
|
for (o of function i(n, e) {
|
|
91
|
-
if (null == e) return
|
|
95
|
+
if (null == e) return $;
|
|
92
96
|
if (d(e)) return new m(n.getSubdir(e));
|
|
93
|
-
if (g(e)) return
|
|
94
|
-
if (
|
|
97
|
+
if (g(e)) return j(n.filterSubdirNames(e));
|
|
98
|
+
if (H(e)) return j(R(n, e));
|
|
95
99
|
let {
|
|
96
|
-
$link:
|
|
97
|
-
$spec:
|
|
100
|
+
$link: t,
|
|
101
|
+
$spec: l
|
|
98
102
|
} = e;
|
|
99
|
-
if (null !=
|
|
103
|
+
if (null != t) {
|
|
100
104
|
let e = new m(), {
|
|
101
105
|
qyCache: r,
|
|
102
106
|
subdirList: i
|
|
103
107
|
} = n;
|
|
104
|
-
for (var f of i)
|
|
108
|
+
for (var f of i) D(r, t, f.name, l) && e.addDir(f);
|
|
105
109
|
return e;
|
|
106
110
|
}
|
|
107
111
|
let u = new y();
|
|
108
|
-
if (
|
|
112
|
+
if (S(e)) for (var r of e) u.addNode(i(n, r)); else for (var o in e) {
|
|
109
113
|
let r = e[o];
|
|
110
|
-
if (o ==
|
|
114
|
+
if (o == h) if (S(r)) {
|
|
111
115
|
let e = new m();
|
|
112
116
|
for (var a of r) e.addNode(i(n, a));
|
|
113
117
|
u.addNode(e);
|
|
114
|
-
} else u.addNode(i(n, r)); else if (o ==
|
|
118
|
+
} else u.addNode(i(n, r)); else if (o == N) if (S(r)) for (var s of r) u.addNode(i(n, s)); else u.addNode(i(n, r)); else {
|
|
115
119
|
let e = n.getSubdir(o);
|
|
116
|
-
if (null == e) return
|
|
120
|
+
if (null == e) return $;
|
|
117
121
|
u.addNode(i(e, r));
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
124
|
return u;
|
|
121
|
-
}(i, n).getFiles(
|
|
125
|
+
}(i, n).getFiles(l)) t.push(r.getFile(o)), ++e;
|
|
122
126
|
}
|
|
123
|
-
|
|
127
|
+
b.info(`Checking ${f} file${p(f)}, result: ${e} file` + p(e));
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
130
|
|
|
@@ -129,85 +133,85 @@ function u(e) {
|
|
|
129
133
|
return "number" == r || "boolean" == r || "string" == r && !(e in i);
|
|
130
134
|
}
|
|
131
135
|
|
|
132
|
-
function
|
|
133
|
-
if (0 == e.length) return
|
|
136
|
+
function j(e) {
|
|
137
|
+
if (0 == e.length) return $;
|
|
134
138
|
var r, i = new m();
|
|
135
139
|
for (r of e) i.addDir(r);
|
|
136
140
|
return i;
|
|
137
141
|
}
|
|
138
142
|
|
|
139
|
-
function
|
|
143
|
+
function H(e) {
|
|
140
144
|
return null != e && null != (e.$gt ?? e.$lt ?? e.$gte ?? e.$lte);
|
|
141
145
|
}
|
|
142
146
|
|
|
143
|
-
function
|
|
144
|
-
return null == e || d(e) || g(e) ||
|
|
147
|
+
function C(e) {
|
|
148
|
+
return null == e || d(e) || g(e) || H(e);
|
|
145
149
|
}
|
|
146
150
|
|
|
147
|
-
function
|
|
151
|
+
function R(e, {
|
|
148
152
|
$gt: r,
|
|
149
153
|
$gte: i,
|
|
150
154
|
$lte: n,
|
|
151
|
-
$lt:
|
|
155
|
+
$lt: t
|
|
152
156
|
}) {
|
|
153
|
-
if (null != r && null != i && (i <= r ? i = void 0 : r = void 0), null !=
|
|
154
|
-
null != r) if (null !=
|
|
155
|
-
if (r <
|
|
157
|
+
if (null != r && null != i && (i <= r ? i = void 0 : r = void 0), null != t && null != n && (t <= n ? n = void 0 : t = void 0),
|
|
158
|
+
null != r) if (null != t) {
|
|
159
|
+
if (r < t) return e.compareSubdirRangeL2H(e => r < e && e < t);
|
|
156
160
|
} else {
|
|
157
161
|
if (null == n) return e.compareSubdirRangeH2L(e => r < e);
|
|
158
162
|
if (r < n) return e.compareSubdirRangeL2H(e => r < e && e <= n);
|
|
159
|
-
} else if (null != i) if (null !=
|
|
160
|
-
if (i <
|
|
163
|
+
} else if (null != i) if (null != t) {
|
|
164
|
+
if (i < t) return e.compareSubdirRangeL2H(e => i <= e && e < t);
|
|
161
165
|
} else {
|
|
162
166
|
if (null == n) return e.compareSubdirRangeH2L(e => i <= e);
|
|
163
167
|
if (i < n) return e.compareSubdirRangeL2H(e => i <= e && e <= n);
|
|
164
168
|
if (i == n) return [ e.getSubdir(i) ];
|
|
165
169
|
} else {
|
|
166
|
-
if (null !=
|
|
170
|
+
if (null != t) return e.compareSubdirRangeL2H(e => e < t);
|
|
167
171
|
if (null != n) return e.compareSubdirRangeL2H(e => e <= n);
|
|
168
172
|
}
|
|
169
|
-
return
|
|
173
|
+
return l;
|
|
170
174
|
}
|
|
171
175
|
|
|
172
|
-
function
|
|
176
|
+
function D(e, r, i, n) {
|
|
173
177
|
var r = e.getDir(r);
|
|
174
|
-
return !!r && !!(r = r.getFile(i)) && (null == n || function r(i, n,
|
|
178
|
+
return !!r && !!(r = r.getFile(i)) && (null == n || function r(i, n, t) {
|
|
175
179
|
if (null == n) return !1;
|
|
176
|
-
if (d(
|
|
177
|
-
if (g(
|
|
178
|
-
if (
|
|
179
|
-
if (!
|
|
180
|
-
for (let e = 0; e <
|
|
180
|
+
if (d(t)) return S(n) ? n.includes(t) : c(n) ? n[t] : n == t;
|
|
181
|
+
if (g(t)) return t(n);
|
|
182
|
+
if (S(t)) {
|
|
183
|
+
if (!S(n)) return !1;
|
|
184
|
+
for (let e = 0; e < t.length; ++e) if (!r(i, n[e], t[e])) return !1;
|
|
181
185
|
} else {
|
|
182
186
|
var e, {
|
|
183
|
-
$link:
|
|
187
|
+
$link: l,
|
|
184
188
|
$spec: f
|
|
185
|
-
} =
|
|
186
|
-
if (
|
|
187
|
-
if (d(n)) return
|
|
188
|
-
if (
|
|
189
|
-
for (var u of n) if (
|
|
190
|
-
} else for (var o in n) if (
|
|
189
|
+
} = t;
|
|
190
|
+
if (l) {
|
|
191
|
+
if (d(n)) return D(i, l, n, f);
|
|
192
|
+
if (S(n)) {
|
|
193
|
+
for (var u of n) if (D(i, l, u, f)) return !0;
|
|
194
|
+
} else for (var o in n) if (D(i, l, o, f)) return !0;
|
|
191
195
|
return !1;
|
|
192
196
|
}
|
|
193
|
-
if (d(n) ||
|
|
194
|
-
for (e in
|
|
197
|
+
if (d(n) || S(n)) return !1;
|
|
198
|
+
for (e in t) if (!r(i, n[e], t[e])) return !1;
|
|
195
199
|
}
|
|
196
200
|
return !0;
|
|
197
201
|
}(e, r.fileContent, n));
|
|
198
202
|
}
|
|
199
203
|
|
|
200
|
-
function
|
|
201
|
-
if (null != e) if (u(e = c(e) && r ? Object.values(e) : e)) n[
|
|
202
|
-
i.push([ ...n ]); else if (
|
|
203
|
-
n.length =
|
|
204
|
-
for (var
|
|
205
|
-
} else if (c(e)) for (var f in e) n[
|
|
204
|
+
function Q(e, r, i = [], n = [], t = 0) {
|
|
205
|
+
if (null != e) if (u(e = c(e) && r ? Object.values(e) : e)) n[t] = e, n.length = t + 1,
|
|
206
|
+
i.push([ ...n ]); else if (S(e)) {
|
|
207
|
+
n.length = t + 1;
|
|
208
|
+
for (var l of e.filter(e => u(e))) n[t] = l, i.push([ ...n ]);
|
|
209
|
+
} else if (c(e)) for (var f in e) n[t] = f, n.length = t + 1, Q(e[f], !1, i, n, t + 1);
|
|
206
210
|
return i;
|
|
207
211
|
}
|
|
208
212
|
|
|
209
213
|
export {
|
|
210
214
|
e as getIndexPropPaths,
|
|
211
215
|
n as calDifferenceList,
|
|
212
|
-
|
|
216
|
+
F as parseNamePathAndQuery
|
|
213
217
|
};
|
package/src/QyIndexPropTree.d.ts
CHANGED
package/src/QyIndexPropTree.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
let t = Array.isArray;
|
|
2
2
|
|
|
3
|
-
class
|
|
4
|
-
|
|
3
|
+
class o {
|
|
4
|
+
name;
|
|
5
|
+
parent;
|
|
6
|
+
children;
|
|
7
|
+
childCount;
|
|
8
|
+
indexPropPath;
|
|
9
|
+
constructor(e = void 0, t = void 0) {
|
|
5
10
|
Object.assign(this, {
|
|
6
11
|
name: e,
|
|
7
12
|
parent: t,
|
|
@@ -14,7 +19,7 @@ class i {
|
|
|
14
19
|
!0);
|
|
15
20
|
var r = e[t];
|
|
16
21
|
let h;
|
|
17
|
-
return n ? (h = n[r]) || (h = n[r] = new
|
|
22
|
+
return n ? (h = n[r]) || (h = n[r] = new o(r, this), ++this.childCount) : (h = new o(r, this),
|
|
18
23
|
this.children = {
|
|
19
24
|
[r]: h
|
|
20
25
|
}, ++this.childCount), h.insert(e, t + 1);
|
|
@@ -23,19 +28,19 @@ class i {
|
|
|
23
28
|
var {
|
|
24
29
|
parent: r,
|
|
25
30
|
name: h,
|
|
26
|
-
children:
|
|
31
|
+
children: o
|
|
27
32
|
} = this;
|
|
28
33
|
if (t == e.length) return this.indexPropPath && (n.removed = !0, delete this.indexPropPath),
|
|
29
|
-
r &&
|
|
34
|
+
r && i(this) && function e(t, n) {
|
|
30
35
|
let {
|
|
31
36
|
children: r,
|
|
32
37
|
parent: h,
|
|
33
|
-
name:
|
|
38
|
+
name: o
|
|
34
39
|
} = t;
|
|
35
|
-
r[n] && (delete r[n], 0 == --t.childCount && delete t.children, h) &&
|
|
40
|
+
r[n] && (delete r[n], 0 == --t.childCount && delete t.children, h) && i(t) && e(h, o);
|
|
36
41
|
}(r, h), n;
|
|
37
42
|
this.indexPropPath && (n.hasPrefix = !0);
|
|
38
|
-
r =
|
|
43
|
+
r = o && o[e[t]];
|
|
39
44
|
return r ? r.remove(e, t + 1, n) : n;
|
|
40
45
|
}
|
|
41
46
|
getAllIndexPropPaths(e) {
|
|
@@ -47,14 +52,18 @@ class i {
|
|
|
47
52
|
}
|
|
48
53
|
}
|
|
49
54
|
|
|
50
|
-
function
|
|
55
|
+
function i(e) {
|
|
51
56
|
return !e.indexPropPath && 0 == e.childCount;
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
class r {
|
|
60
|
+
rootNode;
|
|
61
|
+
changeCount;
|
|
62
|
+
allIndexPropPaths;
|
|
63
|
+
_cachedChangeCount;
|
|
55
64
|
constructor() {
|
|
56
65
|
Object.assign(this, {
|
|
57
|
-
rootNode: new
|
|
66
|
+
rootNode: new o(),
|
|
58
67
|
changeCount: 0,
|
|
59
68
|
allIndexPropPaths: []
|
|
60
69
|
});
|
package/src/QyIntersectNode.d.ts
CHANGED
package/src/QyIntersectNode.js
CHANGED
package/src/QyJsonSaver.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { QySaver } from "./QySaver.ts";
|
|
2
2
|
export declare class QyJsonSaver extends QySaver {
|
|
3
3
|
constructor(dataFolder: any, options: any);
|
|
4
|
-
processAfterLoad(binData: any
|
|
5
|
-
processBeforeSave(json: any
|
|
4
|
+
processAfterLoad(binData: any): any;
|
|
5
|
+
processBeforeSave(json: any): Buffer<any>;
|
|
6
6
|
}
|
package/src/QyJsonSaver.js
CHANGED
|
@@ -13,11 +13,11 @@ class r extends e {
|
|
|
13
13
|
...r
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
processAfterLoad(e
|
|
17
|
-
return JSON.parse(super.processAfterLoad(e
|
|
16
|
+
processAfterLoad(e) {
|
|
17
|
+
return JSON.parse(super.processAfterLoad(e));
|
|
18
18
|
}
|
|
19
|
-
processBeforeSave(e
|
|
20
|
-
return super.processBeforeSave(JSON.stringify(e)
|
|
19
|
+
processBeforeSave(e) {
|
|
20
|
+
return super.processBeforeSave(JSON.stringify(e));
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
package/src/QyKVData.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
export declare class QyKVData {
|
|
2
|
+
kvFolder: any;
|
|
3
|
+
snapshotFolder: any;
|
|
4
|
+
qyCache: any;
|
|
5
|
+
options: any;
|
|
6
|
+
qyKVDataSaver: any;
|
|
7
|
+
qySnapshotCompactor: any;
|
|
8
|
+
qyKVDataCleaner: any;
|
|
9
|
+
compactState: number;
|
|
10
|
+
compactMaxChangeId: number;
|
|
11
|
+
snapshotSavedChangeId: number;
|
|
12
|
+
maxChangeId: number;
|
|
13
|
+
emptySnapshotNumVersionList: any[];
|
|
14
|
+
isStopping: boolean;
|
|
15
|
+
qySnapshots: any;
|
|
16
|
+
aclKeyValueMap: any;
|
|
17
|
+
compactInterval: any;
|
|
18
|
+
unloadInterval: any;
|
|
2
19
|
constructor(kvFolder: any, options: any, qyCache: any);
|
|
3
20
|
start(maxChangeId: any, loadedMaxAclNum: any, qySnapshots: any, aclKeyValueMap: any): this;
|
|
4
21
|
stop(): Promise<void>;
|
|
@@ -7,6 +24,6 @@ export declare class QyKVData {
|
|
|
7
24
|
decreaseChangeId(): void;
|
|
8
25
|
getValueSync(key: any): any;
|
|
9
26
|
removeKey(key: any): any;
|
|
10
|
-
onSnapshotSavedChangeId(snapshotSavedChangeId: any, pMOnlySnapshot
|
|
27
|
+
onSnapshotSavedChangeId(snapshotSavedChangeId: any, pMOnlySnapshot?: any): void;
|
|
11
28
|
onCompactUpdates(compactUpdates: any): void;
|
|
12
29
|
}
|