gtfs 3.1.3 → 3.2.2

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 (111) hide show
  1. package/.eslintrc.json +14 -19
  2. package/.husky/pre-commit +4 -0
  3. package/@types/index.d.ts +269 -0
  4. package/@types/tests.ts +26 -0
  5. package/@types/tsconfig.json +17 -0
  6. package/CHANGELOG.md +181 -0
  7. package/README.md +168 -149
  8. package/bin/gtfs-export.js +4 -5
  9. package/bin/gtfs-import.js +6 -7
  10. package/config-sample-full.json +2 -7
  11. package/docs/images/node-gtfs-logo.svg +18 -0
  12. package/lib/db.js +64 -13
  13. package/lib/export.js +27 -13
  14. package/lib/file-utils.js +26 -9
  15. package/lib/geojson-utils.js +51 -38
  16. package/lib/gtfs/agencies.js +15 -4
  17. package/lib/gtfs/attributions.js +15 -4
  18. package/lib/gtfs/calendar-dates.js +15 -4
  19. package/lib/gtfs/calendars.js +15 -4
  20. package/lib/gtfs/fare-attributes.js +15 -4
  21. package/lib/gtfs/fare-rules.js +15 -4
  22. package/lib/gtfs/feed-info.js +15 -4
  23. package/lib/gtfs/frequencies.js +15 -4
  24. package/lib/gtfs/levels.js +15 -4
  25. package/lib/gtfs/pathways.js +15 -4
  26. package/lib/gtfs/routes.js +22 -6
  27. package/lib/gtfs/shapes.js +59 -23
  28. package/lib/gtfs/stop-times.js +15 -4
  29. package/lib/gtfs/stops.js +57 -23
  30. package/lib/gtfs/transfers.js +15 -4
  31. package/lib/gtfs/translations.js +15 -4
  32. package/lib/gtfs/trips.js +15 -4
  33. package/lib/gtfs-ride/board-alights.js +15 -4
  34. package/lib/gtfs-ride/ride-feed-infos.js +15 -4
  35. package/lib/gtfs-ride/rider-trips.js +15 -4
  36. package/lib/gtfs-ride/riderships.js +15 -4
  37. package/lib/gtfs-ride/trip-capacities.js +15 -4
  38. package/lib/import.js +201 -126
  39. package/lib/log-utils.js +8 -4
  40. package/lib/non-standard/directions.js +15 -4
  41. package/lib/non-standard/stop-attributes.js +15 -4
  42. package/lib/non-standard/timetable-notes-references.js +15 -4
  43. package/lib/non-standard/timetable-notes.js +15 -4
  44. package/lib/non-standard/timetable-pages.js +15 -4
  45. package/lib/non-standard/timetable-stop-order.js +15 -4
  46. package/lib/non-standard/timetables.js +15 -4
  47. package/lib/utils.js +26 -12
  48. package/models/gtfs/agency.js +11 -11
  49. package/models/gtfs/attributions.js +14 -14
  50. package/models/gtfs/calendar-dates.js +7 -7
  51. package/models/gtfs/calendar.js +12 -12
  52. package/models/gtfs/fare-attributes.js +9 -9
  53. package/models/gtfs/fare-rules.js +8 -8
  54. package/models/gtfs/feed-info.js +12 -12
  55. package/models/gtfs/frequencies.js +10 -10
  56. package/models/gtfs/levels.js +5 -5
  57. package/models/gtfs/pathways.js +14 -14
  58. package/models/gtfs/routes.js +14 -14
  59. package/models/gtfs/shapes.js +8 -8
  60. package/models/gtfs/stop-times.js +17 -17
  61. package/models/gtfs/stops.js +17 -17
  62. package/models/gtfs/transfers.js +7 -7
  63. package/models/gtfs/translations.js +10 -10
  64. package/models/gtfs/trips.js +12 -12
  65. package/models/gtfs-ride/board-alight.js +24 -24
  66. package/models/gtfs-ride/ride-feed-info.js +8 -8
  67. package/models/gtfs-ride/rider-trip.js +21 -21
  68. package/models/gtfs-ride/ridership.js +23 -23
  69. package/models/gtfs-ride/trip-capacity.js +10 -10
  70. package/models/models.js +1 -1
  71. package/models/non-standard/directions.js +6 -6
  72. package/models/non-standard/stop-attributes.js +5 -5
  73. package/models/non-standard/timetable-notes-references.js +9 -9
  74. package/models/non-standard/timetable-notes.js +5 -5
  75. package/models/non-standard/timetable-pages.js +5 -5
  76. package/models/non-standard/timetable-stop-order.js +6 -6
  77. package/models/non-standard/timetables.js +27 -27
  78. package/package.json +23 -11
  79. package/test/mocha/export-gtfs.js +74 -44
  80. package/test/mocha/get-agencies.js +20 -14
  81. package/test/mocha/get-attributions.js +10 -4
  82. package/test/mocha/get-board-alights.js +10 -4
  83. package/test/mocha/get-calendar-dates.js +31 -24
  84. package/test/mocha/get-calendars.js +17 -11
  85. package/test/mocha/get-db.js +71 -5
  86. package/test/mocha/get-directions.js +10 -4
  87. package/test/mocha/get-fare-attributes.js +12 -6
  88. package/test/mocha/get-fare-rules.js +17 -13
  89. package/test/mocha/get-feed-info.js +10 -4
  90. package/test/mocha/get-frequencies.js +10 -4
  91. package/test/mocha/get-levels.js +4 -4
  92. package/test/mocha/get-pathways.js +10 -4
  93. package/test/mocha/get-ride-feed-infos.js +9 -3
  94. package/test/mocha/get-rider-trips.js +10 -4
  95. package/test/mocha/get-riderships.js +10 -4
  96. package/test/mocha/get-routes.js +12 -16
  97. package/test/mocha/get-shapes-as-geojson.js +12 -6
  98. package/test/mocha/get-shapes.js +31 -39
  99. package/test/mocha/get-stop-attributes.js +10 -4
  100. package/test/mocha/get-stops-as-geojson.js +11 -5
  101. package/test/mocha/get-stops.js +62 -51
  102. package/test/mocha/get-stoptimes.js +18 -10
  103. package/test/mocha/get-timetable-pages.js +10 -4
  104. package/test/mocha/get-timetable-stop-orders.js +10 -4
  105. package/test/mocha/get-timetables.js +10 -4
  106. package/test/mocha/get-transfers.js +10 -4
  107. package/test/mocha/get-translations.js +10 -4
  108. package/test/mocha/get-trip-capacities.js +10 -4
  109. package/test/mocha/get-trips.js +6 -6
  110. package/test/mocha/import-gtfs.js +63 -46
  111. package/test/test-config.js +9 -4
package/CHANGELOG.md CHANGED
@@ -1,121 +1,224 @@
1
1
  # Changelog
2
+
2
3
  All notable changes to this project will be documented in this file.
3
4
 
4
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
7
 
8
+ ## [3.2.2] - 2021-12-28
9
+
10
+ ### Updated
11
+
12
+ - Dependency Updates
13
+
14
+ ## [3.2.1] - 2021-11-26
15
+
16
+ ### Updated
17
+
18
+ - Updated sqlite3 dependency to use @vscode/sqlite3 for npm audit warning
19
+ - Downgraded dtslint to 3.4.2 for npm audit warning
20
+
21
+ ## [3.2.0] - 2021-11-21
22
+
23
+ ### Added
24
+
25
+ - Support for opening multiple sqlite databases
26
+ - Basic TypeScript support (Matt Moran)
27
+
28
+ ### Updated
29
+
30
+ - Readme updates
31
+ - Dependency updates
32
+
33
+ ## [3.1.4] - 2021-10-17
34
+
35
+ ### Added
36
+
37
+ - Husky and Prettier
38
+
39
+ ### Update
40
+
41
+ - Downgraded node-sqlite3 library to released version
42
+
7
43
  ## [3.1.3] - 2021-10-17
44
+
8
45
  ### Added
46
+
9
47
  - Added release-it
48
+
10
49
  ### Updated
50
+
11
51
  - Updated pinned node-sqlite3 library
12
52
 
13
53
  ## [3.1.2] - 2021-09-25
54
+
14
55
  ### Changed
56
+
15
57
  - Switch to recursive-copy library
16
58
  - Change pinned node-sqlite path
59
+
17
60
  ### Updated
61
+
18
62
  - Dependency updates
19
63
 
20
64
  ## [3.1.1] - 2021-09-013
65
+
21
66
  ### Updated
67
+
22
68
  - Dependency updates - pinned sqlite3 version to solve security issue: https://github.com/mapbox/node-sqlite3/issues/1483
23
69
 
24
70
  ## [3.1.0] - 2021-08-02
71
+
25
72
  ### Changed
73
+
26
74
  - Added database optimizations to greatly speed up import.
75
+
27
76
  ### Fixed
77
+
28
78
  - Fix for timetable_notes_references schema
79
+
29
80
  ### Updated
81
+
30
82
  - Dependency updates
31
83
 
32
84
  ## [3.0.4] - 2021-06-23
85
+
33
86
  ### Fixed
87
+
34
88
  - Fix for timetable_notes_references schema
89
+
35
90
  ### Updated
91
+
36
92
  - Dependency updates
37
93
 
38
94
  ## [3.0.3] - 2021-06-15
95
+
39
96
  ### Updated
97
+
40
98
  - Dependency updates
41
99
  - Use eslint instead of xo
42
100
 
43
101
  ## [3.0.2] - 2021-05-26
102
+
44
103
  ### Fixed
104
+
45
105
  - Agency assignment for multi-agency GTFS in getShapesAsGeoJSON
106
+
46
107
  ### Updated
108
+
47
109
  - Dependency updates
48
110
 
49
111
  ## [3.0.1] - 2021-05-15
112
+
50
113
  ### Fixed
114
+
51
115
  - Better error messages for missing config
52
116
  - Better error messages for invalid paths in config
117
+
53
118
  ### Changed
119
+
54
120
  - Updated minimum node.js verstion to 14.17.0
55
121
  - Added github action tests for node 16
56
122
  - Dropped github action tests for node 12
123
+
57
124
  ### Added
125
+
58
126
  - Tests for invalid path in config
127
+
59
128
  ### Updated
129
+
60
130
  - Use copy-dir library
61
131
  - Dependency updates
62
132
 
63
133
  ## [3.0.0] - 2021-05-13
134
+
64
135
  ### Breaking Changes
136
+
65
137
  - Converted to ES Module
66
138
  - Renamed `gtfs.import` to `gtfs.importGtfs`
67
139
  - Renamed `gtfs.export` to `gtfs.exportGtfs`
68
140
 
69
141
  ### Changed
142
+
70
143
  - Converted to ES Module
144
+
71
145
  ### Updated
146
+
72
147
  - Dependency updates
73
148
 
74
149
  ## [2.4.4] - 2021-05-07
150
+
75
151
  ### Updated
152
+
76
153
  - Dependency updates
77
154
 
78
155
  ## [2.4.3] - 2021-03-23
156
+
79
157
  ### Added
158
+
80
159
  - Tests for GTFS-ride methods and models
160
+
81
161
  ### Updated
162
+
82
163
  - Dependency updates
83
164
 
84
165
  ## [2.4.2] - 2021-02-19
166
+
85
167
  ### Fixed
168
+
86
169
  - Exclude timestamp fields from export
170
+
87
171
  ### Updated
172
+
88
173
  - Dependency updates
89
174
 
90
175
  ## [2.4.1] - 2021-02-09
176
+
91
177
  ### Fixed
178
+
92
179
  - Updated transfers.txt model
180
+
93
181
  ### Updated
182
+
94
183
  - Dependency updates
95
184
 
96
185
  ## [2.4.0] - 2021-02-04
186
+
97
187
  ### Added
188
+
98
189
  - Support for `gtfsPath`, `gtfsUrl`, `exportPath` and `sqlitePath` parameters for `gtfs-import` and `gtfs-export` scripts.
190
+
99
191
  ### Changed
192
+
100
193
  - Removed need for `agency_key` in config.json - use sanitized version of first `agency_name` in agencies.txt
194
+
101
195
  ### Updated
196
+
102
197
  - Dependency updates
103
198
 
104
199
  ## [2.3.0] - 2021-01-20
200
+
105
201
  ### Fixed
202
+
106
203
  - Update getDB test to handle unlimited serviceIds
204
+
107
205
  ### Updated
206
+
108
207
  - Readme updates
109
208
  - Reorganize table creation
110
209
  - Better SQLite escaping
111
210
  - Dependency updates
211
+
112
212
  ### Added
213
+
113
214
  - GTFS-ride models and methods
114
215
  - Support for exportPath config option
115
216
  - Use pluralize library
116
217
 
117
218
  ## [2.2.4] - 2020-12-21
219
+
118
220
  ### Updated
221
+
119
222
  - Updated github actions to test PRs and node 14.x
120
223
  - Better default sqlitePath
121
224
  - Detect TTY and use \n if not
@@ -123,166 +226,244 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
123
226
  - Dependency updates
124
227
 
125
228
  ## [2.2.3] - 2020-12-12
229
+
126
230
  ### Updated
231
+
127
232
  - Better default GTFS in config-sample.json
128
233
  - Skip creating tables for excluded files
129
234
 
130
235
  ## [2.2.2] - 2020-12-10
236
+
131
237
  ### Updated
238
+
132
239
  - Dependency updates (fixes https://github.com/advisories/GHSA-qqgx-2p2h-9c37)
133
240
 
134
241
  ## [2.2.1] - 2020-12-06
242
+
135
243
  ### Updated
244
+
136
245
  - Improved shapes query
137
246
 
138
247
  ## [2.2.0] - 2020-12-05
248
+
139
249
  ### Updated
250
+
140
251
  - Use unzipper library to handle poorly formed zip files
141
252
  - Dependency updates
142
253
 
143
254
  ## [2.1.1] - 2020-11-27
255
+
144
256
  ### Fixed
257
+
145
258
  - Don't log missing non-standard GTFS files
146
259
  - Support for multiple agencies in one config file
147
260
  - Dependency updates
148
261
 
149
262
  ## [2.1.0] - 2020-11-10
263
+
150
264
  ### Added
265
+
151
266
  - Support for timetable_notes.txt and timetable_notes_references.txt
152
267
 
153
268
  ## [2.0.9] - 2020-11-10
269
+
154
270
  ### Changed
271
+
155
272
  - Expand model character limit
156
273
  - Don't require stop_name in stops.txt
157
274
  - Dependency updates
158
275
 
159
276
  ## [2.0.8] - 2020-10-14
277
+
160
278
  ### Changed
279
+
161
280
  - Improved validation on import
162
281
 
163
282
  ## [2.0.7] - 2020-10-13
283
+
164
284
  ### Added
285
+
165
286
  - Support for extended GTFS route types
166
287
 
167
288
  ## [2.0.6] - 2020-10-13
289
+
168
290
  ### Changed
291
+
169
292
  - Dependency updates
293
+
170
294
  ### Added
295
+
171
296
  - Better error formatting
172
297
  - GTFS import validation and better errors
173
298
 
174
299
  ## [2.0.5] - 2020-09-24
300
+
175
301
  ### Fixed
302
+
176
303
  - Fix for selecting a single field.
177
304
 
178
305
  ## [2.0.4] - 2020-09-20
306
+
179
307
  ### Added
308
+
180
309
  - Support for non-standard directions.txt file.
181
310
  - Added getFareAttributes to README
182
311
 
183
312
  ## [2.0.3] - 2020-09-14
313
+
184
314
  ### Fixed
315
+
185
316
  - Fix for querying for null
186
317
 
187
318
  ## [2.0.2] - 2020-09-06
319
+
188
320
  ### Changed
321
+
189
322
  - Dependency updates
323
+
190
324
  ### Fixed
325
+
191
326
  - Fix geojson property formatting
192
327
 
193
328
  ## [2.0.1] - 2020-08-23
329
+
194
330
  ### Added
331
+
195
332
  - Updated model fields to latest GTFS spec
196
333
  - Test for gtfs.getDb()
197
334
  - Improved geoJSON generation
198
335
 
199
336
  ## [2.0.0] - 2020-08-20
337
+
200
338
  ### Changed
339
+
201
340
  - Switched to SQLite
202
341
  - Breaking changes for all queries
203
342
  - Updated documentation
204
343
 
205
344
  ## [1.10.4] - 2020-07-28
345
+
206
346
  ### Added
347
+
207
348
  - `start_time` and `end_time` fields in `timetables.txt`
208
349
 
209
350
  ## [1.10.3] - 2020-07-15
351
+
210
352
  ### Added
353
+
211
354
  - Improved mongo connection documentation
355
+
212
356
  ### Fixed
357
+
213
358
  - Dependency updates
214
359
 
215
360
  ## [1.10.2] - 2020-06-08
361
+
216
362
  ### Added
363
+
217
364
  - Config option `csvOptions` to pass options to `csv-parse`.
218
365
 
219
366
  ## [1.10.1] - 2020-05-10
367
+
220
368
  ### Fixed
369
+
221
370
  - Support for zipped GTFS files with subdirectories
222
371
 
223
372
  ## [1.10.0] - 2020-04-20
373
+
224
374
  ### Added
375
+
225
376
  - Support for exporting GTFS zip files
226
377
 
227
378
  ## [1.9.1] - 2019-08-09
379
+
228
380
  ### Changed
381
+
229
382
  - Better projections on all queries
230
383
 
231
384
  ## [1.9.0] - 2019-08-06
385
+
232
386
  ### Added
387
+
233
388
  - `dataExpireAfterSeconds` config option
234
389
  - `created_at` field on each document
390
+
235
391
  ### Fixed
392
+
236
393
  - Removed invalid required fields from models
237
394
  - Removed `date_last_updated` field from agency
238
395
 
239
396
  ## [1.8.9] - 2019-08-06
397
+
240
398
  ### Changed
399
+
241
400
  - Logging improvements
242
401
 
243
402
  ## [1.8.8] - 2019-08-06
403
+
244
404
  ### Added
405
+
245
406
  - Config option for custom logging function
246
407
 
247
408
  ## [1.8.7] - 2019-05-20
409
+
248
410
  ### Changed
411
+
249
412
  - Use better temp directory for files
250
413
 
251
414
  ## [1.8.6] - 2019-05-11
415
+
252
416
  ### Fixes
417
+
253
418
  - Remove .git from published npm package
254
419
 
255
420
  ## [1.8.5] - 2019-04-09
421
+
256
422
  ### Changed
423
+
257
424
  - Prevent timeout on all queries
258
425
 
259
426
  ## [1.8.4] - 2019-03-31
427
+
260
428
  ### Added
429
+
261
430
  - Index on stop_id
431
+
262
432
  ### Changed
433
+
263
434
  - Strip byte-order-markers if present when importing
264
435
 
265
436
  ## [1.8.3] - 2019-03-26
437
+
266
438
  ### Added
439
+
267
440
  - Support for GET headers
268
441
 
269
442
  ## [1.8.2] - 2019-03-11
443
+
270
444
  ### Changed
445
+
271
446
  - Renamed config variable to `show_trip_continuation`
272
447
 
273
448
  ## [1.8.1] - 2019-02-28
449
+
274
450
  ### Added
451
+
275
452
  - Changelog
276
453
 
277
454
  ### Changed
455
+
278
456
  - Fixed issue with geojson consolidation
279
457
 
280
458
  ## [1.8.0] - 2019-02-28
459
+
281
460
  ### Changed
461
+
282
462
  - Updated all methods so that query objects remain unchanged
283
463
  - Updated dependencies
284
464
 
285
465
  ## [1.0.0] - 2017-07-17
466
+
286
467
  ### Breaking changes in version 1.0.0
287
468
 
288
469
  As of version 1.0.0, all `node-gtfs` methods have changed to accept a query object instead of individual arguments. This allows for all fields of all GTFS files to be queried using this library. Most method names have been changed to be more general and more specific methods have been removed. For example, `getRoutes` now replaces `getRoutesByAgency`, `getRoutesById`, `getRoutesByDistance` and `getRoutesByStop`.