corequery-gtfs 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/config/gtfs-config.d.ts +10 -0
- package/dist/config/gtfs-config.js +2 -0
- package/dist/config/gtfs-config.js.map +1 -0
- package/dist/config/ids.d.ts +13 -0
- package/dist/config/ids.js +2 -0
- package/dist/config/ids.js.map +1 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/routes.d.ts +16 -0
- package/dist/config/routes.js +2 -0
- package/dist/config/routes.js.map +1 -0
- package/dist/config/timezone-data.d.ts +5 -0
- package/dist/config/timezone-data.js +2 -0
- package/dist/config/timezone-data.js.map +1 -0
- package/dist/corequery-types.d.ts +2 -0
- package/dist/corequery-types.js +3 -0
- package/dist/corequery-types.js.map +1 -0
- package/dist/data/bounded-instant-range.d.ts +10 -0
- package/dist/data/bounded-instant-range.js +30 -0
- package/dist/data/bounded-instant-range.js.map +1 -0
- package/dist/data/gtfs-calendar.d.ts +38 -0
- package/dist/data/gtfs-calendar.js +116 -0
- package/dist/data/gtfs-calendar.js.map +1 -0
- package/dist/data/gtfs-feed.d.ts +16 -0
- package/dist/data/gtfs-feed.js +33 -0
- package/dist/data/gtfs-feed.js.map +1 -0
- package/dist/data/gtfs-realtime-data.d.ts +9 -0
- package/dist/data/gtfs-realtime-data.js +20 -0
- package/dist/data/gtfs-realtime-data.js.map +1 -0
- package/dist/data/gtfs-schedule-data.d.ts +13 -0
- package/dist/data/gtfs-schedule-data.js +40 -0
- package/dist/data/gtfs-schedule-data.js.map +1 -0
- package/dist/data/gtfs-scheduled-trip-movements.d.ts +118 -0
- package/dist/data/gtfs-scheduled-trip-movements.js +233 -0
- package/dist/data/gtfs-scheduled-trip-movements.js.map +1 -0
- package/dist/data/gtfs-scheduled-trip.d.ts +41 -0
- package/dist/data/gtfs-scheduled-trip.js +100 -0
- package/dist/data/gtfs-scheduled-trip.js.map +1 -0
- package/dist/data/gtfs-stop-time.d.ts +38 -0
- package/dist/data/gtfs-stop-time.js +105 -0
- package/dist/data/gtfs-stop-time.js.map +1 -0
- package/dist/data/gtfs-updated-trip-movements.d.ts +124 -0
- package/dist/data/gtfs-updated-trip-movements.js +150 -0
- package/dist/data/gtfs-updated-trip-movements.js.map +1 -0
- package/dist/data/gtfs-updated-trip.d.ts +21 -0
- package/dist/data/gtfs-updated-trip.js +55 -0
- package/dist/data/gtfs-updated-trip.js.map +1 -0
- package/dist/data/ids/index.d.ts +2 -0
- package/dist/data/ids/index.js +3 -0
- package/dist/data/ids/index.js.map +1 -0
- package/dist/data/ids/line-gtfs-id-collection.d.ts +16 -0
- package/dist/data/ids/line-gtfs-id-collection.js +47 -0
- package/dist/data/ids/line-gtfs-id-collection.js.map +1 -0
- package/dist/data/ids/line-gtfs-id-mapping.d.ts +17 -0
- package/dist/data/ids/line-gtfs-id-mapping.js +50 -0
- package/dist/data/ids/line-gtfs-id-mapping.js.map +1 -0
- package/dist/data/ids/line-gtfs-id-metadata.d.ts +17 -0
- package/dist/data/ids/line-gtfs-id-metadata.js +2 -0
- package/dist/data/ids/line-gtfs-id-metadata.js.map +1 -0
- package/dist/data/ids/stop-gtfs-id-collection.d.ts +14 -0
- package/dist/data/ids/stop-gtfs-id-collection.js +55 -0
- package/dist/data/ids/stop-gtfs-id-collection.js.map +1 -0
- package/dist/data/ids/stop-gtfs-id-mapping.d.ts +17 -0
- package/dist/data/ids/stop-gtfs-id-mapping.js +50 -0
- package/dist/data/ids/stop-gtfs-id-mapping.js.map +1 -0
- package/dist/data/ids/stop-gtfs-id-metadata.d.ts +23 -0
- package/dist/data/ids/stop-gtfs-id-metadata.js +2 -0
- package/dist/data/ids/stop-gtfs-id-metadata.js.map +1 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/data/index.js +4 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/plain-date-range.d.ts +11 -0
- package/dist/data/plain-date-range.js +36 -0
- package/dist/data/plain-date-range.js.map +1 -0
- package/dist/data/raw/realtime-data-json.d.ts +26 -0
- package/dist/data/raw/realtime-data-json.js +2 -0
- package/dist/data/raw/realtime-data-json.js.map +1 -0
- package/dist/data/raw/schedule-csvs.d.ts +69 -0
- package/dist/data/raw/schedule-csvs.js +2 -0
- package/dist/data/raw/schedule-csvs.js.map +1 -0
- package/dist/data/route/bonus-lines-mapping.d.ts +17 -0
- package/dist/data/route/bonus-lines-mapping.js +29 -0
- package/dist/data/route/bonus-lines-mapping.js.map +1 -0
- package/dist/data/route/index.d.ts +1 -0
- package/dist/data/route/index.js +2 -0
- package/dist/data/route/index.js.map +1 -0
- package/dist/data/route/line-routes-mapping.d.ts +8 -0
- package/dist/data/route/line-routes-mapping.js +20 -0
- package/dist/data/route/line-routes-mapping.js.map +1 -0
- package/dist/data/route/route-stop.d.ts +12 -0
- package/dist/data/route/route-stop.js +18 -0
- package/dist/data/route/route-stop.js.map +1 -0
- package/dist/data/route/route.d.ts +19 -0
- package/dist/data/route/route.js +43 -0
- package/dist/data/route/route.js.map +1 -0
- package/dist/data/utils.d.ts +3 -0
- package/dist/data/utils.js +2 -0
- package/dist/data/utils.js.map +1 -0
- package/dist/departures/departures-block-iterator.d.ts +18 -0
- package/dist/departures/departures-block-iterator.js +70 -0
- package/dist/departures/departures-block-iterator.js.map +1 -0
- package/dist/departures/departures-block.d.ts +19 -0
- package/dist/departures/departures-block.js +13 -0
- package/dist/departures/departures-block.js.map +1 -0
- package/dist/departures/departures-iterator.d.ts +16 -0
- package/dist/departures/departures-iterator.js +15 -0
- package/dist/departures/departures-iterator.js.map +1 -0
- package/dist/departures/gtfs-scheduled-movements-index.d.ts +18 -0
- package/dist/departures/gtfs-scheduled-movements-index.js +66 -0
- package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -0
- package/dist/departures/index.d.ts +1 -0
- package/dist/departures/index.js +2 -0
- package/dist/departures/index.js.map +1 -0
- package/dist/departures/multifeed-departures-iterator.d.ts +20 -0
- package/dist/departures/multifeed-departures-iterator.js +52 -0
- package/dist/departures/multifeed-departures-iterator.js.map +1 -0
- package/dist/departures/realtime-departures-block-iterator.d.ts +12 -0
- package/dist/departures/realtime-departures-block-iterator.js +38 -0
- package/dist/departures/realtime-departures-block-iterator.js.map +1 -0
- package/dist/departures/realtime-departures-block.d.ts +16 -0
- package/dist/departures/realtime-departures-block.js +43 -0
- package/dist/departures/realtime-departures-block.js.map +1 -0
- package/dist/departures/scheduled-departures-block-iterator.d.ts +12 -0
- package/dist/departures/scheduled-departures-block-iterator.js +55 -0
- package/dist/departures/scheduled-departures-block-iterator.js.map +1 -0
- package/dist/departures/scheduled-departures-block.d.ts +18 -0
- package/dist/departures/scheduled-departures-block.js +54 -0
- package/dist/departures/scheduled-departures-block.js.map +1 -0
- package/dist/departures/scheduled-departures-blocks-builder.d.ts +20 -0
- package/dist/departures/scheduled-departures-blocks-builder.js +222 -0
- package/dist/departures/scheduled-departures-blocks-builder.js.map +1 -0
- package/dist/departures/scheduled-departures-iterator.d.ts +30 -0
- package/dist/departures/scheduled-departures-iterator.js +204 -0
- package/dist/departures/scheduled-departures-iterator.js.map +1 -0
- package/dist/departures/zipper-departures-iterator.d.ts +18 -0
- package/dist/departures/zipper-departures-iterator.js +68 -0
- package/dist/departures/zipper-departures-iterator.js.map +1 -0
- package/dist/gtfs-system.d.ts +31 -0
- package/dist/gtfs-system.js +86 -0
- package/dist/gtfs-system.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/gtfs-feed-parser.d.ts +18 -0
- package/dist/parser/gtfs-feed-parser.js +23 -0
- package/dist/parser/gtfs-feed-parser.js.map +1 -0
- package/dist/parser/index.d.ts +2 -0
- package/dist/parser/index.js +3 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/realtime/gtfs-realtime-data-parser.d.ts +11 -0
- package/dist/parser/realtime/gtfs-realtime-data-parser.js +19 -0
- package/dist/parser/realtime/gtfs-realtime-data-parser.js.map +1 -0
- package/dist/parser/realtime/gtfs-trip-update-parser.d.ts +99 -0
- package/dist/parser/realtime/gtfs-trip-update-parser.js +335 -0
- package/dist/parser/realtime/gtfs-trip-update-parser.js.map +1 -0
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.d.ts +35 -0
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js +95 -0
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js.map +1 -0
- package/dist/parser/realtime/index.d.ts +3 -0
- package/dist/parser/realtime/index.js +2 -0
- package/dist/parser/realtime/index.js.map +1 -0
- package/dist/parser/schedule/gtfs-calendar-parser.d.ts +28 -0
- package/dist/parser/schedule/gtfs-calendar-parser.js +113 -0
- package/dist/parser/schedule/gtfs-calendar-parser.js.map +1 -0
- package/dist/parser/schedule/gtfs-route-matcher.d.ts +48 -0
- package/dist/parser/schedule/gtfs-route-matcher.js +199 -0
- package/dist/parser/schedule/gtfs-route-matcher.js.map +1 -0
- package/dist/parser/schedule/gtfs-schedule-parser.d.ts +15 -0
- package/dist/parser/schedule/gtfs-schedule-parser.js +19 -0
- package/dist/parser/schedule/gtfs-schedule-parser.js.map +1 -0
- package/dist/parser/schedule/gtfs-stop-time-normaliser.d.ts +47 -0
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js +119 -0
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js.map +1 -0
- package/dist/parser/schedule/gtfs-transfer-connector.d.ts +52 -0
- package/dist/parser/schedule/gtfs-transfer-connector.js +168 -0
- package/dist/parser/schedule/gtfs-transfer-connector.js.map +1 -0
- package/dist/parser/schedule/gtfs-trip-parser.d.ts +45 -0
- package/dist/parser/schedule/gtfs-trip-parser.js +169 -0
- package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -0
- package/dist/parser/schedule/index.d.ts +6 -0
- package/dist/parser/schedule/index.js +2 -0
- package/dist/parser/schedule/index.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { GtfsUpdatedTripOriginatingMovement, GtfsUpdatedTripPassingMovement, GtfsUpdatedTripRegularMovement, GtfsUpdatedTripTerminatingMovement, } from "./gtfs-updated-trip-movements.js";
|
|
2
|
+
export class GtfsScheduledTripOriginatingMovement {
|
|
3
|
+
stopId;
|
|
4
|
+
positionId;
|
|
5
|
+
departureTime;
|
|
6
|
+
gtfsIdMetadata;
|
|
7
|
+
gtfsStopSequence;
|
|
8
|
+
constructor(fields) {
|
|
9
|
+
this.stopId = fields.stopId;
|
|
10
|
+
this.positionId = fields.positionId;
|
|
11
|
+
this.departureTime = fields.departureTime;
|
|
12
|
+
this.gtfsIdMetadata = fields.gtfsIdMetadata;
|
|
13
|
+
this.gtfsStopSequence = fields.gtfsStopSequence;
|
|
14
|
+
}
|
|
15
|
+
get type() {
|
|
16
|
+
return "originating";
|
|
17
|
+
}
|
|
18
|
+
get isServicing() {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
get isNonTerminal() {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
get timeRelevantToDeparturesAlgorithm() {
|
|
25
|
+
return this.departureTime;
|
|
26
|
+
}
|
|
27
|
+
with(newValues) {
|
|
28
|
+
return new GtfsScheduledTripOriginatingMovement({ ...this, ...newValues });
|
|
29
|
+
}
|
|
30
|
+
asHollowUpdatedTripMovement(serviceDay, timezone) {
|
|
31
|
+
return new GtfsUpdatedTripOriginatingMovement({
|
|
32
|
+
stopId: this.stopId,
|
|
33
|
+
originalPositionId: this.positionId,
|
|
34
|
+
scheduledDepartureTime: this.departureTime.toInstant(serviceDay, timezone),
|
|
35
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
36
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
37
|
+
// But no realtime data.
|
|
38
|
+
realtimeDepartureTime: null,
|
|
39
|
+
updatedPositionId: this.positionId,
|
|
40
|
+
updatedGtfsIdMetadata: this.gtfsIdMetadata,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
asUpdatedTripMovement(values) {
|
|
44
|
+
return new GtfsUpdatedTripOriginatingMovement({
|
|
45
|
+
stopId: this.stopId,
|
|
46
|
+
originalPositionId: this.positionId,
|
|
47
|
+
scheduledDepartureTime: this.departureTime.toInstant(values.serviceDay, values.timezone),
|
|
48
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
49
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
50
|
+
// Realtime data.
|
|
51
|
+
realtimeDepartureTime: values.departureTime,
|
|
52
|
+
updatedPositionId: values.updatedPositionId,
|
|
53
|
+
updatedGtfsIdMetadata: values.updatedGtfsIdMetadata,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
asDelayedUpdatedTripMovement(serviceDay, timezone, delayMins) {
|
|
57
|
+
return this.asHollowUpdatedTripMovement(serviceDay, timezone).with({
|
|
58
|
+
realtimeDepartureTime: this.departureTime
|
|
59
|
+
.toInstant(serviceDay, timezone)
|
|
60
|
+
.add({ minutes: delayMins }),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export class GtfsScheduledTripRegularMovement {
|
|
65
|
+
stopId;
|
|
66
|
+
positionId;
|
|
67
|
+
arrivalTime;
|
|
68
|
+
departureTime;
|
|
69
|
+
picksUp;
|
|
70
|
+
dropsOff;
|
|
71
|
+
gtfsIdMetadata;
|
|
72
|
+
gtfsStopSequence;
|
|
73
|
+
constructor(fields) {
|
|
74
|
+
this.stopId = fields.stopId;
|
|
75
|
+
this.positionId = fields.positionId;
|
|
76
|
+
this.arrivalTime = fields.arrivalTime;
|
|
77
|
+
this.departureTime = fields.departureTime;
|
|
78
|
+
this.picksUp = fields.picksUp;
|
|
79
|
+
this.dropsOff = fields.dropsOff;
|
|
80
|
+
this.gtfsIdMetadata = fields.gtfsIdMetadata;
|
|
81
|
+
this.gtfsStopSequence = fields.gtfsStopSequence;
|
|
82
|
+
}
|
|
83
|
+
get type() {
|
|
84
|
+
return "regular";
|
|
85
|
+
}
|
|
86
|
+
get isServicing() {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
get isNonTerminal() {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
get timeRelevantToDeparturesAlgorithm() {
|
|
93
|
+
return this.departureTime;
|
|
94
|
+
}
|
|
95
|
+
with(newValues) {
|
|
96
|
+
return new GtfsScheduledTripRegularMovement({ ...this, ...newValues });
|
|
97
|
+
}
|
|
98
|
+
asHollowUpdatedTripMovement(serviceDay, timezone) {
|
|
99
|
+
return new GtfsUpdatedTripRegularMovement({
|
|
100
|
+
stopId: this.stopId,
|
|
101
|
+
originalPositionId: this.positionId,
|
|
102
|
+
scheduledArrivalTime: this.arrivalTime.toInstant(serviceDay, timezone),
|
|
103
|
+
scheduledDepartureTime: this.departureTime.toInstant(serviceDay, timezone),
|
|
104
|
+
picksUp: this.picksUp,
|
|
105
|
+
dropsOff: this.dropsOff,
|
|
106
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
107
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
108
|
+
// But no realtime data.
|
|
109
|
+
realtimeArrivalTime: null,
|
|
110
|
+
realtimeDepartureTime: null,
|
|
111
|
+
updatedPositionId: this.positionId,
|
|
112
|
+
updatedGtfsIdMetadata: this.gtfsIdMetadata,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
asUpdatedTripMovement(values) {
|
|
116
|
+
return new GtfsUpdatedTripRegularMovement({
|
|
117
|
+
stopId: this.stopId,
|
|
118
|
+
originalPositionId: this.positionId,
|
|
119
|
+
scheduledArrivalTime: this.arrivalTime.toInstant(values.serviceDay, values.timezone),
|
|
120
|
+
scheduledDepartureTime: this.departureTime.toInstant(values.serviceDay, values.timezone),
|
|
121
|
+
picksUp: this.picksUp,
|
|
122
|
+
dropsOff: this.dropsOff,
|
|
123
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
124
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
125
|
+
// Realtime data.
|
|
126
|
+
realtimeArrivalTime: values.arrivalTime,
|
|
127
|
+
realtimeDepartureTime: values.departureTime,
|
|
128
|
+
updatedPositionId: values.updatedPositionId,
|
|
129
|
+
updatedGtfsIdMetadata: values.updatedGtfsIdMetadata,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
asDelayedUpdatedTripMovement(serviceDay, timezone, delayMins) {
|
|
133
|
+
return this.asHollowUpdatedTripMovement(serviceDay, timezone).with({
|
|
134
|
+
realtimeArrivalTime: this.arrivalTime
|
|
135
|
+
.toInstant(serviceDay, timezone)
|
|
136
|
+
.add({ minutes: delayMins }),
|
|
137
|
+
realtimeDepartureTime: this.departureTime
|
|
138
|
+
.toInstant(serviceDay, timezone)
|
|
139
|
+
.add({ minutes: delayMins }),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export class GtfsScheduledTripTerminatingMovement {
|
|
144
|
+
stopId;
|
|
145
|
+
positionId;
|
|
146
|
+
arrivalTime;
|
|
147
|
+
gtfsIdMetadata;
|
|
148
|
+
gtfsStopSequence;
|
|
149
|
+
constructor(fields) {
|
|
150
|
+
this.stopId = fields.stopId;
|
|
151
|
+
this.positionId = fields.positionId;
|
|
152
|
+
this.arrivalTime = fields.arrivalTime;
|
|
153
|
+
this.gtfsIdMetadata = fields.gtfsIdMetadata;
|
|
154
|
+
this.gtfsStopSequence = fields.gtfsStopSequence;
|
|
155
|
+
}
|
|
156
|
+
get type() {
|
|
157
|
+
return "terminating";
|
|
158
|
+
}
|
|
159
|
+
get isServicing() {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
get isNonTerminal() {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
get timeRelevantToDeparturesAlgorithm() {
|
|
166
|
+
return this.arrivalTime;
|
|
167
|
+
}
|
|
168
|
+
with(newValues) {
|
|
169
|
+
return new GtfsScheduledTripTerminatingMovement({ ...this, ...newValues });
|
|
170
|
+
}
|
|
171
|
+
asHollowUpdatedTripMovement(serviceDay, timezone) {
|
|
172
|
+
return new GtfsUpdatedTripTerminatingMovement({
|
|
173
|
+
stopId: this.stopId,
|
|
174
|
+
originalPositionId: this.positionId,
|
|
175
|
+
scheduledArrivalTime: this.arrivalTime.toInstant(serviceDay, timezone),
|
|
176
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
177
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
178
|
+
// But no realtime data.
|
|
179
|
+
realtimeArrivalTime: null,
|
|
180
|
+
updatedPositionId: this.positionId,
|
|
181
|
+
updatedGtfsIdMetadata: this.gtfsIdMetadata,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
asUpdatedTripMovement(values) {
|
|
185
|
+
return new GtfsUpdatedTripTerminatingMovement({
|
|
186
|
+
stopId: this.stopId,
|
|
187
|
+
originalPositionId: this.positionId,
|
|
188
|
+
scheduledArrivalTime: this.arrivalTime.toInstant(values.serviceDay, values.timezone),
|
|
189
|
+
originalGtfsIdMetadata: this.gtfsIdMetadata,
|
|
190
|
+
gtfsStopSequence: this.gtfsStopSequence,
|
|
191
|
+
// Realtime data.
|
|
192
|
+
realtimeArrivalTime: values.arrivalTime,
|
|
193
|
+
updatedPositionId: values.updatedPositionId,
|
|
194
|
+
updatedGtfsIdMetadata: values.updatedGtfsIdMetadata,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
asDelayedUpdatedTripMovement(serviceDay, timezone, delayMins) {
|
|
198
|
+
return this.asHollowUpdatedTripMovement(serviceDay, timezone).with({
|
|
199
|
+
realtimeArrivalTime: this.arrivalTime
|
|
200
|
+
.toInstant(serviceDay, timezone)
|
|
201
|
+
.add({ minutes: delayMins }),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
export class GtfsScheduledTripPassingMovement {
|
|
206
|
+
stopId;
|
|
207
|
+
constructor(fields) {
|
|
208
|
+
this.stopId = fields.stopId;
|
|
209
|
+
}
|
|
210
|
+
get type() {
|
|
211
|
+
return "passing";
|
|
212
|
+
}
|
|
213
|
+
get isServicing() {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
get isNonTerminal() {
|
|
217
|
+
return true;
|
|
218
|
+
}
|
|
219
|
+
with(newValues) {
|
|
220
|
+
return new GtfsScheduledTripPassingMovement({ ...this, ...newValues });
|
|
221
|
+
}
|
|
222
|
+
asHollowUpdatedTripMovement(_serviceDay, _timezone) {
|
|
223
|
+
return new GtfsUpdatedTripPassingMovement({
|
|
224
|
+
stopId: this.stopId,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
asDelayedUpdatedTripMovement(_serviceDay, _timezone, _delayMins) {
|
|
228
|
+
return new GtfsUpdatedTripPassingMovement({
|
|
229
|
+
stopId: this.stopId,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=gtfs-scheduled-trip-movements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-trip-movements.js","sourceRoot":"","sources":["../../src/data/gtfs-scheduled-trip-movements.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Color } from "../corequery-types.js";
|
|
2
|
+
import { GtfsCalendar } from "./gtfs-calendar.js";
|
|
3
|
+
import { GtfsScheduledTripOriginatingMovement, GtfsScheduledTripTerminatingMovement, type GtfsScheduledTripMovement } from "./gtfs-scheduled-trip-movements.js";
|
|
4
|
+
import type { GtfsStopTime } from "./gtfs-stop-time.js";
|
|
5
|
+
export type GtfsScheduledTripFields = {
|
|
6
|
+
readonly gtfsTripId: string;
|
|
7
|
+
readonly gtfsRouteId: string;
|
|
8
|
+
readonly calendar: GtfsCalendar;
|
|
9
|
+
readonly movements: readonly GtfsScheduledTripMovement[];
|
|
10
|
+
readonly lineIds: readonly number[];
|
|
11
|
+
readonly color: Color | null;
|
|
12
|
+
readonly serviceTags: readonly number[];
|
|
13
|
+
readonly previousTrip: GtfsScheduledTrip | null;
|
|
14
|
+
readonly nextTrip: GtfsScheduledTrip | null;
|
|
15
|
+
};
|
|
16
|
+
export declare class GtfsScheduledTrip {
|
|
17
|
+
readonly gtfsTripId: string;
|
|
18
|
+
readonly gtfsRouteId: string;
|
|
19
|
+
readonly calendar: GtfsCalendar;
|
|
20
|
+
readonly movements: readonly GtfsScheduledTripMovement[];
|
|
21
|
+
readonly lineIds: readonly number[];
|
|
22
|
+
readonly color: Color | null;
|
|
23
|
+
readonly serviceTags: readonly number[];
|
|
24
|
+
readonly previousTrip: GtfsScheduledTrip | null;
|
|
25
|
+
readonly nextTrip: GtfsScheduledTrip | null;
|
|
26
|
+
constructor(fields: GtfsScheduledTripFields);
|
|
27
|
+
with(newValues: Partial<GtfsScheduledTripFields>): GtfsScheduledTrip;
|
|
28
|
+
static connectAsTransfer(from: GtfsScheduledTrip, to: GtfsScheduledTrip): readonly [GtfsScheduledTrip, GtfsScheduledTrip];
|
|
29
|
+
get origination(): GtfsScheduledTripOriginatingMovement;
|
|
30
|
+
get termination(): GtfsScheduledTripTerminatingMovement;
|
|
31
|
+
get finalTermination(): GtfsScheduledTripTerminatingMovement;
|
|
32
|
+
static simple({ gtfsTripId, originStopId, originGtfsStopId, originationTime, terminusStopId, terminationTime, terminusGtfsStopId, }: {
|
|
33
|
+
gtfsTripId: string;
|
|
34
|
+
originStopId: number;
|
|
35
|
+
originGtfsStopId?: string;
|
|
36
|
+
originationTime: GtfsStopTime;
|
|
37
|
+
terminusStopId: number;
|
|
38
|
+
terminusGtfsStopId?: string;
|
|
39
|
+
terminationTime: GtfsStopTime;
|
|
40
|
+
}): GtfsScheduledTrip;
|
|
41
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { GtfsCalendar } from "./gtfs-calendar.js";
|
|
2
|
+
import { itsOk } from "@dan-schel/js-utils";
|
|
3
|
+
import { GtfsScheduledTripOriginatingMovement, GtfsScheduledTripTerminatingMovement, } from "./gtfs-scheduled-trip-movements.js";
|
|
4
|
+
export class GtfsScheduledTrip {
|
|
5
|
+
gtfsTripId;
|
|
6
|
+
gtfsRouteId;
|
|
7
|
+
calendar;
|
|
8
|
+
movements;
|
|
9
|
+
lineIds;
|
|
10
|
+
color;
|
|
11
|
+
serviceTags;
|
|
12
|
+
previousTrip;
|
|
13
|
+
nextTrip;
|
|
14
|
+
constructor(fields) {
|
|
15
|
+
this.gtfsTripId = fields.gtfsTripId;
|
|
16
|
+
this.gtfsRouteId = fields.gtfsRouteId;
|
|
17
|
+
this.calendar = fields.calendar;
|
|
18
|
+
this.movements = fields.movements;
|
|
19
|
+
this.lineIds = fields.lineIds;
|
|
20
|
+
this.color = fields.color;
|
|
21
|
+
this.serviceTags = fields.serviceTags;
|
|
22
|
+
this.previousTrip = fields.previousTrip;
|
|
23
|
+
this.nextTrip = fields.nextTrip;
|
|
24
|
+
if (this.lineIds.length < 1)
|
|
25
|
+
throw new Error("Must have 1+ line IDs.");
|
|
26
|
+
if (this.movements.length < 2)
|
|
27
|
+
throw new Error("Must have 2+ movements.");
|
|
28
|
+
const originOk = itsOk(this.movements[0]).type === "originating";
|
|
29
|
+
const terminusOk = itsOk(this.movements.at(-1)).type === "terminating";
|
|
30
|
+
const othersOk = this.movements.slice(1, -1).every((m) => m.isNonTerminal);
|
|
31
|
+
if (!originOk)
|
|
32
|
+
throw new Error("First movement of wrong type.");
|
|
33
|
+
if (!terminusOk)
|
|
34
|
+
throw new Error("Last movement of wrong type");
|
|
35
|
+
if (!othersOk)
|
|
36
|
+
throw new Error("Some terminal movements in wrong places.");
|
|
37
|
+
}
|
|
38
|
+
with(newValues) {
|
|
39
|
+
return new GtfsScheduledTrip({ ...this, ...newValues });
|
|
40
|
+
}
|
|
41
|
+
static connectAsTransfer(from, to) {
|
|
42
|
+
return [from.with({ nextTrip: to }), to.with({ previousTrip: from })];
|
|
43
|
+
}
|
|
44
|
+
get origination() {
|
|
45
|
+
const firstMovement = this.movements[0];
|
|
46
|
+
if (firstMovement?.type === "originating")
|
|
47
|
+
return firstMovement;
|
|
48
|
+
// Can't happen. Checked in constructor.
|
|
49
|
+
throw new Error();
|
|
50
|
+
}
|
|
51
|
+
get termination() {
|
|
52
|
+
const lastMovement = this.movements.at(-1);
|
|
53
|
+
if (lastMovement?.type === "terminating")
|
|
54
|
+
return lastMovement;
|
|
55
|
+
// Can't happen. Checked in constructor.
|
|
56
|
+
throw new Error();
|
|
57
|
+
}
|
|
58
|
+
get finalTermination() {
|
|
59
|
+
if (this.nextTrip == null)
|
|
60
|
+
return this.termination;
|
|
61
|
+
return this.nextTrip.finalTermination;
|
|
62
|
+
}
|
|
63
|
+
static simple({ gtfsTripId, originStopId, originGtfsStopId = `stop-${originStopId}`, originationTime, terminusStopId, terminationTime, terminusGtfsStopId = `stop-${terminusStopId}`, }) {
|
|
64
|
+
return new GtfsScheduledTrip({
|
|
65
|
+
gtfsTripId,
|
|
66
|
+
gtfsRouteId: "route-1",
|
|
67
|
+
calendar: GtfsCalendar.everyday("cal-1"),
|
|
68
|
+
movements: [
|
|
69
|
+
new GtfsScheduledTripOriginatingMovement({
|
|
70
|
+
stopId: originStopId,
|
|
71
|
+
positionId: null,
|
|
72
|
+
departureTime: originationTime,
|
|
73
|
+
gtfsIdMetadata: {
|
|
74
|
+
type: "parent",
|
|
75
|
+
id: originGtfsStopId,
|
|
76
|
+
stopId: originStopId,
|
|
77
|
+
},
|
|
78
|
+
gtfsStopSequence: 1,
|
|
79
|
+
}),
|
|
80
|
+
new GtfsScheduledTripTerminatingMovement({
|
|
81
|
+
stopId: terminusStopId,
|
|
82
|
+
positionId: null,
|
|
83
|
+
arrivalTime: terminationTime,
|
|
84
|
+
gtfsIdMetadata: {
|
|
85
|
+
type: "parent",
|
|
86
|
+
id: terminusGtfsStopId,
|
|
87
|
+
stopId: terminusStopId,
|
|
88
|
+
},
|
|
89
|
+
gtfsStopSequence: 2,
|
|
90
|
+
}),
|
|
91
|
+
],
|
|
92
|
+
lineIds: [1],
|
|
93
|
+
color: null,
|
|
94
|
+
serviceTags: [],
|
|
95
|
+
previousTrip: null,
|
|
96
|
+
nextTrip: null,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=gtfs-scheduled-trip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-scheduled-trip.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GAErC,MAAM,oCAAoC,CAAC;AAuB5C,MAAM,OAAO,iBAAiB;IACnB,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,QAAQ,CAAe;IACvB,SAAS,CAAuC;IAChD,OAAO,CAAoB;IAC3B,KAAK,CAAe;IACpB,WAAW,CAAoB;IAC/B,YAAY,CAA2B;IACvC,QAAQ,CAA2B;IAE5C,YAAY,MAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACjE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,SAA2C;QAC9C,OAAO,IAAI,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,iBAAiB,CACtB,IAAuB,EACvB,EAAqB;QAErB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,WAAW;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,aAAa,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,aAAa,CAAC;QAEhE,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC;QAE9D,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAEnD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,GAAG,QAAQ,YAAY,EAAE,EACzC,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,GAAG,QAAQ,cAAc,EAAE,GAS9C;QACC,OAAO,IAAI,iBAAiB,CAAC;YAC3B,UAAU;YACV,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE;gBACT,IAAI,oCAAoC,CAAC;oBACvC,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,eAAe;oBAC9B,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,gBAAgB;wBACpB,MAAM,EAAE,YAAY;qBACrB;oBACD,gBAAgB,EAAE,CAAC;iBACpB,CAAC;gBACF,IAAI,oCAAoC,CAAC;oBACvC,MAAM,EAAE,cAAc;oBACtB,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,eAAe;oBAC5B,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,kBAAkB;wBACtB,MAAM,EAAE,cAAc;qBACvB;oBACD,gBAAgB,EAAE,CAAC;iBACpB,CAAC;aACH;YACD,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare class GtfsStopTime {
|
|
2
|
+
/**
|
|
3
|
+
* The number of seconds since midnight. Allows values greater than
|
|
4
|
+
* 24 * 60 * 60 to indicate times that are on the next day or an arbitrary
|
|
5
|
+
* number of days into the future.
|
|
6
|
+
*/
|
|
7
|
+
readonly secondsSinceMidnight: number;
|
|
8
|
+
private constructor();
|
|
9
|
+
static fromSecondsSinceMidnight(secondsSinceMidnight: number): GtfsStopTime;
|
|
10
|
+
/** Parses strings like `05:30:00` or `25:04:42`. */
|
|
11
|
+
static tryParse(input: string): GtfsStopTime | null;
|
|
12
|
+
/** Parses strings like `05:30:00` or `25:04:42`. */
|
|
13
|
+
static parse(input: string): GtfsStopTime;
|
|
14
|
+
/**
|
|
15
|
+
* Returns a value `0 <= x < 24 * 60 * 60`. Combines with `dayOffset` to
|
|
16
|
+
* provide the full picture.
|
|
17
|
+
*/
|
|
18
|
+
get secondOfDay(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Returns 0 if `secondsSinceMidnight` is less than 24 hours, 1 if 24-48
|
|
21
|
+
* hours, etc.
|
|
22
|
+
*/
|
|
23
|
+
get dayOffset(): number;
|
|
24
|
+
equals(other: GtfsStopTime): boolean;
|
|
25
|
+
static compare(a: GtfsStopTime, b: GtfsStopTime): number;
|
|
26
|
+
isBefore(other: GtfsStopTime): boolean;
|
|
27
|
+
isBeforeOrEqual(other: GtfsStopTime): boolean;
|
|
28
|
+
isAfter(other: GtfsStopTime): boolean;
|
|
29
|
+
isAfterOrEqual(other: GtfsStopTime): boolean;
|
|
30
|
+
toInstant(serviceDay: Temporal.PlainDate, timezone: string): Temporal.Instant;
|
|
31
|
+
asString(): string;
|
|
32
|
+
plus({ hours, minutes, seconds, }: {
|
|
33
|
+
hours?: number;
|
|
34
|
+
minutes?: number;
|
|
35
|
+
seconds?: number;
|
|
36
|
+
}): GtfsStopTime;
|
|
37
|
+
private static _getOffsetSecondsAtMidday;
|
|
38
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { itsOk, posMod } from "@dan-schel/js-utils";
|
|
2
|
+
export class GtfsStopTime {
|
|
3
|
+
secondsSinceMidnight;
|
|
4
|
+
constructor(
|
|
5
|
+
/**
|
|
6
|
+
* The number of seconds since midnight. Allows values greater than
|
|
7
|
+
* 24 * 60 * 60 to indicate times that are on the next day or an arbitrary
|
|
8
|
+
* number of days into the future.
|
|
9
|
+
*/
|
|
10
|
+
secondsSinceMidnight) {
|
|
11
|
+
this.secondsSinceMidnight = secondsSinceMidnight;
|
|
12
|
+
}
|
|
13
|
+
static fromSecondsSinceMidnight(secondsSinceMidnight) {
|
|
14
|
+
return new GtfsStopTime(secondsSinceMidnight);
|
|
15
|
+
}
|
|
16
|
+
/** Parses strings like `05:30:00` or `25:04:42`. */
|
|
17
|
+
static tryParse(input) {
|
|
18
|
+
const match = /^(\d+):(\d\d):(\d\d)$/.exec(input);
|
|
19
|
+
if (match == null)
|
|
20
|
+
return null;
|
|
21
|
+
const h = parseInt(itsOk(match[1]), 10);
|
|
22
|
+
const m = parseInt(itsOk(match[2]), 10);
|
|
23
|
+
const s = parseInt(itsOk(match[3]), 10);
|
|
24
|
+
if (m >= 60 || s >= 60)
|
|
25
|
+
return null;
|
|
26
|
+
return GtfsStopTime.fromSecondsSinceMidnight(h * 60 * 60 + m * 60 + s);
|
|
27
|
+
}
|
|
28
|
+
/** Parses strings like `05:30:00` or `25:04:42`. */
|
|
29
|
+
static parse(input) {
|
|
30
|
+
const parsed = GtfsStopTime.tryParse(input);
|
|
31
|
+
if (parsed == null)
|
|
32
|
+
throw new Error(`Invalid GTFS stop time: ${input}`);
|
|
33
|
+
return parsed;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns a value `0 <= x < 24 * 60 * 60`. Combines with `dayOffset` to
|
|
37
|
+
* provide the full picture.
|
|
38
|
+
*/
|
|
39
|
+
get secondOfDay() {
|
|
40
|
+
return posMod(this.secondsSinceMidnight, 24 * 60 * 60);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Returns 0 if `secondsSinceMidnight` is less than 24 hours, 1 if 24-48
|
|
44
|
+
* hours, etc.
|
|
45
|
+
*/
|
|
46
|
+
get dayOffset() {
|
|
47
|
+
return Math.floor(this.secondsSinceMidnight / (24 * 60 * 60));
|
|
48
|
+
}
|
|
49
|
+
equals(other) {
|
|
50
|
+
return this.secondsSinceMidnight === other.secondsSinceMidnight;
|
|
51
|
+
}
|
|
52
|
+
static compare(a, b) {
|
|
53
|
+
return Math.sign(a.secondsSinceMidnight - b.secondsSinceMidnight);
|
|
54
|
+
}
|
|
55
|
+
isBefore(other) {
|
|
56
|
+
return GtfsStopTime.compare(this, other) < 0;
|
|
57
|
+
}
|
|
58
|
+
isBeforeOrEqual(other) {
|
|
59
|
+
return GtfsStopTime.compare(this, other) <= 0;
|
|
60
|
+
}
|
|
61
|
+
isAfter(other) {
|
|
62
|
+
return GtfsStopTime.compare(this, other) > 0;
|
|
63
|
+
}
|
|
64
|
+
isAfterOrEqual(other) {
|
|
65
|
+
return GtfsStopTime.compare(this, other) >= 0;
|
|
66
|
+
}
|
|
67
|
+
toInstant(serviceDay, timezone) {
|
|
68
|
+
const midnightUtc = serviceDay.toZonedDateTime("UTC").toInstant();
|
|
69
|
+
const offset = GtfsStopTime._getOffsetSecondsAtMidday(serviceDay, timezone);
|
|
70
|
+
// Subtract the offset because we're converting a local time to UTC, i.e.
|
|
71
|
+
// 11am AEST becomes 1am UTC.
|
|
72
|
+
return midnightUtc.add({ seconds: this.secondsSinceMidnight - offset });
|
|
73
|
+
}
|
|
74
|
+
asString() {
|
|
75
|
+
const h = Math.floor(this.secondsSinceMidnight / 3600);
|
|
76
|
+
const m = Math.floor((this.secondsSinceMidnight % 3600) / 60);
|
|
77
|
+
const s = this.secondsSinceMidnight % 60;
|
|
78
|
+
const hStr = h.toString().padStart(2, "0");
|
|
79
|
+
const mStr = m.toString().padStart(2, "0");
|
|
80
|
+
const sStr = s.toString().padStart(2, "0");
|
|
81
|
+
return `${hStr}:${mStr}:${sStr}`;
|
|
82
|
+
}
|
|
83
|
+
plus({ hours = 0, minutes = 0, seconds = 0, }) {
|
|
84
|
+
const s = hours * 3600 + minutes * 60 + seconds;
|
|
85
|
+
return GtfsStopTime.fromSecondsSinceMidnight(this.secondsSinceMidnight + s);
|
|
86
|
+
}
|
|
87
|
+
static _getOffsetSecondsAtMidday(date, timezone) {
|
|
88
|
+
const nanoseconds = Temporal.ZonedDateTime.from({
|
|
89
|
+
timeZone: timezone,
|
|
90
|
+
year: date.year,
|
|
91
|
+
month: date.month,
|
|
92
|
+
day: date.day,
|
|
93
|
+
hour: 12,
|
|
94
|
+
minute: 0,
|
|
95
|
+
}, {
|
|
96
|
+
// Throws an error if this is ambiguous (just like 2:30am can be
|
|
97
|
+
// ambiguous during DST changes in Melbourne). The GTFS spec operates on
|
|
98
|
+
// the timezone as at 12pm that day, as do we, and so that should mean
|
|
99
|
+
// it's never a problem (both for Melbourne, and elsewhere).
|
|
100
|
+
disambiguation: "reject",
|
|
101
|
+
}).offsetNanoseconds;
|
|
102
|
+
return nanoseconds / 1_000_000_000;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=gtfs-stop-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtfs-stop-time.js","sourceRoot":"","sources":["../../src/data/gtfs-stop-time.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { StopGtfsIdMetadata } from "./ids/stop-gtfs-id-metadata.js";
|
|
2
|
+
export type GtfsUpdatedTripMovement = GtfsUpdatedTripOriginatingMovement | GtfsUpdatedTripRegularMovement | GtfsUpdatedTripTerminatingMovement | GtfsUpdatedTripPassingMovement;
|
|
3
|
+
export type GtfsUpdatedTripServicingMovement = GtfsUpdatedTripOriginatingMovement | GtfsUpdatedTripRegularMovement | GtfsUpdatedTripTerminatingMovement;
|
|
4
|
+
interface IGtfsUpdatedTripMovement {
|
|
5
|
+
readonly stopId: number;
|
|
6
|
+
get type(): string;
|
|
7
|
+
get isServicing(): boolean;
|
|
8
|
+
get isNonTerminal(): boolean;
|
|
9
|
+
}
|
|
10
|
+
interface IGtfsUpdatedTripServicingMovement extends IGtfsUpdatedTripMovement {
|
|
11
|
+
readonly originalPositionId: number | null;
|
|
12
|
+
readonly updatedPositionId: number | null;
|
|
13
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
14
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
15
|
+
readonly gtfsStopSequence: number;
|
|
16
|
+
get isServicing(): true;
|
|
17
|
+
get timeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
18
|
+
get realtimeTimeRelevantToDeparturesAlgorithm(): Temporal.Instant | null;
|
|
19
|
+
get scheduledTimeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
20
|
+
}
|
|
21
|
+
type GtfsUpdatedTripOriginatingMovementFields = {
|
|
22
|
+
readonly stopId: number;
|
|
23
|
+
readonly originalPositionId: number | null;
|
|
24
|
+
readonly updatedPositionId: number | null;
|
|
25
|
+
readonly scheduledDepartureTime: Temporal.Instant;
|
|
26
|
+
readonly realtimeDepartureTime: Temporal.Instant | null;
|
|
27
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
28
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
29
|
+
readonly gtfsStopSequence: number;
|
|
30
|
+
};
|
|
31
|
+
type GtfsUpdatedTripRegularMovementFields = {
|
|
32
|
+
readonly stopId: number;
|
|
33
|
+
readonly originalPositionId: number | null;
|
|
34
|
+
readonly updatedPositionId: number | null;
|
|
35
|
+
readonly scheduledArrivalTime: Temporal.Instant;
|
|
36
|
+
readonly realtimeArrivalTime: Temporal.Instant | null;
|
|
37
|
+
readonly scheduledDepartureTime: Temporal.Instant;
|
|
38
|
+
readonly realtimeDepartureTime: Temporal.Instant | null;
|
|
39
|
+
readonly picksUp: boolean;
|
|
40
|
+
readonly dropsOff: boolean;
|
|
41
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
42
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
43
|
+
readonly gtfsStopSequence: number;
|
|
44
|
+
};
|
|
45
|
+
type GtfsUpdatedTripTerminatingMovementFields = {
|
|
46
|
+
readonly stopId: number;
|
|
47
|
+
readonly originalPositionId: number | null;
|
|
48
|
+
readonly updatedPositionId: number | null;
|
|
49
|
+
readonly scheduledArrivalTime: Temporal.Instant;
|
|
50
|
+
readonly realtimeArrivalTime: Temporal.Instant | null;
|
|
51
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
52
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
53
|
+
readonly gtfsStopSequence: number;
|
|
54
|
+
};
|
|
55
|
+
type GtfsUpdatedTripPassingMovementFields = {
|
|
56
|
+
readonly stopId: number;
|
|
57
|
+
};
|
|
58
|
+
export declare class GtfsUpdatedTripOriginatingMovement implements IGtfsUpdatedTripServicingMovement {
|
|
59
|
+
readonly stopId: number;
|
|
60
|
+
readonly originalPositionId: number | null;
|
|
61
|
+
readonly updatedPositionId: number | null;
|
|
62
|
+
readonly scheduledDepartureTime: Temporal.Instant;
|
|
63
|
+
readonly realtimeDepartureTime: Temporal.Instant | null;
|
|
64
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
65
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
66
|
+
readonly gtfsStopSequence: number;
|
|
67
|
+
constructor(fields: GtfsUpdatedTripOriginatingMovementFields);
|
|
68
|
+
with(newValues: Partial<GtfsUpdatedTripOriginatingMovementFields>): GtfsUpdatedTripOriginatingMovement;
|
|
69
|
+
get type(): "originating";
|
|
70
|
+
get isServicing(): true;
|
|
71
|
+
get isNonTerminal(): false;
|
|
72
|
+
get timeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
73
|
+
get realtimeTimeRelevantToDeparturesAlgorithm(): Temporal.Instant | null;
|
|
74
|
+
get scheduledTimeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
75
|
+
}
|
|
76
|
+
export declare class GtfsUpdatedTripRegularMovement implements IGtfsUpdatedTripServicingMovement {
|
|
77
|
+
readonly stopId: number;
|
|
78
|
+
readonly originalPositionId: number | null;
|
|
79
|
+
readonly updatedPositionId: number | null;
|
|
80
|
+
readonly scheduledArrivalTime: Temporal.Instant;
|
|
81
|
+
readonly realtimeArrivalTime: Temporal.Instant | null;
|
|
82
|
+
readonly scheduledDepartureTime: Temporal.Instant;
|
|
83
|
+
readonly realtimeDepartureTime: Temporal.Instant | null;
|
|
84
|
+
readonly picksUp: boolean;
|
|
85
|
+
readonly dropsOff: boolean;
|
|
86
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
87
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
88
|
+
readonly gtfsStopSequence: number;
|
|
89
|
+
constructor(fields: GtfsUpdatedTripRegularMovementFields);
|
|
90
|
+
with(newValues: Partial<GtfsUpdatedTripRegularMovementFields>): GtfsUpdatedTripRegularMovement;
|
|
91
|
+
get type(): "regular";
|
|
92
|
+
get isServicing(): true;
|
|
93
|
+
get isNonTerminal(): true;
|
|
94
|
+
get timeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
95
|
+
get realtimeTimeRelevantToDeparturesAlgorithm(): Temporal.Instant | null;
|
|
96
|
+
get scheduledTimeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
97
|
+
}
|
|
98
|
+
export declare class GtfsUpdatedTripTerminatingMovement implements IGtfsUpdatedTripServicingMovement {
|
|
99
|
+
readonly stopId: number;
|
|
100
|
+
readonly originalPositionId: number | null;
|
|
101
|
+
readonly updatedPositionId: number | null;
|
|
102
|
+
readonly scheduledArrivalTime: Temporal.Instant;
|
|
103
|
+
readonly realtimeArrivalTime: Temporal.Instant | null;
|
|
104
|
+
readonly originalGtfsIdMetadata: StopGtfsIdMetadata;
|
|
105
|
+
readonly updatedGtfsIdMetadata: StopGtfsIdMetadata;
|
|
106
|
+
readonly gtfsStopSequence: number;
|
|
107
|
+
constructor(fields: GtfsUpdatedTripTerminatingMovementFields);
|
|
108
|
+
with(newValues: Partial<GtfsUpdatedTripTerminatingMovementFields>): GtfsUpdatedTripTerminatingMovement;
|
|
109
|
+
get type(): "terminating";
|
|
110
|
+
get isServicing(): true;
|
|
111
|
+
get isNonTerminal(): false;
|
|
112
|
+
get timeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
113
|
+
get realtimeTimeRelevantToDeparturesAlgorithm(): Temporal.Instant | null;
|
|
114
|
+
get scheduledTimeRelevantToDeparturesAlgorithm(): Temporal.Instant;
|
|
115
|
+
}
|
|
116
|
+
export declare class GtfsUpdatedTripPassingMovement implements IGtfsUpdatedTripMovement {
|
|
117
|
+
readonly stopId: number;
|
|
118
|
+
constructor(fields: GtfsUpdatedTripPassingMovementFields);
|
|
119
|
+
with(newValues: Partial<GtfsUpdatedTripPassingMovementFields>): GtfsUpdatedTripPassingMovement;
|
|
120
|
+
get type(): "passing";
|
|
121
|
+
get isServicing(): false;
|
|
122
|
+
get isNonTerminal(): true;
|
|
123
|
+
}
|
|
124
|
+
export {};
|