gtfs 3.1.0 → 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.
- package/.eslintrc.json +14 -19
- package/.husky/pre-commit +4 -0
- package/.prettierrc.js +4 -0
- package/CHANGELOG.md +173 -0
- package/README.md +115 -126
- package/bin/gtfs-export.js +4 -5
- package/bin/gtfs-import.js +6 -7
- package/config-sample-full.json +2 -7
- package/lib/db.js +4 -2
- package/lib/export.js +26 -9
- package/lib/file-utils.js +26 -9
- package/lib/geojson-utils.js +51 -38
- package/lib/gtfs/agencies.js +8 -2
- package/lib/gtfs/attributions.js +8 -2
- package/lib/gtfs/calendar-dates.js +8 -2
- package/lib/gtfs/calendars.js +8 -2
- package/lib/gtfs/fare-attributes.js +8 -2
- package/lib/gtfs/fare-rules.js +8 -2
- package/lib/gtfs/feed-info.js +8 -2
- package/lib/gtfs/frequencies.js +8 -2
- package/lib/gtfs/levels.js +8 -2
- package/lib/gtfs/pathways.js +8 -2
- package/lib/gtfs/routes.js +15 -4
- package/lib/gtfs/shapes.js +49 -18
- package/lib/gtfs/stop-times.js +8 -2
- package/lib/gtfs/stops.js +45 -16
- package/lib/gtfs/transfers.js +8 -2
- package/lib/gtfs/translations.js +8 -2
- package/lib/gtfs/trips.js +8 -2
- package/lib/gtfs-ride/board-alights.js +8 -2
- package/lib/gtfs-ride/ride-feed-infos.js +8 -2
- package/lib/gtfs-ride/rider-trips.js +8 -2
- package/lib/gtfs-ride/riderships.js +8 -2
- package/lib/gtfs-ride/trip-capacities.js +8 -2
- package/lib/import.js +200 -125
- package/lib/log-utils.js +8 -4
- package/lib/non-standard/directions.js +8 -2
- package/lib/non-standard/stop-attributes.js +8 -2
- package/lib/non-standard/timetable-notes-references.js +13 -3
- package/lib/non-standard/timetable-notes.js +8 -2
- package/lib/non-standard/timetable-pages.js +8 -2
- package/lib/non-standard/timetable-stop-order.js +13 -3
- package/lib/non-standard/timetables.js +8 -2
- package/lib/utils.js +22 -11
- package/models/gtfs/agency.js +11 -11
- package/models/gtfs/attributions.js +14 -14
- package/models/gtfs/calendar-dates.js +7 -7
- package/models/gtfs/calendar.js +12 -12
- package/models/gtfs/fare-attributes.js +9 -9
- package/models/gtfs/fare-rules.js +8 -8
- package/models/gtfs/feed-info.js +12 -12
- package/models/gtfs/frequencies.js +10 -10
- package/models/gtfs/levels.js +5 -5
- package/models/gtfs/pathways.js +14 -14
- package/models/gtfs/routes.js +14 -14
- package/models/gtfs/shapes.js +8 -8
- package/models/gtfs/stop-times.js +17 -17
- package/models/gtfs/stops.js +17 -17
- package/models/gtfs/transfers.js +7 -7
- package/models/gtfs/translations.js +10 -10
- package/models/gtfs/trips.js +12 -12
- package/models/gtfs-ride/board-alight.js +24 -24
- package/models/gtfs-ride/ride-feed-info.js +8 -8
- package/models/gtfs-ride/rider-trip.js +21 -21
- package/models/gtfs-ride/ridership.js +23 -23
- package/models/gtfs-ride/trip-capacity.js +10 -10
- package/models/models.js +1 -1
- package/models/non-standard/directions.js +6 -6
- package/models/non-standard/stop-attributes.js +5 -5
- package/models/non-standard/timetable-notes-references.js +9 -9
- package/models/non-standard/timetable-notes.js +5 -5
- package/models/non-standard/timetable-pages.js +5 -5
- package/models/non-standard/timetable-stop-order.js +6 -6
- package/models/non-standard/timetables.js +27 -27
- package/package.json +29 -11
- package/test/mocha/export-gtfs.js +63 -40
- package/test/mocha/get-agencies.js +11 -11
- package/test/mocha/get-attributions.js +1 -1
- package/test/mocha/get-board-alights.js +1 -1
- package/test/mocha/get-calendar-dates.js +22 -21
- package/test/mocha/get-calendars.js +8 -8
- package/test/mocha/get-db.js +9 -2
- package/test/mocha/get-directions.js +1 -1
- package/test/mocha/get-fare-attributes.js +3 -3
- package/test/mocha/get-fare-rules.js +8 -10
- package/test/mocha/get-feed-info.js +1 -1
- package/test/mocha/get-frequencies.js +1 -1
- package/test/mocha/get-levels.js +1 -1
- package/test/mocha/get-pathways.js +1 -1
- package/test/mocha/get-rider-trips.js +1 -1
- package/test/mocha/get-riderships.js +1 -1
- package/test/mocha/get-routes.js +9 -13
- package/test/mocha/get-shapes-as-geojson.js +3 -3
- package/test/mocha/get-shapes.js +28 -36
- package/test/mocha/get-stop-attributes.js +1 -1
- package/test/mocha/get-stops-as-geojson.js +2 -2
- package/test/mocha/get-stops.js +59 -48
- package/test/mocha/get-stoptimes.js +9 -7
- package/test/mocha/get-timetable-pages.js +1 -1
- package/test/mocha/get-timetable-stop-orders.js +1 -1
- package/test/mocha/get-timetables.js +1 -1
- package/test/mocha/get-transfers.js +1 -1
- package/test/mocha/get-translations.js +1 -1
- package/test/mocha/get-trip-capacities.js +1 -1
- package/test/mocha/get-trips.js +3 -3
- package/test/mocha/import-gtfs.js +59 -42
- package/test/test-config.js +9 -4
package/lib/utils.js
CHANGED
|
@@ -10,7 +10,9 @@ export function validateConfigForImport(config) {
|
|
|
10
10
|
|
|
11
11
|
for (const [index, agency] of config.agencies.entries()) {
|
|
12
12
|
if (!agency.path && !agency.url) {
|
|
13
|
-
throw new Error(
|
|
13
|
+
throw new Error(
|
|
14
|
+
`No Agency \`url\` or \`path\` specified in config for agency index ${index}.`
|
|
15
|
+
);
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -22,7 +24,7 @@ export function validateConfigForImport(config) {
|
|
|
22
24
|
*/
|
|
23
25
|
export function setDefaultConfig(initialConfig) {
|
|
24
26
|
const defaults = {
|
|
25
|
-
sqlitePath: ':memory:'
|
|
27
|
+
sqlitePath: ':memory:',
|
|
26
28
|
};
|
|
27
29
|
|
|
28
30
|
return Object.assign(defaults, initialConfig);
|
|
@@ -32,23 +34,28 @@ export function setDefaultConfig(initialConfig) {
|
|
|
32
34
|
* Calculate seconds from midnight for HH:mm:ss
|
|
33
35
|
*/
|
|
34
36
|
export function calculateSecondsFromMidnight(time) {
|
|
35
|
-
const split = time.split(':').map(d => Number.parseInt(d, 10));
|
|
37
|
+
const split = time.split(':').map((d) => Number.parseInt(d, 10));
|
|
36
38
|
if (split.length !== 3) {
|
|
37
39
|
return null;
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
return
|
|
42
|
+
return split[0] * 3600 + split[1] * 60 + split[2];
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export function formatSelectClause(fields) {
|
|
44
|
-
const selectItem =
|
|
46
|
+
const selectItem =
|
|
47
|
+
fields.length > 0
|
|
48
|
+
? fields.map((fieldName) => sqlString.escapeId(fieldName)).join(', ')
|
|
49
|
+
: '*';
|
|
45
50
|
|
|
46
51
|
return `SELECT ${selectItem}`;
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
export function formatWhereClause(key, value) {
|
|
50
55
|
if (Array.isArray(value)) {
|
|
51
|
-
return `${sqlString.escapeId(key)} IN (${value
|
|
56
|
+
return `${sqlString.escapeId(key)} IN (${value
|
|
57
|
+
.map((v) => sqlString.escape(v))
|
|
58
|
+
.join(', ')})`;
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
if (value === null) {
|
|
@@ -63,7 +70,9 @@ export function formatWhereClauses(query) {
|
|
|
63
70
|
return '';
|
|
64
71
|
}
|
|
65
72
|
|
|
66
|
-
const whereClauses = Object.entries(query).map(([key, value]) =>
|
|
73
|
+
const whereClauses = Object.entries(query).map(([key, value]) =>
|
|
74
|
+
formatWhereClause(key, value)
|
|
75
|
+
);
|
|
67
76
|
return `WHERE ${whereClauses.join(' AND ')}`;
|
|
68
77
|
}
|
|
69
78
|
|
|
@@ -73,10 +82,12 @@ export function formatOrderByClause(orderBy) {
|
|
|
73
82
|
if (orderBy.length > 0) {
|
|
74
83
|
orderByClause += 'ORDER BY ';
|
|
75
84
|
|
|
76
|
-
orderByClause += orderBy
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
orderByClause += orderBy
|
|
86
|
+
.map(([key, value]) => {
|
|
87
|
+
const direction = value === 'DESC' ? 'DESC' : 'ASC';
|
|
88
|
+
return `${sqlString.escapeId(key)} ${direction}`;
|
|
89
|
+
})
|
|
90
|
+
.join(', ');
|
|
80
91
|
}
|
|
81
92
|
|
|
82
93
|
return orderByClause;
|
package/models/gtfs/agency.js
CHANGED
|
@@ -4,44 +4,44 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'agency_id',
|
|
11
|
-
type: 'varchar(255)'
|
|
11
|
+
type: 'varchar(255)',
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
name: 'agency_name',
|
|
15
15
|
type: 'varchar(255)',
|
|
16
|
-
required: true
|
|
16
|
+
required: true,
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
name: 'agency_url',
|
|
20
20
|
type: 'varchar(2047)',
|
|
21
|
-
required: true
|
|
21
|
+
required: true,
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
name: 'agency_timezone',
|
|
25
25
|
type: 'varchar(255)',
|
|
26
|
-
required: true
|
|
26
|
+
required: true,
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: 'agency_lang',
|
|
30
|
-
type: 'varchar(255)'
|
|
30
|
+
type: 'varchar(255)',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
name: 'agency_phone',
|
|
34
|
-
type: 'varchar(64)'
|
|
34
|
+
type: 'varchar(64)',
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
name: 'agency_fare_url',
|
|
38
|
-
type: 'varchar(2047)'
|
|
38
|
+
type: 'varchar(2047)',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
name: 'agency_email',
|
|
42
|
-
type: 'varchar(255)'
|
|
43
|
-
}
|
|
44
|
-
]
|
|
42
|
+
type: 'varchar(255)',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export default model;
|
|
@@ -4,60 +4,60 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'attribution_id',
|
|
11
|
-
type: 'varchar(255)'
|
|
11
|
+
type: 'varchar(255)',
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
name: 'agency_id',
|
|
15
|
-
type: 'varchar(255)'
|
|
15
|
+
type: 'varchar(255)',
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
name: 'route_id',
|
|
19
|
-
type: 'varchar(255)'
|
|
19
|
+
type: 'varchar(255)',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
name: 'trip_id',
|
|
23
|
-
type: 'varchar(255)'
|
|
23
|
+
type: 'varchar(255)',
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
name: 'organization_name',
|
|
27
27
|
type: 'varchar(255)',
|
|
28
|
-
required: true
|
|
28
|
+
required: true,
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
name: 'is_producer',
|
|
32
32
|
type: 'integer',
|
|
33
33
|
min: 0,
|
|
34
|
-
max: 1
|
|
34
|
+
max: 1,
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
name: 'is_operator',
|
|
38
38
|
type: 'integer',
|
|
39
39
|
min: 0,
|
|
40
|
-
max: 1
|
|
40
|
+
max: 1,
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
name: 'is_authority',
|
|
44
44
|
type: 'integer',
|
|
45
45
|
min: 0,
|
|
46
|
-
max: 1
|
|
46
|
+
max: 1,
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
name: 'attribution_url',
|
|
50
|
-
type: 'varchar(2047)'
|
|
50
|
+
type: 'varchar(2047)',
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
name: 'attribution_email',
|
|
54
|
-
type: 'varchar(255)'
|
|
54
|
+
type: 'varchar(255)',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
name: 'attribution_phone',
|
|
58
|
-
type: 'varchar(255)'
|
|
59
|
-
}
|
|
60
|
-
]
|
|
58
|
+
type: 'varchar(255)',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
export default model;
|
|
@@ -4,19 +4,19 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'service_id',
|
|
11
11
|
type: 'varchar(255)',
|
|
12
12
|
required: true,
|
|
13
|
-
index: true
|
|
13
|
+
index: true,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'date',
|
|
17
17
|
type: 'integer',
|
|
18
18
|
required: true,
|
|
19
|
-
index: true
|
|
19
|
+
index: true,
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
name: 'exception_type',
|
|
@@ -24,13 +24,13 @@ const model = {
|
|
|
24
24
|
required: true,
|
|
25
25
|
min: 1,
|
|
26
26
|
max: 2,
|
|
27
|
-
index: true
|
|
27
|
+
index: true,
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
name: 'holiday_name',
|
|
31
|
-
type: 'varchar(255)'
|
|
32
|
-
}
|
|
33
|
-
]
|
|
31
|
+
type: 'varchar(255)',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export default model;
|
package/models/gtfs/calendar.js
CHANGED
|
@@ -5,70 +5,70 @@ const model = {
|
|
|
5
5
|
name: 'service_id',
|
|
6
6
|
type: 'varchar(255)',
|
|
7
7
|
required: true,
|
|
8
|
-
primary: true
|
|
8
|
+
primary: true,
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
name: 'monday',
|
|
12
12
|
type: 'integer',
|
|
13
13
|
required: true,
|
|
14
14
|
min: 0,
|
|
15
|
-
max: 1
|
|
15
|
+
max: 1,
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
name: 'tuesday',
|
|
19
19
|
type: 'integer',
|
|
20
20
|
required: true,
|
|
21
21
|
min: 0,
|
|
22
|
-
max: 1
|
|
22
|
+
max: 1,
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
name: 'wednesday',
|
|
26
26
|
type: 'integer',
|
|
27
27
|
required: true,
|
|
28
28
|
min: 0,
|
|
29
|
-
max: 1
|
|
29
|
+
max: 1,
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
name: 'thursday',
|
|
33
33
|
type: 'integer',
|
|
34
34
|
required: true,
|
|
35
35
|
min: 0,
|
|
36
|
-
max: 1
|
|
36
|
+
max: 1,
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
name: 'friday',
|
|
40
40
|
type: 'integer',
|
|
41
41
|
required: true,
|
|
42
42
|
min: 0,
|
|
43
|
-
max: 1
|
|
43
|
+
max: 1,
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
name: 'saturday',
|
|
47
47
|
type: 'integer',
|
|
48
48
|
required: true,
|
|
49
49
|
min: 0,
|
|
50
|
-
max: 1
|
|
50
|
+
max: 1,
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
name: 'sunday',
|
|
54
54
|
type: 'integer',
|
|
55
55
|
required: true,
|
|
56
56
|
min: 0,
|
|
57
|
-
max: 1
|
|
57
|
+
max: 1,
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: 'start_date',
|
|
61
61
|
type: 'integer',
|
|
62
62
|
required: true,
|
|
63
|
-
index: true
|
|
63
|
+
index: true,
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
name: 'end_date',
|
|
67
67
|
type: 'integer',
|
|
68
68
|
required: true,
|
|
69
|
-
index: true
|
|
70
|
-
}
|
|
71
|
-
]
|
|
69
|
+
index: true,
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
export default model;
|
|
@@ -5,41 +5,41 @@ const model = {
|
|
|
5
5
|
name: 'fare_id',
|
|
6
6
|
type: 'varchar(255)',
|
|
7
7
|
required: true,
|
|
8
|
-
primary: true
|
|
8
|
+
primary: true,
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
name: 'price',
|
|
12
12
|
type: 'real',
|
|
13
|
-
required: true
|
|
13
|
+
required: true,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'currency_type',
|
|
17
17
|
type: 'varchar(255)',
|
|
18
|
-
required: true
|
|
18
|
+
required: true,
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: 'payment_method',
|
|
22
22
|
type: 'integer',
|
|
23
23
|
required: true,
|
|
24
24
|
min: 0,
|
|
25
|
-
max: 1
|
|
25
|
+
max: 1,
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
name: 'transfers',
|
|
29
29
|
type: 'integer',
|
|
30
30
|
min: 0,
|
|
31
|
-
max: 2
|
|
31
|
+
max: 2,
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
name: 'agency_id',
|
|
35
|
-
type: 'varchar(255)'
|
|
35
|
+
type: 'varchar(255)',
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
name: 'transfer_duration',
|
|
39
39
|
type: 'integer',
|
|
40
|
-
min: 0
|
|
41
|
-
}
|
|
42
|
-
]
|
|
40
|
+
min: 0,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
export default model;
|
|
@@ -4,32 +4,32 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'fare_id',
|
|
11
11
|
type: 'varchar(255)',
|
|
12
12
|
required: true,
|
|
13
|
-
index: true
|
|
13
|
+
index: true,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'route_id',
|
|
17
17
|
type: 'varchar(255)',
|
|
18
|
-
index: true
|
|
18
|
+
index: true,
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: 'origin_id',
|
|
22
|
-
type: 'varchar(255)'
|
|
22
|
+
type: 'varchar(255)',
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
name: 'destination_id',
|
|
26
|
-
type: 'varchar(255)'
|
|
26
|
+
type: 'varchar(255)',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: 'contains_id',
|
|
30
|
-
type: 'varchar(255)'
|
|
31
|
-
}
|
|
32
|
-
]
|
|
30
|
+
type: 'varchar(255)',
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export default model;
|
package/models/gtfs/feed-info.js
CHANGED
|
@@ -4,48 +4,48 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'feed_publisher_name',
|
|
11
11
|
type: 'varchar(255)',
|
|
12
|
-
required: true
|
|
12
|
+
required: true,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
name: 'feed_publisher_url',
|
|
16
16
|
type: 'varchar(2047)',
|
|
17
|
-
required: true
|
|
17
|
+
required: true,
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
name: 'feed_lang',
|
|
21
21
|
type: 'varchar(255)',
|
|
22
|
-
required: true
|
|
22
|
+
required: true,
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
name: 'default_lang',
|
|
26
|
-
type: 'varchar(255)'
|
|
26
|
+
type: 'varchar(255)',
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
name: 'feed_start_date',
|
|
30
|
-
type: 'integer'
|
|
30
|
+
type: 'integer',
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
name: 'feed_end_date',
|
|
34
|
-
type: 'integer'
|
|
34
|
+
type: 'integer',
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
name: 'feed_version',
|
|
38
|
-
type: 'varchar(255)'
|
|
38
|
+
type: 'varchar(255)',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
name: 'feed_contact_email',
|
|
42
|
-
type: 'varchar(255)'
|
|
42
|
+
type: 'varchar(255)',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
name: 'feed_contact_url',
|
|
46
|
-
type: 'varchar(2047)'
|
|
47
|
-
}
|
|
48
|
-
]
|
|
46
|
+
type: 'varchar(2047)',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export default model;
|
|
@@ -4,45 +4,45 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'id',
|
|
6
6
|
type: 'integer',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'trip_id',
|
|
11
11
|
type: 'varchar(255)',
|
|
12
12
|
required: true,
|
|
13
|
-
index: true
|
|
13
|
+
index: true,
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
name: 'start_time',
|
|
17
17
|
type: 'varchar(255)',
|
|
18
|
-
required: true
|
|
18
|
+
required: true,
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: 'start_timestamp',
|
|
22
|
-
type: 'integer'
|
|
22
|
+
type: 'integer',
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
name: 'end_time',
|
|
26
26
|
type: 'varchar(255)',
|
|
27
|
-
required: true
|
|
27
|
+
required: true,
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
name: 'end_timestamp',
|
|
31
|
-
type: 'integer'
|
|
31
|
+
type: 'integer',
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
name: 'headway_secs',
|
|
35
35
|
type: 'integer',
|
|
36
36
|
required: true,
|
|
37
|
-
min: 0
|
|
37
|
+
min: 0,
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
name: 'exact_times',
|
|
41
41
|
type: 'integer',
|
|
42
42
|
min: 0,
|
|
43
|
-
max: 1
|
|
44
|
-
}
|
|
45
|
-
]
|
|
43
|
+
max: 1,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
46
|
};
|
|
47
47
|
|
|
48
48
|
export default model;
|
package/models/gtfs/levels.js
CHANGED
|
@@ -4,18 +4,18 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'level_id',
|
|
6
6
|
type: 'varchar(255)',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'level_index',
|
|
11
11
|
type: 'real',
|
|
12
|
-
required: true
|
|
12
|
+
required: true,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
name: 'level_name',
|
|
16
|
-
type: 'varchar(255)'
|
|
17
|
-
}
|
|
18
|
-
]
|
|
16
|
+
type: 'varchar(255)',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export default model;
|
package/models/gtfs/pathways.js
CHANGED
|
@@ -4,63 +4,63 @@ const model = {
|
|
|
4
4
|
{
|
|
5
5
|
name: 'pathway_id',
|
|
6
6
|
type: 'varchar(255)',
|
|
7
|
-
primary: true
|
|
7
|
+
primary: true,
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
name: 'from_stop_id',
|
|
11
11
|
type: 'varchar(255)',
|
|
12
|
-
required: true
|
|
12
|
+
required: true,
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
name: 'to_stop_id',
|
|
16
16
|
type: 'varchar(255)',
|
|
17
|
-
required: true
|
|
17
|
+
required: true,
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
name: 'pathway_mode',
|
|
21
21
|
type: 'integer',
|
|
22
22
|
required: true,
|
|
23
23
|
min: 1,
|
|
24
|
-
max: 7
|
|
24
|
+
max: 7,
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
name: 'is_bidirectional',
|
|
28
28
|
type: 'integer',
|
|
29
29
|
required: true,
|
|
30
30
|
min: 0,
|
|
31
|
-
max: 1
|
|
31
|
+
max: 1,
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
name: 'length',
|
|
35
|
-
type: 'real'
|
|
35
|
+
type: 'real',
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
name: 'traversal_time',
|
|
39
39
|
type: 'integer',
|
|
40
|
-
min: 0
|
|
40
|
+
min: 0,
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
name: 'stair_count',
|
|
44
|
-
type: 'integer'
|
|
44
|
+
type: 'integer',
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
name: 'max_slope',
|
|
48
|
-
type: 'real'
|
|
48
|
+
type: 'real',
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
name: 'min_width',
|
|
52
52
|
type: 'real',
|
|
53
|
-
min: 0
|
|
53
|
+
min: 0,
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
name: 'signposted_as',
|
|
57
|
-
type: 'varchar(255)'
|
|
57
|
+
type: 'varchar(255)',
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: 'reversed_signposted_as',
|
|
61
|
-
type: 'varchar(255)'
|
|
62
|
-
}
|
|
63
|
-
]
|
|
61
|
+
type: 'varchar(255)',
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
64
|
};
|
|
65
65
|
|
|
66
66
|
export default model;
|