corequery-gtfs 0.5.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/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/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 +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/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/schedule/gtfs-schedule-parser.js.map +0 -1
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"}
|
|
@@ -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 {
|
|
@@ -5,7 +5,7 @@ import type { BonusLinesMapping } from "../data/route/bonus-lines-mapping.js";
|
|
|
5
5
|
import type { LineRoutesMapping } from "../data/route/line-routes-mapping.js";
|
|
6
6
|
import type { RealtimeDataJson } from "../data/raw/realtime-data-json.js";
|
|
7
7
|
import { type GtfsRealtimeDataParsingError } from "./realtime/gtfs-realtime-data-parser.js";
|
|
8
|
-
import { type GtfsScheduleParsingError } from "./schedule/gtfs-schedule-parser.js";
|
|
8
|
+
import { type GtfsScheduleParsingError } from "./schedule/gtfs-schedule-data-parser.js";
|
|
9
9
|
import type { GtfsFeedCsv } from "../data/raw/schedule-csvs.js";
|
|
10
10
|
import type { TimezoneData } from "../config/timezone-data.js";
|
|
11
11
|
export declare class GtfsFeedParser {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { GtfsFeed } from "../data/gtfs-feed.js";
|
|
2
2
|
import { GtfsRealtimeDataParser, } from "./realtime/gtfs-realtime-data-parser.js";
|
|
3
|
-
import {
|
|
3
|
+
import { GtfsScheduleDataParser, } from "./schedule/gtfs-schedule-data-parser.js";
|
|
4
4
|
export class GtfsFeedParser {
|
|
5
5
|
_timezoneData;
|
|
6
6
|
_scheduleParser;
|
|
7
7
|
_realtimeParser;
|
|
8
8
|
constructor(lineRoutesMapping, bonusLinesMapping, _timezoneData, _onScheduleParsingError, _onRealtimeParsingError) {
|
|
9
9
|
this._timezoneData = _timezoneData;
|
|
10
|
-
this._scheduleParser = new
|
|
10
|
+
this._scheduleParser = new GtfsScheduleDataParser(lineRoutesMapping, bonusLinesMapping, _onScheduleParsingError);
|
|
11
11
|
this._realtimeParser = new GtfsRealtimeDataParser(_timezoneData.timezone, _onRealtimeParsingError);
|
|
12
12
|
}
|
|
13
13
|
parse(scheduleCsvs, realtimeJson, lineGtfsIdMapping, stopGtfsIdMapping) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-feed-parser.js","sourceRoot":"","sources":["../../src/parser/gtfs-feed-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"gtfs-feed-parser.js","sourceRoot":"","sources":["../../src/parser/gtfs-feed-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AAIjD,MAAM,OAAO,cAAc;IAON;IANF,eAAe,CAAyB;IACxC,eAAe,CAAyB;IAEzD,YACE,iBAAoC,EACpC,iBAAoC,EACnB,aAA2B,EAC5C,uBAAkE,EAClE,uBAAsE;QAFrD,kBAAa,GAAb,aAAa,CAAc;QAI5C,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAC/C,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,CACxB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAC/C,aAAa,CAAC,QAAQ,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,CACH,YAAyB,EACzB,YAA8B,EAC9B,iBAAoC,EACpC,iBAAoC;QAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAC7C,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAC7C,YAAY,EACZ,YAAY,EACZ,iBAAiB,CAClB,CAAC;QAEF,OAAO,QAAQ,CAAC,mBAAmB,CACjC,YAAY,EACZ,YAAY,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,yBAAyB,CACvB,QAAkB,EAClB,YAA8B,EAC9B,iBAAoC;QAEpC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAChD,YAAY,EACZ,QAAQ,CAAC,YAAY,EACrB,iBAAiB,CAClB,CAAC;QAEF,OAAO,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -15,37 +15,37 @@ export declare class GtfsTripUpdateParser {
|
|
|
15
15
|
private _parseUpdatedTime;
|
|
16
16
|
}
|
|
17
17
|
export type GtfsTripUpdateParsingError = UnsupportedTripUpdateScheduleRelationshipError | GtfsTripUpdateTripIdentificationError | NoStopTimeUpdateFieldGivenError | UnsupportedStopTimeUpdateEntryScheduleRelationshipError | NecessaryFieldNotInStopTimeUpdateEntryError | StopTimeUpdateEntryReferencesNonExistentStopSequenceError | MultipleStopTimeUpdateEntriesForSameMovementIndexError | StopTimeUpdateEntryReferencesUnmappedStopIdError | StopTimeUpdateEntryChangesStopError | StopTimeUpdateEntryChangesPlatformError | NeitherTimeNorDelayGivenError | TimeAndDelayDisagreeWithEachOtherError | NeitherArrivalNorDepartureGivenError;
|
|
18
|
-
export declare class UnsupportedTripUpdateScheduleRelationshipError
|
|
18
|
+
export declare class UnsupportedTripUpdateScheduleRelationshipError {
|
|
19
19
|
readonly tripUpdate: TripUpdateJson;
|
|
20
20
|
readonly type = "unsupported-trip-update-schedule-relationship";
|
|
21
21
|
constructor(tripUpdate: TripUpdateJson);
|
|
22
22
|
}
|
|
23
|
-
export declare class NoStopTimeUpdateFieldGivenError
|
|
23
|
+
export declare class NoStopTimeUpdateFieldGivenError {
|
|
24
24
|
readonly tripUpdate: TripUpdateJson;
|
|
25
25
|
readonly type = "no-stop-time-update-field-given";
|
|
26
26
|
constructor(tripUpdate: TripUpdateJson);
|
|
27
27
|
}
|
|
28
|
-
export declare class UnsupportedStopTimeUpdateEntryScheduleRelationshipError
|
|
28
|
+
export declare class UnsupportedStopTimeUpdateEntryScheduleRelationshipError {
|
|
29
29
|
readonly tripUpdate: TripUpdateJson;
|
|
30
30
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
31
31
|
readonly type = "unsupported-stop-time-update-entry-schedule-relationship";
|
|
32
32
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson);
|
|
33
33
|
}
|
|
34
|
-
export declare class NecessaryFieldNotInStopTimeUpdateEntryError
|
|
34
|
+
export declare class NecessaryFieldNotInStopTimeUpdateEntryError {
|
|
35
35
|
readonly tripUpdate: TripUpdateJson;
|
|
36
36
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
37
37
|
readonly field: "stopSequence" | "stopId";
|
|
38
38
|
readonly type = "necessary-field-not-in-stop-time-update-entry";
|
|
39
39
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, field: "stopSequence" | "stopId");
|
|
40
40
|
}
|
|
41
|
-
export declare class StopTimeUpdateEntryReferencesNonExistentStopSequenceError
|
|
41
|
+
export declare class StopTimeUpdateEntryReferencesNonExistentStopSequenceError {
|
|
42
42
|
readonly tripUpdate: TripUpdateJson;
|
|
43
43
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
44
44
|
readonly matchedTrip: GtfsScheduledTrip;
|
|
45
45
|
readonly type = "stop-time-update-entry-references-non-existent-stop-sequence";
|
|
46
46
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, matchedTrip: GtfsScheduledTrip);
|
|
47
47
|
}
|
|
48
|
-
export declare class MultipleStopTimeUpdateEntriesForSameMovementIndexError
|
|
48
|
+
export declare class MultipleStopTimeUpdateEntriesForSameMovementIndexError {
|
|
49
49
|
readonly tripUpdate: TripUpdateJson;
|
|
50
50
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
51
51
|
readonly matchedTrip: GtfsScheduledTrip;
|
|
@@ -53,13 +53,13 @@ export declare class MultipleStopTimeUpdateEntriesForSameMovementIndexError exte
|
|
|
53
53
|
readonly type = "multiple-stop-time-update-entries-for-same-movement-index";
|
|
54
54
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, matchedTrip: GtfsScheduledTrip, matchedMovementIndex: number);
|
|
55
55
|
}
|
|
56
|
-
export declare class StopTimeUpdateEntryReferencesUnmappedStopIdError
|
|
56
|
+
export declare class StopTimeUpdateEntryReferencesUnmappedStopIdError {
|
|
57
57
|
readonly tripUpdate: TripUpdateJson;
|
|
58
58
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
59
59
|
readonly type = "stop-time-update-entry-references-unmapped-stop-id";
|
|
60
60
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson);
|
|
61
61
|
}
|
|
62
|
-
export declare class StopTimeUpdateEntryChangesStopError
|
|
62
|
+
export declare class StopTimeUpdateEntryChangesStopError {
|
|
63
63
|
readonly tripUpdate: TripUpdateJson;
|
|
64
64
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
65
65
|
readonly matchedTrip: GtfsScheduledTrip;
|
|
@@ -67,7 +67,7 @@ export declare class StopTimeUpdateEntryChangesStopError extends Error {
|
|
|
67
67
|
readonly type = "stop-time-update-entry-changes-stop";
|
|
68
68
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, matchedTrip: GtfsScheduledTrip, matchedMovementIndex: number);
|
|
69
69
|
}
|
|
70
|
-
export declare class StopTimeUpdateEntryChangesPlatformError
|
|
70
|
+
export declare class StopTimeUpdateEntryChangesPlatformError {
|
|
71
71
|
readonly tripUpdate: TripUpdateJson;
|
|
72
72
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
73
73
|
readonly matchedTrip: GtfsScheduledTrip;
|
|
@@ -75,14 +75,14 @@ export declare class StopTimeUpdateEntryChangesPlatformError extends Error {
|
|
|
75
75
|
readonly type = "stop-time-update-entry-changes-platform";
|
|
76
76
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, matchedTrip: GtfsScheduledTrip, matchedMovementIndex: number);
|
|
77
77
|
}
|
|
78
|
-
export declare class NeitherTimeNorDelayGivenError
|
|
78
|
+
export declare class NeitherTimeNorDelayGivenError {
|
|
79
79
|
readonly tripUpdate: TripUpdateJson;
|
|
80
80
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
81
81
|
readonly updatedTime: UpdatedTimeJson;
|
|
82
82
|
readonly type = "neither-time-nor-delay-given";
|
|
83
83
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, updatedTime: UpdatedTimeJson);
|
|
84
84
|
}
|
|
85
|
-
export declare class TimeAndDelayDisagreeWithEachOtherError
|
|
85
|
+
export declare class TimeAndDelayDisagreeWithEachOtherError {
|
|
86
86
|
readonly tripUpdate: TripUpdateJson;
|
|
87
87
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
88
88
|
readonly updatedTime: UpdatedTimeJson;
|
|
@@ -91,7 +91,7 @@ export declare class TimeAndDelayDisagreeWithEachOtherError extends Error {
|
|
|
91
91
|
readonly type = "time-and-delay-disagree-with-each-other";
|
|
92
92
|
constructor(tripUpdate: TripUpdateJson, stopTimeUpdateEntry: StopTimeUpdateJson, updatedTime: UpdatedTimeJson, parsedFromTime: Temporal.Instant, parsedFromDelay: Temporal.Instant);
|
|
93
93
|
}
|
|
94
|
-
export declare class NeitherArrivalNorDepartureGivenError
|
|
94
|
+
export declare class NeitherArrivalNorDepartureGivenError {
|
|
95
95
|
readonly tripUpdate: TripUpdateJson;
|
|
96
96
|
readonly stopTimeUpdateEntry: StopTimeUpdateJson;
|
|
97
97
|
readonly type = "neither-arrival-nor-departure-given";
|