gtfs 4.15.7 → 4.15.9
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/dist/bin/gtfs-export.js +41 -136
- package/dist/bin/gtfs-export.js.map +1 -1
- package/dist/bin/gtfs-import.js +85 -156
- package/dist/bin/gtfs-import.js.map +1 -1
- package/dist/bin/gtfsrealtime-update.js +2 -17
- package/dist/bin/gtfsrealtime-update.js.map +1 -1
- package/dist/index.js +103 -169
- package/dist/index.js.map +1 -1
- package/dist/models/models.d.ts +5 -55
- package/dist/models/models.js +23 -108
- package/dist/models/models.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/gtfs-export.js
CHANGED
|
@@ -346,12 +346,7 @@ var bookingRules = {
|
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
name: "prior_notice_last_time",
|
|
349
|
-
type: "
|
|
350
|
-
},
|
|
351
|
-
{
|
|
352
|
-
name: "prior_notice_last_timestamp",
|
|
353
|
-
type: "integer",
|
|
354
|
-
index: true
|
|
349
|
+
type: "time"
|
|
355
350
|
},
|
|
356
351
|
{
|
|
357
352
|
name: "prior_notice_start_day",
|
|
@@ -360,12 +355,7 @@ var bookingRules = {
|
|
|
360
355
|
},
|
|
361
356
|
{
|
|
362
357
|
name: "prior_notice_start_time",
|
|
363
|
-
type: "
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
name: "prior_notice_start_timestamp",
|
|
367
|
-
type: "integer",
|
|
368
|
-
index: true
|
|
358
|
+
type: "time"
|
|
369
359
|
},
|
|
370
360
|
{
|
|
371
361
|
name: "prior_notice_service_id",
|
|
@@ -831,23 +821,15 @@ var frequencies = {
|
|
|
831
821
|
},
|
|
832
822
|
{
|
|
833
823
|
name: "start_time",
|
|
834
|
-
type: "
|
|
824
|
+
type: "time",
|
|
835
825
|
required: true,
|
|
836
826
|
primary: true
|
|
837
827
|
},
|
|
838
|
-
{
|
|
839
|
-
name: "start_timestamp",
|
|
840
|
-
type: "integer"
|
|
841
|
-
},
|
|
842
828
|
{
|
|
843
829
|
name: "end_time",
|
|
844
|
-
type: "
|
|
830
|
+
type: "time",
|
|
845
831
|
required: true
|
|
846
832
|
},
|
|
847
|
-
{
|
|
848
|
-
name: "end_timestamp",
|
|
849
|
-
type: "integer"
|
|
850
|
-
},
|
|
851
833
|
{
|
|
852
834
|
name: "headway_secs",
|
|
853
835
|
type: "integer",
|
|
@@ -1214,21 +1196,11 @@ var stopTimes = {
|
|
|
1214
1196
|
},
|
|
1215
1197
|
{
|
|
1216
1198
|
name: "arrival_time",
|
|
1217
|
-
type: "
|
|
1218
|
-
},
|
|
1219
|
-
{
|
|
1220
|
-
name: "arrival_timestamp",
|
|
1221
|
-
type: "integer",
|
|
1222
|
-
index: true
|
|
1199
|
+
type: "time"
|
|
1223
1200
|
},
|
|
1224
1201
|
{
|
|
1225
1202
|
name: "departure_time",
|
|
1226
|
-
type: "
|
|
1227
|
-
},
|
|
1228
|
-
{
|
|
1229
|
-
name: "departure_timestamp",
|
|
1230
|
-
type: "integer",
|
|
1231
|
-
index: true
|
|
1203
|
+
type: "time"
|
|
1232
1204
|
},
|
|
1233
1205
|
{
|
|
1234
1206
|
name: "location_group_id",
|
|
@@ -1263,12 +1235,7 @@ var stopTimes = {
|
|
|
1263
1235
|
},
|
|
1264
1236
|
{
|
|
1265
1237
|
name: "start_pickup_drop_off_window",
|
|
1266
|
-
type: "
|
|
1267
|
-
},
|
|
1268
|
-
{
|
|
1269
|
-
name: "start_pickup_drop_off_window_timestamp",
|
|
1270
|
-
type: "integer",
|
|
1271
|
-
index: true
|
|
1238
|
+
type: "time"
|
|
1272
1239
|
},
|
|
1273
1240
|
{
|
|
1274
1241
|
name: "pickup_type",
|
|
@@ -1418,12 +1385,12 @@ var timeframes = {
|
|
|
1418
1385
|
},
|
|
1419
1386
|
{
|
|
1420
1387
|
name: "start_time",
|
|
1421
|
-
type: "
|
|
1388
|
+
type: "time",
|
|
1422
1389
|
primary: true
|
|
1423
1390
|
},
|
|
1424
1391
|
{
|
|
1425
1392
|
name: "end_time",
|
|
1426
|
-
type: "
|
|
1393
|
+
type: "time",
|
|
1427
1394
|
primary: true
|
|
1428
1395
|
},
|
|
1429
1396
|
{
|
|
@@ -1696,19 +1663,11 @@ var timetables = {
|
|
|
1696
1663
|
},
|
|
1697
1664
|
{
|
|
1698
1665
|
name: "start_time",
|
|
1699
|
-
type: "
|
|
1700
|
-
},
|
|
1701
|
-
{
|
|
1702
|
-
name: "start_timestamp",
|
|
1703
|
-
type: "integer"
|
|
1666
|
+
type: "time"
|
|
1704
1667
|
},
|
|
1705
1668
|
{
|
|
1706
1669
|
name: "end_time",
|
|
1707
|
-
type: "
|
|
1708
|
-
},
|
|
1709
|
-
{
|
|
1710
|
-
name: "end_timestamp",
|
|
1711
|
-
type: "integer"
|
|
1670
|
+
type: "time"
|
|
1712
1671
|
},
|
|
1713
1672
|
{
|
|
1714
1673
|
name: "timetable_label",
|
|
@@ -2148,21 +2107,11 @@ var boardAlight = {
|
|
|
2148
2107
|
},
|
|
2149
2108
|
{
|
|
2150
2109
|
name: "service_arrival_time",
|
|
2151
|
-
type: "
|
|
2152
|
-
},
|
|
2153
|
-
{
|
|
2154
|
-
name: "service_arrival_timestamp",
|
|
2155
|
-
type: "integer",
|
|
2156
|
-
index: true
|
|
2110
|
+
type: "time"
|
|
2157
2111
|
},
|
|
2158
2112
|
{
|
|
2159
2113
|
name: "service_departure_time",
|
|
2160
|
-
type: "
|
|
2161
|
-
},
|
|
2162
|
-
{
|
|
2163
|
-
name: "service_departure_timestamp",
|
|
2164
|
-
type: "integer",
|
|
2165
|
-
index: true
|
|
2114
|
+
type: "time"
|
|
2166
2115
|
},
|
|
2167
2116
|
{
|
|
2168
2117
|
name: "source",
|
|
@@ -2229,21 +2178,11 @@ var riderTrip = {
|
|
|
2229
2178
|
},
|
|
2230
2179
|
{
|
|
2231
2180
|
name: "boarding_time",
|
|
2232
|
-
type: "
|
|
2233
|
-
},
|
|
2234
|
-
{
|
|
2235
|
-
name: "boarding_timestamp",
|
|
2236
|
-
type: "integer",
|
|
2237
|
-
index: true
|
|
2181
|
+
type: "time"
|
|
2238
2182
|
},
|
|
2239
2183
|
{
|
|
2240
2184
|
name: "alighting_time",
|
|
2241
|
-
type: "
|
|
2242
|
-
},
|
|
2243
|
-
{
|
|
2244
|
-
name: "alighting_timestamp",
|
|
2245
|
-
type: "integer",
|
|
2246
|
-
index: true
|
|
2185
|
+
type: "time"
|
|
2247
2186
|
},
|
|
2248
2187
|
{
|
|
2249
2188
|
name: "rider_type",
|
|
@@ -2317,21 +2256,11 @@ var ridership = {
|
|
|
2317
2256
|
},
|
|
2318
2257
|
{
|
|
2319
2258
|
name: "ridership_start_time",
|
|
2320
|
-
type: "
|
|
2321
|
-
},
|
|
2322
|
-
{
|
|
2323
|
-
name: "ridership_start_timestamp",
|
|
2324
|
-
type: "integer",
|
|
2325
|
-
index: true
|
|
2259
|
+
type: "time"
|
|
2326
2260
|
},
|
|
2327
2261
|
{
|
|
2328
2262
|
name: "ridership_end_time",
|
|
2329
|
-
type: "
|
|
2330
|
-
},
|
|
2331
|
-
{
|
|
2332
|
-
name: "ridership_end_timestamp",
|
|
2333
|
-
type: "integer",
|
|
2334
|
-
index: true
|
|
2263
|
+
type: "time"
|
|
2335
2264
|
},
|
|
2336
2265
|
{
|
|
2337
2266
|
name: "service_id",
|
|
@@ -2510,7 +2439,7 @@ var tripUpdates = {
|
|
|
2510
2439
|
extension: "gtfs-realtime",
|
|
2511
2440
|
schema: [
|
|
2512
2441
|
{
|
|
2513
|
-
name: "
|
|
2442
|
+
name: "id",
|
|
2514
2443
|
type: "text",
|
|
2515
2444
|
required: true,
|
|
2516
2445
|
primary: true,
|
|
@@ -2674,7 +2603,7 @@ var vehiclePositions = {
|
|
|
2674
2603
|
extension: "gtfs-realtime",
|
|
2675
2604
|
schema: [
|
|
2676
2605
|
{
|
|
2677
|
-
name: "
|
|
2606
|
+
name: "id",
|
|
2678
2607
|
type: "text",
|
|
2679
2608
|
required: true,
|
|
2680
2609
|
primary: true,
|
|
@@ -2913,39 +2842,24 @@ var deadheadTimes = {
|
|
|
2913
2842
|
nonstandard: true,
|
|
2914
2843
|
extension: "ods",
|
|
2915
2844
|
schema: [
|
|
2916
|
-
{
|
|
2917
|
-
name: "id",
|
|
2918
|
-
type: "integer",
|
|
2919
|
-
primary: true,
|
|
2920
|
-
prefix: true
|
|
2921
|
-
},
|
|
2922
2845
|
{
|
|
2923
2846
|
name: "deadhead_id",
|
|
2924
2847
|
type: "text",
|
|
2925
2848
|
required: true,
|
|
2926
2849
|
index: true,
|
|
2850
|
+
primary: true,
|
|
2927
2851
|
prefix: true
|
|
2928
2852
|
},
|
|
2929
2853
|
{
|
|
2930
2854
|
name: "arrival_time",
|
|
2931
|
-
type: "
|
|
2855
|
+
type: "time",
|
|
2932
2856
|
required: true
|
|
2933
2857
|
},
|
|
2934
|
-
{
|
|
2935
|
-
name: "arrival_timestamp",
|
|
2936
|
-
type: "integer",
|
|
2937
|
-
index: true
|
|
2938
|
-
},
|
|
2939
2858
|
{
|
|
2940
2859
|
name: "departure_time",
|
|
2941
|
-
type: "
|
|
2860
|
+
type: "time",
|
|
2942
2861
|
required: true
|
|
2943
2862
|
},
|
|
2944
|
-
{
|
|
2945
|
-
name: "departure_timestamp",
|
|
2946
|
-
type: "integer",
|
|
2947
|
-
index: true
|
|
2948
|
-
},
|
|
2949
2863
|
{
|
|
2950
2864
|
name: "ops_location_id",
|
|
2951
2865
|
type: "text",
|
|
@@ -2960,6 +2874,7 @@ var deadheadTimes = {
|
|
|
2960
2874
|
name: "location_sequence",
|
|
2961
2875
|
type: "integer",
|
|
2962
2876
|
required: true,
|
|
2877
|
+
primary: true,
|
|
2963
2878
|
min: 0,
|
|
2964
2879
|
index: true
|
|
2965
2880
|
},
|
|
@@ -3279,21 +3194,15 @@ function setDefaultConfig(initialConfig) {
|
|
|
3279
3194
|
...initialConfig
|
|
3280
3195
|
};
|
|
3281
3196
|
}
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
"
|
|
3288
|
-
"
|
|
3289
|
-
"
|
|
3290
|
-
|
|
3291
|
-
"start_pickup_drop_off_window"
|
|
3292
|
-
];
|
|
3293
|
-
var TIME_COLUMN_PAIRS = TIME_COLUMN_NAMES.map((name) => [
|
|
3294
|
-
name,
|
|
3295
|
-
name.endsWith("time") ? `${name}stamp` : `${name}_timestamp`
|
|
3296
|
-
]);
|
|
3197
|
+
function formatCurrency(value, currency) {
|
|
3198
|
+
const parts = new Intl.NumberFormat(void 0, {
|
|
3199
|
+
style: "currency",
|
|
3200
|
+
currency
|
|
3201
|
+
}).formatToParts(value);
|
|
3202
|
+
const integerPart = parts.find((part) => part.type === "integer")?.value ?? "0";
|
|
3203
|
+
const fractionPart = parts.find((part) => part.type === "fraction")?.value ?? "";
|
|
3204
|
+
return `${integerPart}${fractionPart !== "" ? `.${fractionPart}` : ""}`;
|
|
3205
|
+
}
|
|
3297
3206
|
|
|
3298
3207
|
// src/lib/export.ts
|
|
3299
3208
|
import path2 from "node:path";
|
|
@@ -3364,19 +3273,7 @@ var exportGtfs = async (initialConfig) => {
|
|
|
3364
3273
|
return;
|
|
3365
3274
|
}
|
|
3366
3275
|
if (model.filenameExtension === "txt") {
|
|
3367
|
-
const excludeColumns = [
|
|
3368
|
-
"id",
|
|
3369
|
-
"arrival_timestamp",
|
|
3370
|
-
"departure_timestamp",
|
|
3371
|
-
"start_timestamp",
|
|
3372
|
-
"end_timestamp",
|
|
3373
|
-
"service_arrival_timestamp",
|
|
3374
|
-
"service_departure_timestamp",
|
|
3375
|
-
"boarding_timestamp",
|
|
3376
|
-
"alighting_timestamp",
|
|
3377
|
-
"ridership_start_timestamp",
|
|
3378
|
-
"ridership_end_timestamp"
|
|
3379
|
-
];
|
|
3276
|
+
const excludeColumns = [];
|
|
3380
3277
|
if (model.filenameBase === "routes") {
|
|
3381
3278
|
const routesWithAgencyId = db.prepare(
|
|
3382
3279
|
"SELECT agency_id FROM routes WHERE agency_id IS NOT NULL;"
|
|
@@ -3384,6 +3281,14 @@ var exportGtfs = async (initialConfig) => {
|
|
|
3384
3281
|
if (!routesWithAgencyId || routesWithAgencyId.length === 0) {
|
|
3385
3282
|
excludeColumns.push("agency_id");
|
|
3386
3283
|
}
|
|
3284
|
+
} else if (model.filenameBase === "fare_attributes") {
|
|
3285
|
+
for (const line of lines) {
|
|
3286
|
+
line.price = formatCurrency(line.price, line.currency_type);
|
|
3287
|
+
}
|
|
3288
|
+
} else if (model.filenameBase === "fare_products") {
|
|
3289
|
+
for (const line of lines) {
|
|
3290
|
+
line.amount = formatCurrency(line.amount, line.currency);
|
|
3291
|
+
}
|
|
3387
3292
|
}
|
|
3388
3293
|
const columns = without(
|
|
3389
3294
|
model.schema.map((column) => column.name),
|