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.
Files changed (55) hide show
  1. package/dist/corequery-types.d.ts +71 -1
  2. package/dist/corequery-types.js +2 -1
  3. package/dist/corequery-types.js.map +1 -1
  4. package/dist/corequeryify/corequery-intrasource-id.d.ts +7 -0
  5. package/dist/corequeryify/corequery-intrasource-id.js +24 -0
  6. package/dist/corequeryify/corequery-intrasource-id.js.map +1 -0
  7. package/dist/corequeryify/service-conversion-iterator.d.ts +11 -0
  8. package/dist/corequeryify/service-conversion-iterator.js +41 -0
  9. package/dist/corequeryify/service-conversion-iterator.js.map +1 -0
  10. package/dist/corequeryify/service-converter.d.ts +32 -0
  11. package/dist/corequeryify/service-converter.js +206 -0
  12. package/dist/corequeryify/service-converter.js.map +1 -0
  13. package/dist/data/gtfs-feed.d.ts +4 -1
  14. package/dist/data/gtfs-feed.js +11 -7
  15. package/dist/data/gtfs-feed.js.map +1 -1
  16. package/dist/data/gtfs-realtime-data.d.ts +1 -0
  17. package/dist/data/gtfs-realtime-data.js +5 -0
  18. package/dist/data/gtfs-realtime-data.js.map +1 -1
  19. package/dist/data/gtfs-scheduled-trip.d.ts +1 -0
  20. package/dist/data/gtfs-scheduled-trip.js +6 -0
  21. package/dist/data/gtfs-scheduled-trip.js.map +1 -1
  22. package/dist/data/gtfs-stop-time.d.ts +1 -1
  23. package/dist/data/gtfs-stop-time.js +1 -1
  24. package/dist/data/gtfs-updated-trip.d.ts +5 -0
  25. package/dist/data/gtfs-updated-trip.js +33 -0
  26. package/dist/data/gtfs-updated-trip.js.map +1 -1
  27. package/dist/departures/departures-block-iterator.d.ts +2 -2
  28. package/dist/departures/departures-block-iterator.js.map +1 -1
  29. package/dist/departures/departures-iterator.d.ts +4 -3
  30. package/dist/departures/departures-iterator.js +9 -1
  31. package/dist/departures/departures-iterator.js.map +1 -1
  32. package/dist/departures/gtfs-scheduled-movements-index.d.ts +1 -0
  33. package/dist/departures/gtfs-scheduled-movements-index.js +3 -1
  34. package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -1
  35. package/dist/departures/multifeed-departures-iterator.d.ts +3 -3
  36. package/dist/departures/multifeed-departures-iterator.js +3 -3
  37. package/dist/departures/multifeed-departures-iterator.js.map +1 -1
  38. package/dist/departures/realtime-departures-block-iterator.js +1 -1
  39. package/dist/departures/realtime-departures-block-iterator.js.map +1 -1
  40. package/dist/departures/realtime-departures-block.d.ts +1 -0
  41. package/dist/departures/realtime-departures-block.js +3 -1
  42. package/dist/departures/realtime-departures-block.js.map +1 -1
  43. package/dist/departures/scheduled-departures-block-iterator.js +1 -1
  44. package/dist/departures/scheduled-departures-block-iterator.js.map +1 -1
  45. package/dist/departures/scheduled-departures-iterator.d.ts +2 -2
  46. package/dist/departures/scheduled-departures-iterator.js.map +1 -1
  47. package/dist/departures/zipper-departures-iterator.d.ts +2 -2
  48. package/dist/departures/zipper-departures-iterator.js.map +1 -1
  49. package/dist/gtfs-service-source.d.ts +24 -0
  50. package/dist/gtfs-service-source.js +56 -0
  51. package/dist/gtfs-service-source.js.map +1 -0
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. 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
- export type DeparturesSearchDirection = "forwards" | "backwards";
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 {};
@@ -1,3 +1,4 @@
1
- // Because we don't want to depend on CoreQuery.
1
+ // Because we don't want to depend on CoreQuery. (Just because I'm scared of
2
+ // npm's peer dependency system and don't understand how it works!)
2
3
  export {};
3
4
  //# sourceMappingURL=corequery-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"corequery-types.js","sourceRoot":"","sources":["../src/corequery-types.ts"],"names":[],"mappings":"AAAA,gDAAgD"}
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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"}
@@ -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
- createCorequeryDepartureIterator(stopId: number): ZipperDeparturesIterator;
17
+ getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip | null;
18
+ createDepartureIterator(stopId: number): ZipperDeparturesIterator;
16
19
  }
@@ -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
- createCorequeryDepartureIterator(stopId) {
24
- // TODO: Should be the corequery departure iterator (once the design of that
25
- // is finalised).
26
- //
27
- // TODO: Maybe the MultifeedDeparturesIterator shouldn't operate on the GTFS
28
- // level, but instead on CoreQuery departures? Why attach a subfeed ID, when
29
- // we could just go straight to attaching the corequery data source ID?
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;AAIvF,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,gCAAgC,CAAC,MAAc;QAC7C,4EAA4E;QAC5E,iBAAiB;QACjB,EAAE;QACF,4EAA4E;QAC5E,4EAA4E;QAC5E,uEAAuE;QACvE,OAAO,wBAAwB,CAAC,OAAO,CACrC,MAAM,EACN,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;CACF"}
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GAErC,MAAM,oCAAoC,CAAC;AAuB5C,MAAM,OAAO,iBAAiB;IACnB,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,QAAQ,CAAe;IACvB,SAAS,CAAuC;IAChD,OAAO,CAAoB;IAC3B,KAAK,CAAe;IACpB,WAAW,CAAoB;IAC/B,YAAY,CAA2B;IACvC,QAAQ,CAA2B;IAE5C,YAAY,MAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACjE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,SAA2C;QAC9C,OAAO,IAAI,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,iBAAiB,CACtB,IAAuB,EACvB,EAAqB;QAErB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,WAAW;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,aAAa,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,aAAa,CAAC;QAEhE,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC;QAE9D,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAEnD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,EACZ,UAAU,EACV,YAAY,EACZ,gBAAgB,GAAG,QAAQ,YAAY,EAAE,EACzC,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,GAAG,QAAQ,cAAc,EAAE,GAS9C;QACC,OAAO,IAAI,iBAAiB,CAAC;YAC3B,UAAU;YACV,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxC,SAAS,EAAE;gBACT,IAAI,oCAAoC,CAAC;oBACvC,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,eAAe;oBAC9B,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,gBAAgB;wBACpB,MAAM,EAAE,YAAY;qBACrB;oBACD,gBAAgB,EAAE,CAAC;iBACpB,CAAC;gBACF,IAAI,oCAAoC,CAAC;oBACvC,MAAM,EAAE,cAAc;oBACtB,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,eAAe;oBAC5B,cAAc,EAAE;wBACd,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,kBAAkB;wBACtB,MAAM,EAAE,cAAc;qBACvB;oBACD,gBAAgB,EAAE,CAAC;iBACpB,CAAC;aACH;YACD,OAAO,EAAE,CAAC,CAAC,CAAC;YACZ,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
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
- asString(): string;
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
- asString() {
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;AAiB5C,MAAM,OAAO,eAAe;IACjB,aAAa,CAAoB;IAE1C,qEAAqE;IACrE,sBAAsB;IACb,UAAU,CAAqB;IAE/B,SAAS,CAAqC;IAC9C,WAAW,CAAU;IAE9B,YAAY,MAA6B;QACvC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACjE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,SAAyC;QAC5C,OAAO,IAAI,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,aAAa,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,aAAa,CAAC;QAEhE,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC;QAE9D,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,UAAU,CACf,IAAuB,EACvB,UAA8B,EAC9B,QAAgB;QAEhB,OAAO,IAAI,eAAe,CAAC;YACzB,aAAa,EAAE,IAAI;YACnB,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CACpD;YACD,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
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 { DeparturesSearchDirection } from "../corequery-types.js";
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: DeparturesSearchDirection): void;
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":"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"}
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 { DeparturesSearchDirection } from "../corequery-types.js";
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
- constructor(trip: GtfsScheduledTrip | GtfsUpdatedTrip, serviceDay: Temporal.PlainDate, instant: Temporal.Instant, movement: GtfsTripServicingMovement);
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: DeparturesSearchDirection): void;
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
- constructor(trip, serviceDay, instant, movement) {
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;IAExB;IACA;IACA;IACA;IAJX,YACW,IAAyC,EACzC,UAA8B,EAC9B,OAAyB,EACzB,QAAmC;QAHnC,SAAI,GAAJ,IAAI,CAAqC;QACzC,eAAU,GAAV,UAAU,CAAoB;QAC9B,YAAO,GAAP,OAAO,CAAkB;QACzB,aAAQ,GAAR,QAAQ,CAA2B;IAC3C,CAAC;CACL;AAED,MAAM,OAAgB,kBAAkB;CASvC"}
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 (const movement of trip.movements) {
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":"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"}
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 { DeparturesSearchDirection } from "../corequery-types.js";
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: DeparturesSearchDirection): void;
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;QAEnC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QANlC,SAAI,GAAJ,IAAI,CAAQ;IAOvB,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,CAChB,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,CAAC,OAAyB,EAAE,SAAoC;QACjE,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"}
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,CACf,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"}
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 (const movement of trip.movements) {
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;AAQxD,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,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACtC,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;iBACT,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"}
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,CACf,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"}
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 { DeparturesSearchDirection } from "../corequery-types.js";
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: DeparturesSearchDirection): void;
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":"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"}
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 { DeparturesSearchDirection } from "../corequery-types.js";
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: DeparturesSearchDirection): void;
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":"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"}
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
@@ -4,3 +4,4 @@ export * from "./data/index.js";
4
4
  export * from "./departures/index.js";
5
5
  export * from "./parser/index.js";
6
6
  export * from "./gtfs-system.js";
7
+ export * from "./gtfs-service-source.js";
package/dist/index.js CHANGED
@@ -4,4 +4,5 @@ export * from "./data/index.js";
4
4
  export * from "./departures/index.js";
5
5
  export * from "./parser/index.js";
6
6
  export * from "./gtfs-system.js";
7
+ export * from "./gtfs-service-source.js";
7
8
  //# sourceMappingURL=index.js.map
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.1.4",
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": "eslint . --max-warnings 0 && tsc -p tsconfig.json --noEmit && knip",
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\\/\""