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
@@ -1,407 +1,381 @@
1
- import { deepEqual } from "node:assert/strict";
2
-
3
- // Return the names of all airports one can reach
4
- // directly (1 step) from Los Angeles International
5
- // (LAX) following the flights edges:
6
-
7
- function query1(qyDB) {
8
- console.time("query1");
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
- );
96
- console.timeEnd("query1");
97
- }
98
-
99
- // Find all connections which depart from or
100
- // land at BIS on January 5th and 7th and
101
- // return the destination city and the arrival
102
- // time in universal time (UTC):
103
- // FOR airport, flight IN ANY
104
- // 'airports/BIS' flights
105
- // FILTER flight.Month == 1
106
- // AND flight.Day >= 5
107
- // AND flight.Day <= 7
108
- // RETURN { city: airport.city,
109
- // time: flight.ArrTimeUTC }
110
-
111
- function query2(qyDB) {
112
- console.time("query2");
113
- deepEqual(
114
- qyDB
115
- .queryFiles("flights", {
116
- $and: [
117
- { $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }] },
118
- { Month: 1 },
119
- { Day: (x) => x >= 5 && x <= 7 },
120
- ],
121
- })
122
- .map((x) => x.prop("FlightNum"))
123
- .sort((x, y) => x - y),
124
- [
125
- 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
126
- 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
127
- 5650, 6636, 6678, 1087,
128
- ].sort((x, y) => x - y),
129
- );
130
- console.timeEnd("query2");
131
- }
132
-
133
- function query3(qyDB) {
134
- console.time("query3");
135
- deepEqual(
136
- qyDB
137
- .queryFiles("flights", {
138
- $or: [
139
- { _from: "airports/BOI", _to: "airports/MSP" },
140
- { _from: "airports/MSP", _to: "airports/BOI" },
141
- ],
142
- Month: 1,
143
- Day: (x) => x >= 1 && x <= 7,
144
- })
145
- .map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
146
- .sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
147
- [
148
- {
149
- _from: "airports/BOI",
150
- _to: "airports/MSP",
151
- ArrTimeUTC: "2008-01-01T15:46:00.000Z",
152
- },
153
- {
154
- _from: "airports/BOI",
155
- _to: "airports/MSP",
156
- ArrTimeUTC: "2008-01-01T17:28:00.000Z",
157
- },
158
- {
159
- _from: "airports/MSP",
160
- _to: "airports/BOI",
161
- ArrTimeUTC: "2008-01-01T19:59:00.000Z",
162
- },
163
- {
164
- _from: "airports/BOI",
165
- _to: "airports/MSP",
166
- ArrTimeUTC: "2008-01-01T23:34:00.000Z",
167
- },
168
- {
169
- _from: "airports/MSP",
170
- _to: "airports/BOI",
171
- ArrTimeUTC: "2008-01-02T02:37:00.000Z",
172
- },
173
- {
174
- _from: "airports/MSP",
175
- _to: "airports/BOI",
176
- ArrTimeUTC: "2008-01-02T06:55:00.000Z",
177
- },
178
- {
179
- _from: "airports/BOI",
180
- _to: "airports/MSP",
181
- ArrTimeUTC: "2008-01-02T15:25:00.000Z",
182
- },
183
- {
184
- _from: "airports/BOI",
185
- _to: "airports/MSP",
186
- ArrTimeUTC: "2008-01-02T18:31:00.000Z",
187
- },
188
- {
189
- _from: "airports/MSP",
190
- _to: "airports/BOI",
191
- ArrTimeUTC: "2008-01-02T18:25:00.000Z",
192
- },
193
- {
194
- _from: "airports/BOI",
195
- _to: "airports/MSP",
196
- ArrTimeUTC: "2008-01-02T23:28:00.000Z",
197
- },
198
- {
199
- _from: "airports/MSP",
200
- _to: "airports/BOI",
201
- ArrTimeUTC: "2008-01-03T02:42:00.000Z",
202
- },
203
- {
204
- _from: "airports/MSP",
205
- _to: "airports/BOI",
206
- ArrTimeUTC: "2008-01-03T06:58:00.000Z",
207
- },
208
- {
209
- _from: "airports/BOI",
210
- _to: "airports/MSP",
211
- ArrTimeUTC: "2008-01-03T15:36:00.000Z",
212
- },
213
- {
214
- _from: "airports/BOI",
215
- _to: "airports/MSP",
216
- ArrTimeUTC: "2008-01-03T17:54:00.000Z",
217
- },
218
- {
219
- _from: "airports/MSP",
220
- _to: "airports/BOI",
221
- ArrTimeUTC: "2008-01-03T19:46:00.000Z",
222
- },
223
- {
224
- _from: "airports/BOI",
225
- _to: "airports/MSP",
226
- ArrTimeUTC: "2008-01-03T23:22:00.000Z",
227
- },
228
- {
229
- _from: "airports/MSP",
230
- _to: "airports/BOI",
231
- ArrTimeUTC: "2008-01-04T02:26:00.000Z",
232
- },
233
- {
234
- _from: "airports/MSP",
235
- _to: "airports/BOI",
236
- ArrTimeUTC: "2008-01-04T07:20:00.000Z",
237
- },
238
- {
239
- _from: "airports/BOI",
240
- _to: "airports/MSP",
241
- ArrTimeUTC: "2008-01-04T15:23:00.000Z",
242
- },
243
- {
244
- _from: "airports/BOI",
245
- _to: "airports/MSP",
246
- ArrTimeUTC: "2008-01-04T17:26:00.000Z",
247
- },
248
- {
249
- _from: "airports/MSP",
250
- _to: "airports/BOI",
251
- ArrTimeUTC: "2008-01-04T18:37:00.000Z",
252
- },
253
- {
254
- _from: "airports/BOI",
255
- _to: "airports/MSP",
256
- ArrTimeUTC: "2008-01-04T23:29:00.000Z",
257
- },
258
- {
259
- _from: "airports/MSP",
260
- _to: "airports/BOI",
261
- ArrTimeUTC: "2008-01-05T03:52:00.000Z",
262
- },
263
- {
264
- _from: "airports/MSP",
265
- _to: "airports/BOI",
266
- ArrTimeUTC: "2008-01-05T07:01:00.000Z",
267
- },
268
- {
269
- _from: "airports/BOI",
270
- _to: "airports/MSP",
271
- ArrTimeUTC: "2008-01-05T15:31:00.000Z",
272
- },
273
- {
274
- _from: "airports/BOI",
275
- _to: "airports/MSP",
276
- ArrTimeUTC: "2008-01-05T17:15:00.000Z",
277
- },
278
- {
279
- _from: "airports/MSP",
280
- _to: "airports/BOI",
281
- ArrTimeUTC: "2008-01-05T18:36:00.000Z",
282
- },
283
- {
284
- _from: "airports/BOI",
285
- _to: "airports/MSP",
286
- ArrTimeUTC: "2008-01-05T23:17:00.000Z",
287
- },
288
- {
289
- _from: "airports/MSP",
290
- _to: "airports/BOI",
291
- ArrTimeUTC: "2008-01-06T02:38:00.000Z",
292
- },
293
- {
294
- _from: "airports/MSP",
295
- _to: "airports/BOI",
296
- ArrTimeUTC: "2008-01-06T06:56:00.000Z",
297
- },
298
- {
299
- _from: "airports/BOI",
300
- _to: "airports/MSP",
301
- ArrTimeUTC: "2008-01-06T15:15:00.000Z",
302
- },
303
- {
304
- _from: "airports/BOI",
305
- _to: "airports/MSP",
306
- ArrTimeUTC: "2008-01-06T18:18:00.000Z",
307
- },
308
- {
309
- _from: "airports/MSP",
310
- _to: "airports/BOI",
311
- ArrTimeUTC: "2008-01-06T18:48:00.000Z",
312
- },
313
- {
314
- _from: "airports/BOI",
315
- _to: "airports/MSP",
316
- ArrTimeUTC: "2008-01-06T23:22:00.000Z",
317
- },
318
- {
319
- _from: "airports/MSP",
320
- _to: "airports/BOI",
321
- ArrTimeUTC: "2008-01-07T06:49:00.000Z",
322
- },
323
- {
324
- _from: "airports/BOI",
325
- _to: "airports/MSP",
326
- ArrTimeUTC: "2008-01-07T18:15:00.000Z",
327
- },
328
- {
329
- _from: "airports/MSP",
330
- _to: "airports/BOI",
331
- ArrTimeUTC: "2008-01-07T18:33:00.000Z",
332
- },
333
- {
334
- _from: "airports/BOI",
335
- _to: "airports/MSP",
336
- ArrTimeUTC: "2008-01-08T00:35:00.000Z",
337
- },
338
- {
339
- _from: "airports/MSP",
340
- _to: "airports/BOI",
341
- ArrTimeUTC: "2008-01-08T06:29:00.000Z",
342
- },
343
- ].sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
344
- );
345
-
346
- console.timeEnd("query3");
347
- }
348
-
349
- // Find all flights with FlightNum 860 (number) on
350
- // January 5th and return the _from and _to
351
- // attributes only (you may use KEEP() for this).
352
- // FOR f IN flights
353
- // FILTER f.FlightNum == 860
354
- // AND f.Month == 1
355
- // AND f.Day == 5
356
- // RETURN KEEP(f, "_from", "_to")
357
-
358
- function query4(qyDB) {
359
- console.time("query4");
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
- );
370
- console.timeEnd("query4");
371
- }
372
-
373
- function query5(qyDB) {
374
- logger.info("Query begins");
375
- console.time("query5");
376
- deepEqual(
377
- qyDB
378
- .queryFiles("airports", { vip: true })
379
- .map((x) => x.prop("name"))
380
- .sort(),
381
- [
382
- "Amarillo International",
383
- "William B Hartsfield-Atlanta Intl",
384
- "Dallas-Fort Worth International",
385
- "John F Kennedy Intl",
386
- "Los Angeles International",
387
- "Chicago O'Hare International",
388
- "San Francisco International",
389
- ].sort(),
390
- );
391
- console.timeEnd("query5");
392
- }
393
-
394
- function runQueries(qyDB) {
395
- query1(qyDB);
396
- query1(qyDB);
397
- query2(qyDB);
398
- query2(qyDB);
399
- query3(qyDB);
400
- query3(qyDB);
401
- query4(qyDB);
402
- query4(qyDB);
403
- query5(qyDB);
404
- query5(qyDB);
405
- }
406
-
407
- export { runQueries };
1
+ import { deepEqual } from "node:assert/strict";
2
+ // Return the names of all airports one can reach
3
+ // directly (1 step) from Los Angeles International
4
+ // (LAX) following the flights edges:
5
+ function query1(qyDB) {
6
+ console.time("query1");
7
+ deepEqual([...new Set(qyDB.queryFiles("flights/**", { _from: "airports/LAX" }).map((x) => x.prop("_to"))).values()], [
8
+ "airports/CVG",
9
+ "airports/SMF",
10
+ "airports/ATL",
11
+ "airports/MSP",
12
+ "airports/DFW",
13
+ "airports/PHL",
14
+ "airports/IAH",
15
+ "airports/TUS",
16
+ "airports/ORD",
17
+ "airports/PDX",
18
+ "airports/MIA",
19
+ "airports/SFO",
20
+ "airports/DEN",
21
+ "airports/IAD",
22
+ "airports/SJC",
23
+ "airports/PHX",
24
+ "airports/SEA",
25
+ "airports/SLC",
26
+ "airports/JFK",
27
+ "airports/SAN",
28
+ "airports/ONT",
29
+ "airports/LAS",
30
+ "airports/MCI",
31
+ "airports/MDW",
32
+ "airports/FLL",
33
+ "airports/AUS",
34
+ "airports/EWR",
35
+ "airports/CLE",
36
+ "airports/SBP",
37
+ "airports/MEM",
38
+ "airports/SBA",
39
+ "airports/CLT",
40
+ "airports/COS",
41
+ "airports/ASE",
42
+ "airports/ICT",
43
+ "airports/HOU",
44
+ "airports/YUM",
45
+ "airports/STL",
46
+ "airports/FAT",
47
+ "airports/ABQ",
48
+ "airports/BOI",
49
+ "airports/BOS",
50
+ "airports/LIH",
51
+ "airports/HNL",
52
+ "airports/SMX",
53
+ "airports/MRY",
54
+ "airports/DTW",
55
+ "airports/RNO",
56
+ "airports/MCO",
57
+ "airports/OXR",
58
+ "airports/OAK",
59
+ "airports/OGG",
60
+ "airports/KOA",
61
+ "airports/BWI",
62
+ "airports/CLD",
63
+ "airports/IND",
64
+ "airports/PSP",
65
+ "airports/ELP",
66
+ "airports/TPA",
67
+ "airports/OKC",
68
+ "airports/MSY",
69
+ "airports/SNA",
70
+ "airports/IYK",
71
+ "airports/IPL",
72
+ "airports/SAT",
73
+ "airports/MOD",
74
+ "airports/BNA",
75
+ "airports/DCA",
76
+ "airports/SGU",
77
+ "airports/BFL",
78
+ "airports/EUG",
79
+ "airports/EGE",
80
+ "airports/GEG",
81
+ "airports/BDL",
82
+ "airports/JAX",
83
+ "airports/CMH",
84
+ "airports/PIT",
85
+ "airports/RDU",
86
+ "airports/SJU",
87
+ "airports/XNA",
88
+ "airports/MTJ",
89
+ "airports/JAC",
90
+ ]);
91
+ console.timeEnd("query1");
92
+ }
93
+ // Find all connections which depart from or
94
+ // land at BIS on January 5th and 7th and
95
+ // return the destination city and the arrival
96
+ // time in universal time (UTC):
97
+ // FOR airport, flight IN ANY
98
+ // 'airports/BIS' flights
99
+ // FILTER flight.Month == 1
100
+ // AND flight.Day >= 5
101
+ // AND flight.Day <= 7
102
+ // RETURN { city: airport.city,
103
+ // time: flight.ArrTimeUTC }
104
+ function query2(qyDB) {
105
+ console.time("query2");
106
+ deepEqual(qyDB
107
+ .queryFiles("flights", {
108
+ $and: [
109
+ { $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }] },
110
+ { Month: 1 },
111
+ { Day: (x) => x >= 5 && x <= 7 },
112
+ ],
113
+ })
114
+ .map((x) => x.prop("FlightNum"))
115
+ .sort((x, y) => x - y), [
116
+ 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
117
+ 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
118
+ 5650, 6636, 6678, 1087,
119
+ ].sort((x, y) => x - y));
120
+ console.timeEnd("query2");
121
+ }
122
+ function query3(qyDB) {
123
+ console.time("query3");
124
+ deepEqual(qyDB
125
+ .queryFiles("flights", {
126
+ $or: [
127
+ { _from: "airports/BOI", _to: "airports/MSP" },
128
+ { _from: "airports/MSP", _to: "airports/BOI" },
129
+ ],
130
+ Month: 1,
131
+ Day: (x) => x >= 1 && x <= 7,
132
+ })
133
+ .map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
134
+ .sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)), [
135
+ {
136
+ _from: "airports/BOI",
137
+ _to: "airports/MSP",
138
+ ArrTimeUTC: "2008-01-01T15:46:00.000Z",
139
+ },
140
+ {
141
+ _from: "airports/BOI",
142
+ _to: "airports/MSP",
143
+ ArrTimeUTC: "2008-01-01T17:28:00.000Z",
144
+ },
145
+ {
146
+ _from: "airports/MSP",
147
+ _to: "airports/BOI",
148
+ ArrTimeUTC: "2008-01-01T19:59:00.000Z",
149
+ },
150
+ {
151
+ _from: "airports/BOI",
152
+ _to: "airports/MSP",
153
+ ArrTimeUTC: "2008-01-01T23:34:00.000Z",
154
+ },
155
+ {
156
+ _from: "airports/MSP",
157
+ _to: "airports/BOI",
158
+ ArrTimeUTC: "2008-01-02T02:37:00.000Z",
159
+ },
160
+ {
161
+ _from: "airports/MSP",
162
+ _to: "airports/BOI",
163
+ ArrTimeUTC: "2008-01-02T06:55:00.000Z",
164
+ },
165
+ {
166
+ _from: "airports/BOI",
167
+ _to: "airports/MSP",
168
+ ArrTimeUTC: "2008-01-02T15:25:00.000Z",
169
+ },
170
+ {
171
+ _from: "airports/BOI",
172
+ _to: "airports/MSP",
173
+ ArrTimeUTC: "2008-01-02T18:31:00.000Z",
174
+ },
175
+ {
176
+ _from: "airports/MSP",
177
+ _to: "airports/BOI",
178
+ ArrTimeUTC: "2008-01-02T18:25:00.000Z",
179
+ },
180
+ {
181
+ _from: "airports/BOI",
182
+ _to: "airports/MSP",
183
+ ArrTimeUTC: "2008-01-02T23:28:00.000Z",
184
+ },
185
+ {
186
+ _from: "airports/MSP",
187
+ _to: "airports/BOI",
188
+ ArrTimeUTC: "2008-01-03T02:42:00.000Z",
189
+ },
190
+ {
191
+ _from: "airports/MSP",
192
+ _to: "airports/BOI",
193
+ ArrTimeUTC: "2008-01-03T06:58:00.000Z",
194
+ },
195
+ {
196
+ _from: "airports/BOI",
197
+ _to: "airports/MSP",
198
+ ArrTimeUTC: "2008-01-03T15:36:00.000Z",
199
+ },
200
+ {
201
+ _from: "airports/BOI",
202
+ _to: "airports/MSP",
203
+ ArrTimeUTC: "2008-01-03T17:54:00.000Z",
204
+ },
205
+ {
206
+ _from: "airports/MSP",
207
+ _to: "airports/BOI",
208
+ ArrTimeUTC: "2008-01-03T19:46:00.000Z",
209
+ },
210
+ {
211
+ _from: "airports/BOI",
212
+ _to: "airports/MSP",
213
+ ArrTimeUTC: "2008-01-03T23:22:00.000Z",
214
+ },
215
+ {
216
+ _from: "airports/MSP",
217
+ _to: "airports/BOI",
218
+ ArrTimeUTC: "2008-01-04T02:26:00.000Z",
219
+ },
220
+ {
221
+ _from: "airports/MSP",
222
+ _to: "airports/BOI",
223
+ ArrTimeUTC: "2008-01-04T07:20:00.000Z",
224
+ },
225
+ {
226
+ _from: "airports/BOI",
227
+ _to: "airports/MSP",
228
+ ArrTimeUTC: "2008-01-04T15:23:00.000Z",
229
+ },
230
+ {
231
+ _from: "airports/BOI",
232
+ _to: "airports/MSP",
233
+ ArrTimeUTC: "2008-01-04T17:26:00.000Z",
234
+ },
235
+ {
236
+ _from: "airports/MSP",
237
+ _to: "airports/BOI",
238
+ ArrTimeUTC: "2008-01-04T18:37:00.000Z",
239
+ },
240
+ {
241
+ _from: "airports/BOI",
242
+ _to: "airports/MSP",
243
+ ArrTimeUTC: "2008-01-04T23:29:00.000Z",
244
+ },
245
+ {
246
+ _from: "airports/MSP",
247
+ _to: "airports/BOI",
248
+ ArrTimeUTC: "2008-01-05T03:52:00.000Z",
249
+ },
250
+ {
251
+ _from: "airports/MSP",
252
+ _to: "airports/BOI",
253
+ ArrTimeUTC: "2008-01-05T07:01:00.000Z",
254
+ },
255
+ {
256
+ _from: "airports/BOI",
257
+ _to: "airports/MSP",
258
+ ArrTimeUTC: "2008-01-05T15:31:00.000Z",
259
+ },
260
+ {
261
+ _from: "airports/BOI",
262
+ _to: "airports/MSP",
263
+ ArrTimeUTC: "2008-01-05T17:15:00.000Z",
264
+ },
265
+ {
266
+ _from: "airports/MSP",
267
+ _to: "airports/BOI",
268
+ ArrTimeUTC: "2008-01-05T18:36:00.000Z",
269
+ },
270
+ {
271
+ _from: "airports/BOI",
272
+ _to: "airports/MSP",
273
+ ArrTimeUTC: "2008-01-05T23:17:00.000Z",
274
+ },
275
+ {
276
+ _from: "airports/MSP",
277
+ _to: "airports/BOI",
278
+ ArrTimeUTC: "2008-01-06T02:38:00.000Z",
279
+ },
280
+ {
281
+ _from: "airports/MSP",
282
+ _to: "airports/BOI",
283
+ ArrTimeUTC: "2008-01-06T06:56:00.000Z",
284
+ },
285
+ {
286
+ _from: "airports/BOI",
287
+ _to: "airports/MSP",
288
+ ArrTimeUTC: "2008-01-06T15:15:00.000Z",
289
+ },
290
+ {
291
+ _from: "airports/BOI",
292
+ _to: "airports/MSP",
293
+ ArrTimeUTC: "2008-01-06T18:18:00.000Z",
294
+ },
295
+ {
296
+ _from: "airports/MSP",
297
+ _to: "airports/BOI",
298
+ ArrTimeUTC: "2008-01-06T18:48:00.000Z",
299
+ },
300
+ {
301
+ _from: "airports/BOI",
302
+ _to: "airports/MSP",
303
+ ArrTimeUTC: "2008-01-06T23:22:00.000Z",
304
+ },
305
+ {
306
+ _from: "airports/MSP",
307
+ _to: "airports/BOI",
308
+ ArrTimeUTC: "2008-01-07T06:49:00.000Z",
309
+ },
310
+ {
311
+ _from: "airports/BOI",
312
+ _to: "airports/MSP",
313
+ ArrTimeUTC: "2008-01-07T18:15:00.000Z",
314
+ },
315
+ {
316
+ _from: "airports/MSP",
317
+ _to: "airports/BOI",
318
+ ArrTimeUTC: "2008-01-07T18:33:00.000Z",
319
+ },
320
+ {
321
+ _from: "airports/BOI",
322
+ _to: "airports/MSP",
323
+ ArrTimeUTC: "2008-01-08T00:35:00.000Z",
324
+ },
325
+ {
326
+ _from: "airports/MSP",
327
+ _to: "airports/BOI",
328
+ ArrTimeUTC: "2008-01-08T06:29:00.000Z",
329
+ },
330
+ ].sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)));
331
+ console.timeEnd("query3");
332
+ }
333
+ // Find all flights with FlightNum 860 (number) on
334
+ // January 5th and return the _from and _to
335
+ // attributes only (you may use KEEP() for this).
336
+ // FOR f IN flights
337
+ // FILTER f.FlightNum == 860
338
+ // AND f.Month == 1
339
+ // AND f.Day == 5
340
+ // RETURN KEEP(f, "_from", "_to")
341
+ function query4(qyDB) {
342
+ console.time("query4");
343
+ deepEqual(qyDB.queryFiles("flights", { Month: 1, Day: 5, FlightNum: 860 }).map((x) => x.view(["_from", "_to"])), [
344
+ { _from: "airports/IAD", _to: "airports/BOS" },
345
+ { _from: "airports/PBI", _to: "airports/JFK" },
346
+ { _from: "airports/ORD", _to: "airports/DTW" },
347
+ { _from: "airports/PHX", _to: "airports/DEN" },
348
+ { _from: "airports/SEA", _to: "airports/ATL" },
349
+ ]);
350
+ console.timeEnd("query4");
351
+ }
352
+ function query5(qyDB) {
353
+ logger.info("Query begins");
354
+ console.time("query5");
355
+ deepEqual(qyDB
356
+ .queryFiles("airports", { vip: true })
357
+ .map((x) => x.prop("name"))
358
+ .sort(), [
359
+ "Amarillo International",
360
+ "William B Hartsfield-Atlanta Intl",
361
+ "Dallas-Fort Worth International",
362
+ "John F Kennedy Intl",
363
+ "Los Angeles International",
364
+ "Chicago O'Hare International",
365
+ "San Francisco International",
366
+ ].sort());
367
+ console.timeEnd("query5");
368
+ }
369
+ function runQueries(qyDB) {
370
+ query1(qyDB);
371
+ query1(qyDB);
372
+ query2(qyDB);
373
+ query2(qyDB);
374
+ query3(qyDB);
375
+ query3(qyDB);
376
+ query4(qyDB);
377
+ query4(qyDB);
378
+ query5(qyDB);
379
+ query5(qyDB);
380
+ }
381
+ export { runQueries };