gtfs 4.17.3 → 4.17.5

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/index.js CHANGED
@@ -5,9 +5,9 @@ var __export = (target, all) => {
5
5
  };
6
6
 
7
7
  // src/lib/import-gtfs.ts
8
- import path from "node:path";
9
- import { createReadStream, existsSync, lstatSync } from "node:fs";
10
- import { cp, readdir, rename, readFile as readFile2, rm as rm2, writeFile } from "node:fs/promises";
8
+ import path2 from "path";
9
+ import { createReadStream, existsSync as existsSync2, lstatSync } from "fs";
10
+ import { cp, readdir, rename, readFile as readFile2, rm as rm2, writeFile } from "fs/promises";
11
11
  import { parse } from "csv-parse";
12
12
  import pluralize2 from "pluralize";
13
13
  import stripBomStream from "strip-bom-stream";
@@ -29,12 +29,14 @@ __export(models_exports, {
29
29
  calendarDates: () => calendarDates,
30
30
  deadheadTimes: () => deadheadTimes,
31
31
  deadheads: () => deadheads,
32
+ devices: () => devices,
32
33
  directions: () => directions,
33
34
  fareAttributes: () => fareAttributes,
34
35
  fareLegRules: () => fareLegRules,
35
36
  fareMedia: () => fareMedia,
36
37
  fareProducts: () => fareProducts,
37
38
  fareRules: () => fareRules,
39
+ fareTransactions: () => fareTransactions,
38
40
  fareTransferRules: () => fareTransferRules,
39
41
  feedInfo: () => feedInfo,
40
42
  frequencies: () => frequencies,
@@ -43,7 +45,9 @@ __export(models_exports, {
43
45
  locationGroups: () => locationGroups,
44
46
  locations: () => locations,
45
47
  networks: () => networks,
48
+ operators: () => operators,
46
49
  opsLocations: () => opsLocations,
50
+ passengerEvents: () => passengerEvents,
47
51
  pathways: () => pathways,
48
52
  rideFeedInfo: () => rideFeedInfo,
49
53
  riderCategories: () => riderCategories,
@@ -57,10 +61,12 @@ __export(models_exports, {
57
61
  serviceAlertInformedEntities: () => serviceAlertInformedEntities,
58
62
  serviceAlerts: () => serviceAlerts,
59
63
  shapes: () => shapes,
64
+ stationActivities: () => stationActivities,
60
65
  stopAreas: () => stopAreas,
61
66
  stopAttributes: () => stopAttributes,
62
67
  stopTimeUpdates: () => stopTimeUpdates,
63
68
  stopTimes: () => stopTimes,
69
+ stopVisits: () => stopVisits,
64
70
  stops: () => stops,
65
71
  timeframes: () => timeframes,
66
72
  timetableNotes: () => timetableNotes,
@@ -68,13 +74,18 @@ __export(models_exports, {
68
74
  timetablePages: () => timetablePages,
69
75
  timetableStopOrder: () => timetableStopOrder,
70
76
  timetables: () => timetables,
77
+ trainCars: () => trainCars,
71
78
  transfers: () => transfers,
72
79
  translations: () => translations,
73
80
  tripCapacity: () => tripCapacity,
74
81
  tripUpdates: () => tripUpdates,
75
82
  trips: () => trips,
76
83
  tripsDatedVehicleJourney: () => tripsDatedVehicleJourney,
77
- vehiclePositions: () => vehiclePositions
84
+ tripsPerformed: () => tripsPerformed,
85
+ vehicleLocations: () => vehicleLocations,
86
+ vehiclePositions: () => vehiclePositions,
87
+ vehicleTrainCars: () => vehicleTrainCars,
88
+ vehicles: () => vehicles
78
89
  });
79
90
 
80
91
  // src/models/gtfs/agency.ts
@@ -548,6 +559,7 @@ var fareProducts = {
548
559
  {
549
560
  name: "rider_category_id",
550
561
  type: "text",
562
+ primary: true,
551
563
  prefix: true
552
564
  },
553
565
  {
@@ -1511,6 +1523,12 @@ var trips = {
1511
1523
  type: "integer",
1512
1524
  min: 0,
1513
1525
  max: 2
1526
+ },
1527
+ {
1528
+ name: "cars_allowed",
1529
+ type: "integer",
1530
+ min: 0,
1531
+ max: 2
1514
1532
  }
1515
1533
  ]
1516
1534
  };
@@ -3122,6 +3140,839 @@ var runsPieces = {
3122
3140
  ]
3123
3141
  };
3124
3142
 
3143
+ // src/models/tides/devices.ts
3144
+ var devices = {
3145
+ filenameBase: "devices",
3146
+ filenameExtension: "txt",
3147
+ nonstandard: true,
3148
+ extension: "tides",
3149
+ schema: [
3150
+ {
3151
+ name: "device_id",
3152
+ type: "text",
3153
+ required: true,
3154
+ primary: true
3155
+ },
3156
+ {
3157
+ name: "stop_id",
3158
+ type: "text"
3159
+ },
3160
+ {
3161
+ name: "vehicle_id",
3162
+ type: "text"
3163
+ },
3164
+ {
3165
+ name: "train_car_id",
3166
+ type: "text"
3167
+ },
3168
+ {
3169
+ name: "device_type",
3170
+ type: "text"
3171
+ },
3172
+ {
3173
+ name: "device_vendor",
3174
+ type: "text"
3175
+ },
3176
+ {
3177
+ name: "device_model",
3178
+ type: "text"
3179
+ },
3180
+ {
3181
+ name: "device_location",
3182
+ type: "text"
3183
+ }
3184
+ ]
3185
+ };
3186
+
3187
+ // src/models/tides/fare-transactions.ts
3188
+ var fareTransactions = {
3189
+ filenameBase: "fare_transactions",
3190
+ filenameExtension: "txt",
3191
+ nonstandard: true,
3192
+ extension: "tides",
3193
+ schema: [
3194
+ {
3195
+ name: "transaction_id",
3196
+ type: "text",
3197
+ required: true,
3198
+ index: true
3199
+ },
3200
+ {
3201
+ name: "service_date",
3202
+ type: "date",
3203
+ required: true
3204
+ },
3205
+ {
3206
+ name: "event_timestamp",
3207
+ type: "text",
3208
+ required: true
3209
+ },
3210
+ {
3211
+ name: "location_ping_id",
3212
+ type: "text"
3213
+ },
3214
+ {
3215
+ name: "amount",
3216
+ type: "real",
3217
+ required: true
3218
+ },
3219
+ {
3220
+ name: "currency_type",
3221
+ type: "text"
3222
+ },
3223
+ {
3224
+ name: "fare_action",
3225
+ type: "text",
3226
+ required: true
3227
+ },
3228
+ {
3229
+ name: "trip_id_performed",
3230
+ type: "text"
3231
+ },
3232
+ {
3233
+ name: "trip_id_scheduled",
3234
+ type: "text"
3235
+ },
3236
+ {
3237
+ name: "pattern_id",
3238
+ type: "text"
3239
+ },
3240
+ {
3241
+ name: "trip_stop_sequence",
3242
+ type: "integer",
3243
+ min: 1
3244
+ },
3245
+ {
3246
+ name: "scheduled_stop_sequence",
3247
+ type: "integer",
3248
+ min: 0
3249
+ },
3250
+ {
3251
+ name: "vehicle_id",
3252
+ type: "text"
3253
+ },
3254
+ {
3255
+ name: "device_id",
3256
+ type: "text"
3257
+ },
3258
+ {
3259
+ name: "fare_id",
3260
+ type: "text"
3261
+ },
3262
+ {
3263
+ name: "stop_id",
3264
+ type: "text"
3265
+ },
3266
+ {
3267
+ name: "num_riders",
3268
+ type: "integer",
3269
+ min: 0
3270
+ },
3271
+ {
3272
+ name: "fare_media_id",
3273
+ type: "text"
3274
+ },
3275
+ {
3276
+ name: "rider_category",
3277
+ type: "text"
3278
+ },
3279
+ {
3280
+ name: "fare_product",
3281
+ type: "text"
3282
+ },
3283
+ {
3284
+ name: "fare_period",
3285
+ type: "text"
3286
+ },
3287
+ {
3288
+ name: "fare_capped",
3289
+ type: "text",
3290
+ required: true
3291
+ },
3292
+ {
3293
+ name: "token_id",
3294
+ type: "text"
3295
+ },
3296
+ {
3297
+ name: "balance",
3298
+ type: "real"
3299
+ }
3300
+ ]
3301
+ };
3302
+
3303
+ // src/models/tides/operators.ts
3304
+ var operators = {
3305
+ filenameBase: "operators",
3306
+ filenameExtension: "txt",
3307
+ nonstandard: true,
3308
+ extension: "tides",
3309
+ schema: [
3310
+ {
3311
+ name: "operator_id",
3312
+ type: "text",
3313
+ required: true,
3314
+ primary: true
3315
+ }
3316
+ ]
3317
+ };
3318
+
3319
+ // src/models/tides/passenger-events.ts
3320
+ var passengerEvents = {
3321
+ filenameBase: "passenger_events",
3322
+ filenameExtension: "txt",
3323
+ nonstandard: true,
3324
+ extension: "tides",
3325
+ schema: [
3326
+ {
3327
+ name: "passenger_event_id",
3328
+ type: "text",
3329
+ required: true,
3330
+ index: true
3331
+ },
3332
+ {
3333
+ name: "service_date",
3334
+ type: "date",
3335
+ required: true
3336
+ },
3337
+ {
3338
+ name: "event_timestamp",
3339
+ type: "text",
3340
+ required: true
3341
+ },
3342
+ {
3343
+ name: "location_ping_id",
3344
+ type: "text"
3345
+ },
3346
+ {
3347
+ name: "trip_id_performed",
3348
+ type: "text"
3349
+ },
3350
+ {
3351
+ name: "trip_id_scheduled",
3352
+ type: "text"
3353
+ },
3354
+ {
3355
+ name: "trip_stop_sequence",
3356
+ type: "integer",
3357
+ min: 1
3358
+ },
3359
+ {
3360
+ name: "scheduled_stop_sequence",
3361
+ type: "integer",
3362
+ min: 0
3363
+ },
3364
+ {
3365
+ name: "event_type",
3366
+ type: "text",
3367
+ required: true
3368
+ },
3369
+ {
3370
+ name: "vehicle_id",
3371
+ type: "text",
3372
+ required: true
3373
+ },
3374
+ {
3375
+ name: "device_id",
3376
+ type: "text"
3377
+ },
3378
+ {
3379
+ name: "train_car_id",
3380
+ type: "text"
3381
+ },
3382
+ {
3383
+ name: "stop_id",
3384
+ type: "text"
3385
+ },
3386
+ {
3387
+ name: "pattern_id",
3388
+ type: "text"
3389
+ },
3390
+ {
3391
+ name: "event_count",
3392
+ type: "integer",
3393
+ min: 0
3394
+ }
3395
+ ]
3396
+ };
3397
+
3398
+ // src/models/tides/station-activities.ts
3399
+ var stationActivities = {
3400
+ filenameBase: "station_activities",
3401
+ filenameExtension: "txt",
3402
+ nonstandard: true,
3403
+ extension: "tides",
3404
+ schema: [
3405
+ {
3406
+ name: "service_date",
3407
+ type: "date",
3408
+ required: true,
3409
+ primary: true
3410
+ },
3411
+ {
3412
+ name: "stop_id",
3413
+ type: "text",
3414
+ required: true,
3415
+ primary: true
3416
+ },
3417
+ {
3418
+ name: "time_period_start",
3419
+ type: "text",
3420
+ required: true,
3421
+ primary: true
3422
+ },
3423
+ {
3424
+ name: "time_period_end",
3425
+ type: "text",
3426
+ required: true,
3427
+ primary: true
3428
+ },
3429
+ {
3430
+ name: "time_period_category",
3431
+ type: "text"
3432
+ },
3433
+ {
3434
+ name: "total_entries",
3435
+ type: "integer",
3436
+ min: 0
3437
+ },
3438
+ {
3439
+ name: "total_exits",
3440
+ type: "integer",
3441
+ min: 0
3442
+ },
3443
+ {
3444
+ name: "number_of_transactions",
3445
+ type: "integer",
3446
+ min: 0
3447
+ },
3448
+ {
3449
+ name: "bike_entries",
3450
+ type: "integer",
3451
+ min: 0
3452
+ },
3453
+ {
3454
+ name: "bike_exits",
3455
+ type: "integer",
3456
+ min: 0
3457
+ },
3458
+ {
3459
+ name: "ramp_entries",
3460
+ type: "integer",
3461
+ min: 0
3462
+ },
3463
+ {
3464
+ name: "ramp_exits",
3465
+ type: "integer",
3466
+ min: 0
3467
+ }
3468
+ ]
3469
+ };
3470
+
3471
+ // src/models/tides/stop-visits.ts
3472
+ var stopVisits = {
3473
+ filenameBase: "stop_visits",
3474
+ filenameExtension: "txt",
3475
+ nonstandard: true,
3476
+ extension: "tides",
3477
+ schema: [
3478
+ {
3479
+ name: "service_date",
3480
+ type: "date",
3481
+ required: true,
3482
+ primary: true
3483
+ },
3484
+ {
3485
+ name: "trip_id_performed",
3486
+ type: "text",
3487
+ required: true,
3488
+ primary: true
3489
+ },
3490
+ {
3491
+ name: "trip_stop_sequence",
3492
+ type: "integer",
3493
+ min: 1,
3494
+ required: true,
3495
+ primary: true
3496
+ },
3497
+ {
3498
+ name: "scheduled_stop_sequence",
3499
+ type: "integer",
3500
+ min: 0
3501
+ },
3502
+ {
3503
+ name: "pattern_id",
3504
+ type: "text"
3505
+ },
3506
+ {
3507
+ name: "vehicle_id",
3508
+ type: "text"
3509
+ },
3510
+ {
3511
+ name: "dwell",
3512
+ type: "integer",
3513
+ min: 0
3514
+ },
3515
+ {
3516
+ name: "stop_id",
3517
+ type: "text"
3518
+ },
3519
+ {
3520
+ name: "timepoint",
3521
+ type: "text"
3522
+ },
3523
+ {
3524
+ name: "schedule_arrival_time",
3525
+ type: "text"
3526
+ },
3527
+ {
3528
+ name: "schedule_departure_time",
3529
+ type: "text"
3530
+ },
3531
+ {
3532
+ name: "actual_arrival_time",
3533
+ type: "text"
3534
+ },
3535
+ {
3536
+ name: "actual_departure_time",
3537
+ type: "text"
3538
+ },
3539
+ {
3540
+ name: "distance",
3541
+ type: "integer",
3542
+ min: 0
3543
+ },
3544
+ {
3545
+ name: "boarding_1",
3546
+ type: "integer",
3547
+ min: 0
3548
+ },
3549
+ {
3550
+ name: "alighting_1",
3551
+ type: "integer",
3552
+ min: 0
3553
+ },
3554
+ {
3555
+ name: "boarding_2",
3556
+ type: "integer",
3557
+ min: 0
3558
+ },
3559
+ {
3560
+ name: "alighting_2",
3561
+ type: "integer",
3562
+ min: 0
3563
+ },
3564
+ {
3565
+ name: "departure_load",
3566
+ type: "integer",
3567
+ min: 0
3568
+ },
3569
+ {
3570
+ name: "door_open",
3571
+ type: "text"
3572
+ },
3573
+ {
3574
+ name: "door_close",
3575
+ type: "text"
3576
+ },
3577
+ {
3578
+ name: "door_status",
3579
+ type: "text"
3580
+ },
3581
+ {
3582
+ name: "ramp_deployed_time",
3583
+ type: "text"
3584
+ },
3585
+ {
3586
+ name: "ramp_failure",
3587
+ type: "text"
3588
+ },
3589
+ {
3590
+ name: "kneel_deployed_time",
3591
+ type: "integer",
3592
+ min: 0
3593
+ },
3594
+ {
3595
+ name: "lift_deployed_time",
3596
+ type: "integer",
3597
+ min: 0
3598
+ },
3599
+ {
3600
+ name: "bike_rack_deployed",
3601
+ type: "text"
3602
+ },
3603
+ {
3604
+ name: "bike_load",
3605
+ type: "integer",
3606
+ min: 0
3607
+ },
3608
+ {
3609
+ name: "revenue",
3610
+ type: "real"
3611
+ },
3612
+ {
3613
+ name: "number_of_transactions",
3614
+ type: "integer",
3615
+ min: 0
3616
+ },
3617
+ {
3618
+ name: "schedule_relationship",
3619
+ type: "text"
3620
+ }
3621
+ ]
3622
+ };
3623
+
3624
+ // src/models/tides/train-cars.ts
3625
+ var trainCars = {
3626
+ filenameBase: "train_cars",
3627
+ filenameExtension: "txt",
3628
+ nonstandard: true,
3629
+ extension: "tides",
3630
+ schema: [
3631
+ {
3632
+ name: "train_car_id",
3633
+ type: "text",
3634
+ required: true,
3635
+ primary: true
3636
+ },
3637
+ {
3638
+ name: "model_name",
3639
+ type: "text"
3640
+ },
3641
+ {
3642
+ name: "facility_name",
3643
+ type: "text"
3644
+ },
3645
+ {
3646
+ name: "capacity_seated",
3647
+ type: "integer",
3648
+ min: 0
3649
+ },
3650
+ {
3651
+ name: "capacity_wheelchair",
3652
+ type: "integer",
3653
+ min: 0
3654
+ },
3655
+ {
3656
+ name: "capacity_bike",
3657
+ type: "integer",
3658
+ min: 0
3659
+ },
3660
+ {
3661
+ name: "bike_rack",
3662
+ type: "text"
3663
+ },
3664
+ {
3665
+ name: "capacity_standing",
3666
+ type: "integer",
3667
+ min: 0
3668
+ },
3669
+ {
3670
+ name: "train_car_type",
3671
+ type: "text"
3672
+ }
3673
+ ]
3674
+ };
3675
+
3676
+ // src/models/tides/trips-performed.ts
3677
+ var tripsPerformed = {
3678
+ filenameBase: "trips_performed",
3679
+ filenameExtension: "txt",
3680
+ nonstandard: true,
3681
+ extension: "tides",
3682
+ schema: [
3683
+ {
3684
+ name: "service_date",
3685
+ type: "date",
3686
+ required: true,
3687
+ primary: true
3688
+ },
3689
+ {
3690
+ name: "trip_id_performed",
3691
+ type: "text",
3692
+ required: true,
3693
+ primary: true
3694
+ },
3695
+ {
3696
+ name: "vehicle_id",
3697
+ type: "text",
3698
+ required: true
3699
+ },
3700
+ {
3701
+ name: "trip_id_scheduled",
3702
+ type: "text"
3703
+ },
3704
+ {
3705
+ name: "route_id",
3706
+ type: "text"
3707
+ },
3708
+ {
3709
+ name: "route_type",
3710
+ type: "text"
3711
+ },
3712
+ {
3713
+ name: "ntd_mode",
3714
+ type: "text"
3715
+ },
3716
+ {
3717
+ name: "route_type_agency",
3718
+ type: "text"
3719
+ },
3720
+ {
3721
+ name: "shape_id",
3722
+ type: "text"
3723
+ },
3724
+ {
3725
+ name: "pattern_id",
3726
+ type: "text"
3727
+ },
3728
+ {
3729
+ name: "direction_id",
3730
+ type: "integer",
3731
+ min: 0,
3732
+ max: 1
3733
+ },
3734
+ {
3735
+ name: "operator_id",
3736
+ type: "text"
3737
+ },
3738
+ {
3739
+ name: "block_id",
3740
+ type: "text"
3741
+ },
3742
+ {
3743
+ name: "trip_start_stop_id",
3744
+ type: "text"
3745
+ },
3746
+ {
3747
+ name: "trip_end_stop_id",
3748
+ type: "text"
3749
+ },
3750
+ {
3751
+ name: "schedule_trip_start",
3752
+ type: "text"
3753
+ },
3754
+ {
3755
+ name: "schedule_trip_end",
3756
+ type: "text"
3757
+ },
3758
+ {
3759
+ name: "actual_trip_start",
3760
+ type: "text"
3761
+ },
3762
+ {
3763
+ name: "actual_trip_end",
3764
+ type: "text"
3765
+ },
3766
+ {
3767
+ name: "trip_type",
3768
+ type: "text"
3769
+ },
3770
+ {
3771
+ name: "schedule_relationship",
3772
+ type: "text"
3773
+ }
3774
+ ]
3775
+ };
3776
+
3777
+ // src/models/tides/vehicle-train-cars.ts
3778
+ var vehicleTrainCars = {
3779
+ filenameBase: "vehicle_train_cars",
3780
+ filenameExtension: "txt",
3781
+ nonstandard: true,
3782
+ extension: "tides",
3783
+ schema: [
3784
+ {
3785
+ name: "vehicle_id",
3786
+ type: "text",
3787
+ required: true,
3788
+ primary: true
3789
+ },
3790
+ {
3791
+ name: "train_car_id",
3792
+ type: "text",
3793
+ required: true,
3794
+ primary: true
3795
+ },
3796
+ {
3797
+ name: "train_car_order",
3798
+ type: "integer",
3799
+ min: 0
3800
+ },
3801
+ {
3802
+ name: "operator_id",
3803
+ type: "text"
3804
+ }
3805
+ ]
3806
+ };
3807
+
3808
+ // src/models/tides/vehicle-locations.ts
3809
+ var vehicleLocations = {
3810
+ filenameBase: "vehicle_locations",
3811
+ filenameExtension: "txt",
3812
+ nonstandard: true,
3813
+ extension: "tides",
3814
+ schema: [
3815
+ {
3816
+ name: "location_ping_id",
3817
+ type: "text",
3818
+ required: true,
3819
+ primary: true
3820
+ },
3821
+ {
3822
+ name: "service_date",
3823
+ type: "date"
3824
+ },
3825
+ {
3826
+ name: "event_timestamp",
3827
+ type: "text",
3828
+ required: true
3829
+ },
3830
+ {
3831
+ name: "trip_id_performed",
3832
+ type: "text"
3833
+ },
3834
+ {
3835
+ name: "trip_id_scheduled",
3836
+ type: "text"
3837
+ },
3838
+ {
3839
+ name: "trip_stop_sequence",
3840
+ type: "integer",
3841
+ min: 1
3842
+ },
3843
+ {
3844
+ name: "scheduled_stop_sequence",
3845
+ type: "integer",
3846
+ min: 0
3847
+ },
3848
+ {
3849
+ name: "vehicle_id",
3850
+ type: "text",
3851
+ required: true
3852
+ },
3853
+ {
3854
+ name: "device_id",
3855
+ type: "text"
3856
+ },
3857
+ {
3858
+ name: "pattern_id",
3859
+ type: "text"
3860
+ },
3861
+ {
3862
+ name: "stop_id",
3863
+ type: "text"
3864
+ },
3865
+ {
3866
+ name: "current_status",
3867
+ type: "text"
3868
+ },
3869
+ {
3870
+ name: "latitude",
3871
+ type: "real",
3872
+ min: -90,
3873
+ max: 90
3874
+ },
3875
+ {
3876
+ name: "longitude",
3877
+ type: "real",
3878
+ min: -180,
3879
+ max: 180
3880
+ },
3881
+ {
3882
+ name: "gps_quality",
3883
+ type: "text"
3884
+ },
3885
+ {
3886
+ name: "heading",
3887
+ type: "real",
3888
+ min: 0,
3889
+ max: 360
3890
+ },
3891
+ {
3892
+ name: "speed",
3893
+ type: "real",
3894
+ min: 0
3895
+ },
3896
+ {
3897
+ name: "odometer",
3898
+ type: "real",
3899
+ min: 0
3900
+ },
3901
+ {
3902
+ name: "schedule_deviation",
3903
+ type: "integer"
3904
+ },
3905
+ {
3906
+ name: "headway_deviation",
3907
+ type: "integer"
3908
+ },
3909
+ {
3910
+ name: "trip_type",
3911
+ type: "text"
3912
+ },
3913
+ {
3914
+ name: "schedule_relationship",
3915
+ type: "text"
3916
+ }
3917
+ ]
3918
+ };
3919
+
3920
+ // src/models/tides/vehicles.ts
3921
+ var vehicles = {
3922
+ filenameBase: "vehicles",
3923
+ filenameExtension: "txt",
3924
+ nonstandard: true,
3925
+ extension: "tides",
3926
+ schema: [
3927
+ {
3928
+ name: "vehicle_id",
3929
+ type: "text",
3930
+ required: true,
3931
+ primary: true
3932
+ },
3933
+ {
3934
+ name: "vehicle_start",
3935
+ type: "text"
3936
+ },
3937
+ {
3938
+ name: "vehicle_end",
3939
+ type: "text"
3940
+ },
3941
+ {
3942
+ name: "model_name",
3943
+ type: "text"
3944
+ },
3945
+ {
3946
+ name: "facility_name",
3947
+ type: "text"
3948
+ },
3949
+ {
3950
+ name: "capacity_seated",
3951
+ type: "integer",
3952
+ min: 0
3953
+ },
3954
+ {
3955
+ name: "capacity_wheelchair",
3956
+ type: "integer",
3957
+ min: 0
3958
+ },
3959
+ {
3960
+ name: "capacity_bike",
3961
+ type: "integer",
3962
+ min: 0
3963
+ },
3964
+ {
3965
+ name: "bike_rack",
3966
+ type: "text"
3967
+ },
3968
+ {
3969
+ name: "capacity_standing",
3970
+ type: "integer",
3971
+ min: 0
3972
+ }
3973
+ ]
3974
+ };
3975
+
3125
3976
  // src/lib/db.ts
3126
3977
  import fs from "fs";
3127
3978
  import Database from "better-sqlite3";
@@ -3197,14 +4048,16 @@ function deleteDb(db = null) {
3197
4048
  }
3198
4049
 
3199
4050
  // src/lib/file-utils.ts
3200
- import { mkdir, readFile, rm } from "node:fs/promises";
4051
+ import path from "path";
4052
+ import { existsSync } from "fs";
4053
+ import { mkdir, readFile, rm } from "fs/promises";
3201
4054
  import { omit, snakeCase } from "lodash-es";
3202
4055
  import sanitize from "sanitize-filename";
3203
4056
  import untildify2 from "untildify";
3204
4057
  import StreamZip from "node-stream-zip";
3205
4058
 
3206
4059
  // src/lib/log-utils.ts
3207
- import { clearLine, cursorTo } from "node:readline";
4060
+ import { clearLine, cursorTo } from "readline";
3208
4061
  import { noop } from "lodash-es";
3209
4062
  import * as colors from "yoctocolors";
3210
4063
  function log(config) {
@@ -3880,13 +4733,13 @@ var extractGtfsFiles = async (task) => {
3880
4733
  }
3881
4734
  const gtfsPath = untildify3(task.path);
3882
4735
  task.log(`Importing GTFS from ${task.path}\r`);
3883
- if (path.extname(gtfsPath) === ".zip") {
4736
+ if (path2.extname(gtfsPath) === ".zip") {
3884
4737
  try {
3885
4738
  await unzip(gtfsPath, task.downloadDir);
3886
4739
  const textFiles = await getTextFiles(task.downloadDir);
3887
4740
  if (textFiles.length === 0) {
3888
4741
  const files = await readdir(task.downloadDir);
3889
- const folders = files.filter((filename) => !["__MACOSX"].includes(filename)).map((filename) => path.join(task.downloadDir, filename)).filter((source) => lstatSync(source).isDirectory());
4742
+ const folders = files.filter((filename) => !["__MACOSX"].includes(filename)).map((filename) => path2.join(task.downloadDir, filename)).filter((source) => lstatSync(source).isDirectory());
3890
4743
  if (folders.length > 1) {
3891
4744
  throw new Error(
3892
4745
  `More than one subfolder found in zip file at \`${task.path}\`. Ensure that .txt files are in the top level of the zip file, or in a single subdirectory.`
@@ -3906,8 +4759,8 @@ var extractGtfsFiles = async (task) => {
3906
4759
  await Promise.all(
3907
4760
  directoryTextFiles.map(
3908
4761
  async (fileName) => rename(
3909
- path.join(subfolderName, fileName),
3910
- path.join(task.downloadDir, fileName)
4762
+ path2.join(subfolderName, fileName),
4763
+ path2.join(task.downloadDir, fileName)
3911
4764
  )
3912
4765
  )
3913
4766
  );
@@ -4054,8 +4907,8 @@ var importGtfsFiles = (db, task) => mapSeries2(
4054
4907
  resolve();
4055
4908
  return;
4056
4909
  }
4057
- const filepath = path.join(task.downloadDir, `${filename}`);
4058
- if (!existsSync(filepath)) {
4910
+ const filepath = path2.join(task.downloadDir, `${filename}`);
4911
+ if (!existsSync2(filepath)) {
4059
4912
  if (!model.nonstandard) {
4060
4913
  task.log(`Importing - ${filename} - No file found\r`);
4061
4914
  }
@@ -4248,8 +5101,8 @@ async function importGtfs(initialConfig) {
4248
5101
  }
4249
5102
 
4250
5103
  // src/lib/export.ts
4251
- import path2 from "node:path";
4252
- import { writeFile as writeFile2 } from "node:fs/promises";
5104
+ import path3 from "path";
5105
+ import { writeFile as writeFile2 } from "fs/promises";
4253
5106
  import { without, compact as compact2 } from "lodash-es";
4254
5107
  import pluralize3 from "pluralize";
4255
5108
  import { stringify } from "csv-stringify";
@@ -4292,7 +5145,7 @@ var exportGtfs = async (initialConfig) => {
4292
5145
  )} using SQLite database at ${config.sqlitePath}`
4293
5146
  );
4294
5147
  const folderName = generateFolderName(agencies[0].agency_name);
4295
- const defaultExportPath = path2.join(process.cwd(), "gtfs-export", folderName);
5148
+ const defaultExportPath = path3.join(process.cwd(), "gtfs-export", folderName);
4296
5149
  const exportPath = untildify4(config.exportPath || defaultExportPath);
4297
5150
  await prepDirectory(exportPath);
4298
5151
  const modelsToExport = Object.values(models_exports).filter(
@@ -4301,7 +5154,7 @@ var exportGtfs = async (initialConfig) => {
4301
5154
  const exportedFiles = await mapSeries3(
4302
5155
  modelsToExport,
4303
5156
  async (model) => {
4304
- const filePath = path2.join(
5157
+ const filePath = path3.join(
4305
5158
  exportPath,
4306
5159
  `${model.filenameBase}.${model.filenameExtension}`
4307
5160
  );