corequery-gtfs 0.7.0 → 0.9.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/conversion/corequery-intrasource-id.js.map +1 -0
- package/dist/{corequeryify → conversion}/service-conversion-iterator.d.ts +1 -1
- package/dist/conversion/service-conversion-iterator.js.map +1 -0
- package/dist/{corequeryify → conversion}/service-converter.d.ts +13 -10
- package/dist/{corequeryify → conversion}/service-converter.js +32 -39
- package/dist/conversion/service-converter.js.map +1 -0
- package/dist/data/gtfs-feed.d.ts +6 -2
- package/dist/data/gtfs-feed.js +26 -2
- package/dist/data/gtfs-feed.js.map +1 -1
- package/dist/data/gtfs-realtime-data.d.ts +9 -1
- package/dist/data/gtfs-realtime-data.js +24 -2
- package/dist/data/gtfs-realtime-data.js.map +1 -1
- package/dist/data/gtfs-realtime-transfer.d.ts +12 -0
- package/dist/data/gtfs-realtime-transfer.js +21 -0
- package/dist/data/gtfs-realtime-transfer.js.map +1 -0
- package/dist/data/gtfs-schedule-data.d.ts +6 -1
- package/dist/data/gtfs-schedule-data.js +15 -3
- package/dist/data/gtfs-schedule-data.js.map +1 -1
- package/dist/data/gtfs-scheduled-trip.d.ts +0 -6
- package/dist/data/gtfs-scheduled-trip.js +0 -14
- package/dist/data/gtfs-scheduled-trip.js.map +1 -1
- package/dist/data/gtfs-transfer-mapping.d.ts +15 -0
- package/dist/data/gtfs-transfer-mapping.js +45 -0
- package/dist/data/gtfs-transfer-mapping.js.map +1 -0
- package/dist/data/gtfs-transfer.d.ts +18 -0
- package/dist/data/gtfs-transfer.js +20 -0
- package/dist/data/gtfs-transfer.js.map +1 -0
- package/dist/departures/{departures-block-iterator.d.ts → iterator/departures-block-iterator.d.ts} +2 -2
- package/dist/departures/iterator/departures-block-iterator.js.map +1 -0
- package/dist/departures/{departures-iterator.d.ts → iterator/departures-iterator.d.ts} +4 -4
- package/dist/departures/iterator/departures-iterator.js.map +1 -0
- package/dist/departures/iterator/filtering-departures-iterator.d.ts +11 -0
- package/dist/departures/iterator/filtering-departures-iterator.js +30 -0
- package/dist/departures/iterator/filtering-departures-iterator.js.map +1 -0
- package/dist/departures/{realtime-departures-block-iterator.d.ts → iterator/realtime-departures-block-iterator.d.ts} +3 -4
- package/dist/departures/iterator/realtime-departures-block-iterator.js +23 -0
- package/dist/departures/iterator/realtime-departures-block-iterator.js.map +1 -0
- package/dist/departures/{scheduled-departures-block-iterator.d.ts → iterator/scheduled-departures-block-iterator.d.ts} +3 -4
- package/dist/departures/iterator/scheduled-departures-block-iterator.js +30 -0
- package/dist/departures/iterator/scheduled-departures-block-iterator.js.map +1 -0
- package/dist/departures/{scheduled-departures-iterator.d.ts → iterator/scheduled-departures-iterator.d.ts} +5 -5
- package/dist/departures/{scheduled-departures-iterator.js → iterator/scheduled-departures-iterator.js} +2 -2
- package/dist/departures/iterator/scheduled-departures-iterator.js.map +1 -0
- package/dist/departures/{zipper-departures-iterator.d.ts → iterator/zipper-departures-iterator.d.ts} +4 -4
- package/dist/departures/iterator/zipper-departures-iterator.js.map +1 -0
- package/dist/gtfs-service-source.d.ts +8 -8
- package/dist/gtfs-service-source.js +4 -3
- package/dist/gtfs-service-source.js.map +1 -1
- package/dist/gtfs-system.js +11 -23
- package/dist/gtfs-system.js.map +1 -1
- package/dist/parser/gtfs-feed-parser.d.ts +12 -3
- package/dist/parser/gtfs-feed-parser.js +19 -9
- package/dist/parser/gtfs-feed-parser.js.map +1 -1
- package/dist/parser/realtime/gtfs-realtime-data-parser.d.ts +9 -2
- package/dist/parser/realtime/gtfs-realtime-data-parser.js +32 -5
- package/dist/parser/realtime/gtfs-realtime-data-parser.js.map +1 -1
- package/dist/parser/realtime/gtfs-trip-update-parser.d.ts +8 -2
- package/dist/parser/realtime/gtfs-trip-update-parser.js +12 -11
- package/dist/parser/realtime/gtfs-trip-update-parser.js.map +1 -1
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.d.ts +4 -1
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js +2 -2
- package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js.map +1 -1
- package/dist/parser/schedule/gtfs-calendar-parser.d.ts +4 -1
- package/dist/parser/schedule/gtfs-calendar-parser.js +2 -2
- package/dist/parser/schedule/gtfs-calendar-parser.js.map +1 -1
- package/dist/parser/schedule/gtfs-route-matcher.d.ts +7 -2
- package/dist/parser/schedule/gtfs-route-matcher.js +8 -6
- package/dist/parser/schedule/gtfs-route-matcher.js.map +1 -1
- package/dist/parser/schedule/gtfs-schedule-data-parser.d.ts +9 -2
- package/dist/parser/schedule/gtfs-schedule-data-parser.js +14 -6
- package/dist/parser/schedule/gtfs-schedule-data-parser.js.map +1 -1
- package/dist/parser/schedule/gtfs-stop-time-normaliser.d.ts +4 -1
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js +2 -2
- package/dist/parser/schedule/gtfs-stop-time-normaliser.js.map +1 -1
- package/dist/parser/schedule/{gtfs-transfer-connector.d.ts → gtfs-transfer-parser.d.ts} +10 -4
- package/dist/parser/schedule/{gtfs-transfer-connector.js → gtfs-transfer-parser.js} +42 -24
- package/dist/parser/schedule/gtfs-transfer-parser.js.map +1 -0
- package/dist/parser/schedule/gtfs-trip-parser.d.ts +15 -6
- package/dist/parser/schedule/gtfs-trip-parser.js +32 -25
- package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -1
- package/package.json +1 -1
- package/dist/corequeryify/corequery-intrasource-id.js.map +0 -1
- package/dist/corequeryify/service-conversion-iterator.js.map +0 -1
- package/dist/corequeryify/service-converter.js.map +0 -1
- package/dist/departures/departures-block-iterator.js.map +0 -1
- package/dist/departures/departures-iterator.js.map +0 -1
- package/dist/departures/realtime-departures-block-iterator.js +0 -40
- package/dist/departures/realtime-departures-block-iterator.js.map +0 -1
- package/dist/departures/scheduled-departures-block-iterator.js +0 -55
- package/dist/departures/scheduled-departures-block-iterator.js.map +0 -1
- package/dist/departures/scheduled-departures-iterator.js.map +0 -1
- package/dist/departures/zipper-departures-iterator.js.map +0 -1
- package/dist/parser/schedule/gtfs-transfer-connector.js.map +0 -1
- /package/dist/{corequeryify → conversion}/corequery-intrasource-id.d.ts +0 -0
- /package/dist/{corequeryify → conversion}/corequery-intrasource-id.js +0 -0
- /package/dist/{corequeryify → conversion}/service-conversion-iterator.js +0 -0
- /package/dist/departures/{departures-block-iterator.js → iterator/departures-block-iterator.js} +0 -0
- /package/dist/departures/{departures-iterator.js → iterator/departures-iterator.js} +0 -0
- /package/dist/departures/{zipper-departures-iterator.js → iterator/zipper-departures-iterator.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corequery-intrasource-id.js","sourceRoot":"","sources":["../../src/conversion/corequery-intrasource-id.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAsB;IAEtB;IACA;IAFX,YACW,UAAkB,EAClB,UAA8B;QAD9B,eAAU,GAAV,UAAU,CAAQ;QAClB,eAAU,GAAV,UAAU,CAAoB;IACtC,CAAC;IAEJ,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAa;QACxB,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,gBAAgB,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7D,OAAO,IAAI,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DeparturesIterator } from "../departures/departures-iterator.js";
|
|
1
|
+
import type { DeparturesIterator } from "../departures/iterator/departures-iterator.js";
|
|
2
2
|
import type { ServiceConverter } from "./service-converter.js";
|
|
3
3
|
export declare class ServiceConversionIterator<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> {
|
|
4
4
|
private readonly _iterator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-conversion-iterator.js","sourceRoot":"","sources":["../../src/conversion/service-conversion-iterator.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAiBjB;IAEA;IAaA;IAtBX,uBAAuB,CAAiC;IAEhE;IACE,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,oCAAoC;IACnB,SAA6B,EAE7B,UAShB;IAED,wEAAwE;IACxE,yEAAyE;IACxD,SAAiB;QAfjB,cAAS,GAAT,SAAS,CAAoB;QAE7B,eAAU,GAAV,UAAU,CAS1B;QAIgB,cAAS,GAAT,SAAS,CAAQ;QAElC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACtC,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC;QACtC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAEpC,yEAAyE;QACzE,iDAAiD;QACjD,MAAM,cAAc,GAClB,IAAI,CAAC,uBAAuB,IAAI,IAAI;YAClC,CAAC,CAAC,IAAI,CAAC,uBAAuB;YAC9B,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9D,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QAEpC,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import type { DepartureFields, ServiceFields, ServiceOriginatingMovementFields, ServicePassingMovementFields, ServiceRegularMovementFields, ServiceTerminatingMovementFields, ServiceConnectionFields } from "../corequery-types.js";
|
|
2
2
|
import { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
|
-
import type { DeparturesIteratorResult } from "../departures/departures-iterator.js";
|
|
3
|
+
import type { DeparturesIteratorResult } from "../departures/iterator/departures-iterator.js";
|
|
4
4
|
import { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
5
|
+
import type { GtfsSystem } from "../gtfs-system.js";
|
|
5
6
|
export type ServiceConverterFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> = {
|
|
6
7
|
readonly sourceId: string;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
readonly gtfsSystem: GtfsSystem;
|
|
9
|
+
readonly buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
|
|
10
|
+
readonly buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
|
|
11
|
+
readonly buildTags: (tags: Set<number>) => CorequeryTagsClass;
|
|
12
|
+
readonly buildServiceOriginatingMovement: (fields: ServiceOriginatingMovementFields) => CorequeryServiceOriginatingMovementClass;
|
|
13
|
+
readonly buildServiceRegularMovement: (fields: ServiceRegularMovementFields) => CorequeryServiceRegularMovementClass;
|
|
14
|
+
readonly buildServiceTerminatingMovement: (fields: ServiceTerminatingMovementFields) => CorequeryServiceTerminatingMovementClass;
|
|
15
|
+
readonly buildServicePassingMovement: (fields: ServicePassingMovementFields) => CorequeryServicePassingMovementClass;
|
|
16
|
+
readonly buildServiceConnection: (fields: ServiceConnectionFields) => CorequeryServiceConnectionClass;
|
|
15
17
|
};
|
|
16
18
|
export declare class ServiceConverter<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> {
|
|
17
19
|
private readonly _sourceId;
|
|
20
|
+
private readonly _gtfsSystem;
|
|
18
21
|
private readonly _buildDeparture;
|
|
19
22
|
private readonly _buildService;
|
|
20
23
|
private readonly _buildTags;
|
|
@@ -29,5 +32,5 @@ export declare class ServiceConverter<CorequeryDepartureClass, CorequeryServiceC
|
|
|
29
32
|
convertUpdatedTrip(trip: GtfsUpdatedTrip): CorequeryServiceClass;
|
|
30
33
|
private _convertScheduledTripMovement;
|
|
31
34
|
private _convertUpdatedTripMovement;
|
|
32
|
-
private
|
|
35
|
+
private _convertConnections;
|
|
33
36
|
}
|
|
@@ -2,8 +2,10 @@ import { assertNever } from "@dan-schel/js-utils";
|
|
|
2
2
|
import { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
3
|
import { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
4
4
|
import { CorequeryIntrasourceId } from "./corequery-intrasource-id.js";
|
|
5
|
+
import { GtfsEntireVehicleFormsServiceTransfer } from "../data/gtfs-transfer.js";
|
|
5
6
|
export class ServiceConverter {
|
|
6
7
|
_sourceId;
|
|
8
|
+
_gtfsSystem;
|
|
7
9
|
_buildDeparture;
|
|
8
10
|
_buildService;
|
|
9
11
|
_buildTags;
|
|
@@ -14,6 +16,7 @@ export class ServiceConverter {
|
|
|
14
16
|
_buildServiceConnection;
|
|
15
17
|
constructor(fields) {
|
|
16
18
|
this._sourceId = fields.sourceId;
|
|
19
|
+
this._gtfsSystem = fields.gtfsSystem;
|
|
17
20
|
this._buildDeparture = fields.buildDeparture;
|
|
18
21
|
this._buildService = fields.buildService;
|
|
19
22
|
this._buildTags = fields.buildTags;
|
|
@@ -55,17 +58,7 @@ export class ServiceConverter {
|
|
|
55
58
|
liveDataType: "scheduled",
|
|
56
59
|
movements: trip.movements.map((m) => this._convertScheduledTripMovement(m, serviceDay, timezone)),
|
|
57
60
|
isCancelled: false,
|
|
58
|
-
|
|
59
|
-
// running, though it'd be great if that wasn't the converter's job. Maybe
|
|
60
|
-
// we should pass in another param for `upheldConnections` or something.
|
|
61
|
-
// In the service source after we call GtfsFeed#getTrip maybe we should
|
|
62
|
-
// call a second GtfsFeed#getUpheldConnectionsForTrip method so that the
|
|
63
|
-
// GtfsFeed can decide looking at the schedule and realtime data together
|
|
64
|
-
// which connections are running, and then it can model that however it
|
|
65
|
-
// wants. (Probably remove the `nextTrip` and `previousTrip` properties
|
|
66
|
-
// from trips, and just store transfers in an array in the feed, or in the
|
|
67
|
-
// scheduled/realtime data?)
|
|
68
|
-
connections: this._convertScheduledTripConnections(trip, serviceDay),
|
|
61
|
+
connections: this._convertConnections(trip, serviceDay),
|
|
69
62
|
});
|
|
70
63
|
}
|
|
71
64
|
convertUpdatedTrip(trip) {
|
|
@@ -79,9 +72,7 @@ export class ServiceConverter {
|
|
|
79
72
|
liveDataType: "updated",
|
|
80
73
|
movements: trip.movements.map((m) => this._convertUpdatedTripMovement(m)),
|
|
81
74
|
isCancelled: trip.isCancelled,
|
|
82
|
-
|
|
83
|
-
// given in the schedule is still running!
|
|
84
|
-
connections: this._convertScheduledTripConnections(trip.scheduledTrip, trip.serviceDay),
|
|
75
|
+
connections: this._convertConnections(trip, trip.serviceDay),
|
|
85
76
|
});
|
|
86
77
|
}
|
|
87
78
|
_convertScheduledTripMovement(movement, serviceDay, timezone) {
|
|
@@ -204,31 +195,33 @@ export class ServiceConverter {
|
|
|
204
195
|
assertNever(movement);
|
|
205
196
|
}
|
|
206
197
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
198
|
+
_convertConnections(trip, serviceDay) {
|
|
199
|
+
const feed = this._gtfsSystem.requireFeed();
|
|
200
|
+
return feed
|
|
201
|
+
.getUpheldTransfersForTrip(trip.gtfsTripId, serviceDay)
|
|
202
|
+
.map((transfer) => {
|
|
203
|
+
if (transfer instanceof GtfsEntireVehicleFormsServiceTransfer) {
|
|
204
|
+
const fromMe = transfer.fromTripId === trip.gtfsTripId;
|
|
205
|
+
const otherTripId = fromMe ? transfer.toTripId : transfer.fromTripId;
|
|
206
|
+
const otherTrip = feed.requireTrip(otherTripId, serviceDay);
|
|
207
|
+
// Note: We don't need to check if the other trip is cancelled now,
|
|
208
|
+
// since the transfer would be broken already in that case.
|
|
209
|
+
const isid = new CorequeryIntrasourceId(otherTripId, serviceDay);
|
|
210
|
+
const myFinalMovementIndex = trip.movements.length - 1;
|
|
211
|
+
const otherFinalMovementIndex = otherTrip.movements.length;
|
|
212
|
+
return this._buildServiceConnection({
|
|
213
|
+
type: "entire-vehicle-forms-service",
|
|
214
|
+
direction: fromMe ? "to-other" : "from-other",
|
|
215
|
+
otherServiceSourceId: this._sourceId,
|
|
216
|
+
otherServiceIntrasourceId: isid.toString(),
|
|
217
|
+
movementIndex: fromMe ? myFinalMovementIndex : 0,
|
|
218
|
+
otherServiceMovementIndex: fromMe ? 0 : otherFinalMovementIndex,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
assertNever(transfer);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
232
225
|
}
|
|
233
226
|
}
|
|
234
227
|
//# sourceMappingURL=service-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-converter.js","sourceRoot":"","sources":["../../src/conversion/service-converter.ts"],"names":[],"mappings":"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"}
|
package/dist/data/gtfs-feed.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { TimezoneData } from "../config/timezone-data.js";
|
|
2
|
+
import { FilteringDeparturesIterator } from "../departures/iterator/filtering-departures-iterator.js";
|
|
2
3
|
import { GtfsScheduledMovementsIndex } from "../departures/gtfs-scheduled-movements-index.js";
|
|
3
|
-
import { ZipperDeparturesIterator } from "../departures/zipper-departures-iterator.js";
|
|
4
4
|
import { GtfsRealtimeData } from "./gtfs-realtime-data.js";
|
|
5
5
|
import { GtfsScheduleData } from "./gtfs-schedule-data.js";
|
|
6
6
|
import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
|
|
7
|
+
import type { GtfsTransfer } from "./gtfs-transfer.js";
|
|
7
8
|
import type { GtfsUpdatedTrip } from "./gtfs-updated-trip.js";
|
|
8
9
|
export declare class GtfsFeed {
|
|
9
10
|
readonly scheduleData: GtfsScheduleData;
|
|
@@ -15,5 +16,8 @@ export declare class GtfsFeed {
|
|
|
15
16
|
static fromNewScheduleData(scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData): GtfsFeed;
|
|
16
17
|
withUpdatedRealtimeData(realtimeData: GtfsRealtimeData): GtfsFeed;
|
|
17
18
|
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip | null;
|
|
18
|
-
|
|
19
|
+
requireTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip;
|
|
20
|
+
getUpheldTransfersForTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsTransfer[];
|
|
21
|
+
createDepartureIterator(stopId: number, iterationLimitHours: number | null): FilteringDeparturesIterator;
|
|
22
|
+
private _isArrivalWhichContinues;
|
|
19
23
|
}
|
package/dist/data/gtfs-feed.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { FilteringDeparturesIterator } from "../departures/iterator/filtering-departures-iterator.js";
|
|
1
2
|
import { GtfsScheduledMovementsIndex } from "../departures/gtfs-scheduled-movements-index.js";
|
|
2
|
-
import { ZipperDeparturesIterator } from "../departures/zipper-departures-iterator.js";
|
|
3
|
+
import { ZipperDeparturesIterator } from "../departures/iterator/zipper-departures-iterator.js";
|
|
3
4
|
import { GtfsRealtimeData } from "./gtfs-realtime-data.js";
|
|
4
5
|
import { GtfsScheduleData } from "./gtfs-schedule-data.js";
|
|
5
6
|
export class GtfsFeed {
|
|
@@ -38,8 +39,31 @@ export class GtfsFeed {
|
|
|
38
39
|
}
|
|
39
40
|
return null;
|
|
40
41
|
}
|
|
42
|
+
requireTrip(gtfsTripId, serviceDay) {
|
|
43
|
+
const trip = this.getTrip(gtfsTripId, serviceDay);
|
|
44
|
+
if (trip == null) {
|
|
45
|
+
throw new Error(`No trip "${gtfsTripId}" on ${serviceDay.toString()}.`);
|
|
46
|
+
}
|
|
47
|
+
return trip;
|
|
48
|
+
}
|
|
49
|
+
getUpheldTransfersForTrip(gtfsTripId, serviceDay) {
|
|
50
|
+
const scheduled = this.scheduleData.getTransfersForTrip(gtfsTripId);
|
|
51
|
+
const broken = this.realtimeData.getBrokenTransfersForTrip(gtfsTripId, serviceDay);
|
|
52
|
+
const added = this.realtimeData.getAddedTransfersForTrip(gtfsTripId, serviceDay);
|
|
53
|
+
return [
|
|
54
|
+
...scheduled.filter((x) => !broken.some((b) => b.transfer.equals(x))),
|
|
55
|
+
...added.map((x) => x.transfer),
|
|
56
|
+
];
|
|
57
|
+
}
|
|
41
58
|
createDepartureIterator(stopId, iterationLimitHours) {
|
|
42
|
-
return ZipperDeparturesIterator.forFeed(stopId, this.scheduledMovementsIndex, this.realtimeData, this.timezoneData, iterationLimitHours);
|
|
59
|
+
return new FilteringDeparturesIterator(ZipperDeparturesIterator.forFeed(stopId, this.scheduledMovementsIndex, this.realtimeData, this.timezoneData, iterationLimitHours), (result) => !this._isArrivalWhichContinues(result));
|
|
60
|
+
}
|
|
61
|
+
_isArrivalWhichContinues(result) {
|
|
62
|
+
if (result.movement.type !== "terminating")
|
|
63
|
+
return false;
|
|
64
|
+
const transfers = this.getUpheldTransfersForTrip(result.trip.gtfsTripId, result.serviceDay);
|
|
65
|
+
return transfers.some((x) => x.type === "entire-vehicle-forms-service" &&
|
|
66
|
+
x.fromTripId === result.trip.gtfsTripId);
|
|
43
67
|
}
|
|
44
68
|
}
|
|
45
69
|
//# sourceMappingURL=gtfs-feed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
import type { GtfsAddedTransfer, GtfsBrokenTransfer } from "./gtfs-realtime-transfer.js";
|
|
1
2
|
import type { GtfsUpdatedTrip } from "./gtfs-updated-trip.js";
|
|
2
3
|
export declare class GtfsRealtimeData {
|
|
3
4
|
private readonly _updatedTrips;
|
|
5
|
+
private readonly _brokenTransfers;
|
|
6
|
+
private readonly _addedTransfers;
|
|
4
7
|
private readonly _tripsByScheduledTripId;
|
|
8
|
+
private readonly _brokenTransfersMapping;
|
|
9
|
+
private readonly _addedTransfersMapping;
|
|
5
10
|
static readonly empty: GtfsRealtimeData;
|
|
6
|
-
constructor(_updatedTrips: readonly GtfsUpdatedTrip[]);
|
|
11
|
+
constructor(_updatedTrips: readonly GtfsUpdatedTrip[], _brokenTransfers: readonly GtfsBrokenTransfer[], _addedTransfers: readonly GtfsAddedTransfer[]);
|
|
7
12
|
allTrips(): readonly GtfsUpdatedTrip[];
|
|
8
13
|
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsUpdatedTrip | null;
|
|
9
14
|
getForScheduledTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsUpdatedTrip | null;
|
|
15
|
+
getBrokenTransfersForTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): readonly GtfsBrokenTransfer[];
|
|
16
|
+
getAddedTransfersForTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): readonly GtfsAddedTransfer[];
|
|
17
|
+
static fromTrips(trips: readonly GtfsUpdatedTrip[]): GtfsRealtimeData;
|
|
10
18
|
}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
import { GtfsTransferMapping } from "./gtfs-transfer-mapping.js";
|
|
1
2
|
export class GtfsRealtimeData {
|
|
2
3
|
_updatedTrips;
|
|
4
|
+
_brokenTransfers;
|
|
5
|
+
_addedTransfers;
|
|
3
6
|
_tripsByScheduledTripId;
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
_brokenTransfersMapping;
|
|
8
|
+
_addedTransfersMapping;
|
|
9
|
+
static empty = new GtfsRealtimeData([], [], []);
|
|
10
|
+
constructor(_updatedTrips, _brokenTransfers, _addedTransfers) {
|
|
6
11
|
this._updatedTrips = _updatedTrips;
|
|
12
|
+
this._brokenTransfers = _brokenTransfers;
|
|
13
|
+
this._addedTransfers = _addedTransfers;
|
|
7
14
|
this._tripsByScheduledTripId = new Map(_updatedTrips.map((trip) => [trip.scheduledTrip.gtfsTripId, trip]));
|
|
15
|
+
this._brokenTransfersMapping = GtfsTransferMapping.build(_brokenTransfers, (x) => x.transfer.getInvolvedTripIds());
|
|
16
|
+
this._addedTransfersMapping = GtfsTransferMapping.build(_addedTransfers, (x) => x.transfer.getInvolvedTripIds());
|
|
8
17
|
}
|
|
9
18
|
// Or (GtfsUpdatedTrip | GtfsAddedTrip | GtfsCancelledTrip)[] one day.
|
|
10
19
|
allTrips() {
|
|
@@ -21,5 +30,18 @@ export class GtfsRealtimeData {
|
|
|
21
30
|
return null;
|
|
22
31
|
return trip;
|
|
23
32
|
}
|
|
33
|
+
getBrokenTransfersForTrip(gtfsTripId, serviceDay) {
|
|
34
|
+
return this._brokenTransfersMapping
|
|
35
|
+
.forTripId(gtfsTripId)
|
|
36
|
+
.filter((x) => x.serviceDay.equals(serviceDay));
|
|
37
|
+
}
|
|
38
|
+
getAddedTransfersForTrip(gtfsTripId, serviceDay) {
|
|
39
|
+
return this._addedTransfersMapping
|
|
40
|
+
.forTripId(gtfsTripId)
|
|
41
|
+
.filter((x) => x.serviceDay.equals(serviceDay));
|
|
42
|
+
}
|
|
43
|
+
static fromTrips(trips) {
|
|
44
|
+
return new GtfsRealtimeData(trips, [], []);
|
|
45
|
+
}
|
|
24
46
|
}
|
|
25
47
|
//# sourceMappingURL=gtfs-realtime-data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-realtime-data.js","sourceRoot":"","sources":["../../src/data/gtfs-realtime-data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gtfs-realtime-data.js","sourceRoot":"","sources":["../../src/data/gtfs-realtime-data.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,OAAO,gBAAgB;IAQR;IACA;IACA;IATF,uBAAuB,CAA+B;IACtD,uBAAuB,CAA0C;IACjE,sBAAsB,CAAyC;IAEhF,MAAM,CAAU,KAAK,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAEzD,YACmB,aAAyC,EACzC,gBAA+C,EAC/C,eAA6C;QAF7C,kBAAa,GAAb,aAAa,CAA4B;QACzC,qBAAgB,GAAhB,gBAAgB,CAA+B;QAC/C,oBAAe,GAAf,eAAe,CAA8B;QAE9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,CACpC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CACnE,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC,KAAK,CACtD,gBAAgB,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CACvC,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,mBAAmB,CAAC,KAAK,CACrD,eAAe,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,QAAQ;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,UAAkB,EAAE,UAA8B;QACxD,2EAA2E;QAC3E,qEAAqE;QACrE,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB,CACjB,UAAkB,EAClB,UAA8B;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAyB,CACvB,UAAkB,EAClB,UAA8B;QAE9B,OAAO,IAAI,CAAC,uBAAuB;aAChC,SAAS,CAAC,UAAU,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,wBAAwB,CACtB,UAAkB,EAClB,UAA8B;QAE9B,OAAO,IAAI,CAAC,sBAAsB;aAC/B,SAAS,CAAC,UAAU,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAiC;QAChD,OAAO,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { GtfsTransfer } from "./gtfs-transfer.js";
|
|
2
|
+
export declare class GtfsBrokenTransfer {
|
|
3
|
+
readonly transfer: GtfsTransfer;
|
|
4
|
+
readonly serviceDay: Temporal.PlainDate;
|
|
5
|
+
constructor(transfer: GtfsTransfer, serviceDay: Temporal.PlainDate);
|
|
6
|
+
equals(other: GtfsBrokenTransfer): boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class GtfsAddedTransfer {
|
|
9
|
+
readonly transfer: GtfsTransfer;
|
|
10
|
+
readonly serviceDay: Temporal.PlainDate;
|
|
11
|
+
constructor(transfer: GtfsTransfer, serviceDay: Temporal.PlainDate);
|
|
12
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class GtfsBrokenTransfer {
|
|
2
|
+
transfer;
|
|
3
|
+
serviceDay;
|
|
4
|
+
constructor(transfer, serviceDay) {
|
|
5
|
+
this.transfer = transfer;
|
|
6
|
+
this.serviceDay = serviceDay;
|
|
7
|
+
}
|
|
8
|
+
equals(other) {
|
|
9
|
+
return (this.transfer.equals(other.transfer) &&
|
|
10
|
+
this.serviceDay.equals(other.serviceDay));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class GtfsAddedTransfer {
|
|
14
|
+
transfer;
|
|
15
|
+
serviceDay;
|
|
16
|
+
constructor(transfer, serviceDay) {
|
|
17
|
+
this.transfer = transfer;
|
|
18
|
+
this.serviceDay = serviceDay;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=gtfs-realtime-transfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gtfs-realtime-transfer.js","sourceRoot":"","sources":["../../src/data/gtfs-realtime-transfer.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,kBAAkB;IAElB;IACA;IAFX,YACW,QAAsB,EACtB,UAA8B;QAD9B,aAAQ,GAAR,QAAQ,CAAc;QACtB,eAAU,GAAV,UAAU,CAAoB;IACtC,CAAC;IAEJ,MAAM,CAAC,KAAyB;QAC9B,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CACzC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,iBAAiB;IAEjB;IACA;IAFX,YACW,QAAsB,EACtB,UAA8B;QAD9B,aAAQ,GAAR,QAAQ,CAAc;QACtB,eAAU,GAAV,UAAU,CAAoB;IACtC,CAAC;CACL"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { GtfsCalendar } from "./gtfs-calendar.js";
|
|
2
2
|
import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
|
|
3
|
+
import type { GtfsTransfer } from "./gtfs-transfer.js";
|
|
3
4
|
export declare class GtfsScheduleData {
|
|
4
5
|
private readonly _trips;
|
|
6
|
+
private readonly _transfers;
|
|
5
7
|
private readonly _tripsById;
|
|
6
8
|
private readonly _calendarsById;
|
|
9
|
+
private readonly _transfersMapping;
|
|
7
10
|
/**
|
|
8
11
|
* Trip IDs we saw during parsing, but intentionally ignored (e.g. because
|
|
9
12
|
* they were replacement buses). We store them so that if we see them in a
|
|
@@ -11,12 +14,14 @@ export declare class GtfsScheduleData {
|
|
|
11
14
|
) */
|
|
12
15
|
private readonly _ignoredTripIds;
|
|
13
16
|
static readonly empty: GtfsScheduleData;
|
|
14
|
-
constructor(_trips: readonly GtfsScheduledTrip[], calendars: readonly GtfsCalendar[], ignoredTripIds: readonly string[]);
|
|
17
|
+
constructor(_trips: readonly GtfsScheduledTrip[], calendars: readonly GtfsCalendar[], _transfers: readonly GtfsTransfer[], ignoredTripIds: readonly string[]);
|
|
15
18
|
allTrips(): readonly GtfsScheduledTrip[];
|
|
16
19
|
getTrip(gtfsTripId: string): GtfsScheduledTrip | null;
|
|
17
20
|
getCalendar(gtfsCalendarId: string): GtfsCalendar | null;
|
|
21
|
+
getTransfersForTrip(gtfsTripId: string): readonly GtfsTransfer[];
|
|
18
22
|
isTripIgnored(gtfsTripId: string): boolean;
|
|
19
23
|
requireCalendar(gtfsCalendarId: string): GtfsCalendar;
|
|
20
24
|
withIgnoredTripIds(newIgnoredTripIds: readonly string[]): GtfsScheduleData;
|
|
25
|
+
withTransfers(newTransfers: readonly GtfsTransfer[]): GtfsScheduleData;
|
|
21
26
|
static fromTrips(trips: readonly GtfsScheduledTrip[]): GtfsScheduleData;
|
|
22
27
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { GtfsTransferMapping } from "./gtfs-transfer-mapping.js";
|
|
1
2
|
export class GtfsScheduleData {
|
|
2
3
|
_trips;
|
|
4
|
+
_transfers;
|
|
3
5
|
_tripsById;
|
|
4
6
|
_calendarsById;
|
|
7
|
+
_transfersMapping;
|
|
5
8
|
/**
|
|
6
9
|
* Trip IDs we saw during parsing, but intentionally ignored (e.g. because
|
|
7
10
|
* they were replacement buses). We store them so that if we see them in a
|
|
@@ -9,14 +12,17 @@ export class GtfsScheduleData {
|
|
|
9
12
|
) */
|
|
10
13
|
_ignoredTripIds;
|
|
11
14
|
static empty = GtfsScheduleData.fromTrips([]);
|
|
12
|
-
|
|
15
|
+
// TODO: Use a fields object (and proper `with` method).
|
|
16
|
+
constructor(_trips, calendars, _transfers, ignoredTripIds) {
|
|
13
17
|
// Arguably we should be taking the map as the constructor argument because
|
|
14
18
|
// the GtfsTransferConnector operates on a map, that it converts back to an
|
|
15
19
|
// array, only to have it immediately passed on to this constructor where
|
|
16
20
|
// we convert it back again :)
|
|
17
21
|
this._trips = _trips;
|
|
22
|
+
this._transfers = _transfers;
|
|
18
23
|
this._tripsById = new Map(_trips.map((trip) => [trip.gtfsTripId, trip]));
|
|
19
24
|
this._calendarsById = new Map(calendars.map((calendar) => [calendar.gtfsCalendarId, calendar]));
|
|
25
|
+
this._transfersMapping = GtfsTransferMapping.build(_transfers, (x) => x.getInvolvedTripIds());
|
|
20
26
|
this._ignoredTripIds = new Set(ignoredTripIds);
|
|
21
27
|
}
|
|
22
28
|
allTrips() {
|
|
@@ -28,6 +34,9 @@ export class GtfsScheduleData {
|
|
|
28
34
|
getCalendar(gtfsCalendarId) {
|
|
29
35
|
return this._calendarsById.get(gtfsCalendarId) ?? null;
|
|
30
36
|
}
|
|
37
|
+
getTransfersForTrip(gtfsTripId) {
|
|
38
|
+
return this._transfersMapping.forTripId(gtfsTripId);
|
|
39
|
+
}
|
|
31
40
|
isTripIgnored(gtfsTripId) {
|
|
32
41
|
return this._ignoredTripIds.has(gtfsTripId);
|
|
33
42
|
}
|
|
@@ -39,7 +48,10 @@ export class GtfsScheduleData {
|
|
|
39
48
|
return calendar;
|
|
40
49
|
}
|
|
41
50
|
withIgnoredTripIds(newIgnoredTripIds) {
|
|
42
|
-
return new GtfsScheduleData(this._trips,
|
|
51
|
+
return new GtfsScheduleData(this._trips, Array.from(this._calendarsById.values()), this._transfers, newIgnoredTripIds);
|
|
52
|
+
}
|
|
53
|
+
withTransfers(newTransfers) {
|
|
54
|
+
return new GtfsScheduleData(this._trips, Array.from(this._calendarsById.values()), newTransfers, Array.from(this._ignoredTripIds));
|
|
43
55
|
}
|
|
44
56
|
static fromTrips(trips) {
|
|
45
57
|
const calendars = new Map();
|
|
@@ -48,7 +60,7 @@ export class GtfsScheduleData {
|
|
|
48
60
|
calendars.set(trip.calendar.gtfsCalendarId, trip.calendar);
|
|
49
61
|
}
|
|
50
62
|
}
|
|
51
|
-
return new GtfsScheduleData(trips, [...calendars.values()], []);
|
|
63
|
+
return new GtfsScheduleData(trips, [...calendars.values()], [], []);
|
|
52
64
|
}
|
|
53
65
|
}
|
|
54
66
|
//# sourceMappingURL=gtfs-schedule-data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-schedule-data.js","sourceRoot":"","sources":["../../src/data/gtfs-schedule-data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gtfs-schedule-data.js","sourceRoot":"","sources":["../../src/data/gtfs-schedule-data.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,6 @@ export type GtfsScheduledTripFields = {
|
|
|
10
10
|
readonly lineIds: readonly number[];
|
|
11
11
|
readonly color: Color | null;
|
|
12
12
|
readonly serviceTags: readonly number[];
|
|
13
|
-
readonly previousTrip: GtfsScheduledTrip | null;
|
|
14
|
-
readonly nextTrip: GtfsScheduledTrip | null;
|
|
15
13
|
};
|
|
16
14
|
export declare class GtfsScheduledTrip {
|
|
17
15
|
readonly gtfsTripId: string;
|
|
@@ -21,14 +19,10 @@ export declare class GtfsScheduledTrip {
|
|
|
21
19
|
readonly lineIds: readonly number[];
|
|
22
20
|
readonly color: Color | null;
|
|
23
21
|
readonly serviceTags: readonly number[];
|
|
24
|
-
readonly previousTrip: GtfsScheduledTrip | null;
|
|
25
|
-
readonly nextTrip: GtfsScheduledTrip | null;
|
|
26
22
|
constructor(fields: GtfsScheduledTripFields);
|
|
27
23
|
with(newValues: Partial<GtfsScheduledTripFields>): GtfsScheduledTrip;
|
|
28
|
-
static connectAsTransfer(from: GtfsScheduledTrip, to: GtfsScheduledTrip): readonly [GtfsScheduledTrip, GtfsScheduledTrip];
|
|
29
24
|
get origination(): GtfsScheduledTripOriginatingMovement;
|
|
30
25
|
get termination(): GtfsScheduledTripTerminatingMovement;
|
|
31
|
-
get finalTermination(): GtfsScheduledTripTerminatingMovement;
|
|
32
26
|
requireMovementIndex(movement: GtfsScheduledTripMovement): number;
|
|
33
27
|
static simple({ gtfsTripId, originStopId, originGtfsStopId, originationTime, terminusStopId, terminationTime, terminusGtfsStopId, }: {
|
|
34
28
|
gtfsTripId: string;
|
|
@@ -9,8 +9,6 @@ export class GtfsScheduledTrip {
|
|
|
9
9
|
lineIds;
|
|
10
10
|
color;
|
|
11
11
|
serviceTags;
|
|
12
|
-
previousTrip;
|
|
13
|
-
nextTrip;
|
|
14
12
|
constructor(fields) {
|
|
15
13
|
this.gtfsTripId = fields.gtfsTripId;
|
|
16
14
|
this.gtfsRouteId = fields.gtfsRouteId;
|
|
@@ -19,8 +17,6 @@ export class GtfsScheduledTrip {
|
|
|
19
17
|
this.lineIds = fields.lineIds;
|
|
20
18
|
this.color = fields.color;
|
|
21
19
|
this.serviceTags = fields.serviceTags;
|
|
22
|
-
this.previousTrip = fields.previousTrip;
|
|
23
|
-
this.nextTrip = fields.nextTrip;
|
|
24
20
|
if (this.lineIds.length < 1)
|
|
25
21
|
throw new Error("Must have 1+ line IDs.");
|
|
26
22
|
if (this.movements.length < 2)
|
|
@@ -38,9 +34,6 @@ export class GtfsScheduledTrip {
|
|
|
38
34
|
with(newValues) {
|
|
39
35
|
return new GtfsScheduledTrip({ ...this, ...newValues });
|
|
40
36
|
}
|
|
41
|
-
static connectAsTransfer(from, to) {
|
|
42
|
-
return [from.with({ nextTrip: to }), to.with({ previousTrip: from })];
|
|
43
|
-
}
|
|
44
37
|
get origination() {
|
|
45
38
|
const firstMovement = this.movements[0];
|
|
46
39
|
if (firstMovement?.type === "originating")
|
|
@@ -55,11 +48,6 @@ export class GtfsScheduledTrip {
|
|
|
55
48
|
// Can't happen. Checked in constructor.
|
|
56
49
|
throw new Error();
|
|
57
50
|
}
|
|
58
|
-
get finalTermination() {
|
|
59
|
-
if (this.nextTrip == null)
|
|
60
|
-
return this.termination;
|
|
61
|
-
return this.nextTrip.finalTermination;
|
|
62
|
-
}
|
|
63
51
|
requireMovementIndex(movement) {
|
|
64
52
|
const index = this.movements.indexOf(movement);
|
|
65
53
|
if (index === -1)
|
|
@@ -98,8 +86,6 @@ export class GtfsScheduledTrip {
|
|
|
98
86
|
lineIds: [1],
|
|
99
87
|
color: null,
|
|
100
88
|
serviceTags: [],
|
|
101
|
-
previousTrip: null,
|
|
102
|
-
nextTrip: null,
|
|
103
89
|
});
|
|
104
90
|
}
|
|
105
91
|
}
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-scheduled-trip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class GtfsTransferMapping<T> {
|
|
2
|
+
private readonly _byTripId;
|
|
3
|
+
private constructor();
|
|
4
|
+
static build<T>(transfers: readonly T[], extractInvolvedTripIds: (transfer: T) => readonly string[]): GtfsTransferMapping<T>;
|
|
5
|
+
forTripId(tripId: string): readonly T[];
|
|
6
|
+
}
|
|
7
|
+
export declare class MutableGtfsTransferMapping<T> {
|
|
8
|
+
private readonly _extractInvolvedTripIds;
|
|
9
|
+
private readonly _map;
|
|
10
|
+
private readonly _array;
|
|
11
|
+
constructor(_extractInvolvedTripIds: (transfer: T) => readonly string[]);
|
|
12
|
+
push(transfer: T): void;
|
|
13
|
+
forTripId(tripId: string): readonly T[];
|
|
14
|
+
toArray(): readonly T[];
|
|
15
|
+
}
|