datafolder 1.0.7 → 1.0.9

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 (124) hide show
  1. package/README.md +4 -1
  2. package/index.js +1 -1
  3. package/internal.md +5 -3
  4. package/package.json +7 -5
  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 -49
  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 +8 -6
  29. package/src/QyCache.d.ts +44 -0
  30. package/src/QyCache.js +65 -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 +2 -3
  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 +11 -10
  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 +7 -9
  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 +2 -4
  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 +17 -16
  94. package/src/QySnapshots.d.ts +27 -0
  95. package/src/QySnapshots.js +3 -3
  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/simulate.d.ts +1 -0
  110. package/src/simulate2.d.ts +1 -0
  111. package/src/soc_pokec.d.ts +1 -0
  112. package/static/codemirror.bundle/editor.bundle.js +399 -184
  113. package/static/datafolderui/QyStyledElement.js +2 -2
  114. package/static/datafolderui/QyUIFolderViewer.js +97 -77
  115. package/static/datafolderui/QyUIUtils.js +4 -4
  116. package/static/datafolderui/code-mirror.js +7 -7
  117. package/static/datafolderui/display-tree.js +13 -10
  118. package/static/datafolderui/hscrpt.js +26 -7
  119. package/static/datafolderui/json-view.js +27 -0
  120. package/static/datafolderui/main-page.js +65 -37
  121. package/static/datafolderui/query-editor.js +8 -8
  122. package/static/datafolderui/rpc-editor.js +31 -0
  123. package/static/datafolderui/trigger-editor.js +9 -6
  124. package/static/datafolderui/QyUIFolderTree.js +0 -188
@@ -1,455 +1,417 @@
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", "*", 1, (x) => x >= 5 && x <= 7], {
116
- $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }],
117
- })
118
- .map((x) => x.prop("FlightNum"))
119
- .sort((x, y) => x - y),
120
- [
121
- 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
122
- 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
123
- 5650, 6636, 6678, 1087,
124
- ].sort((x, y) => x - y),
125
- );
126
- console.timeEnd("query2");
127
- }
128
-
129
- function query3(qyDB) {
130
- console.time("query3");
131
- deepEqual(
132
- qyDB
133
- .queryFiles(["flights", "*", 1, (x) => x >= 1 && x <= 7], {
134
- $or: [
135
- { _from: "airports/BOI", _to: "airports/MSP" },
136
- { _from: "airports/MSP", _to: "airports/BOI" },
137
- ],
138
- })
139
- .map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
140
- .sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
141
- [
142
- {
143
- _from: "airports/BOI",
144
- _to: "airports/MSP",
145
- ArrTimeUTC: "2008-01-01T15:46:00.000Z",
146
- },
147
- {
148
- _from: "airports/BOI",
149
- _to: "airports/MSP",
150
- ArrTimeUTC: "2008-01-01T17:28:00.000Z",
151
- },
152
- {
153
- _from: "airports/MSP",
154
- _to: "airports/BOI",
155
- ArrTimeUTC: "2008-01-01T19:59:00.000Z",
156
- },
157
- {
158
- _from: "airports/BOI",
159
- _to: "airports/MSP",
160
- ArrTimeUTC: "2008-01-01T23:34:00.000Z",
161
- },
162
- {
163
- _from: "airports/MSP",
164
- _to: "airports/BOI",
165
- ArrTimeUTC: "2008-01-02T02:37:00.000Z",
166
- },
167
- {
168
- _from: "airports/MSP",
169
- _to: "airports/BOI",
170
- ArrTimeUTC: "2008-01-02T06:55:00.000Z",
171
- },
172
- {
173
- _from: "airports/BOI",
174
- _to: "airports/MSP",
175
- ArrTimeUTC: "2008-01-02T15:25:00.000Z",
176
- },
177
- {
178
- _from: "airports/BOI",
179
- _to: "airports/MSP",
180
- ArrTimeUTC: "2008-01-02T18:31:00.000Z",
181
- },
182
- {
183
- _from: "airports/MSP",
184
- _to: "airports/BOI",
185
- ArrTimeUTC: "2008-01-02T18:25:00.000Z",
186
- },
187
- {
188
- _from: "airports/BOI",
189
- _to: "airports/MSP",
190
- ArrTimeUTC: "2008-01-02T23:28:00.000Z",
191
- },
192
- {
193
- _from: "airports/MSP",
194
- _to: "airports/BOI",
195
- ArrTimeUTC: "2008-01-03T02:42:00.000Z",
196
- },
197
- {
198
- _from: "airports/MSP",
199
- _to: "airports/BOI",
200
- ArrTimeUTC: "2008-01-03T06:58:00.000Z",
201
- },
202
- {
203
- _from: "airports/BOI",
204
- _to: "airports/MSP",
205
- ArrTimeUTC: "2008-01-03T15:36:00.000Z",
206
- },
207
- {
208
- _from: "airports/BOI",
209
- _to: "airports/MSP",
210
- ArrTimeUTC: "2008-01-03T17:54:00.000Z",
211
- },
212
- {
213
- _from: "airports/MSP",
214
- _to: "airports/BOI",
215
- ArrTimeUTC: "2008-01-03T19:46:00.000Z",
216
- },
217
- {
218
- _from: "airports/BOI",
219
- _to: "airports/MSP",
220
- ArrTimeUTC: "2008-01-03T23:22:00.000Z",
221
- },
222
- {
223
- _from: "airports/MSP",
224
- _to: "airports/BOI",
225
- ArrTimeUTC: "2008-01-04T02:26:00.000Z",
226
- },
227
- {
228
- _from: "airports/MSP",
229
- _to: "airports/BOI",
230
- ArrTimeUTC: "2008-01-04T07:20:00.000Z",
231
- },
232
- {
233
- _from: "airports/BOI",
234
- _to: "airports/MSP",
235
- ArrTimeUTC: "2008-01-04T15:23:00.000Z",
236
- },
237
- {
238
- _from: "airports/BOI",
239
- _to: "airports/MSP",
240
- ArrTimeUTC: "2008-01-04T17:26:00.000Z",
241
- },
242
- {
243
- _from: "airports/MSP",
244
- _to: "airports/BOI",
245
- ArrTimeUTC: "2008-01-04T18:37:00.000Z",
246
- },
247
- {
248
- _from: "airports/BOI",
249
- _to: "airports/MSP",
250
- ArrTimeUTC: "2008-01-04T23:29:00.000Z",
251
- },
252
- {
253
- _from: "airports/MSP",
254
- _to: "airports/BOI",
255
- ArrTimeUTC: "2008-01-05T03:52:00.000Z",
256
- },
257
- {
258
- _from: "airports/MSP",
259
- _to: "airports/BOI",
260
- ArrTimeUTC: "2008-01-05T07:01:00.000Z",
261
- },
262
- {
263
- _from: "airports/BOI",
264
- _to: "airports/MSP",
265
- ArrTimeUTC: "2008-01-05T15:31:00.000Z",
266
- },
267
- {
268
- _from: "airports/BOI",
269
- _to: "airports/MSP",
270
- ArrTimeUTC: "2008-01-05T17:15:00.000Z",
271
- },
272
- {
273
- _from: "airports/MSP",
274
- _to: "airports/BOI",
275
- ArrTimeUTC: "2008-01-05T18:36:00.000Z",
276
- },
277
- {
278
- _from: "airports/BOI",
279
- _to: "airports/MSP",
280
- ArrTimeUTC: "2008-01-05T23:17:00.000Z",
281
- },
282
- {
283
- _from: "airports/MSP",
284
- _to: "airports/BOI",
285
- ArrTimeUTC: "2008-01-06T02:38:00.000Z",
286
- },
287
- {
288
- _from: "airports/MSP",
289
- _to: "airports/BOI",
290
- ArrTimeUTC: "2008-01-06T06:56:00.000Z",
291
- },
292
- {
293
- _from: "airports/BOI",
294
- _to: "airports/MSP",
295
- ArrTimeUTC: "2008-01-06T15:15:00.000Z",
296
- },
297
- {
298
- _from: "airports/BOI",
299
- _to: "airports/MSP",
300
- ArrTimeUTC: "2008-01-06T18:18:00.000Z",
301
- },
302
- {
303
- _from: "airports/MSP",
304
- _to: "airports/BOI",
305
- ArrTimeUTC: "2008-01-06T18:48:00.000Z",
306
- },
307
- {
308
- _from: "airports/BOI",
309
- _to: "airports/MSP",
310
- ArrTimeUTC: "2008-01-06T23:22:00.000Z",
311
- },
312
- {
313
- _from: "airports/MSP",
314
- _to: "airports/BOI",
315
- ArrTimeUTC: "2008-01-07T06:49:00.000Z",
316
- },
317
- {
318
- _from: "airports/BOI",
319
- _to: "airports/MSP",
320
- ArrTimeUTC: "2008-01-07T18:15:00.000Z",
321
- },
322
- {
323
- _from: "airports/MSP",
324
- _to: "airports/BOI",
325
- ArrTimeUTC: "2008-01-07T18:33:00.000Z",
326
- },
327
- {
328
- _from: "airports/BOI",
329
- _to: "airports/MSP",
330
- ArrTimeUTC: "2008-01-08T00:35:00.000Z",
331
- },
332
- {
333
- _from: "airports/MSP",
334
- _to: "airports/BOI",
335
- ArrTimeUTC: "2008-01-08T06:29:00.000Z",
336
- },
337
- ].sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)),
338
- );
339
-
340
- console.timeEnd("query3");
341
- }
342
-
343
- // Find all flights with FlightNum 860 (number) on
344
- // January 5th and return the _from and _to
345
- // attributes only (you may use KEEP() for this).
346
- // FOR f IN flights
347
- // FILTER f.FlightNum == 860
348
- // AND f.Month == 1
349
- // AND f.Day == 5
350
- // RETURN KEEP(f, "_from", "_to")
351
-
352
- function query4(qyDB) {
353
- console.time("query4");
354
- deepEqual(
355
- qyDB.queryFiles(["flights", "*", 1, 5], { FlightNum: 860 }).map((x) => x.view(["_from", "_to"])),
356
- [
357
- { _from: "airports/IAD", _to: "airports/BOS" },
358
- { _from: "airports/PBI", _to: "airports/JFK" },
359
- { _from: "airports/ORD", _to: "airports/DTW" },
360
- { _from: "airports/PHX", _to: "airports/DEN" },
361
- { _from: "airports/SEA", _to: "airports/ATL" },
362
- ],
363
- );
364
- console.timeEnd("query4");
365
- }
366
-
367
- function query5(qyDB) {
368
- console.time("query5");
369
- deepEqual(
370
- qyDB
371
- .queryFiles("**", { vip: true })
372
- .map((x) => x.prop("name"))
373
- .sort(),
374
- [
375
- "Amarillo International",
376
- "William B Hartsfield-Atlanta Intl",
377
- "Dallas-Fort Worth International",
378
- "John F Kennedy Intl",
379
- "Los Angeles International",
380
- "Chicago O'Hare International",
381
- "San Francisco International",
382
- ].sort(),
383
- );
384
- console.timeEnd("query5");
385
- }
386
- // Find all flights departing or arriving at JFK with FlightNum 859 or 860 and return objects with flight numbers and airport names where the flights go to or come from respectively.
387
- // FOR a, f IN ANY
388
- // "airports/JFK" flights
389
- // FILTER f.FlightNum IN [859,860]
390
- // RETURN { airport: a.name, flight: f.FlightNum }
391
-
392
- function query6(qyDB) {
393
- console.time("query6");
394
- deepEqual(
395
- qyDB
396
- .queryFiles("flights/**", {
397
- FlightNum: { $or: [859, 860] },
398
- $or: [{ _from: "airports/JFK" }, { _to: "airports/JFK" }],
399
- })
400
- .map((x) => x.view(["_from", "_to", "FlightNum"])),
401
- [
402
- { _from: "airports/JFK", _to: "airports/PBI", FlightNum: 859 },
403
- { _from: "airports/PBI", _to: "airports/JFK", FlightNum: 860 },
404
- ],
405
- );
406
- console.timeEnd("query6");
407
- }
408
-
409
- function query7(qyDB) {
410
- console.time("query7");
411
- deepEqual(
412
- qyDB
413
- .queryFiles(["flights", "*", { $or: [1] }, [5, 6, 7]], {
414
- $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }],
415
- })
416
- .map((x) => x.prop("FlightNum"))
417
- .sort((x, y) => x - y),
418
- [
419
- 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
420
- 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
421
- 5650, 6636, 6678, 1087,
422
- ].sort((x, y) => x - y),
423
- );
424
- console.timeEnd("query7");
425
- }
426
-
427
- function query8(qyDB) {
428
- console.time("query8");
429
- deepEqual(
430
- qyDB.queryFiles("**", { name: "Thigpen " }).map((x) => x.prop("name")),
431
- ["Thigpen "],
432
- );
433
- console.timeEnd("query8");
434
- }
435
-
436
- function runQueries(qyDB) {
437
- query1(qyDB);
438
- query1(qyDB);
439
- query2(qyDB);
440
- query2(qyDB);
441
- query3(qyDB);
442
- query3(qyDB);
443
- query4(qyDB);
444
- query4(qyDB);
445
- query5(qyDB);
446
- query5(qyDB);
447
- query6(qyDB);
448
- query6(qyDB);
449
- query7(qyDB);
450
- query7(qyDB);
451
- query8(qyDB);
452
- query8(qyDB);
453
- }
454
-
455
- 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", "*", 1, (x) => x >= 5 && x <= 7], {
108
+ $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }],
109
+ })
110
+ .map((x) => x.prop("FlightNum"))
111
+ .sort((x, y) => x - y), [
112
+ 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
113
+ 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
114
+ 5650, 6636, 6678, 1087,
115
+ ].sort((x, y) => x - y));
116
+ console.timeEnd("query2");
117
+ }
118
+ function query3(qyDB) {
119
+ console.time("query3");
120
+ deepEqual(qyDB
121
+ .queryFiles(["flights", "*", 1, (x) => x >= 1 && x <= 7], {
122
+ $or: [
123
+ { _from: "airports/BOI", _to: "airports/MSP" },
124
+ { _from: "airports/MSP", _to: "airports/BOI" },
125
+ ],
126
+ })
127
+ .map((x) => x.view(["_from", "_to", "ArrTimeUTC"]))
128
+ .sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)), [
129
+ {
130
+ _from: "airports/BOI",
131
+ _to: "airports/MSP",
132
+ ArrTimeUTC: "2008-01-01T15:46:00.000Z",
133
+ },
134
+ {
135
+ _from: "airports/BOI",
136
+ _to: "airports/MSP",
137
+ ArrTimeUTC: "2008-01-01T17:28:00.000Z",
138
+ },
139
+ {
140
+ _from: "airports/MSP",
141
+ _to: "airports/BOI",
142
+ ArrTimeUTC: "2008-01-01T19:59:00.000Z",
143
+ },
144
+ {
145
+ _from: "airports/BOI",
146
+ _to: "airports/MSP",
147
+ ArrTimeUTC: "2008-01-01T23:34:00.000Z",
148
+ },
149
+ {
150
+ _from: "airports/MSP",
151
+ _to: "airports/BOI",
152
+ ArrTimeUTC: "2008-01-02T02:37:00.000Z",
153
+ },
154
+ {
155
+ _from: "airports/MSP",
156
+ _to: "airports/BOI",
157
+ ArrTimeUTC: "2008-01-02T06:55:00.000Z",
158
+ },
159
+ {
160
+ _from: "airports/BOI",
161
+ _to: "airports/MSP",
162
+ ArrTimeUTC: "2008-01-02T15:25:00.000Z",
163
+ },
164
+ {
165
+ _from: "airports/BOI",
166
+ _to: "airports/MSP",
167
+ ArrTimeUTC: "2008-01-02T18:31:00.000Z",
168
+ },
169
+ {
170
+ _from: "airports/MSP",
171
+ _to: "airports/BOI",
172
+ ArrTimeUTC: "2008-01-02T18:25:00.000Z",
173
+ },
174
+ {
175
+ _from: "airports/BOI",
176
+ _to: "airports/MSP",
177
+ ArrTimeUTC: "2008-01-02T23:28:00.000Z",
178
+ },
179
+ {
180
+ _from: "airports/MSP",
181
+ _to: "airports/BOI",
182
+ ArrTimeUTC: "2008-01-03T02:42:00.000Z",
183
+ },
184
+ {
185
+ _from: "airports/MSP",
186
+ _to: "airports/BOI",
187
+ ArrTimeUTC: "2008-01-03T06:58:00.000Z",
188
+ },
189
+ {
190
+ _from: "airports/BOI",
191
+ _to: "airports/MSP",
192
+ ArrTimeUTC: "2008-01-03T15:36:00.000Z",
193
+ },
194
+ {
195
+ _from: "airports/BOI",
196
+ _to: "airports/MSP",
197
+ ArrTimeUTC: "2008-01-03T17:54:00.000Z",
198
+ },
199
+ {
200
+ _from: "airports/MSP",
201
+ _to: "airports/BOI",
202
+ ArrTimeUTC: "2008-01-03T19:46:00.000Z",
203
+ },
204
+ {
205
+ _from: "airports/BOI",
206
+ _to: "airports/MSP",
207
+ ArrTimeUTC: "2008-01-03T23:22:00.000Z",
208
+ },
209
+ {
210
+ _from: "airports/MSP",
211
+ _to: "airports/BOI",
212
+ ArrTimeUTC: "2008-01-04T02:26:00.000Z",
213
+ },
214
+ {
215
+ _from: "airports/MSP",
216
+ _to: "airports/BOI",
217
+ ArrTimeUTC: "2008-01-04T07:20:00.000Z",
218
+ },
219
+ {
220
+ _from: "airports/BOI",
221
+ _to: "airports/MSP",
222
+ ArrTimeUTC: "2008-01-04T15:23:00.000Z",
223
+ },
224
+ {
225
+ _from: "airports/BOI",
226
+ _to: "airports/MSP",
227
+ ArrTimeUTC: "2008-01-04T17:26:00.000Z",
228
+ },
229
+ {
230
+ _from: "airports/MSP",
231
+ _to: "airports/BOI",
232
+ ArrTimeUTC: "2008-01-04T18:37:00.000Z",
233
+ },
234
+ {
235
+ _from: "airports/BOI",
236
+ _to: "airports/MSP",
237
+ ArrTimeUTC: "2008-01-04T23:29:00.000Z",
238
+ },
239
+ {
240
+ _from: "airports/MSP",
241
+ _to: "airports/BOI",
242
+ ArrTimeUTC: "2008-01-05T03:52:00.000Z",
243
+ },
244
+ {
245
+ _from: "airports/MSP",
246
+ _to: "airports/BOI",
247
+ ArrTimeUTC: "2008-01-05T07:01:00.000Z",
248
+ },
249
+ {
250
+ _from: "airports/BOI",
251
+ _to: "airports/MSP",
252
+ ArrTimeUTC: "2008-01-05T15:31:00.000Z",
253
+ },
254
+ {
255
+ _from: "airports/BOI",
256
+ _to: "airports/MSP",
257
+ ArrTimeUTC: "2008-01-05T17:15:00.000Z",
258
+ },
259
+ {
260
+ _from: "airports/MSP",
261
+ _to: "airports/BOI",
262
+ ArrTimeUTC: "2008-01-05T18:36:00.000Z",
263
+ },
264
+ {
265
+ _from: "airports/BOI",
266
+ _to: "airports/MSP",
267
+ ArrTimeUTC: "2008-01-05T23:17:00.000Z",
268
+ },
269
+ {
270
+ _from: "airports/MSP",
271
+ _to: "airports/BOI",
272
+ ArrTimeUTC: "2008-01-06T02:38:00.000Z",
273
+ },
274
+ {
275
+ _from: "airports/MSP",
276
+ _to: "airports/BOI",
277
+ ArrTimeUTC: "2008-01-06T06:56:00.000Z",
278
+ },
279
+ {
280
+ _from: "airports/BOI",
281
+ _to: "airports/MSP",
282
+ ArrTimeUTC: "2008-01-06T15:15:00.000Z",
283
+ },
284
+ {
285
+ _from: "airports/BOI",
286
+ _to: "airports/MSP",
287
+ ArrTimeUTC: "2008-01-06T18:18:00.000Z",
288
+ },
289
+ {
290
+ _from: "airports/MSP",
291
+ _to: "airports/BOI",
292
+ ArrTimeUTC: "2008-01-06T18:48:00.000Z",
293
+ },
294
+ {
295
+ _from: "airports/BOI",
296
+ _to: "airports/MSP",
297
+ ArrTimeUTC: "2008-01-06T23:22:00.000Z",
298
+ },
299
+ {
300
+ _from: "airports/MSP",
301
+ _to: "airports/BOI",
302
+ ArrTimeUTC: "2008-01-07T06:49:00.000Z",
303
+ },
304
+ {
305
+ _from: "airports/BOI",
306
+ _to: "airports/MSP",
307
+ ArrTimeUTC: "2008-01-07T18:15:00.000Z",
308
+ },
309
+ {
310
+ _from: "airports/MSP",
311
+ _to: "airports/BOI",
312
+ ArrTimeUTC: "2008-01-07T18:33:00.000Z",
313
+ },
314
+ {
315
+ _from: "airports/BOI",
316
+ _to: "airports/MSP",
317
+ ArrTimeUTC: "2008-01-08T00:35:00.000Z",
318
+ },
319
+ {
320
+ _from: "airports/MSP",
321
+ _to: "airports/BOI",
322
+ ArrTimeUTC: "2008-01-08T06:29:00.000Z",
323
+ },
324
+ ].sort((x, y) => (x.ArrTimeUTC > y.ArrTimeUTC ? 1 : x.ArrTimeUTC == y.ArrTimeUTC ? 0 : -1)));
325
+ console.timeEnd("query3");
326
+ }
327
+ // Find all flights with FlightNum 860 (number) on
328
+ // January 5th and return the _from and _to
329
+ // attributes only (you may use KEEP() for this).
330
+ // FOR f IN flights
331
+ // FILTER f.FlightNum == 860
332
+ // AND f.Month == 1
333
+ // AND f.Day == 5
334
+ // RETURN KEEP(f, "_from", "_to")
335
+ function query4(qyDB) {
336
+ console.time("query4");
337
+ deepEqual(qyDB.queryFiles(["flights", "*", 1, 5], { FlightNum: 860 }).map((x) => x.view(["_from", "_to"])), [
338
+ { _from: "airports/IAD", _to: "airports/BOS" },
339
+ { _from: "airports/PBI", _to: "airports/JFK" },
340
+ { _from: "airports/ORD", _to: "airports/DTW" },
341
+ { _from: "airports/PHX", _to: "airports/DEN" },
342
+ { _from: "airports/SEA", _to: "airports/ATL" },
343
+ ]);
344
+ console.timeEnd("query4");
345
+ }
346
+ function query5(qyDB) {
347
+ console.time("query5");
348
+ deepEqual(qyDB
349
+ .queryFiles("**", { vip: true })
350
+ .map((x) => x.prop("name"))
351
+ .sort(), [
352
+ "Amarillo International",
353
+ "William B Hartsfield-Atlanta Intl",
354
+ "Dallas-Fort Worth International",
355
+ "John F Kennedy Intl",
356
+ "Los Angeles International",
357
+ "Chicago O'Hare International",
358
+ "San Francisco International",
359
+ ].sort());
360
+ console.timeEnd("query5");
361
+ }
362
+ // Find all flights departing or arriving at JFK with FlightNum 859 or 860 and return objects with flight numbers and airport names where the flights go to or come from respectively.
363
+ // FOR a, f IN ANY
364
+ // "airports/JFK" flights
365
+ // FILTER f.FlightNum IN [859,860]
366
+ // RETURN { airport: a.name, flight: f.FlightNum }
367
+ function query6(qyDB) {
368
+ console.time("query6");
369
+ deepEqual(qyDB
370
+ .queryFiles("flights/**", {
371
+ FlightNum: { $or: [859, 860] },
372
+ $or: [{ _from: "airports/JFK" }, { _to: "airports/JFK" }],
373
+ })
374
+ .map((x) => x.view(["_from", "_to", "FlightNum"])), [
375
+ { _from: "airports/JFK", _to: "airports/PBI", FlightNum: 859 },
376
+ { _from: "airports/PBI", _to: "airports/JFK", FlightNum: 860 },
377
+ ]);
378
+ console.timeEnd("query6");
379
+ }
380
+ function query7(qyDB) {
381
+ console.time("query7");
382
+ deepEqual(qyDB
383
+ .queryFiles(["flights", "*", { $or: [1] }, [5, 6, 7]], {
384
+ $or: [{ _from: "airports/BIS" }, { _to: "airports/BIS" }],
385
+ })
386
+ .map((x) => x.prop("FlightNum"))
387
+ .sort((x, y) => x - y), [
388
+ 6635, 646, 6541, 5651, 6541, 5648, 687, 309, 6678, 6678, 6636, 439, 1567, 6635, 5647, 6541, 5660, 6541,
389
+ 6553, 687, 6553, 309, 5649, 5650, 6636, 439, 6635, 574, 6541, 5651, 5648, 6541, 1705, 1535, 5649, 6678,
390
+ 5650, 6636, 6678, 1087,
391
+ ].sort((x, y) => x - y));
392
+ console.timeEnd("query7");
393
+ }
394
+ function query8(qyDB) {
395
+ console.time("query8");
396
+ deepEqual(qyDB.queryFiles("**", { name: "Thigpen " }).map((x) => x.prop("name")), ["Thigpen "]);
397
+ console.timeEnd("query8");
398
+ }
399
+ function runQueries(qyDB) {
400
+ query1(qyDB);
401
+ query1(qyDB);
402
+ query2(qyDB);
403
+ query2(qyDB);
404
+ query3(qyDB);
405
+ query3(qyDB);
406
+ query4(qyDB);
407
+ query4(qyDB);
408
+ query5(qyDB);
409
+ query5(qyDB);
410
+ query6(qyDB);
411
+ query6(qyDB);
412
+ query7(qyDB);
413
+ query7(qyDB);
414
+ query8(qyDB);
415
+ query8(qyDB);
416
+ }
417
+ export { runQueries };