gtfs
Version:
Import GTFS transit data into SQLite and query routes, stops, times, fares and more
2,929 lines (2,876 loc) • 66.8 kB
JavaScript
// src/models/gtfs/agency.ts
var agency = {
filenameBase: "agency",
filenameExtension: "txt",
schema: [
{
name: "agency_id",
type: "text",
primary: true,
prefix: true
},
{
name: "agency_name",
type: "text",
required: true,
nocase: true
},
{
name: "agency_url",
type: "text",
required: true
},
{
name: "agency_timezone",
type: "text",
required: true
},
{
name: "agency_lang",
type: "text",
nocase: true
},
{
name: "agency_phone",
type: "text",
nocase: true
},
{
name: "agency_fare_url",
type: "text"
},
{
name: "agency_email",
type: "text",
nocase: true
},
{
name: "cemv_support",
type: "integer",
min: 0,
max: 2
}
]
};
// src/models/gtfs/areas.ts
var areas = {
filenameBase: "areas",
filenameExtension: "txt",
schema: [
{
name: "area_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "area_name",
type: "text"
}
]
};
// src/models/gtfs/attributions.ts
var attributions = {
filenameBase: "attributions",
filenameExtension: "txt",
schema: [
{
name: "attribution_id",
type: "text",
prefix: true,
primary: true
},
{
name: "agency_id",
type: "text",
prefix: true
},
{
name: "route_id",
type: "text",
prefix: true
},
{
name: "trip_id",
type: "text",
prefix: true
},
{
name: "organization_name",
type: "text",
required: true,
nocase: true
},
{
name: "is_producer",
type: "integer",
min: 0,
max: 1
},
{
name: "is_operator",
type: "integer",
min: 0,
max: 1
},
{
name: "is_authority",
type: "integer",
min: 0,
max: 1
},
{
name: "attribution_url",
type: "text"
},
{
name: "attribution_email",
type: "text",
nocase: true
},
{
name: "attribution_phone",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/booking-rules.ts
var bookingRules = {
filenameBase: "booking_rules",
filenameExtension: "txt",
schema: [
{
name: "booking_rule_id",
type: "text",
primary: true,
prefix: true
},
{
name: "booking_type",
type: "integer",
required: true,
min: 0,
max: 2
},
{
name: "prior_notice_duration_min",
type: "integer",
min: 0
},
{
name: "prior_notice_duration_max",
type: "integer",
min: 0
},
{
name: "prior_notice_last_day",
type: "integer",
min: 0
},
{
name: "prior_notice_last_time",
type: "time"
},
{
name: "prior_notice_start_day",
type: "integer",
min: 0
},
{
name: "prior_notice_start_time",
type: "time"
},
{
name: "prior_notice_service_id",
type: "text",
prefix: true
},
{
name: "message",
type: "text",
nocase: true
},
{
name: "pickup_message",
type: "text",
nocase: true
},
{
name: "drop_off_message",
type: "text",
nocase: true
},
{
name: "phone_number",
type: "text",
nocase: true
},
{
name: "info_url",
type: "text"
},
{
name: "booking_url",
type: "text"
}
]
};
// src/models/gtfs/calendar-dates.ts
var calendarDates = {
filenameBase: "calendar_dates",
filenameExtension: "txt",
schema: [
{
name: "service_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "date",
type: "date",
required: true,
primary: true
},
{
name: "exception_type",
type: "integer",
required: true,
min: 1,
max: 2,
index: true
},
{
name: "holiday_name",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/calendar.ts
var calendar = {
filenameBase: "calendar",
filenameExtension: "txt",
schema: [
{
name: "service_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "monday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "tuesday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "wednesday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "thursday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "friday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "saturday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "sunday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "start_date",
type: "date",
required: true,
index: true
},
{
name: "end_date",
type: "date",
required: true,
index: true
}
]
};
// src/models/gtfs/fare-attributes.ts
var fareAttributes = {
filenameBase: "fare_attributes",
filenameExtension: "txt",
schema: [
{
name: "fare_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "price",
type: "real",
required: true
},
{
name: "currency_type",
type: "text",
required: true
},
{
name: "payment_method",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "transfers",
type: "integer",
min: 0,
max: 2
},
{
name: "agency_id",
type: "text",
prefix: true
},
{
name: "transfer_duration",
type: "integer",
min: 0
}
]
};
// src/models/gtfs/fare-leg-rules.ts
var fareLegRules = {
filenameBase: "fare_leg_rules",
filenameExtension: "txt",
schema: [
{
name: "leg_group_id",
type: "text",
prefix: true
},
{
name: "network_id",
type: "text",
primary: true,
prefix: true
},
{
name: "from_area_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_area_id",
type: "text",
primary: true,
prefix: true
},
{
name: "from_timeframe_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_timeframe_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "fare_product_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "rule_priority",
type: "integer",
min: 0
}
]
};
// src/models/gtfs/fare-media.ts
var fareMedia = {
filenameBase: "fare_media",
filenameExtension: "txt",
schema: [
{
name: "fare_media_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "fare_media_name",
type: "text"
},
{
name: "fare_media_type",
type: "integer",
required: true,
min: 0,
max: 4
}
]
};
// src/models/gtfs/fare-products.ts
var fareProducts = {
filenameBase: "fare_products",
filenameExtension: "txt",
schema: [
{
name: "fare_product_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "rider_category_id",
type: "text",
primary: true,
prefix: true
},
{
name: "fare_product_name",
type: "text"
},
{
name: "fare_media_id",
type: "text",
primary: true,
prefix: true
},
{
name: "amount",
type: "real",
required: true
},
{
name: "currency",
type: "text",
required: true
}
]
};
// src/models/gtfs/fare-rules.ts
var fareRules = {
filenameBase: "fare_rules",
filenameExtension: "txt",
schema: [
{
name: "fare_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "route_id",
type: "text",
primary: true,
prefix: true
},
{
name: "origin_id",
type: "text",
primary: true,
prefix: true
},
{
name: "destination_id",
type: "text",
primary: true,
prefix: true
},
{
name: "contains_id",
type: "text",
primary: true,
prefix: true
}
]
};
// src/models/gtfs/fare-transfer-rules.ts
var fareTransferRules = {
filenameBase: "fare_transfer_rules",
filenameExtension: "txt",
schema: [
{
name: "from_leg_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_leg_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "transfer_count",
type: "integer",
min: -1,
primary: true
},
{
name: "duration_limit",
type: "integer",
min: 0,
primary: true
},
{
name: "duration_limit_type",
type: "integer",
min: 0,
max: 3
},
{
name: "fare_transfer_type",
type: "integer",
min: 0,
max: 2,
required: true
},
{
name: "fare_product_id",
type: "text",
primary: true,
prefix: true
}
]
};
// src/models/gtfs/feed-info.ts
var feedInfo = {
filenameBase: "feed_info",
filenameExtension: "txt",
schema: [
{
name: "feed_publisher_name",
type: "text",
required: true,
nocase: true
},
{
name: "feed_publisher_url",
type: "text",
required: true
},
{
name: "feed_lang",
type: "text",
required: true
},
{
name: "default_lang",
type: "text",
nocase: true
},
{
name: "feed_start_date",
type: "date"
},
{
name: "feed_end_date",
type: "date"
},
{
name: "feed_version",
type: "text"
},
{
name: "feed_contact_email",
type: "text",
nocase: true
},
{
name: "feed_contact_url",
type: "text"
}
]
};
// src/models/gtfs/frequencies.ts
var frequencies = {
filenameBase: "frequencies",
filenameExtension: "txt",
schema: [
{
name: "trip_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "start_time",
type: "time",
required: true,
primary: true
},
{
name: "end_time",
type: "time",
required: true
},
{
name: "headway_secs",
type: "integer",
required: true,
min: 0
},
{
name: "exact_times",
type: "integer",
min: 0,
max: 1
}
]
};
// src/models/gtfs/levels.ts
var levels = {
filenameBase: "levels",
filenameExtension: "txt",
schema: [
{
name: "level_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "level_index",
type: "real",
required: true
},
{
name: "level_name",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/location-groups.ts
var locationGroups = {
filenameBase: "location_groups",
filenameExtension: "txt",
schema: [
{
name: "location_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "location_group_name",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/location-group-stops.ts
var locationGroupStops = {
filenameBase: "location_group_stops",
filenameExtension: "txt",
schema: [
{
name: "location_group_id",
type: "text",
prefix: true,
index: true,
required: true,
primary: true
},
{
name: "stop_id",
type: "text",
required: true,
prefix: true,
index: true,
primary: true
}
]
};
// src/models/gtfs/locations.ts
var locations = {
filenameBase: "locations",
filenameExtension: "geojson",
schema: [
{
name: "geojson",
type: "text"
}
]
};
// src/models/gtfs/networks.ts
var networks = {
filenameBase: "networks",
filenameExtension: "txt",
schema: [
{
name: "network_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "network_name",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/pathways.ts
var pathways = {
filenameBase: "pathways",
filenameExtension: "txt",
schema: [
{
name: "pathway_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "from_stop_id",
type: "text",
required: true,
prefix: true
},
{
name: "to_stop_id",
type: "text",
required: true,
prefix: true
},
{
name: "pathway_mode",
type: "integer",
required: true,
min: 1,
max: 7
},
{
name: "is_bidirectional",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "length",
type: "real",
min: 0
},
{
name: "traversal_time",
type: "integer",
min: 0
},
{
name: "stair_count",
type: "integer"
},
{
name: "max_slope",
type: "real"
},
{
name: "min_width",
type: "real",
min: 0
},
{
name: "signposted_as",
type: "text",
nocase: true
},
{
name: "reversed_signposted_as",
type: "text",
nocase: true
}
]
};
// src/models/gtfs/rider-categories.ts
var riderCategories = {
filenameBase: "rider_categories",
filenameExtension: "txt",
schema: [
{
name: "rider_category_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "rider_category_name",
type: "text",
required: true
},
{
name: "is_default_fare_category",
type: "integer",
min: 0,
max: 1
},
{
name: "eligibility_url",
type: "text"
}
]
};
// src/models/gtfs/route-networks.ts
var routeNetworks = {
filenameBase: "route_networks",
filenameExtension: "txt",
schema: [
{
name: "network_id",
type: "text",
required: true,
prefix: true
},
{
name: "route_id",
type: "text",
primary: true,
index: true,
prefix: true
}
]
};
// src/models/gtfs/routes.ts
var routes = {
filenameBase: "routes",
filenameExtension: "txt",
schema: [
{
name: "route_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "agency_id",
type: "text",
prefix: true
},
{
name: "route_short_name",
type: "text",
nocase: true
},
{
name: "route_long_name",
type: "text",
nocase: true
},
{
name: "route_desc",
type: "text",
nocase: true
},
{
name: "route_type",
type: "integer",
required: true,
min: 0
// Support extended GTFS route types with no max value
// https://developers.google.com/transit/gtfs/reference/extended-route-types
},
{
name: "route_url",
type: "text"
},
{
name: "route_color",
type: "text",
nocase: true
},
{
name: "route_text_color",
type: "text",
nocase: true
},
{
name: "route_sort_order",
type: "integer",
min: 0
},
{
name: "continuous_pickup",
type: "integer",
min: 0,
max: 3
},
{
name: "continuous_drop_off",
type: "integer",
min: 0,
max: 3
},
{
name: "network_id",
type: "text",
prefix: true
},
{
name: "cemv_support",
type: "integer",
min: 0,
max: 2
}
]
};
// src/models/gtfs/shapes.ts
var shapes = {
filenameBase: "shapes",
filenameExtension: "txt",
schema: [
{
name: "shape_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "shape_pt_lat",
type: "real",
required: true,
min: -90,
max: 90
},
{
name: "shape_pt_lon",
type: "real",
required: true,
min: -180,
max: 180
},
{
name: "shape_pt_sequence",
type: "integer",
required: true,
primary: true,
min: 0
},
{
name: "shape_dist_traveled",
type: "real",
min: 0
}
]
};
// src/models/gtfs/stop-areas.ts
var stopAreas = {
filenameBase: "stop_areas",
filenameExtension: "txt",
schema: [
{
name: "area_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "stop_id",
type: "text",
required: true,
primary: true,
prefix: true
}
]
};
// src/models/gtfs/stop-times.ts
var stopTimes = {
filenameBase: "stop_times",
filenameExtension: "txt",
schema: [
{
name: "trip_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "arrival_time",
type: "time"
},
{
name: "departure_time",
type: "time"
},
{
name: "location_group_id",
type: "text",
prefix: true,
index: true
},
{
name: "location_id",
type: "text",
prefix: true,
index: true
},
{
name: "stop_id",
type: "text",
required: true,
prefix: true,
index: true
},
{
name: "stop_sequence",
type: "integer",
required: true,
primary: true,
min: 0
},
{
name: "stop_headsign",
type: "text",
nocase: true
},
{
name: "start_pickup_drop_off_window",
type: "time"
},
{
name: "pickup_type",
type: "integer",
min: 0,
max: 3
},
{
name: "drop_off_type",
type: "integer",
min: 0,
max: 3
},
{
name: "continuous_pickup",
type: "integer",
min: 0,
max: 3
},
{
name: "continuous_drop_off",
type: "integer",
min: 0,
max: 3
},
{
name: "shape_dist_traveled",
type: "real",
min: 0
},
{
name: "timepoint",
type: "integer",
min: 0,
max: 1
},
{
name: "pickup_booking_rule_id",
type: "text",
prefix: true,
index: true
},
{
name: "drop_off_booking_rule_id",
type: "text",
prefix: true,
index: true
}
]
};
// src/models/gtfs/stops.ts
var stops = {
filenameBase: "stops",
filenameExtension: "txt",
schema: [
{
name: "stop_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "stop_code",
type: "text"
},
{
name: "stop_name",
type: "text",
nocase: true
},
{
name: "tts_stop_name",
type: "text",
nocase: true
},
{
name: "stop_desc",
type: "text",
nocase: true
},
{
name: "stop_lat",
type: "real",
min: -90,
max: 90
},
{
name: "stop_lon",
type: "real",
min: -180,
max: 180
},
{
name: "zone_id",
type: "text",
prefix: true
},
{
name: "stop_url",
type: "text"
},
{
name: "location_type",
type: "integer",
min: 0,
max: 4
},
{
name: "parent_station",
type: "text",
index: true,
prefix: true
},
{
name: "stop_timezone",
type: "text"
},
{
name: "wheelchair_boarding",
type: "integer",
min: 0,
max: 2
},
{
name: "level_id",
type: "text",
prefix: true
},
{
name: "platform_code",
type: "text"
},
{
name: "stop_access",
type: "integer",
min: 0,
max: 1
}
]
};
// src/models/gtfs/timeframes.ts
var timeframes = {
filenameBase: "timeframes",
filenameExtension: "txt",
schema: [
{
name: "timeframe_group_id",
type: "text",
primary: true,
prefix: true
},
{
name: "start_time",
type: "time",
primary: true
},
{
name: "end_time",
type: "time",
primary: true
},
{
name: "service_id",
type: "text",
required: true,
primary: true,
index: true,
prefix: true
}
]
};
// src/models/gtfs/transfers.ts
var transfers = {
filenameBase: "transfers",
filenameExtension: "txt",
schema: [
{
name: "from_stop_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_stop_id",
type: "text",
primary: true,
prefix: true
},
{
name: "from_route_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_route_id",
type: "text",
primary: true,
prefix: true
},
{
name: "from_trip_id",
type: "text",
primary: true,
prefix: true
},
{
name: "to_trip_id",
type: "text",
primary: true,
prefix: true
},
{
name: "transfer_type",
type: "integer",
min: 0,
max: 5,
default: 0
},
{
name: "min_transfer_time",
type: "integer",
min: 0
}
]
};
// src/models/gtfs/translations.ts
var translations = {
filenameBase: "translations",
filenameExtension: "txt",
schema: [
{
name: "table_name",
type: "text",
primary: true,
required: true
},
{
name: "field_name",
type: "text",
primary: true,
required: true
},
{
name: "language",
type: "text",
primary: true,
required: true
},
{
name: "translation",
type: "text",
required: true
},
{
name: "record_id",
type: "text",
primary: true,
prefix: true
},
{
name: "record_sub_id",
type: "text",
primary: true,
prefix: true
},
{
name: "field_value",
type: "text",
primary: true
}
]
};
// src/models/gtfs/trips.ts
var trips = {
filenameBase: "trips",
filenameExtension: "txt",
schema: [
{
name: "route_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "service_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "trip_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "trip_headsign",
type: "text",
nocase: true
},
{
name: "trip_short_name",
type: "text",
nocase: true
},
{
name: "direction_id",
type: "integer",
min: 0,
max: 1,
index: true
},
{
name: "block_id",
type: "text",
index: true,
prefix: true
},
{
name: "shape_id",
type: "text",
index: true,
prefix: true
},
{
name: "wheelchair_accessible",
type: "integer",
min: 0,
max: 2
},
{
name: "bikes_allowed",
type: "integer",
min: 0,
max: 2
},
{
name: "cars_allowed",
type: "integer",
min: 0,
max: 2
}
]
};
// src/models/non-standard/timetables.ts
var timetables = {
filenameBase: "timetables",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "timetable_id",
type: "text",
prefix: true,
required: true,
primary: true
},
{
name: "route_id",
type: "text",
prefix: true,
required: true,
primary: true
},
{
name: "direction_id",
type: "integer",
min: 0,
max: 1
},
{
name: "start_date",
type: "date"
},
{
name: "end_date",
type: "date"
},
{
name: "monday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "tuesday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "wednesday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "thursday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "friday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "saturday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "sunday",
type: "integer",
required: true,
min: 0,
max: 1
},
{
name: "start_time",
type: "time"
},
{
name: "end_time",
type: "time"
},
{
name: "timetable_label",
type: "text",
nocase: true
},
{
name: "service_notes",
type: "text",
nocase: true
},
{
name: "orientation",
type: "text"
},
{
name: "timetable_page_id",
type: "text"
},
{
name: "timetable_sequence",
type: "integer",
min: 0,
index: true
},
{
name: "direction_name",
type: "text"
},
{
name: "include_exceptions",
type: "integer",
min: 0,
max: 1
},
{
name: "show_trip_continuation",
type: "integer",
min: 0,
max: 1
}
]
};
// src/models/non-standard/timetable-pages.ts
var timetablePages = {
filenameBase: "timetable_pages",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "timetable_page_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "timetable_page_label",
type: "text"
},
{
name: "filename",
type: "text"
}
]
};
// src/models/non-standard/timetable-stop-order.ts
var timetableStopOrder = {
filenameBase: "timetable_stop_order",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "timetable_id",
type: "text",
index: true,
prefix: true,
required: true,
primary: true
},
{
name: "stop_id",
type: "text",
prefix: true,
required: true,
primary: true
},
{
name: "stop_sequence",
type: "integer",
min: 0,
index: true,
required: true,
primary: true
}
]
};
// src/models/non-standard/timetable-notes.ts
var timetableNotes = {
filenameBase: "timetable_notes",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "note_id",
type: "text",
primary: true,
prefix: true,
required: true
},
{
name: "symbol",
type: "text"
},
{
name: "note",
type: "text",
nocase: true,
required: true
}
]
};
// src/models/non-standard/timetable-notes-references.ts
var timetableNotesReferences = {
filenameBase: "timetable_notes_references",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "note_id",
type: "text",
prefix: true,
required: true,
primary: true
},
{
name: "timetable_id",
type: "text",
prefix: true,
primary: true
},
{
name: "route_id",
type: "text",
prefix: true,
primary: true
},
{
name: "trip_id",
type: "text",
prefix: true,
primary: true
},
{
name: "stop_id",
type: "text",
prefix: true,
primary: true
},
{
name: "stop_sequence",
type: "integer",
min: 0,
primary: true
},
{
name: "show_on_stoptime",
type: "integer",
min: 0,
max: 1
}
]
};
// src/models/non-standard/trips-dated-vehicle-journey.ts
var tripsDatedVehicleJourney = {
filenameBase: "trips_dated_vehicle_journey",
filenameExtension: "txt",
nonstandard: true,
schema: [
{
name: "trip_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "operating_day_date",
type: "text",
index: true,
required: true
},
{
name: "dated_vehicle_journey_gid",
type: "text",
required: true
},
{
name: "journey_number",
type: "integer",
min: 0,
max: 65535,
index: true
}
]
};
// src/models/gtfs-plus/calendar-attributes.ts
var calendarAttributes = {
filenameBase: "calendar_attributes",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-plus",
schema: [
{
name: "service_id",
type: "text",
primary: true,
prefix: true
},
{
name: "service_description",
type: "text",
required: true,
nocase: true
}
]
};
// src/models/gtfs-plus/directions.ts
var directions = {
filenameBase: "directions",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-plus",
schema: [
{
name: "route_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "direction_id",
type: "integer",
min: 0,
max: 1,
primary: true
},
{
name: "direction",
type: "text",
required: true
}
]
};
// src/models/gtfs-plus/route-attributes.ts
var routeAttributes = {
filenameBase: "route_attributes",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-plus",
schema: [
{
name: "route_id",
type: "text",
primary: true,
prefix: true
},
{
name: "category",
type: "integer",
min: 0,
required: true
},
{
name: "subcategory",
type: "integer",
min: 101,
required: true
},
{
name: "running_way",
type: "integer",
min: 1,
required: true
}
]
};
// src/models/gtfs-plus/stop-attributes.ts
var stopAttributes = {
filenameBase: "stop_attributes",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-plus",
schema: [
{
name: "stop_id",
type: "text",
required: true,
primary: true,
prefix: true
},
{
name: "accessibility_id",
type: "integer",
min: 0
},
{
name: "cardinal_direction",
type: "text"
},
{
name: "relative_position",
type: "text"
},
{
name: "stop_city",
type: "text",
nocase: true
}
]
};
// src/models/gtfs-ride/board-alight.ts
var boardAlight = {
filenameBase: "board_alight",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-ride",
schema: [
{
name: "trip_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "stop_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "stop_sequence",
type: "integer",
required: true,
min: 0,
index: true
},
{
name: "record_use",
type: "integer",
required: true,
min: 0,
max: 1,
index: true
},
{
name: "schedule_relationship",
type: "integer",
min: 0,
max: 8
},
{
name: "boardings",
type: "integer",
min: 0
},
{
name: "alightings",
type: "integer",
min: 0
},
{
name: "current_load",
type: "integer",
min: 0
},
{
name: "load_count",
type: "integer",
min: 0
},
{
name: "load_type",
type: "integer",
min: 0,
max: 1
},
{
name: "rack_down",
type: "integer",
min: 0,
max: 1
},
{
name: "bike_boardings",
type: "integer",
min: 0
},
{
name: "bike_alightings",
type: "integer",
min: 0
},
{
name: "ramp_used",
type: "integer",
min: 0,
max: 1
},
{
name: "ramp_boardings",
type: "integer",
min: 0
},
{
name: "ramp_alightings",
type: "integer",
min: 0
},
{
name: "service_date",
type: "date",
index: true
},
{
name: "service_arrival_time",
type: "time"
},
{
name: "service_departure_time",
type: "time"
},
{
name: "source",
type: "integer",
min: 0,
max: 4
}
]
};
// src/models/gtfs-ride/rider-trip.ts
var riderTrip = {
filenameBase: "rider_trip",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-ride",
schema: [
{
name: "rider_id",
type: "text",
primary: true,
prefix: true
},
{
name: "agency_id",
type: "text",
index: true,
prefix: true
},
{
name: "trip_id",
type: "text",
index: true,
prefix: true
},
{
name: "boarding_stop_id",
type: "text",
index: true,
prefix: true
},
{
name: "boarding_stop_sequence",
type: "integer",
min: 0,
index: true
},
{
name: "alighting_stop_id",
type: "text",
index: true,
prefix: true
},
{
name: "alighting_stop_sequence",
type: "integer",
min: 0,
index: true
},
{
name: "service_date",
type: "date",
index: true
},
{
name: "boarding_time",
type: "time"
},
{
name: "alighting_time",
type: "time"
},
{
name: "rider_type",
type: "integer",
min: 0,
max: 13
},
{
name: "rider_type_description",
type: "text"
},
{
name: "fare_paid",
type: "real"
},
{
name: "transaction_type",
type: "integer",
min: 0,
max: 8
},
{
name: "fare_media",
type: "integer",
min: 0,
max: 9
},
{
name: "accompanying_device",
type: "integer",
min: 0,
max: 6
},
{
name: "transfer_status",
type: "integer",
min: 0,
max: 1
}
]
};
// src/models/gtfs-ride/ridership.ts
var ridership = {
filenameBase: "ridership",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-ride",
schema: [
{
name: "total_boardings",
type: "integer",
min: 0,
required: true
},
{
name: "total_alightings",
type: "integer",
min: 0,
required: true
},
{
name: "ridership_start_date",
type: "date",
index: true
},
{
name: "ridership_end_date",
type: "date",
index: true
},
{
name: "ridership_start_time",
type: "time"
},
{
name: "ridership_end_time",
type: "time"
},
{
name: "service_id",
type: "text",
index: true,
prefix: true
},
{
name: "monday",
type: "integer",
min: 0,
max: 1
},
{
name: "tuesday",
type: "integer",
min: 0,
max: 1
},
{
name: "wednesday",
type: "integer",
min: 0,
max: 1
},
{
name: "thursday",
type: "integer",
min: 0,
max: 1
},
{
name: "friday",
type: "integer",
min: 0,
max: 1
},
{
name: "saturday",
type: "integer",
min: 0,
max: 1
},
{
name: "sunday",
type: "integer",
min: 0,
max: 1
},
{
name: "agency_id",
type: "text",
index: true,
prefix: true
},
{
name: "route_id",
type: "text",
index: true,
prefix: true
},
{
name: "direction_id",
type: "integer",
min: 0,
max: 1,
index: true
},
{
name: "trip_id",
type: "text",
prefix: true
},
{
name: "stop_id",
type: "text",
prefix: true
}
]
};
// src/models/gtfs-ride/trip-capacity.ts
var tripCapacity = {
filenameBase: "trip_capacity",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-ride",
schema: [
{
name: "agency_id",
type: "text",
index: true,
prefix: true
},
{
name: "trip_id",
type: "text",
index: true,
prefix: true
},
{
name: "service_date",
type: "date",
index: true
},
{
name: "vehicle_description",
type: "text"
},
{
name: "seated_capacity",
type: "integer",
min: 0
},
{
name: "standing_capacity",
type: "integer",
min: 0
},
{
name: "wheelchair_capacity",
type: "integer",
min: 0
},
{
name: "bike_capacity",
type: "integer",
min: 0
}
]
};
// src/models/gtfs-ride/ride-feed-info.ts
var rideFeedInfo = {
filenameBase: "ride_feed_info",
filenameExtension: "txt",
nonstandard: true,
extension: "gtfs-ride",
schema: [
{
name: "ride_files",
type: "integer",
min: 0,
max: 6,
required: true
},
{
name: "ride_start_date",
type: "date",
index: true
},
{
name: "ride_end_date",
type: "date",
index: true
},
{
name: "gtfs_feed_date",
type: "date",
index: true
},
{
name: "default_currency_type",
type: "text"
},
{
name: "ride_feed_version",
type: "text"
}
]
};
// src/models/gtfs-realtime/trip-updates.ts
var tripUpdates = {
filenameBase: "trip_updates",
extension: "gtfs-realtime",
schema: [
{
name: "id",
type: "text",
required: true,
primary: true,
index: true,
source: "id",
prefix: true
},
{
name: "vehicle_id",
type: "text",
index: true,
source: "tripUpdate.vehicle.id",
default: null,
prefix: true
},
{
name: "trip_id",
type: "text",
index: true,
source: "tripUpdate.trip.tripId",
default: null,
prefix: true
},
{
name: "trip_start_time",
type: "text",
source: "tripUpdate.trip.startTime",
default: null
},
{
name: "direction_id",
type: "integer",
source: "tripUpdate.trip.directionId",
default: null
},
{
name: "route_id",
type: "text",
index: true,
source: "tripUpdate.trip.routeId",
default: null,
prefix: true
},
{
name: "start_date",
type: "text",
source: "tripUpdate.trip.startDate",
default: null
},
{
name: "timestamp",
type: "text",
source: "tripUpdate.timestamp",
default: null
},
{
name: "schedule_relationship",
type: "text",
source: "tripUpdate.trip.scheduleRelationship",
default: null
},
{
name: "created_timestamp",
type: "integer",
required: true
},
{
name: "expiration_timestamp",
type: "integer",
required: true
}
]
};
// src/models/gtfs-realtime/stop-time-updates.ts
var stopTimeUpdates = {
filenameBase: "stop_time_updates",
extension: "gtfs-realtime",
schema: [
{
name: "trip_id",
type: "text",
index: true,
source: "parent.tripUpdate.trip.tripId",
default: null,
prefix: true
},
{
name: "trip_start_time",
type: "text",
source: "parent.tripUpdate.trip.startTime",
default: null
},
{
name: "direction_id",
type: "integer",
source: "parent.tripUpdate.trip.directionId",
default: null
},
{
name: "route_id",
type: "text",
index: true,
source: "parent.tripUpdate.trip.routeId",
default: null,
prefix: true
},
{
name: "stop_id",
type: "text",
index: true,
source: "stopId",
default: null,
prefix: true
},
{
name: "stop_sequence",
type: "integer",
source: "stopSequence",
default: null
},
{
name: "arrival_delay",
type: "integer",
source: "arrival.delay",
default: null
},
{
name: "departure_delay",
type: "integer",
source: "departure.delay",
default: null
},
{
name: "departure_timestamp",
type: "text",
source: "departure.time",
default: null
},
{
name: "arrival_timestamp",
type: "text",
source: "arrival.time",
default: null
},
{
name: "schedule_relationship",
type: "text",
source: "scheduleRelationship",
default: null
},
{
name: "created_timestamp",
type: "integer",
required: true
},
{
name: "expiration_timestamp",
type: "integer",
required: true
}
]
};
// src/models/gtfs-realtime/vehicle-positions.ts
var vehiclePositions = {
filenameBase: "vehicle_positions",
extension: "gtfs-realtime",
schema: [
{
name: "id",
type: "text",
required: true,
primary: true,
index: true,
source: "id",
prefix: true
},
{
name: "bearing",
type: "real",
source: "vehicle.position.bearing",
default: null
},
{
name: "latitude",
type: "real",
min: -90,
max: 90,
source: "vehicle.position.latitude",
default: null
},
{
name: "longitude",
type: "real",
source: "vehicle.position.longitude",
min: -180,
max: 180,
default: null
},
{
name: "speed",
type: "real",
min: 0,
source: "vehicle.position.speed",
default: null
},
{
name: "current_stop_sequence",
type: "integer",
source: "vehicle.currentStopSequence",
default: null
},
{
name: "trip_id",
type: "text",
index: true,
source: "vehicle.trip.tripId",
default: null,
prefix: true
},
{
name: "trip_start_date",
type: "text",
index: true,
source: "vehicle.trip.startDate",
default: null
},
{
name: "trip_start_time",
type: "text",
index: true,
source: "vehicle.trip.startTime",
default: null
},
{
name: "congestion_level",
type: "text",
source: "vehicle.congestionLevel",
default: null
},
{
name: "occupancy_status",
type: "text",
source: "vehicle.occupancyStatus",
default: null
},
{
name: "occupancy_percentage",
type: "integer",
source: "vehicle.occupancyPercentage",
default: null
},
{
name: "vehicle_stop_status",
type: "text",
source: "vehicle.vehicleStopStatus",
default: null
},
{
name: "vehicle_id",
type: "text",
index: true,
source: "vehicle.vehicle.id",
default: null,
prefix: true
},
{
name: "vehicle_label",
type: "text",
source: "vehicle.vehicle.label",
default: null
},
{
name: "vehicle_license_plate",
type: "text",
source: "vehicle.vehicle.licensePlate",
default: null
},
{
name: "vehicle_wheelchair_accessible",
type: "text",
source: "vehicle.vehicle.wheelchairAccessible",
default: null
},
{
name: "timestamp",
type: "text",
source: "vehicle.timestamp",
default: null
},
{
name: "created_timestamp",
type: "integer",
required: true
},
{
name: "expiration_timestamp",
type: "integer",
required: true
}
]
};
// src/models/gtfs-realtime/service-alerts.ts
var serviceAlerts = {
filenameBase: "service_alerts",
extension: "gtfs-realtime",
schema: [
{
name: "id",
type: "text",
required: true,
primary: true,
index: true,
source: "id",
prefix: true
},
{
name: "active_period",
type: "json",
source: "alert.activePeriod"
},
{
name: "cause",
type: "text",
source: "alert.cause"
},
{
name: "effect",
type: "text",
source: "alert.effect"
},
{
name: "url",
type: "text",
source: "alert.url.translation[0].text",
default: ""
},
{
name: "start_time",
type: "text",
required: true,
source: "alert.activePeriod[0].start",
default: ""
},
{
name: "end_time",
type: "text",
required: true,
source: "alert.activePeriod[0].end",
default: ""
},
{
name: "header_text",
type: "text",
required: true,
source: "alert.headerText.translation[0].text",
default: ""
},
{
name: "description_text",
type: "text",
required: true,
source: "alert.descriptionText.translation[0].text",
default: ""
},
{
name: "tts_header_text",
type: "text",
source: "alert.ttsHeaderText.translation[0].text"
},
{
name: "tts_description_text",
type: "text",
source: "alert.ttsDescriptionText.translation[0].text"
},
{
name: "severity_level",
type: "text",
source: "alert.severityLevel"
},
{
name: "created_timestamp",
type: "integer",
required: true
},
{
name: "expiration_timestamp",
type: "integer",
required: true
}
]
};
// src/models/gtfs-realtime/service-alert-informed_entities.ts
var serviceAlertInformedEntities = {
filenameBase: "service_alert_informed_entities",
extension: "gtfs-realtime",
schema: [
{
name: "alert_id",
type: "text",
required: true,
primary: true,
source: "parent.id",
prefix: true
},
{
name: "stop_id",
type: "text",
index: true,
source: "stopId",
default: null,
prefix: true
},
{
name: "route_id",
type: "text",
index: true,
source: "routeId",
default: null,
prefix: true
},
{
name: "route_type",
type: "integer",
index: true,
source: "routeType",
default: null
},
{
name: "trip_id",
type: "text",
index: true,
source: "trip.tripId",
default: null,
prefix: true
},
{
name: "direction_id",
type: "integer",
index: true,
source: "directionId",
default: null
},
{
name: "created_timestamp",
type: "integer",
required: true
},
{
name: "expiration_timestamp",
type: "integer",
required: true
}
]
};
// src/models/ods/deadhead-times.ts
var deadheadTimes = {
filenameBase: "deadhead_times",
filenameExtension: "txt",
nonstandard: true,
extension: "ods",
schema: [
{
name: "deadhead_id",
type: "text",
required: true,
index: true,
primary: true,
prefix: true
},
{
name: "arrival_time",
type: "time",
required: true
},
{
name: "departure_time",
type: "time",
required: true
},
{
name: "ops_location_id",
type: "text",
prefix: true
},
{
name: "stop_id",
type: "text",
prefix: true
},
{
name: "location_sequence",
type: "integer",
required: true,
primary: true,
min: 0,
index: true
},
{
name: "shape_dist_traveled",
type: "real",
min: 0
}
]
};
// src/models/ods/deadheads.ts
var deadheads = {
filenameBase: "deadheads",
filenameExtension: "txt",
nonstandard: true,
extension: "ods",
schema: [
{
name: "deadhead_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "service_id",
type: "text",
required: true,
prefix: true
},
{
name: "block_id",
type: "text",
required: true,
index: true,
prefix: true
},
{
name: "shape_id",
type: "text",
index: true,
prefix: true
},
{
name: "to_trip_id",
type: "text",
index: true,
prefix: true
},
{
name: "from_trip_id",
type: "text",
index: true,
prefix: true
},
{
name: "to_deadhead_id",
type: "text",
index: true,
prefix: true
},
{
name: "from_deadhead_id",
type: "text",
index: true,
prefix: true
}
]
};
// src/models/ods/ops-locations.ts
var opsLocations = {
filenameBase: "ops_locations",
filenameExtension: "txt",
nonstandard: true,
extension: "ods",
schema: [
{
name: "ops_location_id",
type: "text",
primary: true,
required: true,
prefix: true
},
{
name: "ops_location_code",
type: "text"
},
{
name: "ops_location_name",
type: "text",
required: true,
nocase: true
},
{
name: "ops_location_desc",
type: "text",
nocase: true
},
{
name: "ops_location_lat",
type: "real",
required: true,
min: