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