gtfs 4.13.3 → 4.14.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.
@@ -135,2537 +135,9 @@ import mapSeries from "promise-map-series";
135
135
  import GtfsRealtimeBindings from "gtfs-realtime-bindings";
136
136
  import sqlString2 from "sqlstring-sqlite";
137
137
 
138
- // src/models/gtfs/agency.ts
139
- var model = {
140
- filenameBase: "agency",
141
- filenameExtension: "txt",
142
- schema: [
143
- {
144
- name: "agency_id",
145
- type: "text",
146
- primary: true,
147
- prefix: true
148
- },
149
- {
150
- name: "agency_name",
151
- type: "text",
152
- required: true,
153
- nocase: true
154
- },
155
- {
156
- name: "agency_url",
157
- type: "text",
158
- required: true
159
- },
160
- {
161
- name: "agency_timezone",
162
- type: "text",
163
- required: true
164
- },
165
- {
166
- name: "agency_lang",
167
- type: "text",
168
- nocase: true
169
- },
170
- {
171
- name: "agency_phone",
172
- type: "text",
173
- nocase: true
174
- },
175
- {
176
- name: "agency_fare_url",
177
- type: "text"
178
- },
179
- {
180
- name: "agency_email",
181
- type: "text",
182
- nocase: true
183
- }
184
- ]
185
- };
186
- var agency_default = model;
187
-
188
- // src/models/gtfs/areas.ts
189
- var model2 = {
190
- filenameBase: "areas",
191
- filenameExtension: "txt",
192
- schema: [
193
- {
194
- name: "area_id",
195
- type: "text",
196
- required: true,
197
- primary: true,
198
- prefix: true
199
- },
200
- {
201
- name: "area_name",
202
- type: "text"
203
- }
204
- ]
205
- };
206
- var areas_default = model2;
207
-
208
- // src/models/gtfs/attributions.ts
209
- var model3 = {
210
- filenameBase: "attributions",
211
- filenameExtension: "txt",
212
- schema: [
213
- {
214
- name: "attribution_id",
215
- type: "text",
216
- prefix: true
217
- },
218
- {
219
- name: "agency_id",
220
- type: "text",
221
- prefix: true
222
- },
223
- {
224
- name: "route_id",
225
- type: "text",
226
- prefix: true
227
- },
228
- {
229
- name: "trip_id",
230
- type: "text",
231
- prefix: true
232
- },
233
- {
234
- name: "organization_name",
235
- type: "text",
236
- required: true,
237
- nocase: true
238
- },
239
- {
240
- name: "is_producer",
241
- type: "integer",
242
- min: 0,
243
- max: 1
244
- },
245
- {
246
- name: "is_operator",
247
- type: "integer",
248
- min: 0,
249
- max: 1
250
- },
251
- {
252
- name: "is_authority",
253
- type: "integer",
254
- min: 0,
255
- max: 1
256
- },
257
- {
258
- name: "attribution_url",
259
- type: "text"
260
- },
261
- {
262
- name: "attribution_email",
263
- type: "text",
264
- nocase: true
265
- },
266
- {
267
- name: "attribution_phone",
268
- type: "text",
269
- nocase: true
270
- }
271
- ]
272
- };
273
- var attributions_default = model3;
274
-
275
- // src/models/gtfs/booking-rules.ts
276
- var model4 = {
277
- filenameBase: "booking_rules",
278
- filenameExtension: "txt",
279
- schema: [
280
- {
281
- name: "booking_rule_id",
282
- type: "text",
283
- primary: true,
284
- prefix: true
285
- },
286
- {
287
- name: "booking_type",
288
- type: "integer",
289
- required: true,
290
- min: 0,
291
- max: 2
292
- },
293
- {
294
- name: "prior_notice_duration_min",
295
- type: "integer",
296
- min: 0
297
- },
298
- {
299
- name: "prior_notice_duration_max",
300
- type: "integer",
301
- min: 0
302
- },
303
- {
304
- name: "prior_notice_last_day",
305
- type: "integer",
306
- min: 0
307
- },
308
- {
309
- name: "prior_notice_last_time",
310
- type: "text"
311
- },
312
- {
313
- name: "prior_notice_last_timestamp",
314
- type: "integer",
315
- index: true
316
- },
317
- {
318
- name: "prior_notice_start_day",
319
- type: "integer",
320
- min: 0
321
- },
322
- {
323
- name: "prior_notice_start_time",
324
- type: "text"
325
- },
326
- {
327
- name: "prior_notice_start_timestamp",
328
- type: "integer",
329
- index: true
330
- },
331
- {
332
- name: "prior_notice_service_id",
333
- type: "text",
334
- prefix: true
335
- },
336
- {
337
- name: "message",
338
- type: "text",
339
- nocase: true
340
- },
341
- {
342
- name: "pickup_message",
343
- type: "text",
344
- nocase: true
345
- },
346
- {
347
- name: "drop_off_message",
348
- type: "text",
349
- nocase: true
350
- },
351
- {
352
- name: "phone_number",
353
- type: "text",
354
- nocase: true
355
- },
356
- {
357
- name: "info_url",
358
- type: "text"
359
- },
360
- {
361
- name: "booking_url",
362
- type: "text"
363
- }
364
- ]
365
- };
366
- var booking_rules_default = model4;
367
-
368
- // src/models/gtfs/calendar-dates.ts
369
- var model5 = {
370
- filenameBase: "calendar_dates",
371
- filenameExtension: "txt",
372
- schema: [
373
- {
374
- name: "service_id",
375
- type: "text",
376
- required: true,
377
- primary: true,
378
- prefix: true
379
- },
380
- {
381
- name: "date",
382
- type: "date",
383
- required: true,
384
- primary: true
385
- },
386
- {
387
- name: "exception_type",
388
- type: "integer",
389
- required: true,
390
- min: 1,
391
- max: 2,
392
- index: true
393
- },
394
- {
395
- name: "holiday_name",
396
- type: "text",
397
- nocase: true
398
- }
399
- ]
400
- };
401
- var calendar_dates_default = model5;
402
-
403
- // src/models/gtfs/calendar.ts
404
- var model6 = {
405
- filenameBase: "calendar",
406
- filenameExtension: "txt",
407
- schema: [
408
- {
409
- name: "service_id",
410
- type: "text",
411
- required: true,
412
- primary: true,
413
- prefix: true
414
- },
415
- {
416
- name: "monday",
417
- type: "integer",
418
- required: true,
419
- min: 0,
420
- max: 1
421
- },
422
- {
423
- name: "tuesday",
424
- type: "integer",
425
- required: true,
426
- min: 0,
427
- max: 1
428
- },
429
- {
430
- name: "wednesday",
431
- type: "integer",
432
- required: true,
433
- min: 0,
434
- max: 1
435
- },
436
- {
437
- name: "thursday",
438
- type: "integer",
439
- required: true,
440
- min: 0,
441
- max: 1
442
- },
443
- {
444
- name: "friday",
445
- type: "integer",
446
- required: true,
447
- min: 0,
448
- max: 1
449
- },
450
- {
451
- name: "saturday",
452
- type: "integer",
453
- required: true,
454
- min: 0,
455
- max: 1
456
- },
457
- {
458
- name: "sunday",
459
- type: "integer",
460
- required: true,
461
- min: 0,
462
- max: 1
463
- },
464
- {
465
- name: "start_date",
466
- type: "date",
467
- required: true,
468
- index: true
469
- },
470
- {
471
- name: "end_date",
472
- type: "date",
473
- required: true,
474
- index: true
475
- }
476
- ]
477
- };
478
- var calendar_default = model6;
479
-
480
- // src/models/gtfs/fare-attributes.ts
481
- var model7 = {
482
- filenameBase: "fare_attributes",
483
- filenameExtension: "txt",
484
- schema: [
485
- {
486
- name: "fare_id",
487
- type: "text",
488
- required: true,
489
- primary: true,
490
- prefix: true
491
- },
492
- {
493
- name: "price",
494
- type: "real",
495
- required: true
496
- },
497
- {
498
- name: "currency_type",
499
- type: "text",
500
- required: true
501
- },
502
- {
503
- name: "payment_method",
504
- type: "integer",
505
- required: true,
506
- min: 0,
507
- max: 1
508
- },
509
- {
510
- name: "transfers",
511
- type: "integer",
512
- min: 0,
513
- max: 2
514
- },
515
- {
516
- name: "agency_id",
517
- type: "text",
518
- prefix: true
519
- },
520
- {
521
- name: "transfer_duration",
522
- type: "integer",
523
- min: 0
524
- }
525
- ]
526
- };
527
- var fare_attributes_default = model7;
528
-
529
- // src/models/gtfs/fare-leg-rules.ts
530
- var model8 = {
531
- filenameBase: "fare_leg_rules",
532
- filenameExtension: "txt",
533
- schema: [
534
- {
535
- name: "leg_group_id",
536
- type: "text",
537
- prefix: true
538
- },
539
- {
540
- name: "network_id",
541
- type: "text",
542
- primary: true,
543
- prefix: true
544
- },
545
- {
546
- name: "from_area_id",
547
- type: "text",
548
- primary: true,
549
- prefix: true
550
- },
551
- {
552
- name: "to_area_id",
553
- type: "text",
554
- primary: true,
555
- prefix: true
556
- },
557
- {
558
- name: "from_timeframe_group_id",
559
- type: "text",
560
- primary: true,
561
- prefix: true
562
- },
563
- {
564
- name: "to_timeframe_group_id",
565
- type: "text",
566
- primary: true,
567
- prefix: true
568
- },
569
- {
570
- name: "fare_product_id",
571
- type: "text",
572
- required: true,
573
- primary: true,
574
- prefix: true
575
- },
576
- {
577
- name: "rule_priority",
578
- type: "integer",
579
- min: 0
580
- }
581
- ]
582
- };
583
- var fare_leg_rules_default = model8;
584
-
585
- // src/models/gtfs/fare-media.ts
586
- var model9 = {
587
- filenameBase: "fare_media",
588
- filenameExtension: "txt",
589
- schema: [
590
- {
591
- name: "fare_media_id",
592
- type: "text",
593
- required: true,
594
- primary: true,
595
- prefix: true
596
- },
597
- {
598
- name: "fare_media_name",
599
- type: "text"
600
- },
601
- {
602
- name: "fare_media_type",
603
- type: "integer",
604
- required: true,
605
- min: 0,
606
- max: 4
607
- }
608
- ]
609
- };
610
- var fare_media_default = model9;
611
-
612
- // src/models/gtfs/fare-products.ts
613
- var model10 = {
614
- filenameBase: "fare_products",
615
- filenameExtension: "txt",
616
- schema: [
617
- {
618
- name: "fare_product_id",
619
- type: "text",
620
- required: true,
621
- primary: true,
622
- prefix: true
623
- },
624
- {
625
- name: "fare_product_name",
626
- type: "text"
627
- },
628
- {
629
- name: "fare_media_id",
630
- type: "text",
631
- primary: true,
632
- prefix: true
633
- },
634
- {
635
- name: "amount",
636
- type: "real",
637
- required: true
638
- },
639
- {
640
- name: "currency",
641
- type: "text",
642
- required: true
643
- }
644
- ]
645
- };
646
- var fare_products_default = model10;
647
-
648
- // src/models/gtfs/fare-rules.ts
649
- var model11 = {
650
- filenameBase: "fare_rules",
651
- filenameExtension: "txt",
652
- schema: [
653
- {
654
- name: "fare_id",
655
- type: "text",
656
- required: true,
657
- prefix: true
658
- },
659
- {
660
- name: "route_id",
661
- type: "text",
662
- prefix: true
663
- },
664
- {
665
- name: "origin_id",
666
- type: "text",
667
- prefix: true
668
- },
669
- {
670
- name: "destination_id",
671
- type: "text",
672
- prefix: true
673
- },
674
- {
675
- name: "contains_id",
676
- type: "text",
677
- prefix: true
678
- }
679
- ]
680
- };
681
- var fare_rules_default = model11;
682
-
683
- // src/models/gtfs/fare-transfer-rules.ts
684
- var model12 = {
685
- filenameBase: "fare_transfer_rules",
686
- filenameExtension: "txt",
687
- schema: [
688
- {
689
- name: "from_leg_group_id",
690
- type: "text",
691
- primary: true,
692
- prefix: true
693
- },
694
- {
695
- name: "to_leg_group_id",
696
- type: "text",
697
- primary: true,
698
- prefix: true
699
- },
700
- {
701
- name: "transfer_count",
702
- type: "integer",
703
- min: -1,
704
- primary: true
705
- },
706
- {
707
- name: "transfer_id",
708
- type: "text",
709
- prefix: true
710
- },
711
- {
712
- name: "duration_limit",
713
- type: "integer",
714
- min: 0,
715
- primary: true
716
- },
717
- {
718
- name: "duration_limit_type",
719
- type: "integer",
720
- min: 0,
721
- max: 3
722
- },
723
- {
724
- name: "fare_transfer_type",
725
- type: "integer",
726
- min: 0,
727
- max: 2,
728
- required: true
729
- },
730
- {
731
- name: "fare_product_id",
732
- type: "text",
733
- primary: true,
734
- prefix: true
735
- }
736
- ]
737
- };
738
- var fare_transfer_rules_default = model12;
739
-
740
- // src/models/gtfs/feed-info.ts
741
- var model13 = {
742
- filenameBase: "feed_info",
743
- filenameExtension: "txt",
744
- schema: [
745
- {
746
- name: "feed_publisher_name",
747
- type: "text",
748
- required: true,
749
- nocase: true
750
- },
751
- {
752
- name: "feed_publisher_url",
753
- type: "text",
754
- required: true
755
- },
756
- {
757
- name: "feed_lang",
758
- type: "text",
759
- required: true
760
- },
761
- {
762
- name: "default_lang",
763
- type: "text",
764
- nocase: true
765
- },
766
- {
767
- name: "feed_start_date",
768
- type: "date"
769
- },
770
- {
771
- name: "feed_end_date",
772
- type: "date"
773
- },
774
- {
775
- name: "feed_version",
776
- type: "text"
777
- },
778
- {
779
- name: "feed_contact_email",
780
- type: "text",
781
- nocase: true
782
- },
783
- {
784
- name: "feed_contact_url",
785
- type: "text"
786
- }
787
- ]
788
- };
789
- var feed_info_default = model13;
790
-
791
- // src/models/gtfs/frequencies.ts
792
- var model14 = {
793
- filenameBase: "frequencies",
794
- filenameExtension: "txt",
795
- schema: [
796
- {
797
- name: "trip_id",
798
- type: "text",
799
- required: true,
800
- primary: true,
801
- prefix: true
802
- },
803
- {
804
- name: "start_time",
805
- type: "text",
806
- required: true,
807
- primary: true
808
- },
809
- {
810
- name: "start_timestamp",
811
- type: "integer"
812
- },
813
- {
814
- name: "end_time",
815
- type: "text",
816
- required: true
817
- },
818
- {
819
- name: "end_timestamp",
820
- type: "integer"
821
- },
822
- {
823
- name: "headway_secs",
824
- type: "integer",
825
- required: true,
826
- min: 0
827
- },
828
- {
829
- name: "exact_times",
830
- type: "integer",
831
- min: 0,
832
- max: 1
833
- }
834
- ]
835
- };
836
- var frequencies_default = model14;
837
-
838
- // src/models/gtfs/levels.ts
839
- var model15 = {
840
- filenameBase: "levels",
841
- filenameExtension: "txt",
842
- schema: [
843
- {
844
- name: "level_id",
845
- type: "text",
846
- primary: true,
847
- required: true,
848
- prefix: true
849
- },
850
- {
851
- name: "level_index",
852
- type: "real",
853
- required: true
854
- },
855
- {
856
- name: "level_name",
857
- type: "text",
858
- nocase: true
859
- }
860
- ]
861
- };
862
- var levels_default = model15;
863
-
864
- // src/models/gtfs/location-groups.ts
865
- var model16 = {
866
- filenameBase: "location_groups",
867
- filenameExtension: "txt",
868
- schema: [
869
- {
870
- name: "location_group_id",
871
- type: "text",
872
- primary: true,
873
- prefix: true
874
- },
875
- {
876
- name: "location_group_name",
877
- type: "text",
878
- nocase: true
879
- }
880
- ]
881
- };
882
- var location_groups_default = model16;
883
-
884
- // src/models/gtfs/location-group-stops.ts
885
- var model17 = {
886
- filenameBase: "location_group_stops",
887
- filenameExtension: "txt",
888
- schema: [
889
- {
890
- name: "location_group_id",
891
- type: "text",
892
- prefix: true,
893
- index: true,
894
- required: true
895
- },
896
- {
897
- name: "stop_id",
898
- type: "text",
899
- required: true,
900
- prefix: true,
901
- index: true
902
- }
903
- ]
904
- };
905
- var location_group_stops_default = model17;
906
-
907
- // src/models/gtfs/locations.ts
908
- var model18 = {
909
- filenameBase: "locations",
910
- filenameExtension: "geojson",
911
- schema: [
912
- {
913
- name: "geojson",
914
- type: "text"
915
- }
916
- ]
917
- };
918
- var locations_default = model18;
919
-
920
- // src/models/gtfs/networks.ts
921
- var model19 = {
922
- filenameBase: "networks",
923
- filenameExtension: "txt",
924
- schema: [
925
- {
926
- name: "network_id",
927
- type: "text",
928
- primary: true,
929
- required: true,
930
- prefix: true
931
- },
932
- {
933
- name: "network_name",
934
- type: "text",
935
- nocase: true
936
- }
937
- ]
938
- };
939
- var networks_default = model19;
940
-
941
- // src/models/gtfs/pathways.ts
942
- var model20 = {
943
- filenameBase: "pathways",
944
- filenameExtension: "txt",
945
- schema: [
946
- {
947
- name: "pathway_id",
948
- type: "text",
949
- primary: true,
950
- required: true,
951
- prefix: true
952
- },
953
- {
954
- name: "from_stop_id",
955
- type: "text",
956
- required: true,
957
- prefix: true
958
- },
959
- {
960
- name: "to_stop_id",
961
- type: "text",
962
- required: true,
963
- prefix: true
964
- },
965
- {
966
- name: "pathway_mode",
967
- type: "integer",
968
- required: true,
969
- min: 1,
970
- max: 7
971
- },
972
- {
973
- name: "is_bidirectional",
974
- type: "integer",
975
- required: true,
976
- min: 0,
977
- max: 1
978
- },
979
- {
980
- name: "length",
981
- type: "real",
982
- min: 0
983
- },
984
- {
985
- name: "traversal_time",
986
- type: "integer",
987
- min: 0
988
- },
989
- {
990
- name: "stair_count",
991
- type: "integer"
992
- },
993
- {
994
- name: "max_slope",
995
- type: "real"
996
- },
997
- {
998
- name: "min_width",
999
- type: "real",
1000
- min: 0
1001
- },
1002
- {
1003
- name: "signposted_as",
1004
- type: "text",
1005
- nocase: true
1006
- },
1007
- {
1008
- name: "reversed_signposted_as",
1009
- type: "text",
1010
- nocase: true
1011
- }
1012
- ]
1013
- };
1014
- var pathways_default = model20;
1015
-
1016
- // src/models/gtfs/route-networks.ts
1017
- var model21 = {
1018
- filenameBase: "route_networks",
1019
- filenameExtension: "txt",
1020
- schema: [
1021
- {
1022
- name: "network_id",
1023
- type: "text",
1024
- required: true,
1025
- prefix: true
1026
- },
1027
- {
1028
- name: "route_id",
1029
- type: "text",
1030
- primary: true,
1031
- index: true,
1032
- prefix: true
1033
- }
1034
- ]
1035
- };
1036
- var route_networks_default = model21;
1037
-
1038
- // src/models/gtfs/routes.ts
1039
- var model22 = {
1040
- filenameBase: "routes",
1041
- filenameExtension: "txt",
1042
- schema: [
1043
- {
1044
- name: "route_id",
1045
- type: "text",
1046
- primary: true,
1047
- required: true,
1048
- prefix: true
1049
- },
1050
- {
1051
- name: "agency_id",
1052
- type: "text",
1053
- prefix: true
1054
- },
1055
- {
1056
- name: "route_short_name",
1057
- type: "text",
1058
- nocase: true
1059
- },
1060
- {
1061
- name: "route_long_name",
1062
- type: "text",
1063
- nocase: true
1064
- },
1065
- {
1066
- name: "route_desc",
1067
- type: "text",
1068
- nocase: true
1069
- },
1070
- {
1071
- name: "route_type",
1072
- type: "integer",
1073
- required: true,
1074
- min: 0
1075
- // Support extended GTFS route types with no max value
1076
- // https://developers.google.com/transit/gtfs/reference/extended-route-types
1077
- },
1078
- {
1079
- name: "route_url",
1080
- type: "text"
1081
- },
1082
- {
1083
- name: "route_color",
1084
- type: "text",
1085
- nocase: true
1086
- },
1087
- {
1088
- name: "route_text_color",
1089
- type: "text",
1090
- nocase: true
1091
- },
1092
- {
1093
- name: "route_sort_order",
1094
- type: "integer",
1095
- min: 0
1096
- },
1097
- {
1098
- name: "continuous_pickup",
1099
- type: "integer",
1100
- min: 0,
1101
- max: 3
1102
- },
1103
- {
1104
- name: "continuous_drop_off",
1105
- type: "integer",
1106
- min: 0,
1107
- max: 3
1108
- },
1109
- {
1110
- name: "network_id",
1111
- type: "text",
1112
- prefix: true
1113
- }
1114
- ]
1115
- };
1116
- var routes_default = model22;
1117
-
1118
- // src/models/gtfs/shapes.ts
1119
- var model23 = {
1120
- filenameBase: "shapes",
1121
- filenameExtension: "txt",
1122
- schema: [
1123
- {
1124
- name: "shape_id",
1125
- type: "text",
1126
- required: true,
1127
- primary: true,
1128
- prefix: true
1129
- },
1130
- {
1131
- name: "shape_pt_lat",
1132
- type: "real",
1133
- required: true,
1134
- min: -90,
1135
- max: 90
1136
- },
1137
- {
1138
- name: "shape_pt_lon",
1139
- type: "real",
1140
- required: true,
1141
- min: -180,
1142
- max: 180
1143
- },
1144
- {
1145
- name: "shape_pt_sequence",
1146
- type: "integer",
1147
- required: true,
1148
- primary: true,
1149
- min: 0
1150
- },
1151
- {
1152
- name: "shape_dist_traveled",
1153
- type: "real",
1154
- min: 0
1155
- }
1156
- ]
1157
- };
1158
- var shapes_default = model23;
1159
-
1160
- // src/models/gtfs/stop-areas.ts
1161
- var model24 = {
1162
- filenameBase: "stop_areas",
1163
- filenameExtension: "txt",
1164
- schema: [
1165
- {
1166
- name: "area_id",
1167
- type: "text",
1168
- required: true,
1169
- prefix: true
1170
- },
1171
- {
1172
- name: "stop_id",
1173
- type: "text",
1174
- required: true,
1175
- prefix: true
1176
- }
1177
- ]
1178
- };
1179
- var stop_areas_default = model24;
1180
-
1181
- // src/models/gtfs/stop-times.ts
1182
- var model25 = {
1183
- filenameBase: "stop_times",
1184
- filenameExtension: "txt",
1185
- schema: [
1186
- {
1187
- name: "trip_id",
1188
- type: "text",
1189
- required: true,
1190
- primary: true,
1191
- prefix: true
1192
- },
1193
- {
1194
- name: "arrival_time",
1195
- type: "text"
1196
- },
1197
- {
1198
- name: "arrival_timestamp",
1199
- type: "integer",
1200
- index: true
1201
- },
1202
- {
1203
- name: "departure_time",
1204
- type: "text"
1205
- },
1206
- {
1207
- name: "departure_timestamp",
1208
- type: "integer",
1209
- index: true
1210
- },
1211
- {
1212
- name: "location_group_id",
1213
- type: "text",
1214
- prefix: true,
1215
- index: true
1216
- },
1217
- {
1218
- name: "location_id",
1219
- type: "text",
1220
- prefix: true,
1221
- index: true
1222
- },
1223
- {
1224
- name: "stop_id",
1225
- type: "text",
1226
- required: true,
1227
- prefix: true,
1228
- index: true
1229
- },
1230
- {
1231
- name: "stop_sequence",
1232
- type: "integer",
1233
- required: true,
1234
- primary: true,
1235
- min: 0
1236
- },
1237
- {
1238
- name: "stop_headsign",
1239
- type: "text",
1240
- nocase: true
1241
- },
1242
- {
1243
- name: "start_pickup_drop_off_window",
1244
- type: "text"
1245
- },
1246
- {
1247
- name: "start_pickup_drop_off_window_timestamp",
1248
- type: "integer",
1249
- index: true
1250
- },
1251
- {
1252
- name: "pickup_type",
1253
- type: "integer",
1254
- min: 0,
1255
- max: 3
1256
- },
1257
- {
1258
- name: "drop_off_type",
1259
- type: "integer",
1260
- min: 0,
1261
- max: 3
1262
- },
1263
- {
1264
- name: "continuous_pickup",
1265
- type: "integer",
1266
- min: 0,
1267
- max: 3
1268
- },
1269
- {
1270
- name: "continuous_drop_off",
1271
- type: "integer",
1272
- min: 0,
1273
- max: 3
1274
- },
1275
- {
1276
- name: "shape_dist_traveled",
1277
- type: "real",
1278
- min: 0
1279
- },
1280
- {
1281
- name: "timepoint",
1282
- type: "integer",
1283
- min: 0,
1284
- max: 1
1285
- },
1286
- {
1287
- name: "pickup_booking_rule_id",
1288
- type: "text",
1289
- prefix: true,
1290
- index: true
1291
- },
1292
- {
1293
- name: "drop_off_booking_rule_id",
1294
- type: "text",
1295
- prefix: true,
1296
- index: true
1297
- }
1298
- ]
1299
- };
1300
- var stop_times_default = model25;
1301
-
1302
- // src/models/gtfs/stops.ts
1303
- var model26 = {
1304
- filenameBase: "stops",
1305
- filenameExtension: "txt",
1306
- schema: [
1307
- {
1308
- name: "stop_id",
1309
- type: "text",
1310
- primary: true,
1311
- required: true,
1312
- prefix: true
1313
- },
1314
- {
1315
- name: "stop_code",
1316
- type: "text"
1317
- },
1318
- {
1319
- name: "stop_name",
1320
- type: "text",
1321
- nocase: true
1322
- },
1323
- {
1324
- name: "tts_stop_name",
1325
- type: "text",
1326
- nocase: true
1327
- },
1328
- {
1329
- name: "stop_desc",
1330
- type: "text",
1331
- nocase: true
1332
- },
1333
- {
1334
- name: "stop_lat",
1335
- type: "real",
1336
- min: -90,
1337
- max: 90
1338
- },
1339
- {
1340
- name: "stop_lon",
1341
- type: "real",
1342
- min: -180,
1343
- max: 180
1344
- },
1345
- {
1346
- name: "zone_id",
1347
- type: "text",
1348
- prefix: true
1349
- },
1350
- {
1351
- name: "stop_url",
1352
- type: "text"
1353
- },
1354
- {
1355
- name: "location_type",
1356
- type: "integer",
1357
- min: 0,
1358
- max: 4
1359
- },
1360
- {
1361
- name: "parent_station",
1362
- type: "text",
1363
- index: true
1364
- },
1365
- {
1366
- name: "stop_timezone",
1367
- type: "text"
1368
- },
1369
- {
1370
- name: "wheelchair_boarding",
1371
- type: "integer",
1372
- min: 0,
1373
- max: 2
1374
- },
1375
- {
1376
- name: "level_id",
1377
- type: "text",
1378
- prefix: true
1379
- },
1380
- {
1381
- name: "platform_code",
1382
- type: "text"
1383
- }
1384
- ]
1385
- };
1386
- var stops_default = model26;
1387
-
1388
- // src/models/gtfs/timeframes.ts
1389
- var model27 = {
1390
- filenameBase: "timeframes",
1391
- filenameExtension: "txt",
1392
- schema: [
1393
- {
1394
- name: "timeframe_group_id",
1395
- type: "text",
1396
- primary: true,
1397
- prefix: true
1398
- },
1399
- {
1400
- name: "start_time",
1401
- type: "text"
1402
- },
1403
- {
1404
- name: "end_time",
1405
- type: "text"
1406
- },
1407
- {
1408
- name: "service_id",
1409
- type: "text",
1410
- required: true,
1411
- index: true,
1412
- prefix: true
1413
- }
1414
- ]
1415
- };
1416
- var timeframes_default = model27;
1417
-
1418
- // src/models/gtfs/transfers.ts
1419
- var model28 = {
1420
- filenameBase: "transfers",
1421
- filenameExtension: "txt",
1422
- schema: [
1423
- {
1424
- name: "from_stop_id",
1425
- type: "text",
1426
- primary: true,
1427
- prefix: true
1428
- },
1429
- {
1430
- name: "to_stop_id",
1431
- type: "text",
1432
- primary: true,
1433
- prefix: true
1434
- },
1435
- {
1436
- name: "from_route_id",
1437
- type: "text",
1438
- primary: true,
1439
- prefix: true
1440
- },
1441
- {
1442
- name: "to_route_id",
1443
- type: "text",
1444
- primary: true,
1445
- prefix: true
1446
- },
1447
- {
1448
- name: "from_trip_id",
1449
- type: "text",
1450
- primary: true,
1451
- prefix: true
1452
- },
1453
- {
1454
- name: "to_trip_id",
1455
- type: "text",
1456
- primary: true,
1457
- prefix: true
1458
- },
1459
- {
1460
- name: "transfer_type",
1461
- type: "integer",
1462
- min: 0,
1463
- max: 5,
1464
- default: 0
1465
- },
1466
- {
1467
- name: "min_transfer_time",
1468
- type: "integer",
1469
- min: 0
1470
- }
1471
- ]
1472
- };
1473
- var transfers_default = model28;
1474
-
1475
- // src/models/gtfs/translations.ts
1476
- var model29 = {
1477
- filenameBase: "translations",
1478
- filenameExtension: "txt",
1479
- schema: [
1480
- {
1481
- name: "table_name",
1482
- type: "text",
1483
- primary: true,
1484
- required: true
1485
- },
1486
- {
1487
- name: "field_name",
1488
- type: "text",
1489
- primary: true,
1490
- required: true
1491
- },
1492
- {
1493
- name: "language",
1494
- type: "text",
1495
- primary: true,
1496
- required: true
1497
- },
1498
- {
1499
- name: "translation",
1500
- type: "text",
1501
- required: true
1502
- },
1503
- {
1504
- name: "record_id",
1505
- type: "text",
1506
- primary: true,
1507
- prefix: true
1508
- },
1509
- {
1510
- name: "record_sub_id",
1511
- type: "text",
1512
- primary: true,
1513
- prefix: true
1514
- },
1515
- {
1516
- name: "field_value",
1517
- type: "text",
1518
- primary: true
1519
- }
1520
- ]
1521
- };
1522
- var translations_default = model29;
1523
-
1524
- // src/models/gtfs/trips.ts
1525
- var model30 = {
1526
- filenameBase: "trips",
1527
- filenameExtension: "txt",
1528
- schema: [
1529
- {
1530
- name: "route_id",
1531
- type: "text",
1532
- required: true,
1533
- index: true,
1534
- prefix: true
1535
- },
1536
- {
1537
- name: "service_id",
1538
- type: "text",
1539
- required: true,
1540
- index: true,
1541
- prefix: true
1542
- },
1543
- {
1544
- name: "trip_id",
1545
- type: "text",
1546
- primary: true,
1547
- required: true,
1548
- prefix: true
1549
- },
1550
- {
1551
- name: "trip_headsign",
1552
- type: "text",
1553
- nocase: true
1554
- },
1555
- {
1556
- name: "trip_short_name",
1557
- type: "text",
1558
- nocase: true
1559
- },
1560
- {
1561
- name: "direction_id",
1562
- type: "integer",
1563
- min: 0,
1564
- max: 1,
1565
- index: true
1566
- },
1567
- {
1568
- name: "block_id",
1569
- type: "text",
1570
- index: true,
1571
- prefix: true
1572
- },
1573
- {
1574
- name: "shape_id",
1575
- type: "text",
1576
- index: true,
1577
- prefix: true
1578
- },
1579
- {
1580
- name: "wheelchair_accessible",
1581
- type: "integer",
1582
- min: 0,
1583
- max: 2
1584
- },
1585
- {
1586
- name: "bikes_allowed",
1587
- type: "integer",
1588
- min: 0,
1589
- max: 2
1590
- }
1591
- ]
1592
- };
1593
- var trips_default = model30;
1594
-
1595
- // src/models/non-standard/timetables.ts
1596
- var model31 = {
1597
- filenameBase: "timetables",
1598
- filenameExtension: "txt",
1599
- nonstandard: true,
1600
- schema: [
1601
- {
1602
- name: "id",
1603
- type: "integer",
1604
- primary: true,
1605
- prefix: true
1606
- },
1607
- {
1608
- name: "timetable_id",
1609
- type: "text",
1610
- prefix: true
1611
- },
1612
- {
1613
- name: "route_id",
1614
- type: "text",
1615
- prefix: true
1616
- },
1617
- {
1618
- name: "direction_id",
1619
- type: "integer",
1620
- min: 0,
1621
- max: 1
1622
- },
1623
- {
1624
- name: "start_date",
1625
- type: "date"
1626
- },
1627
- {
1628
- name: "end_date",
1629
- type: "date"
1630
- },
1631
- {
1632
- name: "monday",
1633
- type: "integer",
1634
- required: true,
1635
- min: 0,
1636
- max: 1
1637
- },
1638
- {
1639
- name: "tuesday",
1640
- type: "integer",
1641
- required: true,
1642
- min: 0,
1643
- max: 1
1644
- },
1645
- {
1646
- name: "wednesday",
1647
- type: "integer",
1648
- required: true,
1649
- min: 0,
1650
- max: 1
1651
- },
1652
- {
1653
- name: "thursday",
1654
- type: "integer",
1655
- required: true,
1656
- min: 0,
1657
- max: 1
1658
- },
1659
- {
1660
- name: "friday",
1661
- type: "integer",
1662
- required: true,
1663
- min: 0,
1664
- max: 1
1665
- },
1666
- {
1667
- name: "saturday",
1668
- type: "integer",
1669
- required: true,
1670
- min: 0,
1671
- max: 1
1672
- },
1673
- {
1674
- name: "sunday",
1675
- type: "integer",
1676
- required: true,
1677
- min: 0,
1678
- max: 1
1679
- },
1680
- {
1681
- name: "start_time",
1682
- type: "text"
1683
- },
1684
- {
1685
- name: "start_timestamp",
1686
- type: "integer"
1687
- },
1688
- {
1689
- name: "end_time",
1690
- type: "text"
1691
- },
1692
- {
1693
- name: "end_timestamp",
1694
- type: "integer"
1695
- },
1696
- {
1697
- name: "timetable_label",
1698
- type: "text",
1699
- nocase: true
1700
- },
1701
- {
1702
- name: "service_notes",
1703
- type: "text",
1704
- nocase: true
1705
- },
1706
- {
1707
- name: "orientation",
1708
- type: "text"
1709
- },
1710
- {
1711
- name: "timetable_page_id",
1712
- type: "text"
1713
- },
1714
- {
1715
- name: "timetable_sequence",
1716
- type: "integer",
1717
- min: 0,
1718
- index: true
1719
- },
1720
- {
1721
- name: "direction_name",
1722
- type: "text"
1723
- },
1724
- {
1725
- name: "include_exceptions",
1726
- type: "integer",
1727
- min: 0,
1728
- max: 1
1729
- },
1730
- {
1731
- name: "show_trip_continuation",
1732
- type: "integer",
1733
- min: 0,
1734
- max: 1
1735
- }
1736
- ]
1737
- };
1738
- var timetables_default = model31;
1739
-
1740
- // src/models/non-standard/timetable-pages.ts
1741
- var model32 = {
1742
- filenameBase: "timetable_pages",
1743
- filenameExtension: "txt",
1744
- nonstandard: true,
1745
- schema: [
1746
- {
1747
- name: "timetable_page_id",
1748
- type: "text",
1749
- primary: true,
1750
- prefix: true
1751
- },
1752
- {
1753
- name: "timetable_page_label",
1754
- type: "text"
1755
- },
1756
- {
1757
- name: "filename",
1758
- type: "text"
1759
- }
1760
- ]
1761
- };
1762
- var timetable_pages_default = model32;
1763
-
1764
- // src/models/non-standard/timetable-stop-order.ts
1765
- var model33 = {
1766
- filenameBase: "timetable_stop_order",
1767
- filenameExtension: "txt",
1768
- nonstandard: true,
1769
- schema: [
1770
- {
1771
- name: "id",
1772
- type: "integer",
1773
- primary: true,
1774
- prefix: true
1775
- },
1776
- {
1777
- name: "timetable_id",
1778
- type: "text",
1779
- index: true,
1780
- prefix: true
1781
- },
1782
- {
1783
- name: "stop_id",
1784
- type: "text",
1785
- prefix: true
1786
- },
1787
- {
1788
- name: "stop_sequence",
1789
- type: "integer",
1790
- min: 0,
1791
- index: true
1792
- }
1793
- ]
1794
- };
1795
- var timetable_stop_order_default = model33;
1796
-
1797
- // src/models/non-standard/timetable-notes.ts
1798
- var model34 = {
1799
- filenameBase: "timetable_notes",
1800
- filenameExtension: "txt",
1801
- nonstandard: true,
1802
- schema: [
1803
- {
1804
- name: "note_id",
1805
- type: "text",
1806
- primary: true,
1807
- prefix: true
1808
- },
1809
- {
1810
- name: "symbol",
1811
- type: "text"
1812
- },
1813
- {
1814
- name: "note",
1815
- type: "text",
1816
- nocase: true
1817
- }
1818
- ]
1819
- };
1820
- var timetable_notes_default = model34;
1821
-
1822
- // src/models/non-standard/timetable-notes-references.ts
1823
- var model35 = {
1824
- filenameBase: "timetable_notes_references",
1825
- filenameExtension: "txt",
1826
- nonstandard: true,
1827
- schema: [
1828
- {
1829
- name: "note_id",
1830
- type: "text",
1831
- prefix: true
1832
- },
1833
- {
1834
- name: "timetable_id",
1835
- type: "text",
1836
- index: true,
1837
- prefix: true
1838
- },
1839
- {
1840
- name: "route_id",
1841
- type: "text",
1842
- index: true,
1843
- prefix: true
1844
- },
1845
- {
1846
- name: "trip_id",
1847
- type: "text",
1848
- index: true,
1849
- prefix: true
1850
- },
1851
- {
1852
- name: "stop_id",
1853
- type: "text",
1854
- index: true,
1855
- prefix: true
1856
- },
1857
- {
1858
- name: "stop_sequence",
1859
- type: "integer",
1860
- min: 0,
1861
- index: true
1862
- },
1863
- {
1864
- name: "show_on_stoptime",
1865
- type: "integer",
1866
- min: 0,
1867
- max: 1
1868
- }
1869
- ]
1870
- };
1871
- var timetable_notes_references_default = model35;
1872
-
1873
- // src/models/non-standard/trips-dated-vehicle-journey.ts
1874
- var model36 = {
1875
- filenameBase: "trips_dated_vehicle_journeys",
1876
- filenameExtension: "txt",
1877
- nonstandard: true,
1878
- schema: [
1879
- {
1880
- name: "trip_id",
1881
- type: "text",
1882
- required: true,
1883
- index: true,
1884
- prefix: true
1885
- },
1886
- {
1887
- name: "operating_day_date",
1888
- type: "text",
1889
- index: true,
1890
- required: true
1891
- },
1892
- {
1893
- name: "dated_vehicle_journey_gid",
1894
- type: "text",
1895
- required: true
1896
- },
1897
- {
1898
- name: "journey_number",
1899
- type: "integer",
1900
- min: 0,
1901
- max: 65535,
1902
- index: true
1903
- }
1904
- ]
1905
- };
1906
- var trips_dated_vehicle_journey_default = model36;
1907
-
1908
- // src/models/gtfs-plus/calendar-attributes.ts
1909
- var model37 = {
1910
- filenameBase: "calendar_attributes",
1911
- filenameExtension: "txt",
1912
- nonstandard: true,
1913
- extension: "gtfs-plus",
1914
- schema: [
1915
- {
1916
- name: "service_id",
1917
- type: "text",
1918
- primary: true,
1919
- prefix: true
1920
- },
1921
- {
1922
- name: "service_description",
1923
- type: "text",
1924
- required: true,
1925
- nocase: true
1926
- }
1927
- ]
1928
- };
1929
- var calendar_attributes_default = model37;
1930
-
1931
- // src/models/gtfs-plus/directions.ts
1932
- var model38 = {
1933
- filenameBase: "directions",
1934
- filenameExtension: "txt",
1935
- nonstandard: true,
1936
- extension: "gtfs-plus",
1937
- schema: [
1938
- {
1939
- name: "route_id",
1940
- type: "text",
1941
- required: true,
1942
- primary: true,
1943
- prefix: true
1944
- },
1945
- {
1946
- name: "direction_id",
1947
- type: "integer",
1948
- min: 0,
1949
- max: 1,
1950
- primary: true
1951
- },
1952
- {
1953
- name: "direction",
1954
- type: "text",
1955
- required: true
1956
- }
1957
- ]
1958
- };
1959
- var directions_default = model38;
1960
-
1961
- // src/models/gtfs-plus/route-attributes.ts
1962
- var model39 = {
1963
- filenameBase: "route_attributes",
1964
- filenameExtension: "txt",
1965
- nonstandard: true,
1966
- extension: "gtfs-plus",
1967
- schema: [
1968
- {
1969
- name: "route_id",
1970
- type: "text",
1971
- primary: true,
1972
- prefix: true
1973
- },
1974
- {
1975
- name: "category",
1976
- type: "integer",
1977
- min: 0,
1978
- required: true
1979
- },
1980
- {
1981
- name: "subcategory",
1982
- type: "integer",
1983
- min: 101,
1984
- required: true
1985
- },
1986
- {
1987
- name: "running_way",
1988
- type: "integer",
1989
- min: 1,
1990
- required: true
1991
- }
1992
- ]
1993
- };
1994
- var route_attributes_default = model39;
1995
-
1996
- // src/models/gtfs-plus/stop-attributes.ts
1997
- var model40 = {
1998
- filenameBase: "stop_attributes",
1999
- filenameExtension: "txt",
2000
- nonstandard: true,
2001
- extension: "gtfs-plus",
2002
- schema: [
2003
- {
2004
- name: "stop_id",
2005
- type: "text",
2006
- required: true,
2007
- primary: true,
2008
- prefix: true
2009
- },
2010
- {
2011
- name: "accessibility_id",
2012
- type: "integer",
2013
- min: 0
2014
- },
2015
- {
2016
- name: "cardinal_direction",
2017
- type: "text"
2018
- },
2019
- {
2020
- name: "relative_position",
2021
- type: "text"
2022
- },
2023
- {
2024
- name: "stop_city",
2025
- type: "text",
2026
- nocase: true
2027
- }
2028
- ]
2029
- };
2030
- var stop_attributes_default = model40;
2031
-
2032
- // src/models/gtfs-ride/board-alight.ts
2033
- var model41 = {
2034
- filenameBase: "board_alight",
2035
- filenameExtension: "txt",
2036
- nonstandard: true,
2037
- extension: "gtfs-ride",
2038
- schema: [
2039
- {
2040
- name: "trip_id",
2041
- type: "text",
2042
- required: true,
2043
- index: true,
2044
- prefix: true
2045
- },
2046
- {
2047
- name: "stop_id",
2048
- type: "text",
2049
- required: true,
2050
- index: true,
2051
- prefix: true
2052
- },
2053
- {
2054
- name: "stop_sequence",
2055
- type: "integer",
2056
- required: true,
2057
- min: 0,
2058
- index: true
2059
- },
2060
- {
2061
- name: "record_use",
2062
- type: "integer",
2063
- required: true,
2064
- min: 0,
2065
- max: 1,
2066
- index: true
2067
- },
2068
- {
2069
- name: "schedule_relationship",
2070
- type: "integer",
2071
- min: 0,
2072
- max: 8
2073
- },
2074
- {
2075
- name: "boardings",
2076
- type: "integer",
2077
- min: 0
2078
- },
2079
- {
2080
- name: "alightings",
2081
- type: "integer",
2082
- min: 0
2083
- },
2084
- {
2085
- name: "current_load",
2086
- type: "integer",
2087
- min: 0
2088
- },
2089
- {
2090
- name: "load_count",
2091
- type: "integer",
2092
- min: 0
2093
- },
2094
- {
2095
- name: "load_type",
2096
- type: "integer",
2097
- min: 0,
2098
- max: 1
2099
- },
2100
- {
2101
- name: "rack_down",
2102
- type: "integer",
2103
- min: 0,
2104
- max: 1
2105
- },
2106
- {
2107
- name: "bike_boardings",
2108
- type: "integer",
2109
- min: 0
2110
- },
2111
- {
2112
- name: "bike_alightings",
2113
- type: "integer",
2114
- min: 0
2115
- },
2116
- {
2117
- name: "ramp_used",
2118
- type: "integer",
2119
- min: 0,
2120
- max: 1
2121
- },
2122
- {
2123
- name: "ramp_boardings",
2124
- type: "integer",
2125
- min: 0
2126
- },
2127
- {
2128
- name: "ramp_alightings",
2129
- type: "integer",
2130
- min: 0
2131
- },
2132
- {
2133
- name: "service_date",
2134
- type: "date",
2135
- index: true
2136
- },
2137
- {
2138
- name: "service_arrival_time",
2139
- type: "text"
2140
- },
2141
- {
2142
- name: "service_arrival_timestamp",
2143
- type: "integer",
2144
- index: true
2145
- },
2146
- {
2147
- name: "service_departure_time",
2148
- type: "text"
2149
- },
2150
- {
2151
- name: "service_departure_timestamp",
2152
- type: "integer",
2153
- index: true
2154
- },
2155
- {
2156
- name: "source",
2157
- type: "integer",
2158
- min: 0,
2159
- max: 4
2160
- }
2161
- ]
2162
- };
2163
- var board_alight_default = model41;
2164
-
2165
- // src/models/gtfs-ride/rider-trip.ts
2166
- var model42 = {
2167
- filenameBase: "rider_trip",
2168
- filenameExtension: "txt",
2169
- nonstandard: true,
2170
- extension: "gtfs-ride",
2171
- schema: [
2172
- {
2173
- name: "rider_id",
2174
- type: "text",
2175
- primary: true,
2176
- prefix: true
2177
- },
2178
- {
2179
- name: "agency_id",
2180
- type: "text",
2181
- index: true,
2182
- prefix: true
2183
- },
2184
- {
2185
- name: "trip_id",
2186
- type: "text",
2187
- index: true,
2188
- prefix: true
2189
- },
2190
- {
2191
- name: "boarding_stop_id",
2192
- type: "text",
2193
- index: true,
2194
- prefix: true
2195
- },
2196
- {
2197
- name: "boarding_stop_sequence",
2198
- type: "integer",
2199
- min: 0,
2200
- index: true
2201
- },
2202
- {
2203
- name: "alighting_stop_id",
2204
- type: "text",
2205
- index: true,
2206
- prefix: true
2207
- },
2208
- {
2209
- name: "alighting_stop_sequence",
2210
- type: "integer",
2211
- min: 0,
2212
- index: true
2213
- },
2214
- {
2215
- name: "service_date",
2216
- type: "date",
2217
- index: true
2218
- },
2219
- {
2220
- name: "boarding_time",
2221
- type: "text"
2222
- },
2223
- {
2224
- name: "boarding_timestamp",
2225
- type: "integer",
2226
- index: true
2227
- },
2228
- {
2229
- name: "alighting_time",
2230
- type: "text"
2231
- },
2232
- {
2233
- name: "alighting_timestamp",
2234
- type: "integer",
2235
- index: true
2236
- },
2237
- {
2238
- name: "rider_type",
2239
- type: "integer",
2240
- min: 0,
2241
- max: 13
2242
- },
2243
- {
2244
- name: "rider_type_description",
2245
- type: "text"
2246
- },
2247
- {
2248
- name: "fare_paid",
2249
- type: "real"
2250
- },
2251
- {
2252
- name: "transaction_type",
2253
- type: "integer",
2254
- min: 0,
2255
- max: 8
2256
- },
2257
- {
2258
- name: "fare_media",
2259
- type: "integer",
2260
- min: 0,
2261
- max: 9
2262
- },
2263
- {
2264
- name: "accompanying_device",
2265
- type: "integer",
2266
- min: 0,
2267
- max: 6
2268
- },
2269
- {
2270
- name: "transfer_status",
2271
- type: "integer",
2272
- min: 0,
2273
- max: 1
2274
- }
2275
- ]
2276
- };
2277
- var rider_trip_default = model42;
2278
-
2279
- // src/models/gtfs-ride/ridership.ts
2280
- var model43 = {
2281
- filenameBase: "ridership",
2282
- filenameExtension: "txt",
2283
- nonstandard: true,
2284
- extension: "gtfs-ride",
2285
- schema: [
2286
- {
2287
- name: "total_boardings",
2288
- type: "integer",
2289
- min: 0,
2290
- required: true
2291
- },
2292
- {
2293
- name: "total_alightings",
2294
- type: "integer",
2295
- min: 0,
2296
- required: true
2297
- },
2298
- {
2299
- name: "ridership_start_date",
2300
- type: "date",
2301
- index: true
2302
- },
2303
- {
2304
- name: "ridership_end_date",
2305
- type: "date",
2306
- index: true
2307
- },
2308
- {
2309
- name: "ridership_start_time",
2310
- type: "text"
2311
- },
2312
- {
2313
- name: "ridership_start_timestamp",
2314
- type: "integer",
2315
- index: true
2316
- },
2317
- {
2318
- name: "ridership_end_time",
2319
- type: "text"
2320
- },
2321
- {
2322
- name: "ridership_end_timestamp",
2323
- type: "integer",
2324
- index: true
2325
- },
2326
- {
2327
- name: "service_id",
2328
- type: "text",
2329
- index: true,
2330
- prefix: true
2331
- },
2332
- {
2333
- name: "monday",
2334
- type: "integer",
2335
- min: 0,
2336
- max: 1
2337
- },
2338
- {
2339
- name: "tuesday",
2340
- type: "integer",
2341
- min: 0,
2342
- max: 1
2343
- },
2344
- {
2345
- name: "wednesday",
2346
- type: "integer",
2347
- min: 0,
2348
- max: 1
2349
- },
2350
- {
2351
- name: "thursday",
2352
- type: "integer",
2353
- min: 0,
2354
- max: 1
2355
- },
2356
- {
2357
- name: "friday",
2358
- type: "integer",
2359
- min: 0,
2360
- max: 1
2361
- },
2362
- {
2363
- name: "saturday",
2364
- type: "integer",
2365
- min: 0,
2366
- max: 1
2367
- },
2368
- {
2369
- name: "sunday",
2370
- type: "integer",
2371
- min: 0,
2372
- max: 1
2373
- },
2374
- {
2375
- name: "agency_id",
2376
- type: "text",
2377
- index: true,
2378
- prefix: true
2379
- },
2380
- {
2381
- name: "route_id",
2382
- type: "text",
2383
- index: true,
2384
- prefix: true
2385
- },
2386
- {
2387
- name: "direction_id",
2388
- type: "integer",
2389
- min: 0,
2390
- max: 1,
2391
- index: true
2392
- },
2393
- {
2394
- name: "trip_id",
2395
- type: "text",
2396
- prefix: true
2397
- },
2398
- {
2399
- name: "stop_id",
2400
- type: "text",
2401
- prefix: true
2402
- }
2403
- ]
2404
- };
2405
- var ridership_default = model43;
2406
-
2407
- // src/models/gtfs-ride/trip-capacity.ts
2408
- var model44 = {
2409
- filenameBase: "trip_capacity",
2410
- filenameExtension: "txt",
2411
- nonstandard: true,
2412
- extension: "gtfs-ride",
2413
- schema: [
2414
- {
2415
- name: "agency_id",
2416
- type: "text",
2417
- index: true,
2418
- prefix: true
2419
- },
2420
- {
2421
- name: "trip_id",
2422
- type: "text",
2423
- index: true,
2424
- prefix: true
2425
- },
2426
- {
2427
- name: "service_date",
2428
- type: "date",
2429
- index: true
2430
- },
2431
- {
2432
- name: "vehicle_description",
2433
- type: "text"
2434
- },
2435
- {
2436
- name: "seated_capacity",
2437
- type: "integer",
2438
- min: 0
2439
- },
2440
- {
2441
- name: "standing_capacity",
2442
- type: "integer",
2443
- min: 0
2444
- },
2445
- {
2446
- name: "wheelchair_capacity",
2447
- type: "integer",
2448
- min: 0
2449
- },
2450
- {
2451
- name: "bike_capacity",
2452
- type: "integer",
2453
- min: 0
2454
- }
2455
- ]
2456
- };
2457
- var trip_capacity_default = model44;
2458
-
2459
- // src/models/gtfs-ride/ride-feed-info.ts
2460
- var model45 = {
2461
- filenameBase: "ride_feed_info",
2462
- filenameExtension: "txt",
2463
- nonstandard: true,
2464
- extension: "gtfs-ride",
2465
- schema: [
2466
- {
2467
- name: "ride_files",
2468
- type: "integer",
2469
- min: 0,
2470
- max: 6,
2471
- required: true
2472
- },
2473
- {
2474
- name: "ride_start_date",
2475
- type: "date",
2476
- index: true
2477
- },
2478
- {
2479
- name: "ride_end_date",
2480
- type: "date",
2481
- index: true
2482
- },
2483
- {
2484
- name: "gtfs_feed_date",
2485
- type: "date",
2486
- index: true
2487
- },
2488
- {
2489
- name: "default_currency_type",
2490
- type: "text"
2491
- },
2492
- {
2493
- name: "ride_feed_version",
2494
- type: "text"
2495
- }
2496
- ]
2497
- };
2498
- var ride_feed_info_default = model45;
2499
-
2500
- // src/models/gtfs-realtime/trip-updates.ts
2501
- var model46 = {
2502
- filenameBase: "trip_updates",
2503
- extension: "gtfs-realtime",
2504
- schema: [
2505
- {
2506
- name: "update_id",
2507
- type: "text",
2508
- required: true,
2509
- primary: true,
2510
- index: true,
2511
- source: "id"
2512
- },
2513
- {
2514
- name: "vehicle_id",
2515
- type: "text",
2516
- index: true,
2517
- source: "tripUpdate.vehicle.id",
2518
- default: null
2519
- },
2520
- {
2521
- name: "trip_id",
2522
- type: "text",
2523
- index: true,
2524
- source: "tripUpdate.trip.tripId",
2525
- default: null
2526
- },
2527
- {
2528
- name: "trip_start_time",
2529
- type: "text",
2530
- source: "tripUpdate.trip.startTime",
2531
- default: null
2532
- },
2533
- {
2534
- name: "direction_id",
2535
- type: "integer",
2536
- source: "tripUpdate.trip.directionId",
2537
- default: null
2538
- },
2539
- {
2540
- name: "route_id",
2541
- type: "text",
2542
- index: true,
2543
- source: "tripUpdate.trip.routeId",
2544
- default: null
2545
- },
2546
- {
2547
- name: "start_date",
2548
- type: "text",
2549
- source: "tripUpdate.trip.startDate",
2550
- default: null
2551
- },
2552
- {
2553
- name: "timestamp",
2554
- type: "text",
2555
- source: "tripUpdate.timestamp",
2556
- default: null
2557
- },
2558
- {
2559
- name: "schedule_relationship",
2560
- type: "text",
2561
- source: "tripUpdate.trip.scheduleRelationship",
2562
- default: null
2563
- },
2564
- {
2565
- name: "created_timestamp",
2566
- type: "integer",
2567
- required: true
2568
- },
2569
- {
2570
- name: "expiration_timestamp",
2571
- type: "integer",
2572
- required: true
2573
- }
2574
- ]
2575
- };
2576
- var trip_updates_default = model46;
2577
-
2578
- // src/models/gtfs-realtime/stop-time-updates.ts
2579
- var model47 = {
2580
- filenameBase: "stop_time_updates",
2581
- extension: "gtfs-realtime",
2582
- schema: [
2583
- {
2584
- name: "trip_id",
2585
- type: "text",
2586
- index: true,
2587
- source: "parent.tripUpdate.trip.tripId",
2588
- default: null
2589
- },
2590
- {
2591
- name: "trip_start_time",
2592
- type: "text",
2593
- source: "parent.tripUpdate.trip.startTime",
2594
- default: null
2595
- },
2596
- {
2597
- name: "direction_id",
2598
- type: "integer",
2599
- source: "parent.tripUpdate.trip.directionId",
2600
- default: null
2601
- },
2602
- {
2603
- name: "route_id",
2604
- type: "text",
2605
- index: true,
2606
- source: "parent.tripUpdate.trip.routeId",
2607
- default: null
2608
- },
2609
- {
2610
- name: "stop_id",
2611
- type: "text",
2612
- index: true,
2613
- source: "stopId",
2614
- default: null
2615
- },
2616
- {
2617
- name: "stop_sequence",
2618
- type: "integer",
2619
- source: "stopSequence",
2620
- default: null
2621
- },
2622
- {
2623
- name: "arrival_delay",
2624
- type: "integer",
2625
- source: "arrival.delay",
2626
- default: null
2627
- },
2628
- {
2629
- name: "departure_delay",
2630
- type: "integer",
2631
- source: "departure.delay",
2632
- default: null
2633
- },
2634
- {
2635
- name: "departure_timestamp",
2636
- type: "text",
2637
- source: "departure.time",
2638
- default: null
2639
- },
2640
- {
2641
- name: "arrival_timestamp",
2642
- type: "text",
2643
- source: "arrival.time",
2644
- default: null
2645
- },
2646
- {
2647
- name: "schedule_relationship",
2648
- type: "text",
2649
- source: "scheduleRelationship",
2650
- default: null
2651
- },
2652
- {
2653
- name: "created_timestamp",
2654
- type: "integer",
2655
- required: true
2656
- },
2657
- {
2658
- name: "expiration_timestamp",
2659
- type: "integer",
2660
- required: true
2661
- }
2662
- ]
2663
- };
2664
- var stop_time_updates_default = model47;
2665
-
2666
- // src/models/gtfs-realtime/vehicle-positions.ts
2667
- var model48 = {
2668
- filenameBase: "vehicle_positions",
138
+ // src/models/gtfs-realtime/trip-updates.ts
139
+ var tripUpdates = {
140
+ filenameBase: "trip_updates",
2669
141
  extension: "gtfs-realtime",
2670
142
  schema: [
2671
143
  {
@@ -2677,217 +149,54 @@ var model48 = {
2677
149
  source: "id"
2678
150
  },
2679
151
  {
2680
- name: "bearing",
2681
- type: "real",
2682
- source: "vehicle.position.bearing",
2683
- default: null
2684
- },
2685
- {
2686
- name: "latitude",
2687
- type: "real",
2688
- min: -90,
2689
- max: 90,
2690
- source: "vehicle.position.latitude",
2691
- default: null
2692
- },
2693
- {
2694
- name: "longitude",
2695
- type: "real",
2696
- source: "vehicle.position.longitude",
2697
- min: -180,
2698
- max: 180,
2699
- default: null
2700
- },
2701
- {
2702
- name: "speed",
2703
- type: "real",
2704
- min: 0,
2705
- source: "vehicle.position.speed",
2706
- default: null
2707
- },
2708
- {
2709
- name: "current_stop_sequence",
2710
- type: "integer",
2711
- source: "vehicle.currentStopSequence",
2712
- default: null
2713
- },
2714
- {
2715
- name: "trip_id",
152
+ name: "vehicle_id",
2716
153
  type: "text",
2717
154
  index: true,
2718
- source: "vehicle.trip.tripId",
155
+ source: "tripUpdate.vehicle.id",
2719
156
  default: null
2720
157
  },
2721
158
  {
2722
- name: "trip_start_date",
159
+ name: "trip_id",
2723
160
  type: "text",
2724
161
  index: true,
2725
- source: "vehicle.trip.startDate",
162
+ source: "tripUpdate.trip.tripId",
2726
163
  default: null
2727
164
  },
2728
165
  {
2729
166
  name: "trip_start_time",
2730
167
  type: "text",
2731
- index: true,
2732
- source: "vehicle.trip.startTime",
2733
- default: null
2734
- },
2735
- {
2736
- name: "congestion_level",
2737
- type: "text",
2738
- source: "vehicle.congestionLevel",
2739
- default: null
2740
- },
2741
- {
2742
- name: "occupancy_status",
2743
- type: "text",
2744
- source: "vehicle.occupancyStatus",
168
+ source: "tripUpdate.trip.startTime",
2745
169
  default: null
2746
170
  },
2747
171
  {
2748
- name: "occupancy_percentage",
172
+ name: "direction_id",
2749
173
  type: "integer",
2750
- source: "vehicle.occupancyPercentage",
2751
- default: null
2752
- },
2753
- {
2754
- name: "vehicle_stop_status",
2755
- type: "text",
2756
- source: "vehicle.vehicleStopStatus",
174
+ source: "tripUpdate.trip.directionId",
2757
175
  default: null
2758
176
  },
2759
177
  {
2760
- name: "vehicle_id",
178
+ name: "route_id",
2761
179
  type: "text",
2762
180
  index: true,
2763
- source: "vehicle.vehicle.id",
2764
- default: null
2765
- },
2766
- {
2767
- name: "vehicle_label",
2768
- type: "text",
2769
- source: "vehicle.vehicle.label",
2770
- default: null
2771
- },
2772
- {
2773
- name: "vehicle_license_plate",
2774
- type: "text",
2775
- source: "vehicle.vehicle.licensePlate",
181
+ source: "tripUpdate.trip.routeId",
2776
182
  default: null
2777
183
  },
2778
184
  {
2779
- name: "vehicle_wheelchair_accessible",
185
+ name: "start_date",
2780
186
  type: "text",
2781
- source: "vehicle.vehicle.wheelchairAccessible",
187
+ source: "tripUpdate.trip.startDate",
2782
188
  default: null
2783
189
  },
2784
190
  {
2785
191
  name: "timestamp",
2786
192
  type: "text",
2787
- source: "vehicle.timestamp",
2788
- default: null
2789
- },
2790
- {
2791
- name: "created_timestamp",
2792
- type: "integer",
2793
- required: true
2794
- },
2795
- {
2796
- name: "expiration_timestamp",
2797
- type: "integer",
2798
- required: true
2799
- }
2800
- ]
2801
- };
2802
- var vehicle_positions_default = model48;
2803
-
2804
- // src/models/gtfs-realtime/service-alerts.ts
2805
- var model49 = {
2806
- filenameBase: "service_alerts",
2807
- extension: "gtfs-realtime",
2808
- schema: [
2809
- {
2810
- name: "id",
2811
- type: "text",
2812
- required: true,
2813
- primary: true,
2814
- index: true,
2815
- source: "id"
2816
- },
2817
- {
2818
- name: "cause",
2819
- type: "integer",
2820
- required: true,
2821
- min: 0,
2822
- source: "alert.cause",
2823
- default: 0
2824
- },
2825
- {
2826
- name: "start_time",
2827
- type: "text",
2828
- required: true,
2829
- source: "alert.activePeriod[0].start",
2830
- default: ""
2831
- },
2832
- {
2833
- name: "end_time",
2834
- type: "text",
2835
- required: true,
2836
- source: "alert.activePeriod[0].end",
2837
- default: ""
2838
- },
2839
- {
2840
- name: "headline",
2841
- type: "text",
2842
- required: true,
2843
- source: "alert.headerText.translation[0].text",
2844
- default: ""
2845
- },
2846
- {
2847
- name: "description",
2848
- type: "text",
2849
- required: true,
2850
- source: "alert.descriptionText.translation[0].text",
2851
- default: ""
2852
- },
2853
- {
2854
- name: "created_timestamp",
2855
- type: "integer",
2856
- required: true
2857
- },
2858
- {
2859
- name: "expiration_timestamp",
2860
- type: "integer",
2861
- required: true
2862
- }
2863
- ]
2864
- };
2865
- var service_alerts_default = model49;
2866
-
2867
- // src/models/gtfs-realtime/service-alert-targets.ts
2868
- var model50 = {
2869
- filenameBase: "service_alert_targets",
2870
- extension: "gtfs-realtime",
2871
- schema: [
2872
- {
2873
- name: "alert_id",
2874
- type: "text",
2875
- required: true,
2876
- primary: true,
2877
- source: "parent.id"
2878
- },
2879
- {
2880
- name: "stop_id",
2881
- type: "text",
2882
- index: true,
2883
- source: "stopId",
193
+ source: "tripUpdate.timestamp",
2884
194
  default: null
2885
195
  },
2886
196
  {
2887
- name: "route_id",
197
+ name: "schedule_relationship",
2888
198
  type: "text",
2889
- index: true,
2890
- source: "routeId",
199
+ source: "tripUpdate.trip.scheduleRelationship",
2891
200
  default: null
2892
201
  },
2893
202
  {
@@ -2902,372 +211,194 @@ var model50 = {
2902
211
  }
2903
212
  ]
2904
213
  };
2905
- var service_alert_targets_default = model50;
2906
-
2907
- // src/models/ods/deadhead-times.ts
2908
- var model51 = {
2909
- filenameBase: "deadhead_times",
2910
- filenameExtension: "txt",
2911
- nonstandard: true,
2912
- extension: "ods",
2913
- schema: [
2914
- {
2915
- name: "id",
2916
- type: "integer",
2917
- primary: true,
2918
- prefix: true
2919
- },
2920
- {
2921
- name: "deadhead_id",
2922
- type: "text",
2923
- required: true,
2924
- index: true,
2925
- prefix: true
2926
- },
2927
- {
2928
- name: "arrival_time",
2929
- type: "text",
2930
- required: true
2931
- },
2932
- {
2933
- name: "arrival_timestamp",
2934
- type: "integer",
2935
- index: true
2936
- },
2937
- {
2938
- name: "departure_time",
2939
- type: "text",
2940
- required: true
2941
- },
2942
- {
2943
- name: "departure_timestamp",
2944
- type: "integer",
2945
- index: true
2946
- },
2947
- {
2948
- name: "ops_location_id",
2949
- type: "text",
2950
- prefix: true
2951
- },
2952
- {
2953
- name: "stop_id",
2954
- type: "text",
2955
- prefix: true
2956
- },
2957
- {
2958
- name: "location_sequence",
2959
- type: "integer",
2960
- required: true,
2961
- min: 0,
2962
- index: true
2963
- },
2964
- {
2965
- name: "shape_dist_traveled",
2966
- type: "real",
2967
- min: 0
2968
- }
2969
- ]
2970
- };
2971
- var deadhead_times_default = model51;
2972
214
 
2973
- // src/models/ods/deadheads.ts
2974
- var model52 = {
2975
- filenameBase: "deadheads",
2976
- filenameExtension: "txt",
2977
- nonstandard: true,
2978
- extension: "ods",
215
+ // src/models/gtfs-realtime/stop-time-updates.ts
216
+ var stopTimeUpdates = {
217
+ filenameBase: "stop_time_updates",
218
+ extension: "gtfs-realtime",
2979
219
  schema: [
2980
220
  {
2981
- name: "deadhead_id",
2982
- type: "text",
2983
- primary: true,
2984
- required: true,
2985
- prefix: true
2986
- },
2987
- {
2988
- name: "service_id",
221
+ name: "trip_id",
2989
222
  type: "text",
2990
- required: true,
2991
- prefix: true
223
+ index: true,
224
+ source: "parent.tripUpdate.trip.tripId",
225
+ default: null
2992
226
  },
2993
227
  {
2994
- name: "block_id",
228
+ name: "trip_start_time",
2995
229
  type: "text",
2996
- required: true,
2997
- index: true,
2998
- prefix: true
230
+ source: "parent.tripUpdate.trip.startTime",
231
+ default: null
2999
232
  },
3000
233
  {
3001
- name: "shape_id",
3002
- type: "text",
3003
- index: true,
3004
- prefix: true
234
+ name: "direction_id",
235
+ type: "integer",
236
+ source: "parent.tripUpdate.trip.directionId",
237
+ default: null
3005
238
  },
3006
239
  {
3007
- name: "to_trip_id",
240
+ name: "route_id",
3008
241
  type: "text",
3009
242
  index: true,
3010
- prefix: true
243
+ source: "parent.tripUpdate.trip.routeId",
244
+ default: null
3011
245
  },
3012
246
  {
3013
- name: "from_trip_id",
247
+ name: "stop_id",
3014
248
  type: "text",
3015
249
  index: true,
3016
- prefix: true
250
+ source: "stopId",
251
+ default: null
3017
252
  },
3018
253
  {
3019
- name: "to_deadhead_id",
3020
- type: "text",
3021
- index: true,
3022
- prefix: true
254
+ name: "stop_sequence",
255
+ type: "integer",
256
+ source: "stopSequence",
257
+ default: null
3023
258
  },
3024
259
  {
3025
- name: "from_deadhead_id",
3026
- type: "text",
3027
- index: true,
3028
- prefix: true
3029
- }
3030
- ]
3031
- };
3032
- var deadheads_default = model52;
3033
-
3034
- // src/models/ods/ops-locations.ts
3035
- var model53 = {
3036
- filenameBase: "ops_locations",
3037
- filenameExtension: "txt",
3038
- nonstandard: true,
3039
- extension: "ods",
3040
- schema: [
260
+ name: "arrival_delay",
261
+ type: "integer",
262
+ source: "arrival.delay",
263
+ default: null
264
+ },
3041
265
  {
3042
- name: "ops_location_id",
3043
- type: "text",
3044
- primary: true,
3045
- required: true,
3046
- prefix: true
266
+ name: "departure_delay",
267
+ type: "integer",
268
+ source: "departure.delay",
269
+ default: null
3047
270
  },
3048
271
  {
3049
- name: "ops_location_code",
3050
- type: "text"
272
+ name: "departure_timestamp",
273
+ type: "text",
274
+ source: "departure.time",
275
+ default: null
3051
276
  },
3052
277
  {
3053
- name: "ops_location_name",
278
+ name: "arrival_timestamp",
3054
279
  type: "text",
3055
- required: true,
3056
- nocase: true
280
+ source: "arrival.time",
281
+ default: null
3057
282
  },
3058
283
  {
3059
- name: "ops_location_desc",
284
+ name: "schedule_relationship",
3060
285
  type: "text",
3061
- nocase: true
286
+ source: "scheduleRelationship",
287
+ default: null
3062
288
  },
3063
289
  {
3064
- name: "ops_location_lat",
3065
- type: "real",
3066
- required: true,
3067
- min: -90,
3068
- max: 90
290
+ name: "created_timestamp",
291
+ type: "integer",
292
+ required: true
3069
293
  },
3070
294
  {
3071
- name: "ops_location_lon",
3072
- type: "real",
3073
- required: true,
3074
- min: -180,
3075
- max: 180
295
+ name: "expiration_timestamp",
296
+ type: "integer",
297
+ required: true
3076
298
  }
3077
299
  ]
3078
300
  };
3079
- var ops_locations_default = model53;
3080
301
 
3081
- // src/models/ods/run-events.ts
3082
- var model54 = {
3083
- filenameBase: "run_event",
3084
- filenameExtension: "txt",
3085
- nonstandard: true,
3086
- extension: "ods",
302
+ // src/models/gtfs-realtime/service-alerts.ts
303
+ var serviceAlerts = {
304
+ filenameBase: "service_alerts",
305
+ extension: "gtfs-realtime",
3087
306
  schema: [
3088
307
  {
3089
- name: "run_event_id",
3090
- type: "text",
3091
- primary: true,
3092
- required: true,
3093
- prefix: true
3094
- },
3095
- {
3096
- name: "piece_id",
308
+ name: "id",
3097
309
  type: "text",
3098
310
  required: true,
3099
- prefix: true
311
+ primary: true,
312
+ index: true,
313
+ source: "id"
3100
314
  },
3101
315
  {
3102
- name: "event_type",
316
+ name: "cause",
3103
317
  type: "integer",
3104
318
  required: true,
3105
319
  min: 0,
3106
- index: true
320
+ source: "alert.cause",
321
+ default: 0
3107
322
  },
3108
323
  {
3109
- name: "event_name",
324
+ name: "start_time",
3110
325
  type: "text",
3111
- nocase: true
326
+ required: true,
327
+ source: "alert.activePeriod[0].start",
328
+ default: ""
3112
329
  },
3113
330
  {
3114
- name: "event_time",
331
+ name: "end_time",
3115
332
  type: "text",
3116
- required: true
3117
- },
3118
- {
3119
- name: "event_duration",
3120
- type: "integer",
3121
333
  required: true,
3122
- min: 0
334
+ source: "alert.activePeriod[0].end",
335
+ default: ""
3123
336
  },
3124
337
  {
3125
- name: "event_from_location_type",
3126
- type: "integer",
3127
- min: 0,
3128
- max: 1,
3129
- index: true
338
+ name: "headline",
339
+ type: "text",
340
+ required: true,
341
+ source: "alert.headerText.translation[0].text",
342
+ default: ""
3130
343
  },
3131
344
  {
3132
- name: "event_from_location_id",
345
+ name: "description",
3133
346
  type: "text",
3134
- prefix: true
347
+ required: true,
348
+ source: "alert.descriptionText.translation[0].text",
349
+ default: ""
3135
350
  },
3136
351
  {
3137
- name: "event_to_location_type",
352
+ name: "created_timestamp",
3138
353
  type: "integer",
3139
- min: 0,
3140
- max: 1,
3141
- index: true
354
+ required: true
3142
355
  },
3143
356
  {
3144
- name: "event_to_location_id",
3145
- type: "text",
3146
- prefix: true
357
+ name: "expiration_timestamp",
358
+ type: "integer",
359
+ required: true
3147
360
  }
3148
361
  ]
3149
362
  };
3150
- var run_events_default = model54;
3151
363
 
3152
- // src/models/ods/runs-pieces.ts
3153
- var model55 = {
3154
- filenameBase: "runs_pieces",
3155
- filenameExtension: "txt",
3156
- nonstandard: true,
3157
- extension: "ods",
364
+ // src/models/gtfs-realtime/service-alert-targets.ts
365
+ var serviceAlertTargets = {
366
+ filenameBase: "service_alert_targets",
367
+ extension: "gtfs-realtime",
3158
368
  schema: [
3159
369
  {
3160
- name: "run_id",
3161
- type: "text",
3162
- required: true
3163
- },
3164
- {
3165
- name: "piece_id",
370
+ name: "alert_id",
3166
371
  type: "text",
3167
- primary: true,
3168
- required: true
3169
- },
3170
- {
3171
- name: "start_type",
3172
- type: "integer",
3173
372
  required: true,
3174
- min: 0,
3175
- max: 2,
3176
- index: true
373
+ primary: true,
374
+ source: "parent.id"
3177
375
  },
3178
376
  {
3179
- name: "start_trip_id",
377
+ name: "stop_id",
3180
378
  type: "text",
3181
- required: true,
3182
- index: true
379
+ index: true,
380
+ source: "stopId",
381
+ default: null
3183
382
  },
3184
383
  {
3185
- name: "start_trip_position",
3186
- type: "integer",
3187
- min: 0
384
+ name: "route_id",
385
+ type: "text",
386
+ index: true,
387
+ source: "routeId",
388
+ default: null
3188
389
  },
3189
390
  {
3190
- name: "end_type",
391
+ name: "created_timestamp",
3191
392
  type: "integer",
3192
- required: true,
3193
- min: 0,
3194
- max: 2,
3195
- index: true
3196
- },
3197
- {
3198
- name: "end_trip_id",
3199
- type: "text",
3200
- required: true,
3201
- index: true
393
+ required: true
3202
394
  },
3203
395
  {
3204
- name: "end_trip_position",
396
+ name: "expiration_timestamp",
3205
397
  type: "integer",
3206
- min: 0
398
+ required: true
3207
399
  }
3208
400
  ]
3209
401
  };
3210
- var runs_pieces_default = model55;
3211
-
3212
- // src/models/models.ts
3213
- var models = [
3214
- agency_default,
3215
- areas_default,
3216
- attributions_default,
3217
- booking_rules_default,
3218
- calendar_dates_default,
3219
- calendar_default,
3220
- fare_attributes_default,
3221
- fare_leg_rules_default,
3222
- fare_media_default,
3223
- fare_products_default,
3224
- fare_rules_default,
3225
- fare_transfer_rules_default,
3226
- feed_info_default,
3227
- frequencies_default,
3228
- levels_default,
3229
- location_groups_default,
3230
- location_group_stops_default,
3231
- locations_default,
3232
- networks_default,
3233
- pathways_default,
3234
- route_networks_default,
3235
- routes_default,
3236
- shapes_default,
3237
- stop_areas_default,
3238
- stop_times_default,
3239
- stops_default,
3240
- timeframes_default,
3241
- transfers_default,
3242
- translations_default,
3243
- trips_default,
3244
- timetables_default,
3245
- timetable_pages_default,
3246
- timetable_stop_order_default,
3247
- timetable_notes_default,
3248
- timetable_notes_references_default,
3249
- trips_dated_vehicle_journey_default,
3250
- calendar_attributes_default,
3251
- directions_default,
3252
- route_attributes_default,
3253
- stop_attributes_default,
3254
- board_alight_default,
3255
- ride_feed_info_default,
3256
- rider_trip_default,
3257
- ridership_default,
3258
- trip_capacity_default,
3259
- trip_updates_default,
3260
- stop_time_updates_default,
3261
- vehicle_positions_default,
3262
- service_alerts_default,
3263
- service_alert_targets_default,
3264
- deadhead_times_default,
3265
- deadheads_default,
3266
- ops_locations_default,
3267
- run_events_default,
3268
- runs_pieces_default
3269
- ];
3270
- var models_default = models;
3271
402
 
3272
403
  // src/lib/db.ts
3273
404
  import Database from "better-sqlite3";
@@ -3326,8 +457,8 @@ function validateConfigForImport(config) {
3326
457
  if (!config.agencies || config.agencies.length === 0) {
3327
458
  throw new Error("No `agencies` specified in config");
3328
459
  }
3329
- for (const [index, agency] of config.agencies.entries()) {
3330
- if (!agency.path && !agency.url) {
460
+ for (const [index, agency2] of config.agencies.entries()) {
461
+ if (!agency2.path && !agency2.url) {
3331
462
  throw new Error(
3332
463
  `No Agency \`url\` or \`path\` specified in config for agency index ${index}.`
3333
464
  );
@@ -3352,17 +483,20 @@ function convertLongTimeToDate(longDate) {
3352
483
  }
3353
484
 
3354
485
  // src/lib/import.ts
3355
- var downloadGtfsRealtimeData = async (url, task) => {
3356
- const response = await fetch(url, {
486
+ var downloadGtfsRealtimeData = async (urlAndHeaders, task) => {
487
+ task.log(`Downloading GTFS-Realtime from ${urlAndHeaders.url}`);
488
+ const response = await fetch(urlAndHeaders.url, {
3357
489
  method: "GET",
3358
490
  headers: {
3359
- ...task.realtime_headers || {},
491
+ ...urlAndHeaders.headers ?? {},
3360
492
  "Accept-Encoding": "gzip"
3361
493
  },
3362
494
  signal: task.downloadTimeout ? AbortSignal.timeout(task.downloadTimeout) : void 0
3363
495
  });
3364
496
  if (response.status !== 200) {
3365
- task.logWarning(`Unable to download GTFS-Realtime from ${url}`);
497
+ task.logWarning(
498
+ `Unable to download GTFS-Realtime from ${urlAndHeaders.url}`
499
+ );
3366
500
  return null;
3367
501
  }
3368
502
  const buffer = await response.arrayBuffer();
@@ -3443,71 +577,74 @@ var prepareRealtimeValue = (entity, column, task) => {
3443
577
  );
3444
578
  };
3445
579
  var updateRealtimeData = async (task) => {
3446
- if (!task.realtime_urls) {
580
+ if (task.realtimeAlerts === void 0 && task.realtimeTripUpdates === void 0 && task.realtimeVehiclePositions === void 0) {
3447
581
  return;
3448
582
  }
3449
583
  const db = openDb({
3450
584
  sqlitePath: task.sqlitePath
3451
585
  });
3452
- const vehiclePositionsModel = models_default.find(
3453
- (x) => x.filenameBase === "vehicle_positions"
3454
- );
3455
- const tripUpdatesModel = models_default.find(
3456
- (x) => x.filenameBase === "trip_updates"
3457
- );
3458
- const stoptimeUpdatesModel = models_default.find(
3459
- (x) => x.filenameBase === "stop_time_updates"
3460
- );
3461
- const serviceAlertsModel = models_default.find(
3462
- (x) => x.filenameBase === "service_alerts"
3463
- );
3464
- const serviceAlertTargetsModel = models_default.find(
3465
- (x) => x.filenameBase === "service_alert_targets"
3466
- );
3467
- if (!vehiclePositionsModel || !tripUpdatesModel || !stoptimeUpdatesModel || !serviceAlertsModel || !serviceAlertTargetsModel) {
3468
- task.logError("GTFS-Realtime models definitions not found");
3469
- return;
3470
- }
3471
- task.log(
3472
- `Starting GTFS-Realtime import from ${task.realtime_urls.length} urls`
3473
- );
3474
- for (const realtimeUrl of task.realtime_urls) {
3475
- task.log(`Downloading GTFS-Realtime from ${realtimeUrl}`);
3476
- const gtfsRealtimeData = await downloadGtfsRealtimeData(realtimeUrl, task);
3477
- if (!gtfsRealtimeData?.entity) {
3478
- continue;
3479
- }
3480
- task.log(`Download successful`);
3481
- let totalLineCount = 0;
3482
- for (const entity of gtfsRealtimeData.entity) {
3483
- let model56;
3484
- if (entity.vehicle) {
3485
- model56 = vehiclePositionsModel;
3486
- }
3487
- if (entity.tripUpdate) {
3488
- model56 = tripUpdatesModel;
3489
- }
3490
- if (entity.alert) {
3491
- model56 = serviceAlertsModel;
3492
- }
3493
- if (!model56) {
3494
- break;
3495
- }
3496
- const fieldValues = model56.schema.map(
3497
- (column) => prepareRealtimeValue(entity, column, task)
3498
- );
3499
- try {
3500
- db.prepare(
3501
- `REPLACE INTO ${model56.filenameBase} (${model56.schema.map((column) => column.name).join(", ")}) VALUES (${fieldValues.join(", ")})`
3502
- ).run();
3503
- } catch (error) {
3504
- task.logWarning("Import error: " + error.message);
586
+ if (task.realtimeAlerts?.url) {
587
+ const gtfsRealtimeData = await downloadGtfsRealtimeData(
588
+ task.realtimeAlerts,
589
+ task
590
+ );
591
+ if (gtfsRealtimeData?.entity) {
592
+ task.log(`Download successful`);
593
+ let totalLineCount = 0;
594
+ for (const entity of gtfsRealtimeData.entity) {
595
+ const fieldValues = serviceAlerts.schema.map(
596
+ (column) => prepareRealtimeValue(entity, column, task)
597
+ );
598
+ try {
599
+ db.prepare(
600
+ `REPLACE INTO ${serviceAlerts.filenameBase} (${serviceAlerts.schema.map((column) => column.name).join(", ")}) VALUES (${fieldValues.join(", ")})`
601
+ ).run();
602
+ } catch (error) {
603
+ task.logWarning("Import error: " + error.message);
604
+ }
605
+ const alertTargetArray = [];
606
+ for (const informedEntity of entity.alert.informedEntity) {
607
+ informedEntity.parent = entity;
608
+ const subValues = serviceAlertTargets.schema.map(
609
+ (column) => prepareRealtimeValue(informedEntity, column, task)
610
+ );
611
+ alertTargetArray.push(`(${subValues.join(", ")})`);
612
+ totalLineCount++;
613
+ }
614
+ try {
615
+ db.prepare(
616
+ `REPLACE INTO ${serviceAlertTargets.filenameBase} (${serviceAlertTargets.schema.map((column) => column.name).join(", ")}) VALUES ${alertTargetArray.join(", ")}`
617
+ ).run();
618
+ } catch (error) {
619
+ task.logWarning("Import error: " + error.message);
620
+ }
621
+ task.log(`Importing - ${totalLineCount++} entries imported\r`, true);
3505
622
  }
3506
- if (entity.tripUpdate) {
623
+ }
624
+ }
625
+ if (task.realtimeTripUpdates?.url) {
626
+ const gtfsRealtimeData = await downloadGtfsRealtimeData(
627
+ task.realtimeTripUpdates,
628
+ task
629
+ );
630
+ if (gtfsRealtimeData?.entity) {
631
+ task.log(`Download successful`);
632
+ let totalLineCount = 0;
633
+ for (const entity of gtfsRealtimeData.entity) {
634
+ const fieldValues = tripUpdates.schema.map(
635
+ (column) => prepareRealtimeValue(entity, column, task)
636
+ );
637
+ try {
638
+ db.prepare(
639
+ `REPLACE INTO ${tripUpdates.filenameBase} (${tripUpdates.schema.map((column) => column.name).join(", ")}) VALUES (${fieldValues.join(", ")})`
640
+ ).run();
641
+ } catch (error) {
642
+ task.logWarning("Import error: " + error.message);
643
+ }
3507
644
  const stopTimeUpdateArray = [];
3508
645
  for (const stopTimeUpdate of entity.tripUpdate.stopTimeUpdate) {
3509
646
  stopTimeUpdate.parent = entity;
3510
- const subValues = stoptimeUpdatesModel.schema.map(
647
+ const subValues = stopTimeUpdates.schema.map(
3511
648
  (column) => prepareRealtimeValue(stopTimeUpdate, column, task)
3512
649
  );
3513
650
  stopTimeUpdateArray.push(`(${subValues.join(", ")})`);
@@ -3515,31 +652,36 @@ var updateRealtimeData = async (task) => {
3515
652
  }
3516
653
  try {
3517
654
  db.prepare(
3518
- `REPLACE INTO ${stoptimeUpdatesModel.filenameBase} (${stoptimeUpdatesModel.schema.map((column) => column.name).join(", ")}) VALUES ${stopTimeUpdateArray.join(", ")}`
655
+ `REPLACE INTO ${stopTimeUpdates.filenameBase} (${stopTimeUpdates.schema.map((column) => column.name).join(", ")}) VALUES ${stopTimeUpdateArray.join(", ")}`
3519
656
  ).run();
3520
657
  } catch (error) {
3521
658
  task.logWarning("Import error: " + error.message);
3522
659
  }
660
+ task.log(`Importing - ${totalLineCount++} entries imported\r`, true);
3523
661
  }
3524
- if (entity.alert) {
3525
- const alertTargetArray = [];
3526
- for (const informedEntity of entity.alert.informedEntity) {
3527
- informedEntity.parent = entity;
3528
- const subValues = serviceAlertTargetsModel.schema.map(
3529
- (column) => prepareRealtimeValue(informedEntity, column, task)
3530
- );
3531
- alertTargetArray.push(`(${subValues.join(", ")})`);
3532
- totalLineCount++;
3533
- }
662
+ }
663
+ }
664
+ if (task.realtimeVehiclePositions?.url) {
665
+ const gtfsRealtimeData = await downloadGtfsRealtimeData(
666
+ task.realtimeVehiclePositions,
667
+ task
668
+ );
669
+ if (gtfsRealtimeData?.entity) {
670
+ task.log(`Download successful`);
671
+ let totalLineCount = 0;
672
+ for (const entity of gtfsRealtimeData.entity) {
673
+ const fieldValues = tripUpdates.schema.map(
674
+ (column) => prepareRealtimeValue(entity, column, task)
675
+ );
3534
676
  try {
3535
677
  db.prepare(
3536
- `REPLACE INTO ${serviceAlertTargetsModel.filenameBase} (${serviceAlertTargetsModel.schema.map((column) => column.name).join(", ")}) VALUES ${alertTargetArray.join(", ")}`
678
+ `REPLACE INTO ${tripUpdates.filenameBase} (${tripUpdates.schema.map((column) => column.name).join(", ")}) VALUES (${fieldValues.join(", ")})`
3537
679
  ).run();
3538
680
  } catch (error) {
3539
681
  task.logWarning("Import error: " + error.message);
3540
682
  }
683
+ task.log(`Importing - ${totalLineCount++} entries imported\r`, true);
3541
684
  }
3542
- task.log(`Importing - ${totalLineCount++} entries imported\r`, true);
3543
685
  }
3544
686
  }
3545
687
  task.log(`GTFS-Realtime data import complete`);
@@ -3562,13 +704,11 @@ async function updateGtfsRealtime(initialConfig) {
3562
704
  );
3563
705
  deleteExpiredRealtimeData(config);
3564
706
  await Promise.all(
3565
- config.agencies.map(async (agency) => {
3566
- if (agency.realtimeUrls === void 0) {
3567
- return;
3568
- }
707
+ config.agencies.map(async (agency2) => {
3569
708
  const task = {
3570
- realtime_headers: agency.realtimeHeaders,
3571
- realtime_urls: agency.realtimeUrls,
709
+ realtimeAlerts: agency2.realtimeAlerts,
710
+ realtimeTripUpdates: agency2.realtimeTripUpdates,
711
+ realtimeVehiclePositions: agency2.realtimeVehiclePositions,
3572
712
  downloadTimeout: config.downloadTimeout,
3573
713
  gtfsRealtimeExpirationSeconds: config.gtfsRealtimeExpirationSeconds,
3574
714
  sqlitePath: config.sqlitePath,
@@ -3591,7 +731,7 @@ async function updateGtfsRealtime(initialConfig) {
3591
731
  } catch (error) {
3592
732
  if (error?.code === "SQLITE_CANTOPEN") {
3593
733
  logError2(
3594
- `Unae to open sqlite database "${config.sqlitePath}" defined as \`sqlitePath\` config.json. Ensure the parent directory exists or remove \`sqlitePath\` from config.json.`
734
+ `Unable to open sqlite database "${config.sqlitePath}" defined as \`sqlitePath\` config.json. Ensure the parent directory exists or remove \`sqlitePath\` from config.json.`
3595
735
  );
3596
736
  }
3597
737
  throw error;
@@ -3609,171 +749,15 @@ import untildify4 from "untildify";
3609
749
  // src/lib/advancedQuery.ts
3610
750
  import sqlString4 from "sqlstring-sqlite";
3611
751
 
3612
- // src/lib/gtfs/agencies.ts
3613
- import sqlString5 from "sqlstring-sqlite";
3614
-
3615
- // src/lib/gtfs/areas.ts
3616
- import sqlString6 from "sqlstring-sqlite";
3617
-
3618
- // src/lib/gtfs/attributions.ts
3619
- import sqlString7 from "sqlstring-sqlite";
3620
-
3621
- // src/lib/gtfs/booking-rules.ts
3622
- import sqlString8 from "sqlstring-sqlite";
3623
-
3624
- // src/lib/gtfs/calendar-dates.ts
3625
- import sqlString9 from "sqlstring-sqlite";
3626
-
3627
- // src/lib/gtfs/calendars.ts
3628
- import sqlString10 from "sqlstring-sqlite";
3629
-
3630
- // src/lib/gtfs/fare-attributes.ts
3631
- import sqlString11 from "sqlstring-sqlite";
3632
-
3633
- // src/lib/gtfs/fare-leg-rules.ts
3634
- import sqlString12 from "sqlstring-sqlite";
3635
-
3636
- // src/lib/gtfs/fare-media.ts
3637
- import sqlString13 from "sqlstring-sqlite";
3638
-
3639
- // src/lib/gtfs/fare-products.ts
3640
- import sqlString14 from "sqlstring-sqlite";
3641
-
3642
- // src/lib/gtfs/fare-rules.ts
3643
- import sqlString15 from "sqlstring-sqlite";
3644
-
3645
- // src/lib/gtfs/fare-transfer-rules.ts
3646
- import sqlString16 from "sqlstring-sqlite";
3647
-
3648
- // src/lib/gtfs/feed-info.ts
3649
- import sqlString17 from "sqlstring-sqlite";
3650
-
3651
- // src/lib/gtfs/frequencies.ts
3652
- import sqlString18 from "sqlstring-sqlite";
3653
-
3654
- // src/lib/gtfs/levels.ts
3655
- import sqlString19 from "sqlstring-sqlite";
3656
-
3657
- // src/lib/gtfs/location-groups.ts
3658
- import sqlString20 from "sqlstring-sqlite";
3659
-
3660
- // src/lib/gtfs/location-group-stops.ts
3661
- import sqlString21 from "sqlstring-sqlite";
3662
-
3663
- // src/lib/gtfs/locations.ts
3664
- import sqlString22 from "sqlstring-sqlite";
3665
-
3666
- // src/lib/gtfs/networks.ts
3667
- import sqlString23 from "sqlstring-sqlite";
3668
-
3669
- // src/lib/gtfs/pathways.ts
3670
- import sqlString24 from "sqlstring-sqlite";
3671
-
3672
- // src/lib/gtfs/route-networks.ts
3673
- import sqlString25 from "sqlstring-sqlite";
3674
-
3675
752
  // src/lib/gtfs/routes.ts
3676
753
  import { omit as omit3, pick } from "lodash-es";
3677
- import sqlString26 from "sqlstring-sqlite";
3678
754
 
3679
755
  // src/lib/gtfs/shapes.ts
3680
756
  import { compact as compact2, omit as omit4, pick as pick2 } from "lodash-es";
3681
- import sqlString28 from "sqlstring-sqlite";
3682
757
  import { featureCollection as featureCollection2 } from "@turf/helpers";
3683
758
 
3684
- // src/lib/gtfs-plus/route-attributes.ts
3685
- import sqlString27 from "sqlstring-sqlite";
3686
-
3687
- // src/lib/gtfs/stop-areas.ts
3688
- import sqlString29 from "sqlstring-sqlite";
3689
-
3690
759
  // src/lib/gtfs/stops.ts
3691
760
  import { omit as omit5, orderBy, pick as pick3 } from "lodash-es";
3692
- import sqlString31 from "sqlstring-sqlite";
3693
-
3694
- // src/lib/gtfs-plus/stop-attributes.ts
3695
- import sqlString30 from "sqlstring-sqlite";
3696
-
3697
- // src/lib/gtfs/stop-times.ts
3698
- import sqlString32 from "sqlstring-sqlite";
3699
-
3700
- // src/lib/gtfs/timeframes.ts
3701
- import sqlString33 from "sqlstring-sqlite";
3702
-
3703
- // src/lib/gtfs/transfers.ts
3704
- import sqlString34 from "sqlstring-sqlite";
3705
-
3706
- // src/lib/gtfs/translations.ts
3707
- import sqlString35 from "sqlstring-sqlite";
3708
-
3709
- // src/lib/gtfs/trips.ts
3710
- import sqlString36 from "sqlstring-sqlite";
3711
-
3712
- // src/lib/gtfs-plus/calendar-attributes.ts
3713
- import sqlString37 from "sqlstring-sqlite";
3714
-
3715
- // src/lib/gtfs-plus/directions.ts
3716
- import sqlString38 from "sqlstring-sqlite";
3717
-
3718
- // src/lib/non-standard/timetables.ts
3719
- import sqlString39 from "sqlstring-sqlite";
3720
-
3721
- // src/lib/non-standard/timetable-stop-order.ts
3722
- import sqlString40 from "sqlstring-sqlite";
3723
-
3724
- // src/lib/non-standard/timetable-pages.ts
3725
- import sqlString41 from "sqlstring-sqlite";
3726
-
3727
- // src/lib/non-standard/timetable-notes.ts
3728
- import sqlString42 from "sqlstring-sqlite";
3729
-
3730
- // src/lib/non-standard/timetable-notes-references.ts
3731
- import sqlString43 from "sqlstring-sqlite";
3732
-
3733
- // src/lib/non-standard/trips-dated-vehicle-journey.ts
3734
- import sqlString44 from "sqlstring-sqlite";
3735
-
3736
- // src/lib/gtfs-ride/board-alights.ts
3737
- import sqlString45 from "sqlstring-sqlite";
3738
-
3739
- // src/lib/gtfs-ride/ride-feed-infos.ts
3740
- import sqlString46 from "sqlstring-sqlite";
3741
-
3742
- // src/lib/gtfs-ride/rider-trips.ts
3743
- import sqlString47 from "sqlstring-sqlite";
3744
-
3745
- // src/lib/gtfs-ride/riderships.ts
3746
- import sqlString48 from "sqlstring-sqlite";
3747
-
3748
- // src/lib/gtfs-ride/trip-capacities.ts
3749
- import sqlString49 from "sqlstring-sqlite";
3750
-
3751
- // src/lib/gtfs-realtime/stop-time-updates.ts
3752
- import sqlString50 from "sqlstring-sqlite";
3753
-
3754
- // src/lib/gtfs-realtime/trip-updates.ts
3755
- import sqlString51 from "sqlstring-sqlite";
3756
-
3757
- // src/lib/gtfs-realtime/vehicle-positions.ts
3758
- import sqlString52 from "sqlstring-sqlite";
3759
-
3760
- // src/lib/gtfs-realtime/service-alerts.ts
3761
- import sqlString53 from "sqlstring-sqlite";
3762
-
3763
- // src/lib/ods/deadheads.ts
3764
- import sqlString54 from "sqlstring-sqlite";
3765
-
3766
- // src/lib/ods/deadhead-times.ts
3767
- import sqlString55 from "sqlstring-sqlite";
3768
-
3769
- // src/lib/ods/ops-locations.ts
3770
- import sqlString56 from "sqlstring-sqlite";
3771
-
3772
- // src/lib/ods/run-events.ts
3773
- import sqlString57 from "sqlstring-sqlite";
3774
-
3775
- // src/lib/ods/runs-pieces.ts
3776
- import sqlString58 from "sqlstring-sqlite";
3777
761
 
3778
762
  // src/bin/gtfsrealtime-update.ts
3779
763
  var pe = new PrettyError();