gtfs 3.1.1 → 3.2.0

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