gtfs 4.1.1 → 4.3.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 (56) hide show
  1. package/.github/workflows/nodejs.yml +3 -3
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +64 -15
  4. package/lib/db.js +14 -15
  5. package/lib/file-utils.js +7 -9
  6. package/lib/gtfs/shapes.js +8 -0
  7. package/lib/gtfs/stops.js +7 -1
  8. package/lib/import.js +28 -8
  9. package/models/gtfs/agency.js +2 -5
  10. package/models/gtfs/areas.js +1 -0
  11. package/models/gtfs/attributions.js +6 -1
  12. package/models/gtfs/calendar-dates.js +3 -7
  13. package/models/gtfs/calendar.js +1 -0
  14. package/models/gtfs/fare-attributes.js +2 -0
  15. package/models/gtfs/fare-leg-rules.js +9 -0
  16. package/models/gtfs/fare-products.js +7 -0
  17. package/models/gtfs/fare-rules.js +5 -5
  18. package/models/gtfs/fare-transfer-rules.js +10 -0
  19. package/models/gtfs/feed-info.js +0 -5
  20. package/models/gtfs/frequencies.js +3 -6
  21. package/models/gtfs/levels.js +1 -0
  22. package/models/gtfs/pathways.js +3 -0
  23. package/models/gtfs/routes.js +3 -0
  24. package/models/gtfs/shapes.js +3 -6
  25. package/models/gtfs/stop-areas.js +2 -0
  26. package/models/gtfs/stop-times.js +4 -7
  27. package/models/gtfs/stops.js +3 -0
  28. package/models/gtfs/transfers.js +13 -9
  29. package/models/gtfs/translations.js +8 -5
  30. package/models/gtfs/trips.js +5 -0
  31. package/models/gtfs-plus/calendar-attributes.js +1 -0
  32. package/models/gtfs-plus/directions.js +3 -7
  33. package/models/gtfs-plus/route-attributes.js +1 -0
  34. package/models/gtfs-plus/stop-attributes.js +2 -6
  35. package/models/gtfs-realtime/service-alert-targets.js +0 -1
  36. package/models/gtfs-ride/board-alight.js +2 -0
  37. package/models/gtfs-ride/rider-trip.js +5 -0
  38. package/models/gtfs-ride/ridership.js +5 -0
  39. package/models/gtfs-ride/trip-capacity.js +2 -0
  40. package/models/non-standard/timetable-notes-references.js +5 -0
  41. package/models/non-standard/timetable-notes.js +1 -0
  42. package/models/non-standard/timetable-pages.js +1 -0
  43. package/models/non-standard/timetable-stop-order.js +3 -0
  44. package/models/non-standard/timetables.js +3 -0
  45. package/models/non-standard/trips-dated-vehicle-journey.js +1 -0
  46. package/models/ods/deadhead-times.js +4 -0
  47. package/models/ods/deadheads.js +8 -0
  48. package/models/ods/ops-locations.js +1 -0
  49. package/models/ods/run-events.js +4 -0
  50. package/package.json +7 -7
  51. package/test/mocha/advanced-query.js +7 -7
  52. package/test/mocha/export-gtfs.js +6 -1
  53. package/test/mocha/get-agencies.js +0 -2
  54. package/test/mocha/get-calendar-dates.js +0 -4
  55. package/test/mocha/import-gtfs.js +32 -5
  56. package/test/mocha/open-db.js +0 -1
@@ -1,11 +1,6 @@
1
1
  const model = {
2
2
  filenameBase: 'feed_info',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'feed_publisher_name',
11
6
  type: 'varchar(255)',
@@ -1,21 +1,18 @@
1
1
  const model = {
2
2
  filenameBase: 'frequencies',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'trip_id',
11
6
  type: 'varchar(255)',
12
7
  required: true,
13
- index: true,
8
+ primary: true,
9
+ prefix: true,
14
10
  },
15
11
  {
16
12
  name: 'start_time',
17
13
  type: 'varchar(255)',
18
14
  required: true,
15
+ primary: true,
19
16
  },
20
17
  {
21
18
  name: 'start_timestamp',
@@ -6,6 +6,7 @@ const model = {
6
6
  type: 'varchar(255)',
7
7
  primary: true,
8
8
  required: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'level_index',
@@ -6,16 +6,19 @@ const model = {
6
6
  type: 'varchar(255)',
7
7
  primary: true,
8
8
  required: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'from_stop_id',
12
13
  type: 'varchar(255)',
13
14
  required: true,
15
+ prefix: true,
14
16
  },
15
17
  {
16
18
  name: 'to_stop_id',
17
19
  type: 'varchar(255)',
18
20
  required: true,
21
+ prefix: true,
19
22
  },
20
23
  {
21
24
  name: 'pathway_mode',
@@ -6,10 +6,12 @@ const model = {
6
6
  type: 'varchar(255)',
7
7
  primary: true,
8
8
  required: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'agency_id',
12
13
  type: 'varchar(255)',
14
+ prefix: true,
13
15
  },
14
16
  {
15
17
  name: 'route_short_name',
@@ -68,6 +70,7 @@ const model = {
68
70
  {
69
71
  name: 'network_id',
70
72
  type: 'varchar(255)',
73
+ prefix: true,
71
74
  },
72
75
  ],
73
76
  };
@@ -1,16 +1,12 @@
1
1
  const model = {
2
2
  filenameBase: 'shapes',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'shape_id',
11
6
  type: 'varchar(255)',
12
7
  required: true,
13
- index: true,
8
+ primary: true,
9
+ prefix: true,
14
10
  },
15
11
  {
16
12
  name: 'shape_pt_lat',
@@ -30,6 +26,7 @@ const model = {
30
26
  name: 'shape_pt_sequence',
31
27
  type: 'integer',
32
28
  required: true,
29
+ primary: true,
33
30
  min: 0,
34
31
  },
35
32
  {
@@ -5,11 +5,13 @@ const model = {
5
5
  name: 'area_id',
6
6
  type: 'varchar(255)',
7
7
  required: true,
8
+ prefix: true,
8
9
  },
9
10
  {
10
11
  name: 'stop_id',
11
12
  type: 'varchar(255)',
12
13
  required: true,
14
+ prefix: true,
13
15
  },
14
16
  ],
15
17
  };
@@ -1,16 +1,12 @@
1
1
  const model = {
2
2
  filenameBase: 'stop_times',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'trip_id',
11
6
  type: 'varchar(255)',
12
7
  required: true,
13
- index: true,
8
+ primary: true,
9
+ prefix: true,
14
10
  },
15
11
  {
16
12
  name: 'arrival_time',
@@ -34,13 +30,14 @@ const model = {
34
30
  name: 'stop_id',
35
31
  type: 'varchar(255)',
36
32
  required: true,
33
+ prefix: true,
37
34
  },
38
35
  {
39
36
  name: 'stop_sequence',
40
37
  type: 'integer',
41
38
  required: true,
39
+ primary: true,
42
40
  min: 0,
43
- index: true,
44
41
  },
45
42
  {
46
43
  name: 'stop_headsign',
@@ -6,6 +6,7 @@ const model = {
6
6
  type: 'varchar(255)',
7
7
  primary: true,
8
8
  required: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'stop_code',
@@ -41,6 +42,7 @@ const model = {
41
42
  {
42
43
  name: 'zone_id',
43
44
  type: 'varchar(255)',
45
+ prefix: true,
44
46
  },
45
47
  {
46
48
  name: 'stop_url',
@@ -70,6 +72,7 @@ const model = {
70
72
  {
71
73
  name: 'level_id',
72
74
  type: 'varchar(255)',
75
+ prefix: true,
73
76
  },
74
77
  {
75
78
  name: 'platform_code',
@@ -1,44 +1,48 @@
1
1
  const model = {
2
2
  filenameBase: 'transfers',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'from_stop_id',
11
6
  type: 'varchar(255)',
12
- index: true,
7
+ primary: true,
8
+ prefix: true,
13
9
  },
14
10
  {
15
11
  name: 'to_stop_id',
16
12
  type: 'varchar(255)',
17
- index: true,
13
+ primary: true,
14
+ prefix: true,
18
15
  },
19
16
  {
20
17
  name: 'from_route_id',
21
18
  type: 'varchar(255)',
19
+ primary: true,
20
+ prefix: true,
22
21
  },
23
22
  {
24
23
  name: 'to_route_id',
25
24
  type: 'varchar(255)',
25
+ primary: true,
26
+ prefix: true,
26
27
  },
27
28
  {
28
29
  name: 'from_trip_id',
29
30
  type: 'varchar(255)',
31
+ primary: true,
32
+ prefix: true,
30
33
  },
31
34
  {
32
35
  name: 'to_trip_id',
33
36
  type: 'varchar(255)',
37
+ primary: true,
38
+ prefix: true,
34
39
  },
35
40
  {
36
41
  name: 'transfer_type',
37
42
  type: 'integer',
38
43
  min: 0,
39
44
  max: 5,
40
- required: false,
41
- default: 0
45
+ default: 0,
42
46
  },
43
47
  {
44
48
  name: 'min_transfer_time',
@@ -1,24 +1,22 @@
1
1
  const model = {
2
2
  filenameBase: 'translations',
3
3
  schema: [
4
- {
5
- name: 'id',
6
- type: 'integer',
7
- primary: true,
8
- },
9
4
  {
10
5
  name: 'table_name',
11
6
  type: 'varchar(255)',
7
+ primary: true,
12
8
  required: true,
13
9
  },
14
10
  {
15
11
  name: 'field_name',
16
12
  type: 'varchar(255)',
13
+ primary: true,
17
14
  required: true,
18
15
  },
19
16
  {
20
17
  name: 'language',
21
18
  type: 'varchar(255)',
19
+ primary: true,
22
20
  required: true,
23
21
  },
24
22
  {
@@ -29,14 +27,19 @@ const model = {
29
27
  {
30
28
  name: 'record_id',
31
29
  type: 'varchar(255)',
30
+ primary: true,
31
+ prefix: true,
32
32
  },
33
33
  {
34
34
  name: 'record_sub_id',
35
35
  type: 'varchar(255)',
36
+ primary: true,
37
+ prefix: true,
36
38
  },
37
39
  {
38
40
  name: 'field_value',
39
41
  type: 'varchar(2047)',
42
+ primary: true,
40
43
  },
41
44
  ],
42
45
  };
@@ -6,18 +6,21 @@ const model = {
6
6
  type: 'varchar(255)',
7
7
  required: true,
8
8
  index: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'service_id',
12
13
  type: 'varchar(255)',
13
14
  required: true,
14
15
  index: true,
16
+ prefix: true,
15
17
  },
16
18
  {
17
19
  name: 'trip_id',
18
20
  type: 'varchar(255)',
19
21
  primary: true,
20
22
  required: true,
23
+ prefix: true,
21
24
  },
22
25
  {
23
26
  name: 'trip_headsign',
@@ -40,11 +43,13 @@ const model = {
40
43
  name: 'block_id',
41
44
  type: 'varchar(255)',
42
45
  index: true,
46
+ prefix: true,
43
47
  },
44
48
  {
45
49
  name: 'shape_id',
46
50
  type: 'varchar(255)',
47
51
  index: true,
52
+ prefix: true,
48
53
  },
49
54
  {
50
55
  name: 'wheelchair_accessible',
@@ -7,6 +7,7 @@ const model = {
7
7
  name: 'service_id',
8
8
  type: 'varchar(255)',
9
9
  primary: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'service_description',
@@ -3,23 +3,19 @@ const model = {
3
3
  nonstandard: true,
4
4
  extension: 'gtfs-plus',
5
5
  schema: [
6
- {
7
- name: 'id',
8
- type: 'integer',
9
- primary: true,
10
- },
11
6
  {
12
7
  name: 'route_id',
13
8
  type: 'varchar(255)',
14
9
  required: true,
15
- index: true,
10
+ primary: true,
11
+ prefix: true,
16
12
  },
17
13
  {
18
14
  name: 'direction_id',
19
15
  type: 'integer',
20
16
  min: 0,
21
17
  max: 1,
22
- index: true,
18
+ primary: true,
23
19
  },
24
20
  {
25
21
  name: 'direction',
@@ -7,6 +7,7 @@ const model = {
7
7
  name: 'route_id',
8
8
  type: 'varchar(255)',
9
9
  primary: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'category',
@@ -3,16 +3,12 @@ const model = {
3
3
  nonstandard: true,
4
4
  extension: 'gtfs-plus',
5
5
  schema: [
6
- {
7
- name: 'id',
8
- type: 'integer',
9
- primary: true,
10
- },
11
6
  {
12
7
  name: 'stop_id',
13
8
  type: 'varchar(255)',
14
9
  required: true,
15
- index: true,
10
+ primary: true,
11
+ prefix: true,
16
12
  },
17
13
  {
18
14
  name: 'accessibility_id',
@@ -7,7 +7,6 @@ const model = {
7
7
  type: 'varchar(255)',
8
8
  required: true,
9
9
  primary: true,
10
- index: true,
11
10
  source: 'parent.id',
12
11
  },
13
12
  {
@@ -8,12 +8,14 @@ const model = {
8
8
  type: 'varchar(255)',
9
9
  required: true,
10
10
  index: true,
11
+ prefix: true,
11
12
  },
12
13
  {
13
14
  name: 'stop_id',
14
15
  type: 'varchar(255)',
15
16
  required: true,
16
17
  index: true,
18
+ prefix: true,
17
19
  },
18
20
  {
19
21
  name: 'stop_sequence',
@@ -7,21 +7,25 @@ const model = {
7
7
  name: 'rider_id',
8
8
  type: 'varchar(255)',
9
9
  primary: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'agency_id',
13
14
  type: 'varchar(255)',
14
15
  index: true,
16
+ prefix: true,
15
17
  },
16
18
  {
17
19
  name: 'trip_id',
18
20
  type: 'varchar(255)',
19
21
  index: true,
22
+ prefix: true,
20
23
  },
21
24
  {
22
25
  name: 'boarding_stop_id',
23
26
  type: 'varchar(255)',
24
27
  index: true,
28
+ prefix: true,
25
29
  },
26
30
  {
27
31
  name: 'boarding_stop_sequence',
@@ -33,6 +37,7 @@ const model = {
33
37
  name: 'alighting_stop_id',
34
38
  type: 'varchar(255)',
35
39
  index: true,
40
+ prefix: true,
36
41
  },
37
42
  {
38
43
  name: 'alighting_stop_sequence',
@@ -47,6 +47,7 @@ const model = {
47
47
  name: 'service_id',
48
48
  type: 'varchar(255)',
49
49
  index: true,
50
+ prefix: true,
50
51
  },
51
52
  {
52
53
  name: 'monday',
@@ -94,11 +95,13 @@ const model = {
94
95
  name: 'agency_id',
95
96
  type: 'varchar(255)',
96
97
  index: true,
98
+ prefix: true,
97
99
  },
98
100
  {
99
101
  name: 'route_id',
100
102
  type: 'varchar(255)',
101
103
  index: true,
104
+ prefix: true,
102
105
  },
103
106
  {
104
107
  name: 'direction_id',
@@ -110,10 +113,12 @@ const model = {
110
113
  {
111
114
  name: 'trip_id',
112
115
  type: 'varchar(255)',
116
+ prefix: true,
113
117
  },
114
118
  {
115
119
  name: 'stop_id',
116
120
  type: 'varchar(255)',
121
+ prefix: true,
117
122
  },
118
123
  ],
119
124
  };
@@ -7,11 +7,13 @@ const model = {
7
7
  name: 'agency_id',
8
8
  type: 'varchar(255)',
9
9
  index: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'trip_id',
13
14
  type: 'varchar(255)',
14
15
  index: true,
16
+ prefix: true,
15
17
  },
16
18
  {
17
19
  name: 'service_date',
@@ -5,26 +5,31 @@ const model = {
5
5
  {
6
6
  name: 'note_id',
7
7
  type: 'varchar(255)',
8
+ prefix: true,
8
9
  },
9
10
  {
10
11
  name: 'timetable_id',
11
12
  type: 'varchar(255)',
12
13
  index: true,
14
+ prefix: true,
13
15
  },
14
16
  {
15
17
  name: 'route_id',
16
18
  type: 'varchar(255)',
17
19
  index: true,
20
+ prefix: true,
18
21
  },
19
22
  {
20
23
  name: 'trip_id',
21
24
  type: 'varchar(255)',
22
25
  index: true,
26
+ prefix: true,
23
27
  },
24
28
  {
25
29
  name: 'stop_id',
26
30
  type: 'varchar(255)',
27
31
  index: true,
32
+ prefix: true,
28
33
  },
29
34
  {
30
35
  name: 'stop_sequence',
@@ -6,6 +6,7 @@ const model = {
6
6
  name: 'note_id',
7
7
  type: 'varchar(255)',
8
8
  primary: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'symbol',
@@ -6,6 +6,7 @@ const model = {
6
6
  name: 'timetable_page_id',
7
7
  type: 'varchar(255)',
8
8
  primary: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'timetable_page_label',
@@ -6,15 +6,18 @@ const model = {
6
6
  name: 'id',
7
7
  type: 'integer',
8
8
  primary: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'timetable_id',
12
13
  type: 'varchar(255)',
13
14
  index: true,
15
+ prefix: true,
14
16
  },
15
17
  {
16
18
  name: 'stop_id',
17
19
  type: 'varchar(255)',
20
+ prefix: true,
18
21
  },
19
22
  {
20
23
  name: 'stop_sequence',
@@ -6,14 +6,17 @@ const model = {
6
6
  name: 'id',
7
7
  type: 'integer',
8
8
  primary: true,
9
+ prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'timetable_id',
12
13
  type: 'varchar(255)',
14
+ prefix: true,
13
15
  },
14
16
  {
15
17
  name: 'route_id',
16
18
  type: 'varchar(255)',
19
+ prefix: true,
17
20
  },
18
21
  {
19
22
  name: 'direction_id',
@@ -7,6 +7,7 @@ const model = {
7
7
  type: 'varchar(255)',
8
8
  required: true,
9
9
  index: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'operating_day_date',
@@ -7,12 +7,14 @@ const model = {
7
7
  name: 'id',
8
8
  type: 'integer',
9
9
  primary: true,
10
+ prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'deadhead_id',
13
14
  type: 'varchar(255)',
14
15
  required: true,
15
16
  index: true,
17
+ prefix: true,
16
18
  },
17
19
  {
18
20
  name: 'arrival_time',
@@ -37,10 +39,12 @@ const model = {
37
39
  {
38
40
  name: 'ops_location_id',
39
41
  type: 'varchar(255)',
42
+ prefix: true,
40
43
  },
41
44
  {
42
45
  name: 'stop_id',
43
46
  type: 'varchar(255)',
47
+ prefix: true,
44
48
  },
45
49
  {
46
50
  name: 'location_sequence',
@@ -8,42 +8,50 @@ const model = {
8
8
  type: 'varchar(255)',
9
9
  primary: true,
10
10
  required: true,
11
+ prefix: true,
11
12
  },
12
13
  {
13
14
  name: 'service_id',
14
15
  type: 'varchar(255)',
15
16
  required: true,
17
+ prefix: true,
16
18
  },
17
19
  {
18
20
  name: 'block_id',
19
21
  type: 'varchar(255)',
20
22
  required: true,
21
23
  index: true,
24
+ prefix: true,
22
25
  },
23
26
  {
24
27
  name: 'shape_id',
25
28
  type: 'varchar(255)',
26
29
  index: true,
30
+ prefix: true,
27
31
  },
28
32
  {
29
33
  name: 'to_trip_id',
30
34
  type: 'varchar(255)',
31
35
  index: true,
36
+ prefix: true,
32
37
  },
33
38
  {
34
39
  name: 'from_trip_id',
35
40
  type: 'varchar(255)',
36
41
  index: true,
42
+ prefix: true,
37
43
  },
38
44
  {
39
45
  name: 'to_deadhead_id',
40
46
  type: 'varchar(255)',
41
47
  index: true,
48
+ prefix: true,
42
49
  },
43
50
  {
44
51
  name: 'from_deadhead_id',
45
52
  type: 'varchar(255)',
46
53
  index: true,
54
+ prefix: true,
47
55
  },
48
56
  ],
49
57
  };