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
@@ -6,102 +6,102 @@ const model = {
6
6
  {
7
7
  name: 'rider_id',
8
8
  type: 'varchar(255)',
9
- primary: true
9
+ primary: true,
10
10
  },
11
11
  {
12
12
  name: 'agency_id',
13
13
  type: 'varchar(255)',
14
- index: true
14
+ index: true,
15
15
  },
16
16
  {
17
17
  name: 'trip_id',
18
18
  type: 'varchar(255)',
19
- index: true
19
+ index: true,
20
20
  },
21
21
  {
22
22
  name: 'boarding_stop_id',
23
23
  type: 'varchar(255)',
24
- index: true
24
+ index: true,
25
25
  },
26
26
  {
27
27
  name: 'boarding_stop_sequence',
28
28
  type: 'integer',
29
29
  min: 0,
30
- index: true
30
+ index: true,
31
31
  },
32
32
  {
33
33
  name: 'alighting_stop_id',
34
34
  type: 'varchar(255)',
35
- index: true
35
+ index: true,
36
36
  },
37
37
  {
38
38
  name: 'alighting_stop_sequence',
39
39
  type: 'integer',
40
40
  min: 0,
41
- index: true
41
+ index: true,
42
42
  },
43
43
  {
44
44
  name: 'service_date',
45
45
  type: 'integer',
46
- index: true
46
+ index: true,
47
47
  },
48
48
  {
49
49
  name: 'boarding_time',
50
- type: 'varchar(255)'
50
+ type: 'varchar(255)',
51
51
  },
52
52
  {
53
53
  name: 'boarding_timestamp',
54
54
  type: 'integer',
55
- index: true
55
+ index: true,
56
56
  },
57
57
  {
58
58
  name: 'alighting_time',
59
- type: 'varchar(255)'
59
+ type: 'varchar(255)',
60
60
  },
61
61
  {
62
62
  name: 'alighting_timestamp',
63
63
  type: 'integer',
64
- index: true
64
+ index: true,
65
65
  },
66
66
  {
67
67
  name: 'rider_type',
68
68
  type: 'integer',
69
69
  min: 0,
70
- max: 13
70
+ max: 13,
71
71
  },
72
72
  {
73
73
  name: 'rider_type_description',
74
- type: 'varchar(255)'
74
+ type: 'varchar(255)',
75
75
  },
76
76
  {
77
77
  name: 'fare_paid',
78
- type: 'real'
78
+ type: 'real',
79
79
  },
80
80
  {
81
81
  name: 'transaction_type',
82
82
  type: 'integer',
83
83
  min: 0,
84
- max: 8
84
+ max: 8,
85
85
  },
86
86
  {
87
87
  name: 'fare_media',
88
88
  type: 'integer',
89
89
  min: 0,
90
- max: 9
90
+ max: 9,
91
91
  },
92
92
  {
93
93
  name: 'accompanying_device',
94
94
  type: 'integer',
95
95
  min: 0,
96
- max: 6
96
+ max: 6,
97
97
  },
98
98
  {
99
99
  name: 'transfer_status',
100
100
  type: 'integer',
101
101
  min: 0,
102
- max: 1
103
- }
104
- ]
102
+ max: 1,
103
+ },
104
+ ],
105
105
  };
106
106
 
107
107
  export default model;
@@ -7,115 +7,115 @@ const model = {
7
7
  name: 'total_boardings',
8
8
  type: 'integer',
9
9
  min: 0,
10
- required: true
10
+ required: true,
11
11
  },
12
12
  {
13
13
  name: 'total_alightings',
14
14
  type: 'integer',
15
15
  min: 0,
16
- required: true
16
+ required: true,
17
17
  },
18
18
  {
19
19
  name: 'ridership_start_date',
20
20
  type: 'integer',
21
- index: true
21
+ index: true,
22
22
  },
23
23
  {
24
24
  name: 'ridership_end_date',
25
25
  type: 'integer',
26
- index: true
26
+ index: true,
27
27
  },
28
28
  {
29
29
  name: 'ridership_start_time',
30
- type: 'varchar(255)'
30
+ type: 'varchar(255)',
31
31
  },
32
32
  {
33
33
  name: 'ridership_start_timestamp',
34
34
  type: 'integer',
35
- index: true
35
+ index: true,
36
36
  },
37
37
  {
38
38
  name: 'ridership_end_time',
39
- type: 'varchar(255)'
39
+ type: 'varchar(255)',
40
40
  },
41
41
  {
42
42
  name: 'ridership_end_timestamp',
43
43
  type: 'integer',
44
- index: true
44
+ index: true,
45
45
  },
46
46
  {
47
47
  name: 'service_id',
48
48
  type: 'varchar(255)',
49
- index: true
49
+ index: true,
50
50
  },
51
51
  {
52
52
  name: 'monday',
53
53
  type: 'integer',
54
54
  min: 0,
55
- max: 1
55
+ max: 1,
56
56
  },
57
57
  {
58
58
  name: 'tuesday',
59
59
  type: 'integer',
60
60
  min: 0,
61
- max: 1
61
+ max: 1,
62
62
  },
63
63
  {
64
64
  name: 'wednesday',
65
65
  type: 'integer',
66
66
  min: 0,
67
- max: 1
67
+ max: 1,
68
68
  },
69
69
  {
70
70
  name: 'thursday',
71
71
  type: 'integer',
72
72
  min: 0,
73
- max: 1
73
+ max: 1,
74
74
  },
75
75
  {
76
76
  name: 'friday',
77
77
  type: 'integer',
78
78
  min: 0,
79
- max: 1
79
+ max: 1,
80
80
  },
81
81
  {
82
82
  name: 'saturday',
83
83
  type: 'integer',
84
84
  min: 0,
85
- max: 1
85
+ max: 1,
86
86
  },
87
87
  {
88
88
  name: 'sunday',
89
89
  type: 'integer',
90
90
  min: 0,
91
- max: 1
91
+ max: 1,
92
92
  },
93
93
  {
94
94
  name: 'agency_id',
95
95
  type: 'varchar(255)',
96
- index: true
96
+ index: true,
97
97
  },
98
98
  {
99
99
  name: 'route_id',
100
100
  type: 'varchar(255)',
101
- index: true
101
+ index: true,
102
102
  },
103
103
  {
104
104
  name: 'direction_id',
105
105
  type: 'integer',
106
106
  min: 0,
107
107
  max: 1,
108
- index: true
108
+ index: true,
109
109
  },
110
110
  {
111
111
  name: 'trip_id',
112
- type: 'varchar(255)'
112
+ type: 'varchar(255)',
113
113
  },
114
114
  {
115
115
  name: 'stop_id',
116
- type: 'varchar(255)'
117
- }
118
- ]
116
+ type: 'varchar(255)',
117
+ },
118
+ ],
119
119
  };
120
120
 
121
121
  export default model;
@@ -6,43 +6,43 @@ const model = {
6
6
  {
7
7
  name: 'agency_id',
8
8
  type: 'varchar(255)',
9
- index: true
9
+ index: true,
10
10
  },
11
11
  {
12
12
  name: 'trip_id',
13
13
  type: 'varchar(255)',
14
- index: true
14
+ index: true,
15
15
  },
16
16
  {
17
17
  name: 'service_date',
18
18
  type: 'integer',
19
- index: true
19
+ index: true,
20
20
  },
21
21
  {
22
22
  name: 'vehicle_description',
23
- type: 'varchar(255)'
23
+ type: 'varchar(255)',
24
24
  },
25
25
  {
26
26
  name: 'seated_capacity',
27
27
  type: 'integer',
28
- min: 0
28
+ min: 0,
29
29
  },
30
30
  {
31
31
  name: 'standing_capacity',
32
32
  type: 'integer',
33
- min: 0
33
+ min: 0,
34
34
  },
35
35
  {
36
36
  name: 'wheelchair_capacity',
37
37
  type: 'integer',
38
- min: 0
38
+ min: 0,
39
39
  },
40
40
  {
41
41
  name: 'bike_capacity',
42
42
  type: 'integer',
43
- min: 0
44
- }
45
- ]
43
+ min: 0,
44
+ },
45
+ ],
46
46
  };
47
47
 
48
48
  export default model;
package/models/models.js CHANGED
@@ -59,7 +59,7 @@ const models = [
59
59
  rideFeedInfo,
60
60
  riderTrip,
61
61
  ridership,
62
- tripCapacity
62
+ tripCapacity,
63
63
  ];
64
64
 
65
65
  export default models;
@@ -5,27 +5,27 @@ const model = {
5
5
  {
6
6
  name: 'id',
7
7
  type: 'integer',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'route_id',
12
12
  type: 'varchar(255)',
13
13
  required: true,
14
- index: true
14
+ index: true,
15
15
  },
16
16
  {
17
17
  name: 'direction_id',
18
18
  type: 'integer',
19
19
  min: 0,
20
20
  max: 1,
21
- index: true
21
+ index: true,
22
22
  },
23
23
  {
24
24
  name: 'direction',
25
25
  type: 'varchar(255)',
26
- required: true
27
- }
28
- ]
26
+ required: true,
27
+ },
28
+ ],
29
29
  };
30
30
 
31
31
  export default model;
@@ -5,19 +5,19 @@ const model = {
5
5
  {
6
6
  name: 'id',
7
7
  type: 'integer',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'stop_id',
12
12
  type: 'varchar(255)',
13
13
  required: true,
14
- index: true
14
+ index: true,
15
15
  },
16
16
  {
17
17
  name: 'stop_city',
18
- type: 'varchar(255)'
19
- }
20
- ]
18
+ type: 'varchar(255)',
19
+ },
20
+ ],
21
21
  };
22
22
 
23
23
  export default model;
@@ -4,41 +4,41 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'note_id',
7
- type: 'varchar(255)'
7
+ type: 'varchar(255)',
8
8
  },
9
9
  {
10
10
  name: 'timetable_id',
11
11
  type: 'varchar(255)',
12
- index: true
12
+ index: true,
13
13
  },
14
14
  {
15
15
  name: 'route_id',
16
16
  type: 'varchar(255)',
17
- index: true
17
+ index: true,
18
18
  },
19
19
  {
20
20
  name: 'trip_id',
21
21
  type: 'varchar(255)',
22
- index: true
22
+ index: true,
23
23
  },
24
24
  {
25
25
  name: 'stop_id',
26
26
  type: 'varchar(255)',
27
- index: true
27
+ index: true,
28
28
  },
29
29
  {
30
30
  name: 'stop_sequence',
31
31
  type: 'integer',
32
32
  min: 0,
33
- index: true
33
+ index: true,
34
34
  },
35
35
  {
36
36
  name: 'show_on_stoptime',
37
37
  type: 'integer',
38
38
  min: 0,
39
- max: 1
40
- }
41
- ]
39
+ max: 1,
40
+ },
41
+ ],
42
42
  };
43
43
 
44
44
  export default model;
@@ -5,17 +5,17 @@ const model = {
5
5
  {
6
6
  name: 'note_id',
7
7
  type: 'varchar(255)',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'symbol',
12
- type: 'varchar(255)'
12
+ type: 'varchar(255)',
13
13
  },
14
14
  {
15
15
  name: 'note',
16
- type: 'varchar(2047)'
17
- }
18
- ]
16
+ type: 'varchar(2047)',
17
+ },
18
+ ],
19
19
  };
20
20
 
21
21
  export default model;
@@ -5,17 +5,17 @@ const model = {
5
5
  {
6
6
  name: 'timetable_page_id',
7
7
  type: 'varchar(255)',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'timetable_page_label',
12
- type: 'varchar(255)'
12
+ type: 'varchar(255)',
13
13
  },
14
14
  {
15
15
  name: 'filename',
16
- type: 'varchar(255)'
17
- }
18
- ]
16
+ type: 'varchar(255)',
17
+ },
18
+ ],
19
19
  };
20
20
 
21
21
  export default model;
@@ -5,24 +5,24 @@ const model = {
5
5
  {
6
6
  name: 'id',
7
7
  type: 'integer',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'timetable_id',
12
12
  type: 'varchar(255)',
13
- index: true
13
+ index: true,
14
14
  },
15
15
  {
16
16
  name: 'stop_id',
17
- type: 'varchar(255)'
17
+ type: 'varchar(255)',
18
18
  },
19
19
  {
20
20
  name: 'stop_sequence',
21
21
  type: 'integer',
22
22
  min: 0,
23
- index: true
24
- }
25
- ]
23
+ index: true,
24
+ },
25
+ ],
26
26
  };
27
27
 
28
28
  export default model;
@@ -5,134 +5,134 @@ const model = {
5
5
  {
6
6
  name: 'id',
7
7
  type: 'integer',
8
- primary: true
8
+ primary: true,
9
9
  },
10
10
  {
11
11
  name: 'timetable_id',
12
- type: 'varchar(255)'
12
+ type: 'varchar(255)',
13
13
  },
14
14
  {
15
15
  name: 'route_id',
16
- type: 'varchar(255)'
16
+ type: 'varchar(255)',
17
17
  },
18
18
  {
19
19
  name: 'direction_id',
20
20
  type: 'integer',
21
21
  min: 0,
22
- max: 1
22
+ max: 1,
23
23
  },
24
24
  {
25
25
  name: 'start_date',
26
- type: 'integer'
26
+ type: 'integer',
27
27
  },
28
28
  {
29
29
  name: 'end_date',
30
- type: 'integer'
30
+ type: 'integer',
31
31
  },
32
32
  {
33
33
  name: 'monday',
34
34
  type: 'integer',
35
35
  required: true,
36
36
  min: 0,
37
- max: 1
37
+ max: 1,
38
38
  },
39
39
  {
40
40
  name: 'tuesday',
41
41
  type: 'integer',
42
42
  required: true,
43
43
  min: 0,
44
- max: 1
44
+ max: 1,
45
45
  },
46
46
  {
47
47
  name: 'wednesday',
48
48
  type: 'integer',
49
49
  required: true,
50
50
  min: 0,
51
- max: 1
51
+ max: 1,
52
52
  },
53
53
  {
54
54
  name: 'thursday',
55
55
  type: 'integer',
56
56
  required: true,
57
57
  min: 0,
58
- max: 1
58
+ max: 1,
59
59
  },
60
60
  {
61
61
  name: 'friday',
62
62
  type: 'integer',
63
63
  required: true,
64
64
  min: 0,
65
- max: 1
65
+ max: 1,
66
66
  },
67
67
  {
68
68
  name: 'saturday',
69
69
  type: 'integer',
70
70
  required: true,
71
71
  min: 0,
72
- max: 1
72
+ max: 1,
73
73
  },
74
74
  {
75
75
  name: 'sunday',
76
76
  type: 'integer',
77
77
  required: true,
78
78
  min: 0,
79
- max: 1
79
+ max: 1,
80
80
  },
81
81
  {
82
82
  name: 'start_time',
83
- type: 'varchar(255)'
83
+ type: 'varchar(255)',
84
84
  },
85
85
  {
86
86
  name: 'start_timestamp',
87
- type: 'integer'
87
+ type: 'integer',
88
88
  },
89
89
  {
90
90
  name: 'end_time',
91
- type: 'varchar(255)'
91
+ type: 'varchar(255)',
92
92
  },
93
93
  {
94
94
  name: 'end_timestamp',
95
- type: 'integer'
95
+ type: 'integer',
96
96
  },
97
97
  {
98
98
  name: 'timetable_label',
99
- type: 'varchar(255)'
99
+ type: 'varchar(255)',
100
100
  },
101
101
  {
102
102
  name: 'service_notes',
103
- type: 'varchar(255)'
103
+ type: 'varchar(255)',
104
104
  },
105
105
  {
106
106
  name: 'orientation',
107
- type: 'varchar(255)'
107
+ type: 'varchar(255)',
108
108
  },
109
109
  {
110
110
  name: 'timetable_page_id',
111
- type: 'varchar(255)'
111
+ type: 'varchar(255)',
112
112
  },
113
113
  {
114
114
  name: 'timetable_sequence',
115
115
  type: 'integer',
116
116
  min: 0,
117
- index: true
117
+ index: true,
118
118
  },
119
119
  {
120
120
  name: 'direction_name',
121
- type: 'varchar(255)'
121
+ type: 'varchar(255)',
122
122
  },
123
123
  {
124
124
  name: 'include_exceptions',
125
125
  type: 'integer',
126
126
  min: 0,
127
- max: 1
127
+ max: 1,
128
128
  },
129
129
  {
130
130
  name: 'show_trip_continuation',
131
131
  type: 'integer',
132
132
  min: 0,
133
- max: 1
134
- }
135
- ]
133
+ max: 1,
134
+ },
135
+ ],
136
136
  };
137
137
 
138
138
  export default model;