gtfs 3.1.2 → 3.2.1

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