gtfs 4.18.7 → 4.19.1

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.
@@ -0,0 +1,4044 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (!no_symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+ //#region src/models/gtfs/agency.ts
19
+ const agency = {
20
+ filenameBase: "agency",
21
+ filenameExtension: "txt",
22
+ schema: [
23
+ {
24
+ name: "agency_id",
25
+ type: "text",
26
+ primary: true,
27
+ prefix: true
28
+ },
29
+ {
30
+ name: "agency_name",
31
+ type: "text",
32
+ required: true,
33
+ nocase: true
34
+ },
35
+ {
36
+ name: "agency_url",
37
+ type: "text",
38
+ required: true
39
+ },
40
+ {
41
+ name: "agency_timezone",
42
+ type: "text",
43
+ required: true
44
+ },
45
+ {
46
+ name: "agency_lang",
47
+ type: "text",
48
+ nocase: true
49
+ },
50
+ {
51
+ name: "agency_phone",
52
+ type: "text",
53
+ nocase: true
54
+ },
55
+ {
56
+ name: "agency_fare_url",
57
+ type: "text"
58
+ },
59
+ {
60
+ name: "agency_email",
61
+ type: "text",
62
+ nocase: true
63
+ },
64
+ {
65
+ name: "cemv_support",
66
+ type: "integer",
67
+ min: 0,
68
+ max: 2
69
+ }
70
+ ]
71
+ };
72
+
73
+ //#endregion
74
+ //#region src/models/gtfs/areas.ts
75
+ const areas = {
76
+ filenameBase: "areas",
77
+ filenameExtension: "txt",
78
+ schema: [{
79
+ name: "area_id",
80
+ type: "text",
81
+ required: true,
82
+ primary: true,
83
+ prefix: true
84
+ }, {
85
+ name: "area_name",
86
+ type: "text"
87
+ }]
88
+ };
89
+
90
+ //#endregion
91
+ //#region src/models/gtfs/attributions.ts
92
+ const attributions = {
93
+ filenameBase: "attributions",
94
+ filenameExtension: "txt",
95
+ schema: [
96
+ {
97
+ name: "attribution_id",
98
+ type: "text",
99
+ prefix: true,
100
+ primary: true
101
+ },
102
+ {
103
+ name: "agency_id",
104
+ type: "text",
105
+ prefix: true
106
+ },
107
+ {
108
+ name: "route_id",
109
+ type: "text",
110
+ prefix: true
111
+ },
112
+ {
113
+ name: "trip_id",
114
+ type: "text",
115
+ prefix: true
116
+ },
117
+ {
118
+ name: "organization_name",
119
+ type: "text",
120
+ required: true,
121
+ nocase: true
122
+ },
123
+ {
124
+ name: "is_producer",
125
+ type: "integer",
126
+ min: 0,
127
+ max: 1
128
+ },
129
+ {
130
+ name: "is_operator",
131
+ type: "integer",
132
+ min: 0,
133
+ max: 1
134
+ },
135
+ {
136
+ name: "is_authority",
137
+ type: "integer",
138
+ min: 0,
139
+ max: 1
140
+ },
141
+ {
142
+ name: "attribution_url",
143
+ type: "text"
144
+ },
145
+ {
146
+ name: "attribution_email",
147
+ type: "text",
148
+ nocase: true
149
+ },
150
+ {
151
+ name: "attribution_phone",
152
+ type: "text",
153
+ nocase: true
154
+ }
155
+ ]
156
+ };
157
+
158
+ //#endregion
159
+ //#region src/models/gtfs/booking-rules.ts
160
+ const bookingRules = {
161
+ filenameBase: "booking_rules",
162
+ filenameExtension: "txt",
163
+ schema: [
164
+ {
165
+ name: "booking_rule_id",
166
+ type: "text",
167
+ primary: true,
168
+ prefix: true
169
+ },
170
+ {
171
+ name: "booking_type",
172
+ type: "integer",
173
+ required: true,
174
+ min: 0,
175
+ max: 2
176
+ },
177
+ {
178
+ name: "prior_notice_duration_min",
179
+ type: "integer",
180
+ min: 0
181
+ },
182
+ {
183
+ name: "prior_notice_duration_max",
184
+ type: "integer",
185
+ min: 0
186
+ },
187
+ {
188
+ name: "prior_notice_last_day",
189
+ type: "integer",
190
+ min: 0
191
+ },
192
+ {
193
+ name: "prior_notice_last_time",
194
+ type: "time"
195
+ },
196
+ {
197
+ name: "prior_notice_start_day",
198
+ type: "integer",
199
+ min: 0
200
+ },
201
+ {
202
+ name: "prior_notice_start_time",
203
+ type: "time"
204
+ },
205
+ {
206
+ name: "prior_notice_service_id",
207
+ type: "text",
208
+ prefix: true
209
+ },
210
+ {
211
+ name: "message",
212
+ type: "text",
213
+ nocase: true
214
+ },
215
+ {
216
+ name: "pickup_message",
217
+ type: "text",
218
+ nocase: true
219
+ },
220
+ {
221
+ name: "drop_off_message",
222
+ type: "text",
223
+ nocase: true
224
+ },
225
+ {
226
+ name: "phone_number",
227
+ type: "text",
228
+ nocase: true
229
+ },
230
+ {
231
+ name: "info_url",
232
+ type: "text"
233
+ },
234
+ {
235
+ name: "booking_url",
236
+ type: "text"
237
+ }
238
+ ]
239
+ };
240
+
241
+ //#endregion
242
+ //#region src/models/gtfs/calendar-dates.ts
243
+ const calendarDates = {
244
+ filenameBase: "calendar_dates",
245
+ filenameExtension: "txt",
246
+ schema: [
247
+ {
248
+ name: "service_id",
249
+ type: "text",
250
+ required: true,
251
+ primary: true,
252
+ prefix: true
253
+ },
254
+ {
255
+ name: "date",
256
+ type: "date",
257
+ required: true,
258
+ primary: true
259
+ },
260
+ {
261
+ name: "exception_type",
262
+ type: "integer",
263
+ required: true,
264
+ min: 1,
265
+ max: 2,
266
+ index: true
267
+ },
268
+ {
269
+ name: "holiday_name",
270
+ type: "text",
271
+ nocase: true
272
+ }
273
+ ]
274
+ };
275
+
276
+ //#endregion
277
+ //#region src/models/gtfs/calendar.ts
278
+ const calendar = {
279
+ filenameBase: "calendar",
280
+ filenameExtension: "txt",
281
+ schema: [
282
+ {
283
+ name: "service_id",
284
+ type: "text",
285
+ required: true,
286
+ primary: true,
287
+ prefix: true
288
+ },
289
+ {
290
+ name: "monday",
291
+ type: "integer",
292
+ required: true,
293
+ min: 0,
294
+ max: 1
295
+ },
296
+ {
297
+ name: "tuesday",
298
+ type: "integer",
299
+ required: true,
300
+ min: 0,
301
+ max: 1
302
+ },
303
+ {
304
+ name: "wednesday",
305
+ type: "integer",
306
+ required: true,
307
+ min: 0,
308
+ max: 1
309
+ },
310
+ {
311
+ name: "thursday",
312
+ type: "integer",
313
+ required: true,
314
+ min: 0,
315
+ max: 1
316
+ },
317
+ {
318
+ name: "friday",
319
+ type: "integer",
320
+ required: true,
321
+ min: 0,
322
+ max: 1
323
+ },
324
+ {
325
+ name: "saturday",
326
+ type: "integer",
327
+ required: true,
328
+ min: 0,
329
+ max: 1
330
+ },
331
+ {
332
+ name: "sunday",
333
+ type: "integer",
334
+ required: true,
335
+ min: 0,
336
+ max: 1
337
+ },
338
+ {
339
+ name: "start_date",
340
+ type: "date",
341
+ required: true,
342
+ index: true
343
+ },
344
+ {
345
+ name: "end_date",
346
+ type: "date",
347
+ required: true,
348
+ index: true
349
+ }
350
+ ]
351
+ };
352
+
353
+ //#endregion
354
+ //#region src/models/gtfs/fare-attributes.ts
355
+ const fareAttributes = {
356
+ filenameBase: "fare_attributes",
357
+ filenameExtension: "txt",
358
+ schema: [
359
+ {
360
+ name: "fare_id",
361
+ type: "text",
362
+ required: true,
363
+ primary: true,
364
+ prefix: true
365
+ },
366
+ {
367
+ name: "price",
368
+ type: "real",
369
+ required: true
370
+ },
371
+ {
372
+ name: "currency_type",
373
+ type: "text",
374
+ required: true
375
+ },
376
+ {
377
+ name: "payment_method",
378
+ type: "integer",
379
+ required: true,
380
+ min: 0,
381
+ max: 1
382
+ },
383
+ {
384
+ name: "transfers",
385
+ type: "integer",
386
+ min: 0,
387
+ max: 2
388
+ },
389
+ {
390
+ name: "agency_id",
391
+ type: "text",
392
+ prefix: true
393
+ },
394
+ {
395
+ name: "transfer_duration",
396
+ type: "integer",
397
+ min: 0
398
+ }
399
+ ]
400
+ };
401
+
402
+ //#endregion
403
+ //#region src/models/gtfs/fare-leg-rules.ts
404
+ const fareLegRules = {
405
+ filenameBase: "fare_leg_rules",
406
+ filenameExtension: "txt",
407
+ schema: [
408
+ {
409
+ name: "leg_group_id",
410
+ type: "text",
411
+ prefix: true
412
+ },
413
+ {
414
+ name: "network_id",
415
+ type: "text",
416
+ primary: true,
417
+ prefix: true
418
+ },
419
+ {
420
+ name: "from_area_id",
421
+ type: "text",
422
+ primary: true,
423
+ prefix: true
424
+ },
425
+ {
426
+ name: "to_area_id",
427
+ type: "text",
428
+ primary: true,
429
+ prefix: true
430
+ },
431
+ {
432
+ name: "from_timeframe_group_id",
433
+ type: "text",
434
+ primary: true,
435
+ prefix: true
436
+ },
437
+ {
438
+ name: "to_timeframe_group_id",
439
+ type: "text",
440
+ primary: true,
441
+ prefix: true
442
+ },
443
+ {
444
+ name: "fare_product_id",
445
+ type: "text",
446
+ required: true,
447
+ primary: true,
448
+ prefix: true
449
+ },
450
+ {
451
+ name: "rule_priority",
452
+ type: "integer",
453
+ min: 0
454
+ }
455
+ ]
456
+ };
457
+
458
+ //#endregion
459
+ //#region src/models/gtfs/fare-media.ts
460
+ const fareMedia = {
461
+ filenameBase: "fare_media",
462
+ filenameExtension: "txt",
463
+ schema: [
464
+ {
465
+ name: "fare_media_id",
466
+ type: "text",
467
+ required: true,
468
+ primary: true,
469
+ prefix: true
470
+ },
471
+ {
472
+ name: "fare_media_name",
473
+ type: "text"
474
+ },
475
+ {
476
+ name: "fare_media_type",
477
+ type: "integer",
478
+ required: true,
479
+ min: 0,
480
+ max: 4
481
+ }
482
+ ]
483
+ };
484
+
485
+ //#endregion
486
+ //#region src/models/gtfs/fare-products.ts
487
+ const fareProducts = {
488
+ filenameBase: "fare_products",
489
+ filenameExtension: "txt",
490
+ schema: [
491
+ {
492
+ name: "fare_product_id",
493
+ type: "text",
494
+ required: true,
495
+ primary: true,
496
+ prefix: true
497
+ },
498
+ {
499
+ name: "rider_category_id",
500
+ type: "text",
501
+ primary: true,
502
+ prefix: true
503
+ },
504
+ {
505
+ name: "fare_product_name",
506
+ type: "text"
507
+ },
508
+ {
509
+ name: "fare_media_id",
510
+ type: "text",
511
+ primary: true,
512
+ prefix: true
513
+ },
514
+ {
515
+ name: "amount",
516
+ type: "real",
517
+ required: true
518
+ },
519
+ {
520
+ name: "currency",
521
+ type: "text",
522
+ required: true
523
+ }
524
+ ]
525
+ };
526
+
527
+ //#endregion
528
+ //#region src/models/gtfs/fare-rules.ts
529
+ const fareRules = {
530
+ filenameBase: "fare_rules",
531
+ filenameExtension: "txt",
532
+ schema: [
533
+ {
534
+ name: "fare_id",
535
+ type: "text",
536
+ required: true,
537
+ primary: true,
538
+ prefix: true
539
+ },
540
+ {
541
+ name: "route_id",
542
+ type: "text",
543
+ primary: true,
544
+ prefix: true
545
+ },
546
+ {
547
+ name: "origin_id",
548
+ type: "text",
549
+ primary: true,
550
+ prefix: true
551
+ },
552
+ {
553
+ name: "destination_id",
554
+ type: "text",
555
+ primary: true,
556
+ prefix: true
557
+ },
558
+ {
559
+ name: "contains_id",
560
+ type: "text",
561
+ primary: true,
562
+ prefix: true
563
+ }
564
+ ]
565
+ };
566
+
567
+ //#endregion
568
+ //#region src/models/gtfs/fare-transfer-rules.ts
569
+ const fareTransferRules = {
570
+ filenameBase: "fare_transfer_rules",
571
+ filenameExtension: "txt",
572
+ schema: [
573
+ {
574
+ name: "from_leg_group_id",
575
+ type: "text",
576
+ primary: true,
577
+ prefix: true
578
+ },
579
+ {
580
+ name: "to_leg_group_id",
581
+ type: "text",
582
+ primary: true,
583
+ prefix: true
584
+ },
585
+ {
586
+ name: "transfer_count",
587
+ type: "integer",
588
+ min: -1,
589
+ primary: true
590
+ },
591
+ {
592
+ name: "duration_limit",
593
+ type: "integer",
594
+ min: 0,
595
+ primary: true
596
+ },
597
+ {
598
+ name: "duration_limit_type",
599
+ type: "integer",
600
+ min: 0,
601
+ max: 3
602
+ },
603
+ {
604
+ name: "fare_transfer_type",
605
+ type: "integer",
606
+ min: 0,
607
+ max: 2,
608
+ required: true
609
+ },
610
+ {
611
+ name: "fare_product_id",
612
+ type: "text",
613
+ primary: true,
614
+ prefix: true
615
+ }
616
+ ]
617
+ };
618
+
619
+ //#endregion
620
+ //#region src/models/gtfs/feed-info.ts
621
+ const feedInfo = {
622
+ filenameBase: "feed_info",
623
+ filenameExtension: "txt",
624
+ schema: [
625
+ {
626
+ name: "feed_publisher_name",
627
+ type: "text",
628
+ required: true,
629
+ nocase: true
630
+ },
631
+ {
632
+ name: "feed_publisher_url",
633
+ type: "text",
634
+ required: true
635
+ },
636
+ {
637
+ name: "feed_lang",
638
+ type: "text",
639
+ required: true
640
+ },
641
+ {
642
+ name: "default_lang",
643
+ type: "text",
644
+ nocase: true
645
+ },
646
+ {
647
+ name: "feed_start_date",
648
+ type: "date"
649
+ },
650
+ {
651
+ name: "feed_end_date",
652
+ type: "date"
653
+ },
654
+ {
655
+ name: "feed_version",
656
+ type: "text"
657
+ },
658
+ {
659
+ name: "feed_contact_email",
660
+ type: "text",
661
+ nocase: true
662
+ },
663
+ {
664
+ name: "feed_contact_url",
665
+ type: "text"
666
+ }
667
+ ]
668
+ };
669
+
670
+ //#endregion
671
+ //#region src/models/gtfs/frequencies.ts
672
+ const frequencies = {
673
+ filenameBase: "frequencies",
674
+ filenameExtension: "txt",
675
+ schema: [
676
+ {
677
+ name: "trip_id",
678
+ type: "text",
679
+ required: true,
680
+ primary: true,
681
+ prefix: true
682
+ },
683
+ {
684
+ name: "start_time",
685
+ type: "time",
686
+ required: true,
687
+ primary: true
688
+ },
689
+ {
690
+ name: "end_time",
691
+ type: "time",
692
+ required: true
693
+ },
694
+ {
695
+ name: "headway_secs",
696
+ type: "integer",
697
+ required: true,
698
+ min: 0
699
+ },
700
+ {
701
+ name: "exact_times",
702
+ type: "integer",
703
+ min: 0,
704
+ max: 1
705
+ }
706
+ ]
707
+ };
708
+
709
+ //#endregion
710
+ //#region src/models/gtfs/levels.ts
711
+ const levels = {
712
+ filenameBase: "levels",
713
+ filenameExtension: "txt",
714
+ schema: [
715
+ {
716
+ name: "level_id",
717
+ type: "text",
718
+ primary: true,
719
+ required: true,
720
+ prefix: true
721
+ },
722
+ {
723
+ name: "level_index",
724
+ type: "real",
725
+ required: true
726
+ },
727
+ {
728
+ name: "level_name",
729
+ type: "text",
730
+ nocase: true
731
+ }
732
+ ]
733
+ };
734
+
735
+ //#endregion
736
+ //#region src/models/gtfs/location-groups.ts
737
+ const locationGroups = {
738
+ filenameBase: "location_groups",
739
+ filenameExtension: "txt",
740
+ schema: [{
741
+ name: "location_group_id",
742
+ type: "text",
743
+ primary: true,
744
+ prefix: true
745
+ }, {
746
+ name: "location_group_name",
747
+ type: "text",
748
+ nocase: true
749
+ }]
750
+ };
751
+
752
+ //#endregion
753
+ //#region src/models/gtfs/location-group-stops.ts
754
+ const locationGroupStops = {
755
+ filenameBase: "location_group_stops",
756
+ filenameExtension: "txt",
757
+ schema: [{
758
+ name: "location_group_id",
759
+ type: "text",
760
+ prefix: true,
761
+ index: true,
762
+ required: true,
763
+ primary: true
764
+ }, {
765
+ name: "stop_id",
766
+ type: "text",
767
+ required: true,
768
+ prefix: true,
769
+ index: true,
770
+ primary: true
771
+ }]
772
+ };
773
+
774
+ //#endregion
775
+ //#region src/models/gtfs/locations.ts
776
+ const locations = {
777
+ filenameBase: "locations",
778
+ filenameExtension: "geojson",
779
+ schema: [{
780
+ name: "geojson",
781
+ type: "text"
782
+ }]
783
+ };
784
+
785
+ //#endregion
786
+ //#region src/models/gtfs/networks.ts
787
+ const networks = {
788
+ filenameBase: "networks",
789
+ filenameExtension: "txt",
790
+ schema: [{
791
+ name: "network_id",
792
+ type: "text",
793
+ primary: true,
794
+ required: true,
795
+ prefix: true
796
+ }, {
797
+ name: "network_name",
798
+ type: "text",
799
+ nocase: true
800
+ }]
801
+ };
802
+
803
+ //#endregion
804
+ //#region src/models/gtfs/pathways.ts
805
+ const pathways = {
806
+ filenameBase: "pathways",
807
+ filenameExtension: "txt",
808
+ schema: [
809
+ {
810
+ name: "pathway_id",
811
+ type: "text",
812
+ primary: true,
813
+ required: true,
814
+ prefix: true
815
+ },
816
+ {
817
+ name: "from_stop_id",
818
+ type: "text",
819
+ required: true,
820
+ prefix: true
821
+ },
822
+ {
823
+ name: "to_stop_id",
824
+ type: "text",
825
+ required: true,
826
+ prefix: true
827
+ },
828
+ {
829
+ name: "pathway_mode",
830
+ type: "integer",
831
+ required: true,
832
+ min: 1,
833
+ max: 7
834
+ },
835
+ {
836
+ name: "is_bidirectional",
837
+ type: "integer",
838
+ required: true,
839
+ min: 0,
840
+ max: 1
841
+ },
842
+ {
843
+ name: "length",
844
+ type: "real",
845
+ min: 0
846
+ },
847
+ {
848
+ name: "traversal_time",
849
+ type: "integer",
850
+ min: 0
851
+ },
852
+ {
853
+ name: "stair_count",
854
+ type: "integer"
855
+ },
856
+ {
857
+ name: "max_slope",
858
+ type: "real"
859
+ },
860
+ {
861
+ name: "min_width",
862
+ type: "real",
863
+ min: 0
864
+ },
865
+ {
866
+ name: "signposted_as",
867
+ type: "text",
868
+ nocase: true
869
+ },
870
+ {
871
+ name: "reversed_signposted_as",
872
+ type: "text",
873
+ nocase: true
874
+ }
875
+ ]
876
+ };
877
+
878
+ //#endregion
879
+ //#region src/models/gtfs/rider-categories.ts
880
+ const riderCategories = {
881
+ filenameBase: "rider_categories",
882
+ filenameExtension: "txt",
883
+ schema: [
884
+ {
885
+ name: "rider_category_id",
886
+ type: "text",
887
+ primary: true,
888
+ required: true,
889
+ prefix: true
890
+ },
891
+ {
892
+ name: "rider_category_name",
893
+ type: "text",
894
+ required: true
895
+ },
896
+ {
897
+ name: "is_default_fare_category",
898
+ type: "integer",
899
+ min: 0,
900
+ max: 1
901
+ },
902
+ {
903
+ name: "eligibility_url",
904
+ type: "text"
905
+ }
906
+ ]
907
+ };
908
+
909
+ //#endregion
910
+ //#region src/models/gtfs/route-networks.ts
911
+ const routeNetworks = {
912
+ filenameBase: "route_networks",
913
+ filenameExtension: "txt",
914
+ schema: [{
915
+ name: "network_id",
916
+ type: "text",
917
+ required: true,
918
+ prefix: true
919
+ }, {
920
+ name: "route_id",
921
+ type: "text",
922
+ primary: true,
923
+ index: true,
924
+ prefix: true
925
+ }]
926
+ };
927
+
928
+ //#endregion
929
+ //#region src/models/gtfs/routes.ts
930
+ const routes = {
931
+ filenameBase: "routes",
932
+ filenameExtension: "txt",
933
+ schema: [
934
+ {
935
+ name: "route_id",
936
+ type: "text",
937
+ primary: true,
938
+ required: true,
939
+ prefix: true
940
+ },
941
+ {
942
+ name: "agency_id",
943
+ type: "text",
944
+ index: true,
945
+ prefix: true
946
+ },
947
+ {
948
+ name: "route_short_name",
949
+ type: "text",
950
+ nocase: true
951
+ },
952
+ {
953
+ name: "route_long_name",
954
+ type: "text",
955
+ nocase: true
956
+ },
957
+ {
958
+ name: "route_desc",
959
+ type: "text",
960
+ nocase: true
961
+ },
962
+ {
963
+ name: "route_type",
964
+ type: "integer",
965
+ required: true,
966
+ min: 0
967
+ },
968
+ {
969
+ name: "route_url",
970
+ type: "text"
971
+ },
972
+ {
973
+ name: "route_color",
974
+ type: "text",
975
+ nocase: true
976
+ },
977
+ {
978
+ name: "route_text_color",
979
+ type: "text",
980
+ nocase: true
981
+ },
982
+ {
983
+ name: "route_sort_order",
984
+ type: "integer",
985
+ min: 0
986
+ },
987
+ {
988
+ name: "continuous_pickup",
989
+ type: "integer",
990
+ min: 0,
991
+ max: 3
992
+ },
993
+ {
994
+ name: "continuous_drop_off",
995
+ type: "integer",
996
+ min: 0,
997
+ max: 3
998
+ },
999
+ {
1000
+ name: "network_id",
1001
+ type: "text",
1002
+ prefix: true
1003
+ },
1004
+ {
1005
+ name: "cemv_support",
1006
+ type: "integer",
1007
+ min: 0,
1008
+ max: 2
1009
+ }
1010
+ ]
1011
+ };
1012
+
1013
+ //#endregion
1014
+ //#region src/models/gtfs/shapes.ts
1015
+ const shapes = {
1016
+ filenameBase: "shapes",
1017
+ filenameExtension: "txt",
1018
+ schema: [
1019
+ {
1020
+ name: "shape_id",
1021
+ type: "text",
1022
+ required: true,
1023
+ primary: true,
1024
+ prefix: true
1025
+ },
1026
+ {
1027
+ name: "shape_pt_lat",
1028
+ type: "real",
1029
+ required: true,
1030
+ min: -90,
1031
+ max: 90
1032
+ },
1033
+ {
1034
+ name: "shape_pt_lon",
1035
+ type: "real",
1036
+ required: true,
1037
+ min: -180,
1038
+ max: 180
1039
+ },
1040
+ {
1041
+ name: "shape_pt_sequence",
1042
+ type: "integer",
1043
+ required: true,
1044
+ primary: true,
1045
+ min: 0
1046
+ },
1047
+ {
1048
+ name: "shape_dist_traveled",
1049
+ type: "real",
1050
+ min: 0
1051
+ }
1052
+ ]
1053
+ };
1054
+
1055
+ //#endregion
1056
+ //#region src/models/gtfs/stop-areas.ts
1057
+ const stopAreas = {
1058
+ filenameBase: "stop_areas",
1059
+ filenameExtension: "txt",
1060
+ schema: [{
1061
+ name: "area_id",
1062
+ type: "text",
1063
+ required: true,
1064
+ primary: true,
1065
+ prefix: true
1066
+ }, {
1067
+ name: "stop_id",
1068
+ type: "text",
1069
+ required: true,
1070
+ primary: true,
1071
+ prefix: true
1072
+ }]
1073
+ };
1074
+
1075
+ //#endregion
1076
+ //#region src/models/gtfs/stop-times.ts
1077
+ const stopTimes = {
1078
+ filenameBase: "stop_times",
1079
+ filenameExtension: "txt",
1080
+ schema: [
1081
+ {
1082
+ name: "trip_id",
1083
+ type: "text",
1084
+ required: true,
1085
+ primary: true,
1086
+ prefix: true
1087
+ },
1088
+ {
1089
+ name: "arrival_time",
1090
+ type: "time"
1091
+ },
1092
+ {
1093
+ name: "departure_time",
1094
+ type: "time"
1095
+ },
1096
+ {
1097
+ name: "location_group_id",
1098
+ type: "text",
1099
+ prefix: true,
1100
+ index: true
1101
+ },
1102
+ {
1103
+ name: "location_id",
1104
+ type: "text",
1105
+ prefix: true,
1106
+ index: true
1107
+ },
1108
+ {
1109
+ name: "stop_id",
1110
+ type: "text",
1111
+ required: true,
1112
+ prefix: true,
1113
+ index: true
1114
+ },
1115
+ {
1116
+ name: "stop_sequence",
1117
+ type: "integer",
1118
+ required: true,
1119
+ primary: true,
1120
+ min: 0
1121
+ },
1122
+ {
1123
+ name: "stop_headsign",
1124
+ type: "text",
1125
+ nocase: true
1126
+ },
1127
+ {
1128
+ name: "start_pickup_drop_off_window",
1129
+ type: "time"
1130
+ },
1131
+ {
1132
+ name: "pickup_type",
1133
+ type: "integer",
1134
+ min: 0,
1135
+ max: 3
1136
+ },
1137
+ {
1138
+ name: "drop_off_type",
1139
+ type: "integer",
1140
+ min: 0,
1141
+ max: 3
1142
+ },
1143
+ {
1144
+ name: "continuous_pickup",
1145
+ type: "integer",
1146
+ min: 0,
1147
+ max: 3
1148
+ },
1149
+ {
1150
+ name: "continuous_drop_off",
1151
+ type: "integer",
1152
+ min: 0,
1153
+ max: 3
1154
+ },
1155
+ {
1156
+ name: "shape_dist_traveled",
1157
+ type: "real",
1158
+ min: 0
1159
+ },
1160
+ {
1161
+ name: "timepoint",
1162
+ type: "integer",
1163
+ min: 0,
1164
+ max: 1
1165
+ },
1166
+ {
1167
+ name: "pickup_booking_rule_id",
1168
+ type: "text",
1169
+ prefix: true,
1170
+ index: true
1171
+ },
1172
+ {
1173
+ name: "drop_off_booking_rule_id",
1174
+ type: "text",
1175
+ prefix: true,
1176
+ index: true
1177
+ }
1178
+ ]
1179
+ };
1180
+
1181
+ //#endregion
1182
+ //#region src/models/gtfs/stops.ts
1183
+ const stops = {
1184
+ filenameBase: "stops",
1185
+ filenameExtension: "txt",
1186
+ schema: [
1187
+ {
1188
+ name: "stop_id",
1189
+ type: "text",
1190
+ primary: true,
1191
+ required: true,
1192
+ prefix: true
1193
+ },
1194
+ {
1195
+ name: "stop_code",
1196
+ type: "text",
1197
+ index: true
1198
+ },
1199
+ {
1200
+ name: "stop_name",
1201
+ type: "text",
1202
+ nocase: true
1203
+ },
1204
+ {
1205
+ name: "tts_stop_name",
1206
+ type: "text",
1207
+ nocase: true
1208
+ },
1209
+ {
1210
+ name: "stop_desc",
1211
+ type: "text",
1212
+ nocase: true
1213
+ },
1214
+ {
1215
+ name: "stop_lat",
1216
+ type: "real",
1217
+ min: -90,
1218
+ max: 90
1219
+ },
1220
+ {
1221
+ name: "stop_lon",
1222
+ type: "real",
1223
+ min: -180,
1224
+ max: 180
1225
+ },
1226
+ {
1227
+ name: "zone_id",
1228
+ type: "text",
1229
+ prefix: true
1230
+ },
1231
+ {
1232
+ name: "stop_url",
1233
+ type: "text"
1234
+ },
1235
+ {
1236
+ name: "location_type",
1237
+ type: "integer",
1238
+ min: 0,
1239
+ max: 4
1240
+ },
1241
+ {
1242
+ name: "parent_station",
1243
+ type: "text",
1244
+ index: true,
1245
+ prefix: true
1246
+ },
1247
+ {
1248
+ name: "stop_timezone",
1249
+ type: "text"
1250
+ },
1251
+ {
1252
+ name: "wheelchair_boarding",
1253
+ type: "integer",
1254
+ min: 0,
1255
+ max: 2
1256
+ },
1257
+ {
1258
+ name: "level_id",
1259
+ type: "text",
1260
+ prefix: true
1261
+ },
1262
+ {
1263
+ name: "platform_code",
1264
+ type: "text"
1265
+ },
1266
+ {
1267
+ name: "stop_access",
1268
+ type: "integer",
1269
+ min: 0,
1270
+ max: 1
1271
+ }
1272
+ ]
1273
+ };
1274
+
1275
+ //#endregion
1276
+ //#region src/models/gtfs/timeframes.ts
1277
+ const timeframes = {
1278
+ filenameBase: "timeframes",
1279
+ filenameExtension: "txt",
1280
+ schema: [
1281
+ {
1282
+ name: "timeframe_group_id",
1283
+ type: "text",
1284
+ primary: true,
1285
+ prefix: true
1286
+ },
1287
+ {
1288
+ name: "start_time",
1289
+ type: "time",
1290
+ primary: true
1291
+ },
1292
+ {
1293
+ name: "end_time",
1294
+ type: "time",
1295
+ primary: true
1296
+ },
1297
+ {
1298
+ name: "service_id",
1299
+ type: "text",
1300
+ required: true,
1301
+ primary: true,
1302
+ index: true,
1303
+ prefix: true
1304
+ }
1305
+ ]
1306
+ };
1307
+
1308
+ //#endregion
1309
+ //#region src/models/gtfs/transfers.ts
1310
+ const transfers = {
1311
+ filenameBase: "transfers",
1312
+ filenameExtension: "txt",
1313
+ schema: [
1314
+ {
1315
+ name: "from_stop_id",
1316
+ type: "text",
1317
+ primary: true,
1318
+ prefix: true
1319
+ },
1320
+ {
1321
+ name: "to_stop_id",
1322
+ type: "text",
1323
+ primary: true,
1324
+ prefix: true
1325
+ },
1326
+ {
1327
+ name: "from_route_id",
1328
+ type: "text",
1329
+ primary: true,
1330
+ prefix: true
1331
+ },
1332
+ {
1333
+ name: "to_route_id",
1334
+ type: "text",
1335
+ primary: true,
1336
+ prefix: true
1337
+ },
1338
+ {
1339
+ name: "from_trip_id",
1340
+ type: "text",
1341
+ primary: true,
1342
+ prefix: true
1343
+ },
1344
+ {
1345
+ name: "to_trip_id",
1346
+ type: "text",
1347
+ primary: true,
1348
+ prefix: true
1349
+ },
1350
+ {
1351
+ name: "transfer_type",
1352
+ type: "integer",
1353
+ min: 0,
1354
+ max: 5,
1355
+ default: 0
1356
+ },
1357
+ {
1358
+ name: "min_transfer_time",
1359
+ type: "integer",
1360
+ min: 0
1361
+ }
1362
+ ]
1363
+ };
1364
+
1365
+ //#endregion
1366
+ //#region src/models/gtfs/translations.ts
1367
+ const translations = {
1368
+ filenameBase: "translations",
1369
+ filenameExtension: "txt",
1370
+ schema: [
1371
+ {
1372
+ name: "table_name",
1373
+ type: "text",
1374
+ primary: true,
1375
+ required: true
1376
+ },
1377
+ {
1378
+ name: "field_name",
1379
+ type: "text",
1380
+ primary: true,
1381
+ required: true
1382
+ },
1383
+ {
1384
+ name: "language",
1385
+ type: "text",
1386
+ primary: true,
1387
+ required: true
1388
+ },
1389
+ {
1390
+ name: "translation",
1391
+ type: "text",
1392
+ required: true
1393
+ },
1394
+ {
1395
+ name: "record_id",
1396
+ type: "text",
1397
+ primary: true,
1398
+ prefix: true
1399
+ },
1400
+ {
1401
+ name: "record_sub_id",
1402
+ type: "text",
1403
+ primary: true,
1404
+ prefix: true
1405
+ },
1406
+ {
1407
+ name: "field_value",
1408
+ type: "text",
1409
+ primary: true
1410
+ }
1411
+ ]
1412
+ };
1413
+
1414
+ //#endregion
1415
+ //#region src/models/gtfs/trips.ts
1416
+ const trips = {
1417
+ filenameBase: "trips",
1418
+ filenameExtension: "txt",
1419
+ schema: [
1420
+ {
1421
+ name: "route_id",
1422
+ type: "text",
1423
+ required: true,
1424
+ index: true,
1425
+ prefix: true
1426
+ },
1427
+ {
1428
+ name: "service_id",
1429
+ type: "text",
1430
+ required: true,
1431
+ index: true,
1432
+ prefix: true
1433
+ },
1434
+ {
1435
+ name: "trip_id",
1436
+ type: "text",
1437
+ primary: true,
1438
+ required: true,
1439
+ prefix: true
1440
+ },
1441
+ {
1442
+ name: "trip_headsign",
1443
+ type: "text",
1444
+ nocase: true
1445
+ },
1446
+ {
1447
+ name: "trip_short_name",
1448
+ type: "text",
1449
+ nocase: true
1450
+ },
1451
+ {
1452
+ name: "direction_id",
1453
+ type: "integer",
1454
+ min: 0,
1455
+ max: 1,
1456
+ index: true
1457
+ },
1458
+ {
1459
+ name: "block_id",
1460
+ type: "text",
1461
+ index: true,
1462
+ prefix: true
1463
+ },
1464
+ {
1465
+ name: "shape_id",
1466
+ type: "text",
1467
+ index: true,
1468
+ prefix: true
1469
+ },
1470
+ {
1471
+ name: "wheelchair_accessible",
1472
+ type: "integer",
1473
+ min: 0,
1474
+ max: 2
1475
+ },
1476
+ {
1477
+ name: "bikes_allowed",
1478
+ type: "integer",
1479
+ min: 0,
1480
+ max: 2
1481
+ },
1482
+ {
1483
+ name: "cars_allowed",
1484
+ type: "integer",
1485
+ min: 0,
1486
+ max: 2
1487
+ },
1488
+ {
1489
+ name: "safe_duration_factor",
1490
+ type: "real"
1491
+ },
1492
+ {
1493
+ name: "safe_duration_offset",
1494
+ type: "real"
1495
+ }
1496
+ ]
1497
+ };
1498
+
1499
+ //#endregion
1500
+ //#region src/models/non-standard/timetables.ts
1501
+ const timetables = {
1502
+ filenameBase: "timetables",
1503
+ filenameExtension: "txt",
1504
+ nonstandard: true,
1505
+ schema: [
1506
+ {
1507
+ name: "timetable_id",
1508
+ type: "text",
1509
+ prefix: true,
1510
+ required: true,
1511
+ primary: true
1512
+ },
1513
+ {
1514
+ name: "route_id",
1515
+ type: "text",
1516
+ prefix: true,
1517
+ required: true,
1518
+ primary: true
1519
+ },
1520
+ {
1521
+ name: "direction_id",
1522
+ type: "integer",
1523
+ min: 0,
1524
+ max: 1
1525
+ },
1526
+ {
1527
+ name: "start_date",
1528
+ type: "date"
1529
+ },
1530
+ {
1531
+ name: "end_date",
1532
+ type: "date"
1533
+ },
1534
+ {
1535
+ name: "monday",
1536
+ type: "integer",
1537
+ required: true,
1538
+ min: 0,
1539
+ max: 1
1540
+ },
1541
+ {
1542
+ name: "tuesday",
1543
+ type: "integer",
1544
+ required: true,
1545
+ min: 0,
1546
+ max: 1
1547
+ },
1548
+ {
1549
+ name: "wednesday",
1550
+ type: "integer",
1551
+ required: true,
1552
+ min: 0,
1553
+ max: 1
1554
+ },
1555
+ {
1556
+ name: "thursday",
1557
+ type: "integer",
1558
+ required: true,
1559
+ min: 0,
1560
+ max: 1
1561
+ },
1562
+ {
1563
+ name: "friday",
1564
+ type: "integer",
1565
+ required: true,
1566
+ min: 0,
1567
+ max: 1
1568
+ },
1569
+ {
1570
+ name: "saturday",
1571
+ type: "integer",
1572
+ required: true,
1573
+ min: 0,
1574
+ max: 1
1575
+ },
1576
+ {
1577
+ name: "sunday",
1578
+ type: "integer",
1579
+ required: true,
1580
+ min: 0,
1581
+ max: 1
1582
+ },
1583
+ {
1584
+ name: "start_time",
1585
+ type: "time"
1586
+ },
1587
+ {
1588
+ name: "end_time",
1589
+ type: "time"
1590
+ },
1591
+ {
1592
+ name: "timetable_label",
1593
+ type: "text",
1594
+ nocase: true
1595
+ },
1596
+ {
1597
+ name: "service_notes",
1598
+ type: "text",
1599
+ nocase: true
1600
+ },
1601
+ {
1602
+ name: "orientation",
1603
+ type: "text"
1604
+ },
1605
+ {
1606
+ name: "timetable_page_id",
1607
+ type: "text"
1608
+ },
1609
+ {
1610
+ name: "timetable_sequence",
1611
+ type: "integer",
1612
+ min: 0,
1613
+ index: true
1614
+ },
1615
+ {
1616
+ name: "direction_name",
1617
+ type: "text"
1618
+ },
1619
+ {
1620
+ name: "include_exceptions",
1621
+ type: "integer",
1622
+ min: 0,
1623
+ max: 1
1624
+ },
1625
+ {
1626
+ name: "show_trip_continuation",
1627
+ type: "integer",
1628
+ min: 0,
1629
+ max: 1
1630
+ }
1631
+ ]
1632
+ };
1633
+
1634
+ //#endregion
1635
+ //#region src/models/non-standard/timetable-pages.ts
1636
+ const timetablePages = {
1637
+ filenameBase: "timetable_pages",
1638
+ filenameExtension: "txt",
1639
+ nonstandard: true,
1640
+ schema: [
1641
+ {
1642
+ name: "timetable_page_id",
1643
+ type: "text",
1644
+ primary: true,
1645
+ required: true,
1646
+ prefix: true
1647
+ },
1648
+ {
1649
+ name: "timetable_page_label",
1650
+ type: "text"
1651
+ },
1652
+ {
1653
+ name: "filename",
1654
+ type: "text"
1655
+ }
1656
+ ]
1657
+ };
1658
+
1659
+ //#endregion
1660
+ //#region src/models/non-standard/timetable-stop-order.ts
1661
+ const timetableStopOrder = {
1662
+ filenameBase: "timetable_stop_order",
1663
+ filenameExtension: "txt",
1664
+ nonstandard: true,
1665
+ schema: [
1666
+ {
1667
+ name: "timetable_id",
1668
+ type: "text",
1669
+ index: true,
1670
+ prefix: true,
1671
+ required: true,
1672
+ primary: true
1673
+ },
1674
+ {
1675
+ name: "stop_id",
1676
+ type: "text",
1677
+ prefix: true,
1678
+ required: true,
1679
+ primary: true
1680
+ },
1681
+ {
1682
+ name: "stop_sequence",
1683
+ type: "integer",
1684
+ min: 0,
1685
+ index: true,
1686
+ required: true,
1687
+ primary: true
1688
+ }
1689
+ ]
1690
+ };
1691
+
1692
+ //#endregion
1693
+ //#region src/models/non-standard/timetable-notes.ts
1694
+ const timetableNotes = {
1695
+ filenameBase: "timetable_notes",
1696
+ filenameExtension: "txt",
1697
+ nonstandard: true,
1698
+ schema: [
1699
+ {
1700
+ name: "note_id",
1701
+ type: "text",
1702
+ primary: true,
1703
+ prefix: true,
1704
+ required: true
1705
+ },
1706
+ {
1707
+ name: "symbol",
1708
+ type: "text"
1709
+ },
1710
+ {
1711
+ name: "note",
1712
+ type: "text",
1713
+ nocase: true,
1714
+ required: true
1715
+ }
1716
+ ]
1717
+ };
1718
+
1719
+ //#endregion
1720
+ //#region src/models/non-standard/timetable-notes-references.ts
1721
+ const timetableNotesReferences = {
1722
+ filenameBase: "timetable_notes_references",
1723
+ filenameExtension: "txt",
1724
+ nonstandard: true,
1725
+ schema: [
1726
+ {
1727
+ name: "note_id",
1728
+ type: "text",
1729
+ prefix: true,
1730
+ required: true,
1731
+ primary: true
1732
+ },
1733
+ {
1734
+ name: "timetable_id",
1735
+ type: "text",
1736
+ prefix: true,
1737
+ primary: true
1738
+ },
1739
+ {
1740
+ name: "route_id",
1741
+ type: "text",
1742
+ prefix: true,
1743
+ primary: true
1744
+ },
1745
+ {
1746
+ name: "trip_id",
1747
+ type: "text",
1748
+ prefix: true,
1749
+ primary: true
1750
+ },
1751
+ {
1752
+ name: "stop_id",
1753
+ type: "text",
1754
+ prefix: true,
1755
+ primary: true
1756
+ },
1757
+ {
1758
+ name: "stop_sequence",
1759
+ type: "integer",
1760
+ min: 0,
1761
+ primary: true
1762
+ },
1763
+ {
1764
+ name: "show_on_stoptime",
1765
+ type: "integer",
1766
+ min: 0,
1767
+ max: 1
1768
+ }
1769
+ ]
1770
+ };
1771
+
1772
+ //#endregion
1773
+ //#region src/models/non-standard/trips-dated-vehicle-journey.ts
1774
+ const tripsDatedVehicleJourney = {
1775
+ filenameBase: "trips_dated_vehicle_journey",
1776
+ filenameExtension: "txt",
1777
+ nonstandard: true,
1778
+ schema: [
1779
+ {
1780
+ name: "trip_id",
1781
+ type: "text",
1782
+ required: true,
1783
+ index: true,
1784
+ prefix: true
1785
+ },
1786
+ {
1787
+ name: "operating_day_date",
1788
+ type: "text",
1789
+ index: true,
1790
+ required: true
1791
+ },
1792
+ {
1793
+ name: "dated_vehicle_journey_gid",
1794
+ type: "text",
1795
+ required: true
1796
+ },
1797
+ {
1798
+ name: "journey_number",
1799
+ type: "integer",
1800
+ min: 0,
1801
+ max: 65535,
1802
+ index: true
1803
+ }
1804
+ ]
1805
+ };
1806
+
1807
+ //#endregion
1808
+ //#region src/models/gtfs-plus/calendar-attributes.ts
1809
+ const calendarAttributes = {
1810
+ filenameBase: "calendar_attributes",
1811
+ filenameExtension: "txt",
1812
+ nonstandard: true,
1813
+ extension: "gtfs-plus",
1814
+ schema: [{
1815
+ name: "service_id",
1816
+ type: "text",
1817
+ primary: true,
1818
+ prefix: true
1819
+ }, {
1820
+ name: "service_description",
1821
+ type: "text",
1822
+ required: true,
1823
+ nocase: true
1824
+ }]
1825
+ };
1826
+
1827
+ //#endregion
1828
+ //#region src/models/gtfs-plus/directions.ts
1829
+ const directions = {
1830
+ filenameBase: "directions",
1831
+ filenameExtension: "txt",
1832
+ nonstandard: true,
1833
+ extension: "gtfs-plus",
1834
+ schema: [
1835
+ {
1836
+ name: "route_id",
1837
+ type: "text",
1838
+ required: true,
1839
+ primary: true,
1840
+ prefix: true
1841
+ },
1842
+ {
1843
+ name: "direction_id",
1844
+ type: "integer",
1845
+ min: 0,
1846
+ max: 1,
1847
+ primary: true
1848
+ },
1849
+ {
1850
+ name: "direction",
1851
+ type: "text",
1852
+ required: true
1853
+ }
1854
+ ]
1855
+ };
1856
+
1857
+ //#endregion
1858
+ //#region src/models/gtfs-plus/route-attributes.ts
1859
+ const routeAttributes = {
1860
+ filenameBase: "route_attributes",
1861
+ filenameExtension: "txt",
1862
+ nonstandard: true,
1863
+ extension: "gtfs-plus",
1864
+ schema: [
1865
+ {
1866
+ name: "route_id",
1867
+ type: "text",
1868
+ primary: true,
1869
+ prefix: true
1870
+ },
1871
+ {
1872
+ name: "category",
1873
+ type: "integer",
1874
+ min: 0,
1875
+ required: true
1876
+ },
1877
+ {
1878
+ name: "subcategory",
1879
+ type: "integer",
1880
+ min: 101,
1881
+ required: true
1882
+ },
1883
+ {
1884
+ name: "running_way",
1885
+ type: "integer",
1886
+ min: 1,
1887
+ required: true
1888
+ }
1889
+ ]
1890
+ };
1891
+
1892
+ //#endregion
1893
+ //#region src/models/gtfs-plus/stop-attributes.ts
1894
+ const stopAttributes = {
1895
+ filenameBase: "stop_attributes",
1896
+ filenameExtension: "txt",
1897
+ nonstandard: true,
1898
+ extension: "gtfs-plus",
1899
+ schema: [
1900
+ {
1901
+ name: "stop_id",
1902
+ type: "text",
1903
+ required: true,
1904
+ primary: true,
1905
+ prefix: true
1906
+ },
1907
+ {
1908
+ name: "accessibility_id",
1909
+ type: "integer",
1910
+ min: 0
1911
+ },
1912
+ {
1913
+ name: "cardinal_direction",
1914
+ type: "text"
1915
+ },
1916
+ {
1917
+ name: "relative_position",
1918
+ type: "text"
1919
+ },
1920
+ {
1921
+ name: "stop_city",
1922
+ type: "text",
1923
+ nocase: true
1924
+ }
1925
+ ]
1926
+ };
1927
+
1928
+ //#endregion
1929
+ //#region src/models/gtfs-ride/board-alight.ts
1930
+ const boardAlight = {
1931
+ filenameBase: "board_alight",
1932
+ filenameExtension: "txt",
1933
+ nonstandard: true,
1934
+ extension: "gtfs-ride",
1935
+ schema: [
1936
+ {
1937
+ name: "trip_id",
1938
+ type: "text",
1939
+ required: true,
1940
+ index: true,
1941
+ prefix: true
1942
+ },
1943
+ {
1944
+ name: "stop_id",
1945
+ type: "text",
1946
+ required: true,
1947
+ index: true,
1948
+ prefix: true
1949
+ },
1950
+ {
1951
+ name: "stop_sequence",
1952
+ type: "integer",
1953
+ required: true,
1954
+ min: 0,
1955
+ index: true
1956
+ },
1957
+ {
1958
+ name: "record_use",
1959
+ type: "integer",
1960
+ required: true,
1961
+ min: 0,
1962
+ max: 1,
1963
+ index: true
1964
+ },
1965
+ {
1966
+ name: "schedule_relationship",
1967
+ type: "integer",
1968
+ min: 0,
1969
+ max: 8
1970
+ },
1971
+ {
1972
+ name: "boardings",
1973
+ type: "integer",
1974
+ min: 0
1975
+ },
1976
+ {
1977
+ name: "alightings",
1978
+ type: "integer",
1979
+ min: 0
1980
+ },
1981
+ {
1982
+ name: "current_load",
1983
+ type: "integer",
1984
+ min: 0
1985
+ },
1986
+ {
1987
+ name: "load_count",
1988
+ type: "integer",
1989
+ min: 0
1990
+ },
1991
+ {
1992
+ name: "load_type",
1993
+ type: "integer",
1994
+ min: 0,
1995
+ max: 1
1996
+ },
1997
+ {
1998
+ name: "rack_down",
1999
+ type: "integer",
2000
+ min: 0,
2001
+ max: 1
2002
+ },
2003
+ {
2004
+ name: "bike_boardings",
2005
+ type: "integer",
2006
+ min: 0
2007
+ },
2008
+ {
2009
+ name: "bike_alightings",
2010
+ type: "integer",
2011
+ min: 0
2012
+ },
2013
+ {
2014
+ name: "ramp_used",
2015
+ type: "integer",
2016
+ min: 0,
2017
+ max: 1
2018
+ },
2019
+ {
2020
+ name: "ramp_boardings",
2021
+ type: "integer",
2022
+ min: 0
2023
+ },
2024
+ {
2025
+ name: "ramp_alightings",
2026
+ type: "integer",
2027
+ min: 0
2028
+ },
2029
+ {
2030
+ name: "service_date",
2031
+ type: "date",
2032
+ index: true
2033
+ },
2034
+ {
2035
+ name: "service_arrival_time",
2036
+ type: "time"
2037
+ },
2038
+ {
2039
+ name: "service_departure_time",
2040
+ type: "time"
2041
+ },
2042
+ {
2043
+ name: "source",
2044
+ type: "integer",
2045
+ min: 0,
2046
+ max: 4
2047
+ }
2048
+ ]
2049
+ };
2050
+
2051
+ //#endregion
2052
+ //#region src/models/gtfs-ride/rider-trip.ts
2053
+ const riderTrip = {
2054
+ filenameBase: "rider_trip",
2055
+ filenameExtension: "txt",
2056
+ nonstandard: true,
2057
+ extension: "gtfs-ride",
2058
+ schema: [
2059
+ {
2060
+ name: "rider_id",
2061
+ type: "text",
2062
+ primary: true,
2063
+ prefix: true
2064
+ },
2065
+ {
2066
+ name: "agency_id",
2067
+ type: "text",
2068
+ index: true,
2069
+ prefix: true
2070
+ },
2071
+ {
2072
+ name: "trip_id",
2073
+ type: "text",
2074
+ index: true,
2075
+ prefix: true
2076
+ },
2077
+ {
2078
+ name: "boarding_stop_id",
2079
+ type: "text",
2080
+ index: true,
2081
+ prefix: true
2082
+ },
2083
+ {
2084
+ name: "boarding_stop_sequence",
2085
+ type: "integer",
2086
+ min: 0,
2087
+ index: true
2088
+ },
2089
+ {
2090
+ name: "alighting_stop_id",
2091
+ type: "text",
2092
+ index: true,
2093
+ prefix: true
2094
+ },
2095
+ {
2096
+ name: "alighting_stop_sequence",
2097
+ type: "integer",
2098
+ min: 0,
2099
+ index: true
2100
+ },
2101
+ {
2102
+ name: "service_date",
2103
+ type: "date",
2104
+ index: true
2105
+ },
2106
+ {
2107
+ name: "boarding_time",
2108
+ type: "time"
2109
+ },
2110
+ {
2111
+ name: "alighting_time",
2112
+ type: "time"
2113
+ },
2114
+ {
2115
+ name: "rider_type",
2116
+ type: "integer",
2117
+ min: 0,
2118
+ max: 13
2119
+ },
2120
+ {
2121
+ name: "rider_type_description",
2122
+ type: "text"
2123
+ },
2124
+ {
2125
+ name: "fare_paid",
2126
+ type: "real"
2127
+ },
2128
+ {
2129
+ name: "transaction_type",
2130
+ type: "integer",
2131
+ min: 0,
2132
+ max: 8
2133
+ },
2134
+ {
2135
+ name: "fare_media",
2136
+ type: "integer",
2137
+ min: 0,
2138
+ max: 9
2139
+ },
2140
+ {
2141
+ name: "accompanying_device",
2142
+ type: "integer",
2143
+ min: 0,
2144
+ max: 6
2145
+ },
2146
+ {
2147
+ name: "transfer_status",
2148
+ type: "integer",
2149
+ min: 0,
2150
+ max: 1
2151
+ }
2152
+ ]
2153
+ };
2154
+
2155
+ //#endregion
2156
+ //#region src/models/gtfs-ride/ridership.ts
2157
+ const ridership = {
2158
+ filenameBase: "ridership",
2159
+ filenameExtension: "txt",
2160
+ nonstandard: true,
2161
+ extension: "gtfs-ride",
2162
+ schema: [
2163
+ {
2164
+ name: "total_boardings",
2165
+ type: "integer",
2166
+ min: 0,
2167
+ required: true
2168
+ },
2169
+ {
2170
+ name: "total_alightings",
2171
+ type: "integer",
2172
+ min: 0,
2173
+ required: true
2174
+ },
2175
+ {
2176
+ name: "ridership_start_date",
2177
+ type: "date",
2178
+ index: true
2179
+ },
2180
+ {
2181
+ name: "ridership_end_date",
2182
+ type: "date",
2183
+ index: true
2184
+ },
2185
+ {
2186
+ name: "ridership_start_time",
2187
+ type: "time"
2188
+ },
2189
+ {
2190
+ name: "ridership_end_time",
2191
+ type: "time"
2192
+ },
2193
+ {
2194
+ name: "service_id",
2195
+ type: "text",
2196
+ index: true,
2197
+ prefix: true
2198
+ },
2199
+ {
2200
+ name: "monday",
2201
+ type: "integer",
2202
+ min: 0,
2203
+ max: 1
2204
+ },
2205
+ {
2206
+ name: "tuesday",
2207
+ type: "integer",
2208
+ min: 0,
2209
+ max: 1
2210
+ },
2211
+ {
2212
+ name: "wednesday",
2213
+ type: "integer",
2214
+ min: 0,
2215
+ max: 1
2216
+ },
2217
+ {
2218
+ name: "thursday",
2219
+ type: "integer",
2220
+ min: 0,
2221
+ max: 1
2222
+ },
2223
+ {
2224
+ name: "friday",
2225
+ type: "integer",
2226
+ min: 0,
2227
+ max: 1
2228
+ },
2229
+ {
2230
+ name: "saturday",
2231
+ type: "integer",
2232
+ min: 0,
2233
+ max: 1
2234
+ },
2235
+ {
2236
+ name: "sunday",
2237
+ type: "integer",
2238
+ min: 0,
2239
+ max: 1
2240
+ },
2241
+ {
2242
+ name: "agency_id",
2243
+ type: "text",
2244
+ index: true,
2245
+ prefix: true
2246
+ },
2247
+ {
2248
+ name: "route_id",
2249
+ type: "text",
2250
+ index: true,
2251
+ prefix: true
2252
+ },
2253
+ {
2254
+ name: "direction_id",
2255
+ type: "integer",
2256
+ min: 0,
2257
+ max: 1,
2258
+ index: true
2259
+ },
2260
+ {
2261
+ name: "trip_id",
2262
+ type: "text",
2263
+ prefix: true
2264
+ },
2265
+ {
2266
+ name: "stop_id",
2267
+ type: "text",
2268
+ prefix: true
2269
+ }
2270
+ ]
2271
+ };
2272
+
2273
+ //#endregion
2274
+ //#region src/models/gtfs-ride/trip-capacity.ts
2275
+ const tripCapacity = {
2276
+ filenameBase: "trip_capacity",
2277
+ filenameExtension: "txt",
2278
+ nonstandard: true,
2279
+ extension: "gtfs-ride",
2280
+ schema: [
2281
+ {
2282
+ name: "agency_id",
2283
+ type: "text",
2284
+ index: true,
2285
+ prefix: true
2286
+ },
2287
+ {
2288
+ name: "trip_id",
2289
+ type: "text",
2290
+ index: true,
2291
+ prefix: true
2292
+ },
2293
+ {
2294
+ name: "service_date",
2295
+ type: "date",
2296
+ index: true
2297
+ },
2298
+ {
2299
+ name: "vehicle_description",
2300
+ type: "text"
2301
+ },
2302
+ {
2303
+ name: "seated_capacity",
2304
+ type: "integer",
2305
+ min: 0
2306
+ },
2307
+ {
2308
+ name: "standing_capacity",
2309
+ type: "integer",
2310
+ min: 0
2311
+ },
2312
+ {
2313
+ name: "wheelchair_capacity",
2314
+ type: "integer",
2315
+ min: 0
2316
+ },
2317
+ {
2318
+ name: "bike_capacity",
2319
+ type: "integer",
2320
+ min: 0
2321
+ }
2322
+ ]
2323
+ };
2324
+
2325
+ //#endregion
2326
+ //#region src/models/gtfs-ride/ride-feed-info.ts
2327
+ const rideFeedInfo = {
2328
+ filenameBase: "ride_feed_info",
2329
+ filenameExtension: "txt",
2330
+ nonstandard: true,
2331
+ extension: "gtfs-ride",
2332
+ schema: [
2333
+ {
2334
+ name: "ride_files",
2335
+ type: "integer",
2336
+ min: 0,
2337
+ max: 6,
2338
+ required: true
2339
+ },
2340
+ {
2341
+ name: "ride_start_date",
2342
+ type: "date",
2343
+ index: true
2344
+ },
2345
+ {
2346
+ name: "ride_end_date",
2347
+ type: "date",
2348
+ index: true
2349
+ },
2350
+ {
2351
+ name: "gtfs_feed_date",
2352
+ type: "date",
2353
+ index: true
2354
+ },
2355
+ {
2356
+ name: "default_currency_type",
2357
+ type: "text"
2358
+ },
2359
+ {
2360
+ name: "ride_feed_version",
2361
+ type: "text"
2362
+ }
2363
+ ]
2364
+ };
2365
+
2366
+ //#endregion
2367
+ //#region src/models/gtfs-realtime/trip-updates.ts
2368
+ const tripUpdates = {
2369
+ filenameBase: "trip_updates",
2370
+ extension: "gtfs-realtime",
2371
+ schema: [
2372
+ {
2373
+ name: "id",
2374
+ type: "text",
2375
+ required: true,
2376
+ primary: true,
2377
+ index: true,
2378
+ source: "id",
2379
+ prefix: true
2380
+ },
2381
+ {
2382
+ name: "vehicle_id",
2383
+ type: "text",
2384
+ index: true,
2385
+ source: "tripUpdate.vehicle.id",
2386
+ default: null,
2387
+ prefix: true
2388
+ },
2389
+ {
2390
+ name: "trip_id",
2391
+ type: "text",
2392
+ index: true,
2393
+ source: "tripUpdate.trip.tripId",
2394
+ default: null,
2395
+ prefix: true
2396
+ },
2397
+ {
2398
+ name: "trip_start_time",
2399
+ type: "text",
2400
+ source: "tripUpdate.trip.startTime",
2401
+ default: null
2402
+ },
2403
+ {
2404
+ name: "direction_id",
2405
+ type: "integer",
2406
+ source: "tripUpdate.trip.directionId",
2407
+ default: null
2408
+ },
2409
+ {
2410
+ name: "route_id",
2411
+ type: "text",
2412
+ index: true,
2413
+ source: "tripUpdate.trip.routeId",
2414
+ default: null,
2415
+ prefix: true
2416
+ },
2417
+ {
2418
+ name: "start_date",
2419
+ type: "text",
2420
+ source: "tripUpdate.trip.startDate",
2421
+ default: null
2422
+ },
2423
+ {
2424
+ name: "timestamp",
2425
+ type: "text",
2426
+ source: "tripUpdate.timestamp",
2427
+ default: null
2428
+ },
2429
+ {
2430
+ name: "schedule_relationship",
2431
+ type: "text",
2432
+ source: "tripUpdate.trip.scheduleRelationship",
2433
+ default: null
2434
+ },
2435
+ {
2436
+ name: "created_timestamp",
2437
+ type: "integer",
2438
+ required: true
2439
+ },
2440
+ {
2441
+ name: "expiration_timestamp",
2442
+ type: "integer",
2443
+ required: true
2444
+ }
2445
+ ]
2446
+ };
2447
+
2448
+ //#endregion
2449
+ //#region src/models/gtfs-realtime/stop-time-updates.ts
2450
+ const stopTimeUpdates = {
2451
+ filenameBase: "stop_time_updates",
2452
+ extension: "gtfs-realtime",
2453
+ schema: [
2454
+ {
2455
+ name: "trip_id",
2456
+ type: "text",
2457
+ index: true,
2458
+ source: "parent.tripUpdate.trip.tripId",
2459
+ default: null,
2460
+ prefix: true
2461
+ },
2462
+ {
2463
+ name: "trip_start_time",
2464
+ type: "text",
2465
+ source: "parent.tripUpdate.trip.startTime",
2466
+ default: null
2467
+ },
2468
+ {
2469
+ name: "direction_id",
2470
+ type: "integer",
2471
+ source: "parent.tripUpdate.trip.directionId",
2472
+ default: null
2473
+ },
2474
+ {
2475
+ name: "route_id",
2476
+ type: "text",
2477
+ index: true,
2478
+ source: "parent.tripUpdate.trip.routeId",
2479
+ default: null,
2480
+ prefix: true
2481
+ },
2482
+ {
2483
+ name: "stop_id",
2484
+ type: "text",
2485
+ index: true,
2486
+ source: "stopId",
2487
+ default: null,
2488
+ prefix: true
2489
+ },
2490
+ {
2491
+ name: "stop_sequence",
2492
+ type: "integer",
2493
+ source: "stopSequence",
2494
+ default: null
2495
+ },
2496
+ {
2497
+ name: "arrival_delay",
2498
+ type: "integer",
2499
+ source: "arrival.delay",
2500
+ default: null
2501
+ },
2502
+ {
2503
+ name: "departure_delay",
2504
+ type: "integer",
2505
+ source: "departure.delay",
2506
+ default: null
2507
+ },
2508
+ {
2509
+ name: "departure_timestamp",
2510
+ type: "text",
2511
+ source: "departure.time",
2512
+ default: null
2513
+ },
2514
+ {
2515
+ name: "arrival_timestamp",
2516
+ type: "text",
2517
+ source: "arrival.time",
2518
+ default: null
2519
+ },
2520
+ {
2521
+ name: "schedule_relationship",
2522
+ type: "text",
2523
+ source: "scheduleRelationship",
2524
+ default: null
2525
+ },
2526
+ {
2527
+ name: "created_timestamp",
2528
+ type: "integer",
2529
+ required: true
2530
+ },
2531
+ {
2532
+ name: "expiration_timestamp",
2533
+ type: "integer",
2534
+ required: true
2535
+ }
2536
+ ]
2537
+ };
2538
+
2539
+ //#endregion
2540
+ //#region src/models/gtfs-realtime/vehicle-positions.ts
2541
+ const vehiclePositions = {
2542
+ filenameBase: "vehicle_positions",
2543
+ extension: "gtfs-realtime",
2544
+ schema: [
2545
+ {
2546
+ name: "id",
2547
+ type: "text",
2548
+ required: true,
2549
+ primary: true,
2550
+ index: true,
2551
+ source: "id",
2552
+ prefix: true
2553
+ },
2554
+ {
2555
+ name: "bearing",
2556
+ type: "real",
2557
+ source: "vehicle.position.bearing",
2558
+ default: null
2559
+ },
2560
+ {
2561
+ name: "latitude",
2562
+ type: "real",
2563
+ min: -90,
2564
+ max: 90,
2565
+ source: "vehicle.position.latitude",
2566
+ default: null
2567
+ },
2568
+ {
2569
+ name: "longitude",
2570
+ type: "real",
2571
+ source: "vehicle.position.longitude",
2572
+ min: -180,
2573
+ max: 180,
2574
+ default: null
2575
+ },
2576
+ {
2577
+ name: "speed",
2578
+ type: "real",
2579
+ min: 0,
2580
+ source: "vehicle.position.speed",
2581
+ default: null
2582
+ },
2583
+ {
2584
+ name: "current_stop_sequence",
2585
+ type: "integer",
2586
+ source: "vehicle.currentStopSequence",
2587
+ default: null
2588
+ },
2589
+ {
2590
+ name: "trip_id",
2591
+ type: "text",
2592
+ index: true,
2593
+ source: "vehicle.trip.tripId",
2594
+ default: null,
2595
+ prefix: true
2596
+ },
2597
+ {
2598
+ name: "trip_start_date",
2599
+ type: "text",
2600
+ index: true,
2601
+ source: "vehicle.trip.startDate",
2602
+ default: null
2603
+ },
2604
+ {
2605
+ name: "trip_start_time",
2606
+ type: "text",
2607
+ index: true,
2608
+ source: "vehicle.trip.startTime",
2609
+ default: null
2610
+ },
2611
+ {
2612
+ name: "congestion_level",
2613
+ type: "text",
2614
+ source: "vehicle.congestionLevel",
2615
+ default: null
2616
+ },
2617
+ {
2618
+ name: "occupancy_status",
2619
+ type: "text",
2620
+ source: "vehicle.occupancyStatus",
2621
+ default: null
2622
+ },
2623
+ {
2624
+ name: "occupancy_percentage",
2625
+ type: "integer",
2626
+ source: "vehicle.occupancyPercentage",
2627
+ default: null
2628
+ },
2629
+ {
2630
+ name: "vehicle_stop_status",
2631
+ type: "text",
2632
+ source: "vehicle.vehicleStopStatus",
2633
+ default: null
2634
+ },
2635
+ {
2636
+ name: "vehicle_id",
2637
+ type: "text",
2638
+ index: true,
2639
+ source: "vehicle.vehicle.id",
2640
+ default: null,
2641
+ prefix: true
2642
+ },
2643
+ {
2644
+ name: "vehicle_label",
2645
+ type: "text",
2646
+ source: "vehicle.vehicle.label",
2647
+ default: null
2648
+ },
2649
+ {
2650
+ name: "vehicle_license_plate",
2651
+ type: "text",
2652
+ source: "vehicle.vehicle.licensePlate",
2653
+ default: null
2654
+ },
2655
+ {
2656
+ name: "vehicle_wheelchair_accessible",
2657
+ type: "text",
2658
+ source: "vehicle.vehicle.wheelchairAccessible",
2659
+ default: null
2660
+ },
2661
+ {
2662
+ name: "timestamp",
2663
+ type: "text",
2664
+ source: "vehicle.timestamp",
2665
+ default: null
2666
+ },
2667
+ {
2668
+ name: "created_timestamp",
2669
+ type: "integer",
2670
+ required: true
2671
+ },
2672
+ {
2673
+ name: "expiration_timestamp",
2674
+ type: "integer",
2675
+ required: true
2676
+ }
2677
+ ]
2678
+ };
2679
+
2680
+ //#endregion
2681
+ //#region src/models/gtfs-realtime/service-alerts.ts
2682
+ const serviceAlerts = {
2683
+ filenameBase: "service_alerts",
2684
+ extension: "gtfs-realtime",
2685
+ schema: [
2686
+ {
2687
+ name: "id",
2688
+ type: "text",
2689
+ required: true,
2690
+ primary: true,
2691
+ index: true,
2692
+ source: "id",
2693
+ prefix: true
2694
+ },
2695
+ {
2696
+ name: "active_period",
2697
+ type: "json",
2698
+ source: "alert.activePeriod"
2699
+ },
2700
+ {
2701
+ name: "cause",
2702
+ type: "text",
2703
+ source: "alert.cause"
2704
+ },
2705
+ {
2706
+ name: "effect",
2707
+ type: "text",
2708
+ source: "alert.effect"
2709
+ },
2710
+ {
2711
+ name: "url",
2712
+ type: "text",
2713
+ source: "alert.url.translation[0].text",
2714
+ default: ""
2715
+ },
2716
+ {
2717
+ name: "start_time",
2718
+ type: "text",
2719
+ source: "alert.activePeriod[0].start",
2720
+ default: null
2721
+ },
2722
+ {
2723
+ name: "end_time",
2724
+ type: "text",
2725
+ source: "alert.activePeriod[0].end",
2726
+ default: null
2727
+ },
2728
+ {
2729
+ name: "header_text",
2730
+ type: "text",
2731
+ required: true,
2732
+ source: "alert.headerText.translation[0].text",
2733
+ default: ""
2734
+ },
2735
+ {
2736
+ name: "description_text",
2737
+ type: "text",
2738
+ required: true,
2739
+ source: "alert.descriptionText.translation[0].text",
2740
+ default: ""
2741
+ },
2742
+ {
2743
+ name: "tts_header_text",
2744
+ type: "text",
2745
+ source: "alert.ttsHeaderText.translation[0].text"
2746
+ },
2747
+ {
2748
+ name: "tts_description_text",
2749
+ type: "text",
2750
+ source: "alert.ttsDescriptionText.translation[0].text"
2751
+ },
2752
+ {
2753
+ name: "severity_level",
2754
+ type: "text",
2755
+ source: "alert.severityLevel"
2756
+ },
2757
+ {
2758
+ name: "created_timestamp",
2759
+ type: "integer",
2760
+ required: true
2761
+ },
2762
+ {
2763
+ name: "expiration_timestamp",
2764
+ type: "integer",
2765
+ required: true
2766
+ }
2767
+ ]
2768
+ };
2769
+
2770
+ //#endregion
2771
+ //#region src/models/gtfs-realtime/service-alert-informed_entities.ts
2772
+ const serviceAlertInformedEntities = {
2773
+ filenameBase: "service_alert_informed_entities",
2774
+ extension: "gtfs-realtime",
2775
+ schema: [
2776
+ {
2777
+ name: "alert_id",
2778
+ type: "text",
2779
+ required: true,
2780
+ primary: true,
2781
+ source: "parent.id",
2782
+ prefix: true
2783
+ },
2784
+ {
2785
+ name: "stop_id",
2786
+ type: "text",
2787
+ primary: true,
2788
+ source: "stopId",
2789
+ default: null,
2790
+ prefix: true
2791
+ },
2792
+ {
2793
+ name: "route_id",
2794
+ type: "text",
2795
+ primary: true,
2796
+ source: "routeId",
2797
+ default: null,
2798
+ prefix: true
2799
+ },
2800
+ {
2801
+ name: "route_type",
2802
+ type: "integer",
2803
+ primary: true,
2804
+ source: "routeType",
2805
+ default: null
2806
+ },
2807
+ {
2808
+ name: "trip_id",
2809
+ type: "text",
2810
+ primary: true,
2811
+ source: "trip.tripId",
2812
+ default: null,
2813
+ prefix: true
2814
+ },
2815
+ {
2816
+ name: "direction_id",
2817
+ type: "integer",
2818
+ primary: true,
2819
+ source: "directionId",
2820
+ default: null
2821
+ },
2822
+ {
2823
+ name: "created_timestamp",
2824
+ type: "integer",
2825
+ required: true
2826
+ },
2827
+ {
2828
+ name: "expiration_timestamp",
2829
+ type: "integer",
2830
+ required: true
2831
+ }
2832
+ ]
2833
+ };
2834
+
2835
+ //#endregion
2836
+ //#region src/models/ods/deadhead-times.ts
2837
+ const deadheadTimes = {
2838
+ filenameBase: "deadhead_times",
2839
+ filenameExtension: "txt",
2840
+ nonstandard: true,
2841
+ extension: "ods",
2842
+ schema: [
2843
+ {
2844
+ name: "deadhead_id",
2845
+ type: "text",
2846
+ required: true,
2847
+ index: true,
2848
+ primary: true,
2849
+ prefix: true
2850
+ },
2851
+ {
2852
+ name: "arrival_time",
2853
+ type: "time",
2854
+ required: true
2855
+ },
2856
+ {
2857
+ name: "departure_time",
2858
+ type: "time",
2859
+ required: true
2860
+ },
2861
+ {
2862
+ name: "ops_location_id",
2863
+ type: "text",
2864
+ prefix: true
2865
+ },
2866
+ {
2867
+ name: "stop_id",
2868
+ type: "text",
2869
+ prefix: true
2870
+ },
2871
+ {
2872
+ name: "location_sequence",
2873
+ type: "integer",
2874
+ required: true,
2875
+ primary: true,
2876
+ min: 0,
2877
+ index: true
2878
+ },
2879
+ {
2880
+ name: "shape_dist_traveled",
2881
+ type: "real",
2882
+ min: 0
2883
+ }
2884
+ ]
2885
+ };
2886
+
2887
+ //#endregion
2888
+ //#region src/models/ods/deadheads.ts
2889
+ const deadheads = {
2890
+ filenameBase: "deadheads",
2891
+ filenameExtension: "txt",
2892
+ nonstandard: true,
2893
+ extension: "ods",
2894
+ schema: [
2895
+ {
2896
+ name: "deadhead_id",
2897
+ type: "text",
2898
+ primary: true,
2899
+ required: true,
2900
+ prefix: true
2901
+ },
2902
+ {
2903
+ name: "service_id",
2904
+ type: "text",
2905
+ required: true,
2906
+ prefix: true
2907
+ },
2908
+ {
2909
+ name: "block_id",
2910
+ type: "text",
2911
+ required: true,
2912
+ index: true,
2913
+ prefix: true
2914
+ },
2915
+ {
2916
+ name: "shape_id",
2917
+ type: "text",
2918
+ index: true,
2919
+ prefix: true
2920
+ },
2921
+ {
2922
+ name: "to_trip_id",
2923
+ type: "text",
2924
+ index: true,
2925
+ prefix: true
2926
+ },
2927
+ {
2928
+ name: "from_trip_id",
2929
+ type: "text",
2930
+ index: true,
2931
+ prefix: true
2932
+ },
2933
+ {
2934
+ name: "to_deadhead_id",
2935
+ type: "text",
2936
+ index: true,
2937
+ prefix: true
2938
+ },
2939
+ {
2940
+ name: "from_deadhead_id",
2941
+ type: "text",
2942
+ index: true,
2943
+ prefix: true
2944
+ }
2945
+ ]
2946
+ };
2947
+
2948
+ //#endregion
2949
+ //#region src/models/ods/ops-locations.ts
2950
+ const opsLocations = {
2951
+ filenameBase: "ops_locations",
2952
+ filenameExtension: "txt",
2953
+ nonstandard: true,
2954
+ extension: "ods",
2955
+ schema: [
2956
+ {
2957
+ name: "ops_location_id",
2958
+ type: "text",
2959
+ primary: true,
2960
+ required: true,
2961
+ prefix: true
2962
+ },
2963
+ {
2964
+ name: "ops_location_code",
2965
+ type: "text"
2966
+ },
2967
+ {
2968
+ name: "ops_location_name",
2969
+ type: "text",
2970
+ required: true,
2971
+ nocase: true
2972
+ },
2973
+ {
2974
+ name: "ops_location_desc",
2975
+ type: "text",
2976
+ nocase: true
2977
+ },
2978
+ {
2979
+ name: "ops_location_lat",
2980
+ type: "real",
2981
+ required: true,
2982
+ min: -90,
2983
+ max: 90
2984
+ },
2985
+ {
2986
+ name: "ops_location_lon",
2987
+ type: "real",
2988
+ required: true,
2989
+ min: -180,
2990
+ max: 180
2991
+ }
2992
+ ]
2993
+ };
2994
+
2995
+ //#endregion
2996
+ //#region src/models/ods/run-events.ts
2997
+ const runEvents = {
2998
+ filenameBase: "run_event",
2999
+ filenameExtension: "txt",
3000
+ nonstandard: true,
3001
+ extension: "ods",
3002
+ schema: [
3003
+ {
3004
+ name: "run_event_id",
3005
+ type: "text",
3006
+ primary: true,
3007
+ required: true,
3008
+ prefix: true
3009
+ },
3010
+ {
3011
+ name: "piece_id",
3012
+ type: "text",
3013
+ required: true,
3014
+ prefix: true
3015
+ },
3016
+ {
3017
+ name: "event_type",
3018
+ type: "integer",
3019
+ required: true,
3020
+ min: 0,
3021
+ index: true
3022
+ },
3023
+ {
3024
+ name: "event_name",
3025
+ type: "text",
3026
+ nocase: true
3027
+ },
3028
+ {
3029
+ name: "event_time",
3030
+ type: "text",
3031
+ required: true
3032
+ },
3033
+ {
3034
+ name: "event_duration",
3035
+ type: "integer",
3036
+ required: true,
3037
+ min: 0
3038
+ },
3039
+ {
3040
+ name: "event_from_location_type",
3041
+ type: "integer",
3042
+ min: 0,
3043
+ max: 1,
3044
+ index: true
3045
+ },
3046
+ {
3047
+ name: "event_from_location_id",
3048
+ type: "text",
3049
+ prefix: true
3050
+ },
3051
+ {
3052
+ name: "event_to_location_type",
3053
+ type: "integer",
3054
+ min: 0,
3055
+ max: 1,
3056
+ index: true
3057
+ },
3058
+ {
3059
+ name: "event_to_location_id",
3060
+ type: "text",
3061
+ prefix: true
3062
+ }
3063
+ ]
3064
+ };
3065
+
3066
+ //#endregion
3067
+ //#region src/models/ods/runs-pieces.ts
3068
+ const runsPieces = {
3069
+ filenameBase: "runs_pieces",
3070
+ filenameExtension: "txt",
3071
+ nonstandard: true,
3072
+ extension: "ods",
3073
+ schema: [
3074
+ {
3075
+ name: "run_id",
3076
+ type: "text",
3077
+ required: true
3078
+ },
3079
+ {
3080
+ name: "piece_id",
3081
+ type: "text",
3082
+ primary: true,
3083
+ required: true
3084
+ },
3085
+ {
3086
+ name: "start_type",
3087
+ type: "integer",
3088
+ required: true,
3089
+ min: 0,
3090
+ max: 2,
3091
+ index: true
3092
+ },
3093
+ {
3094
+ name: "start_trip_id",
3095
+ type: "text",
3096
+ required: true,
3097
+ index: true
3098
+ },
3099
+ {
3100
+ name: "start_trip_position",
3101
+ type: "integer",
3102
+ min: 0
3103
+ },
3104
+ {
3105
+ name: "end_type",
3106
+ type: "integer",
3107
+ required: true,
3108
+ min: 0,
3109
+ max: 2,
3110
+ index: true
3111
+ },
3112
+ {
3113
+ name: "end_trip_id",
3114
+ type: "text",
3115
+ required: true,
3116
+ index: true
3117
+ },
3118
+ {
3119
+ name: "end_trip_position",
3120
+ type: "integer",
3121
+ min: 0
3122
+ }
3123
+ ]
3124
+ };
3125
+
3126
+ //#endregion
3127
+ //#region src/models/tides/devices.ts
3128
+ const devices = {
3129
+ filenameBase: "devices",
3130
+ filenameExtension: "txt",
3131
+ nonstandard: true,
3132
+ extension: "tides",
3133
+ schema: [
3134
+ {
3135
+ name: "device_id",
3136
+ type: "text",
3137
+ required: true,
3138
+ primary: true
3139
+ },
3140
+ {
3141
+ name: "stop_id",
3142
+ type: "text"
3143
+ },
3144
+ {
3145
+ name: "vehicle_id",
3146
+ type: "text"
3147
+ },
3148
+ {
3149
+ name: "train_car_id",
3150
+ type: "text"
3151
+ },
3152
+ {
3153
+ name: "device_type",
3154
+ type: "text"
3155
+ },
3156
+ {
3157
+ name: "device_vendor",
3158
+ type: "text"
3159
+ },
3160
+ {
3161
+ name: "device_model",
3162
+ type: "text"
3163
+ },
3164
+ {
3165
+ name: "device_location",
3166
+ type: "text"
3167
+ }
3168
+ ]
3169
+ };
3170
+
3171
+ //#endregion
3172
+ //#region src/models/tides/fare-transactions.ts
3173
+ const fareTransactions = {
3174
+ filenameBase: "fare_transactions",
3175
+ filenameExtension: "txt",
3176
+ nonstandard: true,
3177
+ extension: "tides",
3178
+ schema: [
3179
+ {
3180
+ name: "transaction_id",
3181
+ type: "text",
3182
+ required: true,
3183
+ index: true
3184
+ },
3185
+ {
3186
+ name: "service_date",
3187
+ type: "date",
3188
+ required: true
3189
+ },
3190
+ {
3191
+ name: "event_timestamp",
3192
+ type: "text",
3193
+ required: true
3194
+ },
3195
+ {
3196
+ name: "location_ping_id",
3197
+ type: "text"
3198
+ },
3199
+ {
3200
+ name: "amount",
3201
+ type: "real",
3202
+ required: true
3203
+ },
3204
+ {
3205
+ name: "currency_type",
3206
+ type: "text"
3207
+ },
3208
+ {
3209
+ name: "fare_action",
3210
+ type: "text",
3211
+ required: true
3212
+ },
3213
+ {
3214
+ name: "trip_id_performed",
3215
+ type: "text"
3216
+ },
3217
+ {
3218
+ name: "trip_id_scheduled",
3219
+ type: "text"
3220
+ },
3221
+ {
3222
+ name: "pattern_id",
3223
+ type: "text"
3224
+ },
3225
+ {
3226
+ name: "trip_stop_sequence",
3227
+ type: "integer",
3228
+ min: 1
3229
+ },
3230
+ {
3231
+ name: "scheduled_stop_sequence",
3232
+ type: "integer",
3233
+ min: 0
3234
+ },
3235
+ {
3236
+ name: "vehicle_id",
3237
+ type: "text"
3238
+ },
3239
+ {
3240
+ name: "device_id",
3241
+ type: "text"
3242
+ },
3243
+ {
3244
+ name: "fare_id",
3245
+ type: "text"
3246
+ },
3247
+ {
3248
+ name: "stop_id",
3249
+ type: "text"
3250
+ },
3251
+ {
3252
+ name: "num_riders",
3253
+ type: "integer",
3254
+ min: 0
3255
+ },
3256
+ {
3257
+ name: "fare_media_id",
3258
+ type: "text"
3259
+ },
3260
+ {
3261
+ name: "rider_category",
3262
+ type: "text"
3263
+ },
3264
+ {
3265
+ name: "fare_product",
3266
+ type: "text"
3267
+ },
3268
+ {
3269
+ name: "fare_period",
3270
+ type: "text"
3271
+ },
3272
+ {
3273
+ name: "fare_capped",
3274
+ type: "text",
3275
+ required: true
3276
+ },
3277
+ {
3278
+ name: "token_id",
3279
+ type: "text"
3280
+ },
3281
+ {
3282
+ name: "balance",
3283
+ type: "real"
3284
+ }
3285
+ ]
3286
+ };
3287
+
3288
+ //#endregion
3289
+ //#region src/models/tides/operators.ts
3290
+ const operators = {
3291
+ filenameBase: "operators",
3292
+ filenameExtension: "txt",
3293
+ nonstandard: true,
3294
+ extension: "tides",
3295
+ schema: [{
3296
+ name: "operator_id",
3297
+ type: "text",
3298
+ required: true,
3299
+ primary: true
3300
+ }]
3301
+ };
3302
+
3303
+ //#endregion
3304
+ //#region src/models/tides/passenger-events.ts
3305
+ const passengerEvents = {
3306
+ filenameBase: "passenger_events",
3307
+ filenameExtension: "txt",
3308
+ nonstandard: true,
3309
+ extension: "tides",
3310
+ schema: [
3311
+ {
3312
+ name: "passenger_event_id",
3313
+ type: "text",
3314
+ required: true,
3315
+ index: true
3316
+ },
3317
+ {
3318
+ name: "service_date",
3319
+ type: "date",
3320
+ required: true
3321
+ },
3322
+ {
3323
+ name: "event_timestamp",
3324
+ type: "text",
3325
+ required: true
3326
+ },
3327
+ {
3328
+ name: "location_ping_id",
3329
+ type: "text"
3330
+ },
3331
+ {
3332
+ name: "trip_id_performed",
3333
+ type: "text"
3334
+ },
3335
+ {
3336
+ name: "trip_id_scheduled",
3337
+ type: "text"
3338
+ },
3339
+ {
3340
+ name: "trip_stop_sequence",
3341
+ type: "integer",
3342
+ min: 1,
3343
+ required: true
3344
+ },
3345
+ {
3346
+ name: "scheduled_stop_sequence",
3347
+ type: "integer",
3348
+ min: 0
3349
+ },
3350
+ {
3351
+ name: "event_type",
3352
+ type: "text",
3353
+ required: true
3354
+ },
3355
+ {
3356
+ name: "vehicle_id",
3357
+ type: "text",
3358
+ required: true
3359
+ },
3360
+ {
3361
+ name: "device_id",
3362
+ type: "text"
3363
+ },
3364
+ {
3365
+ name: "train_car_id",
3366
+ type: "text"
3367
+ },
3368
+ {
3369
+ name: "stop_id",
3370
+ type: "text"
3371
+ },
3372
+ {
3373
+ name: "pattern_id",
3374
+ type: "text"
3375
+ },
3376
+ {
3377
+ name: "event_count",
3378
+ type: "integer",
3379
+ min: 0
3380
+ }
3381
+ ]
3382
+ };
3383
+
3384
+ //#endregion
3385
+ //#region src/models/tides/station-activities.ts
3386
+ const stationActivities = {
3387
+ filenameBase: "station_activities",
3388
+ filenameExtension: "txt",
3389
+ nonstandard: true,
3390
+ extension: "tides",
3391
+ schema: [
3392
+ {
3393
+ name: "service_date",
3394
+ type: "date",
3395
+ required: true,
3396
+ primary: true
3397
+ },
3398
+ {
3399
+ name: "stop_id",
3400
+ type: "text",
3401
+ required: true,
3402
+ primary: true
3403
+ },
3404
+ {
3405
+ name: "time_period_start",
3406
+ type: "text",
3407
+ required: true,
3408
+ primary: true
3409
+ },
3410
+ {
3411
+ name: "time_period_end",
3412
+ type: "text",
3413
+ required: true,
3414
+ primary: true
3415
+ },
3416
+ {
3417
+ name: "time_period_category",
3418
+ type: "text"
3419
+ },
3420
+ {
3421
+ name: "total_entries",
3422
+ type: "integer",
3423
+ min: 0
3424
+ },
3425
+ {
3426
+ name: "total_exits",
3427
+ type: "integer",
3428
+ min: 0
3429
+ },
3430
+ {
3431
+ name: "number_of_transactions",
3432
+ type: "integer",
3433
+ min: 0
3434
+ },
3435
+ {
3436
+ name: "bike_entries",
3437
+ type: "integer",
3438
+ min: 0
3439
+ },
3440
+ {
3441
+ name: "bike_exits",
3442
+ type: "integer",
3443
+ min: 0
3444
+ },
3445
+ {
3446
+ name: "ramp_entries",
3447
+ type: "integer",
3448
+ min: 0
3449
+ },
3450
+ {
3451
+ name: "ramp_exits",
3452
+ type: "integer",
3453
+ min: 0
3454
+ }
3455
+ ]
3456
+ };
3457
+
3458
+ //#endregion
3459
+ //#region src/models/tides/stop-visits.ts
3460
+ const stopVisits = {
3461
+ filenameBase: "stop_visits",
3462
+ filenameExtension: "txt",
3463
+ nonstandard: true,
3464
+ extension: "tides",
3465
+ schema: [
3466
+ {
3467
+ name: "service_date",
3468
+ type: "date",
3469
+ required: true,
3470
+ primary: true
3471
+ },
3472
+ {
3473
+ name: "trip_id_performed",
3474
+ type: "text",
3475
+ required: true,
3476
+ primary: true
3477
+ },
3478
+ {
3479
+ name: "trip_stop_sequence",
3480
+ type: "integer",
3481
+ min: 1,
3482
+ required: true,
3483
+ primary: true
3484
+ },
3485
+ {
3486
+ name: "scheduled_stop_sequence",
3487
+ type: "integer",
3488
+ min: 0
3489
+ },
3490
+ {
3491
+ name: "pattern_id",
3492
+ type: "text"
3493
+ },
3494
+ {
3495
+ name: "vehicle_id",
3496
+ type: "text"
3497
+ },
3498
+ {
3499
+ name: "dwell",
3500
+ type: "integer",
3501
+ min: 0
3502
+ },
3503
+ {
3504
+ name: "stop_id",
3505
+ type: "text"
3506
+ },
3507
+ {
3508
+ name: "timepoint",
3509
+ type: "text"
3510
+ },
3511
+ {
3512
+ name: "schedule_arrival_time",
3513
+ type: "text"
3514
+ },
3515
+ {
3516
+ name: "schedule_departure_time",
3517
+ type: "text"
3518
+ },
3519
+ {
3520
+ name: "actual_arrival_time",
3521
+ type: "text"
3522
+ },
3523
+ {
3524
+ name: "actual_departure_time",
3525
+ type: "text"
3526
+ },
3527
+ {
3528
+ name: "distance",
3529
+ type: "integer",
3530
+ min: 0
3531
+ },
3532
+ {
3533
+ name: "boarding_1",
3534
+ type: "integer",
3535
+ min: 0
3536
+ },
3537
+ {
3538
+ name: "alighting_1",
3539
+ type: "integer",
3540
+ min: 0
3541
+ },
3542
+ {
3543
+ name: "boarding_2",
3544
+ type: "integer",
3545
+ min: 0
3546
+ },
3547
+ {
3548
+ name: "alighting_2",
3549
+ type: "integer",
3550
+ min: 0
3551
+ },
3552
+ {
3553
+ name: "departure_load",
3554
+ type: "integer",
3555
+ min: 0
3556
+ },
3557
+ {
3558
+ name: "door_open",
3559
+ type: "text"
3560
+ },
3561
+ {
3562
+ name: "door_close",
3563
+ type: "text"
3564
+ },
3565
+ {
3566
+ name: "door_status",
3567
+ type: "text"
3568
+ },
3569
+ {
3570
+ name: "ramp_deployed_time",
3571
+ type: "real",
3572
+ min: 0
3573
+ },
3574
+ {
3575
+ name: "ramp_failure",
3576
+ type: "text"
3577
+ },
3578
+ {
3579
+ name: "kneel_deployed_time",
3580
+ type: "real",
3581
+ min: 0
3582
+ },
3583
+ {
3584
+ name: "lift_deployed_time",
3585
+ type: "real",
3586
+ min: 0
3587
+ },
3588
+ {
3589
+ name: "bike_rack_deployed",
3590
+ type: "text"
3591
+ },
3592
+ {
3593
+ name: "bike_load",
3594
+ type: "integer",
3595
+ min: 0
3596
+ },
3597
+ {
3598
+ name: "revenue",
3599
+ type: "real"
3600
+ },
3601
+ {
3602
+ name: "number_of_transactions",
3603
+ type: "integer",
3604
+ min: 0
3605
+ },
3606
+ {
3607
+ name: "schedule_relationship",
3608
+ type: "text"
3609
+ }
3610
+ ]
3611
+ };
3612
+
3613
+ //#endregion
3614
+ //#region src/models/tides/train-cars.ts
3615
+ const trainCars = {
3616
+ filenameBase: "train_cars",
3617
+ filenameExtension: "txt",
3618
+ nonstandard: true,
3619
+ extension: "tides",
3620
+ schema: [
3621
+ {
3622
+ name: "train_car_id",
3623
+ type: "text",
3624
+ required: true,
3625
+ primary: true
3626
+ },
3627
+ {
3628
+ name: "model_name",
3629
+ type: "text"
3630
+ },
3631
+ {
3632
+ name: "facility_name",
3633
+ type: "text"
3634
+ },
3635
+ {
3636
+ name: "capacity_seated",
3637
+ type: "integer",
3638
+ min: 0
3639
+ },
3640
+ {
3641
+ name: "capacity_wheelchair",
3642
+ type: "integer",
3643
+ min: 0
3644
+ },
3645
+ {
3646
+ name: "capacity_bike",
3647
+ type: "integer",
3648
+ min: 0
3649
+ },
3650
+ {
3651
+ name: "bike_rack",
3652
+ type: "text"
3653
+ },
3654
+ {
3655
+ name: "capacity_standing",
3656
+ type: "integer",
3657
+ min: 0
3658
+ },
3659
+ {
3660
+ name: "train_car_type",
3661
+ type: "text"
3662
+ }
3663
+ ]
3664
+ };
3665
+
3666
+ //#endregion
3667
+ //#region src/models/tides/trips-performed.ts
3668
+ const tripsPerformed = {
3669
+ filenameBase: "trips_performed",
3670
+ filenameExtension: "txt",
3671
+ nonstandard: true,
3672
+ extension: "tides",
3673
+ schema: [
3674
+ {
3675
+ name: "service_date",
3676
+ type: "date",
3677
+ required: true,
3678
+ primary: true
3679
+ },
3680
+ {
3681
+ name: "trip_id_performed",
3682
+ type: "text",
3683
+ required: true,
3684
+ primary: true
3685
+ },
3686
+ {
3687
+ name: "vehicle_id",
3688
+ type: "text",
3689
+ required: true
3690
+ },
3691
+ {
3692
+ name: "trip_id_scheduled",
3693
+ type: "text"
3694
+ },
3695
+ {
3696
+ name: "route_id",
3697
+ type: "text"
3698
+ },
3699
+ {
3700
+ name: "route_type",
3701
+ type: "text"
3702
+ },
3703
+ {
3704
+ name: "ntd_mode",
3705
+ type: "text"
3706
+ },
3707
+ {
3708
+ name: "route_type_agency",
3709
+ type: "text"
3710
+ },
3711
+ {
3712
+ name: "shape_id",
3713
+ type: "text"
3714
+ },
3715
+ {
3716
+ name: "pattern_id",
3717
+ type: "text"
3718
+ },
3719
+ {
3720
+ name: "direction_id",
3721
+ type: "integer",
3722
+ min: 0,
3723
+ max: 1
3724
+ },
3725
+ {
3726
+ name: "operator_id",
3727
+ type: "text"
3728
+ },
3729
+ {
3730
+ name: "block_id",
3731
+ type: "text"
3732
+ },
3733
+ {
3734
+ name: "trip_start_stop_id",
3735
+ type: "text"
3736
+ },
3737
+ {
3738
+ name: "trip_end_stop_id",
3739
+ type: "text"
3740
+ },
3741
+ {
3742
+ name: "schedule_trip_start",
3743
+ type: "text"
3744
+ },
3745
+ {
3746
+ name: "schedule_trip_end",
3747
+ type: "text"
3748
+ },
3749
+ {
3750
+ name: "actual_trip_start",
3751
+ type: "text"
3752
+ },
3753
+ {
3754
+ name: "actual_trip_end",
3755
+ type: "text"
3756
+ },
3757
+ {
3758
+ name: "trip_type",
3759
+ type: "text"
3760
+ },
3761
+ {
3762
+ name: "schedule_relationship",
3763
+ type: "text"
3764
+ }
3765
+ ]
3766
+ };
3767
+
3768
+ //#endregion
3769
+ //#region src/models/tides/vehicle-train-cars.ts
3770
+ const vehicleTrainCars = {
3771
+ filenameBase: "vehicle_train_cars",
3772
+ filenameExtension: "txt",
3773
+ nonstandard: true,
3774
+ extension: "tides",
3775
+ schema: [
3776
+ {
3777
+ name: "vehicle_id",
3778
+ type: "text",
3779
+ required: true,
3780
+ primary: true
3781
+ },
3782
+ {
3783
+ name: "train_car_id",
3784
+ type: "text",
3785
+ required: true,
3786
+ primary: true
3787
+ },
3788
+ {
3789
+ name: "train_car_order",
3790
+ type: "integer",
3791
+ min: 0
3792
+ },
3793
+ {
3794
+ name: "operator_id",
3795
+ type: "text"
3796
+ }
3797
+ ]
3798
+ };
3799
+
3800
+ //#endregion
3801
+ //#region src/models/tides/vehicle-locations.ts
3802
+ const vehicleLocations = {
3803
+ filenameBase: "vehicle_locations",
3804
+ filenameExtension: "txt",
3805
+ nonstandard: true,
3806
+ extension: "tides",
3807
+ schema: [
3808
+ {
3809
+ name: "location_ping_id",
3810
+ type: "text",
3811
+ required: true,
3812
+ primary: true
3813
+ },
3814
+ {
3815
+ name: "service_date",
3816
+ type: "date"
3817
+ },
3818
+ {
3819
+ name: "event_timestamp",
3820
+ type: "text",
3821
+ required: true
3822
+ },
3823
+ {
3824
+ name: "trip_id_performed",
3825
+ type: "text"
3826
+ },
3827
+ {
3828
+ name: "trip_id_scheduled",
3829
+ type: "text"
3830
+ },
3831
+ {
3832
+ name: "trip_stop_sequence",
3833
+ type: "integer",
3834
+ min: 1
3835
+ },
3836
+ {
3837
+ name: "scheduled_stop_sequence",
3838
+ type: "integer",
3839
+ min: 0
3840
+ },
3841
+ {
3842
+ name: "vehicle_id",
3843
+ type: "text",
3844
+ required: true
3845
+ },
3846
+ {
3847
+ name: "device_id",
3848
+ type: "text"
3849
+ },
3850
+ {
3851
+ name: "pattern_id",
3852
+ type: "text"
3853
+ },
3854
+ {
3855
+ name: "stop_id",
3856
+ type: "text"
3857
+ },
3858
+ {
3859
+ name: "current_status",
3860
+ type: "text"
3861
+ },
3862
+ {
3863
+ name: "latitude",
3864
+ type: "real",
3865
+ min: -90,
3866
+ max: 90
3867
+ },
3868
+ {
3869
+ name: "longitude",
3870
+ type: "real",
3871
+ min: -180,
3872
+ max: 180
3873
+ },
3874
+ {
3875
+ name: "gps_quality",
3876
+ type: "text"
3877
+ },
3878
+ {
3879
+ name: "heading",
3880
+ type: "real",
3881
+ min: 0,
3882
+ max: 360
3883
+ },
3884
+ {
3885
+ name: "speed",
3886
+ type: "real",
3887
+ min: 0
3888
+ },
3889
+ {
3890
+ name: "odometer",
3891
+ type: "real",
3892
+ min: 0
3893
+ },
3894
+ {
3895
+ name: "schedule_deviation",
3896
+ type: "integer"
3897
+ },
3898
+ {
3899
+ name: "headway_deviation",
3900
+ type: "integer"
3901
+ },
3902
+ {
3903
+ name: "trip_type",
3904
+ type: "text"
3905
+ },
3906
+ {
3907
+ name: "schedule_relationship",
3908
+ type: "text"
3909
+ }
3910
+ ]
3911
+ };
3912
+
3913
+ //#endregion
3914
+ //#region src/models/tides/vehicles.ts
3915
+ const vehicles = {
3916
+ filenameBase: "vehicles",
3917
+ filenameExtension: "txt",
3918
+ nonstandard: true,
3919
+ extension: "tides",
3920
+ schema: [
3921
+ {
3922
+ name: "vehicle_id",
3923
+ type: "text",
3924
+ required: true,
3925
+ primary: true
3926
+ },
3927
+ {
3928
+ name: "vehicle_start",
3929
+ type: "text"
3930
+ },
3931
+ {
3932
+ name: "vehicle_end",
3933
+ type: "text"
3934
+ },
3935
+ {
3936
+ name: "model_name",
3937
+ type: "text"
3938
+ },
3939
+ {
3940
+ name: "facility_name",
3941
+ type: "text"
3942
+ },
3943
+ {
3944
+ name: "capacity_seated",
3945
+ type: "integer",
3946
+ min: 0
3947
+ },
3948
+ {
3949
+ name: "capacity_wheelchair",
3950
+ type: "integer",
3951
+ min: 0
3952
+ },
3953
+ {
3954
+ name: "capacity_bike",
3955
+ type: "integer",
3956
+ min: 0
3957
+ },
3958
+ {
3959
+ name: "bike_rack",
3960
+ type: "text"
3961
+ },
3962
+ {
3963
+ name: "capacity_standing",
3964
+ type: "integer",
3965
+ min: 0
3966
+ }
3967
+ ]
3968
+ };
3969
+
3970
+ //#endregion
3971
+ //#region src/models/models.ts
3972
+ var models_exports = /* @__PURE__ */ __exportAll({
3973
+ agency: () => agency,
3974
+ areas: () => areas,
3975
+ attributions: () => attributions,
3976
+ boardAlight: () => boardAlight,
3977
+ bookingRules: () => bookingRules,
3978
+ calendar: () => calendar,
3979
+ calendarAttributes: () => calendarAttributes,
3980
+ calendarDates: () => calendarDates,
3981
+ deadheadTimes: () => deadheadTimes,
3982
+ deadheads: () => deadheads,
3983
+ devices: () => devices,
3984
+ directions: () => directions,
3985
+ fareAttributes: () => fareAttributes,
3986
+ fareLegRules: () => fareLegRules,
3987
+ fareMedia: () => fareMedia,
3988
+ fareProducts: () => fareProducts,
3989
+ fareRules: () => fareRules,
3990
+ fareTransactions: () => fareTransactions,
3991
+ fareTransferRules: () => fareTransferRules,
3992
+ feedInfo: () => feedInfo,
3993
+ frequencies: () => frequencies,
3994
+ levels: () => levels,
3995
+ locationGroupStops: () => locationGroupStops,
3996
+ locationGroups: () => locationGroups,
3997
+ locations: () => locations,
3998
+ networks: () => networks,
3999
+ operators: () => operators,
4000
+ opsLocations: () => opsLocations,
4001
+ passengerEvents: () => passengerEvents,
4002
+ pathways: () => pathways,
4003
+ rideFeedInfo: () => rideFeedInfo,
4004
+ riderCategories: () => riderCategories,
4005
+ riderTrip: () => riderTrip,
4006
+ ridership: () => ridership,
4007
+ routeAttributes: () => routeAttributes,
4008
+ routeNetworks: () => routeNetworks,
4009
+ routes: () => routes,
4010
+ runEvents: () => runEvents,
4011
+ runsPieces: () => runsPieces,
4012
+ serviceAlertInformedEntities: () => serviceAlertInformedEntities,
4013
+ serviceAlerts: () => serviceAlerts,
4014
+ shapes: () => shapes,
4015
+ stationActivities: () => stationActivities,
4016
+ stopAreas: () => stopAreas,
4017
+ stopAttributes: () => stopAttributes,
4018
+ stopTimeUpdates: () => stopTimeUpdates,
4019
+ stopTimes: () => stopTimes,
4020
+ stopVisits: () => stopVisits,
4021
+ stops: () => stops,
4022
+ timeframes: () => timeframes,
4023
+ timetableNotes: () => timetableNotes,
4024
+ timetableNotesReferences: () => timetableNotesReferences,
4025
+ timetablePages: () => timetablePages,
4026
+ timetableStopOrder: () => timetableStopOrder,
4027
+ timetables: () => timetables,
4028
+ trainCars: () => trainCars,
4029
+ transfers: () => transfers,
4030
+ translations: () => translations,
4031
+ tripCapacity: () => tripCapacity,
4032
+ tripUpdates: () => tripUpdates,
4033
+ trips: () => trips,
4034
+ tripsDatedVehicleJourney: () => tripsDatedVehicleJourney,
4035
+ tripsPerformed: () => tripsPerformed,
4036
+ vehicleLocations: () => vehicleLocations,
4037
+ vehiclePositions: () => vehiclePositions,
4038
+ vehicleTrainCars: () => vehicleTrainCars,
4039
+ vehicles: () => vehicles
4040
+ });
4041
+
4042
+ //#endregion
4043
+ export { locationGroups as $, directions as A, transfers as B, rideFeedInfo as C, boardAlight as D, riderTrip as E, timetableStopOrder as F, shapes as G, stops as H, timetablePages as I, riderCategories as J, routes as K, timetables as L, tripsDatedVehicleJourney as M, timetableNotesReferences as N, stopAttributes as O, timetableNotes as P, locationGroupStops as Q, trips as R, tripUpdates as S, ridership as T, stopTimes as U, timeframes as V, stopAreas as W, networks as X, pathways as Y, locations as Z, deadheadTimes as _, tripsPerformed as a, fareProducts as at, vehiclePositions as b, stationActivities as c, fareAttributes as ct, fareTransactions as d, bookingRules as dt, levels as et, devices as f, attributions as ft, deadheads as g, opsLocations as h, vehicleTrainCars as i, fareRules as it, calendarAttributes as j, routeAttributes as k, passengerEvents as l, calendar as lt, runEvents as m, agency as mt, vehicles as n, feedInfo as nt, trainCars as o, fareMedia as ot, runsPieces as p, areas as pt, routeNetworks as q, vehicleLocations as r, fareTransferRules as rt, stopVisits as s, fareLegRules as st, models_exports as t, frequencies as tt, operators as u, calendarDates as ut, serviceAlertInformedEntities as v, tripCapacity as w, stopTimeUpdates as x, serviceAlerts as y, translations as z };
4044
+ //# sourceMappingURL=models-9NvwLHlL.js.map