datafolder 1.0.12 → 1.0.13

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/src/QyFile.js CHANGED
@@ -7,25 +7,25 @@ import {
7
7
  SpecialFilePaths as n,
8
8
  getContentKey as i,
9
9
  isNotNullObj as a,
10
- isSimpleType as d,
11
- fromSingleName as o,
12
- isEmptyObj as l
10
+ isSimpleType as h,
11
+ fromSingleName as s,
12
+ isEmptyObj as r,
13
+ getNowTime as l
13
14
  } from "./QyUtils.js";
14
15
 
15
16
  import {
16
- getValByNamePath as r
17
+ getValByNamePath as o
17
18
  } from "./QyFileContentUtils.js";
18
19
 
19
20
  import {
20
- QyIndexPropTree as s
21
+ QyIndexPropTree as f
21
22
  } from "./QyIndexPropTree.js";
22
23
 
23
24
  import {
24
- analyzeExpireInfo as f,
25
25
  handleExpiredProps as u
26
26
  } from "./QyExpire.js";
27
27
 
28
- let C = Array.isArray, h = n.IndexPropPathsFileName, {
28
+ let d = Array.isArray, C = n.IndexPropPathsFileName, {
29
29
  $spec: p,
30
30
  $raw: c,
31
31
  $clone: y
@@ -50,15 +50,7 @@ class m extends e {
50
50
  return this._fileContentKey || (this._fileContentKey = i(this.fullPathHash));
51
51
  }
52
52
  get fileContent() {
53
- var e, t, n, i, r = this;
54
- return r.created && null == r._fileContent && !r.fileContentLoaded && (r.fileContentLoaded = !0,
55
- e = r.qyCache) && (r._fileContent = e.qyKVData.getValueSync(r.fileContentKey),
56
- !r.underHiddenFolder && (r = r, i = (e = e).getExpireInfoFile(r.fullPathHash)) && ({
57
- expiredProps: i,
58
- remainingExpireInfoObj: t,
59
- toDeleteFile: n
60
- } = f(i.fileContent), u(e.qyDB, r, i, n), l(t) || e.monitorContentExpire(r, t))),
61
- this.visited = !0, this._fileContent;
53
+ return this.ensureLoaded(), this.visited = !0, this._fileContent;
62
54
  }
63
55
  set fileContent(e) {
64
56
  this.visited = !0, this._fileContent = e;
@@ -70,12 +62,12 @@ class m extends e {
70
62
  fileContent: n,
71
63
  underHiddenFolder: i
72
64
  } = this;
73
- if (e && i && t == h) {
65
+ if (e && i && t == C) {
74
66
  e = this._qyIndexPropTree;
75
67
  if (e) return e;
76
- var r, l = this._qyIndexPropTree = new s();
77
- for (r in n) l.insert(o(r));
78
- return l;
68
+ var r, o = this._qyIndexPropTree = new f();
69
+ for (r in n) o.insert(s(r));
70
+ return o;
79
71
  }
80
72
  }
81
73
  get isFile() {
@@ -88,42 +80,65 @@ class m extends e {
88
80
  get clonedContent() {
89
81
  return structuredClone(this.fileContent);
90
82
  }
91
- setContent(e) {
92
- this.fileContent = e;
93
- }
94
83
  view(e = y, t) {
95
84
  var n = this.fileContent;
96
- return null == n || d(n) ? n : function t(n, i, r, l) {
85
+ return null == n || h(n) ? n : function t(n, i, r, o) {
97
86
  if (r === c) return i;
98
87
  if (null == r) return;
99
- if (d(r)) return r ? l ? i : structuredClone(i) : void 0;
88
+ if (h(r)) return r ? o ? i : structuredClone(i) : void 0;
100
89
  let e = r.$link;
101
- if (null != e) return _(n, i, e, r[p]);
102
- if (d(i)) return i;
103
- C(r) && (r = Object.fromEntries(r.filter(e => e).map(e => [ e, 1 ])));
104
- let o = C(i) ? [] : {};
90
+ if (null != e) return v(n, i, e, r[p]);
91
+ if (h(i)) return i;
92
+ d(r) && (r = Object.fromEntries(r.filter(e => e).map(e => [ e, 1 ])));
93
+ let s = d(i) ? [] : {};
105
94
  let {
106
- $all: s,
95
+ $all: l,
107
96
  "**": a
108
97
  } = r;
109
- if (s || a) for (var f in i) {
110
- let e = r[f] ?? s ?? a;
111
- e && (o[f] = t(n, i[f], e, l));
98
+ if (l || a) for (var f in i) {
99
+ let e = r[f] ?? l ?? a;
100
+ e && (s[f] = t(n, i[f], e, o));
112
101
  } else for (var u in r) {
113
102
  let e = r[u];
114
- e && (o[u] = t(n, i[u], e, l));
103
+ e && (s[u] = t(n, i[u], e, o));
115
104
  }
116
- return o;
105
+ return s;
117
106
  }(this, n, e, t);
118
107
  }
119
108
  prop(e, t = y, n) {
120
109
  var i;
121
- if (t) return e = r(this.fileContent, C(e) ? e : [ e ]), i = t.$link, null != i ? _(this, e, i, t[p], n) : n || t === c ? e : structuredClone(e);
110
+ if (t) return e = o(this.fileContent, d(e) ? e : [ e ]), i = t.$link, null != i ? v(this, e, i, t[p], n) : n || t === c ? e : structuredClone(e);
122
111
  }
123
112
  unloadFileContent() {
124
113
  this.created && this.fileContentLoaded && null != this._fileContent && (this._fileContent = void 0,
125
114
  this.fileContentLoaded = !1);
126
115
  }
116
+ ensureLoaded() {
117
+ if (this.created && null == this._fileContent && !this.fileContentLoaded) {
118
+ this.fileContentLoaded = !0;
119
+ var e = this.qyCache;
120
+ if (!e) return;
121
+ if (this._fileContent = e.qyKVData.getValueSync(this.fileContentKey),
122
+ !this.underHiddenFolder) {
123
+ var t, n, i = this;
124
+ !i.cExpireChecked && (i.cExpireChecked = !0, t = e.getExpireInfoFile(i.fullPathHash, "c")) && ({
125
+ expiredProps: t,
126
+ remainingExpireInfoObj: n
127
+ } = ((e, t = l()) => {
128
+ let n, i = {};
129
+ for (var r in e) {
130
+ var o = e[r];
131
+ o <= t ? n ? n.push(r) : n = [ r ] : i[r] = o;
132
+ }
133
+ return {
134
+ expiredProps: n,
135
+ remainingExpireInfoObj: i
136
+ };
137
+ })(t.fileContent), t && u(e.qyDB, i, t), r(n) || e.monitorContentExpire(i, n));
138
+ }
139
+ }
140
+ return this;
141
+ }
127
142
  }
128
143
 
129
144
  function g(e, t, n, i) {
@@ -134,15 +149,15 @@ function g(e, t, n, i) {
134
149
  return t;
135
150
  }
136
151
 
137
- function _(e, t, n, i, r = !1) {
138
- let l = e.qyCache.getDir(n);
139
- if (C(t)) return t.map(e => g(l, e, i, r));
152
+ function v(e, t, n, i, r = !1) {
153
+ let o = e.qyCache.getDir(n);
154
+ if (d(t)) return t.map(e => g(o, e, i, r));
140
155
  if (a(t)) {
141
- var o, s = {};
142
- for (o in t) s[o] = g(l, o, i, r);
143
- return s;
156
+ var s, l = {};
157
+ for (s in t) l[s] = g(o, s, i, r);
158
+ return l;
144
159
  }
145
- return g(l, t, i, r);
160
+ return g(o, t, i, r);
146
161
  }
147
162
 
148
163
  export {
@@ -6,5 +6,6 @@ export declare function mergeContentAndGenDelta(oldContent: any, newContent: any
6
6
  };
7
7
  export declare function setValByNamePath(rootObj: any, namePath: any, value: any): any;
8
8
  export declare function getValByNamePath(obj: any, namePath: any): any;
9
+ export declare function delValByNamePath(obj: any, propPath: any, keepEmptyObj?: boolean, idx?: number): any;
9
10
  export declare function cleanContent(obj: any, shouldCleanMark?: boolean, strict?: boolean): any;
10
11
  export declare function objToDelMarks(obj: any): any;
@@ -2,171 +2,185 @@ import {
2
2
  isNotNullObj as a,
3
3
  trimArrayTail as g,
4
4
  isSimpleType as h,
5
- SpecialOperators as r
5
+ SpecialOperators as r,
6
+ isEmptyObj as i
6
7
  } from "./QyUtils.js";
7
8
 
8
9
  let p = Array.isArray, {
9
- $del: w,
10
- $rpl: m,
10
+ $del: m,
11
+ $rpl: w,
11
12
  $ext: y
12
13
  } = r;
13
14
 
14
- function i(r, n) {
15
+ function f(r, n) {
15
16
  if (null == n) return r;
16
- if (n !== w) {
17
+ if (n !== m) {
17
18
  if (h(n)) return n;
18
- var l = n[m];
19
- if (null != l) return l;
19
+ var e = n[w];
20
+ if (null != e) return e;
20
21
  if (null == r || h(r)) return n;
21
22
  if (r != n) {
22
- var e, u = p(r);
23
- for (e in n) {
24
- var t = i(r[e], n[e]);
25
- null == t ? (delete r[e], u && g(r)) : r[e] = t;
23
+ var l, t = p(r);
24
+ for (l in n) {
25
+ var u = f(r[l], n[l]);
26
+ null == u ? (delete r[l], t && g(r)) : r[l] = u;
26
27
  }
27
28
  }
28
29
  return r;
29
30
  }
30
31
  }
31
32
 
32
- function f(r, n) {
33
- if (n == w) return w;
34
- if (null != n[m]) return n;
35
- var l = r[m];
36
- if (null != l) r[m] = i(l, n); else {
37
- if (r == w) return {
38
- [m]: S(n)
33
+ function o(r, n) {
34
+ if (n == m) return m;
35
+ if (null != n[w]) return n;
36
+ var e = r[w];
37
+ if (null != e) r[w] = f(e, n); else {
38
+ if (r == m) return {
39
+ [w]: O(n)
39
40
  };
40
41
  if (h(r) || h(n)) return n;
41
- for (var e in n) {
42
- var u = n[e], t = r[e];
43
- r[e] = null == t ? u : f(t, u);
42
+ for (var l in n) {
43
+ var t = n[l], u = r[l];
44
+ r[l] = null == u ? t : o(u, t);
44
45
  }
45
46
  }
46
47
  return r;
47
48
  }
48
49
 
49
50
  function n(r, n) {
50
- let l = {
51
+ let e = {
51
52
  oldValue: {},
52
53
  newValue: {}
53
54
  };
54
- r = A(r, n, [], 0, l);
55
- return l.oldValue = S(l.oldValue, !0, !0), l.newValue = S(l.newValue, !1, !1),
55
+ r = S(r, n, [], 0, e);
56
+ return e.oldValue = O(e.oldValue, !0, !0), e.newValue = O(e.newValue, !1, !1),
56
57
  {
57
58
  merged: r,
58
- delta: l = l.oldValue || l.newValue ? l : void 0
59
+ delta: e = e.oldValue || e.newValue ? e : void 0
59
60
  };
60
61
  }
61
62
 
62
- function u(r, n, l) {
63
- if (!n || 0 == n.length) return l;
64
- let e = r;
63
+ function t(r, n, e) {
64
+ if (!n || 0 == n.length) return e;
65
+ let l = r;
65
66
  for (let r = 0; r < n.length - 1; ++r) {
66
- var u = n[r];
67
- a(e[u]) || (e[u] = {}), e = e[u];
67
+ var t = n[r];
68
+ a(l[t]) || (l[t] = {}), l = l[t];
68
69
  }
69
- var t = n.at(-1);
70
- return void 0 === l ? delete e[t] : e[t] = l, r;
70
+ var u = n.at(-1);
71
+ return void 0 === e ? delete l[u] : l[u] = e, r;
71
72
  }
72
73
 
73
- function l(r, n) {
74
- if (null != n && null != (r = t(r))) {
75
- if (!p(n)) return "" == n ? r : t(r[n]);
76
- if (0 != n.length && (1 != n.length || "" != n[0])) for (var l of n) if (null == (r = t(r[l]))) return;
74
+ function e(r, n) {
75
+ if (null != n && null != (r = u(r))) {
76
+ if (!p(n)) return "" == n ? r : u(r[n]);
77
+ if (0 != n.length && (1 != n.length || "" != n[0])) for (var e of n) if (null == (r = u(r[e]))) return;
77
78
  return r;
78
79
  }
79
80
  }
80
81
 
81
- function S(r, n = !0, l = !1) {
82
- return function l(e, u, t) {
83
- if (e instanceof Date) return e.toISOString();
84
- if (!a(e)) return (t ? void 0 === e : null == e) || u && e === w ? void 0 : e;
85
- if (u) {
86
- let r = e[m];
87
- if (null != r) return l(r, u, t);
88
- let n = e[y];
89
- if (null != n) return l(p(n) ? n : [ n ], u, t);
82
+ function v(r, n, e = !1, l = 0) {
83
+ var t = n[l];
84
+ if (l == n.length - 1) return delete r[t], !e && i(r) ? void 0 : r;
85
+ var u = r[t];
86
+ if (a(u)) {
87
+ u = v(u, n, e, l + 1);
88
+ if (null == u && !e) return delete r[t], i(r) ? void 0 : r;
89
+ r[t] = u;
90
+ }
91
+ return r;
92
+ }
93
+
94
+ function O(r, n = !0, e = !1) {
95
+ return function e(l, t, u) {
96
+ if (l instanceof Date) return l.toISOString();
97
+ if (!a(l)) return (u ? void 0 === l : null == l) || t && l === m ? void 0 : l;
98
+ if (t) {
99
+ let r = l[w];
100
+ if (null != r) return e(r, t, u);
101
+ let n = l[y];
102
+ if (null != n) return e(p(n) ? n : [ n ], t, u);
90
103
  }
91
- let n = p(e);
104
+ let n = p(l);
92
105
  let i = !0;
93
- for (var f in e) {
94
- let r = l(e[f], u, t);
95
- (t ? void 0 === r : null == r) ? (delete e[f], n && g(e)) : (e[f] = r,
106
+ for (var f in l) {
107
+ let r = e(l[f], t, u);
108
+ (u ? void 0 === r : null == r) ? (delete l[f], n && g(l)) : (l[f] = r,
96
109
  i = !1);
97
110
  }
98
- return i ? void 0 : e;
99
- }(r, n, l);
111
+ return i ? void 0 : l;
112
+ }(r, n, e);
100
113
  }
101
114
 
102
- function e(r) {
103
- if (h(r)) return r ? w : void 0;
115
+ function l(r) {
116
+ if (h(r)) return r ? m : void 0;
104
117
  for (var n in r) {
105
- var l = e(r[n]);
106
- l ? r[n] = l : delete r[n];
118
+ var e = l(r[n]);
119
+ e ? r[n] = e : delete r[n];
107
120
  }
108
121
  return p(r) && g(r), r;
109
122
  }
110
123
 
111
- function A(n, l, e, u, t) {
112
- if (null == l) return n;
113
- if (l !== w) {
114
- if (null == n || h(n) || h(l)) return O(n, l, e, t);
115
- var i = l[m];
116
- if (null != i) return O(n, i, e, t);
117
- let r = l[y];
118
- if (null != r) return p(r) || (r = [ r ]), (p(n) ? (n, l, r, e) => {
119
- l = S(l);
120
- var u = {};
121
- for (let r = 0; r < l.length; ++r) {
122
- var t = l[r];
123
- null != t && (u[r + n.length] = h(t) ? t : {
124
- [m]: t
124
+ function S(n, e, l, t, u) {
125
+ if (null == e) return n;
126
+ if (e !== m) {
127
+ if (null == n || h(n) || h(e)) return j(n, e, l, u);
128
+ var i = e[w];
129
+ if (null != i) return j(n, i, l, u);
130
+ let r = e[y];
131
+ if (null != r) return p(r) || (r = [ r ]), (p(n) ? (n, e, r, l) => {
132
+ e = O(e);
133
+ var t = {};
134
+ for (let r = 0; r < e.length; ++r) {
135
+ var u = e[r];
136
+ null != u && (t[r + n.length] = h(u) ? u : {
137
+ [w]: u
125
138
  });
126
139
  }
127
- return $(e, r, n, u), n.concat(l);
128
- } : O)(n, r, e, t);
129
- if (p(n) && !p(l) || !p(n) && p(l)) return O(n, l, e, t);
130
- var f = n, a = l, o = e, v = u, d = t;
140
+ return A(l, r, n, t), n.concat(e);
141
+ } : j)(n, r, l, u);
142
+ if (p(n) && !p(e) || !p(n) && p(e)) return j(n, e, l, u);
143
+ var f = n, a = e, o = l, v = t, d = u;
131
144
  if (f != a) {
132
145
  var c, s = p(f);
133
146
  for (c in a) {
134
147
  o[v] = c, o.length = v + 1;
135
- var V = A(f[c], a[c], o, v + 1, d);
148
+ var V = S(f[c], a[c], o, v + 1, d);
136
149
  null == V ? (delete f[c], s && g(f)) : f[c] = V;
137
150
  }
138
151
  }
139
152
  return f;
140
153
  }
141
- null != n && $(t, e, n, w);
154
+ null != n && A(u, l, n, m);
142
155
  }
143
156
 
144
- function O(r, n, l, e) {
145
- n = S(n);
146
- return r === n ? r : null != n ? (null == r ? $(e, l, 0 == l.length ? void 0 : null, h(n) ? n : {
147
- [m]: n
148
- }) : $(e, l, r, h(r) ? n : {
149
- [m]: n
150
- }), n) : void $(e, l, r, w);
157
+ function j(r, n, e, l) {
158
+ n = O(n);
159
+ return r === n ? r : null != n ? (null == r ? A(l, e, 0 == e.length ? void 0 : null, h(n) ? n : {
160
+ [w]: n
161
+ }) : A(l, e, r, h(r) ? n : {
162
+ [w]: n
163
+ }), n) : void A(l, e, r, m);
151
164
  }
152
165
 
153
- function $(r, n, l, e) {
154
- r.oldValue = u(r.oldValue, n, l), r.newValue = u(r.newValue, n, e);
166
+ function A(r, n, e, l) {
167
+ r.oldValue = t(r.oldValue, n, e), r.newValue = t(r.newValue, n, l);
155
168
  }
156
169
 
157
- function t(r) {
158
- if (null != r && r != w) {
159
- for (;null != r[m]; ) if ((r = r[m]) == w) return;
170
+ function u(r) {
171
+ if (null != r && r != m) {
172
+ for (;null != r[w]; ) if ((r = r[w]) == m) return;
160
173
  return r;
161
174
  }
162
175
  }
163
176
 
164
177
  export {
165
- i as mergeContent,
166
- f as mergeContentChanges,
178
+ f as mergeContent,
179
+ o as mergeContentChanges,
167
180
  n as mergeContentAndGenDelta,
168
- u as setValByNamePath,
169
- l as getValByNamePath,
170
- S as cleanContent,
171
- e as objToDelMarks
181
+ t as setValByNamePath,
182
+ e as getValByNamePath,
183
+ v as delValByNamePath,
184
+ O as cleanContent,
185
+ l as objToDelMarks
172
186
  };
package/src/QyItem.d.ts CHANGED
@@ -14,6 +14,12 @@ export declare class QyItem {
14
14
  set fileMapLoaded(val: boolean);
15
15
  get fileContentLoaded(): boolean;
16
16
  set fileContentLoaded(val: boolean);
17
+ get dExpireChecked(): boolean;
18
+ set dExpireChecked(val: boolean);
19
+ get fExpireChecked(): boolean;
20
+ set fExpireChecked(val: boolean);
21
+ get cExpireChecked(): boolean;
22
+ set cExpireChecked(val: boolean);
17
23
  get visited(): boolean;
18
24
  set visited(val: boolean);
19
25
  get nameNum(): number | string;
package/src/QyItem.js CHANGED
@@ -11,7 +11,7 @@ class e {
11
11
  flagInt;
12
12
  constructor(t, e = !1, a) {
13
13
  this.name = t.toString(), this.parentDir = a, this.flagInt = 0, this._created = e,
14
- a && (a.name == r || a.underHiddenFolder) && (this.flagInt |= 2);
14
+ (t == r || a && (a.name == r || a.underHiddenFolder)) && (this.flagInt |= 2);
15
15
  }
16
16
  get qyCache() {
17
17
  var t = this.parentDir;
@@ -21,31 +21,49 @@ class e {
21
21
  return i(this, 1);
22
22
  }
23
23
  set _created(t) {
24
- n(this, 1, t);
24
+ s(this, 1, t);
25
25
  }
26
26
  get subdirMapLoaded() {
27
27
  return i(this, 4);
28
28
  }
29
29
  set subdirMapLoaded(t) {
30
- n(this, 4, t);
30
+ s(this, 4, t);
31
31
  }
32
32
  get fileMapLoaded() {
33
33
  return i(this, 8);
34
34
  }
35
35
  set fileMapLoaded(t) {
36
- n(this, 8, t);
36
+ s(this, 8, t);
37
37
  }
38
38
  get fileContentLoaded() {
39
39
  return i(this, 16);
40
40
  }
41
41
  set fileContentLoaded(t) {
42
- n(this, 16, t);
42
+ s(this, 16, t);
43
+ }
44
+ get dExpireChecked() {
45
+ return i(this, 64);
46
+ }
47
+ set dExpireChecked(t) {
48
+ s(this, 64, t);
49
+ }
50
+ get fExpireChecked() {
51
+ return i(this, 128);
52
+ }
53
+ set fExpireChecked(t) {
54
+ s(this, 128, t);
55
+ }
56
+ get cExpireChecked() {
57
+ return i(this, 256);
58
+ }
59
+ set cExpireChecked(t) {
60
+ s(this, 256, t);
43
61
  }
44
62
  get visited() {
45
63
  return i(this, 32);
46
64
  }
47
65
  set visited(t) {
48
- n(this, 32, t);
66
+ s(this, 32, t);
49
67
  }
50
68
  get nameNum() {
51
69
  var t = this._nameNum;
@@ -108,7 +126,7 @@ function i(t, e) {
108
126
  return 0 != (t.flagInt & e);
109
127
  }
110
128
 
111
- function n(t, e, a) {
129
+ function s(t, e, a) {
112
130
  a ? t.flagInt |= e : t.flagInt &= ~e;
113
131
  }
114
132
 
package/src/QyKVData.d.ts CHANGED
@@ -27,6 +27,8 @@ export declare class QyKVData {
27
27
  removeKey(key: any): any;
28
28
  onSnapshotSavedChangeId(snapshotSavedChangeId: any, pMOnlySnapshot?: any): void;
29
29
  onCompactUpdates(compactUpdates: any): void;
30
- monitorContentExpire(file: any, flattedAbsSecondObj: any): void;
30
+ monitorContentExpire(file: any, flattedAbsTimeObj: any): void;
31
31
  unmonitorContentExpire(file: any, flattedDelObj: any): void;
32
+ monitorItemExpire(item: any, expireTime: any): void;
33
+ unmonitorItemExpire(item: any): void;
32
34
  }