corequery-gtfs 0.7.0 → 0.8.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 (50) hide show
  1. package/dist/corequeryify/service-converter.d.ts +4 -1
  2. package/dist/corequeryify/service-converter.js +32 -39
  3. package/dist/corequeryify/service-converter.js.map +1 -1
  4. package/dist/data/gtfs-feed.d.ts +6 -2
  5. package/dist/data/gtfs-feed.js +25 -1
  6. package/dist/data/gtfs-feed.js.map +1 -1
  7. package/dist/data/gtfs-realtime-data.d.ts +9 -1
  8. package/dist/data/gtfs-realtime-data.js +24 -2
  9. package/dist/data/gtfs-realtime-data.js.map +1 -1
  10. package/dist/data/gtfs-realtime-transfer.d.ts +12 -0
  11. package/dist/data/gtfs-realtime-transfer.js +21 -0
  12. package/dist/data/gtfs-realtime-transfer.js.map +1 -0
  13. package/dist/data/gtfs-schedule-data.d.ts +6 -1
  14. package/dist/data/gtfs-schedule-data.js +15 -3
  15. package/dist/data/gtfs-schedule-data.js.map +1 -1
  16. package/dist/data/gtfs-scheduled-trip.d.ts +0 -6
  17. package/dist/data/gtfs-scheduled-trip.js +0 -14
  18. package/dist/data/gtfs-scheduled-trip.js.map +1 -1
  19. package/dist/data/gtfs-transfer-mapping.d.ts +15 -0
  20. package/dist/data/gtfs-transfer-mapping.js +45 -0
  21. package/dist/data/gtfs-transfer-mapping.js.map +1 -0
  22. package/dist/data/gtfs-transfer.d.ts +18 -0
  23. package/dist/data/gtfs-transfer.js +20 -0
  24. package/dist/data/gtfs-transfer.js.map +1 -0
  25. package/dist/departures/departures-block-iterator.js +1 -0
  26. package/dist/departures/departures-block-iterator.js.map +1 -1
  27. package/dist/departures/filter-iterator.d.ts +11 -0
  28. package/dist/departures/filter-iterator.js +30 -0
  29. package/dist/departures/filter-iterator.js.map +1 -0
  30. package/dist/departures/realtime-departures-block-iterator.d.ts +1 -2
  31. package/dist/departures/realtime-departures-block-iterator.js +1 -18
  32. package/dist/departures/realtime-departures-block-iterator.js.map +1 -1
  33. package/dist/departures/scheduled-departures-block-iterator.d.ts +0 -1
  34. package/dist/departures/scheduled-departures-block-iterator.js +0 -25
  35. package/dist/departures/scheduled-departures-block-iterator.js.map +1 -1
  36. package/dist/gtfs-service-source.js +1 -0
  37. package/dist/gtfs-service-source.js.map +1 -1
  38. package/dist/parser/realtime/gtfs-realtime-data-parser.d.ts +2 -0
  39. package/dist/parser/realtime/gtfs-realtime-data-parser.js +24 -1
  40. package/dist/parser/realtime/gtfs-realtime-data-parser.js.map +1 -1
  41. package/dist/parser/schedule/gtfs-schedule-data-parser.js +2 -2
  42. package/dist/parser/schedule/gtfs-schedule-data-parser.js.map +1 -1
  43. package/dist/parser/schedule/{gtfs-transfer-connector.d.ts → gtfs-transfer-parser.d.ts} +7 -4
  44. package/dist/parser/schedule/{gtfs-transfer-connector.js → gtfs-transfer-parser.js} +40 -22
  45. package/dist/parser/schedule/gtfs-transfer-parser.js.map +1 -0
  46. package/dist/parser/schedule/gtfs-trip-parser.d.ts +5 -4
  47. package/dist/parser/schedule/gtfs-trip-parser.js +7 -9
  48. package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -1
  49. package/package.json +1 -1
  50. package/dist/parser/schedule/gtfs-transfer-connector.js.map +0 -1
@@ -0,0 +1,18 @@
1
+ export type GtfsTransfer = GtfsEntireVehicleFormsServiceTransfer;
2
+ type IGtfsTransfer = {
3
+ getInvolvedTripIds(): readonly string[];
4
+ equals(other: IGtfsTransfer): boolean;
5
+ };
6
+ type GtfsEntireVehicleFormsServiceTransferFields = {
7
+ fromTripId: string;
8
+ toTripId: string;
9
+ };
10
+ export declare class GtfsEntireVehicleFormsServiceTransfer implements IGtfsTransfer {
11
+ readonly fromTripId: string;
12
+ readonly toTripId: string;
13
+ constructor(fields: GtfsEntireVehicleFormsServiceTransferFields);
14
+ get type(): "entire-vehicle-forms-service";
15
+ getInvolvedTripIds(): readonly string[];
16
+ equals(other: IGtfsTransfer): boolean;
17
+ }
18
+ export {};
@@ -0,0 +1,20 @@
1
+ export class GtfsEntireVehicleFormsServiceTransfer {
2
+ fromTripId;
3
+ toTripId;
4
+ constructor(fields) {
5
+ this.fromTripId = fields.fromTripId;
6
+ this.toTripId = fields.toTripId;
7
+ }
8
+ get type() {
9
+ return "entire-vehicle-forms-service";
10
+ }
11
+ getInvolvedTripIds() {
12
+ return [this.fromTripId, this.toTripId];
13
+ }
14
+ equals(other) {
15
+ if (!(other instanceof GtfsEntireVehicleFormsServiceTransfer))
16
+ return false;
17
+ return (this.fromTripId === other.fromTripId && this.toTripId === other.toTripId);
18
+ }
19
+ }
20
+ //# sourceMappingURL=gtfs-transfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtfs-transfer.js","sourceRoot":"","sources":["../../src/data/gtfs-transfer.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,qCAAqC;IACvC,UAAU,CAAS;IACnB,QAAQ,CAAS;IAE1B,YAAY,MAAmD;QAC7D,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,8BAAuC,CAAC;IACjD,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAoB;QACzB,IAAI,CAAC,CAAC,KAAK,YAAY,qCAAqC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5E,OAAO,CACL,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CACzE,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { assertNever, itsOk } from "@dan-schel/js-utils";
2
2
  import { DeparturesIterator, } from "./departures-iterator.js";
3
+ // TODO: Create a folder for iterators.
3
4
  export class DeparturesBlockIterator extends DeparturesIterator {
4
5
  block;
5
6
  _entries;
@@ -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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"}
@@ -0,0 +1,11 @@
1
+ import type { DeparturesIterationDirection } from "../corequery-types.js";
2
+ import { DeparturesIterator, DeparturesIteratorResult } from "./departures-iterator.js";
3
+ export declare class FilterIterator extends DeparturesIterator {
4
+ private readonly _iterator;
5
+ private readonly _predicate;
6
+ constructor(_iterator: DeparturesIterator, _predicate: (result: DeparturesIteratorResult) => boolean);
7
+ set(instant: Temporal.Instant, direction: DeparturesIterationDirection): void;
8
+ peek(): DeparturesIteratorResult | null;
9
+ take(): DeparturesIteratorResult;
10
+ private _takeUntilMatchesPredicate;
11
+ }
@@ -0,0 +1,30 @@
1
+ import { DeparturesIterator, DeparturesIteratorResult, } from "./departures-iterator.js";
2
+ export class FilterIterator extends DeparturesIterator {
3
+ _iterator;
4
+ _predicate;
5
+ constructor(_iterator, _predicate) {
6
+ super();
7
+ this._iterator = _iterator;
8
+ this._predicate = _predicate;
9
+ }
10
+ set(instant, direction) {
11
+ this._iterator.set(instant, direction);
12
+ this._takeUntilMatchesPredicate();
13
+ }
14
+ peek() {
15
+ return this._iterator.peek();
16
+ }
17
+ take() {
18
+ const result = this._iterator.take();
19
+ this._takeUntilMatchesPredicate();
20
+ return result;
21
+ }
22
+ _takeUntilMatchesPredicate() {
23
+ let current = this._iterator.peek();
24
+ while (current != null && !this._predicate(current)) {
25
+ this._iterator.take();
26
+ current = this._iterator.peek();
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=filter-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-iterator.js","sourceRoot":"","sources":["../../src/departures/filter-iterator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAEjC;IACA;IAFnB,YACmB,SAA6B,EAC7B,UAAyD;QAE1E,KAAK,EAAE,CAAC;QAHS,cAAS,GAAT,SAAS,CAAoB;QAC7B,eAAU,GAAV,UAAU,CAA+C;IAG5E,CAAC;IAEQ,GAAG,CACV,OAAyB,EACzB,SAAuC;QAEvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAEQ,IAAI;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEQ,IAAI;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;CACF"}
@@ -7,6 +7,5 @@ export declare class RealtimeDeparturesBlockIterator extends DeparturesBlockIter
7
7
  constructor(block: RealtimeDeparturesBlock, _realtimeData: GtfsRealtimeData);
8
8
  static tryBuild(stopId: number, realtimeData: GtfsRealtimeData): RealtimeDeparturesBlockIterator | null;
9
9
  protected _convertEntryToResult(entry: RealtimeDeparturesBlockEntry): DeparturesIteratorResult;
10
- protected _shouldSkipEntry(entry: RealtimeDeparturesBlockEntry): boolean;
11
- private _isTripCancelled;
10
+ protected _shouldSkipEntry(_entry: RealtimeDeparturesBlockEntry): boolean;
12
11
  }
@@ -16,25 +16,8 @@ export class RealtimeDeparturesBlockIterator extends DeparturesBlockIterator {
16
16
  _convertEntryToResult(entry) {
17
17
  return new DeparturesIteratorResult(entry.trip, entry.trip.serviceDay, entry.instant, entry.movement, entry.movementIndex);
18
18
  }
19
- _shouldSkipEntry(entry) {
20
- const { movement, trip } = entry;
21
- // Even users not filtering arrivals won't be interested to see the same
22
- // trip listed twice at stations like Flinders Street or Town Hall, once for
23
- // the arrival and then again for the departure of the continuing trip. We
24
- // just need to be sure the continuing trip is actually running!
25
- //
26
- // TODO: This needs to change too.
27
- const isArrivalWhichContinues = movement.type === "terminating" &&
28
- trip.scheduledTrip.nextTrip != null &&
29
- trip.scheduledTrip.nextTrip.calendar.occursOn(trip.serviceDay) &&
30
- !this._isTripCancelled(trip.scheduledTrip.nextTrip.gtfsTripId, entry.trip.serviceDay);
31
- if (isArrivalWhichContinues)
32
- return true;
19
+ _shouldSkipEntry(_entry) {
33
20
  return false;
34
21
  }
35
- _isTripCancelled(tripId, serviceDay) {
36
- const realtimeTrip = this._realtimeData.getForScheduledTrip(tripId, serviceDay);
37
- return realtimeTrip?.isCancelled ?? false;
38
- }
39
22
  }
40
23
  //# sourceMappingURL=realtime-departures-block-iterator.js.map
@@ -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,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,EAAE;QACF,kCAAkC;QAClC,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,MAAoC;QAEpC,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -8,5 +8,4 @@ export declare class ScheduledDeparturesBlockIterator extends DeparturesBlockIte
8
8
  constructor(block: ScheduledDeparturesBlock, _realtimeData: GtfsRealtimeData);
9
9
  protected _convertEntryToResult(entry: GtfsScheduledMovementsIndexEntry): DeparturesIteratorResult;
10
10
  protected _shouldSkipEntry(entry: GtfsScheduledMovementsIndexEntry): boolean;
11
- private _isTripCancelled;
12
11
  }
@@ -24,32 +24,7 @@ export class ScheduledDeparturesBlockIterator extends DeparturesBlockIterator {
24
24
  const isOverriddenByRealtimeTrip = realtimeTrip != null;
25
25
  if (isOverriddenByRealtimeTrip)
26
26
  return true;
27
- // Even users not filtering arrivals won't be interested to see the same
28
- // trip listed twice at stations like Flinders Street or Town Hall, once for
29
- // the arrival and then again for the departure of the continuing trip. We
30
- // just need to be sure the continuing trip is actually running!
31
- //
32
- // TODO: Realtime trips which connect to other trips must cause those
33
- // scheduled trips to become realtime trips too, and realtime trips need to
34
- // have their own `nextTrip` and `prevTrip` properties, otherwise fetching
35
- // `nextTrip` here can lead to outdated info (the next trip might have been
36
- // altered and no longer connects with this one). Alternatively, having
37
- // `nextTrip` and `prevTrip` was a mistake, and we just only have trip IDs
38
- // in their place, or maybe an entirely separate list of transfers which
39
- // lives outside the trip (and supports other future transfer types).
40
- //
41
- // TODO: Wherever this logic ends up living, make sure it's tested.
42
- const isArrivalWhichContinues = entry.movement.type === "terminating" &&
43
- entry.trip.nextTrip != null &&
44
- entry.trip.nextTrip.calendar.occursOn(this.block.serviceDay) &&
45
- !this._isTripCancelled(entry.trip.nextTrip.gtfsTripId);
46
- if (isArrivalWhichContinues)
47
- return true;
48
27
  return false;
49
28
  }
50
- _isTripCancelled(tripId) {
51
- const realtimeTrip = this._realtimeData.getForScheduledTrip(tripId, this.block.serviceDay);
52
- return realtimeTrip?.isCancelled ?? false;
53
- }
54
29
  }
55
30
  //# sourceMappingURL=scheduled-departures-block-iterator.js.map
@@ -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,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"}
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,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -15,6 +15,7 @@ export class GtfsServiceSource {
15
15
  this.departureIterationLimitHours = fields.departureIterationLimitHours;
16
16
  this._converter = new ServiceConverter({
17
17
  sourceId: fields.sourceId,
18
+ gtfsSystem: fields.gtfsSystem,
18
19
  buildDeparture: fields.buildDeparture,
19
20
  buildService: fields.buildService,
20
21
  buildTags: fields.buildTags,
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-service-source.js","sourceRoot":"","sources":["../src/gtfs-service-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gtfs-service-source.js","sourceRoot":"","sources":["../src/gtfs-service-source.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export declare class GtfsRealtimeDataParser {
7
7
  private readonly _tripUpdateParser;
8
8
  constructor(timezone: string, onError: (error: GtfsRealtimeDataParsingError) => void);
9
9
  parse(realtimeData: RealtimeDataJson, scheduleData: GtfsScheduleData, stopGtfsIdMapping: StopGtfsIdMapping): GtfsRealtimeData;
10
+ private _parseTripUpdates;
11
+ private _breakTransfers;
10
12
  }
11
13
  export type GtfsRealtimeDataParsingError = GtfsTripUpdateParsingError;
@@ -1,4 +1,6 @@
1
1
  import { GtfsRealtimeData } from "../../data/gtfs-realtime-data.js";
2
+ import { GtfsBrokenTransfer } from "../../data/gtfs-realtime-transfer.js";
3
+ import { MutableGtfsTransferMapping } from "../../data/gtfs-transfer-mapping.js";
2
4
  import { GtfsTripUpdateParser, } from "./gtfs-trip-update-parser.js";
3
5
  export class GtfsRealtimeDataParser {
4
6
  _tripUpdateParser;
@@ -6,6 +8,11 @@ export class GtfsRealtimeDataParser {
6
8
  this._tripUpdateParser = new GtfsTripUpdateParser(timezone, onError);
7
9
  }
8
10
  parse(realtimeData, scheduleData, stopGtfsIdMapping) {
11
+ const updatedTrips = this._parseTripUpdates(realtimeData, scheduleData, stopGtfsIdMapping);
12
+ const brokenTransfers = this._breakTransfers(updatedTrips, scheduleData);
13
+ return new GtfsRealtimeData(updatedTrips, brokenTransfers, []);
14
+ }
15
+ _parseTripUpdates(realtimeData, scheduleData, stopGtfsIdMapping) {
9
16
  const updatedTrips = [];
10
17
  for (const tripUpdates of realtimeData.tripUpdates) {
11
18
  const result = this._tripUpdateParser.parse(tripUpdates, scheduleData, stopGtfsIdMapping);
@@ -13,7 +20,23 @@ export class GtfsRealtimeDataParser {
13
20
  updatedTrips.push(result);
14
21
  }
15
22
  }
16
- return new GtfsRealtimeData(updatedTrips);
23
+ return updatedTrips;
24
+ }
25
+ _breakTransfers(updatedTrips, scheduleData) {
26
+ const brokenTransfers = new MutableGtfsTransferMapping((x) => x.transfer.getInvolvedTripIds());
27
+ for (const updatedTrip of updatedTrips) {
28
+ if (updatedTrip.isCancelled) {
29
+ const transfers = scheduleData.getTransfersForTrip(updatedTrip.gtfsTripId);
30
+ for (const transfer of transfers) {
31
+ const brokenTransfer = new GtfsBrokenTransfer(transfer, updatedTrip.serviceDay);
32
+ const existing = brokenTransfers.forTripId(updatedTrip.gtfsTripId);
33
+ if (!existing.some((x) => x.equals(brokenTransfer))) {
34
+ brokenTransfers.push(brokenTransfer);
35
+ }
36
+ }
37
+ }
38
+ }
39
+ return brokenTransfers.toArray();
17
40
  }
18
41
  }
19
42
  //# sourceMappingURL=gtfs-realtime-data-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-realtime-data-parser.js","sourceRoot":"","sources":["../../../src/parser/realtime/gtfs-realtime-data-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,OAAO,sBAAsB;IAChB,iBAAiB,CAAuB;IAEzD,YACE,QAAgB,EAChB,OAAsD;QAEtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CACH,YAA8B,EAC9B,YAA8B,EAC9B,iBAAoC;QAEpC,MAAM,YAAY,GAAsB,EAAE,CAAC;QAE3C,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CACzC,WAAW,EACX,YAAY,EACZ,iBAAiB,CAClB,CAAC;YAEF,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"gtfs-realtime-data-parser.js","sourceRoot":"","sources":["../../../src/parser/realtime/gtfs-realtime-data-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAIjF,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,OAAO,sBAAsB;IAChB,iBAAiB,CAAuB;IAEzD,YACE,QAAgB,EAChB,OAAsD;QAEtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CACH,YAA8B,EAC9B,YAA8B,EAC9B,iBAAoC;QAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CACzC,YAAY,EACZ,YAAY,EACZ,iBAAiB,CAClB,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEzE,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAEO,iBAAiB,CACvB,YAA8B,EAC9B,YAA8B,EAC9B,iBAAoC;QAEpC,MAAM,YAAY,GAAsB,EAAE,CAAC;QAE3C,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CACzC,WAAW,EACX,YAAY,EACZ,iBAAiB,CAClB,CAAC;YAEF,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,eAAe,CACrB,YAA+B,EAC/B,YAA8B;QAE9B,MAAM,eAAe,GAAG,IAAI,0BAA0B,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CACvC,CAAC;QAEF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,mBAAmB,CAChD,WAAW,CAAC,UAAU,CACvB,CAAC;gBAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAC3C,QAAQ,EACR,WAAW,CAAC,UAAU,CACvB,CAAC;oBACF,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;wBACpD,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;CACF"}
@@ -11,8 +11,8 @@ export class GtfsScheduleDataParser {
11
11
  parse(csvs, lineGtfsIdMapping, stopGtfsIdMapping) {
12
12
  const { calendar, calendarDates, trips, stopTimes, transfers } = csvs;
13
13
  const parsedCalendars = this._calendarParser.parse(calendar, calendarDates);
14
- const { parsedTrips, ignoredTripIds } = this._tripParser.parse(trips, stopTimes, transfers, parsedCalendars, lineGtfsIdMapping, stopGtfsIdMapping);
15
- return new GtfsScheduleData(parsedTrips, parsedCalendars, ignoredTripIds);
14
+ const { parsedTrips, parsedTransfers, ignoredTripIds } = this._tripParser.parse(trips, stopTimes, transfers, parsedCalendars, lineGtfsIdMapping, stopGtfsIdMapping);
15
+ return new GtfsScheduleData(parsedTrips, parsedCalendars, parsedTransfers, ignoredTripIds);
16
16
  }
17
17
  }
18
18
  //# sourceMappingURL=gtfs-schedule-data-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-schedule-data-parser.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-schedule-data-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAO/B,MAAM,OAAO,sBAAsB;IAChB,eAAe,CAAqB;IACpC,WAAW,CAAiB;IAE7C,YACE,iBAAoC,EACpC,iBAAoC,EACpC,OAAkD;QAElD,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CACnC,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CACH,IAAiB,EACjB,iBAAoC,EACpC,iBAAoC;QAEpC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEtE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE5E,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAC5D,KAAK,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;QAEF,OAAO,IAAI,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;CACF"}
1
+ {"version":3,"file":"gtfs-schedule-data-parser.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-schedule-data-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAO/B,MAAM,OAAO,sBAAsB;IAChB,eAAe,CAAqB;IACpC,WAAW,CAAiB;IAE7C,YACE,iBAAoC,EACpC,iBAAoC,EACpC,OAAkD;QAElD,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CACnC,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CACH,IAAiB,EACjB,iBAAoC,EACpC,iBAAoC;QAEpC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEtE,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAE5E,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,GACpD,IAAI,CAAC,WAAW,CAAC,KAAK,CACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;QAEJ,OAAO,IAAI,gBAAgB,CACzB,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,CACf,CAAC;IACJ,CAAC;CACF"}
@@ -1,11 +1,14 @@
1
1
  import type { TransfersCsv, TransfersCsvRow } from "../../data/raw/schedule-csvs.js";
2
2
  import { GtfsScheduledTrip } from "../../data/gtfs-scheduled-trip.js";
3
- export declare class GtfsTransferConnector {
3
+ import { type GtfsTransfer } from "../../data/gtfs-transfer.js";
4
+ export declare class GtfsTransferParser {
4
5
  private readonly _onError;
5
- constructor(_onError: (error: GtfsTransferConnectionError) => void);
6
- connect(trips: readonly GtfsScheduledTrip[], transfers: TransfersCsv): readonly GtfsScheduledTrip[];
6
+ constructor(_onError: (error: GtfsTransferParsingError) => void);
7
+ parse(trips: readonly GtfsScheduledTrip[], transfers: TransfersCsv): readonly GtfsTransfer[];
8
+ private _isEntireVehicleAlreadyFormingNextService;
9
+ private _isEntireVehicleAlreadyFormedByPreviousService;
7
10
  }
8
- export type GtfsTransferConnectionError = TransferReferencesNonExistentTrip | TransferIsNotFromTerminusError | TransferIsNotToOriginError | TransferReferencesTripAlreadyConnectedError | TransferIsNotInSeatTransferError | TransferIsNotSameStopAndPositionError | TransferCrossesCalendarsError | TransferRequiresTimeTravelError;
11
+ export type GtfsTransferParsingError = TransferReferencesNonExistentTrip | TransferIsNotFromTerminusError | TransferIsNotToOriginError | TransferReferencesTripAlreadyConnectedError | TransferIsNotInSeatTransferError | TransferIsNotSameStopAndPositionError | TransferCrossesCalendarsError | TransferRequiresTimeTravelError;
9
12
  export declare class TransferReferencesNonExistentTrip {
10
13
  readonly transfer: TransfersCsvRow;
11
14
  readonly field: "from_trip_id" | "to_trip_id";
@@ -1,23 +1,26 @@
1
1
  import { GtfsScheduledTrip } from "../../data/gtfs-scheduled-trip.js";
2
+ import { GtfsEntireVehicleFormsServiceTransfer, } from "../../data/gtfs-transfer.js";
3
+ import { MutableGtfsTransferMapping } from "../../data/gtfs-transfer-mapping.js";
2
4
  const TRANSFER_TYPE_IN_SEAT_TRANSFER = 4;
3
- export class GtfsTransferConnector {
5
+ export class GtfsTransferParser {
4
6
  _onError;
5
7
  constructor(_onError) {
6
8
  this._onError = _onError;
7
9
  }
8
- connect(trips, transfers) {
10
+ parse(trips, transfers) {
9
11
  const tripMap = new Map(trips.map((trip) => [trip.gtfsTripId, trip]));
12
+ const result = new MutableGtfsTransferMapping((x) => x.getInvolvedTripIds());
10
13
  for (const transfer of transfers) {
11
14
  const fromTrip = tripMap.get(transfer.from_trip_id);
12
15
  const toTrip = tripMap.get(transfer.to_trip_id);
13
- // TrainQuery only cares about "in-seat" transfers, because we're only
14
- // parsing these transfers to form trips into multiple "legs" of a
15
- // service, a.k.a. what I used to call continuations.
16
- //
17
- // We should ignore them, but it's not really an error. I'm just reporting
18
- // them because right now PTV only publishes in-seat transfers, and I'm
19
- // curious to see if that changes one day (e.g. with V/Line's guaranteed
20
- // coach connections, or coupling of trains at Ballarat).
16
+ // Right now, TrainQuery Melbourne only cares about "in-seat" transfers,
17
+ // so we can show Metro Tunnel or City Loop services with their final
18
+ // destinations correctly. I'm just gonna ignore other transfer types for
19
+ // now, but it's not really an error. The reason I want to report them
20
+ // like errors is that PTV doesn't seem to currently publish other
21
+ // transfer types, and I'm curious to see if that changes one day (e.g.
22
+ // with V/Line's guaranteed coach connections, or coupling of trains at
23
+ // Ballarat).
21
24
  if (transfer.transfer_type !== TRANSFER_TYPE_IN_SEAT_TRANSFER) {
22
25
  this._onError(new TransferIsNotInSeatTransferError(transfer));
23
26
  continue;
@@ -36,11 +39,13 @@ export class GtfsTransferConnector {
36
39
  this._onError(new TransferIsNotSameStopAndPositionError(transfer));
37
40
  continue;
38
41
  }
39
- // As alluded to above, I suspect one day V/Line might make things
40
- // difficult if they start (accurately, to be fair) considering their
41
- // Maryborough shuttles as "in-seat" transfers because the trains couple
42
- // at Ballarat. No idea how we'd even want to _display_ those, let alone
43
- // model it!
42
+ // As alluded to above, I suspect one day V/Line might start considering
43
+ // their Maryborough shuttles as "in-seat" transfers because the trains
44
+ // couple at Ballarat. We don't handle it for now. I wonder how I'd even
45
+ // display that in CoreQuery? It'll either break the first two rules
46
+ // (ex-Maryborough train transfers to ex-Wendouree/Ararat), or the next
47
+ // two (ex-Wendouree/Ararat and ex-Maryborough train transfer to
48
+ // ex-Ballarat train).
44
49
  if (fromTrip.termination.gtfsIdMetadata.id !== transfer.from_stop_id) {
45
50
  this._onError(new TransferIsNotFromTerminusError(transfer, fromTrip));
46
51
  continue;
@@ -49,12 +54,12 @@ export class GtfsTransferConnector {
49
54
  this._onError(new TransferIsNotToOriginError(transfer, toTrip));
50
55
  continue;
51
56
  }
52
- if (fromTrip.nextTrip != null) {
57
+ if (this._isEntireVehicleAlreadyFormingNextService(fromTrip, result)) {
53
58
  const Err = TransferReferencesTripAlreadyConnectedError;
54
59
  this._onError(new Err(transfer, fromTrip));
55
60
  continue;
56
61
  }
57
- if (toTrip.previousTrip != null) {
62
+ if (this._isEntireVehicleAlreadyFormedByPreviousService(toTrip, result)) {
58
63
  const Err = TransferReferencesTripAlreadyConnectedError;
59
64
  this._onError(new Err(transfer, toTrip));
60
65
  continue;
@@ -86,11 +91,24 @@ export class GtfsTransferConnector {
86
91
  this._onError(new TransferRequiresTimeTravelError(transfer));
87
92
  continue;
88
93
  }
89
- const [newFrom, newTo] = GtfsScheduledTrip.connectAsTransfer(fromTrip, toTrip);
90
- tripMap.set(fromTrip.gtfsTripId, newFrom);
91
- tripMap.set(toTrip.gtfsTripId, newTo);
94
+ result.push(new GtfsEntireVehicleFormsServiceTransfer({
95
+ fromTripId: fromTrip.gtfsTripId,
96
+ toTripId: toTrip.gtfsTripId,
97
+ }));
92
98
  }
93
- return Array.from(tripMap.values());
99
+ return result.toArray();
100
+ }
101
+ _isEntireVehicleAlreadyFormingNextService(fromTrip, transfers) {
102
+ return transfers
103
+ .forTripId(fromTrip.gtfsTripId)
104
+ .some((t) => t.type === "entire-vehicle-forms-service" &&
105
+ t.fromTripId === fromTrip.gtfsTripId);
106
+ }
107
+ _isEntireVehicleAlreadyFormedByPreviousService(toTrip, transfers) {
108
+ return transfers
109
+ .forTripId(toTrip.gtfsTripId)
110
+ .some((t) => t.type === "entire-vehicle-forms-service" &&
111
+ t.toTripId === toTrip.gtfsTripId);
94
112
  }
95
113
  }
96
114
  export class TransferReferencesNonExistentTrip {
@@ -157,4 +175,4 @@ export class TransferRequiresTimeTravelError {
157
175
  this.transfer = transfer;
158
176
  }
159
177
  }
160
- //# sourceMappingURL=gtfs-transfer-connector.js.map
178
+ //# sourceMappingURL=gtfs-transfer-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtfs-transfer-parser.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-transfer-parser.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { GtfsCalendar } from "../../data/gtfs-calendar.js";
5
5
  import { GtfsScheduledTrip } from "../../data/gtfs-scheduled-trip.js";
6
6
  import { type GtfsStopTimeNormalisationError } from "./gtfs-stop-time-normaliser.js";
7
7
  import { type GtfsRouteMatchingError } from "./gtfs-route-matcher.js";
8
- import { type GtfsTransferConnectionError } from "./gtfs-transfer-connector.js";
8
+ import { type GtfsTransferParsingError } from "./gtfs-transfer-parser.js";
9
9
  import type { LineRoutesMapping } from "../../data/route/line-routes-mapping.js";
10
10
  import type { BonusLinesMapping } from "../../data/route/bonus-lines-mapping.js";
11
11
  export declare class GtfsTripParser {
@@ -15,17 +15,18 @@ export declare class GtfsTripParser {
15
15
  private readonly _stopTimeNormaliser;
16
16
  private readonly _primaryRouteMatcher;
17
17
  private readonly _bonusRouteMatcher;
18
- private readonly _transferConnector;
18
+ private readonly _transferParser;
19
19
  constructor(_lineRoutesMapping: LineRoutesMapping, _bonusLinesMapping: BonusLinesMapping, _onError: (error: GtfsTripParsingError) => void);
20
20
  parse(trips: TripsCsv, stopTimes: StopTimesCsv, transfers: TransfersCsv, calendars: readonly GtfsCalendar[], lineGtfsIdMapping: LineGtfsIdMapping, stopGtfsIdMapping: StopGtfsIdMapping): {
21
- parsedTrips: readonly GtfsScheduledTrip[];
21
+ parsedTrips: GtfsScheduledTrip[];
22
+ parsedTransfers: readonly import("../../data/gtfs-transfer.js").GtfsEntireVehicleFormsServiceTransfer[];
22
23
  ignoredTripIds: string[];
23
24
  };
24
25
  private _organiseStopTimesIntoTrips;
25
26
  private _applyBonusLines;
26
27
  private _buildCalendarMap;
27
28
  }
28
- export type GtfsTripParsingError = StopTimeReferencesNonExistentTripError | DuplicateTripIdError | TripReferencesNonExistentCalendarError | TripReferencesUnmappedRouteIdError | GtfsStopTimeNormalisationError | GtfsRouteMatchingError | GtfsTransferConnectionError;
29
+ export type GtfsTripParsingError = StopTimeReferencesNonExistentTripError | DuplicateTripIdError | TripReferencesNonExistentCalendarError | TripReferencesUnmappedRouteIdError | GtfsStopTimeNormalisationError | GtfsRouteMatchingError | GtfsTransferParsingError;
29
30
  export declare class StopTimeReferencesNonExistentTripError {
30
31
  readonly stopTime: StopTimesCsvRow;
31
32
  readonly type = "stop-time-references-non-existent-trip";
@@ -1,7 +1,7 @@
1
1
  import { GtfsScheduledTrip } from "../../data/gtfs-scheduled-trip.js";
2
2
  import { GtfsStopTimeNormaliser, } from "./gtfs-stop-time-normaliser.js";
3
3
  import { GtfsRouteMatcher, } from "./gtfs-route-matcher.js";
4
- import { GtfsTransferConnector, } from "./gtfs-transfer-connector.js";
4
+ import { GtfsTransferParser, } from "./gtfs-transfer-parser.js";
5
5
  export class GtfsTripParser {
6
6
  _lineRoutesMapping;
7
7
  _bonusLinesMapping;
@@ -9,7 +9,7 @@ export class GtfsTripParser {
9
9
  _stopTimeNormaliser;
10
10
  _primaryRouteMatcher;
11
11
  _bonusRouteMatcher;
12
- _transferConnector;
12
+ _transferParser;
13
13
  constructor(
14
14
  // Unlike csvs, lineGtfsIdMapping, and stopGtfsIdMapping, these are not
15
15
  // subfeed-dependent, so I'm opting to make them constructor args.
@@ -19,14 +19,14 @@ export class GtfsTripParser {
19
19
  this._onError = _onError;
20
20
  this._stopTimeNormaliser = new GtfsStopTimeNormaliser(this._onError);
21
21
  this._primaryRouteMatcher = new GtfsRouteMatcher(this._onError);
22
- this._transferConnector = new GtfsTransferConnector(this._onError);
22
+ this._transferParser = new GtfsTransferParser(this._onError);
23
23
  // We don't care if a bonus route doesn't match. Most of the time, it won't!
24
24
  this._bonusRouteMatcher = new GtfsRouteMatcher(() => { });
25
25
  }
26
26
  parse(trips, stopTimes, transfers, calendars, lineGtfsIdMapping, stopGtfsIdMapping) {
27
27
  const calendarMap = this._buildCalendarMap(calendars);
28
28
  const rowsByTrip = this._organiseStopTimesIntoTrips(trips, stopTimes);
29
- const unconnectedTrips = [];
29
+ const parsedTrips = [];
30
30
  const ignoredTripIds = [];
31
31
  for (const { trip, stopTimes } of rowsByTrip) {
32
32
  const calendar = calendarMap.get(trip.service_id);
@@ -53,7 +53,7 @@ export class GtfsTripParser {
53
53
  if (routeMatchResult == null)
54
54
  continue;
55
55
  const { lineIds, serviceTags } = this._applyBonusLines(lineIdMatch.lineId, routeMatchResult.serviceTags, normalizedStopTimes, stopGtfsIdMapping);
56
- unconnectedTrips.push(new GtfsScheduledTrip({
56
+ parsedTrips.push(new GtfsScheduledTrip({
57
57
  gtfsTripId: trip.trip_id,
58
58
  gtfsRouteId: trip.route_id,
59
59
  calendar,
@@ -61,12 +61,10 @@ export class GtfsTripParser {
61
61
  lineIds,
62
62
  color: routeMatchResult.color,
63
63
  serviceTags,
64
- previousTrip: null,
65
- nextTrip: null,
66
64
  }));
67
65
  }
68
- const parsedTrips = this._transferConnector.connect(unconnectedTrips, transfers);
69
- return { parsedTrips, ignoredTripIds };
66
+ const parsedTransfers = this._transferParser.parse(parsedTrips, transfers);
67
+ return { parsedTrips, parsedTransfers, ignoredTripIds };
70
68
  }
71
69
  _organiseStopTimesIntoTrips(trips, stopTimes) {
72
70
  const result = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-trip-parser.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-trip-parser.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EACL,sBAAsB,GAEvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,GAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAItC,MAAM,OAAO,cAAc;IASN;IACA;IAEA;IAXF,mBAAmB,CAAyB;IAC5C,oBAAoB,CAAmB;IACvC,kBAAkB,CAAmB;IACrC,kBAAkB,CAAwB;IAE3D;IACE,uEAAuE;IACvE,kEAAkE;IACjD,kBAAqC,EACrC,kBAAqC,EAErC,QAA+C;QAH/C,uBAAkB,GAAlB,kBAAkB,CAAmB;QACrC,uBAAkB,GAAlB,kBAAkB,CAAmB;QAErC,aAAQ,GAAR,QAAQ,CAAuC;QAEhE,IAAI,CAAC,mBAAmB,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnE,4EAA4E;QAC5E,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CACH,KAAe,EACf,SAAuB,EACvB,SAAuB,EACvB,SAAkC,EAClC,iBAAoC,EACpC,iBAAoC;QAEpC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEtE,MAAM,gBAAgB,GAAwB,EAAE,CAAC;QACjD,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,UAAU,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChE,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5D,SAAS;YACX,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC3C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC1E,+CAA+C;YAC/C,IAAI,mBAAmB,IAAI,IAAI;gBAAE,SAAS;YAE1C,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CACtD,mBAAmB,EACnB,aAAa,EACb,iBAAiB,CAClB,CAAC;YACF,wCAAwC;YACxC,IAAI,gBAAgB,IAAI,IAAI;gBAAE,SAAS;YAEvC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,gBAAgB,CACpD,WAAW,CAAC,MAAM,EAClB,gBAAgB,CAAC,WAAW,EAC5B,mBAAmB,EACnB,iBAAiB,CAClB,CAAC;YAEF,gBAAgB,CAAC,IAAI,CACnB,IAAI,iBAAiB,CAAC;gBACpB,UAAU,EAAE,IAAI,CAAC,OAAO;gBACxB,WAAW,EAAE,IAAI,CAAC,QAAQ;gBAC1B,QAAQ;gBACR,SAAS,EAAE,gBAAgB,CAAC,SAAS;gBACrC,OAAO;gBACP,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,WAAW;gBACX,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GACf,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAE/D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACzC,CAAC;IAEO,2BAA2B,CACjC,KAAe,EACf,SAAuB;QAGvB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAEhD,oDAAoD;QACpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,mEAAmE;gBACnE,IAAI,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,iEAAiE;QACjE,oBAAoB;QACpB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE1C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,kEAAkE;gBAClE,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,sCAAsC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,yEAAyE;QACzE,qEAAqE;QACrE,wEAAwE;QACxE,gDAAgD;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjD,GAAG,KAAK;YACR,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,gBAAgB,CACtB,eAAuB,EACvB,oBAAuC,EACvC,mBAAiC,EACjC,iBAAoC;QAEpC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;QAC3E,CAAC;QAED,wEAAwE;QACxE,6BAA6B;QAC7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAC/C,mBAAmB,EACnB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,EAC1C,iBAAiB,CAClB,CAAC;YAEF,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;oBACjD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,qDAAqD;QACrD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC;QACxE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;gBAC9C,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;SACrC,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,SAAkC;QAC1D,OAAO,IAAI,GAAG,CACZ,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAC5C,CAAC;IACJ,CAAC;CACF;AAWD,MAAM,OAAO,sCAAsC;IAE5B;IADZ,IAAI,GAAG,wCAAwC,CAAC;IACzD,YAAqB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;CACnD;AAED,MAAM,OAAO,oBAAoB;IAEV;IADZ,IAAI,GAAG,mBAAmB,CAAC;IACpC,YAAqB,4BAAyC;QAAzC,iCAA4B,GAA5B,4BAA4B,CAAa;IAAG,CAAC;CACnE;AAED,MAAM,OAAO,sCAAsC;IAE5B;IADZ,IAAI,GAAG,uCAAuC,CAAC;IACxD,YAAqB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;CAC3C;AAED,MAAM,OAAO,kCAAkC;IAExB;IADZ,IAAI,GAAG,mCAAmC,CAAC;IACpD,YAAqB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAG,CAAC;CAC3C"}
1
+ {"version":3,"file":"gtfs-trip-parser.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-trip-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "corequery-gtfs",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -1 +0,0 @@
1
- {"version":3,"file":"gtfs-transfer-connector.js","sourceRoot":"","sources":["../../../src/parser/schedule/gtfs-transfer-connector.ts"],"names":[],"mappings":"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"}