corequery-gtfs 0.1.4 → 0.2.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/corequery-types.d.ts +71 -1
- package/dist/corequery-types.js +2 -1
- package/dist/corequery-types.js.map +1 -1
- package/dist/corequeryify/corequery-intrasource-id.d.ts +7 -0
- package/dist/corequeryify/corequery-intrasource-id.js +24 -0
- package/dist/corequeryify/corequery-intrasource-id.js.map +1 -0
- package/dist/corequeryify/service-conversion-iterator.d.ts +11 -0
- package/dist/corequeryify/service-conversion-iterator.js +41 -0
- package/dist/corequeryify/service-conversion-iterator.js.map +1 -0
- package/dist/corequeryify/service-converter.d.ts +32 -0
- package/dist/corequeryify/service-converter.js +206 -0
- package/dist/corequeryify/service-converter.js.map +1 -0
- package/dist/data/gtfs-feed.d.ts +4 -1
- package/dist/data/gtfs-feed.js +11 -7
- package/dist/data/gtfs-feed.js.map +1 -1
- package/dist/data/gtfs-realtime-data.d.ts +1 -0
- package/dist/data/gtfs-realtime-data.js +5 -0
- package/dist/data/gtfs-realtime-data.js.map +1 -1
- package/dist/data/gtfs-scheduled-trip.d.ts +1 -0
- package/dist/data/gtfs-scheduled-trip.js +6 -0
- package/dist/data/gtfs-scheduled-trip.js.map +1 -1
- package/dist/data/gtfs-stop-time.d.ts +1 -1
- package/dist/data/gtfs-stop-time.js +1 -1
- package/dist/data/gtfs-updated-trip.d.ts +5 -0
- package/dist/data/gtfs-updated-trip.js +33 -0
- package/dist/data/gtfs-updated-trip.js.map +1 -1
- package/dist/departures/departures-block-iterator.d.ts +2 -2
- package/dist/departures/departures-block-iterator.js.map +1 -1
- package/dist/departures/departures-iterator.d.ts +4 -3
- package/dist/departures/departures-iterator.js +9 -1
- package/dist/departures/departures-iterator.js.map +1 -1
- package/dist/departures/gtfs-scheduled-movements-index.d.ts +1 -0
- package/dist/departures/gtfs-scheduled-movements-index.js +3 -1
- package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -1
- package/dist/departures/multifeed-departures-iterator.d.ts +3 -3
- package/dist/departures/multifeed-departures-iterator.js +3 -3
- package/dist/departures/multifeed-departures-iterator.js.map +1 -1
- package/dist/departures/realtime-departures-block-iterator.js +1 -1
- package/dist/departures/realtime-departures-block-iterator.js.map +1 -1
- package/dist/departures/realtime-departures-block.d.ts +1 -0
- package/dist/departures/realtime-departures-block.js +3 -1
- package/dist/departures/realtime-departures-block.js.map +1 -1
- package/dist/departures/scheduled-departures-block-iterator.js +1 -1
- package/dist/departures/scheduled-departures-block-iterator.js.map +1 -1
- package/dist/departures/scheduled-departures-iterator.d.ts +2 -2
- package/dist/departures/scheduled-departures-iterator.js.map +1 -1
- package/dist/departures/zipper-departures-iterator.d.ts +2 -2
- package/dist/departures/zipper-departures-iterator.js.map +1 -1
- package/dist/gtfs-service-source.d.ts +24 -0
- package/dist/gtfs-service-source.js +56 -0
- package/dist/gtfs-service-source.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,2 +1,72 @@
|
|
|
1
|
+
export type ServiceSource<CorequeryDepartureClass, CorequeryServiceClass> = {
|
|
2
|
+
readonly sourceId: string;
|
|
3
|
+
getService: (intrasourceId: string) => Promise<CorequeryServiceClass | null>;
|
|
4
|
+
getDeparturesIterator: (stopId: number, instant: Temporal.Instant, direction: DeparturesIterationDirection) => DeparturesIterator<CorequeryDepartureClass>;
|
|
5
|
+
};
|
|
6
|
+
export type DeparturesIterator<CorequeryDepartureClass> = {
|
|
7
|
+
peek: () => Promise<CorequeryDepartureClass | null>;
|
|
8
|
+
take: () => Promise<CorequeryDepartureClass>;
|
|
9
|
+
};
|
|
10
|
+
export type DepartureFields<CorequeryServiceClass> = {
|
|
11
|
+
readonly service: CorequeryServiceClass;
|
|
12
|
+
readonly movementIndex: number;
|
|
13
|
+
};
|
|
14
|
+
export type ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> = {
|
|
15
|
+
readonly sourceId: string;
|
|
16
|
+
readonly intrasourceId: string;
|
|
17
|
+
readonly lineIds: readonly number[];
|
|
18
|
+
readonly tags: CorequeryTagsClass;
|
|
19
|
+
readonly color: Color | null;
|
|
20
|
+
readonly liveDataType: ServiceLiveDataType;
|
|
21
|
+
readonly movements: readonly CorequeryServiceMovementClasses<CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass>[];
|
|
22
|
+
readonly isCancelled: boolean;
|
|
23
|
+
readonly connections: readonly CorequeryServiceConnectionClass[];
|
|
24
|
+
};
|
|
25
|
+
type CorequeryServiceMovementClasses<CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass> = CorequeryServiceOriginatingMovementClass | CorequeryServicePassingMovementClass | CorequeryServiceRegularMovementClass | CorequeryServiceTerminatingMovementClass;
|
|
26
|
+
export type ServiceOriginatingMovementFields = {
|
|
27
|
+
readonly stopId: number;
|
|
28
|
+
readonly originalPositionId: number | null;
|
|
29
|
+
readonly updatedPositionId: number | null;
|
|
30
|
+
readonly departureTimeType: ServiceTimeType;
|
|
31
|
+
readonly departureTime: Temporal.Instant;
|
|
32
|
+
readonly formerDepartureTime: Temporal.Instant | null;
|
|
33
|
+
};
|
|
34
|
+
export type ServicePassingMovementFields = {
|
|
35
|
+
readonly stopId: number;
|
|
36
|
+
};
|
|
37
|
+
export type ServiceRegularMovementFields = {
|
|
38
|
+
readonly stopId: number;
|
|
39
|
+
readonly originalPositionId: number | null;
|
|
40
|
+
readonly updatedPositionId: number | null;
|
|
41
|
+
readonly arrivalTimeType: ServiceTimeType;
|
|
42
|
+
readonly arrivalTime: Temporal.Instant;
|
|
43
|
+
readonly formerArrivalTime: Temporal.Instant | null;
|
|
44
|
+
readonly departureTimeType: ServiceTimeType;
|
|
45
|
+
readonly departureTime: Temporal.Instant;
|
|
46
|
+
readonly formerDepartureTime: Temporal.Instant | null;
|
|
47
|
+
readonly picksUp: boolean;
|
|
48
|
+
readonly dropsOff: boolean;
|
|
49
|
+
};
|
|
50
|
+
export type ServiceTerminatingMovementFields = {
|
|
51
|
+
readonly stopId: number;
|
|
52
|
+
readonly originalPositionId: number | null;
|
|
53
|
+
readonly updatedPositionId: number | null;
|
|
54
|
+
readonly arrivalTimeType: ServiceTimeType;
|
|
55
|
+
readonly arrivalTime: Temporal.Instant;
|
|
56
|
+
readonly formerArrivalTime: Temporal.Instant | null;
|
|
57
|
+
};
|
|
58
|
+
export type ServiceConnectionFields = {
|
|
59
|
+
readonly type: ServiceConnectionType;
|
|
60
|
+
readonly direction: ServiceConnectionDirection;
|
|
61
|
+
readonly otherServiceSourceId: string;
|
|
62
|
+
readonly otherServiceIntrasourceId: string;
|
|
63
|
+
readonly movementIndex: number;
|
|
64
|
+
readonly otherServiceMovementIndex: number;
|
|
65
|
+
};
|
|
66
|
+
export type DeparturesIterationDirection = "forwards" | "backwards";
|
|
1
67
|
export type Color = "red" | "yellow" | "green" | "cyan" | "blue" | "pink" | "purple" | "gray";
|
|
2
|
-
|
|
68
|
+
type ServiceLiveDataType = "scheduled" | "updated" | "added";
|
|
69
|
+
type ServiceTimeType = "scheduled-time" | "provided-live-time" | "interpolated-live-time";
|
|
70
|
+
type ServiceConnectionType = "entire-vehicle-forms-service" | "other";
|
|
71
|
+
type ServiceConnectionDirection = "from-other" | "to-other" | "bidirectional";
|
|
72
|
+
export {};
|
package/dist/corequery-types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"corequery-types.js","sourceRoot":"","sources":["../src/corequery-types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"corequery-types.js","sourceRoot":"","sources":["../src/corequery-types.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,mEAAmE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class CorequeryIntrasourceId {
|
|
2
|
+
readonly gtfsTripId: string;
|
|
3
|
+
readonly serviceDay: Temporal.PlainDate;
|
|
4
|
+
constructor(gtfsTripId: string, serviceDay: Temporal.PlainDate);
|
|
5
|
+
toString(): string;
|
|
6
|
+
static parse(input: string): CorequeryIntrasourceId | null;
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class CorequeryIntrasourceId {
|
|
2
|
+
gtfsTripId;
|
|
3
|
+
serviceDay;
|
|
4
|
+
constructor(gtfsTripId, serviceDay) {
|
|
5
|
+
this.gtfsTripId = gtfsTripId;
|
|
6
|
+
this.serviceDay = serviceDay;
|
|
7
|
+
}
|
|
8
|
+
toString() {
|
|
9
|
+
return `${this.serviceDay.toString()}|${this.gtfsTripId}`;
|
|
10
|
+
}
|
|
11
|
+
static parse(input) {
|
|
12
|
+
const [serviceDayString, gtfsTripId] = input.split("|");
|
|
13
|
+
if (serviceDayString == null || gtfsTripId == null)
|
|
14
|
+
return null;
|
|
15
|
+
try {
|
|
16
|
+
const serviceDay = Temporal.PlainDate.from(serviceDayString);
|
|
17
|
+
return new CorequeryIntrasourceId(gtfsTripId, serviceDay);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=corequery-intrasource-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corequery-intrasource-id.js","sourceRoot":"","sources":["../../src/corequeryify/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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DeparturesIterator } from "../departures/departures-iterator.js";
|
|
2
|
+
import type { ServiceConverter } from "./service-converter.js";
|
|
3
|
+
export declare class ServiceConversionIterator<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> {
|
|
4
|
+
private readonly _iterator;
|
|
5
|
+
private readonly _converter;
|
|
6
|
+
private readonly _timezone;
|
|
7
|
+
private _convertedNextDeparture;
|
|
8
|
+
constructor(_iterator: DeparturesIterator, _converter: ServiceConverter<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass>, _timezone: string);
|
|
9
|
+
peek(): Promise<CorequeryDepartureClass | null>;
|
|
10
|
+
take(): Promise<CorequeryDepartureClass>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export class ServiceConversionIterator {
|
|
2
|
+
_iterator;
|
|
3
|
+
_converter;
|
|
4
|
+
_timezone;
|
|
5
|
+
_convertedNextDeparture;
|
|
6
|
+
constructor(
|
|
7
|
+
// TODO: There's two things called DeparturesIterator in this repo, which
|
|
8
|
+
// isn't ideal.
|
|
9
|
+
_iterator, _converter,
|
|
10
|
+
// TODO: The need to pass around timezone here (and everywhere), I think
|
|
11
|
+
// hints at that it should be a property of the DeparturesIteratorResult.
|
|
12
|
+
_timezone) {
|
|
13
|
+
this._iterator = _iterator;
|
|
14
|
+
this._converter = _converter;
|
|
15
|
+
this._timezone = _timezone;
|
|
16
|
+
this._convertedNextDeparture = null;
|
|
17
|
+
}
|
|
18
|
+
peek() {
|
|
19
|
+
if (this._convertedNextDeparture != null) {
|
|
20
|
+
return Promise.resolve(this._convertedNextDeparture);
|
|
21
|
+
}
|
|
22
|
+
const value = this._iterator.peek();
|
|
23
|
+
if (value == null) {
|
|
24
|
+
return Promise.resolve(null);
|
|
25
|
+
}
|
|
26
|
+
const result = this._converter.convertDeparture(value, this._timezone);
|
|
27
|
+
this._convertedNextDeparture = result;
|
|
28
|
+
return Promise.resolve(result);
|
|
29
|
+
}
|
|
30
|
+
take() {
|
|
31
|
+
if (this._convertedNextDeparture != null) {
|
|
32
|
+
const result = this._convertedNextDeparture;
|
|
33
|
+
this._convertedNextDeparture = null;
|
|
34
|
+
return Promise.resolve(result);
|
|
35
|
+
}
|
|
36
|
+
const value = this._iterator.take();
|
|
37
|
+
const result = this._converter.convertDeparture(value, this._timezone);
|
|
38
|
+
return Promise.resolve(result);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=service-conversion-iterator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-conversion-iterator.js","sourceRoot":"","sources":["../../src/corequeryify/service-conversion-iterator.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,yBAAyB;IAejB;IAEA;IAaA;IApBX,uBAAuB,CAAiC;IAEhE;IACE,yEAAyE;IACzE,eAAe;IACE,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,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAC5C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;YACpC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { DepartureFields, ServiceFields, ServiceOriginatingMovementFields, ServicePassingMovementFields, ServiceRegularMovementFields, ServiceTerminatingMovementFields, ServiceConnectionFields } from "../corequery-types.js";
|
|
2
|
+
import { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
|
+
import type { DeparturesIteratorResult } from "../departures/departures-iterator.js";
|
|
4
|
+
import { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
5
|
+
export type ServiceConverterFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> = {
|
|
6
|
+
readonly sourceId: string;
|
|
7
|
+
buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
|
|
8
|
+
buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
|
|
9
|
+
buildTags: (tags: Set<number>) => CorequeryTagsClass;
|
|
10
|
+
buildServiceOriginatingMovement: (fields: ServiceOriginatingMovementFields) => CorequeryServiceOriginatingMovementClass;
|
|
11
|
+
buildServicePassingMovement: (fields: ServicePassingMovementFields) => CorequeryServicePassingMovementClass;
|
|
12
|
+
buildServiceRegularMovement: (fields: ServiceRegularMovementFields) => CorequeryServiceRegularMovementClass;
|
|
13
|
+
buildServiceTerminatingMovement: (fields: ServiceTerminatingMovementFields) => CorequeryServiceTerminatingMovementClass;
|
|
14
|
+
buildServiceConnection: (fields: ServiceConnectionFields) => CorequeryServiceConnectionClass;
|
|
15
|
+
};
|
|
16
|
+
export declare class ServiceConverter<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> {
|
|
17
|
+
private readonly _sourceId;
|
|
18
|
+
private readonly _buildDeparture;
|
|
19
|
+
private readonly _buildService;
|
|
20
|
+
private readonly _buildTags;
|
|
21
|
+
private readonly _buildServiceOriginatingMovement;
|
|
22
|
+
private readonly _buildServicePassingMovement;
|
|
23
|
+
private readonly _buildServiceRegularMovement;
|
|
24
|
+
private readonly _buildServiceTerminatingMovement;
|
|
25
|
+
private readonly _buildServiceConnection;
|
|
26
|
+
constructor(fields: ServiceConverterFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass>);
|
|
27
|
+
convertDeparture(result: DeparturesIteratorResult, timezone: string): CorequeryDepartureClass;
|
|
28
|
+
convertScheduledTrip(trip: GtfsScheduledTrip, serviceDay: Temporal.PlainDate, timezone: string): CorequeryServiceClass;
|
|
29
|
+
convertUpdatedTrip(trip: GtfsUpdatedTrip): CorequeryServiceClass;
|
|
30
|
+
private _convertScheduledTripMovement;
|
|
31
|
+
private _convertUpdatedTripMovement;
|
|
32
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { assertNever } from "@dan-schel/js-utils";
|
|
2
|
+
import { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
|
+
import { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
4
|
+
import { CorequeryIntrasourceId } from "./corequery-intrasource-id.js";
|
|
5
|
+
export class ServiceConverter {
|
|
6
|
+
_sourceId;
|
|
7
|
+
_buildDeparture;
|
|
8
|
+
_buildService;
|
|
9
|
+
_buildTags;
|
|
10
|
+
_buildServiceOriginatingMovement;
|
|
11
|
+
_buildServicePassingMovement;
|
|
12
|
+
_buildServiceRegularMovement;
|
|
13
|
+
_buildServiceTerminatingMovement;
|
|
14
|
+
_buildServiceConnection;
|
|
15
|
+
constructor(fields) {
|
|
16
|
+
this._sourceId = fields.sourceId;
|
|
17
|
+
this._buildDeparture = fields.buildDeparture;
|
|
18
|
+
this._buildService = fields.buildService;
|
|
19
|
+
this._buildTags = fields.buildTags;
|
|
20
|
+
this._buildServiceOriginatingMovement =
|
|
21
|
+
fields.buildServiceOriginatingMovement;
|
|
22
|
+
this._buildServicePassingMovement = fields.buildServicePassingMovement;
|
|
23
|
+
this._buildServiceRegularMovement = fields.buildServiceRegularMovement;
|
|
24
|
+
this._buildServiceTerminatingMovement =
|
|
25
|
+
fields.buildServiceTerminatingMovement;
|
|
26
|
+
this._buildServiceConnection = fields.buildServiceConnection;
|
|
27
|
+
}
|
|
28
|
+
convertDeparture(result, timezone) {
|
|
29
|
+
if (result.trip instanceof GtfsScheduledTrip) {
|
|
30
|
+
const service = this.convertScheduledTrip(result.trip, result.serviceDay, timezone);
|
|
31
|
+
return this._buildDeparture({
|
|
32
|
+
service,
|
|
33
|
+
movementIndex: result.movementIndex,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else if (result.trip instanceof GtfsUpdatedTrip) {
|
|
37
|
+
const service = this.convertUpdatedTrip(result.trip);
|
|
38
|
+
return this._buildDeparture({
|
|
39
|
+
service,
|
|
40
|
+
movementIndex: result.movementIndex,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
assertNever(result.trip);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
convertScheduledTrip(trip, serviceDay, timezone) {
|
|
48
|
+
const id = new CorequeryIntrasourceId(trip.gtfsTripId, serviceDay);
|
|
49
|
+
return this._buildService({
|
|
50
|
+
sourceId: this._sourceId,
|
|
51
|
+
intrasourceId: id.toString(),
|
|
52
|
+
lineIds: trip.lineIds,
|
|
53
|
+
tags: this._buildTags(new Set(trip.serviceTags)),
|
|
54
|
+
color: trip.color,
|
|
55
|
+
liveDataType: "scheduled",
|
|
56
|
+
movements: trip.movements.map((m) => this._convertScheduledTripMovement(m, serviceDay, timezone)),
|
|
57
|
+
isCancelled: false,
|
|
58
|
+
// TODO: This is the part where we check if the connections are still
|
|
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: [], // TODO: Not implemented!
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
convertUpdatedTrip(trip) {
|
|
72
|
+
const id = new CorequeryIntrasourceId(trip.gtfsTripId, trip.serviceDay);
|
|
73
|
+
return this._buildService({
|
|
74
|
+
sourceId: this._sourceId,
|
|
75
|
+
intrasourceId: id.toString(),
|
|
76
|
+
lineIds: trip.lineIds,
|
|
77
|
+
tags: this._buildTags(new Set(trip.serviceTags)),
|
|
78
|
+
color: trip.color,
|
|
79
|
+
liveDataType: "updated",
|
|
80
|
+
movements: trip.movements.map((m) => this._convertUpdatedTripMovement(m)),
|
|
81
|
+
isCancelled: trip.isCancelled,
|
|
82
|
+
connections: [], // TODO: Not implemented!
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
_convertScheduledTripMovement(movement, serviceDay, timezone) {
|
|
86
|
+
if (movement.type === "originating") {
|
|
87
|
+
return this._buildServiceOriginatingMovement({
|
|
88
|
+
stopId: movement.stopId,
|
|
89
|
+
originalPositionId: movement.positionId,
|
|
90
|
+
updatedPositionId: null,
|
|
91
|
+
departureTimeType: "scheduled-time",
|
|
92
|
+
departureTime: movement.departureTime.toInstant(serviceDay, timezone),
|
|
93
|
+
formerDepartureTime: null,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else if (movement.type === "regular") {
|
|
97
|
+
return this._buildServiceRegularMovement({
|
|
98
|
+
stopId: movement.stopId,
|
|
99
|
+
originalPositionId: movement.positionId,
|
|
100
|
+
updatedPositionId: null,
|
|
101
|
+
arrivalTimeType: "scheduled-time",
|
|
102
|
+
arrivalTime: movement.arrivalTime.toInstant(serviceDay, timezone),
|
|
103
|
+
formerArrivalTime: null,
|
|
104
|
+
departureTimeType: "scheduled-time",
|
|
105
|
+
departureTime: movement.departureTime.toInstant(serviceDay, timezone),
|
|
106
|
+
formerDepartureTime: null,
|
|
107
|
+
picksUp: movement.picksUp,
|
|
108
|
+
dropsOff: movement.dropsOff,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else if (movement.type === "terminating") {
|
|
112
|
+
return this._buildServiceTerminatingMovement({
|
|
113
|
+
stopId: movement.stopId,
|
|
114
|
+
originalPositionId: movement.positionId,
|
|
115
|
+
updatedPositionId: null,
|
|
116
|
+
arrivalTimeType: "scheduled-time",
|
|
117
|
+
arrivalTime: movement.arrivalTime.toInstant(serviceDay, timezone),
|
|
118
|
+
formerArrivalTime: null,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
else if (movement.type === "passing") {
|
|
122
|
+
return this._buildServicePassingMovement({
|
|
123
|
+
stopId: movement.stopId,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
assertNever(movement);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
_convertUpdatedTripMovement(movement) {
|
|
131
|
+
if (movement.type === "originating") {
|
|
132
|
+
return this._buildServiceOriginatingMovement({
|
|
133
|
+
stopId: movement.stopId,
|
|
134
|
+
originalPositionId: movement.originalPositionId,
|
|
135
|
+
updatedPositionId: movement.updatedPositionId,
|
|
136
|
+
// TODO: Probably move this logic into the GtfsUpdatedTripMovement
|
|
137
|
+
// classes themselves. I was hesitant at first because I didn't want
|
|
138
|
+
// them to be concerned with Corequery's data format, but given that
|
|
139
|
+
// this whole is meant to serve as a plugin to Corequery, it's probably
|
|
140
|
+
// ok. (And we already do it with `Color` anyway!)
|
|
141
|
+
//
|
|
142
|
+
// When we start doing interpolation, I'll forget to update here, and
|
|
143
|
+
// then the `departureTimeType` will be wrong!
|
|
144
|
+
//
|
|
145
|
+
// Note: If pushing things like `departureTimeType` into the
|
|
146
|
+
// GtfsUpdatedTripMovement classes, why draw the line there? Why not
|
|
147
|
+
// have a method on the movement classes to convert themselves into
|
|
148
|
+
// Corequery's data format? Genuinely, is there an argument to be made?
|
|
149
|
+
// Maybe the whole corequeryify folder should be removed?
|
|
150
|
+
departureTimeType: movement.realtimeDepartureTime !== null
|
|
151
|
+
? "provided-live-time"
|
|
152
|
+
: "scheduled-time",
|
|
153
|
+
departureTime: movement.realtimeDepartureTime ?? movement.scheduledDepartureTime,
|
|
154
|
+
formerDepartureTime: movement.realtimeDepartureTime !== null
|
|
155
|
+
? movement.scheduledDepartureTime
|
|
156
|
+
: null,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else if (movement.type === "regular") {
|
|
160
|
+
return this._buildServiceRegularMovement({
|
|
161
|
+
stopId: movement.stopId,
|
|
162
|
+
originalPositionId: movement.originalPositionId,
|
|
163
|
+
updatedPositionId: movement.updatedPositionId,
|
|
164
|
+
arrivalTimeType: movement.realtimeArrivalTime !== null
|
|
165
|
+
? "provided-live-time"
|
|
166
|
+
: "scheduled-time",
|
|
167
|
+
arrivalTime: movement.realtimeArrivalTime ?? movement.scheduledArrivalTime,
|
|
168
|
+
formerArrivalTime: movement.realtimeArrivalTime !== null
|
|
169
|
+
? movement.scheduledArrivalTime
|
|
170
|
+
: null,
|
|
171
|
+
departureTimeType: movement.realtimeDepartureTime !== null
|
|
172
|
+
? "provided-live-time"
|
|
173
|
+
: "scheduled-time",
|
|
174
|
+
departureTime: movement.realtimeDepartureTime ?? movement.scheduledDepartureTime,
|
|
175
|
+
formerDepartureTime: movement.realtimeDepartureTime !== null
|
|
176
|
+
? movement.scheduledDepartureTime
|
|
177
|
+
: null,
|
|
178
|
+
picksUp: movement.picksUp,
|
|
179
|
+
dropsOff: movement.dropsOff,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
else if (movement.type === "terminating") {
|
|
183
|
+
return this._buildServiceTerminatingMovement({
|
|
184
|
+
stopId: movement.stopId,
|
|
185
|
+
originalPositionId: movement.originalPositionId,
|
|
186
|
+
updatedPositionId: movement.updatedPositionId,
|
|
187
|
+
arrivalTimeType: movement.realtimeArrivalTime !== null
|
|
188
|
+
? "provided-live-time"
|
|
189
|
+
: "scheduled-time",
|
|
190
|
+
arrivalTime: movement.realtimeArrivalTime ?? movement.scheduledArrivalTime,
|
|
191
|
+
formerArrivalTime: movement.realtimeArrivalTime !== null
|
|
192
|
+
? movement.scheduledArrivalTime
|
|
193
|
+
: null,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
else if (movement.type === "passing") {
|
|
197
|
+
return this._buildServicePassingMovement({
|
|
198
|
+
stopId: movement.stopId,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
assertNever(movement);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=service-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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
|
@@ -3,6 +3,8 @@ import { GtfsScheduledMovementsIndex } from "../departures/gtfs-scheduled-moveme
|
|
|
3
3
|
import { ZipperDeparturesIterator } from "../departures/zipper-departures-iterator.js";
|
|
4
4
|
import type { GtfsRealtimeData } from "./gtfs-realtime-data.js";
|
|
5
5
|
import type { GtfsScheduleData } from "./gtfs-schedule-data.js";
|
|
6
|
+
import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
|
|
7
|
+
import type { GtfsUpdatedTrip } from "./gtfs-updated-trip.js";
|
|
6
8
|
export declare class GtfsFeed {
|
|
7
9
|
readonly corequeryDataSourceId: string;
|
|
8
10
|
readonly scheduleData: GtfsScheduleData;
|
|
@@ -12,5 +14,6 @@ export declare class GtfsFeed {
|
|
|
12
14
|
constructor(corequeryDataSourceId: string, scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData, scheduledMovementsIndex: GtfsScheduledMovementsIndex);
|
|
13
15
|
static fromNewScheduleData(corequeryDataSourceId: string, scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData): GtfsFeed;
|
|
14
16
|
withUpdatedRealtimeData(realtimeData: GtfsRealtimeData): GtfsFeed;
|
|
15
|
-
|
|
17
|
+
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip | null;
|
|
18
|
+
createDepartureIterator(stopId: number): ZipperDeparturesIterator;
|
|
16
19
|
}
|
package/dist/data/gtfs-feed.js
CHANGED
|
@@ -20,13 +20,17 @@ export class GtfsFeed {
|
|
|
20
20
|
withUpdatedRealtimeData(realtimeData) {
|
|
21
21
|
return new GtfsFeed(this.corequeryDataSourceId, this.scheduleData, realtimeData, this.timezoneData, this.scheduledMovementsIndex);
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
getTrip(gtfsTripId, serviceDay) {
|
|
24
|
+
const realtimeTrip = this.realtimeData.getTrip(gtfsTripId, serviceDay);
|
|
25
|
+
if (realtimeTrip != null)
|
|
26
|
+
return realtimeTrip;
|
|
27
|
+
const scheduledTrip = this.scheduleData.getTrip(gtfsTripId);
|
|
28
|
+
if (scheduledTrip != null && scheduledTrip.calendar.occursOn(serviceDay)) {
|
|
29
|
+
return scheduledTrip;
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
createDepartureIterator(stopId) {
|
|
30
34
|
return ZipperDeparturesIterator.forFeed(stopId, this.scheduledMovementsIndex, this.realtimeData, this.timezoneData);
|
|
31
35
|
}
|
|
32
36
|
}
|
|
@@ -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;
|
|
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;AAMvF,MAAM,OAAO,QAAQ;IAER;IACA;IACA;IACA;IACA;IALX,YACW,qBAA6B,EAC7B,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B,EAC1B,uBAAoD;QAJpD,0BAAqB,GAArB,qBAAqB,CAAQ;QAC7B,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,qBAA6B,EAC7B,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B;QAE1B,MAAM,uBAAuB,GAC3B,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,IAAI,QAAQ,CACjB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,YAA8B;QACpD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,qBAAqB,EAC1B,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;QACpC,OAAO,wBAAwB,CAAC,OAAO,CACrC,MAAM,EACN,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -5,5 +5,6 @@ export declare class GtfsRealtimeData {
|
|
|
5
5
|
static readonly empty: GtfsRealtimeData;
|
|
6
6
|
constructor(_updatedTrips: readonly GtfsUpdatedTrip[]);
|
|
7
7
|
allTrips(): readonly GtfsUpdatedTrip[];
|
|
8
|
+
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsUpdatedTrip | null;
|
|
8
9
|
getForScheduledTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsUpdatedTrip | null;
|
|
9
10
|
}
|
|
@@ -10,6 +10,11 @@ export class GtfsRealtimeData {
|
|
|
10
10
|
allTrips() {
|
|
11
11
|
return this._updatedTrips;
|
|
12
12
|
}
|
|
13
|
+
getTrip(gtfsTripId, serviceDay) {
|
|
14
|
+
// Right now all realtime trips are updated trips. When we have added trips
|
|
15
|
+
// in the future, then this needs to be modified to return those too.
|
|
16
|
+
return this.getForScheduledTrip(gtfsTripId, serviceDay);
|
|
17
|
+
}
|
|
13
18
|
getForScheduledTrip(gtfsTripId, serviceDay) {
|
|
14
19
|
const trip = this._tripsByScheduledTripId.get(gtfsTripId);
|
|
15
20
|
if (trip == null || !trip.serviceDay.equals(serviceDay))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-realtime-data.js","sourceRoot":"","sources":["../../src/data/gtfs-realtime-data.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAKE;IAJZ,uBAAuB,CAA+B;IAEvE,MAAM,CAAU,KAAK,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEjD,YAA6B,aAAyC;QAAzC,kBAAa,GAAb,aAAa,CAA4B;QACpE,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;IACJ,CAAC;IAED,sEAAsE;IACtE,QAAQ;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,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"}
|
|
1
|
+
{"version":3,"file":"gtfs-realtime-data.js","sourceRoot":"","sources":["../../src/data/gtfs-realtime-data.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAKE;IAJZ,uBAAuB,CAA+B;IAEvE,MAAM,CAAU,KAAK,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEjD,YAA6B,aAAyC;QAAzC,kBAAa,GAAb,aAAa,CAA4B;QACpE,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;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"}
|
|
@@ -29,6 +29,7 @@ export declare class GtfsScheduledTrip {
|
|
|
29
29
|
get origination(): GtfsScheduledTripOriginatingMovement;
|
|
30
30
|
get termination(): GtfsScheduledTripTerminatingMovement;
|
|
31
31
|
get finalTermination(): GtfsScheduledTripTerminatingMovement;
|
|
32
|
+
requireMovementIndex(movement: GtfsScheduledTripMovement): number;
|
|
32
33
|
static simple({ gtfsTripId, originStopId, originGtfsStopId, originationTime, terminusStopId, terminationTime, terminusGtfsStopId, }: {
|
|
33
34
|
gtfsTripId: string;
|
|
34
35
|
originStopId: number;
|
|
@@ -60,6 +60,12 @@ export class GtfsScheduledTrip {
|
|
|
60
60
|
return this.termination;
|
|
61
61
|
return this.nextTrip.finalTermination;
|
|
62
62
|
}
|
|
63
|
+
requireMovementIndex(movement) {
|
|
64
|
+
const index = this.movements.indexOf(movement);
|
|
65
|
+
if (index === -1)
|
|
66
|
+
throw new Error("Movement not found in trip.");
|
|
67
|
+
return index;
|
|
68
|
+
}
|
|
63
69
|
static simple({ gtfsTripId, originStopId, originGtfsStopId = `stop-${originStopId}`, originationTime, terminusStopId, terminationTime, terminusGtfsStopId = `stop-${terminusStopId}`, }) {
|
|
64
70
|
return new GtfsScheduledTrip({
|
|
65
71
|
gtfsTripId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-scheduled-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-scheduled-trip.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-scheduled-trip.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export declare class GtfsStopTime {
|
|
|
28
28
|
isAfter(other: GtfsStopTime): boolean;
|
|
29
29
|
isAfterOrEqual(other: GtfsStopTime): boolean;
|
|
30
30
|
toInstant(serviceDay: Temporal.PlainDate, timezone: string): Temporal.Instant;
|
|
31
|
-
|
|
31
|
+
toString(): string;
|
|
32
32
|
plus({ hours, minutes, seconds, }: {
|
|
33
33
|
hours?: number;
|
|
34
34
|
minutes?: number;
|
|
@@ -71,7 +71,7 @@ export class GtfsStopTime {
|
|
|
71
71
|
// 11am AEST becomes 1am UTC.
|
|
72
72
|
return midnightUtc.add({ seconds: this.secondsSinceMidnight - offset });
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
toString() {
|
|
75
75
|
const h = Math.floor(this.secondsSinceMidnight / 3600);
|
|
76
76
|
const m = Math.floor((this.secondsSinceMidnight % 3600) / 60);
|
|
77
77
|
const s = this.secondsSinceMidnight % 60;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
|
|
2
2
|
import type { GtfsUpdatedTripMovement, GtfsUpdatedTripOriginatingMovement, GtfsUpdatedTripTerminatingMovement } from "./gtfs-updated-trip-movements.js";
|
|
3
|
+
import type { Color } from "../corequery-types.js";
|
|
3
4
|
type GtfsUpdatedTripFields = {
|
|
4
5
|
readonly scheduledTrip: GtfsScheduledTrip;
|
|
5
6
|
readonly serviceDay: Temporal.PlainDate;
|
|
@@ -16,6 +17,10 @@ export declare class GtfsUpdatedTrip {
|
|
|
16
17
|
get gtfsTripId(): string;
|
|
17
18
|
get origination(): GtfsUpdatedTripOriginatingMovement;
|
|
18
19
|
get termination(): GtfsUpdatedTripTerminatingMovement;
|
|
20
|
+
requireMovementIndex(movement: GtfsUpdatedTripMovement): number;
|
|
21
|
+
get lineIds(): readonly number[];
|
|
22
|
+
get serviceTags(): readonly number[];
|
|
23
|
+
get color(): Color | null;
|
|
19
24
|
static unmodified(trip: GtfsScheduledTrip, serviceDay: Temporal.PlainDate, timezone: string): GtfsUpdatedTrip;
|
|
20
25
|
}
|
|
21
26
|
export {};
|
|
@@ -43,6 +43,39 @@ export class GtfsUpdatedTrip {
|
|
|
43
43
|
// Can't happen. Checked in constructor.
|
|
44
44
|
throw new Error();
|
|
45
45
|
}
|
|
46
|
+
requireMovementIndex(movement) {
|
|
47
|
+
const index = this.movements.indexOf(movement);
|
|
48
|
+
if (index === -1)
|
|
49
|
+
throw new Error("Movement not found in trip.");
|
|
50
|
+
return index;
|
|
51
|
+
}
|
|
52
|
+
get lineIds() {
|
|
53
|
+
// TODO: I don't think we're gonna represent trips where the realtime data
|
|
54
|
+
// changes the stop list entirely as GtfsUpdatedTrip (they're probably gonna
|
|
55
|
+
// be GtfsReplacedTrip, GtfsAddedTrip, or something), but IF WE DID, this
|
|
56
|
+
// mightn't be correct all the time.
|
|
57
|
+
//
|
|
58
|
+
// e.g. if an East Pakenham service terminates early at Dandenong, the
|
|
59
|
+
// scheduled trip data will say "Pakenham line", but now the updated trip
|
|
60
|
+
// has effectively also become a Cranbourne line service. To support that,
|
|
61
|
+
// an updated trip might need to have its own `lineIds` property (and
|
|
62
|
+
// `serviceTags` property).
|
|
63
|
+
//
|
|
64
|
+
// The same goes for `color`, but only if it can represent cases where we
|
|
65
|
+
// ADD stops and therefore an updated trip could be on an entirely different
|
|
66
|
+
// line than the scheduled one, e.g. for a service diverted from the
|
|
67
|
+
// Pakenham line to the Cranbourne line or whatever. It's not a perfect
|
|
68
|
+
// example because they're the same color in that case, but while highly
|
|
69
|
+
// unlikely, it's not IMPOSSIBLE that this could happen across lines with
|
|
70
|
+
// different colors.
|
|
71
|
+
return this.scheduledTrip.lineIds;
|
|
72
|
+
}
|
|
73
|
+
get serviceTags() {
|
|
74
|
+
return this.scheduledTrip.serviceTags;
|
|
75
|
+
}
|
|
76
|
+
get color() {
|
|
77
|
+
return this.scheduledTrip.color;
|
|
78
|
+
}
|
|
46
79
|
static unmodified(trip, serviceDay, timezone) {
|
|
47
80
|
return new GtfsUpdatedTrip({
|
|
48
81
|
scheduledTrip: trip,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-updated-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-updated-trip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-updated-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-updated-trip.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DeparturesIterator, type DeparturesIteratorResult } from "./departures-iterator.js";
|
|
2
2
|
import type { DeparturesBlock } from "./departures-block.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
4
4
|
export declare abstract class DeparturesBlockIterator<BlockType extends DeparturesBlock, EntryType> extends DeparturesIterator {
|
|
5
5
|
readonly block: BlockType;
|
|
6
6
|
private readonly _entries;
|
|
@@ -8,7 +8,7 @@ export declare abstract class DeparturesBlockIterator<BlockType extends Departur
|
|
|
8
8
|
private _direction;
|
|
9
9
|
private _nextValue;
|
|
10
10
|
constructor(block: BlockType, _entries: readonly EntryType[]);
|
|
11
|
-
set(instant: Temporal.Instant, direction:
|
|
11
|
+
set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
12
12
|
peek(): DeparturesIteratorResult | null;
|
|
13
13
|
take(): DeparturesIteratorResult;
|
|
14
14
|
protected abstract _convertEntryToResult(entry: EntryType): DeparturesIteratorResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/departures-block-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAIlC,MAAM,OAAgB,uBAGpB,SAAQ,kBAAkB;IAMf;IACQ;IANX,MAAM,CAAS;IACf,UAAU,
|
|
1
|
+
{"version":3,"file":"departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/departures-block-iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
2
2
|
import type { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
3
|
import type { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
4
4
|
import type { GtfsTripServicingMovement } from "../data/utils.js";
|
|
@@ -7,10 +7,11 @@ export declare class DeparturesIteratorResult {
|
|
|
7
7
|
readonly serviceDay: Temporal.PlainDate;
|
|
8
8
|
readonly instant: Temporal.Instant;
|
|
9
9
|
readonly movement: GtfsTripServicingMovement;
|
|
10
|
-
|
|
10
|
+
readonly movementIndex: number;
|
|
11
|
+
constructor(trip: GtfsScheduledTrip | GtfsUpdatedTrip, serviceDay: Temporal.PlainDate, instant: Temporal.Instant, movement: GtfsTripServicingMovement, movementIndex: number);
|
|
11
12
|
}
|
|
12
13
|
export declare abstract class DeparturesIterator {
|
|
13
|
-
abstract set(instant: Temporal.Instant, direction:
|
|
14
|
+
abstract set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
14
15
|
abstract peek(): DeparturesIteratorResult | null;
|
|
15
16
|
abstract take(): DeparturesIteratorResult;
|
|
16
17
|
}
|
|
@@ -3,11 +3,19 @@ export class DeparturesIteratorResult {
|
|
|
3
3
|
serviceDay;
|
|
4
4
|
instant;
|
|
5
5
|
movement;
|
|
6
|
-
|
|
6
|
+
movementIndex;
|
|
7
|
+
constructor(
|
|
8
|
+
// TODO: Revisit which of these are actually being used. Consider that
|
|
9
|
+
// additional `peek` methods, e.g. `peekPositionId`, might be added in
|
|
10
|
+
// future for performance optimisation (just fetch the next service's
|
|
11
|
+
// platform number without building a full corequery service object), so
|
|
12
|
+
// removing things like `movement` is not necessarily a good idea.
|
|
13
|
+
trip, serviceDay, instant, movement, movementIndex) {
|
|
7
14
|
this.trip = trip;
|
|
8
15
|
this.serviceDay = serviceDay;
|
|
9
16
|
this.instant = instant;
|
|
10
17
|
this.movement = movement;
|
|
18
|
+
this.movementIndex = movementIndex;
|
|
11
19
|
}
|
|
12
20
|
}
|
|
13
21
|
export class DeparturesIterator {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"departures-iterator.js","sourceRoot":"","sources":["../../src/departures/departures-iterator.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,wBAAwB;
|
|
1
|
+
{"version":3,"file":"departures-iterator.js","sourceRoot":"","sources":["../../src/departures/departures-iterator.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,wBAAwB;IAOxB;IACA;IACA;IACA;IACA;IAVX;IACE,sEAAsE;IACtE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IACzD,IAAyC,EACzC,UAA8B,EAC9B,OAAyB,EACzB,QAAmC,EACnC,aAAqB;QAJrB,SAAI,GAAJ,IAAI,CAAqC;QACzC,eAAU,GAAV,UAAU,CAAoB;QAC9B,YAAO,GAAP,OAAO,CAAkB;QACzB,aAAQ,GAAR,QAAQ,CAA2B;QACnC,kBAAa,GAAb,aAAa,CAAQ;IAC7B,CAAC;CACL;AAED,MAAM,OAAgB,kBAAkB;CASvC"}
|
|
@@ -7,6 +7,7 @@ export type GtfsScheduledMovementsIndexEntry = {
|
|
|
7
7
|
readonly trip: GtfsScheduledTrip;
|
|
8
8
|
readonly time: GtfsStopTime;
|
|
9
9
|
readonly movement: GtfsScheduledTripServicingMovement;
|
|
10
|
+
readonly movementIndex: number;
|
|
10
11
|
};
|
|
11
12
|
export declare class GtfsScheduledMovementsIndex {
|
|
12
13
|
private readonly _index;
|
|
@@ -18,7 +18,8 @@ export class GtfsScheduledMovementsIndex {
|
|
|
18
18
|
const index = new Map();
|
|
19
19
|
const calendarsByStop = new Map();
|
|
20
20
|
for (const trip of schedule.allTrips()) {
|
|
21
|
-
for (
|
|
21
|
+
for (let i = 0; i < trip.movements.length; i++) {
|
|
22
|
+
const movement = trip.movements[i];
|
|
22
23
|
if (!movement.isServicing)
|
|
23
24
|
continue;
|
|
24
25
|
const entry = {
|
|
@@ -27,6 +28,7 @@ export class GtfsScheduledMovementsIndex {
|
|
|
27
28
|
// The departure time, unless it's a terminating movement, in which
|
|
28
29
|
// case it's the arrival time.
|
|
29
30
|
time: movement.timeRelevantToDeparturesAlgorithm,
|
|
31
|
+
movementIndex: i,
|
|
30
32
|
};
|
|
31
33
|
if (!index.has(movement.stopId)) {
|
|
32
34
|
index.set(movement.stopId, []);
|
|
@@ -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;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-movements-index.js","sourceRoot":"","sources":["../../src/departures/gtfs-scheduled-movements-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { DeparturesIterator, DeparturesIteratorResult } from "./departures-itera
|
|
|
2
2
|
import type { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
3
3
|
import type { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
|
|
4
4
|
import type { GtfsTripServicingMovement } from "../data/utils.js";
|
|
5
|
-
import type {
|
|
5
|
+
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
6
6
|
export declare class MultifeedDeparturesIteratorResult extends DeparturesIteratorResult {
|
|
7
7
|
readonly feed: string;
|
|
8
|
-
constructor(feed: string, trip: GtfsScheduledTrip | GtfsUpdatedTrip, serviceDay: Temporal.PlainDate, instant: Temporal.Instant, movement: GtfsTripServicingMovement);
|
|
8
|
+
constructor(feed: string, trip: GtfsScheduledTrip | GtfsUpdatedTrip, serviceDay: Temporal.PlainDate, instant: Temporal.Instant, movement: GtfsTripServicingMovement, movementIndex: number);
|
|
9
9
|
static from(feed: string, result: DeparturesIteratorResult): MultifeedDeparturesIteratorResult;
|
|
10
10
|
}
|
|
11
11
|
export declare class MultifeedDeparturesIterator {
|
|
@@ -13,7 +13,7 @@ export declare class MultifeedDeparturesIterator {
|
|
|
13
13
|
private _zipper;
|
|
14
14
|
constructor(_iterators: Map<DeparturesIterator, string>);
|
|
15
15
|
static build(config: Record<string, DeparturesIterator>): MultifeedDeparturesIterator;
|
|
16
|
-
set(instant: Temporal.Instant, direction:
|
|
16
|
+
set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
17
17
|
peek(): MultifeedDeparturesIteratorResult | null;
|
|
18
18
|
take(): MultifeedDeparturesIteratorResult;
|
|
19
19
|
private _wrap;
|
|
@@ -4,12 +4,12 @@ import { ZipperDeparturesIterator } from "./zipper-departures-iterator.js";
|
|
|
4
4
|
// iterator level, not within the GTFS ecosystem.
|
|
5
5
|
export class MultifeedDeparturesIteratorResult extends DeparturesIteratorResult {
|
|
6
6
|
feed;
|
|
7
|
-
constructor(feed, trip, serviceDay, instant, movement) {
|
|
8
|
-
super(trip, serviceDay, instant, movement);
|
|
7
|
+
constructor(feed, trip, serviceDay, instant, movement, movementIndex) {
|
|
8
|
+
super(trip, serviceDay, instant, movement, movementIndex);
|
|
9
9
|
this.feed = feed;
|
|
10
10
|
}
|
|
11
11
|
static from(feed, result) {
|
|
12
|
-
return new MultifeedDeparturesIteratorResult(feed, result.trip, result.serviceDay, result.instant, result.movement);
|
|
12
|
+
return new MultifeedDeparturesIteratorResult(feed, result.trip, result.serviceDay, result.instant, result.movement, result.movementIndex);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
export class MultifeedDeparturesIterator {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multifeed-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/multifeed-departures-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,+EAA+E;AAC/E,iDAAiD;AAEjD,MAAM,OAAO,iCAAkC,SAAQ,wBAAwB;IAElE;IADX,YACW,IAAY,EACrB,IAAyC,EACzC,UAA8B,EAC9B,OAAyB,EACzB,QAAmC;
|
|
1
|
+
{"version":3,"file":"multifeed-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/multifeed-departures-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,+EAA+E;AAC/E,iDAAiD;AAEjD,MAAM,OAAO,iCAAkC,SAAQ,wBAAwB;IAElE;IADX,YACW,IAAY,EACrB,IAAyC,EACzC,UAA8B,EAC9B,OAAyB,EACzB,QAAmC,EACnC,aAAqB;QAErB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAPjD,SAAI,GAAJ,IAAI,CAAQ;IAQvB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,IAAY,EACZ,MAAgC;QAEhC,OAAO,IAAI,iCAAiC,CAC1C,IAAI,EACJ,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,CACrB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IAGT;IAFrB,OAAO,CAA2B;IAE1C,YAA6B,UAA2C;QAA3C,eAAU,GAAV,UAAU,CAAiC;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,CAAC,KAAK,CACV,MAA0C;QAE1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CACD,OAAyB,EACzB,SAAuC;QAEvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,IAAI;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,MAAM,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEpD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,QAAQ,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CACX,MAAgC,EAChC,QAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,IAAI,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE5D,OAAO,iCAAiC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -14,7 +14,7 @@ export class RealtimeDeparturesBlockIterator extends DeparturesBlockIterator {
|
|
|
14
14
|
return new RealtimeDeparturesBlockIterator(block, realtimeData);
|
|
15
15
|
}
|
|
16
16
|
_convertEntryToResult(entry) {
|
|
17
|
-
return new DeparturesIteratorResult(entry.trip, entry.trip.serviceDay, entry.instant, entry.movement);
|
|
17
|
+
return new DeparturesIteratorResult(entry.trip, entry.trip.serviceDay, entry.instant, entry.movement, entry.movementIndex);
|
|
18
18
|
}
|
|
19
19
|
_shouldSkipEntry(entry) {
|
|
20
20
|
const { movement, trip } = entry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime-departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/realtime-departures-block-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,OAAO,+BAAgC,SAAQ,uBAGpD;IAGoB;IAFnB,YACE,KAA8B,EACb,aAA+B;QAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAFX,kBAAa,GAAb,aAAa,CAAkB;IAGlD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,YAA8B;QAC5D,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAE/B,OAAO,IAAI,+BAA+B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAEkB,qBAAqB,CACtC,KAAmC;QAEnC,OAAO,IAAI,wBAAwB,CACjC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CAAC,UAAU,EACrB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"realtime-departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/realtime-departures-block-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,OAAO,+BAAgC,SAAQ,uBAGpD;IAGoB;IAFnB,YACE,KAA8B,EACb,aAA+B;QAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAFX,kBAAa,GAAb,aAAa,CAAkB;IAGlD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,YAA8B;QAC5D,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QACrE,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAE/B,OAAO,IAAI,+BAA+B,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAEkB,qBAAqB,CACtC,KAAmC;QAEnC,OAAO,IAAI,wBAAwB,CACjC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,CAAC,UAAU,EACrB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,CACpB,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CACjC,KAAmC;QAEnC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QAEjC,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,IAAI,KAAK,aAAa;YAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI;YACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9D,CAAC,IAAI,CAAC,gBAAgB,CACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EACtC,KAAK,CAAC,IAAI,CAAC,UAAU,CACtB,CAAC;QACJ,IAAI,uBAAuB;YAAE,OAAO,IAAI,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,gBAAgB,CACtB,MAAc,EACd,UAA8B;QAE9B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACzD,MAAM,EACN,UAAU,CACX,CAAC;QACF,OAAO,YAAY,EAAE,WAAW,IAAI,KAAK,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -6,6 +6,7 @@ export type RealtimeDeparturesBlockEntry = {
|
|
|
6
6
|
readonly trip: GtfsUpdatedTrip;
|
|
7
7
|
readonly instant: Temporal.Instant;
|
|
8
8
|
readonly movement: GtfsUpdatedTripServicingMovement;
|
|
9
|
+
readonly movementIndex: number;
|
|
9
10
|
};
|
|
10
11
|
export declare class RealtimeDeparturesBlock extends DeparturesBlock {
|
|
11
12
|
readonly entries: readonly RealtimeDeparturesBlockEntry[];
|
|
@@ -12,7 +12,8 @@ export class RealtimeDeparturesBlock extends DeparturesBlock {
|
|
|
12
12
|
realtimeData) {
|
|
13
13
|
const movements = [];
|
|
14
14
|
for (const trip of realtimeData.allTrips()) {
|
|
15
|
-
for (
|
|
15
|
+
for (let i = 0; i < trip.movements.length; i++) {
|
|
16
|
+
const movement = trip.movements[i];
|
|
16
17
|
if (!movement.isServicing)
|
|
17
18
|
continue;
|
|
18
19
|
if (movement.stopId !== stopId)
|
|
@@ -21,6 +22,7 @@ export class RealtimeDeparturesBlock extends DeparturesBlock {
|
|
|
21
22
|
trip,
|
|
22
23
|
instant: movement.timeRelevantToDeparturesAlgorithm,
|
|
23
24
|
movement,
|
|
25
|
+
movementIndex: i,
|
|
24
26
|
});
|
|
25
27
|
}
|
|
26
28
|
}
|
|
@@ -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;
|
|
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;gBACnC,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"}
|
|
@@ -7,7 +7,7 @@ export class ScheduledDeparturesBlockIterator extends DeparturesBlockIterator {
|
|
|
7
7
|
this._realtimeData = _realtimeData;
|
|
8
8
|
}
|
|
9
9
|
_convertEntryToResult(entry) {
|
|
10
|
-
return new DeparturesIteratorResult(entry.trip, this.block.serviceDay, entry.time.toInstant(this.block.serviceDay, this.block.timezone), entry.movement);
|
|
10
|
+
return new DeparturesIteratorResult(entry.trip, this.block.serviceDay, entry.time.toInstant(this.block.serviceDay, this.block.timezone), entry.movement, entry.movementIndex);
|
|
11
11
|
}
|
|
12
12
|
_shouldSkipEntry(entry) {
|
|
13
13
|
// A scheduled departures block has all movements for a given stop, not just
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/scheduled-departures-block-iterator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,MAAM,OAAO,gCAAiC,SAAQ,uBAGrD;IAGoB;IAFnB,YACE,KAA+B,EACd,aAA+B;QAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAFtB,kBAAa,GAAb,aAAa,CAAkB;IAGlD,CAAC;IAEkB,qBAAqB,CACtC,KAAuC;QAEvC,OAAO,IAAI,wBAAwB,CACjC,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChE,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"scheduled-departures-block-iterator.js","sourceRoot":"","sources":["../../src/departures/scheduled-departures-block-iterator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,MAAM,OAAO,gCAAiC,SAAQ,uBAGrD;IAGoB;IAFnB,YACE,KAA+B,EACd,aAA+B;QAEhD,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAFtB,kBAAa,GAAb,aAAa,CAAkB;IAGlD,CAAC;IAEkB,qBAAqB,CACtC,KAAuC;QAEvC,OAAO,IAAI,wBAAwB,CACjC,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAChE,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,CACpB,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CACjC,KAAuC;QAEvC,4EAA4E;QAC5E,6BAA6B;QAC7B,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5E,IAAI,cAAc;YAAE,OAAO,IAAI,CAAC;QAEhC,uEAAuE;QACvE,yEAAyE;QACzE,4EAA4E;QAC5E,SAAS;QACT,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACzD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QACF,MAAM,0BAA0B,GAAG,YAAY,IAAI,IAAI,CAAC;QACxD,IAAI,0BAA0B;YAAE,OAAO,IAAI,CAAC;QAE5C,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,gEAAgE;QAChE,EAAE;QACF,qEAAqE;QACrE,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,qEAAqE;QACrE,EAAE;QACF,mEAAmE;QACnE,MAAM,uBAAuB,GAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa;YACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YAC5D,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,uBAAuB;YAAE,OAAO,IAAI,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CACzD,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QACF,OAAO,YAAY,EAAE,WAAW,IAAI,KAAK,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -3,7 +3,7 @@ import type { GtfsScheduledMovementsIndex } from "./gtfs-scheduled-movements-ind
|
|
|
3
3
|
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
|
-
import type {
|
|
6
|
+
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
7
7
|
export declare class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
8
8
|
private readonly _blockBuilder;
|
|
9
9
|
private readonly _realtimeData;
|
|
@@ -19,7 +19,7 @@ export declare class ScheduledDeparturesIterator extends DeparturesIterator {
|
|
|
19
19
|
blockSearchesRan: number;
|
|
20
20
|
subiteratorsCreated: number;
|
|
21
21
|
};
|
|
22
|
-
set(instant: Temporal.Instant, direction:
|
|
22
|
+
set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
23
23
|
peek(): DeparturesIteratorResult | null;
|
|
24
24
|
take(): DeparturesIteratorResult;
|
|
25
25
|
private _determineIteratorWithNextValue;
|
|
@@ -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,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,OAAO,2BAA4B,SAAQ,kBAAkB;IAU9C;IACA;IAVX,UAAU,
|
|
1
|
+
{"version":3,"file":"scheduled-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/scheduled-departures-iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { DeparturesIterator, DeparturesIteratorResult } from "./departures-itera
|
|
|
2
2
|
import type { GtfsScheduledMovementsIndex } from "./gtfs-scheduled-movements-index.js";
|
|
3
3
|
import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
|
|
4
4
|
import type { TimezoneData } from "../config/timezone-data.js";
|
|
5
|
-
import type {
|
|
5
|
+
import type { DeparturesIterationDirection } from "../corequery-types.js";
|
|
6
6
|
export declare class ZipperDeparturesIterator extends DeparturesIterator {
|
|
7
7
|
private readonly _iterators;
|
|
8
8
|
private _direction;
|
|
9
9
|
private _nextIterator;
|
|
10
10
|
constructor(_iterators: DeparturesIterator[]);
|
|
11
|
-
set(instant: Temporal.Instant, direction:
|
|
11
|
+
set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
|
|
12
12
|
peek(): DeparturesIteratorResult | null;
|
|
13
13
|
peekAtIterator(): DeparturesIterator | null;
|
|
14
14
|
take(): DeparturesIteratorResult;
|
|
@@ -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;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAM1F,MAAM,OAAO,wBAAyB,SAAQ,kBAAkB;IAIjC;IAHrB,UAAU,
|
|
1
|
+
{"version":3,"file":"zipper-departures-iterator.js","sourceRoot":"","sources":["../../src/departures/zipper-departures-iterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DepartureFields, DeparturesIterationDirection, DeparturesIterator, ServiceConnectionFields, ServiceFields, ServiceOriginatingMovementFields, ServicePassingMovementFields, ServiceRegularMovementFields, ServiceSource, ServiceTerminatingMovementFields } from "./corequery-types.js";
|
|
2
|
+
import type { GtfsSystem } from "./gtfs-system.js";
|
|
3
|
+
type GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> = {
|
|
4
|
+
readonly sourceId: string;
|
|
5
|
+
readonly gtfsSystem: GtfsSystem;
|
|
6
|
+
buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
|
|
7
|
+
buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
|
|
8
|
+
buildTags: (tags: Set<number>) => CorequeryTagsClass;
|
|
9
|
+
buildServiceOriginatingMovement: (fields: ServiceOriginatingMovementFields) => CorequeryServiceOriginatingMovementClass;
|
|
10
|
+
buildServicePassingMovement: (fields: ServicePassingMovementFields) => CorequeryServicePassingMovementClass;
|
|
11
|
+
buildServiceRegularMovement: (fields: ServiceRegularMovementFields) => CorequeryServiceRegularMovementClass;
|
|
12
|
+
buildServiceTerminatingMovement: (fields: ServiceTerminatingMovementFields) => CorequeryServiceTerminatingMovementClass;
|
|
13
|
+
buildServiceConnection: (fields: ServiceConnectionFields) => CorequeryServiceConnectionClass;
|
|
14
|
+
};
|
|
15
|
+
export declare class GtfsServiceSource<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass> {
|
|
16
|
+
readonly sourceId: string;
|
|
17
|
+
readonly gtfsSystem: GtfsSystem;
|
|
18
|
+
private readonly _converter;
|
|
19
|
+
constructor(fields: GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServiceConnectionClass>);
|
|
20
|
+
asCorequeryServiceSource(): ServiceSource<CorequeryDepartureClass, CorequeryServiceClass>;
|
|
21
|
+
getService(intrasourceId: string): Promise<CorequeryServiceClass | null>;
|
|
22
|
+
getDeparturesIterator(stopId: number, instant: Temporal.Instant, direction: DeparturesIterationDirection): DeparturesIterator<CorequeryDepartureClass>;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { assertNever } from "@dan-schel/js-utils";
|
|
2
|
+
import { CorequeryIntrasourceId } from "./corequeryify/corequery-intrasource-id.js";
|
|
3
|
+
import { ServiceConverter } from "./corequeryify/service-converter.js";
|
|
4
|
+
import { GtfsScheduledTrip } from "./data/gtfs-scheduled-trip.js";
|
|
5
|
+
import { GtfsUpdatedTrip } from "./data/gtfs-updated-trip.js";
|
|
6
|
+
import { ServiceConversionIterator } from "./corequeryify/service-conversion-iterator.js";
|
|
7
|
+
export class GtfsServiceSource {
|
|
8
|
+
sourceId;
|
|
9
|
+
gtfsSystem;
|
|
10
|
+
_converter;
|
|
11
|
+
constructor(fields) {
|
|
12
|
+
this.sourceId = fields.sourceId;
|
|
13
|
+
this.gtfsSystem = fields.gtfsSystem;
|
|
14
|
+
this._converter = new ServiceConverter({
|
|
15
|
+
sourceId: fields.sourceId,
|
|
16
|
+
buildDeparture: fields.buildDeparture,
|
|
17
|
+
buildService: fields.buildService,
|
|
18
|
+
buildTags: fields.buildTags,
|
|
19
|
+
buildServiceOriginatingMovement: fields.buildServiceOriginatingMovement,
|
|
20
|
+
buildServicePassingMovement: fields.buildServicePassingMovement,
|
|
21
|
+
buildServiceRegularMovement: fields.buildServiceRegularMovement,
|
|
22
|
+
buildServiceTerminatingMovement: fields.buildServiceTerminatingMovement,
|
|
23
|
+
buildServiceConnection: fields.buildServiceConnection,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
asCorequeryServiceSource() {
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
getService(intrasourceId) {
|
|
30
|
+
const id = CorequeryIntrasourceId.parse(intrasourceId);
|
|
31
|
+
if (id == null)
|
|
32
|
+
return Promise.resolve(null);
|
|
33
|
+
const feed = this.gtfsSystem.requireFeed();
|
|
34
|
+
const trip = feed.getTrip(id.gtfsTripId, id.serviceDay);
|
|
35
|
+
if (trip == null)
|
|
36
|
+
return Promise.resolve(null);
|
|
37
|
+
if (trip instanceof GtfsScheduledTrip) {
|
|
38
|
+
const result = this._converter.convertScheduledTrip(trip, id.serviceDay, feed.timezoneData.timezone);
|
|
39
|
+
return Promise.resolve(result);
|
|
40
|
+
}
|
|
41
|
+
else if (trip instanceof GtfsUpdatedTrip) {
|
|
42
|
+
const result = this._converter.convertUpdatedTrip(trip);
|
|
43
|
+
return Promise.resolve(result);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
assertNever(trip);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
getDeparturesIterator(stopId, instant, direction) {
|
|
50
|
+
const feed = this.gtfsSystem.requireFeed();
|
|
51
|
+
const iterator = feed.createDepartureIterator(stopId);
|
|
52
|
+
iterator.set(instant, direction);
|
|
53
|
+
return new ServiceConversionIterator(iterator, this._converter, feed.timezoneData.timezone);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=gtfs-service-source.js.map
|
|
@@ -0,0 +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;AAqD1F,MAAM,OAAO,iBAAiB;IAUnB,QAAQ,CAAS;IACjB,UAAU,CAAa;IAEf,UAAU,CASzB;IAEF,YACE,MASC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CASpC;YACA,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,+BAA+B,EAAE,MAAM,CAAC,+BAA+B;YACvE,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;YAC/D,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;YAC/D,+BAA+B,EAAE,MAAM,CAAC,+BAA+B;YACvE,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;SACtD,CAAC,CAAC;IACL,CAAC;IAED,wBAAwB;QAItB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,aAAqB;QAC9B,MAAM,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,EAAE,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACjD,IAAI,EACJ,EAAE,CAAC,UAAU,EACb,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC3B,CAAC;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,qBAAqB,CACnB,MAAc,EACd,OAAyB,EACzB,SAAuC;QAEvC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACtD,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEjC,OAAO,IAAI,yBAAyB,CASlC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAElC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,0BAA0B,CAAC;AAElC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "corequery-gtfs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"build": "rm -rf dist && tsc -p tsconfig.json",
|
|
12
12
|
"test": "vitest --run",
|
|
13
13
|
"test-coverage": "vitest --run --coverage",
|
|
14
|
-
"lint": "
|
|
14
|
+
"lint": "tsc -p tsconfig.json --noEmit && eslint . --max-warnings 0 && knip",
|
|
15
15
|
"format": "prettier --write .",
|
|
16
16
|
"format-check": "prettier --check .",
|
|
17
17
|
"bump-check": "bump-check --ignore \"^renovate\\/\""
|