datafolder 1.0.11 → 1.0.12

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 (62) hide show
  1. package/README.md +12 -0
  2. package/package.json +1 -1
  3. package/scripts/flights2.js +2 -0
  4. package/src/QyAcl.d.ts +13 -7
  5. package/src/QyAcl.js +122 -138
  6. package/src/QyAclSaver.js +2 -2
  7. package/src/QyAclSaver_Worker.d.ts +2 -2
  8. package/src/QyBatch.d.ts +8 -11
  9. package/src/QyBatch.js +239 -211
  10. package/src/QyBinWriter.d.ts +1 -1
  11. package/src/QyBinWriter.js +15 -15
  12. package/src/QyCD.d.ts +2 -2
  13. package/src/QyCD.js +29 -29
  14. package/src/QyCache.d.ts +6 -1
  15. package/src/QyCache.js +72 -53
  16. package/src/QyCompressor.d.ts +2 -2
  17. package/src/QyCompressor.js +13 -13
  18. package/src/QyDB.d.ts +1 -22
  19. package/src/QyDB.js +23 -78
  20. package/src/QyDefaultOptions.js +5 -0
  21. package/src/QyDir.js +26 -27
  22. package/src/QyExpire.d.ts +21 -0
  23. package/src/QyExpire.js +113 -0
  24. package/src/QyExpireClock.d.ts +15 -0
  25. package/src/QyExpireClock.js +53 -0
  26. package/src/QyExpire_Worker.d.ts +20 -0
  27. package/src/QyExpire_Worker.js +127 -0
  28. package/src/QyFile.js +36 -25
  29. package/src/QyFileContentUtils.js +21 -21
  30. package/src/QyItem.d.ts +1 -0
  31. package/src/QyItem.js +15 -9
  32. package/src/QyJsonSaver.d.ts +1 -1
  33. package/src/QyJsonSaver.js +1 -1
  34. package/src/QyKVData.d.ts +4 -1
  35. package/src/QyKVData.js +148 -136
  36. package/src/QyKVDataCleaner.js +2 -2
  37. package/src/QyKVDataSaver.js +2 -2
  38. package/src/QyKVDataSaver_Worker.d.ts +2 -2
  39. package/src/QyKVDataSaver_Worker.js +5 -5
  40. package/src/QyLogFileSaver.js +2 -2
  41. package/src/QyMessageWorker.d.ts +1 -1
  42. package/src/QyMessageWorker.js +10 -10
  43. package/src/QyMessager.d.ts +1 -1
  44. package/src/QyMessager.js +37 -36
  45. package/src/QyMessager_Run.js +9 -6
  46. package/src/QyQueue.js +8 -12
  47. package/src/QySaver.d.ts +1 -1
  48. package/src/QySaver.js +1 -1
  49. package/src/QySnapshotCompactor.js +2 -2
  50. package/src/QySnapshotCompactor_Worker.js +1 -1
  51. package/src/QySnapshotSaver.js +2 -2
  52. package/src/QySnapshotSaver_Worker.js +1 -1
  53. package/src/QyTrigger.d.ts +1 -1
  54. package/src/QyTrigger.js +20 -21
  55. package/src/QyUtils.d.ts +3 -2
  56. package/src/QyUtils.js +93 -86
  57. package/src/hackernews.js +1 -1
  58. package/src/simulate.js +6 -6
  59. package/src/simulate2.js +4 -4
  60. package/src/soc_pokec.js +1 -1
  61. package/static/codemirror.bundle/editor.bundle.js +43 -9
  62. package/static/datafolderui/QyUIFolderViewer.js +1 -5
package/README.md CHANGED
@@ -4,6 +4,8 @@ datafolder is a lightning fluid JSON database for high speed SSDs, featuring an
4
4
 
5
5
  ### Changelog
6
6
 
7
+ 1.0.12 Added expire support to expire a file or some properties of the JSON data in future.
8
+
7
9
  1.0.11 Added [SKILL.md](https://github.com/datafolderdev/datafolder/blob/main/SKILL.md) for feeding to AI
8
10
 
9
11
  1.0.10 Added document [datafolder for high speed SSDs](https://github.com/datafolderdev/datafolder/wiki/datafolder-for-high-speed-SSDs)
@@ -162,6 +164,16 @@ onPromptScoreChanged({ promptId: "student2", feedbackScore: { oldValue: undefine
162
164
  onPromptScoreChanged({ promptId: "student1", feedbackScore: { oldValue: 80, newValue: 32 } });
163
165
  ```
164
166
 
167
+ ### 5. Expire Support
168
+
169
+ ```javascript
170
+ dataFolder.expireFile("aitrainingdata/tmp/prompt", 3600); // the file will be deleted after 1 hour
171
+ dataFolder.expireContent("users/login", { sessionId: 300, token: 3600 });
172
+
173
+ dataFolder.removeFileExpire("aitrainingdata/tmp/prompt", 3600);
174
+ dataFolder.removeContentExpire("users/login", { sessionId: 1, token: 1 });
175
+ ```
176
+
165
177
  ## Example
166
178
 
167
179
  Once you install datafolder via
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datafolder",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "author": {
5
5
  "name": "lysh",
6
6
  "email": "datafolderdev@outlook.com"
@@ -14,6 +14,7 @@ const qyDB = new QyDB(dataFolder, { preloadFoldersAtStart: false });
14
14
  run();
15
15
  function insertAirports() {
16
16
  const data = JSON.parse(readFileSync(join(arangoJsonFolderPath, "airports.json")));
17
+ console.log(`airports:${data.length}`);
17
18
  console.time("insertAirports");
18
19
  const { batch } = qyDB;
19
20
  for (const record of data) {
@@ -25,6 +26,7 @@ function insertAirports() {
25
26
  }
26
27
  function insertFlights() {
27
28
  const data = JSON.parse(readFileSync(join(arangoJsonFolderPath, "flights.json")));
29
+ console.log(`flights:${data.length}`);
28
30
  console.time("insertFlights");
29
31
  const { batch } = qyDB;
30
32
  for (let i = 0; i < data.length; ++i) {
package/src/QyAcl.d.ts CHANGED
@@ -1,14 +1,20 @@
1
- export declare function delCmdKey(cmdArgAsListObj: any, key: string): void;
2
- export declare function applyAclChange(aclKeyValueMap: any, cmdArgAsListObj: any): void;
3
- export declare function iterCmdKeys(cmdArgAsListObj: any, fun: any): void;
1
+ export declare const CmdNames: {
2
+ M: number;
3
+ A: number;
4
+ R: number;
5
+ D: number;
6
+ };
7
+ export declare function delCmdKey(cmdArgAsListChanges: any, key: string): void;
8
+ export declare function applyAclChange(aclKeyValueMap: any, cmdArgAsListChanges: any): void;
9
+ export declare function iterCmdKeys(cmdArgAsListChanges: any, fun: any): void;
4
10
  export declare class QyAclCmdGenerator {
5
- cmdArgAsMapObj: {};
11
+ cmdArgAsMapChanges: any[];
6
12
  cmdCount: number;
7
13
  batchSize: number;
8
14
  constructor();
9
- pushCmd(cmdName: string, cmdHashKey: string, cmdArg?: any): void;
10
- pushCmdArgAsListObj(cmdArgAsListObj: any): this;
11
- takeCmdArgAsListObj(): {};
15
+ pushCmd(cmdName: number, cmdHashKey: string, cmdArg?: any): void;
16
+ pushCmdArgAsListObj(cmdArgAsListChanges: any): this;
17
+ takeCmdArgAsListObj(): any[];
12
18
  toAclBuffer(changeId: any): Buffer<ArrayBuffer> | undefined;
13
19
  }
14
20
  export declare function readAclFile(aclFilePath: any, autoRepairAclFile?: boolean, currentChangeId?: number): Promise<any[]>;
package/src/QyAcl.js CHANGED
@@ -1,250 +1,234 @@
1
- import u from "node:fs/promises";
1
+ import l from "node:fs/promises";
2
2
 
3
3
  import {
4
4
  mergeContent as g,
5
- mergeContentChanges as i,
5
+ mergeContentChanges as s,
6
6
  setValByNamePath as a
7
7
  } from "./QyFileContentUtils.js";
8
8
 
9
9
  import {
10
- isEmptyObj as m,
11
- arrayLast as n
10
+ isEmptyObj as m
12
11
  } from "./QyUtils.js";
13
12
 
14
13
  import {
15
- logger as d
14
+ logger as u
16
15
  } from "./QyLogger.js";
17
16
 
18
- function r(r, t) {
19
- var {
20
- A: r,
21
- R: e,
22
- M: a,
23
- D: n
24
- } = r;
25
- n && delete n[t], t.startsWith("c") ? a && delete a[t] : (r && delete r[t],
26
- e && delete e[t]);
17
+ let f = {
18
+ M: 0,
19
+ A: 1,
20
+ R: 2,
21
+ D: 3
22
+ };
23
+
24
+ function r(r, e) {
25
+ var [ r, t, a, n ] = r;
26
+ n && delete n[e], e.startsWith("c") ? r && delete r[e] : (t && delete t[e],
27
+ a && delete a[e]);
27
28
  }
28
29
 
29
- function t(r, t) {
30
- var e, a, n, i, {
31
- D: t,
32
- A: s,
33
- R: o,
34
- M: f
35
- } = t;
36
- for (e in t) null != r[e] && (r[e] = void 0);
37
- for (a in s) {
38
- var c, l = r[a] || (r[a] = {});
39
- for (c of s[a]) l[c] = 1;
30
+ function e(r, e) {
31
+ var t, a, n, s, [ i, o, f, e ] = e;
32
+ for (t in e) null != r[t] && (r[t] = void 0);
33
+ for (a in o) {
34
+ var c, h = r[a] || (r[a] = {});
35
+ for (c of o[a]) h[c] = 1;
40
36
  }
41
- for (n in o) {
42
- var u = r[n];
43
- if (u) {
44
- var d = o[n];
45
- if (d) {
46
- for (var h of d) delete u[h];
47
- m(u) && (r[n] = void 0);
37
+ for (n in f) {
38
+ var l = r[n];
39
+ if (l) {
40
+ var u = f[n];
41
+ if (u) {
42
+ for (var d of u) delete l[d];
43
+ m(l) && (r[n] = void 0);
48
44
  }
49
45
  }
50
46
  }
51
- for (i in f) r[i] = g(r[i], f[i]);
47
+ for (s in i) r[s] = g(r[s], i[s]);
52
48
  }
53
49
 
54
- function e(r, t) {
55
- var e, {
56
- D: r,
57
- A: a,
58
- R: n,
59
- M: i
60
- } = r;
61
- for (e of [ r, a, n, i ]) for (var s in e) t(s);
50
+ function t(r, e) {
51
+ for (var t of r) for (var a in t) e(a);
62
52
  }
63
53
 
64
- class s {
65
- cmdArgAsMapObj = {};
54
+ class n {
55
+ cmdArgAsMapChanges = [];
66
56
  cmdCount = 0;
67
57
  batchSize = 0;
68
58
  constructor() {}
69
- pushCmd(r, t, e = void 0) {
59
+ pushCmd(r, e, t = void 0) {
70
60
  switch (++this.cmdCount, r) {
71
- case "A":
72
- o(this, [ "A", t, e ]), f(this, [ "R", t, e ]);
61
+ case f.A:
62
+ i(this, [ f.A, e, t ]), o(this, [ f.R, e, t ]);
73
63
  break;
74
64
 
75
- case "R":
76
- o(this, [ "R", t, e ]), f(this, [ "A", t, e ]);
65
+ case f.R:
66
+ i(this, [ f.R, e, t ]), o(this, [ f.A, e, t ]);
77
67
  break;
78
68
 
79
- case "D":
80
- if (o(this, [ "D", t ]), t.startsWith("c")) f(this, [ "M", t ]); else for (var a of [ "A", "R" ]) f(this, [ a, t ]);
69
+ case f.D:
70
+ if (i(this, [ f.D, e ]), e.startsWith("c")) o(this, [ f.M, e ]); else for (var a of [ f.A, f.R ]) o(this, [ a, e ]);
81
71
  break;
82
72
 
83
- case "M":
73
+ case f.M:
84
74
  {
85
- var n = this.cmdArgAsMapObj;
86
- let r = n.M;
87
- n = (r = null == r ? n.M = {} : r)[t];
88
- r[t] = null != n ? i(n, e) : e;
75
+ var n = this.cmdArgAsMapChanges;
76
+ let [ r ] = n;
77
+ n = (r = null == r ? n[f.M] = {} : r)[e];
78
+ r[e] = null != n ? s(n, t) : t;
89
79
  break;
90
80
  }
91
81
 
92
82
  default:
93
- d.error(`unsupported cmdName:${r}, called with ${t} ` + e), --this.cmdCount;
83
+ u.error(`unsupported cmdName:${r}, called with ${e} ` + t), --this.cmdCount;
94
84
  }
95
85
  }
96
86
  pushCmdArgAsListObj(r) {
97
87
  if (r) {
98
- ++this.batchSize;
99
- var t, e, a, {
100
- D: n,
101
- M: i
102
- } = r;
103
- for (t in n) this.pushCmd("D", t);
104
- for (e of [ "A", "R" ]) {
105
- var s, o = r[e];
106
- for (s in o) for (var f of o[s]) this.pushCmd(e, s, f);
88
+ for (var e in ++this.batchSize, r[f.D]) this.pushCmd(f.D, e);
89
+ for (var t of [ f.A, f.R ]) {
90
+ var a, n = r[t];
91
+ for (a in n) for (var s of n[a]) this.pushCmd(t, a, s);
107
92
  }
108
- for (a in i) this.pushCmd("M", a, i[a]);
93
+ var i, [ o ] = r;
94
+ for (i in o) this.pushCmd(f.M, i, o[i]);
109
95
  }
110
96
  return this;
111
97
  }
112
98
  takeCmdArgAsListObj() {
113
- var r, t = this.cmdArgAsMapObj;
99
+ var r, e = this.cmdArgAsMapChanges;
114
100
  Object.assign(this, {
115
- cmdArgAsMapObj: {},
101
+ cmdArgAsMapChanges: [],
116
102
  cmdCount: 0,
117
103
  batchSize: 0
118
104
  });
119
- for (r of [ "A", "R" ]) {
120
- var e, a = t[r];
121
- for (e in a) {
122
- var n = Object.keys(a[e]);
123
- 0 < n.length ? a[e] = n : delete a[e];
105
+ for (r of [ f.A, f.R ]) {
106
+ var t, a = e[r];
107
+ for (t in a) {
108
+ var n = Object.keys(a[t]);
109
+ 0 < n.length ? a[t] = n : delete a[t];
124
110
  }
125
- m(a) && delete t[r];
111
+ m(a) && delete e[r];
126
112
  }
127
- var {
128
- D: i,
129
- M: s
130
- } = t;
131
- return i && m(i) && delete t.D, s && m(s) && delete t.M, t;
113
+ var s = e[f.D], s = (s && m(s) && delete e[f.D], e[f.M]);
114
+ return s && m(s) && delete e[f.M], e;
132
115
  }
133
116
  toAclBuffer(r) {
134
- var t, e = this.batchSize;
135
- if (0 < e) return r = r, e = e, t = this.takeCmdArgAsListObj(), t = Buffer.from(JSON.stringify(t)),
136
- Buffer.concat([ l([ r, e, t.length ]), t ]);
117
+ var e, t = this.batchSize;
118
+ if (0 < t) return r = r, t = t, e = this.takeCmdArgAsListObj(), e = Buffer.from(JSON.stringify(e)),
119
+ Buffer.concat([ h([ r, t, e.length ]), e ]);
137
120
  }
138
121
  }
139
122
 
140
- function o(r, t, e = 1) {
141
- a(r.cmdArgAsMapObj, t, e);
123
+ function i(r, e, t = 1) {
124
+ a(r.cmdArgAsMapChanges, e, t);
142
125
  }
143
126
 
144
- function f(r, t) {
145
- let e = r.cmdArgAsMapObj;
146
- if (e && t && !(t.length <= 1)) {
147
- for (let r = 0; r < t.length - 1; ++r) if (null == (e = e[t[r]])) return;
148
- delete e[n(t)];
127
+ function o(r, e) {
128
+ let t = r.cmdArgAsMapChanges;
129
+ if (t && e && !(e.length <= 1)) {
130
+ for (let r = 0; r < e.length - 1; ++r) if (null == (t = t[e[r]])) return;
131
+ delete t[e.at(-1)];
149
132
  }
150
133
  }
151
134
 
152
- async function c(t, r = !1, e = 0) {
135
+ async function c(e, r = !1, t = 0) {
153
136
  try {
154
- return await A(t, await u.readFile(t), r, e);
137
+ return await A(e, await l.readFile(e), r, t);
155
138
  } catch (r) {
156
- throw d.error(`Reading ${t} failed:`, r), r;
139
+ throw u.error(`Reading ${e} failed:`, r), r;
157
140
  }
158
141
  }
159
142
 
160
143
  let v = [ 1, 2, 4, 8 ];
161
144
 
162
- function l(t) {
163
- var e = t.length, a = new Array(e), n = new Array(e);
164
- let i = e << 6, s = 1;
165
- for (let r = 0; r < e; ++r) {
166
- var o = a[r] = (o = t[r]) <= 255 ? 0 : o <= 65535 ? 1 : o <= 4294967295 ? 2 : 3, o = (i |= o << (r << 1),
145
+ function h(e) {
146
+ var t = e.length, a = new Array(t), n = new Array(t);
147
+ let s = t << 6, i = 1;
148
+ for (let r = 0; r < t; ++r) {
149
+ var o = a[r] = (o = e[r]) <= 255 ? 0 : o <= 65535 ? 1 : o <= 4294967295 ? 2 : 3, o = (s |= o << (r << 1),
167
150
  n[r] = v[o]);
168
- s += o;
151
+ i += o;
169
152
  }
170
- var f = Buffer.allocUnsafe(s);
171
- f.writeUInt8(i);
153
+ var f = Buffer.allocUnsafe(i);
154
+ f.writeUInt8(s);
172
155
  let c = 1;
173
- for (let r = 0; r < e; ++r) {
174
- h = d = u = l = void 0;
175
- var [ l, u, d, h = 0 ] = [ f, t[r], n[r], c ];
176
- switch (d) {
156
+ for (let r = 0; r < t; ++r) {
157
+ d = u = l = h = void 0;
158
+ var [ h, l, u, d = 0 ] = [ f, e[r], n[r], c ];
159
+ switch (u) {
177
160
  case 1:
178
- l.writeUInt8(u, h);
161
+ h.writeUInt8(l, d);
179
162
  break;
180
163
 
181
164
  case 2:
182
- l.writeUInt16BE(u, h);
165
+ h.writeUInt16BE(l, d);
183
166
  break;
184
167
 
185
168
  case 4:
186
- l.writeUInt32BE(u, h);
169
+ h.writeUInt32BE(l, d);
187
170
  break;
188
171
 
189
172
  default:
190
- l.writeBigUInt64BE(BigInt(u), h);
173
+ h.writeBigUInt64BE(BigInt(l), d);
191
174
  }
192
175
  c += n[r];
193
176
  }
194
177
  return f;
195
178
  }
196
179
 
197
- function h(t, e, a) {
198
- var n = t.readUInt8(e), i = (++e, n >> 6 & 3);
199
- for (let r = 0; r < i; ++r) {
200
- var s = v[n >> (r << 1) & 3];
201
- a[r] = ((r, t, e = 0) => {
202
- switch (t) {
180
+ function d(e, t, a) {
181
+ var n = e.readUInt8(t), s = (++t, n >> 6 & 3);
182
+ for (let r = 0; r < s; ++r) {
183
+ var i = v[n >> (r << 1) & 3];
184
+ a[r] = ((r, e, t = 0) => {
185
+ switch (e) {
203
186
  case 1:
204
- return r.readUInt8(e);
187
+ return r.readUInt8(t);
205
188
 
206
189
  case 2:
207
- return r.readUInt16BE(e);
190
+ return r.readUInt16BE(t);
208
191
 
209
192
  case 4:
210
- return r.readUInt32BE(e);
193
+ return r.readUInt32BE(t);
211
194
 
212
195
  default:
213
- return Number(r.readBigUInt64BE(e));
196
+ return Number(r.readBigUInt64BE(t));
214
197
  }
215
- })(t, s, e), e += s;
198
+ })(e, i, t), t += i;
216
199
  }
217
- return e;
200
+ return t;
218
201
  }
219
202
 
220
- async function A(e, r, a, n) {
221
- var i = [];
222
- for (let t = 0; t < r.length; ) {
223
- var s = [], o = h(r, t, s), [ s, f, c ] = s;
224
- if (s <= n) d.warn(`changeId ${s} <= currentChangeId ${n} at ${e}:${t}. Ignored.`),
225
- t = o + c; else {
226
- n + f != s && d.warn(`currentChangeId ${n} + batchSize ${f} != changeId ` + s);
203
+ async function A(t, r, a, n) {
204
+ var s = [];
205
+ for (let e = 0; e < r.length; ) {
206
+ var i = [], o = d(r, e, i), [ i, f, c ] = i;
207
+ if (i <= n) u.warn(`changeId ${i} <= currentChangeId ${n} at ${t}:${e}. Ignored.`),
208
+ e = o + c; else {
209
+ n + f != i && u.warn(`currentChangeId ${n} + batchSize ${f} != changeId ` + i);
227
210
  try {
228
- var l = JSON.parse(r.subarray(o, o + c));
229
- i.push([ s, l ]), n = s, t = o + c;
211
+ var h = JSON.parse(r.subarray(o, o + c));
212
+ s.push([ i, h ]), n = i, e = o + c;
230
213
  } catch (r) {
231
- if (d.error(`Parse ${e} failed at ${t}:`, r), a) return d.warn(`Autorepair by truncating ${e} to ` + t),
232
- null == (f = await u.truncate(e, t)) ? d.log("truncate success") : d.error("truncate failed:", f),
233
- i;
214
+ if (u.error(`Parse ${t} failed at ${e}:`, r), a) return u.warn(`Autorepair by truncating ${t} to ` + e),
215
+ null == (f = await l.truncate(t, e)) ? u.log("truncate success") : u.error("truncate failed:", f),
216
+ s;
234
217
  throw r;
235
218
  }
236
219
  }
237
220
  }
238
- return i;
221
+ return s;
239
222
  }
240
223
 
241
224
  export {
225
+ f as CmdNames,
242
226
  r as delCmdKey,
243
- t as applyAclChange,
244
- e as iterCmdKeys,
245
- s as QyAclCmdGenerator,
227
+ e as applyAclChange,
228
+ t as iterCmdKeys,
229
+ n as QyAclCmdGenerator,
246
230
  c as readAclFile,
247
- l as numsToBuffer,
248
- h as bufferToNums,
231
+ h as numsToBuffer,
232
+ d as bufferToNums,
249
233
  A as readAclBuffer
250
234
  };
package/src/QyAclSaver.js CHANGED
@@ -8,10 +8,10 @@ import {
8
8
 
9
9
  class e extends s {
10
10
  constructor(s, e) {
11
- super(s, "QyAclSaver_Worker", e = {
11
+ super("QyAclSaver_Worker", e = {
12
12
  ...r("QyAclSaver"),
13
13
  ...e
14
- }, e, [ "callSave" ], [ "switch", "castSave" ]);
14
+ }, e, [ "callSave" ], [ "switch", "castSave" ], s);
15
15
  }
16
16
  }
17
17
 
@@ -5,6 +5,6 @@ export default class QyAclSaver_Worker extends QyMessageWorker {
5
5
  _op_start(aclFilePath: any): Promise<void>;
6
6
  _op_stop(): Promise<void>;
7
7
  switch(aclFilePath: any): void;
8
- callSave(changeId: any, cmdArgAsListObj: any): Promise<void>;
9
- castSave(changeId: any, cmdArgAsListObj: any): void;
8
+ callSave(changeId: any, cmdArgAsListChanges: any): Promise<void>;
9
+ castSave(changeId: any, cmdArgAsListChanges: any): void;
10
10
  }
package/src/QyBatch.d.ts CHANGED
@@ -7,27 +7,22 @@ export declare class QyBatch extends QyCD {
7
7
  syncList: any;
8
8
  qyAclCmdGenerator: any;
9
9
  qyCmdObjHistory: any;
10
+ running: any;
10
11
  constructor(qyCache?: any, options?: any);
11
12
  createDir(namePath: any, parentDir?: any): any;
12
- createDirP(namePath: any, parentDir?: any): any;
13
13
  delDir(namePath: any, parentDir?: any): any;
14
- delDirP(namePath: any, parentDir?: any): any;
15
14
  createFile(namePath: any, parentDir?: any): any;
16
- createFileP(namePath: any, parentDir?: any): any;
17
15
  delFile(namePath: any, parentDir?: any): any;
18
- delFileP(namePath: any, parentDir?: any): any;
16
+ expireFile(namePath: any, expireSeconds: number, parentDir?: any): any;
17
+ expireContent(namePath: any, expireInfoObj: any, parentDir?: any): any;
18
+ removeFileExpire(namePath: any, parentDir?: any): any;
19
+ removeContentExpire(namePath: any, expireInfoObj: any, infoFileOnly?: any, parentDir?: any): any;
19
20
  createIndex(indexHostDirNamePath: any, indexPropPathList: any, parentDir?: any): any;
20
- createIndexP(indexHostDirNamePath: any, indexPropPathList: any, parentDir?: any): any;
21
21
  delIndex(indexHostDirNamePath: any, indexPropPath: any, parentDir?: any): any;
22
- delIndexP(indexHostDirNamePath: any, indexPropPath: any, parentDir?: any): any;
23
- insert(namePath: any, content: any, parentDir?: any): any;
24
- insertP(namePath: any, content: any, parentDir?: any): any;
22
+ insert(namePath: any, content: any, noClone?: boolean, parentDir?: any): any;
25
23
  remove(namePath: any, content: any, parentDir?: any): any;
26
- removeP(namePath: any, content: any, parentDir?: any): any;
27
24
  replace(namePath: any, content: any, parentDir?: any): any;
28
- replaceP(namePath: any, content: any, parentDir?: any): any;
29
25
  delContent(namePath: any, parentDir?: any): any;
30
- delContentP(namePath: any, parentDir?: any): any;
31
26
  insertTrigger(triggerName: any, fileNamePath: any, propNamePathList: any, modCode: any): any;
32
27
  removeTrigger(triggerName: any): any;
33
28
  insertRpc(rpcFunName: any, modCode: any): any;
@@ -46,4 +41,6 @@ export declare class QyBatch extends QyCD {
46
41
  _action_insert(action: any): boolean;
47
42
  _action_createFile(action: any): boolean;
48
43
  _action_createDir(action: any): boolean;
44
+ _action_expireContent(action: any): boolean;
45
+ _action_removeContentExpire(action: any): boolean | undefined;
49
46
  }