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.
Files changed (159) hide show
  1. package/README.md +7 -2
  2. package/index.js +1 -1
  3. package/internal.md +121 -0
  4. package/package.json +8 -6
  5. package/scripts/airbnb.js +77 -72
  6. package/scripts/airbnb2.js +78 -73
  7. package/scripts/airbnb2_queries.js +181 -229
  8. package/scripts/airbnb_queries.js +214 -265
  9. package/scripts/convertBinFiles.js +47 -0
  10. package/scripts/downloadFile.js +41 -40
  11. package/scripts/express.js +44 -48
  12. package/scripts/fastify.js +71 -80
  13. package/scripts/flights.js +71 -75
  14. package/scripts/flights2.js +78 -81
  15. package/scripts/flights2_queries.js +417 -455
  16. package/scripts/flights_queries.js +381 -407
  17. package/src/QyAcl.d.ts +17 -0
  18. package/src/QyAcl.js +113 -116
  19. package/src/QyAclSaver.d.ts +4 -0
  20. package/src/QyAclSaver.js +3 -3
  21. package/src/QyAclSaver_Worker.d.ts +9 -0
  22. package/src/QyAclSaver_Worker.js +2 -4
  23. package/src/QyAclWriter.d.ts +5 -0
  24. package/src/QyBatch.d.ts +42 -0
  25. package/src/QyBatch.js +8 -8
  26. package/src/QyBinWriter.d.ts +15 -0
  27. package/src/QyCD.d.ts +37 -0
  28. package/src/QyCD.js +27 -16
  29. package/src/QyCache.d.ts +44 -0
  30. package/src/QyCache.js +71 -59
  31. package/src/QyCompressor.d.ts +9 -0
  32. package/src/QyCompressor.js +29 -29
  33. package/src/QyCompressor_Worker.d.ts +1 -0
  34. package/src/QyDB.d.ts +42 -0
  35. package/src/QyDB.js +13 -11
  36. package/src/QyDefaultOptions.d.ts +1 -0
  37. package/src/QyDefaultOptions.js +3 -0
  38. package/src/QyDir.d.ts +48 -0
  39. package/src/QyDir.js +41 -41
  40. package/src/QyFetch.d.ts +7 -0
  41. package/src/QyFetch.js +3 -4
  42. package/src/QyFile.d.ts +19 -0
  43. package/src/QyFile.js +35 -34
  44. package/src/QyFileContentUtils.d.ts +13 -0
  45. package/src/QyFileContentUtils.js +126 -126
  46. package/src/QyFileLogger.d.ts +11 -0
  47. package/src/QyIndex.d.ts +6 -0
  48. package/src/QyIndex.js +73 -75
  49. package/src/QyIndexPropTree.d.ts +7 -0
  50. package/src/QyIndexPropTree.js +24 -24
  51. package/src/QyIntersectNode.d.ts +7 -0
  52. package/src/QyIntersectNode.js +15 -15
  53. package/src/QyItem.d.ts +30 -0
  54. package/src/QyItem.js +32 -28
  55. package/src/QyJsonSaver.d.ts +6 -0
  56. package/src/QyKVData.d.ts +12 -0
  57. package/src/QyKVData.js +30 -20
  58. package/src/QyKVDataCleaner.d.ts +4 -0
  59. package/src/QyKVDataCleaner.js +1 -1
  60. package/src/QyKVDataCleaner_Worker.d.ts +13 -0
  61. package/src/QyKVDataCleaner_Worker.js +2 -4
  62. package/src/QyKVDataLoader.d.ts +9 -0
  63. package/src/QyKVDataLoader.js +11 -11
  64. package/src/QyKVDataSaver.d.ts +4 -0
  65. package/src/QyKVDataSaver.js +6 -6
  66. package/src/QyKVDataSaver_Worker.d.ts +13 -0
  67. package/src/QyKVDataSaver_Worker.js +11 -13
  68. package/src/QyLogFileSaver.d.ts +4 -0
  69. package/src/QyLogFileSaver.js +1 -1
  70. package/src/QyLogFileSaver_Worker.d.ts +8 -0
  71. package/src/QyLogFileSaver_Worker.js +2 -4
  72. package/src/QyLogger.d.ts +10 -0
  73. package/src/QyLogger.js +40 -40
  74. package/src/QyMessageWorker.d.ts +5 -0
  75. package/src/QyMessageWorker.js +7 -7
  76. package/src/QyMessager.d.ts +7 -0
  77. package/src/QyMessager.js +30 -27
  78. package/src/QyMessager_Run.d.ts +1 -0
  79. package/src/QyMessager_Run.js +11 -6
  80. package/src/QyMod.d.ts +1 -0
  81. package/src/QyMod.js +6 -6
  82. package/src/QyOpRunner.d.ts +10 -0
  83. package/src/QyOpRunner.js +39 -39
  84. package/src/QyQueue.d.ts +11 -0
  85. package/src/QySaver.d.ts +10 -0
  86. package/src/QySnapshotCompactor.d.ts +4 -0
  87. package/src/QySnapshotCompactor.js +1 -1
  88. package/src/QySnapshotCompactor_Worker.d.ts +11 -0
  89. package/src/QySnapshotCompactor_Worker.js +21 -22
  90. package/src/QySnapshotSaver.d.ts +4 -0
  91. package/src/QySnapshotSaver.js +1 -1
  92. package/src/QySnapshotSaver_Worker.d.ts +16 -0
  93. package/src/QySnapshotSaver_Worker.js +56 -53
  94. package/src/QySnapshots.d.ts +27 -0
  95. package/src/QySnapshots.js +74 -66
  96. package/src/QyStructure.d.ts +1 -0
  97. package/src/QyStructure.js +18 -18
  98. package/src/QyTrigger.d.ts +9 -0
  99. package/src/QyTrigger.js +30 -30
  100. package/src/QyUnionNode.d.ts +17 -0
  101. package/src/QyUnionNode.js +2 -2
  102. package/src/QyUtils.d.ts +53 -0
  103. package/src/QyUtils.js +140 -117
  104. package/src/QyWorker.d.ts +5 -0
  105. package/src/QyWorker.js +18 -18
  106. package/src/hackernews.d.ts +1 -0
  107. package/src/hackernews.js +59 -47
  108. package/src/rpc/getRpcFiles.js +1 -0
  109. package/src/rpc/getTriggerFiles.js +1 -0
  110. package/src/simulate.d.ts +1 -0
  111. package/src/simulate2.d.ts +1 -0
  112. package/src/soc_pokec.d.ts +1 -0
  113. package/src/soc_pokec.js +7 -7
  114. package/static/codemirror.bundle/editor.bundle.js +370 -166
  115. package/static/datafolderui/QyStyledElement.js +8 -17
  116. package/static/datafolderui/QyUIFolderViewer.js +230 -0
  117. package/static/datafolderui/QyUIUtils.js +5 -5
  118. package/static/datafolderui/code-mirror.js +7 -7
  119. package/static/datafolderui/display-tree.js +22 -58
  120. package/static/datafolderui/explore-tree.js +10 -10
  121. package/static/datafolderui/folder-tree.js +71 -2
  122. package/static/datafolderui/hscrpt.js +26 -7
  123. package/static/datafolderui/json-view.js +34 -3
  124. package/static/datafolderui/main-page.js +67 -36
  125. package/static/datafolderui/query-editor.js +9 -9
  126. package/static/datafolderui/rpc-editor.js +31 -0
  127. package/static/datafolderui/trigger-editor.js +33 -0
  128. package/data/sampleDataFolder/qykv/history/acl/1_acl.txt +0 -1
  129. package/data/sampleDataFolder/qykv/history/acl/2_acl.txt +0 -1
  130. package/data/sampleDataFolder/qykv/history/acl/3_acl.txt +0 -1
  131. package/data/sampleDataFolder/qykv/history/acl/4_acl.txt +0 -1
  132. package/data/sampleDataFolder/qykv/history/acl/5_acl.txt +0 -1
  133. package/data/sampleDataFolder/qykv/snapshot/1/1_pM.txt +0 -0
  134. package/data/sampleDataFolder/qykv/snapshot/1/1_prefixPM.txt +0 -0
  135. package/data/sampleDataFolder/qykv/snapshot/1/1_vL.txt +0 -10
  136. package/data/sampleDataFolder/qykv/snapshot/2/1_pM.txt +0 -0
  137. package/data/sampleDataFolder/qykv/snapshot/2/1_prefixPM.txt +0 -0
  138. package/data/sampleDataFolder/qykv/snapshot/2/1_vL.txt +0 -1
  139. package/data/sampleDataFolder/qykv/snapshot/3/1_pM.txt +0 -0
  140. package/data/sampleDataFolder/qykv/snapshot/3/1_prefixPM.txt +0 -0
  141. package/data/sampleDataFolder/qykv/snapshot/3/1_vL.txt +0 -1
  142. package/data/sampleDataFolder/qykv/snapshot/4/1_pM.txt +0 -0
  143. package/data/sampleDataFolder/qykv/snapshot/4/1_prefixPM.txt +0 -0
  144. package/data/sampleDataFolder/qykv/snapshot/4/1_vL.txt +0 -1
  145. package/data/sampleDataFolder/qykv/snapshot/4/2_pM.txt +0 -0
  146. package/data/sampleDataFolder/qykv/snapshot/4/2_prefixPM.txt +0 -0
  147. package/data/sampleDataFolder/qykv/snapshot/4/2_vL.txt +0 -9
  148. package/data/sampleDataFolder/qykv/snapshot/5/1_pM.txt +0 -0
  149. package/data/sampleDataFolder/qykv/snapshot/5/1_prefixPM.txt +0 -0
  150. package/data/sampleDataFolder/qykv/snapshot/5/1_vL.txt +0 -55
  151. package/data/sampleDataFolder/qykv/snapshot/info/1.json +0 -1
  152. package/data/sampleDataFolder/qykv/snapshot/info/2.json +0 -1
  153. package/data/sampleDataFolder/qykv/snapshot/info/3.json +0 -1
  154. package/data/sampleDataFolder/qykv/snapshot/info/4.json +0 -1
  155. package/data/sampleDataFolder/qykv/snapshot/info/5.json +0 -1
  156. package/data/sampleDataFolder/qylog/2026/02/15/08/change.txt +0 -58
  157. package/data/sampleDataFolder/qylog/2026/02/15/08/stderr.txt +0 -11
  158. package/data/sampleDataFolder/qylog/2026/02/15/08/stdout.txt +0 -36
  159. package/static/datafolderui/QyUIFolderTree.js +0 -179
package/src/QyDir.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import { QyItem } from "./QyItem.ts";
2
+ import { QyFile } from "./QyFile.ts";
3
+ import type { QyCache } from "./QyCache.ts";
4
+ export declare class QyDir extends QyItem {
5
+ _subdirCount: number;
6
+ _fileCount: number;
7
+ subdirMapChangeCount: number;
8
+ fileMapChangeCount: number;
9
+ dChangeId: number;
10
+ fChangeId: number;
11
+ cache: {};
12
+ constructor(name: string | number, created?: boolean, parentDir?: QyDir | undefined, qyCache?: QyCache | undefined);
13
+ get created(): boolean;
14
+ set created(val: boolean);
15
+ get fileCount(): number;
16
+ get subdirCount(): number;
17
+ get isDir(): boolean;
18
+ get isEmpty(): boolean;
19
+ get isHiddenFolder(): boolean;
20
+ get subdirMapKey(): string;
21
+ get fileMapKey(): string;
22
+ get subdirMap(): {};
23
+ get fileMap(): {};
24
+ getSubdir(name: string): QyDir | undefined;
25
+ getFile(fileName: string): QyFile | undefined;
26
+ getOrCreateSubdir(name: string, created?: boolean): QyDir;
27
+ getOrCreateFile(fileName: string, created?: boolean): QyFile;
28
+ searchSubdir(namePath: string[], endIdx?: number): QyDir | undefined;
29
+ searchOrCreateSubdir(namePath: string[], created?: boolean, endIdx?: number): QyDir;
30
+ searchFile(namePath: string[]): QyFile | undefined;
31
+ searchOrCreateFile(namePath: string[], created?: boolean): QyFile;
32
+ get subdirList(): QyDir[];
33
+ get subdirNameList(): string[];
34
+ get sortedSubdirList(): QyDir[];
35
+ get sortedSubdirNameList(): string[];
36
+ get fileList(): QyFile[];
37
+ get fileNameList(): string[];
38
+ get sortedFileList(): QyFile[];
39
+ get sortedFileNameList(): string[];
40
+ allSubdirs(): any;
41
+ allLeafSubdirs(): Generator<any, void, unknown>;
42
+ allFiles(): Generator<any, void, unknown>;
43
+ allLoadedSubdirs(): any;
44
+ setChildTriggerNodes(child: QyDir): void;
45
+ filterSubdirNames(filterFun: any): Generator<QyDir, void, unknown>;
46
+ compareSubdirRangeL2H(cmpFun: any): Generator<QyDir, void, unknown>;
47
+ compareSubdirRangeH2L(cmpFun: any): Generator<QyDir | undefined, void, unknown>;
48
+ }
package/src/QyDir.js CHANGED
@@ -6,26 +6,26 @@ import {
6
6
  getSubdirMapKey as i,
7
7
  getFileMapKey as t,
8
8
  SpecialFilePaths as r,
9
- arrayLast as s
9
+ arrayLast as s,
10
+ isString as d
10
11
  } from "./QyUtils.js";
11
12
 
12
13
  import {
13
14
  QyFile as a
14
15
  } from "./QyFile.js";
15
16
 
16
- let d = r.HiddenFolderName;
17
+ let u = r.HiddenFolderName;
17
18
 
18
- class u extends e {
19
- constructor(e, i, t, r) {
20
- super(e, i, t), r && (this._qyCache = r), Object.assign(this, {
21
- _subdirCount: 0,
22
- _fileCount: 0,
23
- subdirMapChangeCount: 0,
24
- fileMapChangeCount: 0,
25
- dChangeId: 0,
26
- fChangeId: 0,
27
- cache: {}
28
- }), t && i && (++t._subdirCount, ++t.subdirMapChangeCount);
19
+ class h extends e {
20
+ _subdirCount = 0;
21
+ _fileCount = 0;
22
+ subdirMapChangeCount = 0;
23
+ fileMapChangeCount = 0;
24
+ dChangeId = 0;
25
+ fChangeId = 0;
26
+ cache = {};
27
+ constructor(e, i = !1, t = void 0, r = void 0) {
28
+ super(e, i, t), r && (this._qyCache = r), t && i && (++t._subdirCount, ++t.subdirMapChangeCount);
29
29
  }
30
30
  get created() {
31
31
  return this._created;
@@ -36,10 +36,10 @@ class u extends e {
36
36
  ++i.subdirMapChangeCount);
37
37
  }
38
38
  get fileCount() {
39
- return n(this), this._fileCount;
39
+ return o(this), this._fileCount;
40
40
  }
41
41
  get subdirCount() {
42
- return l(this), this._subdirCount;
42
+ return n(this), this._subdirCount;
43
43
  }
44
44
  get isDir() {
45
45
  return !0;
@@ -48,7 +48,7 @@ class u extends e {
48
48
  return 0 == this.fileCount && 0 == this.subdirCount;
49
49
  }
50
50
  get isHiddenFolder() {
51
- return this.name == d;
51
+ return this.name == u;
52
52
  }
53
53
  get subdirMapKey() {
54
54
  return this._subdirMapKey || (this._subdirMapKey = i(this.fullPathHash));
@@ -57,14 +57,14 @@ class u extends e {
57
57
  return this._fileMapKey || (this._fileMapKey = t(this.fullPathHash));
58
58
  }
59
59
  get subdirMap() {
60
- return l(this), this._subdirMap;
60
+ return n(this), this._subdirMap;
61
61
  }
62
62
  get fileMap() {
63
- return n(this), this._fileMap;
63
+ return o(this), this._fileMap;
64
64
  }
65
65
  getSubdir(e) {
66
66
  var i;
67
- if (this.created) return "." === e ? this : ".." === e ? this.parentDir || this : "/" === e ? this.qyCache.rootDir : (i = this.subdirMap,
67
+ if (this.created) return "." === e ? this : ".." === e ? this.parentDir || this : "/" === e ? this.qyCache?.rootDir : (i = this.subdirMap,
68
68
  (i = i && i[e])?.created ? i : void 0);
69
69
  }
70
70
  getFile(e) {
@@ -74,16 +74,16 @@ class u extends e {
74
74
  } = this, i = i && t && t[e];
75
75
  return i?.created ? i : void 0;
76
76
  }
77
- getOrCreateSubdir(e, i) {
77
+ getOrCreateSubdir(e, i = !1) {
78
78
  if ("." === e) return this;
79
79
  if (".." === e) return this.parentDir || this;
80
- if ("/" === e) return this.qyCache.rootDir;
80
+ if ("/" === e) return this.qyCache?.rootDir || this;
81
81
  let t = this.subdirMap;
82
82
  var r = (t = t || (this._subdirMap = {}))[e];
83
- return r || (r = t[e] = new u(e, i, this), this.setChildTriggerNodes(r)),
83
+ return r || (r = t[e] = new h(e, i, this), this.setChildTriggerNodes(r)),
84
84
  r;
85
85
  }
86
- getOrCreateFile(e, i) {
86
+ getOrCreateFile(e, i = !1) {
87
87
  let t = this.fileMap;
88
88
  var r = (t = t || (this._fileMap = {}))[e];
89
89
  return r || (r = t[e] = new a(e, i, this), this.setChildTriggerNodes(r)),
@@ -97,7 +97,7 @@ class u extends e {
97
97
  }
98
98
  return r;
99
99
  }
100
- searchOrCreateSubdir(i, t, r = i.length) {
100
+ searchOrCreateSubdir(i, t = !1, r = i.length) {
101
101
  let s = this;
102
102
  for (let e = 0; e < r; ++e) {
103
103
  var a = i[e];
@@ -109,32 +109,32 @@ class u extends e {
109
109
  var i = this.searchSubdir(e, e.length - 1);
110
110
  if (i) return i.getFile(s(e));
111
111
  }
112
- searchOrCreateFile(e, i) {
113
- return this.searchOrCreateSubdir(e, i, e.length - 1).getOrCreateFile(s(e));
112
+ searchOrCreateFile(e, i = !1) {
113
+ return this.searchOrCreateSubdir(e, i, e.length - 1).getOrCreateFile(s(e), i);
114
114
  }
115
115
  get subdirList() {
116
- return h(this, "_subdirList", this.subdirMapChangeCount, () => this.created && this.subdirMap ? Object.values(this.subdirMap).filter(e => e.created) : []);
116
+ return l(this, "_subdirList", this.subdirMapChangeCount, () => this.created && this.subdirMap ? Object.values(this.subdirMap).filter(e => e.created) : []);
117
117
  }
118
118
  get subdirNameList() {
119
- return h(this, "_subdirNameList", this.subdirMapChangeCount, () => this.subdirList.map(e => e.name));
119
+ return l(this, "_subdirNameList", this.subdirMapChangeCount, () => this.subdirList.map(e => e.name));
120
120
  }
121
121
  get sortedSubdirList() {
122
- return h(this, "_sortedSubdirList", this.subdirMapChangeCount, () => this.subdirList.sort((e, i) => e.cmp(i)));
122
+ return l(this, "_sortedSubdirList", this.subdirMapChangeCount, () => this.subdirList.sort((e, i) => e.cmp(i)));
123
123
  }
124
124
  get sortedSubdirNameList() {
125
- return h(this, "_sortedSubdirNameList", this.subdirMapChangeCount, () => this.sortedSubdirList.map(e => e.nameNum));
125
+ return l(this, "_sortedSubdirNameList", this.subdirMapChangeCount, () => this.sortedSubdirList.map(e => e.nameNum));
126
126
  }
127
127
  get fileList() {
128
- return h(this, "_fileList", this.fileMapChangeCount, () => this.created && this.fileMap ? Object.values(this.fileMap).filter(e => e.created) : []);
128
+ return l(this, "_fileList", this.fileMapChangeCount, () => this.created && this.fileMap ? Object.values(this.fileMap).filter(e => e.created) : []);
129
129
  }
130
130
  get fileNameList() {
131
- return h(this, "_fileNameList", this.fileMapChangeCount, () => this.fileList.map(e => e.name));
131
+ return l(this, "_fileNameList", this.fileMapChangeCount, () => this.fileList.map(e => e.name));
132
132
  }
133
133
  get sortedFileList() {
134
- return h(this, "_sortedFileList", this.fileMapChangeCount, () => this.fileList.sort((e, i) => e.cmp(i)));
134
+ return l(this, "_sortedFileList", this.fileMapChangeCount, () => this.fileList.sort((e, i) => e.cmp(i)));
135
135
  }
136
136
  get sortedFileNameList() {
137
- return h(this, "_sortedFileNameList", this.fileMapChangeCount, () => this.sortedFileList.map(e => e.nameNum));
137
+ return l(this, "_sortedFileNameList", this.fileMapChangeCount, () => this.sortedFileList.map(e => e.nameNum));
138
138
  }
139
139
  *allSubdirs() {
140
140
  var e, i, t = this.subdirList;
@@ -173,7 +173,7 @@ class u extends e {
173
173
  let r = !1;
174
174
  for (i of t) {
175
175
  var s = i.nameNum;
176
- if (isNaN(s)) {
176
+ if (d(s)) {
177
177
  if (r) return;
178
178
  } else if (e(s)) yield i, r = !0; else if (r) return;
179
179
  }
@@ -183,19 +183,19 @@ class u extends e {
183
183
  let r = !1;
184
184
  for (let e = t.length - 1; 0 <= e; --e) {
185
185
  var s = t[e], a = s.nameNum;
186
- if (isNaN(a)) {
186
+ if (d(a)) {
187
187
  if (r) return;
188
188
  } else if (i(a)) yield s, r = !0; else if (r) return;
189
189
  }
190
190
  }
191
191
  }
192
192
 
193
- function h(e, i, t, r) {
193
+ function l(e, i, t, r) {
194
194
  var e = e.cache, s = i + "ChangeCount";
195
195
  return e[i] && e[s] == t || (e[i] = r(), e[s] = t), e[i];
196
196
  }
197
197
 
198
- function l(e) {
198
+ function n(e) {
199
199
  if (e.created && !e._subdirMap && !e.subdirMapLoaded) {
200
200
  e.subdirMapLoaded = !0;
201
201
  var i = e.qyCache;
@@ -203,13 +203,13 @@ function l(e) {
203
203
  i = i.qyKVData.getValueSync(e.subdirMapKey);
204
204
  if (i) {
205
205
  var t, r = e._subdirMap = {};
206
- for (t in i) r[t] = new u(t, !0, e);
206
+ for (t in i) r[t] = new h(t, !0, e);
207
207
  }
208
208
  }
209
209
  }
210
210
  }
211
211
 
212
- function n(e) {
212
+ function o(e) {
213
213
  if (e.created && !e._fileMap && !e.fileMapLoaded) {
214
214
  e.fileMapLoaded = !0;
215
215
  var i = e.qyCache;
@@ -224,5 +224,5 @@ function n(e) {
224
224
  }
225
225
 
226
226
  export {
227
- u as QyDir
227
+ h as QyDir
228
228
  };
@@ -0,0 +1,7 @@
1
+ import type { QyCache } from "./QyCache.ts";
2
+ import { QyCD } from "./QyCD.ts";
3
+ export declare class QyFetch extends QyCD {
4
+ stack: never[];
5
+ constructor(qyCache?: QyCache);
6
+ run(): never[];
7
+ }
package/src/QyFetch.js CHANGED
@@ -3,11 +3,10 @@ import {
3
3
  } from "./QyCD.js";
4
4
 
5
5
  class e extends r {
6
+ stack = [];
6
7
  constructor(r) {
7
- super(r), Object.assign(this, {
8
- stack: []
9
- });
10
- for (let s of [ "dir", "indexDir", "file", "view", "queryFiles", "queryFilesMulti", "queryTree", "queryTreeMulti" ]) this[s] = (...r) => {
8
+ super(r);
9
+ for (let s of [ "dir", "indexDir", "file", "view", "triggerFile", "triggerFiles", "rpcFile", "rpcFiles", "queryFiles", "queryFilesMulti", "queryTree", "queryTreeMulti" ]) this[s] = (...r) => {
11
10
  return e = this, r = super[s].apply(this, r), e.stack.push(r), e;
12
11
  var e;
13
12
  };
@@ -0,0 +1,19 @@
1
+ import { QyItem } from "./QyItem.ts";
2
+ import type { QyDir } from "./QyDir.ts";
3
+ export declare class QyFile extends QyItem {
4
+ cChangeId: number;
5
+ constructor(name: string | number, created?: boolean, parentDir?: QyDir);
6
+ get created(): boolean;
7
+ set created(val: boolean);
8
+ get fileContentKey(): any;
9
+ get fileContent(): any;
10
+ set fileContent(x: any);
11
+ get qyIndexPropTree(): any;
12
+ get isFile(): boolean;
13
+ get contentAsText(): any;
14
+ get clonedContent(): any;
15
+ setContent(content: any): void;
16
+ view(spec: string | undefined, noClone: any): any;
17
+ prop(namePath: any, spec: string | undefined, noClone: any): any;
18
+ unloadFileContent(): void;
19
+ }
package/src/QyFile.js CHANGED
@@ -5,14 +5,14 @@ import {
5
5
  import {
6
6
  SpecialOperators as t,
7
7
  SpecialFilePaths as n,
8
- getContentKey as i,
8
+ getContentKey as r,
9
9
  isNotNullObj as a,
10
10
  isSimpleType as C,
11
11
  fromSingleName as s
12
12
  } from "./QyUtils.js";
13
13
 
14
14
  import {
15
- getValByNamePath as r
15
+ getValByNamePath as i
16
16
  } from "./QyFileContentUtils.js";
17
17
 
18
18
  import {
@@ -26,19 +26,20 @@ let d = Array.isArray, u = n.IndexPropPathsFileName, {
26
26
  } = t;
27
27
 
28
28
  class o extends e {
29
- constructor(e, t, n) {
30
- super(e, t, n), t && (++n._fileCount, ++n.fileMapChangeCount), this.cChangeId = 0;
29
+ cChangeId = 0;
30
+ constructor(e, t = !1, n) {
31
+ super(e, t, n), t && n && (++n._fileCount, ++n.fileMapChangeCount);
31
32
  }
32
33
  get created() {
33
34
  return this._created;
34
35
  }
35
36
  set created(e) {
36
37
  var t;
37
- this._created != (e = !!e) && (this._created = e, t = this.parentDir, t._fileCount += e ? 1 : -1,
38
+ this._created != (e = !!e) && (this._created = e, t = this.parentDir, t) && (t._fileCount += e ? 1 : -1,
38
39
  ++t.fileMapChangeCount);
39
40
  }
40
41
  get fileContentKey() {
41
- return this._fileContentKey || (this._fileContentKey = i(this.fullPathHash));
42
+ return this._fileContentKey || (this._fileContentKey = r(this.fullPathHash));
42
43
  }
43
44
  get fileContent() {
44
45
  var e, t = this;
@@ -54,13 +55,13 @@ class o extends e {
54
55
  created: e,
55
56
  _qyIndexPropTree: t,
56
57
  name: n,
57
- fileContent: i,
58
- underHiddenFolder: r
58
+ fileContent: r,
59
+ underHiddenFolder: i
59
60
  } = this;
60
- if (e && r && n == u) {
61
+ if (e && i && n == u) {
61
62
  if (t) return t;
62
63
  var l, o = this._qyIndexPropTree = new f();
63
- for (l in i) o.insert(s(l));
64
+ for (l in r) o.insert(s(l));
64
65
  return o;
65
66
  }
66
67
  }
@@ -79,32 +80,32 @@ class o extends e {
79
80
  }
80
81
  view(e = l, t) {
81
82
  var n = this.fileContent;
82
- return null == n || C(n) ? n : function t(n, i, r, l) {
83
- if (r === c) return i;
84
- if (null == r) return;
85
- if (C(r)) return r ? l ? i : structuredClone(i) : void 0;
86
- let e = r.$link;
87
- if (null != e) return y(n, i, e, r[h]);
88
- if (C(i)) return i;
89
- d(r) && (r = Object.fromEntries(r.filter(e => e).map(e => [ e, 1 ])));
90
- let o = d(i) ? [] : {};
83
+ return null == n || C(n) ? n : function t(n, r, i, l) {
84
+ if (i === c) return r;
85
+ if (null == i) return;
86
+ if (C(i)) return i ? l ? r : structuredClone(r) : void 0;
87
+ let e = i.$link;
88
+ if (null != e) return y(n, r, e, i[h]);
89
+ if (C(r)) return r;
90
+ d(i) && (i = Object.fromEntries(i.filter(e => e).map(e => [ e, 1 ])));
91
+ let o = d(r) ? [] : {};
91
92
  let {
92
93
  $all: s,
93
94
  "**": a
94
- } = r;
95
- if (s || a) for (var f in i) {
96
- let e = r[f] ?? s ?? a;
97
- e && (o[f] = t(n, i[f], e, l));
98
- } else for (var u in r) {
99
- let e = r[u];
100
- e && (o[u] = t(n, i[u], e, l));
95
+ } = i;
96
+ if (s || a) for (var f in r) {
97
+ let e = i[f] ?? s ?? a;
98
+ e && (o[f] = t(n, r[f], e, l));
99
+ } else for (var u in i) {
100
+ let e = i[u];
101
+ e && (o[u] = t(n, r[u], e, l));
101
102
  }
102
103
  return o;
103
104
  }(this, n, e, t);
104
105
  }
105
106
  prop(e, t = l, n) {
106
- var i;
107
- if (t) return e = r(this.fileContent, d(e) ? e : [ e ]), i = t.$link, null != i ? y(this, e, i, t[h], n) : n || t === c ? e : structuredClone(e);
107
+ var r;
108
+ if (t) return e = i(this.fileContent, d(e) ? e : [ e ]), r = t.$link, null != r ? y(this, e, r, t[h], n) : n || t === c ? e : structuredClone(e);
108
109
  }
109
110
  unloadFileContent() {
110
111
  this.created && this.fileContentLoaded && null != this._fileContent && (this._fileContent = void 0,
@@ -112,23 +113,23 @@ class o extends e {
112
113
  }
113
114
  }
114
115
 
115
- function p(e, t, n, i) {
116
+ function p(e, t, n, r) {
116
117
  if (e) {
117
118
  e = e.getFile(t);
118
- if (e) return e.view(n, i);
119
+ if (e) return e.view(n, r);
119
120
  }
120
121
  return t;
121
122
  }
122
123
 
123
- function y(e, t, n, i, r) {
124
+ function y(e, t, n, r, i) {
124
125
  let l = e.qyCache.getDir(n);
125
- if (d(t)) return t.map(e => p(l, e, i, r));
126
+ if (d(t)) return t.map(e => p(l, e, r, i));
126
127
  if (a(t)) {
127
128
  var o, s = {};
128
- for (o in t) s[o] = p(l, o, i, r);
129
+ for (o in t) s[o] = p(l, o, r, i);
129
130
  return s;
130
131
  }
131
- return p(l, t, i, r);
132
+ return p(l, t, r, i);
132
133
  }
133
134
 
134
135
  export {
@@ -0,0 +1,13 @@
1
+ export declare function mergeContent(oldContent: any, newContent: any): any;
2
+ export declare function mergeContentChanges(oldChanges: any, newChanges: any): any;
3
+ export declare function mergeContentAndGenDelta(oldContent: any, newContent: any): {
4
+ merged: any;
5
+ delta: {
6
+ oldValue: {};
7
+ newValue: {};
8
+ };
9
+ };
10
+ export declare function setValByNamePath(rootObj: any, namePath: any, value: any): any;
11
+ export declare function getValByNamePath(obj: any, namePath: any): any;
12
+ export declare function cleanContent(obj: any, shouldCleanMark?: boolean, strict?: boolean): any;
13
+ export declare function objToDelMarks(obj: any): any;