datafolder 1.0.17 → 1.0.18
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 -0
- package/package.json +17 -17
- package/sample.js +3 -0
- package/src/QyAcl.js +109 -87
- package/src/QyBatch.d.ts +4 -0
- package/src/QyBatch.js +150 -107
- package/src/QyBinaryHeap.d.ts +10 -0
- package/src/QyBinaryHeap.js +55 -0
- package/src/QyCD.d.ts +3 -0
- package/src/QyCD.js +68 -57
- package/src/QyCache.d.ts +8 -0
- package/src/QyCache.js +108 -70
- package/src/QyDB.js +4 -4
- package/src/QyFile.js +8 -7
- package/src/QyFileContentUtils.d.ts +0 -1
- package/src/QyFileContentUtils.js +123 -124
- package/src/QyHNSW.d.ts +10 -0
- package/src/QyHNSW.js +57 -0
- package/src/QyIndex.js +28 -27
- package/src/QyIndexPropTree.js +3 -1
- package/src/QySnapshots.js +209 -206
- package/src/QyTrigger.js +5 -6
- package/src/QyUtils.d.ts +5 -0
- package/src/QyUtils.js +108 -98
- package/static/codemirror.bundle/editor.bundle.js +17 -3
- package/test/testQyDocumentDB.js +38 -0
|
@@ -1,184 +1,183 @@
|
|
|
1
1
|
import {
|
|
2
|
+
isDeepStrictEqual as t
|
|
3
|
+
} from "node:util";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
isDate as a,
|
|
7
|
+
isArray as g,
|
|
2
8
|
isNotNullObj as f,
|
|
3
|
-
trimArrayTail as
|
|
4
|
-
isSimpleType as
|
|
9
|
+
trimArrayTail as m,
|
|
10
|
+
isSimpleType as p,
|
|
5
11
|
SpecialOperators as r,
|
|
6
|
-
isEmptyObj as i
|
|
12
|
+
isEmptyObj as i,
|
|
13
|
+
isFloat32Array as u
|
|
7
14
|
} from "./QyUtils.js";
|
|
8
15
|
|
|
9
|
-
let
|
|
10
|
-
$del:
|
|
11
|
-
$rpl:
|
|
12
|
-
$ext:
|
|
16
|
+
let {
|
|
17
|
+
$del: y,
|
|
18
|
+
$rpl: h,
|
|
19
|
+
$ext: w,
|
|
20
|
+
$f32: o
|
|
13
21
|
} = r;
|
|
14
22
|
|
|
15
|
-
function
|
|
16
|
-
if (null ==
|
|
17
|
-
if (
|
|
18
|
-
if (
|
|
19
|
-
var
|
|
20
|
-
if (null !=
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var l, t = p(r);
|
|
24
|
-
for (l in n) {
|
|
25
|
-
var u = a(r[l], n[l]);
|
|
26
|
-
null == u ? (delete r[l], t && g(r)) : r[l] = u;
|
|
27
|
-
}
|
|
23
|
+
function d(e, l) {
|
|
24
|
+
if (null == l) return e;
|
|
25
|
+
if (l !== y) {
|
|
26
|
+
if (p(l)) return l;
|
|
27
|
+
var n = l[h];
|
|
28
|
+
if (null != n) {
|
|
29
|
+
let r = n[o];
|
|
30
|
+
return null != r ? new Float32Array(r) : n;
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (r == m) return {
|
|
39
|
-
[w]: O(n)
|
|
40
|
-
};
|
|
41
|
-
if (h(r) || h(n)) return n;
|
|
42
|
-
for (var l in n) {
|
|
43
|
-
var t = n[l], u = r[l];
|
|
44
|
-
r[l] = null == u ? t : o(u, t);
|
|
32
|
+
let r = l[o];
|
|
33
|
+
if (null != r) return new Float32Array(r);
|
|
34
|
+
if (null == e || p(e)) return l;
|
|
35
|
+
if (e != l) {
|
|
36
|
+
var t, u = g(e);
|
|
37
|
+
for (t in l) {
|
|
38
|
+
var i = d(e[t], l[t]);
|
|
39
|
+
null == i ? (delete e[t], u && m(e)) : e[t] = i;
|
|
40
|
+
}
|
|
45
41
|
}
|
|
42
|
+
return e;
|
|
46
43
|
}
|
|
47
|
-
return r;
|
|
48
44
|
}
|
|
49
45
|
|
|
50
|
-
function
|
|
51
|
-
let
|
|
46
|
+
function e(r, e) {
|
|
47
|
+
let l = {
|
|
52
48
|
oldValue: {},
|
|
53
49
|
newValue: {}
|
|
54
50
|
};
|
|
55
|
-
r = S(r,
|
|
56
|
-
return
|
|
51
|
+
r = S(r, e, [], 0, l);
|
|
52
|
+
return l.oldValue = A(l.oldValue, !0), l.newValue = A(l.newValue, !1), {
|
|
57
53
|
merged: r,
|
|
58
|
-
delta:
|
|
54
|
+
delta: l = l.oldValue || l.newValue ? l : void 0
|
|
59
55
|
};
|
|
60
56
|
}
|
|
61
57
|
|
|
62
|
-
function
|
|
63
|
-
if (!
|
|
64
|
-
let
|
|
65
|
-
for (let r = 0; r <
|
|
66
|
-
var t =
|
|
67
|
-
f(
|
|
58
|
+
function v(r, e, l) {
|
|
59
|
+
if (!e || 0 == e.length) return l;
|
|
60
|
+
let n = r;
|
|
61
|
+
for (let r = 0; r < e.length - 1; ++r) {
|
|
62
|
+
var t = e[r];
|
|
63
|
+
f(n[t]) || (n[t] = {}), n = n[t];
|
|
68
64
|
}
|
|
69
|
-
var u =
|
|
70
|
-
return void 0 ===
|
|
65
|
+
var u = e.at(-1);
|
|
66
|
+
return void 0 === l ? delete n[u] : n[u] = l, r;
|
|
71
67
|
}
|
|
72
68
|
|
|
73
|
-
function
|
|
74
|
-
if (null !=
|
|
75
|
-
if (!
|
|
76
|
-
if (0 !=
|
|
69
|
+
function l(r, e) {
|
|
70
|
+
if (null != e && null != (r = c(r))) {
|
|
71
|
+
if (!g(e)) return "" == e ? r : c(r[e]);
|
|
72
|
+
if (0 != e.length && (1 != e.length || "" != e[0])) for (var l of e) if (null == (r = c(r[l]))) return;
|
|
77
73
|
return r;
|
|
78
74
|
}
|
|
79
75
|
}
|
|
80
76
|
|
|
81
|
-
function
|
|
82
|
-
var t = n
|
|
83
|
-
if (
|
|
77
|
+
function s(r, e, l = !1, n = 0) {
|
|
78
|
+
var t = e[n];
|
|
79
|
+
if (n == e.length - 1) return delete r[t], !l && i(r) ? void 0 : r;
|
|
84
80
|
var u = r[t];
|
|
85
81
|
if (f(u)) {
|
|
86
|
-
u =
|
|
87
|
-
if (null == u && !
|
|
82
|
+
u = s(u, e, l, n + 1);
|
|
83
|
+
if (null == u && !l) return delete r[t], i(r) ? void 0 : r;
|
|
88
84
|
r[t] = u;
|
|
89
85
|
}
|
|
90
86
|
return r;
|
|
91
87
|
}
|
|
92
88
|
|
|
93
|
-
function
|
|
94
|
-
return function
|
|
95
|
-
if (
|
|
96
|
-
if (!f(
|
|
89
|
+
function A(r, e = !0) {
|
|
90
|
+
return function l(n, t) {
|
|
91
|
+
if (a(n)) return n.toISOString();
|
|
92
|
+
if (!f(n)) return t && n === y ? void 0 : n;
|
|
97
93
|
if (t) {
|
|
98
|
-
let r =
|
|
99
|
-
if (null != r) return
|
|
100
|
-
let
|
|
101
|
-
if (null !=
|
|
94
|
+
let r = n[h];
|
|
95
|
+
if (null != r) return l(r, t);
|
|
96
|
+
let e = n[w];
|
|
97
|
+
if (null != e) return l(g(e) ? e : [ e ], t);
|
|
102
98
|
}
|
|
103
|
-
let
|
|
99
|
+
let e = g(n);
|
|
104
100
|
let u = !0;
|
|
105
|
-
for (var i in
|
|
106
|
-
let r =
|
|
107
|
-
void 0 === r ? (delete
|
|
101
|
+
for (var i in n) {
|
|
102
|
+
let r = l(n[i], t);
|
|
103
|
+
void 0 === r ? (delete n[i], e && m(n)) : (n[i] = r, u = !1);
|
|
108
104
|
}
|
|
109
|
-
return u ? void 0 :
|
|
110
|
-
}(r,
|
|
105
|
+
return u ? void 0 : n;
|
|
106
|
+
}(r, e);
|
|
111
107
|
}
|
|
112
108
|
|
|
113
|
-
function
|
|
114
|
-
if (
|
|
115
|
-
for (var
|
|
116
|
-
var
|
|
117
|
-
|
|
109
|
+
function n(r) {
|
|
110
|
+
if (p(r)) return r ? y : void 0;
|
|
111
|
+
for (var e in r) {
|
|
112
|
+
var l = n(r[e]);
|
|
113
|
+
l ? r[e] = l : delete r[e];
|
|
118
114
|
}
|
|
119
|
-
return
|
|
115
|
+
return g(r) && m(r), r;
|
|
120
116
|
}
|
|
121
117
|
|
|
122
|
-
function S(
|
|
123
|
-
if (void 0 ===
|
|
124
|
-
if (
|
|
125
|
-
if (null ==
|
|
126
|
-
var i =
|
|
127
|
-
if (null != i) return
|
|
128
|
-
let r =
|
|
129
|
-
if (null != r) return
|
|
130
|
-
|
|
118
|
+
function S(e, l, n, t, u) {
|
|
119
|
+
if (void 0 === l) return e;
|
|
120
|
+
if (l !== y && null !== l) {
|
|
121
|
+
if (null == e || p(e) || p(l)) return O(e, l, n, u);
|
|
122
|
+
var i = l[h];
|
|
123
|
+
if (null != i) return O(e, i, n, u);
|
|
124
|
+
let r = l[w];
|
|
125
|
+
if (null != r) return g(r) || (r = [ r ]), (g(e) ? (e, l, r, n) => {
|
|
126
|
+
l = A(l);
|
|
131
127
|
var t = {};
|
|
132
|
-
for (let r = 0; r <
|
|
133
|
-
var u =
|
|
134
|
-
null != u && (t[r +
|
|
135
|
-
[
|
|
128
|
+
for (let r = 0; r < l.length; ++r) {
|
|
129
|
+
var u = l[r];
|
|
130
|
+
null != u && (t[r + e.length] = p(u) ? u : {
|
|
131
|
+
[h]: u
|
|
136
132
|
});
|
|
137
133
|
}
|
|
138
|
-
return
|
|
139
|
-
} :
|
|
140
|
-
if (
|
|
141
|
-
var
|
|
142
|
-
if (
|
|
143
|
-
var
|
|
144
|
-
for (
|
|
145
|
-
o[
|
|
146
|
-
var V = S(
|
|
147
|
-
null == V ? (delete
|
|
134
|
+
return $(n, r, e, t), e.concat(l);
|
|
135
|
+
} : O)(e, r, n, u);
|
|
136
|
+
if (g(e) && !g(l) || !g(e) && g(l)) return O(e, l, n, u);
|
|
137
|
+
var a = e, f = l, o = n, d = t, v = u;
|
|
138
|
+
if (a != f) {
|
|
139
|
+
var s, c = g(a);
|
|
140
|
+
for (s in f) {
|
|
141
|
+
o[d] = s, o.length = d + 1;
|
|
142
|
+
var V = S(a[s], f[s], o, d + 1, v);
|
|
143
|
+
null == V ? (delete a[s], c && m(a)) : a[s] = V;
|
|
148
144
|
}
|
|
149
145
|
}
|
|
150
|
-
return
|
|
146
|
+
return a;
|
|
151
147
|
}
|
|
152
|
-
null !=
|
|
148
|
+
null != e && $(u, n, e, y);
|
|
153
149
|
}
|
|
154
150
|
|
|
155
|
-
function
|
|
156
|
-
|
|
157
|
-
return r ===
|
|
158
|
-
[
|
|
159
|
-
}
|
|
160
|
-
[
|
|
161
|
-
})
|
|
151
|
+
function O(r, e, l, n) {
|
|
152
|
+
e = A(e);
|
|
153
|
+
return r === e || u(r) && u(e) && t(r, e) ? r : null != e ? (null == r ? $(n, l, 0 == l.length ? void 0 : null, u(e) ? {
|
|
154
|
+
[o]: Array.from(e)
|
|
155
|
+
} : p(e) ? e : {
|
|
156
|
+
[h]: e
|
|
157
|
+
}) : $(n, l, r, u(e) ? {
|
|
158
|
+
[o]: Array.from(e)
|
|
159
|
+
} : p(r) ? e : {
|
|
160
|
+
[h]: e
|
|
161
|
+
}), e) : void $(n, l, r, y);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
function
|
|
165
|
-
r.oldValue =
|
|
164
|
+
function $(r, e, l, n) {
|
|
165
|
+
r.oldValue = v(r.oldValue, e, l), r.newValue = v(r.newValue, e, n);
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
function
|
|
169
|
-
if (null != r && r !=
|
|
170
|
-
for (;null != r[
|
|
168
|
+
function c(r) {
|
|
169
|
+
if (null != r && r != y) {
|
|
170
|
+
for (;null != r[h]; ) if ((r = r[h]) == y) return;
|
|
171
171
|
return r;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
export {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
l as objToDelMarks
|
|
176
|
+
d as mergeContent,
|
|
177
|
+
e as mergeContentAndGenDelta,
|
|
178
|
+
v as setValByNamePath,
|
|
179
|
+
l as getValByNamePath,
|
|
180
|
+
s as delValByNamePath,
|
|
181
|
+
A as cleanContent,
|
|
182
|
+
n as objToDelMarks
|
|
184
183
|
};
|
package/src/QyHNSW.d.ts
ADDED
package/src/QyHNSW.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import "./QyBinaryHeap.js";
|
|
2
|
+
|
|
3
|
+
class t {
|
|
4
|
+
items = [];
|
|
5
|
+
cmpFun;
|
|
6
|
+
constructor(t = (t, e) => t - e) {
|
|
7
|
+
this.cmpFun = t;
|
|
8
|
+
}
|
|
9
|
+
get size() {
|
|
10
|
+
return this.items.length;
|
|
11
|
+
}
|
|
12
|
+
get isEmpty() {
|
|
13
|
+
return 0 == this.items.length;
|
|
14
|
+
}
|
|
15
|
+
peek() {
|
|
16
|
+
return this.items[0];
|
|
17
|
+
}
|
|
18
|
+
push(t) {
|
|
19
|
+
var e = this.items;
|
|
20
|
+
e.push(t), i(this);
|
|
21
|
+
}
|
|
22
|
+
pop() {
|
|
23
|
+
if (!this.isEmpty) {
|
|
24
|
+
for (var t = this.items, e = t[0], [ t, i = 0 ] = (t[0] = t.at(-1),
|
|
25
|
+
--t.length, [ this ]), {
|
|
26
|
+
items: s,
|
|
27
|
+
cmpFun: r
|
|
28
|
+
} = t, h = s.length; i < h; ) {
|
|
29
|
+
var n = 2 * i + 1;
|
|
30
|
+
if (!(n < h)) break;
|
|
31
|
+
{
|
|
32
|
+
let t = i;
|
|
33
|
+
0 < r(s[n], s[t]) && (t = n);
|
|
34
|
+
n = 1 + n;
|
|
35
|
+
if ((t = n < h && 0 < r(s[n], s[t]) ? n : t) == i) break;
|
|
36
|
+
[ s[i], s[t] ] = [ s[t], s[i] ], i = t;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return e;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function i(t, e = t.items.length - 1) {
|
|
45
|
+
for (var {
|
|
46
|
+
items: i,
|
|
47
|
+
cmpFun: s
|
|
48
|
+
} = t; 0 < e; ) {
|
|
49
|
+
var r = Math.floor((e - 1) / 2);
|
|
50
|
+
if (!(0 < s(i[e], i[r]))) break;
|
|
51
|
+
[ i[e], i[r] ] = [ i[r], i[e] ], e = r;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export {
|
|
56
|
+
t as QyHNSW
|
|
57
|
+
};
|
package/src/QyIndex.js
CHANGED
|
@@ -7,35 +7,36 @@ import {
|
|
|
7
7
|
SpecialOperators as i,
|
|
8
8
|
getSuffix as p,
|
|
9
9
|
fromSingleName as r,
|
|
10
|
-
toSingleName as o
|
|
10
|
+
toSingleName as o,
|
|
11
|
+
isArray as v
|
|
11
12
|
} from "./QyUtils.js";
|
|
12
13
|
|
|
13
14
|
import {
|
|
14
|
-
getValByNamePath as
|
|
15
|
+
getValByNamePath as m
|
|
15
16
|
} from "./QyFileContentUtils.js";
|
|
16
17
|
|
|
17
18
|
import {
|
|
18
|
-
QyUnionNode as
|
|
19
|
+
QyUnionNode as y
|
|
19
20
|
} from "./QyUnionNode.js";
|
|
20
21
|
|
|
21
22
|
import {
|
|
22
|
-
QyIntersectNode as
|
|
23
|
+
QyIntersectNode as b
|
|
23
24
|
} from "./QyIntersectNode.js";
|
|
24
25
|
|
|
25
26
|
import {
|
|
26
|
-
logger as
|
|
27
|
+
logger as S
|
|
27
28
|
} from "./QyLogger.js";
|
|
28
29
|
|
|
29
|
-
let
|
|
30
|
+
let {
|
|
30
31
|
$or: h,
|
|
31
32
|
$and: N
|
|
32
|
-
} = i, $ = new
|
|
33
|
+
} = i, $ = new y(), l = [];
|
|
33
34
|
|
|
34
35
|
function e(e) {
|
|
35
36
|
if (null != e && !s(e)) return function r(i, n, t, l) {
|
|
36
37
|
if (C(i)) 0 < t.length && (n[o(t)] = 1); else {
|
|
37
38
|
let e = i[h] || i[N];
|
|
38
|
-
if (null != e) if (
|
|
39
|
+
if (null != e) if (v(e)) for (var f of e) r(f, n, t, l), t.length = l; else r(e, n, t, l),
|
|
39
40
|
t.length = l; else for (var u in i) t.push(u), r(i[u], n, t, l + 1),
|
|
40
41
|
t.length = l;
|
|
41
42
|
}
|
|
@@ -43,9 +44,9 @@ function e(e) {
|
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
function n(e, r, i, n, t, l) {
|
|
46
|
-
n =
|
|
47
|
+
n = m(n, r), t = m(t, r);
|
|
47
48
|
if (n !== t) {
|
|
48
|
-
var f, u, o, a, l =
|
|
49
|
+
var f, u, o, a, l = v(t) || v(m(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 = [];
|
|
49
50
|
for (f in s) d[f] || (u = s[f], (u = e.searchSubdir(u)) && (u = u.getFile(i)) && c.push(u));
|
|
50
51
|
for (o in d) s[o] || (a = d[o], a = e.searchOrCreateSubdir(a), g.push(a.getOrCreateFile(i)));
|
|
51
52
|
return {
|
|
@@ -70,9 +71,9 @@ function* L(e, r, i = 0) {
|
|
|
70
71
|
if ("**" == n) {
|
|
71
72
|
t.isHiddenFolder || (yield t);
|
|
72
73
|
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 (
|
|
74
|
+
} 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 (v(n)) for (var o of n) yield* r(i, o, t, l); else {
|
|
74
75
|
let e = n.$or || n.$in;
|
|
75
|
-
if (
|
|
76
|
+
if (v(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
77
|
let e = t.getSubdir(n);
|
|
77
78
|
e && (yield* L(i, e, l + 1));
|
|
78
79
|
}
|
|
@@ -93,7 +94,7 @@ function O(r, i, n, t, l) {
|
|
|
93
94
|
if (!i) return;
|
|
94
95
|
for (o of function i(n, e) {
|
|
95
96
|
if (null == e) return $;
|
|
96
|
-
if (d(e)) return new
|
|
97
|
+
if (d(e)) return new y(n.getSubdir(e));
|
|
97
98
|
if (g(e)) return j(n.filterSubdirNames(e));
|
|
98
99
|
if (H(e)) return j(R(n, e));
|
|
99
100
|
let {
|
|
@@ -101,21 +102,21 @@ function O(r, i, n, t, l) {
|
|
|
101
102
|
$spec: l
|
|
102
103
|
} = e;
|
|
103
104
|
if (null != t) {
|
|
104
|
-
let e = new
|
|
105
|
+
let e = new y(), {
|
|
105
106
|
qyCache: r,
|
|
106
107
|
subdirList: i
|
|
107
108
|
} = n;
|
|
108
109
|
for (var f of i) D(r, t, f.name, l) && e.addDir(f);
|
|
109
110
|
return e;
|
|
110
111
|
}
|
|
111
|
-
let u = new
|
|
112
|
-
if (
|
|
112
|
+
let u = new b();
|
|
113
|
+
if (v(e)) for (var r of e) u.addNode(i(n, r)); else for (var o in e) {
|
|
113
114
|
let r = e[o];
|
|
114
|
-
if (o == h) if (
|
|
115
|
-
let e = new
|
|
115
|
+
if (o == h) if (v(r)) {
|
|
116
|
+
let e = new y();
|
|
116
117
|
for (var a of r) e.addNode(i(n, a));
|
|
117
118
|
u.addNode(e);
|
|
118
|
-
} else u.addNode(i(n, r)); else if (o == N) if (
|
|
119
|
+
} else u.addNode(i(n, r)); else if (o == N) if (v(r)) for (var s of r) u.addNode(i(n, s)); else u.addNode(i(n, r)); else {
|
|
119
120
|
let e = n.getSubdir(o);
|
|
120
121
|
if (null == e) return $;
|
|
121
122
|
u.addNode(i(e, r));
|
|
@@ -124,7 +125,7 @@ function O(r, i, n, t, l) {
|
|
|
124
125
|
return u;
|
|
125
126
|
}(i, n).getFiles(l)) t.push(r.getFile(o)), ++e;
|
|
126
127
|
}
|
|
127
|
-
|
|
128
|
+
S.info(`Checking ${f} file${p(f)}, result: ${e} file` + p(e));
|
|
128
129
|
}
|
|
129
130
|
}
|
|
130
131
|
|
|
@@ -135,7 +136,7 @@ function u(e) {
|
|
|
135
136
|
|
|
136
137
|
function j(e) {
|
|
137
138
|
if (0 == e.length) return $;
|
|
138
|
-
var r, i = new
|
|
139
|
+
var r, i = new y();
|
|
139
140
|
for (r of e) i.addDir(r);
|
|
140
141
|
return i;
|
|
141
142
|
}
|
|
@@ -177,10 +178,10 @@ function D(e, r, i, n) {
|
|
|
177
178
|
var r = e.getDir(r);
|
|
178
179
|
return !!r && !!(r = r.getFile(i)) && (null == n || function r(i, n, t) {
|
|
179
180
|
if (null == n) return !1;
|
|
180
|
-
if (d(t)) return
|
|
181
|
+
if (d(t)) return v(n) ? n.includes(t) : c(n) ? n[t] : n == t;
|
|
181
182
|
if (g(t)) return t(n);
|
|
182
|
-
if (
|
|
183
|
-
if (!
|
|
183
|
+
if (v(t)) {
|
|
184
|
+
if (!v(n)) return !1;
|
|
184
185
|
for (let e = 0; e < t.length; ++e) if (!r(i, n[e], t[e])) return !1;
|
|
185
186
|
} else {
|
|
186
187
|
var e, {
|
|
@@ -189,12 +190,12 @@ function D(e, r, i, n) {
|
|
|
189
190
|
} = t;
|
|
190
191
|
if (l) {
|
|
191
192
|
if (d(n)) return D(i, l, n, f);
|
|
192
|
-
if (
|
|
193
|
+
if (v(n)) {
|
|
193
194
|
for (var u of n) if (D(i, l, u, f)) return !0;
|
|
194
195
|
} else for (var o in n) if (D(i, l, o, f)) return !0;
|
|
195
196
|
return !1;
|
|
196
197
|
}
|
|
197
|
-
if (d(n) ||
|
|
198
|
+
if (d(n) || v(n)) return !1;
|
|
198
199
|
for (e in t) if (!r(i, n[e], t[e])) return !1;
|
|
199
200
|
}
|
|
200
201
|
return !0;
|
|
@@ -203,7 +204,7 @@ function D(e, r, i, n) {
|
|
|
203
204
|
|
|
204
205
|
function Q(e, r, i = [], n = [], t = 0) {
|
|
205
206
|
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 (
|
|
207
|
+
i.push([ ...n ]); else if (v(e)) {
|
|
207
208
|
n.length = t + 1;
|
|
208
209
|
for (var l of e.filter(e => u(e))) n[t] = l, i.push([ ...n ]);
|
|
209
210
|
} else if (c(e)) for (var f in e) n[t] = f, n.length = t + 1, Q(e[f], !1, i, n, t + 1);
|