gtfs 4.11.1 → 4.11.3

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 (68) hide show
  1. package/.github/workflows/nodejs.yml +1 -1
  2. package/CHANGELOG.md +18 -0
  3. package/README.md +12 -19
  4. package/lib/export.js +46 -32
  5. package/lib/geojson-utils.js +9 -0
  6. package/lib/gtfs/locations.js +32 -0
  7. package/lib/gtfs.js +4 -0
  8. package/lib/import.js +78 -48
  9. package/models/gtfs/agency.js +9 -8
  10. package/models/gtfs/areas.js +3 -2
  11. package/models/gtfs/attributions.js +9 -8
  12. package/models/gtfs/booking-rules.js +11 -10
  13. package/models/gtfs/calendar-dates.js +3 -2
  14. package/models/gtfs/calendar.js +2 -1
  15. package/models/gtfs/fare-attributes.js +4 -3
  16. package/models/gtfs/fare-leg-rules.js +8 -7
  17. package/models/gtfs/fare-media.js +3 -2
  18. package/models/gtfs/fare-products.js +5 -4
  19. package/models/gtfs/fare-rules.js +6 -5
  20. package/models/gtfs/fare-transfer-rules.js +5 -4
  21. package/models/gtfs/feed-info.js +8 -7
  22. package/models/gtfs/frequencies.js +4 -3
  23. package/models/gtfs/levels.js +3 -2
  24. package/models/gtfs/location-group-stops.js +3 -2
  25. package/models/gtfs/location-groups.js +3 -2
  26. package/models/gtfs/locations.js +12 -0
  27. package/models/gtfs/networks.js +3 -2
  28. package/models/gtfs/pathways.js +6 -5
  29. package/models/gtfs/route-networks.js +3 -2
  30. package/models/gtfs/routes.js +10 -9
  31. package/models/gtfs/shapes.js +2 -1
  32. package/models/gtfs/stop-areas.js +3 -2
  33. package/models/gtfs/stop-times.js +11 -10
  34. package/models/gtfs/stops.js +12 -11
  35. package/models/gtfs/timeframes.js +5 -4
  36. package/models/gtfs/transfers.js +7 -6
  37. package/models/gtfs/translations.js +8 -7
  38. package/models/gtfs/trips.js +8 -7
  39. package/models/gtfs-plus/calendar-attributes.js +3 -2
  40. package/models/gtfs-plus/directions.js +3 -2
  41. package/models/gtfs-plus/route-attributes.js +2 -1
  42. package/models/gtfs-plus/stop-attributes.js +5 -4
  43. package/models/gtfs-realtime/service-alert-targets.js +3 -3
  44. package/models/gtfs-realtime/service-alerts.js +5 -5
  45. package/models/gtfs-realtime/stop-time-updates.js +7 -7
  46. package/models/gtfs-realtime/trip-updates.js +8 -8
  47. package/models/gtfs-realtime/vehicle-positions.js +12 -12
  48. package/models/gtfs-ride/board-alight.js +5 -4
  49. package/models/gtfs-ride/ride-feed-info.js +3 -2
  50. package/models/gtfs-ride/rider-trip.js +9 -8
  51. package/models/gtfs-ride/ridership.js +8 -7
  52. package/models/gtfs-ride/trip-capacity.js +4 -3
  53. package/models/models.js +2 -0
  54. package/models/non-standard/timetable-notes-references.js +6 -5
  55. package/models/non-standard/timetable-notes.js +4 -3
  56. package/models/non-standard/timetable-pages.js +4 -3
  57. package/models/non-standard/timetable-stop-order.js +3 -2
  58. package/models/non-standard/timetables.js +10 -9
  59. package/models/non-standard/trips-dated-vehicle-journey.js +4 -3
  60. package/models/ods/deadhead-times.js +6 -5
  61. package/models/ods/deadheads.js +9 -8
  62. package/models/ods/ops-locations.js +5 -4
  63. package/models/ods/run-events.js +7 -6
  64. package/models/ods/runs-pieces.js +5 -4
  65. package/package.json +4 -4
  66. package/test/mocha/export-gtfs.js +5 -2
  67. package/test/mocha/get-locations.js +69 -0
  68. package/test/mocha/import-gtfs.js +4 -1
@@ -1,9 +1,10 @@
1
1
  const model = {
2
2
  filenameBase: 'calendar_dates',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'service_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
@@ -24,7 +25,7 @@ const model = {
24
25
  },
25
26
  {
26
27
  name: 'holiday_name',
27
- type: 'varchar(255)',
28
+ type: 'text',
28
29
  nocase: true,
29
30
  },
30
31
  ],
@@ -1,9 +1,10 @@
1
1
  const model = {
2
2
  filenameBase: 'calendar',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'service_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
@@ -1,9 +1,10 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_attributes',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'fare_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
@@ -15,7 +16,7 @@ const model = {
15
16
  },
16
17
  {
17
18
  name: 'currency_type',
18
- type: 'varchar(255)',
19
+ type: 'text',
19
20
  required: true,
20
21
  },
21
22
  {
@@ -33,7 +34,7 @@ const model = {
33
34
  },
34
35
  {
35
36
  name: 'agency_id',
36
- type: 'varchar(255)',
37
+ type: 'text',
37
38
  prefix: true,
38
39
  },
39
40
  {
@@ -1,44 +1,45 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_leg_rules',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'leg_group_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  prefix: true,
8
9
  },
9
10
  {
10
11
  name: 'network_id',
11
- type: 'varchar(255)',
12
+ type: 'text',
12
13
  primary: true,
13
14
  prefix: true,
14
15
  },
15
16
  {
16
17
  name: 'from_area_id',
17
- type: 'varchar(255)',
18
+ type: 'text',
18
19
  primary: true,
19
20
  prefix: true,
20
21
  },
21
22
  {
22
23
  name: 'to_area_id',
23
- type: 'varchar(255)',
24
+ type: 'text',
24
25
  primary: true,
25
26
  prefix: true,
26
27
  },
27
28
  {
28
29
  name: 'from_timeframe_group_id',
29
- type: 'varchar(255)',
30
+ type: 'text',
30
31
  primary: true,
31
32
  prefix: true,
32
33
  },
33
34
  {
34
35
  name: 'to_timeframe_group_id',
35
- type: 'varchar(255)',
36
+ type: 'text',
36
37
  primary: true,
37
38
  prefix: true,
38
39
  },
39
40
  {
40
41
  name: 'fare_product_id',
41
- type: 'varchar(255)',
42
+ type: 'text',
42
43
  required: true,
43
44
  primary: true,
44
45
  prefix: true,
@@ -1,16 +1,17 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_media',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'fare_media_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'fare_media_name',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  },
15
16
  {
16
17
  name: 'fare_media_type',
@@ -1,20 +1,21 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_products',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'fare_product_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'fare_product_name',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  },
15
16
  {
16
17
  name: 'fare_media_id',
17
- type: 'varchar(255)',
18
+ type: 'text',
18
19
  primary: true,
19
20
  prefix: true,
20
21
  },
@@ -25,7 +26,7 @@ const model = {
25
26
  },
26
27
  {
27
28
  name: 'currency',
28
- type: 'varchar(255)',
29
+ type: 'text',
29
30
  required: true,
30
31
  },
31
32
  ],
@@ -1,30 +1,31 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_rules',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'fare_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'route_id',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  prefix: true,
14
15
  },
15
16
  {
16
17
  name: 'origin_id',
17
- type: 'varchar(255)',
18
+ type: 'text',
18
19
  prefix: true,
19
20
  },
20
21
  {
21
22
  name: 'destination_id',
22
- type: 'varchar(255)',
23
+ type: 'text',
23
24
  prefix: true,
24
25
  },
25
26
  {
26
27
  name: 'contains_id',
27
- type: 'varchar(255)',
28
+ type: 'text',
28
29
  prefix: true,
29
30
  },
30
31
  ],
@@ -1,15 +1,16 @@
1
1
  const model = {
2
2
  filenameBase: 'fare_transfer_rules',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'from_leg_group_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'to_leg_group_id',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  primary: true,
14
15
  prefix: true,
15
16
  },
@@ -21,7 +22,7 @@ const model = {
21
22
  },
22
23
  {
23
24
  name: 'transfer_id',
24
- type: 'varchar(255)',
25
+ type: 'text',
25
26
  prefix: true,
26
27
  },
27
28
  {
@@ -45,7 +46,7 @@ const model = {
45
46
  },
46
47
  {
47
48
  name: 'fare_product_id',
48
- type: 'varchar(255)',
49
+ type: 'text',
49
50
  primary: true,
50
51
  prefix: true,
51
52
  },
@@ -1,25 +1,26 @@
1
1
  const model = {
2
2
  filenameBase: 'feed_info',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'feed_publisher_name',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  nocase: true,
9
10
  },
10
11
  {
11
12
  name: 'feed_publisher_url',
12
- type: 'varchar(2047)',
13
+ type: 'text',
13
14
  required: true,
14
15
  },
15
16
  {
16
17
  name: 'feed_lang',
17
- type: 'varchar(255)',
18
+ type: 'text',
18
19
  required: true,
19
20
  },
20
21
  {
21
22
  name: 'default_lang',
22
- type: 'varchar(255)',
23
+ type: 'text',
23
24
  nocase: true,
24
25
  },
25
26
  {
@@ -32,16 +33,16 @@ const model = {
32
33
  },
33
34
  {
34
35
  name: 'feed_version',
35
- type: 'varchar(255)',
36
+ type: 'text',
36
37
  },
37
38
  {
38
39
  name: 'feed_contact_email',
39
- type: 'varchar(255)',
40
+ type: 'text',
40
41
  nocase: true,
41
42
  },
42
43
  {
43
44
  name: 'feed_contact_url',
44
- type: 'varchar(2047)',
45
+ type: 'text',
45
46
  },
46
47
  ],
47
48
  };
@@ -1,16 +1,17 @@
1
1
  const model = {
2
2
  filenameBase: 'frequencies',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'trip_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'start_time',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  required: true,
15
16
  primary: true,
16
17
  },
@@ -20,7 +21,7 @@ const model = {
20
21
  },
21
22
  {
22
23
  name: 'end_time',
23
- type: 'varchar(255)',
24
+ type: 'text',
24
25
  required: true,
25
26
  },
26
27
  {
@@ -1,9 +1,10 @@
1
1
  const model = {
2
2
  filenameBase: 'levels',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'level_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  required: true,
9
10
  prefix: true,
@@ -15,7 +16,7 @@ const model = {
15
16
  },
16
17
  {
17
18
  name: 'level_name',
18
- type: 'varchar(255)',
19
+ type: 'text',
19
20
  nocase: true,
20
21
  },
21
22
  ],
@@ -1,16 +1,17 @@
1
1
  const model = {
2
2
  filenameBase: 'location_group_stops',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'location_group_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  prefix: true,
8
9
  index: true,
9
10
  required: true,
10
11
  },
11
12
  {
12
13
  name: 'stop_id',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  required: true,
15
16
  prefix: true,
16
17
  index: true,
@@ -1,15 +1,16 @@
1
1
  const model = {
2
2
  filenameBase: 'location_groups',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'location_group_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  primary: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'location_group_name',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  nocase: true,
14
15
  },
15
16
  ],
@@ -0,0 +1,12 @@
1
+ const model = {
2
+ filenameBase: 'locations',
3
+ filenameExtension: 'geojson',
4
+ schema: [
5
+ {
6
+ name: 'geojson',
7
+ type: 'text',
8
+ },
9
+ ],
10
+ };
11
+
12
+ export default model;
@@ -1,16 +1,17 @@
1
1
  const model = {
2
2
  filenameBase: 'networks',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'network_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: 'network_name',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  nocase: true,
15
16
  },
16
17
  ],
@@ -1,22 +1,23 @@
1
1
  const model = {
2
2
  filenameBase: 'pathways',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'pathway_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: 'from_stop_id',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  required: true,
15
16
  prefix: true,
16
17
  },
17
18
  {
18
19
  name: 'to_stop_id',
19
- type: 'varchar(255)',
20
+ type: 'text',
20
21
  required: true,
21
22
  prefix: true,
22
23
  },
@@ -59,12 +60,12 @@ const model = {
59
60
  },
60
61
  {
61
62
  name: 'signposted_as',
62
- type: 'varchar(255)',
63
+ type: 'text',
63
64
  nocase: true,
64
65
  },
65
66
  {
66
67
  name: 'reversed_signposted_as',
67
- type: 'varchar(255)',
68
+ type: 'text',
68
69
  nocase: true,
69
70
  },
70
71
  ],
@@ -1,15 +1,16 @@
1
1
  const model = {
2
2
  filenameBase: 'route_networks',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'network_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'route_id',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  primary: true,
14
15
  index: true,
15
16
  prefix: true,
@@ -1,31 +1,32 @@
1
1
  const model = {
2
2
  filenameBase: 'routes',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'route_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: 'agency_id',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  prefix: true,
15
16
  },
16
17
  {
17
18
  name: 'route_short_name',
18
- type: 'varchar(255)',
19
+ type: 'text',
19
20
  nocase: true,
20
21
  },
21
22
  {
22
23
  name: 'route_long_name',
23
- type: 'varchar(255)',
24
+ type: 'text',
24
25
  nocase: true,
25
26
  },
26
27
  {
27
28
  name: 'route_desc',
28
- type: 'varchar(255)',
29
+ type: 'text',
29
30
  nocase: true,
30
31
  },
31
32
  {
@@ -38,16 +39,16 @@ const model = {
38
39
  },
39
40
  {
40
41
  name: 'route_url',
41
- type: 'varchar(2047)',
42
+ type: 'text',
42
43
  },
43
44
  {
44
45
  name: 'route_color',
45
- type: 'varchar(255)',
46
+ type: 'text',
46
47
  nocase: true,
47
48
  },
48
49
  {
49
50
  name: 'route_text_color',
50
- type: 'varchar(255)',
51
+ type: 'text',
51
52
  nocase: true,
52
53
  },
53
54
  {
@@ -69,7 +70,7 @@ const model = {
69
70
  },
70
71
  {
71
72
  name: 'network_id',
72
- type: 'varchar(255)',
73
+ type: 'text',
73
74
  prefix: true,
74
75
  },
75
76
  ],
@@ -1,9 +1,10 @@
1
1
  const model = {
2
2
  filenameBase: 'shapes',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'shape_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
@@ -1,15 +1,16 @@
1
1
  const model = {
2
2
  filenameBase: 'stop_areas',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'area_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  prefix: true,
9
10
  },
10
11
  {
11
12
  name: 'stop_id',
12
- type: 'varchar(255)',
13
+ type: 'text',
13
14
  required: true,
14
15
  prefix: true,
15
16
  },
@@ -1,16 +1,17 @@
1
1
  const model = {
2
2
  filenameBase: 'stop_times',
3
+ filenameExtension: 'txt',
3
4
  schema: [
4
5
  {
5
6
  name: 'trip_id',
6
- type: 'varchar(255)',
7
+ type: 'text',
7
8
  required: true,
8
9
  primary: true,
9
10
  prefix: true,
10
11
  },
11
12
  {
12
13
  name: 'arrival_time',
13
- type: 'varchar(255)',
14
+ type: 'text',
14
15
  },
15
16
  {
16
17
  name: 'arrival_timestamp',
@@ -19,7 +20,7 @@ const model = {
19
20
  },
20
21
  {
21
22
  name: 'departure_time',
22
- type: 'varchar(255)',
23
+ type: 'text',
23
24
  },
24
25
  {
25
26
  name: 'departure_timestamp',
@@ -28,19 +29,19 @@ const model = {
28
29
  },
29
30
  {
30
31
  name: 'location_group_id',
31
- type: 'varchar(255)',
32
+ type: 'text',
32
33
  prefix: true,
33
34
  index: true,
34
35
  },
35
36
  {
36
37
  name: 'location_id',
37
- type: 'varchar(255)',
38
+ type: 'text',
38
39
  prefix: true,
39
40
  index: true,
40
41
  },
41
42
  {
42
43
  name: 'stop_id',
43
- type: 'varchar(255)',
44
+ type: 'text',
44
45
  required: true,
45
46
  prefix: true,
46
47
  index: true,
@@ -54,12 +55,12 @@ const model = {
54
55
  },
55
56
  {
56
57
  name: 'stop_headsign',
57
- type: 'varchar(255)',
58
+ type: 'text',
58
59
  nocase: true,
59
60
  },
60
61
  {
61
62
  name: 'start_pickup_drop_off_window',
62
- type: 'varchar(255)',
63
+ type: 'text',
63
64
  },
64
65
  {
65
66
  name: 'start_pickup_drop_off_window_timestamp',
@@ -103,13 +104,13 @@ const model = {
103
104
  },
104
105
  {
105
106
  name: 'pickup_booking_rule_id',
106
- type: 'varchar(255)',
107
+ type: 'text',
107
108
  prefix: true,
108
109
  index: true,
109
110
  },
110
111
  {
111
112
  name: 'drop_off_booking_rule_id',
112
- type: 'varchar(255)',
113
+ type: 'text',
113
114
  prefix: true,
114
115
  index: true,
115
116
  },