gtfs 4.11.0 → 4.11.2

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 (67) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +12 -19
  3. package/lib/export.js +42 -32
  4. package/lib/geojson-utils.js +9 -0
  5. package/lib/gtfs/locations.js +32 -0
  6. package/lib/gtfs.js +4 -0
  7. package/lib/import.js +55 -27
  8. package/models/gtfs/agency.js +9 -8
  9. package/models/gtfs/areas.js +3 -2
  10. package/models/gtfs/attributions.js +9 -8
  11. package/models/gtfs/booking-rules.js +11 -10
  12. package/models/gtfs/calendar-dates.js +3 -2
  13. package/models/gtfs/calendar.js +2 -1
  14. package/models/gtfs/fare-attributes.js +4 -3
  15. package/models/gtfs/fare-leg-rules.js +8 -7
  16. package/models/gtfs/fare-media.js +3 -2
  17. package/models/gtfs/fare-products.js +5 -4
  18. package/models/gtfs/fare-rules.js +6 -5
  19. package/models/gtfs/fare-transfer-rules.js +5 -4
  20. package/models/gtfs/feed-info.js +8 -7
  21. package/models/gtfs/frequencies.js +4 -3
  22. package/models/gtfs/levels.js +3 -2
  23. package/models/gtfs/location-group-stops.js +3 -2
  24. package/models/gtfs/location-groups.js +3 -2
  25. package/models/gtfs/locations.js +12 -0
  26. package/models/gtfs/networks.js +3 -2
  27. package/models/gtfs/pathways.js +6 -5
  28. package/models/gtfs/route-networks.js +3 -2
  29. package/models/gtfs/routes.js +10 -9
  30. package/models/gtfs/shapes.js +2 -1
  31. package/models/gtfs/stop-areas.js +3 -2
  32. package/models/gtfs/stop-times.js +11 -10
  33. package/models/gtfs/stops.js +12 -11
  34. package/models/gtfs/timeframes.js +5 -4
  35. package/models/gtfs/transfers.js +7 -6
  36. package/models/gtfs/translations.js +8 -7
  37. package/models/gtfs/trips.js +8 -7
  38. package/models/gtfs-plus/calendar-attributes.js +3 -2
  39. package/models/gtfs-plus/directions.js +3 -2
  40. package/models/gtfs-plus/route-attributes.js +2 -1
  41. package/models/gtfs-plus/stop-attributes.js +5 -4
  42. package/models/gtfs-realtime/service-alert-targets.js +3 -3
  43. package/models/gtfs-realtime/service-alerts.js +5 -5
  44. package/models/gtfs-realtime/stop-time-updates.js +7 -7
  45. package/models/gtfs-realtime/trip-updates.js +8 -8
  46. package/models/gtfs-realtime/vehicle-positions.js +12 -12
  47. package/models/gtfs-ride/board-alight.js +5 -4
  48. package/models/gtfs-ride/ride-feed-info.js +3 -2
  49. package/models/gtfs-ride/rider-trip.js +9 -8
  50. package/models/gtfs-ride/ridership.js +8 -7
  51. package/models/gtfs-ride/trip-capacity.js +4 -3
  52. package/models/models.js +2 -0
  53. package/models/non-standard/timetable-notes-references.js +6 -5
  54. package/models/non-standard/timetable-notes.js +4 -3
  55. package/models/non-standard/timetable-pages.js +4 -3
  56. package/models/non-standard/timetable-stop-order.js +3 -2
  57. package/models/non-standard/timetables.js +10 -9
  58. package/models/non-standard/trips-dated-vehicle-journey.js +4 -3
  59. package/models/ods/deadhead-times.js +6 -5
  60. package/models/ods/deadheads.js +9 -8
  61. package/models/ods/ops-locations.js +5 -4
  62. package/models/ods/run-events.js +7 -6
  63. package/models/ods/runs-pieces.js +5 -4
  64. package/package.json +4 -5
  65. package/test/mocha/export-gtfs.js +5 -2
  66. package/test/mocha/get-locations.js +71 -0
  67. package/test/mocha/import-gtfs.js +4 -1
@@ -1,30 +1,31 @@
1
1
  const model = {
2
2
  filenameBase: 'stops',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'stop_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  required: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'stop_code',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  },
15
16
  {
16
17
  name: 'stop_name',
17
- type: 'varchar(255)',
18
+ type: 'text',
18
19
  nocase: true,
19
20
  },
20
21
  {
21
22
  name: 'tts_stop_name',
22
- type: 'varchar(255)',
23
+ type: 'text',
23
24
  nocase: true,
24
25
  },
25
26
  {
26
27
  name: 'stop_desc',
27
- type: 'varchar(255)',
28
+ type: 'text',
28
29
  nocase: true,
29
30
  },
30
31
  {
@@ -41,12 +42,12 @@ const model = {
41
42
  },
42
43
  {
43
44
  name: 'zone_id',
44
- type: 'varchar(255)',
45
+ type: 'text',
45
46
  prefix: true,
46
47
  },
47
48
  {
48
49
  name: 'stop_url',
49
- type: 'varchar(2047)',
50
+ type: 'text',
50
51
  },
51
52
  {
52
53
  name: 'location_type',
@@ -56,12 +57,12 @@ const model = {
56
57
  },
57
58
  {
58
59
  name: 'parent_station',
59
- type: 'varchar(255)',
60
+ type: 'text',
60
61
  index: true,
61
62
  },
62
63
  {
63
64
  name: 'stop_timezone',
64
- type: 'varchar(255)',
65
+ type: 'text',
65
66
  },
66
67
  {
67
68
  name: 'wheelchair_boarding',
@@ -71,12 +72,12 @@ const model = {
71
72
  },
72
73
  {
73
74
  name: 'level_id',
74
- type: 'varchar(255)',
75
+ type: 'text',
75
76
  prefix: true,
76
77
  },
77
78
  {
78
79
  name: 'platform_code',
79
- type: 'varchar(255)',
80
+ type: 'text',
80
81
  },
81
82
  ],
82
83
  };
@@ -1,23 +1,24 @@
1
1
  const model = {
2
2
  filenameBase: 'timeframes',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'timeframe_group_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'start_time',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  },
14
15
  {
15
16
  name: 'end_time',
16
- type: 'varchar(255)',
17
+ type: 'text',
17
18
  },
18
19
  {
19
20
  name: 'service_id',
20
- type: 'varchar(255)',
21
+ type: 'text',
21
22
  required: true,
22
23
  index: true,
23
24
  prefix: true,
@@ -1,39 +1,40 @@
1
1
  const model = {
2
2
  filenameBase: 'transfers',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'from_stop_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'to_stop_id',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  primary: true,
14
15
  prefix: true,
15
16
  },
16
17
  {
17
18
  name: 'from_route_id',
18
- type: 'varchar(255)',
19
+ type: 'text',
19
20
  primary: true,
20
21
  prefix: true,
21
22
  },
22
23
  {
23
24
  name: 'to_route_id',
24
- type: 'varchar(255)',
25
+ type: 'text',
25
26
  primary: true,
26
27
  prefix: true,
27
28
  },
28
29
  {
29
30
  name: 'from_trip_id',
30
- type: 'varchar(255)',
31
+ type: 'text',
31
32
  primary: true,
32
33
  prefix: true,
33
34
  },
34
35
  {
35
36
  name: 'to_trip_id',
36
- type: 'varchar(255)',
37
+ type: 'text',
37
38
  primary: true,
38
39
  prefix: true,
39
40
  },
@@ -1,44 +1,45 @@
1
1
  const model = {
2
2
  filenameBase: 'translations',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'table_name',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  required: true,
9
10
  },
10
11
  {
11
12
  name: 'field_name',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  primary: true,
14
15
  required: true,
15
16
  },
16
17
  {
17
18
  name: 'language',
18
- type: 'varchar(255)',
19
+ type: 'text',
19
20
  primary: true,
20
21
  required: true,
21
22
  },
22
23
  {
23
24
  name: 'translation',
24
- type: 'varchar(2047)',
25
+ type: 'text',
25
26
  required: true,
26
27
  },
27
28
  {
28
29
  name: 'record_id',
29
- type: 'varchar(255)',
30
+ type: 'text',
30
31
  primary: true,
31
32
  prefix: true,
32
33
  },
33
34
  {
34
35
  name: 'record_sub_id',
35
- type: 'varchar(255)',
36
+ type: 'text',
36
37
  primary: true,
37
38
  prefix: true,
38
39
  },
39
40
  {
40
41
  name: 'field_value',
41
- type: 'varchar(2047)',
42
+ type: 'text',
42
43
  primary: true,
43
44
  },
44
45
  ],
@@ -1,35 +1,36 @@
1
1
  const model = {
2
2
  filenameBase: 'trips',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'route_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  index: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'service_id',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  required: true,
15
16
  index: true,
16
17
  prefix: true,
17
18
  },
18
19
  {
19
20
  name: 'trip_id',
20
- type: 'varchar(255)',
21
+ type: 'text',
21
22
  primary: true,
22
23
  required: true,
23
24
  prefix: true,
24
25
  },
25
26
  {
26
27
  name: 'trip_headsign',
27
- type: 'varchar(255)',
28
+ type: 'text',
28
29
  nocase: true,
29
30
  },
30
31
  {
31
32
  name: 'trip_short_name',
32
- type: 'varchar(255)',
33
+ type: 'text',
33
34
  nocase: true,
34
35
  },
35
36
  {
@@ -41,13 +42,13 @@ const model = {
41
42
  },
42
43
  {
43
44
  name: 'block_id',
44
- type: 'varchar(255)',
45
+ type: 'text',
45
46
  index: true,
46
47
  prefix: true,
47
48
  },
48
49
  {
49
50
  name: 'shape_id',
50
- type: 'varchar(255)',
51
+ type: 'text',
51
52
  index: true,
52
53
  prefix: true,
53
54
  },
@@ -1,17 +1,18 @@
1
1
  const model = {
2
2
  filenameBase: 'calendar_attributes',
3
+ filenameExtension: 'txt',
3
4
  nonstandard: true,
4
5
  extension: 'gtfs-plus',
5
6
  schema: [
6
7
  {
7
8
  name: 'service_id',
8
- type: 'varchar(255)',
9
+ type: 'text',
9
10
  primary: true,
10
11
  prefix: true,
11
12
  },
12
13
  {
13
14
  name: 'service_description',
14
- type: 'varchar(255)',
15
+ type: 'text',
15
16
  required: true,
16
17
  nocase: true,
17
18
  },
@@ -1,11 +1,12 @@
1
1
  const model = {
2
2
  filenameBase: 'directions',
3
+ filenameExtension: 'txt',
3
4
  nonstandard: true,
4
5
  extension: 'gtfs-plus',
5
6
  schema: [
6
7
  {
7
8
  name: 'route_id',
8
- type: 'varchar(255)',
9
+ type: 'text',
9
10
  required: true,
10
11
  primary: true,
11
12
  prefix: true,
@@ -19,7 +20,7 @@ const model = {
19
20
  },
20
21
  {
21
22
  name: 'direction',
22
- type: 'varchar(255)',
23
+ type: 'text',
23
24
  required: true,
24
25
  },
25
26
  ],
@@ -1,11 +1,12 @@
1
1
  const model = {
2
2
  filenameBase: 'route_attributes',
3
+ filenameExtension: 'txt',
3
4
  nonstandard: true,
4
5
  extension: 'gtfs-plus',
5
6
  schema: [
6
7
  {
7
8
  name: 'route_id',
8
- type: 'varchar(255)',
9
+ type: 'text',
9
10
  primary: true,
10
11
  prefix: true,
11
12
  },
@@ -1,11 +1,12 @@
1
1
  const model = {
2
2
  filenameBase: 'stop_attributes',
3
+ filenameExtension: 'txt',
3
4
  nonstandard: true,
4
5
  extension: 'gtfs-plus',
5
6
  schema: [
6
7
  {
7
8
  name: 'stop_id',
8
- type: 'varchar(255)',
9
+ type: 'text',
9
10
  required: true,
10
11
  primary: true,
11
12
  prefix: true,
@@ -17,15 +18,15 @@ const model = {
17
18
  },
18
19
  {
19
20
  name: 'cardinal_direction',
20
- type: 'varchar(255)',
21
+ type: 'text',
21
22
  },
22
23
  {
23
24
  name: 'relative_position',
24
- type: 'varchar(255)',
25
+ type: 'text',
25
26
  },
26
27
  {
27
28
  name: 'stop_city',
28
- type: 'varchar(255)',
29
+ type: 'text',
29
30
  nocase: true,
30
31
  },
31
32
  ],
@@ -4,21 +4,21 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'alert_id',
7
- type: 'varchar(255)',
7
+ type: 'text',
8
8
  required: true,
9
9
  primary: true,
10
10
  source: 'parent.id',
11
11
  },
12
12
  {
13
13
  name: 'stop_id',
14
- type: 'varchar(255)',
14
+ type: 'text',
15
15
  index: true,
16
16
  source: 'stopId',
17
17
  default: null,
18
18
  },
19
19
  {
20
20
  name: 'route_id',
21
- type: 'varchar(255)',
21
+ type: 'text',
22
22
  index: true,
23
23
  source: 'routeId',
24
24
  default: null,
@@ -4,7 +4,7 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'id',
7
- type: 'varchar(255)',
7
+ type: 'text',
8
8
  required: true,
9
9
  primary: true,
10
10
  index: true,
@@ -20,28 +20,28 @@ const model = {
20
20
  },
21
21
  {
22
22
  name: 'start_time',
23
- type: 'varchar(255)',
23
+ type: 'text',
24
24
  required: true,
25
25
  source: 'alert.activePeriod[0].start',
26
26
  default: '',
27
27
  },
28
28
  {
29
29
  name: 'end_time',
30
- type: 'varchar(255)',
30
+ type: 'text',
31
31
  required: true,
32
32
  source: 'alert.activePeriod[0].end',
33
33
  default: '',
34
34
  },
35
35
  {
36
36
  name: 'headline',
37
- type: 'varchar(2048)',
37
+ type: 'text',
38
38
  required: true,
39
39
  source: 'alert.headerText.translation[0].text',
40
40
  default: '',
41
41
  },
42
42
  {
43
43
  name: 'description',
44
- type: 'varchar(4096)',
44
+ type: 'text',
45
45
  required: true,
46
46
  source: 'alert.descriptionText.translation[0].text',
47
47
  default: '',
@@ -4,14 +4,14 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'trip_id',
7
- type: 'varchar(255)',
7
+ type: 'text',
8
8
  index: true,
9
9
  source: 'parent.tripUpdate.trip.tripId',
10
10
  default: null,
11
11
  },
12
12
  {
13
13
  name: 'trip_start_time',
14
- type: 'varchar(255)',
14
+ type: 'text',
15
15
  source: 'parent.tripUpdate.trip.startTime',
16
16
  default: null,
17
17
  },
@@ -23,14 +23,14 @@ const model = {
23
23
  },
24
24
  {
25
25
  name: 'route_id',
26
- type: 'varchar(255)',
26
+ type: 'text',
27
27
  index: true,
28
28
  source: 'parent.tripUpdate.trip.routeId',
29
29
  default: null,
30
30
  },
31
31
  {
32
32
  name: 'stop_id',
33
- type: 'varchar(255)',
33
+ type: 'text',
34
34
  index: true,
35
35
  source: 'stopId',
36
36
  default: null,
@@ -55,19 +55,19 @@ const model = {
55
55
  },
56
56
  {
57
57
  name: 'departure_timestamp',
58
- type: 'varchar(255)',
58
+ type: 'text',
59
59
  source: 'departure.time',
60
60
  default: null,
61
61
  },
62
62
  {
63
63
  name: 'arrival_timestamp',
64
- type: 'varchar(255)',
64
+ type: 'text',
65
65
  source: 'arrival.time',
66
66
  default: null,
67
67
  },
68
68
  {
69
69
  name: 'schedule_relationship',
70
- type: 'varchar(255)',
70
+ type: 'text',
71
71
  source: 'scheduleRelationship',
72
72
  default: null,
73
73
  },
@@ -4,7 +4,7 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'update_id',
7
- type: 'varchar(255)',
7
+ type: 'text',
8
8
  required: true,
9
9
  primary: true,
10
10
  index: true,
@@ -12,21 +12,21 @@ const model = {
12
12
  },
13
13
  {
14
14
  name: 'vehicle_id',
15
- type: 'varchar(255)',
15
+ type: 'text',
16
16
  index: true,
17
17
  source: 'tripUpdate.vehicle.id',
18
18
  default: null,
19
19
  },
20
20
  {
21
21
  name: 'trip_id',
22
- type: 'varchar(255)',
22
+ type: 'text',
23
23
  index: true,
24
24
  source: 'tripUpdate.trip.tripId',
25
25
  default: null,
26
26
  },
27
27
  {
28
28
  name: 'trip_start_time',
29
- type: 'varchar(255)',
29
+ type: 'text',
30
30
  source: 'tripUpdate.trip.startTime',
31
31
  default: null,
32
32
  },
@@ -38,26 +38,26 @@ const model = {
38
38
  },
39
39
  {
40
40
  name: 'route_id',
41
- type: 'varchar(255)',
41
+ type: 'text',
42
42
  index: true,
43
43
  source: 'tripUpdate.trip.routeId',
44
44
  default: null,
45
45
  },
46
46
  {
47
47
  name: 'start_date',
48
- type: 'varchar(255)',
48
+ type: 'text',
49
49
  source: 'tripUpdate.trip.startDate',
50
50
  default: null,
51
51
  },
52
52
  {
53
53
  name: 'timestamp',
54
- type: 'varchar(255)',
54
+ type: 'text',
55
55
  source: 'tripUpdate.timestamp',
56
56
  default: null,
57
57
  },
58
58
  {
59
59
  name: 'schedule_relationship',
60
- type: 'varchar(255)',
60
+ type: 'text',
61
61
  source: 'tripUpdate.trip.scheduleRelationship',
62
62
  default: null,
63
63
  },
@@ -4,7 +4,7 @@ const model = {
4
4
  schema: [
5
5
  {
6
6
  name: 'update_id',
7
- type: 'varchar(255)',
7
+ type: 'text',
8
8
  required: true,
9
9
  primary: true,
10
10
  index: true,
@@ -47,34 +47,34 @@ const model = {
47
47
  },
48
48
  {
49
49
  name: 'trip_id',
50
- type: 'varchar(255)',
50
+ type: 'text',
51
51
  index: true,
52
52
  source: 'vehicle.trip.tripId',
53
53
  default: null,
54
54
  },
55
55
  {
56
56
  name: 'trip_start_date',
57
- type: 'varchar(255)',
57
+ type: 'text',
58
58
  index: true,
59
59
  source: 'vehicle.trip.startDate',
60
60
  default: null,
61
61
  },
62
62
  {
63
63
  name: 'trip_start_time',
64
- type: 'varchar(255)',
64
+ type: 'text',
65
65
  index: true,
66
66
  source: 'vehicle.trip.startTime',
67
67
  default: null,
68
68
  },
69
69
  {
70
70
  name: 'congestion_level',
71
- type: 'varchar(255)',
71
+ type: 'text',
72
72
  source: 'vehicle.congestionLevel',
73
73
  default: null,
74
74
  },
75
75
  {
76
76
  name: 'occupancy_status',
77
- type: 'varchar(255)',
77
+ type: 'text',
78
78
  source: 'vehicle.occupancyStatus',
79
79
  default: null,
80
80
  },
@@ -86,38 +86,38 @@ const model = {
86
86
  },
87
87
  {
88
88
  name: 'vehicle_stop_status',
89
- type: 'varchar(255)',
89
+ type: 'text',
90
90
  source: 'vehicle.vehicleStopStatus',
91
91
  default: null,
92
92
  },
93
93
  {
94
94
  name: 'vehicle_id',
95
- type: 'varchar(255)',
95
+ type: 'text',
96
96
  index: true,
97
97
  source: 'vehicle.vehicle.id',
98
98
  default: null,
99
99
  },
100
100
  {
101
101
  name: 'vehicle_label',
102
- type: 'varchar(255)',
102
+ type: 'text',
103
103
  source: 'vehicle.vehicle.label',
104
104
  default: null,
105
105
  },
106
106
  {
107
107
  name: 'vehicle_license_plate',
108
- type: 'varchar(255)',
108
+ type: 'text',
109
109
  source: 'vehicle.vehicle.licensePlate',
110
110
  default: null,
111
111
  },
112
112
  {
113
113
  name: 'vehicle_wheelchair_accessible',
114
- type: 'varchar(255)',
114
+ type: 'text',
115
115
  source: 'vehicle.vehicle.wheelchairAccessible',
116
116
  default: null,
117
117
  },
118
118
  {
119
119
  name: 'timestamp',
120
- type: 'varchar(255)',
120
+ type: 'text',
121
121
  source: 'vehicle.timestamp',
122
122
  default: null,
123
123
  },
@@ -1,18 +1,19 @@
1
1
  const model = {
2
2
  filenameBase: 'board_alight',
3
+ filenameExtension: 'txt',
3
4
  nonstandard: true,
4
5
  extension: 'gtfs-ride',
5
6
  schema: [
6
7
  {
7
8
  name: 'trip_id',
8
- type: 'varchar(255)',
9
+ type: 'text',
9
10
  required: true,
10
11
  index: true,
11
12
  prefix: true,
12
13
  },
13
14
  {
14
15
  name: 'stop_id',
15
- type: 'varchar(255)',
16
+ type: 'text',
16
17
  required: true,
17
18
  index: true,
18
19
  prefix: true,
@@ -103,7 +104,7 @@ const model = {
103
104
  },
104
105
  {
105
106
  name: 'service_arrival_time',
106
- type: 'varchar(255)',
107
+ type: 'text',
107
108
  },
108
109
  {
109
110
  name: 'service_arrival_timestamp',
@@ -112,7 +113,7 @@ const model = {
112
113
  },
113
114
  {
114
115
  name: 'service_departure_time',
115
- type: 'varchar(255)',
116
+ type: 'text',
116
117
  },
117
118
  {
118
119
  name: 'service_departure_timestamp',