datafolder 1.0.2 → 1.0.4
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 +34 -31
- package/index.js +1 -3
- package/package.json +5 -3
- package/sample.js +37 -37
- package/scripts/airbnb.js +10 -11
- package/scripts/airbnb2.js +10 -11
- package/scripts/airbnb2_queries.js +20 -22
- package/scripts/airbnb_queries.js +23 -22
- package/scripts/downloadFile.js +29 -31
- package/scripts/express.js +7 -5
- package/scripts/fastify.js +12 -11
- package/scripts/flights.js +9 -9
- package/scripts/flights2.js +9 -9
- package/scripts/flights2_queries.js +107 -105
- package/scripts/flights_queries.js +113 -109
- package/src/QyAcl.js +153 -152
- package/src/QyAclSaver.js +16 -10
- package/src/QyAclSaver_Worker.js +21 -15
- package/src/QyAclWriter.js +23 -13
- package/src/QyBatch.js +298 -263
- package/src/QyBinWriter.js +49 -37
- package/src/QyCD.js +13 -14
- package/src/QyCache.js +177 -140
- package/src/QyCompressor.js +71 -45
- package/src/QyCompressor_Worker.js +17 -9
- package/src/QyDB.js +67 -12
- package/src/QyDefaultOptions.js +13 -10
- package/src/QyDir.js +89 -53
- package/src/QyFetch.js +27 -24
- package/src/QyFile.js +89 -77
- package/src/QyFileContentUtils.js +129 -132
- package/src/QyFileLogger.js +63 -41
- package/src/QyIndex.js +175 -197
- package/src/QyIndexPropTree.js +25 -25
- package/src/QyIntersectNode.js +34 -31
- package/src/QyItem.js +54 -52
- package/src/QyJsonSaver.js +12 -6
- package/src/QyKVData.js +279 -245
- package/src/QyKVDataCleaner.js +12 -6
- package/src/QyKVDataCleaner_Worker.js +77 -59
- package/src/QyKVDataLoader.js +67 -46
- package/src/QyKVDataSaver.js +15 -9
- package/src/QyKVDataSaver_Worker.js +83 -60
- package/src/QyLogFileSaver.js +12 -6
- package/src/QyLogFileSaver_Worker.js +24 -14
- package/src/QyLogger.js +51 -40
- package/src/QyMessageWorker.js +43 -29
- package/src/QyMessager.js +74 -54
- package/src/QyMessager_Run.js +20 -7
- package/src/QyMod.js +15 -11
- package/src/QyOpRunner.js +58 -41
- package/src/QyQueue.js +35 -30
- package/src/QySaver.js +52 -29
- package/src/QySnapshotCompactor.js +15 -9
- package/src/QySnapshotCompactor_Worker.js +131 -110
- package/src/QySnapshotSaver.js +15 -9
- package/src/QySnapshotSaver_Worker.js +125 -110
- package/src/QySnapshots.js +264 -242
- package/src/QyStructure.js +35 -27
- package/src/QyTrigger.js +62 -55
- package/src/QyUnionNode.js +54 -56
- package/src/QyUtils.js +170 -158
- package/src/QyWorker.js +34 -20
- package/src/hackernews.js +63 -71
- package/src/rpc/getFileContent.js +7 -7
- package/src/rpc/getSubItems.js +12 -28
- package/src/rpc/queryFiles.js +2 -25
- package/src/simulate.js +85 -80
- package/src/simulate2.js +77 -78
- package/src/soc_pokec.js +44 -32
- package/static/datafolderui/QyStyledElement.js +12 -12
- package/static/datafolderui/QyUIFolderTree.js +20 -20
- package/static/datafolderui/QyUIUtils.js +8 -8
- package/static/datafolderui/explore-tree.js +31 -31
- package/static/datafolderui/folder-tree.js +2 -2
- package/static/datafolderui/hscrpt.js +9 -17
- package/static/datafolderui/json-view.js +3 -5
- package/static/datafolderui/kv-input.js +15 -15
- package/static/datafolderui/list-input.js +17 -17
- package/static/datafolderui/main-page.js +18 -18
- package/static/datafolderui/num-input.js +5 -5
- package/static/datafolderui/query-editor.js +6 -1
- package/static/datafolderui/querySelectorShadowRoot.js +15 -19
- package/static/datafolderui/resizable-input.js +18 -18
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { deepEqual } from "node:assert/strict";
|
|
2
2
|
|
|
3
3
|
// Return the names of all airports one can reach
|
|
4
4
|
// directly (1 step) from Los Angeles International
|
|
@@ -6,94 +6,93 @@ const assert = require("node:assert/strict");
|
|
|
6
6
|
|
|
7
7
|
function query1(qyDB) {
|
|
8
8
|
console.time("query1");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
]);
|
|
9
|
+
deepEqual(
|
|
10
|
+
[...new Set(qyDB.queryFiles("flights/**", { _from: "airports/LAX" }).map((x) => x.prop("_to"))).values()],
|
|
11
|
+
[
|
|
12
|
+
"airports/CVG",
|
|
13
|
+
"airports/SMF",
|
|
14
|
+
"airports/ATL",
|
|
15
|
+
"airports/MSP",
|
|
16
|
+
"airports/DFW",
|
|
17
|
+
"airports/PHL",
|
|
18
|
+
"airports/IAH",
|
|
19
|
+
"airports/TUS",
|
|
20
|
+
"airports/ORD",
|
|
21
|
+
"airports/PDX",
|
|
22
|
+
"airports/MIA",
|
|
23
|
+
"airports/SFO",
|
|
24
|
+
"airports/DEN",
|
|
25
|
+
"airports/IAD",
|
|
26
|
+
"airports/SJC",
|
|
27
|
+
"airports/PHX",
|
|
28
|
+
"airports/SEA",
|
|
29
|
+
"airports/SLC",
|
|
30
|
+
"airports/JFK",
|
|
31
|
+
"airports/SAN",
|
|
32
|
+
"airports/ONT",
|
|
33
|
+
"airports/LAS",
|
|
34
|
+
"airports/MCI",
|
|
35
|
+
"airports/MDW",
|
|
36
|
+
"airports/FLL",
|
|
37
|
+
"airports/AUS",
|
|
38
|
+
"airports/EWR",
|
|
39
|
+
"airports/CLE",
|
|
40
|
+
"airports/SBP",
|
|
41
|
+
"airports/MEM",
|
|
42
|
+
"airports/SBA",
|
|
43
|
+
"airports/CLT",
|
|
44
|
+
"airports/COS",
|
|
45
|
+
"airports/ASE",
|
|
46
|
+
"airports/ICT",
|
|
47
|
+
"airports/HOU",
|
|
48
|
+
"airports/YUM",
|
|
49
|
+
"airports/STL",
|
|
50
|
+
"airports/FAT",
|
|
51
|
+
"airports/ABQ",
|
|
52
|
+
"airports/BOI",
|
|
53
|
+
"airports/BOS",
|
|
54
|
+
"airports/LIH",
|
|
55
|
+
"airports/HNL",
|
|
56
|
+
"airports/SMX",
|
|
57
|
+
"airports/MRY",
|
|
58
|
+
"airports/DTW",
|
|
59
|
+
"airports/RNO",
|
|
60
|
+
"airports/MCO",
|
|
61
|
+
"airports/OXR",
|
|
62
|
+
"airports/OAK",
|
|
63
|
+
"airports/OGG",
|
|
64
|
+
"airports/KOA",
|
|
65
|
+
"airports/BWI",
|
|
66
|
+
"airports/CLD",
|
|
67
|
+
"airports/IND",
|
|
68
|
+
"airports/PSP",
|
|
69
|
+
"airports/ELP",
|
|
70
|
+
"airports/TPA",
|
|
71
|
+
"airports/OKC",
|
|
72
|
+
"airports/MSY",
|
|
73
|
+
"airports/SNA",
|
|
74
|
+
"airports/IYK",
|
|
75
|
+
"airports/IPL",
|
|
76
|
+
"airports/SAT",
|
|
77
|
+
"airports/MOD",
|
|
78
|
+
"airports/BNA",
|
|
79
|
+
"airports/DCA",
|
|
80
|
+
"airports/SGU",
|
|
81
|
+
"airports/BFL",
|
|
82
|
+
"airports/EUG",
|
|
83
|
+
"airports/EGE",
|
|
84
|
+
"airports/GEG",
|
|
85
|
+
"airports/BDL",
|
|
86
|
+
"airports/JAX",
|
|
87
|
+
"airports/CMH",
|
|
88
|
+
"airports/PIT",
|
|
89
|
+
"airports/RDU",
|
|
90
|
+
"airports/SJU",
|
|
91
|
+
"airports/XNA",
|
|
92
|
+
"airports/MTJ",
|
|
93
|
+
"airports/JAC",
|
|
94
|
+
],
|
|
95
|
+
);
|
|
97
96
|
console.timeEnd("query1");
|
|
98
97
|
}
|
|
99
98
|
|
|
@@ -111,7 +110,7 @@ function query1(qyDB) {
|
|
|
111
110
|
|
|
112
111
|
function query2(qyDB) {
|
|
113
112
|
console.time("query2");
|
|
114
|
-
|
|
113
|
+
deepEqual(
|
|
115
114
|
qyDB
|
|
116
115
|
.queryFiles("flights", {
|
|
117
116
|
$and: [
|
|
@@ -120,19 +119,20 @@ function query2(qyDB) {
|
|
|
120
119
|
{ Day: (x) => x >= 5 && x <= 7 },
|
|
121
120
|
],
|
|
122
121
|
})
|
|
123
|
-
.map((x) => x.
|
|
122
|
+
.map((x) => x.prop("FlightNum"))
|
|
123
|
+
.sort((x, y) => x - y),
|
|
124
124
|
[
|
|
125
125
|
6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
|
|
126
126
|
6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
|
|
127
127
|
5650, 6636, 6678, 1087,
|
|
128
|
-
],
|
|
128
|
+
].sort((x, y) => x - y),
|
|
129
129
|
);
|
|
130
130
|
console.timeEnd("query2");
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
function query3(qyDB) {
|
|
134
134
|
console.time("query3");
|
|
135
|
-
|
|
135
|
+
deepEqual(
|
|
136
136
|
qyDB
|
|
137
137
|
.queryFiles("flights", {
|
|
138
138
|
$or: [
|
|
@@ -142,7 +142,8 @@ function query3(qyDB) {
|
|
|
142
142
|
Month: 1,
|
|
143
143
|
Day: (x) => x >= 1 && x <= 7,
|
|
144
144
|
})
|
|
145
|
-
.map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
|
|
145
|
+
.map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
|
|
146
|
+
.sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
|
|
146
147
|
[
|
|
147
148
|
{
|
|
148
149
|
_from: "airports/BOI",
|
|
@@ -339,7 +340,7 @@ function query3(qyDB) {
|
|
|
339
340
|
_to: "airports/BOI",
|
|
340
341
|
ArrTimeUTC: "2008-01-08T06:29:00.000Z",
|
|
341
342
|
},
|
|
342
|
-
],
|
|
343
|
+
].sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
|
|
343
344
|
);
|
|
344
345
|
|
|
345
346
|
console.timeEnd("query3");
|
|
@@ -356,24 +357,27 @@ function query3(qyDB) {
|
|
|
356
357
|
|
|
357
358
|
function query4(qyDB) {
|
|
358
359
|
console.time("query4");
|
|
359
|
-
|
|
360
|
-
.queryFiles("flights", { Month: 1, Day: 5, FlightNum: 860 })
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
360
|
+
deepEqual(
|
|
361
|
+
qyDB.queryFiles("flights", { Month: 1, Day: 5, FlightNum: 860 }).map((x) => x.view(["_from", "_to"])),
|
|
362
|
+
[
|
|
363
|
+
{ _from: "airports/IAD", _to: "airports/BOS" },
|
|
364
|
+
{ _from: "airports/PBI", _to: "airports/JFK" },
|
|
365
|
+
{ _from: "airports/ORD", _to: "airports/DTW" },
|
|
366
|
+
{ _from: "airports/PHX", _to: "airports/DEN" },
|
|
367
|
+
{ _from: "airports/SEA", _to: "airports/ATL" },
|
|
368
|
+
],
|
|
369
|
+
);
|
|
369
370
|
console.timeEnd("query4");
|
|
370
371
|
}
|
|
371
372
|
|
|
372
373
|
function query5(qyDB) {
|
|
373
374
|
logger.info("Query begins");
|
|
374
375
|
console.time("query5");
|
|
375
|
-
|
|
376
|
-
qyDB
|
|
376
|
+
deepEqual(
|
|
377
|
+
qyDB
|
|
378
|
+
.queryFiles("airports", { vip: true })
|
|
379
|
+
.map((x) => x.prop("name"))
|
|
380
|
+
.sort(),
|
|
377
381
|
[
|
|
378
382
|
"Amarillo International",
|
|
379
383
|
"William B Hartsfield-Atlanta Intl",
|
|
@@ -382,7 +386,7 @@ function query5(qyDB) {
|
|
|
382
386
|
"Los Angeles International",
|
|
383
387
|
"Chicago O'Hare International",
|
|
384
388
|
"San Francisco International",
|
|
385
|
-
],
|
|
389
|
+
].sort(),
|
|
386
390
|
);
|
|
387
391
|
console.timeEnd("query5");
|
|
388
392
|
}
|
|
@@ -400,4 +404,4 @@ function runQueries(qyDB) {
|
|
|
400
404
|
query5(qyDB);
|
|
401
405
|
}
|
|
402
406
|
|
|
403
|
-
|
|
407
|
+
export { runQueries };
|