corequery-gtfs 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/corequeryify/service-converter.d.ts +1 -0
- package/dist/corequeryify/service-converter.js +30 -2
- package/dist/corequeryify/service-converter.js.map +1 -1
- package/dist/data/gtfs-feed.d.ts +1 -1
- package/dist/data/gtfs-feed.js +2 -2
- package/dist/data/gtfs-feed.js.map +1 -1
- package/dist/data/ids/index.d.ts +0 -1
- package/dist/data/ids/index.js +0 -1
- package/dist/data/ids/index.js.map +1 -1
- package/dist/data/index.d.ts +0 -5
- package/dist/data/index.js +0 -5
- package/dist/data/index.js.map +1 -1
- package/dist/departures/gtfs-scheduled-movements-index.js +1 -1
- package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -1
- package/dist/departures/realtime-departures-block.js +1 -1
- package/dist/departures/realtime-departures-block.js.map +1 -1
- package/dist/departures/scheduled-departures-iterator.d.ts +8 -2
- package/dist/departures/scheduled-departures-iterator.js +35 -19
- package/dist/departures/scheduled-departures-iterator.js.map +1 -1
- package/dist/departures/zipper-departures-iterator.d.ts +7 -4
- package/dist/departures/zipper-departures-iterator.js +33 -11
- package/dist/departures/zipper-departures-iterator.js.map +1 -1
- package/dist/gtfs-service-source.d.ts +2 -0
- package/dist/gtfs-service-source.js +3 -1
- package/dist/gtfs-service-source.js.map +1 -1
- package/dist/gtfs-system.d.ts +2 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/parser/gtfs-feed-parser.d.ts +1 -1
- package/dist/parser/gtfs-feed-parser.js +2 -2
- package/dist/parser/gtfs-feed-parser.js.map +1 -1
- package/dist/parser/realtime/gtfs-trip-update-parser.d.ts +12 -12
- package/dist/parser/realtime/gtfs-trip-update-parser.js +12 -24
- package/dist/parser/realtime/gtfs-trip-update-parser.js.map +1 -1
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.d.ts +4 -4
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js +4 -8
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js.map +1 -1
- package/dist/parser/schedule/gtfs-calendar-parser.d.ts +4 -4
- package/dist/parser/schedule/gtfs-calendar-parser.js +4 -12
- package/dist/parser/schedule/gtfs-calendar-parser.js.map +1 -1
- package/dist/parser/schedule/gtfs-route-matcher.d.ts +4 -4
- package/dist/parser/schedule/gtfs-route-matcher.js +4 -8
- package/dist/parser/schedule/gtfs-route-matcher.js.map +1 -1
- package/dist/parser/schedule/{gtfs-schedule-parser.d.ts → gtfs-schedule-data-parser.d.ts} +1 -1
- package/dist/parser/schedule/{gtfs-schedule-parser.js → gtfs-schedule-data-parser.js} +2 -3
- package/dist/parser/schedule/gtfs-schedule-data-parser.js.map +1 -0
- package/dist/parser/schedule/gtfs-stop-time-normaliser.d.ts +2 -2
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js +2 -4
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js.map +1 -1
- package/dist/parser/schedule/gtfs-transfer-connector.d.ts +8 -8
- package/dist/parser/schedule/gtfs-transfer-connector.js +8 -16
- package/dist/parser/schedule/gtfs-transfer-connector.js.map +1 -1
- package/dist/parser/schedule/gtfs-trip-parser.d.ts +4 -4
- package/dist/parser/schedule/gtfs-trip-parser.js +4 -8
- package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -1
- package/package.json +1 -1
- package/dist/departures/index.d.ts +0 -1
- package/dist/departures/index.js +0 -2
- package/dist/departures/index.js.map +0 -1
- package/dist/departures/multifeed-departures-iterator.d.ts +0 -20
- package/dist/departures/multifeed-departures-iterator.js +0 -52
- package/dist/departures/multifeed-departures-iterator.js.map +0 -1
- package/dist/parser/index.d.ts +0 -2
- package/dist/parser/index.js +0 -3
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/realtime/index.d.ts +0 -3
- package/dist/parser/realtime/index.js +0 -2
- package/dist/parser/realtime/index.js.map +0 -1
- package/dist/parser/schedule/gtfs-schedule-parser.js.map +0 -1
- package/dist/parser/schedule/index.d.ts +0 -6
- package/dist/parser/schedule/index.js +0 -2
- package/dist/parser/schedule/index.js.map +0 -1
|
@@ -29,4 +29,5 @@ export declare class ServiceConverter<CorequeryDepartureClass, CorequeryServiceC
|
|
|
29
29
|
convertUpdatedTrip(trip: GtfsUpdatedTrip): CorequeryServiceClass;
|
|
30
30
|
private _convertScheduledTripMovement;
|
|
31
31
|
private _convertUpdatedTripMovement;
|
|
32
|
+
private _convertScheduledTripConnections;
|
|
32
33
|
}
|
|
@@ -65,7 +65,7 @@ export class ServiceConverter {
|
|
|
65
65
|
// wants. (Probably remove the `nextTrip` and `previousTrip` properties
|
|
66
66
|
// from trips, and just store transfers in an array in the feed, or in the
|
|
67
67
|
// scheduled/realtime data?)
|
|
68
|
-
connections:
|
|
68
|
+
connections: this._convertScheduledTripConnections(trip, serviceDay),
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
convertUpdatedTrip(trip) {
|
|
@@ -79,7 +79,9 @@ export class ServiceConverter {
|
|
|
79
79
|
liveDataType: "updated",
|
|
80
80
|
movements: trip.movements.map((m) => this._convertUpdatedTripMovement(m)),
|
|
81
81
|
isCancelled: trip.isCancelled,
|
|
82
|
-
|
|
82
|
+
// TODO: See the comment on this above. We can't assume the connection
|
|
83
|
+
// given in the schedule is still running!
|
|
84
|
+
connections: this._convertScheduledTripConnections(trip.scheduledTrip, trip.serviceDay),
|
|
83
85
|
});
|
|
84
86
|
}
|
|
85
87
|
_convertScheduledTripMovement(movement, serviceDay, timezone) {
|
|
@@ -202,5 +204,31 @@ export class ServiceConverter {
|
|
|
202
204
|
assertNever(movement);
|
|
203
205
|
}
|
|
204
206
|
}
|
|
207
|
+
// TODO: This implementation was only ever designed to be temporary, and
|
|
208
|
+
// should be discarded entirely.
|
|
209
|
+
_convertScheduledTripConnections(trip, serviceDay) {
|
|
210
|
+
const result = [];
|
|
211
|
+
if (trip.previousTrip != null) {
|
|
212
|
+
result.push(this._buildServiceConnection({
|
|
213
|
+
type: "entire-vehicle-forms-service",
|
|
214
|
+
direction: "from-other",
|
|
215
|
+
otherServiceSourceId: this._sourceId,
|
|
216
|
+
otherServiceIntrasourceId: new CorequeryIntrasourceId(trip.previousTrip.gtfsTripId, serviceDay).toString(),
|
|
217
|
+
movementIndex: 0,
|
|
218
|
+
otherServiceMovementIndex: trip.previousTrip.movements.length - 1,
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
if (trip.nextTrip != null) {
|
|
222
|
+
result.push(this._buildServiceConnection({
|
|
223
|
+
type: "entire-vehicle-forms-service",
|
|
224
|
+
direction: "to-other",
|
|
225
|
+
otherServiceSourceId: this._sourceId,
|
|
226
|
+
otherServiceIntrasourceId: new CorequeryIntrasourceId(trip.nextTrip.gtfsTripId, serviceDay).toString(),
|
|
227
|
+
movementIndex: trip.movements.length - 1,
|
|
228
|
+
otherServiceMovementIndex: 0,
|
|
229
|
+
}));
|
|
230
|
+
}
|
|
231
|
+
return result;
|
|
232
|
+
}
|
|
205
233
|
}
|
|
206
234
|
//# sourceMappingURL=service-converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-converter.js","sourceRoot":"","sources":["../../src/corequeryify/service-converter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service-converter.js","sourceRoot":"","sources":["../../src/corequeryify/service-converter.ts"],"names":[],"mappings":"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"}
|
package/dist/data/gtfs-feed.d.ts
CHANGED
|
@@ -15,5 +15,5 @@ export declare class GtfsFeed {
|
|
|
15
15
|
static fromNewScheduleData(scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData): GtfsFeed;
|
|
16
16
|
withUpdatedRealtimeData(realtimeData: GtfsRealtimeData): GtfsFeed;
|
|
17
17
|
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip | null;
|
|
18
|
-
createDepartureIterator(stopId: number): ZipperDeparturesIterator;
|
|
18
|
+
createDepartureIterator(stopId: number, iterationLimitHours: number | null): ZipperDeparturesIterator;
|
|
19
19
|
}
|
package/dist/data/gtfs-feed.js
CHANGED
|
@@ -38,8 +38,8 @@ export class GtfsFeed {
|
|
|
38
38
|
}
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
-
createDepartureIterator(stopId) {
|
|
42
|
-
return ZipperDeparturesIterator.forFeed(stopId, this.scheduledMovementsIndex, this.realtimeData, this.timezoneData);
|
|
41
|
+
createDepartureIterator(stopId, iterationLimitHours) {
|
|
42
|
+
return ZipperDeparturesIterator.forFeed(stopId, this.scheduledMovementsIndex, this.realtimeData, this.timezoneData, iterationLimitHours);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
//# sourceMappingURL=gtfs-feed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,OAAO,QAAQ;IAiBR;IACA;IACA;IACA;IAnBX,MAAM,CAAU,KAAK,GAAG,IAAI,QAAQ,CAClC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,KAAK;IAEtB,wEAAwE;IACxE,mEAAmE;IACnE;QACE,QAAQ,EAAE,KAAK;QACf,0BAA0B,EAAE,CAAC;QAC7B,0BAA0B,EAAE,CAAC;KAC9B,EAED,2BAA2B,CAAC,KAAK,CAClC,CAAC;IAEF,YACW,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B,EAC1B,uBAAoD;QAHpD,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,4BAAuB,GAAvB,uBAAuB,CAA6B;IAC5D,CAAC;IAEJ,MAAM,CAAC,mBAAmB,CACxB,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B;QAE1B,MAAM,uBAAuB,GAC3B,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,IAAI,QAAQ,CACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,YAA8B;QACpD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,YAAY,EACjB,YAAY,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,uBAAuB,CAC7B,CAAC;IACJ,CAAC;IAED,OAAO,CACL,UAAkB,EAClB,UAA8B;QAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,YAAY,IAAI,IAAI;YAAE,OAAO,YAAY,CAAC;QAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzE,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,MAAc;
|
|
1
|
+
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,OAAO,QAAQ;IAiBR;IACA;IACA;IACA;IAnBX,MAAM,CAAU,KAAK,GAAG,IAAI,QAAQ,CAClC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,KAAK;IAEtB,wEAAwE;IACxE,mEAAmE;IACnE;QACE,QAAQ,EAAE,KAAK;QACf,0BAA0B,EAAE,CAAC;QAC7B,0BAA0B,EAAE,CAAC;KAC9B,EAED,2BAA2B,CAAC,KAAK,CAClC,CAAC;IAEF,YACW,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B,EAC1B,uBAAoD;QAHpD,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,iBAAY,GAAZ,YAAY,CAAkB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,4BAAuB,GAAvB,uBAAuB,CAA6B;IAC5D,CAAC;IAEJ,MAAM,CAAC,mBAAmB,CACxB,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B;QAE1B,MAAM,uBAAuB,GAC3B,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,IAAI,QAAQ,CACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,YAA8B;QACpD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,YAAY,EACjB,YAAY,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,uBAAuB,CAC7B,CAAC;IACJ,CAAC;IAED,OAAO,CACL,UAAkB,EAClB,UAA8B;QAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,YAAY,IAAI,IAAI;YAAE,OAAO,YAAY,CAAC;QAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzE,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB,CAAC,MAAc,EAAE,mBAAkC;QACxE,OAAO,wBAAwB,CAAC,OAAO,CACrC,MAAM,EACN,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,mBAAmB,CACpB,CAAC;IACJ,CAAC"}
|
package/dist/data/ids/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./line-gtfs-id-collection.js";
|
|
2
2
|
export * from "./line-gtfs-id-mapping.js";
|
|
3
|
-
export * from "./line-gtfs-id-metadata.js";
|
|
4
3
|
export * from "./stop-gtfs-id-collection.js";
|
|
5
4
|
export * from "./stop-gtfs-id-mapping.js";
|
|
6
5
|
export * from "./stop-gtfs-id-metadata.js";
|
package/dist/data/ids/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export * from "./line-gtfs-id-collection.js";
|
|
2
2
|
export * from "./line-gtfs-id-mapping.js";
|
|
3
|
-
export * from "./line-gtfs-id-metadata.js";
|
|
4
3
|
export * from "./stop-gtfs-id-collection.js";
|
|
5
4
|
export * from "./stop-gtfs-id-mapping.js";
|
|
6
5
|
export * from "./stop-gtfs-id-metadata.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC"}
|
package/dist/data/index.d.ts
CHANGED
|
@@ -2,8 +2,3 @@ export * from "./ids/index.js";
|
|
|
2
2
|
export * from "./route/index.js";
|
|
3
3
|
export * from "./gtfs-feed.js";
|
|
4
4
|
export * from "./gtfs-stop-time.js";
|
|
5
|
-
export * from "./gtfs-scheduled-trip.js";
|
|
6
|
-
export * from "./gtfs-scheduled-trip-movements.js";
|
|
7
|
-
export * from "./gtfs-updated-trip.js";
|
|
8
|
-
export * from "./gtfs-updated-trip-movements.js";
|
|
9
|
-
export * from "./utils.js";
|
package/dist/data/index.js
CHANGED
|
@@ -2,9 +2,4 @@ export * from "./ids/index.js";
|
|
|
2
2
|
export * from "./route/index.js";
|
|
3
3
|
export * from "./gtfs-feed.js";
|
|
4
4
|
export * from "./gtfs-stop-time.js";
|
|
5
|
-
export * from "./gtfs-scheduled-trip.js";
|
|
6
|
-
export * from "./gtfs-scheduled-trip-movements.js";
|
|
7
|
-
export * from "./gtfs-updated-trip.js";
|
|
8
|
-
export * from "./gtfs-updated-trip-movements.js";
|
|
9
|
-
export * from "./utils.js";
|
|
10
5
|
//# sourceMappingURL=index.js.map
|
package/dist/data/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
|
|
@@ -21,7 +21,7 @@ export class GtfsScheduledMovementsIndex {
|
|
|
21
21
|
const calendarsByStop = new Map();
|
|
22
22
|
for (const trip of schedule.allTrips()) {
|
|
23
23
|
for (let i = 0; i < trip.movements.length; i++) {
|
|
24
|
-
const movement = trip.movements[i];
|
|
24
|
+
const movement = itsOk(trip.movements[i]);
|
|
25
25
|
if (!movement.isServicing)
|
|
26
26
|
continue;
|
|
27
27
|
const entry = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-scheduled-movements-index.js","sourceRoot":"","sources":["../../src/departures/gtfs-scheduled-movements-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAS7D,MAAM,OAAO,2BAA2B;IAMnB;IAIA;IATnB,MAAM,CAAU,KAAK,GAAG,2BAA2B,CAAC,KAAK,CACvD,gBAAgB,CAAC,KAAK,CACvB,CAAC;IAEF,YACmB,MAGhB,EACgB,oCAGhB;QAPgB,WAAM,GAAN,MAAM,CAGtB;QACgB,yCAAoC,GAApC,oCAAoC,CAGpD;IACA,CAAC;IAEJ,mBAAmB,CACjB,MAAc;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,uCAAuC,CACrC,MAAc;QAEd,OAAO,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAA0B;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-movements-index.js","sourceRoot":"","sources":["../../src/departures/gtfs-scheduled-movements-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAS7D,MAAM,OAAO,2BAA2B;IAMnB;IAIA;IATnB,MAAM,CAAU,KAAK,GAAG,2BAA2B,CAAC,KAAK,CACvD,gBAAgB,CAAC,KAAK,CACvB,CAAC;IAEF,YACmB,MAGhB,EACgB,oCAGhB;QAPgB,WAAM,GAAN,MAAM,CAGtB;QACgB,yCAAoC,GAApC,oCAAoC,CAGpD;IACA,CAAC;IAEJ,mBAAmB,CACjB,MAAc;QAEd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,uCAAuC,CACrC,MAAc;QAEd,OAAO,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAA0B;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW;oBAAE,SAAS;gBAEpC,MAAM,KAAK,GAAqC;oBAC9C,IAAI;oBACJ,QAAQ;oBAER,mEAAmE;oBACnE,8BAA8B;oBAC9B,IAAI,EAAE,QAAQ,CAAC,iCAAiC;oBAChD,aAAa,EAAE,CAAC;iBACjB,CAAC;gBAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1D,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE5B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1C,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAClD,CAAC;gBACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,mCAAmC,GAAG,IAAI,GAAG,EAGhD,CAAC;QAEJ,KAAK,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,IAAI,KAAK,GAA0B,IAAI,CAAC;YAExC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;gBACtD,MAAM,qBAAqB,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAE1D,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,KAAK,GAAG,qBAAqB,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,mCAAmC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,2BAA2B,CACpC,KAAK,EACL,mCAAmC,CACpC,CAAC;IACJ,CAAC"}
|
|
@@ -13,7 +13,7 @@ export class RealtimeDeparturesBlock extends DeparturesBlock {
|
|
|
13
13
|
const movements = [];
|
|
14
14
|
for (const trip of realtimeData.allTrips()) {
|
|
15
15
|
for (let i = 0; i < trip.movements.length; i++) {
|
|
16
|
-
const movement = trip.movements[i];
|
|
16
|
+
const movement = itsOk(trip.movements[i]);
|
|
17
17
|
if (!movement.isServicing)
|
|
18
18
|
continue;
|
|
19
19
|
if (movement.stopId !== stopId)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-departures-block.js","sourceRoot":"","sources":["../../src/departures/realtime-departures-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAE/C;IADX,YACW,OAAgD,EACzD,wBAA0C,EAC1C,sBAAwC;QAExC,KAAK,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QAJ/C,YAAO,GAAP,OAAO,CAAyC;IAK3D,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,MAAc;IAEd,2EAA2E;IAC3E,8DAA8D;IAC9D,YAA8B;QAE9B,MAAM,SAAS,GAAmC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime-departures-block.js","sourceRoot":"","sources":["../../src/departures/realtime-departures-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AASxD,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAE/C;IADX,YACW,OAAgD,EACzD,wBAA0C,EAC1C,sBAAwC;QAExC,KAAK,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QAJ/C,YAAO,GAAP,OAAO,CAAyC;IAK3D,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,MAAc;IAEd,2EAA2E;IAC3E,8DAA8D;IAC9D,YAA8B;QAE9B,MAAM,SAAS,GAAmC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW;oBAAE,SAAS;gBACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM;oBAAE,SAAS;gBAEzC,SAAS,CAAC,IAAI,CAAC;oBACb,IAAI;oBACJ,OAAO,EAAE,QAAQ,CAAC,iCAAiC;oBACnD,QAAQ;oBACR,aAAa,EAAE,CAAC;iBACjB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAExC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAEzE,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAExE,OAAO,IAAI,uBAAuB,CAChC,SAAS,EACT,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAEQ,2BAA2B,CAAC,OAAyB;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CACzD,CAAC;QACF,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IACtD,CAAC;IAEQ,+BAA+B,CAAC,OAAyB;QAChE,4EAA4E;QAC5E,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CACzD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -4,17 +4,22 @@ import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
|
|
|
4
4
|
import { ScheduledDeparturesBlocksBuilder } from "./scheduled-departures-blocks-builder.js";
|
|
5
5
|
import type { TimezoneData } from "../config/timezone-data.js";
|
|
6
6
|
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
7
|
+
type ScheduledDeparturesIteratorOptions = {
|
|
8
|
+
readonly blockScanHours: number;
|
|
9
|
+
readonly maximumNumberOfScans: number | null;
|
|
10
|
+
};
|
|
7
11
|
export declare class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
8
12
|
private readonly _blockBuilder;
|
|
9
13
|
private readonly _realtimeData;
|
|
14
|
+
private readonly _options;
|
|
10
15
|
private _direction;
|
|
11
16
|
private _searchRange;
|
|
12
17
|
private _iterators;
|
|
13
18
|
private _nextIterator;
|
|
14
19
|
private _blockSearchesRan;
|
|
15
20
|
private _subiteratorsCreated;
|
|
16
|
-
constructor(_blockBuilder: ScheduledDeparturesBlocksBuilder, _realtimeData: GtfsRealtimeData);
|
|
17
|
-
static tryBuild(stopId: number, scheduledMovementsIndex: GtfsScheduledMovementsIndex, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData): ScheduledDeparturesIterator | null;
|
|
21
|
+
constructor(_blockBuilder: ScheduledDeparturesBlocksBuilder, _realtimeData: GtfsRealtimeData, _options: ScheduledDeparturesIteratorOptions);
|
|
22
|
+
static tryBuild(stopId: number, scheduledMovementsIndex: GtfsScheduledMovementsIndex, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData, iterationLimitHours: number | null): ScheduledDeparturesIterator | null;
|
|
18
23
|
getStats(): {
|
|
19
24
|
blockSearchesRan: number;
|
|
20
25
|
subiteratorsCreated: number;
|
|
@@ -28,3 +33,4 @@ export declare class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
|
28
33
|
private _isBetter;
|
|
29
34
|
private _areMoreBlocksAvailable;
|
|
30
35
|
}
|
|
36
|
+
export {};
|
|
@@ -3,30 +3,40 @@ import { DeparturesIterator, } from "./departures-iterator.js";
|
|
|
3
3
|
import { BoundedInstantRange } from "../data/bounded-instant-range.js";
|
|
4
4
|
import { ScheduledDeparturesBlockIterator } from "./scheduled-departures-block-iterator.js";
|
|
5
5
|
import { ScheduledDeparturesBlocksBuilder } from "./scheduled-departures-blocks-builder.js";
|
|
6
|
-
const
|
|
6
|
+
const DEFAULT_BLOCK_SCAN_HOURS = 48;
|
|
7
7
|
export class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
8
8
|
_blockBuilder;
|
|
9
9
|
_realtimeData;
|
|
10
|
+
_options;
|
|
10
11
|
_direction;
|
|
11
12
|
_searchRange;
|
|
12
13
|
_iterators;
|
|
13
14
|
_nextIterator;
|
|
14
|
-
_blockSearchesRan
|
|
15
|
-
_subiteratorsCreated
|
|
16
|
-
constructor(_blockBuilder, _realtimeData) {
|
|
15
|
+
_blockSearchesRan;
|
|
16
|
+
_subiteratorsCreated;
|
|
17
|
+
constructor(_blockBuilder, _realtimeData, _options) {
|
|
17
18
|
super();
|
|
18
19
|
this._blockBuilder = _blockBuilder;
|
|
19
20
|
this._realtimeData = _realtimeData;
|
|
21
|
+
this._options = _options;
|
|
20
22
|
this._direction = "forwards";
|
|
21
23
|
this._searchRange = null;
|
|
22
24
|
this._iterators = [];
|
|
23
25
|
this._nextIterator = null;
|
|
26
|
+
this._blockSearchesRan = 0;
|
|
27
|
+
this._subiteratorsCreated = 0;
|
|
24
28
|
}
|
|
25
|
-
static tryBuild(stopId, scheduledMovementsIndex, realtimeData, timezoneData) {
|
|
29
|
+
static tryBuild(stopId, scheduledMovementsIndex, realtimeData, timezoneData, iterationLimitHours) {
|
|
26
30
|
const blockBuilder = ScheduledDeparturesBlocksBuilder.tryBuild(stopId, scheduledMovementsIndex, timezoneData);
|
|
27
31
|
if (blockBuilder == null)
|
|
28
32
|
return null;
|
|
29
|
-
|
|
33
|
+
const maximumNumberOfScans = iterationLimitHours == null
|
|
34
|
+
? null
|
|
35
|
+
: Math.ceil(iterationLimitHours / DEFAULT_BLOCK_SCAN_HOURS);
|
|
36
|
+
return new ScheduledDeparturesIterator(blockBuilder, realtimeData, {
|
|
37
|
+
blockScanHours: DEFAULT_BLOCK_SCAN_HOURS,
|
|
38
|
+
maximumNumberOfScans: maximumNumberOfScans,
|
|
39
|
+
});
|
|
30
40
|
}
|
|
31
41
|
getStats() {
|
|
32
42
|
return {
|
|
@@ -35,8 +45,10 @@ export class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
|
35
45
|
};
|
|
36
46
|
}
|
|
37
47
|
set(instant, direction) {
|
|
48
|
+
this._blockSearchesRan = 0;
|
|
49
|
+
this._subiteratorsCreated = 0;
|
|
38
50
|
this._direction = direction;
|
|
39
|
-
this._searchRange = SearchRange.create(instant, direction,
|
|
51
|
+
this._searchRange = SearchRange.create(instant, direction, this._options.blockScanHours).optimize(this._blockBuilder);
|
|
40
52
|
this._iterators = [];
|
|
41
53
|
this._nextIterator = null;
|
|
42
54
|
this._updateIteratorsForSearchRange();
|
|
@@ -58,19 +70,23 @@ export class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
|
58
70
|
throw new Error("Search range not set.");
|
|
59
71
|
let bestIterator = this._getBestOfCurrentIterators();
|
|
60
72
|
let bestValue = bestIterator?.peek() ?? null;
|
|
61
|
-
//
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
73
|
+
// Limit the maximum number of searches, otherwise if there are more blocks
|
|
74
|
+
// available, but they're super far off in the future, and next time peek()
|
|
75
|
+
// is called once we've made it to that huge gap is gonna be really slow.
|
|
76
|
+
//
|
|
77
|
+
// While it's great that in theory this algorithm works to infinity, and is
|
|
78
|
+
// fairly efficient in most cases, in reality, trainquery-melbourne (or any
|
|
79
|
+
// other consumer) won't want to tradeoff the possibility of a single tricky
|
|
80
|
+
// request taking down the server for exact correctness.
|
|
81
|
+
//
|
|
82
|
+
// There's probably further optimisations I could make in this algorithm to
|
|
83
|
+
// allow this limit to be raised (to the point where it'll never matter in
|
|
84
|
+
// practice), but I doubt we'll ever want to remove it entirely.
|
|
85
|
+
const maxScans = this._options.maximumNumberOfScans;
|
|
71
86
|
while ((bestValue == null || !this._searchRange.includes(bestValue.instant)) &&
|
|
72
|
-
this._areMoreBlocksAvailable()
|
|
73
|
-
this.
|
|
87
|
+
this._areMoreBlocksAvailable() &&
|
|
88
|
+
(maxScans == null || this._blockSearchesRan < maxScans)) {
|
|
89
|
+
this._searchRange = this._searchRange.getNextWithDuration(this._options.blockScanHours);
|
|
74
90
|
this._updateIteratorsForSearchRange();
|
|
75
91
|
bestIterator = this._getBestOfCurrentIterators();
|
|
76
92
|
bestValue = bestIterator?.peek() ?? null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/scheduled-departures-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAG5F,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAI5F,MAAM,
|
|
1
|
+
{"version":3,"file":"scheduled-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/scheduled-departures-iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,17 @@ import type { TimezoneData } from "../config/timezone-data.js";
|
|
|
5
5
|
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
6
6
|
export declare class ZipperDeparturesIterator extends DeparturesIterator {
|
|
7
7
|
private readonly _iterators;
|
|
8
|
+
private readonly _iterationLimitHours;
|
|
8
9
|
private _direction;
|
|
9
10
|
private _nextIterator;
|
|
10
|
-
|
|
11
|
+
private _cutoff;
|
|
12
|
+
constructor(_iterators: DeparturesIterator[], _iterationLimitHours: number | null);
|
|
11
13
|
set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
12
14
|
peek(): DeparturesIteratorResult | null;
|
|
13
15
|
peekAtIterator(): DeparturesIterator | null;
|
|
14
16
|
take(): DeparturesIteratorResult;
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
|
|
17
|
+
private _determineNextIterator;
|
|
18
|
+
private _isCloser;
|
|
19
|
+
private _determineCutoff;
|
|
20
|
+
static forFeed(stopId: number, scheduledMovementsIndex: GtfsScheduledMovementsIndex, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData, iterationLimitHours: number | null): ZipperDeparturesIterator;
|
|
18
21
|
}
|
|
@@ -4,20 +4,25 @@ import { ScheduledDeparturesIterator } from "./scheduled-departures-iterator.js"
|
|
|
4
4
|
import { RealtimeDeparturesBlockIterator } from "./realtime-departures-block-iterator.js";
|
|
5
5
|
export class ZipperDeparturesIterator extends DeparturesIterator {
|
|
6
6
|
_iterators;
|
|
7
|
+
_iterationLimitHours;
|
|
7
8
|
_direction;
|
|
8
9
|
_nextIterator;
|
|
9
|
-
|
|
10
|
+
_cutoff;
|
|
11
|
+
constructor(_iterators, _iterationLimitHours) {
|
|
10
12
|
super();
|
|
11
13
|
this._iterators = _iterators;
|
|
14
|
+
this._iterationLimitHours = _iterationLimitHours;
|
|
12
15
|
this._direction = "forwards";
|
|
13
16
|
this._nextIterator = null;
|
|
17
|
+
this._cutoff = null;
|
|
14
18
|
}
|
|
15
19
|
set(instant, direction) {
|
|
16
20
|
this._direction = direction;
|
|
21
|
+
this._cutoff = this._determineCutoff(instant);
|
|
17
22
|
for (const iterator of this._iterators) {
|
|
18
23
|
iterator.set(instant, direction);
|
|
19
24
|
}
|
|
20
|
-
this._nextIterator = this.
|
|
25
|
+
this._nextIterator = this._determineNextIterator();
|
|
21
26
|
}
|
|
22
27
|
peek() {
|
|
23
28
|
return this._nextIterator?.peek() ?? null;
|
|
@@ -30,39 +35,56 @@ export class ZipperDeparturesIterator extends DeparturesIterator {
|
|
|
30
35
|
if (iterator == null)
|
|
31
36
|
throw new Error("Nothing to take.");
|
|
32
37
|
const value = iterator.take();
|
|
33
|
-
this._nextIterator = this.
|
|
38
|
+
this._nextIterator = this._determineNextIterator();
|
|
34
39
|
return value;
|
|
35
40
|
}
|
|
36
|
-
|
|
41
|
+
_determineNextIterator() {
|
|
42
|
+
const cutoff = this._cutoff;
|
|
37
43
|
let best = null;
|
|
38
44
|
let bestIterator = null;
|
|
39
45
|
for (const iterator of this._iterators) {
|
|
40
46
|
const nextValue = iterator.peek();
|
|
41
47
|
if (nextValue == null)
|
|
42
48
|
continue;
|
|
43
|
-
|
|
49
|
+
const nextInstant = nextValue.instant;
|
|
50
|
+
const better = best == null || this._isCloser(nextInstant, best.instant);
|
|
51
|
+
const afterCutoff = cutoff != null && this._isCloser(cutoff, nextInstant);
|
|
52
|
+
if (better && !afterCutoff) {
|
|
44
53
|
best = nextValue;
|
|
45
54
|
bestIterator = iterator;
|
|
46
55
|
}
|
|
47
56
|
}
|
|
48
57
|
return bestIterator;
|
|
49
58
|
}
|
|
50
|
-
|
|
59
|
+
_isCloser(a, b) {
|
|
51
60
|
if (this._direction === "forwards") {
|
|
52
|
-
return Temporal.Instant.compare(
|
|
61
|
+
return Temporal.Instant.compare(a, b) < 0;
|
|
53
62
|
}
|
|
54
63
|
else if (this._direction === "backwards") {
|
|
55
|
-
return Temporal.Instant.compare(
|
|
64
|
+
return Temporal.Instant.compare(a, b) > 0;
|
|
56
65
|
}
|
|
57
66
|
else {
|
|
58
67
|
assertNever(this._direction);
|
|
59
68
|
}
|
|
60
69
|
}
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
_determineCutoff(instant) {
|
|
71
|
+
if (this._iterationLimitHours == null)
|
|
72
|
+
return null;
|
|
73
|
+
if (this._direction === "forwards") {
|
|
74
|
+
return instant.add({ hours: this._iterationLimitHours });
|
|
75
|
+
}
|
|
76
|
+
else if (this._direction === "backwards") {
|
|
77
|
+
return instant.subtract({ hours: this._iterationLimitHours });
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
assertNever(this._direction);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
static forFeed(stopId, scheduledMovementsIndex, realtimeData, timezoneData, iterationLimitHours) {
|
|
84
|
+
const scheduled = ScheduledDeparturesIterator.tryBuild(stopId, scheduledMovementsIndex, realtimeData, timezoneData, iterationLimitHours);
|
|
63
85
|
const realtime = RealtimeDeparturesBlockIterator.tryBuild(stopId, realtimeData);
|
|
64
86
|
const iterators = [scheduled, realtime].filter(nonNull);
|
|
65
|
-
return new ZipperDeparturesIterator(iterators);
|
|
87
|
+
return new ZipperDeparturesIterator(iterators, iterationLimitHours);
|
|
66
88
|
}
|
|
67
89
|
}
|
|
68
90
|
//# sourceMappingURL=zipper-departures-iterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zipper-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/zipper-departures-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"zipper-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/zipper-departures-iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import type { GtfsSystem } from "./gtfs-system.js";
|
|
|
3
3
|
type GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> = {
|
|
4
4
|
readonly sourceId: string;
|
|
5
5
|
readonly gtfsSystem: GtfsSystem;
|
|
6
|
+
readonly departureIterationLimitHours: number | null;
|
|
6
7
|
buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
|
|
7
8
|
buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
|
|
8
9
|
buildTags: (tags: Set<number>) => CorequeryTagsClass;
|
|
@@ -15,6 +16,7 @@ type GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, Cor
|
|
|
15
16
|
export declare class GtfsServiceSource<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> implements ServiceSource<CorequeryDepartureClass, CorequeryServiceClass> {
|
|
16
17
|
readonly sourceId: string;
|
|
17
18
|
readonly gtfsSystem: GtfsSystem;
|
|
19
|
+
readonly departureIterationLimitHours: number | null;
|
|
18
20
|
private readonly _converter;
|
|
19
21
|
constructor(fields: GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass>);
|
|
20
22
|
getService(intrasourceId: string): Promise<CorequeryServiceClass | null>;
|
|
@@ -7,10 +7,12 @@ import { ServiceConversionIterator } from "./corequeryify/service-conversion-ite
|
|
|
7
7
|
export class GtfsServiceSource {
|
|
8
8
|
sourceId;
|
|
9
9
|
gtfsSystem;
|
|
10
|
+
departureIterationLimitHours;
|
|
10
11
|
_converter;
|
|
11
12
|
constructor(fields) {
|
|
12
13
|
this.sourceId = fields.sourceId;
|
|
13
14
|
this.gtfsSystem = fields.gtfsSystem;
|
|
15
|
+
this.departureIterationLimitHours = fields.departureIterationLimitHours;
|
|
14
16
|
this._converter = new ServiceConverter({
|
|
15
17
|
sourceId: fields.sourceId,
|
|
16
18
|
buildDeparture: fields.buildDeparture,
|
|
@@ -45,7 +47,7 @@ export class GtfsServiceSource {
|
|
|
45
47
|
}
|
|
46
48
|
getDeparturesIterator(stopId, instant, direction) {
|
|
47
49
|
const feed = this.gtfsSystem.requireFeed();
|
|
48
|
-
const iterator = feed.createDepartureIterator(stopId);
|
|
50
|
+
const iterator = feed.createDepartureIterator(stopId, this.departureIterationLimitHours);
|
|
49
51
|
iterator.set(instant, direction);
|
|
50
52
|
return new ServiceConversionIterator(iterator, this._converter, feed.timezoneData.timezone);
|
|
51
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-service-source.js","sourceRoot":"","sources":["../src/gtfs-service-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAalD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-service-source.js","sourceRoot":"","sources":["../src/gtfs-service-source.ts"],"names":[],"mappings":"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"}
|
package/dist/gtfs-system.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { LineGtfsIdMapping } from "./data/ids/line-gtfs-id-mapping.js";
|
|
|
4
4
|
import { StopGtfsIdMapping } from "./data/ids/stop-gtfs-id-mapping.js";
|
|
5
5
|
import { BonusLinesMapping } from "./data/route/bonus-lines-mapping.js";
|
|
6
6
|
import { LineRoutesMapping } from "./data/route/line-routes-mapping.js";
|
|
7
|
-
import type { GtfsScheduleParsingError } from "./parser/schedule/gtfs-schedule-parser.js";
|
|
7
|
+
import type { GtfsScheduleParsingError } from "./parser/schedule/gtfs-schedule-data-parser.js";
|
|
8
8
|
import type { RealtimeDataJson } from "./data/raw/realtime-data-json.js";
|
|
9
9
|
import type { GtfsFeedCsv } from "./data/raw/schedule-csvs.js";
|
|
10
10
|
export declare class GtfsSystem {
|
|
@@ -21,7 +21,7 @@ export declare class GtfsSystem {
|
|
|
21
21
|
static build(config: GtfsConfig): GtfsSystem;
|
|
22
22
|
getFeed(): GtfsFeed | null;
|
|
23
23
|
requireFeed(): GtfsFeed;
|
|
24
|
-
get realtimeParsingErrors(): import("./
|
|
24
|
+
get realtimeParsingErrors(): import("./parser/realtime/gtfs-trip-update-parser.js").GtfsTripUpdateParsingError[];
|
|
25
25
|
get scheduleParsingErrors(): GtfsScheduleParsingError[];
|
|
26
26
|
onNewScheduleData(scheduleCsvs: GtfsFeedCsv, realtimeJson: RealtimeDataJson): void;
|
|
27
27
|
onNewRealtimeData(realtimeJson: RealtimeDataJson): void;
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import "temporal-polyfill/global";
|
|
2
2
|
export * from "./config/index.js";
|
|
3
3
|
export * from "./data/index.js";
|
|
4
|
-
export * from "./departures/index.js";
|
|
5
|
-
export * from "./parser/index.js";
|
|
6
4
|
export * from "./gtfs-system.js";
|
|
7
5
|
export * from "./gtfs-service-source.js";
|
|
8
6
|
//# sourceMappingURL=index.js.map
|