gtfs 3.1.0 → 3.1.4

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