corequery-gtfs 0.7.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/conversion/corequery-intrasource-id.js.map +1 -0
  2. package/dist/{corequeryify → conversion}/service-conversion-iterator.d.ts +1 -1
  3. package/dist/conversion/service-conversion-iterator.js.map +1 -0
  4. package/dist/{corequeryify → conversion}/service-converter.d.ts +13 -10
  5. package/dist/{corequeryify → conversion}/service-converter.js +32 -39
  6. package/dist/conversion/service-converter.js.map +1 -0
  7. package/dist/data/gtfs-feed.d.ts +6 -2
  8. package/dist/data/gtfs-feed.js +26 -2
  9. package/dist/data/gtfs-feed.js.map +1 -1
  10. package/dist/data/gtfs-realtime-data.d.ts +9 -1
  11. package/dist/data/gtfs-realtime-data.js +24 -2
  12. package/dist/data/gtfs-realtime-data.js.map +1 -1
  13. package/dist/data/gtfs-realtime-transfer.d.ts +12 -0
  14. package/dist/data/gtfs-realtime-transfer.js +21 -0
  15. package/dist/data/gtfs-realtime-transfer.js.map +1 -0
  16. package/dist/data/gtfs-schedule-data.d.ts +6 -1
  17. package/dist/data/gtfs-schedule-data.js +15 -3
  18. package/dist/data/gtfs-schedule-data.js.map +1 -1
  19. package/dist/data/gtfs-scheduled-trip.d.ts +0 -6
  20. package/dist/data/gtfs-scheduled-trip.js +0 -14
  21. package/dist/data/gtfs-scheduled-trip.js.map +1 -1
  22. package/dist/data/gtfs-transfer-mapping.d.ts +15 -0
  23. package/dist/data/gtfs-transfer-mapping.js +45 -0
  24. package/dist/data/gtfs-transfer-mapping.js.map +1 -0
  25. package/dist/data/gtfs-transfer.d.ts +18 -0
  26. package/dist/data/gtfs-transfer.js +20 -0
  27. package/dist/data/gtfs-transfer.js.map +1 -0
  28. package/dist/departures/{departures-block-iterator.d.ts → iterator/departures-block-iterator.d.ts} +2 -2
  29. package/dist/departures/iterator/departures-block-iterator.js.map +1 -0
  30. package/dist/departures/{departures-iterator.d.ts → iterator/departures-iterator.d.ts} +4 -4
  31. package/dist/departures/iterator/departures-iterator.js.map +1 -0
  32. package/dist/departures/iterator/filtering-departures-iterator.d.ts +11 -0
  33. package/dist/departures/iterator/filtering-departures-iterator.js +30 -0
  34. package/dist/departures/iterator/filtering-departures-iterator.js.map +1 -0
  35. package/dist/departures/{realtime-departures-block-iterator.d.ts → iterator/realtime-departures-block-iterator.d.ts} +3 -4
  36. package/dist/departures/iterator/realtime-departures-block-iterator.js +23 -0
  37. package/dist/departures/iterator/realtime-departures-block-iterator.js.map +1 -0
  38. package/dist/departures/{scheduled-departures-block-iterator.d.ts → iterator/scheduled-departures-block-iterator.d.ts} +3 -4
  39. package/dist/departures/iterator/scheduled-departures-block-iterator.js +30 -0
  40. package/dist/departures/iterator/scheduled-departures-block-iterator.js.map +1 -0
  41. package/dist/departures/{scheduled-departures-iterator.d.ts → iterator/scheduled-departures-iterator.d.ts} +5 -5
  42. package/dist/departures/{scheduled-departures-iterator.js → iterator/scheduled-departures-iterator.js} +2 -2
  43. package/dist/departures/iterator/scheduled-departures-iterator.js.map +1 -0
  44. package/dist/departures/{zipper-departures-iterator.d.ts → iterator/zipper-departures-iterator.d.ts} +4 -4
  45. package/dist/departures/iterator/zipper-departures-iterator.js.map +1 -0
  46. package/dist/gtfs-service-source.d.ts +8 -8
  47. package/dist/gtfs-service-source.js +4 -3
  48. package/dist/gtfs-service-source.js.map +1 -1
  49. package/dist/gtfs-system.js +11 -23
  50. package/dist/gtfs-system.js.map +1 -1
  51. package/dist/parser/gtfs-feed-parser.d.ts +12 -3
  52. package/dist/parser/gtfs-feed-parser.js +19 -9
  53. package/dist/parser/gtfs-feed-parser.js.map +1 -1
  54. package/dist/parser/realtime/gtfs-realtime-data-parser.d.ts +9 -2
  55. package/dist/parser/realtime/gtfs-realtime-data-parser.js +32 -5
  56. package/dist/parser/realtime/gtfs-realtime-data-parser.js.map +1 -1
  57. package/dist/parser/realtime/gtfs-trip-update-parser.d.ts +8 -2
  58. package/dist/parser/realtime/gtfs-trip-update-parser.js +12 -11
  59. package/dist/parser/realtime/gtfs-trip-update-parser.js.map +1 -1
  60. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.d.ts +4 -1
  61. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js +2 -2
  62. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js.map +1 -1
  63. package/dist/parser/schedule/gtfs-calendar-parser.d.ts +4 -1
  64. package/dist/parser/schedule/gtfs-calendar-parser.js +2 -2
  65. package/dist/parser/schedule/gtfs-calendar-parser.js.map +1 -1
  66. package/dist/parser/schedule/gtfs-route-matcher.d.ts +7 -2
  67. package/dist/parser/schedule/gtfs-route-matcher.js +8 -6
  68. package/dist/parser/schedule/gtfs-route-matcher.js.map +1 -1
  69. package/dist/parser/schedule/gtfs-schedule-data-parser.d.ts +9 -2
  70. package/dist/parser/schedule/gtfs-schedule-data-parser.js +14 -6
  71. package/dist/parser/schedule/gtfs-schedule-data-parser.js.map +1 -1
  72. package/dist/parser/schedule/gtfs-stop-time-normaliser.d.ts +4 -1
  73. package/dist/parser/schedule/gtfs-stop-time-normaliser.js +2 -2
  74. package/dist/parser/schedule/gtfs-stop-time-normaliser.js.map +1 -1
  75. package/dist/parser/schedule/{gtfs-transfer-connector.d.ts → gtfs-transfer-parser.d.ts} +10 -4
  76. package/dist/parser/schedule/{gtfs-transfer-connector.js → gtfs-transfer-parser.js} +42 -24
  77. package/dist/parser/schedule/gtfs-transfer-parser.js.map +1 -0
  78. package/dist/parser/schedule/gtfs-trip-parser.d.ts +15 -6
  79. package/dist/parser/schedule/gtfs-trip-parser.js +32 -25
  80. package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/corequeryify/corequery-intrasource-id.js.map +0 -1
  83. package/dist/corequeryify/service-conversion-iterator.js.map +0 -1
  84. package/dist/corequeryify/service-converter.js.map +0 -1
  85. package/dist/departures/departures-block-iterator.js.map +0 -1
  86. package/dist/departures/departures-iterator.js.map +0 -1
  87. package/dist/departures/realtime-departures-block-iterator.js +0 -40
  88. package/dist/departures/realtime-departures-block-iterator.js.map +0 -1
  89. package/dist/departures/scheduled-departures-block-iterator.js +0 -55
  90. package/dist/departures/scheduled-departures-block-iterator.js.map +0 -1
  91. package/dist/departures/scheduled-departures-iterator.js.map +0 -1
  92. package/dist/departures/zipper-departures-iterator.js.map +0 -1
  93. package/dist/parser/schedule/gtfs-transfer-connector.js.map +0 -1
  94. /package/dist/{corequeryify → conversion}/corequery-intrasource-id.d.ts +0 -0
  95. /package/dist/{corequeryify → conversion}/corequery-intrasource-id.js +0 -0
  96. /package/dist/{corequeryify → conversion}/service-conversion-iterator.js +0 -0
  97. /package/dist/departures/{departures-block-iterator.js → iterator/departures-block-iterator.js} +0 -0
  98. /package/dist/departures/{departures-iterator.js → iterator/departures-iterator.js} +0 -0
  99. /package/dist/departures/{zipper-departures-iterator.js → iterator/zipper-departures-iterator.js} +0 -0
@@ -0,0 +1,45 @@
1
+ export class GtfsTransferMapping {
2
+ _byTripId;
3
+ constructor(_byTripId) {
4
+ this._byTripId = _byTripId;
5
+ }
6
+ static build(transfers, extractInvolvedTripIds) {
7
+ const byTripId = new Map();
8
+ for (const transfer of transfers) {
9
+ for (const tripId of extractInvolvedTripIds(transfer)) {
10
+ const transfersInvolvingTrip = byTripId.get(tripId) ?? [];
11
+ transfersInvolvingTrip.push(transfer);
12
+ byTripId.set(tripId, transfersInvolvingTrip);
13
+ }
14
+ }
15
+ return new GtfsTransferMapping(byTripId);
16
+ }
17
+ forTripId(tripId) {
18
+ return this._byTripId.get(tripId) ?? [];
19
+ }
20
+ }
21
+ export class MutableGtfsTransferMapping {
22
+ _extractInvolvedTripIds;
23
+ _map;
24
+ _array;
25
+ constructor(_extractInvolvedTripIds) {
26
+ this._extractInvolvedTripIds = _extractInvolvedTripIds;
27
+ this._map = new Map();
28
+ this._array = [];
29
+ }
30
+ push(transfer) {
31
+ this._array.push(transfer);
32
+ for (const tripId of this._extractInvolvedTripIds(transfer)) {
33
+ const transfersInvolvingTrip = this._map.get(tripId) ?? [];
34
+ transfersInvolvingTrip.push(transfer);
35
+ this._map.set(tripId, transfersInvolvingTrip);
36
+ }
37
+ }
38
+ forTripId(tripId) {
39
+ return this._map.get(tripId) ?? [];
40
+ }
41
+ toArray() {
42
+ return this._array;
43
+ }
44
+ }
45
+ //# sourceMappingURL=gtfs-transfer-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtfs-transfer-mapping.js","sourceRoot":"","sources":["../../src/data/gtfs-transfer-mapping.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAmB;IACO;IAArC,YAAqC,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAEpE,MAAM,CAAC,KAAK,CACV,SAAuB,EACvB,sBAA0D;QAE1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAe,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,sBAAsB,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1D,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,0BAA0B;IAKlB;IAJF,IAAI,CAAmB;IACvB,MAAM,CAAM;IAE7B,YACmB,uBAEK;QAFL,4BAAuB,GAAvB,uBAAuB,CAElB;QAEtB,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,QAAW;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,MAAM,sBAAsB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC3D,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -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
+ readonly fromTripId: string;
8
+ readonly 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,6 +1,6 @@
1
1
  import { DeparturesIterator, type DeparturesIteratorResult } from "./departures-iterator.js";
2
- import type { DeparturesBlock } from "./departures-block.js";
3
- import type { DeparturesIterationDirection } from "../corequery-types.js";
2
+ import type { DeparturesBlock } from "../departures-block.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;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"departures-block-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/departures-block-iterator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { DeparturesIterationDirection } from "../corequery-types.js";
2
- import type { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
3
- import type { GtfsUpdatedTrip } from "../data/gtfs-updated-trip.js";
4
- import type { GtfsTripServicingMovement } from "../data/utils.js";
1
+ import type { DeparturesIterationDirection } from "../../corequery-types.js";
2
+ import type { GtfsScheduledTrip } from "../../data/gtfs-scheduled-trip.js";
3
+ import type { GtfsUpdatedTrip } from "../../data/gtfs-updated-trip.js";
4
+ import type { GtfsTripServicingMovement } from "../../data/utils.js";
5
5
  export declare class DeparturesIteratorResult {
6
6
  readonly trip: GtfsScheduledTrip | GtfsUpdatedTrip;
7
7
  readonly serviceDay: Temporal.PlainDate;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"departures-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/departures-iterator.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,wBAAwB;IAExB;IACA;IACA;IACA;IACA;IALX,YACW,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"}
@@ -0,0 +1,11 @@
1
+ import type { DeparturesIterationDirection } from "../../corequery-types.js";
2
+ import { DeparturesIterator, DeparturesIteratorResult } from "./departures-iterator.js";
3
+ export declare class FilteringDeparturesIterator 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 FilteringDeparturesIterator 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=filtering-departures-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering-departures-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/filtering-departures-iterator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,2BAA4B,SAAQ,kBAAkB;IAE9C;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"}
@@ -1,12 +1,11 @@
1
1
  import { DeparturesIteratorResult } from "./departures-iterator.js";
2
- import { RealtimeDeparturesBlock, type RealtimeDeparturesBlockEntry } from "./realtime-departures-block.js";
3
- import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
2
+ import { RealtimeDeparturesBlock, type RealtimeDeparturesBlockEntry } from "../realtime-departures-block.js";
3
+ import type { GtfsRealtimeData } from "../../data/gtfs-realtime-data.js";
4
4
  import { DeparturesBlockIterator } from "./departures-block-iterator.js";
5
5
  export declare class RealtimeDeparturesBlockIterator extends DeparturesBlockIterator<RealtimeDeparturesBlock, RealtimeDeparturesBlockEntry> {
6
6
  private readonly _realtimeData;
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
  }
@@ -0,0 +1,23 @@
1
+ import { DeparturesIteratorResult } from "./departures-iterator.js";
2
+ import { RealtimeDeparturesBlock, } from "../realtime-departures-block.js";
3
+ import { DeparturesBlockIterator } from "./departures-block-iterator.js";
4
+ export class RealtimeDeparturesBlockIterator extends DeparturesBlockIterator {
5
+ _realtimeData;
6
+ constructor(block, _realtimeData) {
7
+ super(block, block.entries);
8
+ this._realtimeData = _realtimeData;
9
+ }
10
+ static tryBuild(stopId, realtimeData) {
11
+ const block = RealtimeDeparturesBlock.tryBuild(stopId, realtimeData);
12
+ if (block == null)
13
+ return null;
14
+ return new RealtimeDeparturesBlockIterator(block, realtimeData);
15
+ }
16
+ _convertEntryToResult(entry) {
17
+ return new DeparturesIteratorResult(entry.trip, entry.trip.serviceDay, entry.instant, entry.movement, entry.movementIndex);
18
+ }
19
+ _shouldSkipEntry(_entry) {
20
+ return false;
21
+ }
22
+ }
23
+ //# sourceMappingURL=realtime-departures-block-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-departures-block-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/realtime-departures-block-iterator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACL,uBAAuB,GAExB,MAAM,iCAAiC,CAAC;AAEzC,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"}
@@ -1,12 +1,11 @@
1
- import type { ScheduledDeparturesBlock } from "./scheduled-departures-block.js";
1
+ import type { ScheduledDeparturesBlock } from "../scheduled-departures-block.js";
2
2
  import { DeparturesIteratorResult } from "./departures-iterator.js";
3
- import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
3
+ import type { GtfsRealtimeData } from "../../data/gtfs-realtime-data.js";
4
4
  import { DeparturesBlockIterator } from "./departures-block-iterator.js";
5
- import type { GtfsScheduledMovementsIndexEntry } from "./gtfs-scheduled-movements-index.js";
5
+ import type { GtfsScheduledMovementsIndexEntry } from "../gtfs-scheduled-movements-index.js";
6
6
  export declare class ScheduledDeparturesBlockIterator extends DeparturesBlockIterator<ScheduledDeparturesBlock, GtfsScheduledMovementsIndexEntry> {
7
7
  private readonly _realtimeData;
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
  }
@@ -0,0 +1,30 @@
1
+ import { DeparturesIteratorResult } from "./departures-iterator.js";
2
+ import { DeparturesBlockIterator } from "./departures-block-iterator.js";
3
+ export class ScheduledDeparturesBlockIterator extends DeparturesBlockIterator {
4
+ _realtimeData;
5
+ constructor(block, _realtimeData) {
6
+ super(block, block.allMovementsAtStop);
7
+ this._realtimeData = _realtimeData;
8
+ }
9
+ _convertEntryToResult(entry) {
10
+ return new DeparturesIteratorResult(entry.trip, this.block.serviceDay, entry.time.toInstant(this.block.serviceDay, this.block.timezone), entry.movement, entry.movementIndex);
11
+ }
12
+ _shouldSkipEntry(entry) {
13
+ // A scheduled departures block has all movements for a given stop, not just
14
+ // the ones that occur today!
15
+ const doesntRunToday = !entry.trip.calendar.occursOn(this.block.serviceDay);
16
+ if (doesntRunToday)
17
+ return true;
18
+ // Trips with realtime data will be supplied by the realtime departures
19
+ // block, so we don't want to show duplicate entries by also showing them
20
+ // from the scheduled departures block (at the outdated departure time/order
21
+ // too!).
22
+ const tripId = entry.trip.gtfsTripId;
23
+ const realtimeTrip = this._realtimeData.getForScheduledTrip(tripId, this.block.serviceDay);
24
+ const isOverriddenByRealtimeTrip = realtimeTrip != null;
25
+ if (isOverriddenByRealtimeTrip)
26
+ return true;
27
+ return false;
28
+ }
29
+ }
30
+ //# sourceMappingURL=scheduled-departures-block-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-departures-block-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/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"}
@@ -1,9 +1,9 @@
1
1
  import { DeparturesIterator, type DeparturesIteratorResult } from "./departures-iterator.js";
2
- import type { GtfsScheduledMovementsIndex } from "./gtfs-scheduled-movements-index.js";
3
- import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
4
- import { ScheduledDeparturesBlocksBuilder } from "./scheduled-departures-blocks-builder.js";
5
- import type { TimezoneData } from "../config/timezone-data.js";
6
- import type { DeparturesIterationDirection } from "../corequery-types.js";
2
+ import type { GtfsScheduledMovementsIndex } from "../gtfs-scheduled-movements-index.js";
3
+ import type { GtfsRealtimeData } from "../../data/gtfs-realtime-data.js";
4
+ import { ScheduledDeparturesBlocksBuilder } from "../scheduled-departures-blocks-builder.js";
5
+ import type { TimezoneData } from "../../config/timezone-data.js";
6
+ import type { DeparturesIterationDirection } from "../../corequery-types.js";
7
7
  type ScheduledDeparturesIteratorOptions = {
8
8
  readonly blockScanHours: number;
9
9
  readonly maximumNumberOfScans: number | null;
@@ -1,8 +1,8 @@
1
1
  import { assertNever, removeIf } from "@dan-schel/js-utils";
2
2
  import { DeparturesIterator, } from "./departures-iterator.js";
3
- import { BoundedInstantRange } from "../data/bounded-instant-range.js";
3
+ import { BoundedInstantRange } from "../../data/bounded-instant-range.js";
4
4
  import { ScheduledDeparturesBlockIterator } from "./scheduled-departures-block-iterator.js";
5
- import { ScheduledDeparturesBlocksBuilder } from "./scheduled-departures-blocks-builder.js";
5
+ import { ScheduledDeparturesBlocksBuilder } from "../scheduled-departures-blocks-builder.js";
6
6
  const DEFAULT_BLOCK_SCAN_HOURS = 48;
7
7
  export class ScheduledDeparturesIterator extends DeparturesIterator {
8
8
  _blockBuilder;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-departures-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/scheduled-departures-iterator.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { DeparturesIterator, DeparturesIteratorResult } from "./departures-iterator.js";
2
- import type { GtfsScheduledMovementsIndex } from "./gtfs-scheduled-movements-index.js";
3
- import type { GtfsRealtimeData } from "../data/gtfs-realtime-data.js";
4
- import type { TimezoneData } from "../config/timezone-data.js";
5
- import type { DeparturesIterationDirection } from "../corequery-types.js";
2
+ import type { GtfsScheduledMovementsIndex } from "../gtfs-scheduled-movements-index.js";
3
+ import type { GtfsRealtimeData } from "../../data/gtfs-realtime-data.js";
4
+ import type { TimezoneData } from "../../config/timezone-data.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 readonly _iterationLimitHours;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zipper-departures-iterator.js","sourceRoot":"","sources":["../../../src/departures/iterator/zipper-departures-iterator.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,14 @@ type GtfsServiceSourceFields<CorequeryDepartureClass, CorequeryServiceClass, Cor
4
4
  readonly sourceId: string;
5
5
  readonly gtfsSystem: GtfsSystem;
6
6
  readonly departureIterationLimitHours: number | null;
7
- buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
8
- buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
9
- buildTags: (tags: Set<number>) => CorequeryTagsClass;
10
- buildServiceOriginatingMovement: (fields: ServiceOriginatingMovementFields) => CorequeryServiceOriginatingMovementClass;
11
- buildServiceRegularMovement: (fields: ServiceRegularMovementFields) => CorequeryServiceRegularMovementClass;
12
- buildServiceTerminatingMovement: (fields: ServiceTerminatingMovementFields) => CorequeryServiceTerminatingMovementClass;
13
- buildServicePassingMovement: (fields: ServicePassingMovementFields) => CorequeryServicePassingMovementClass;
14
- buildServiceConnection: (fields: ServiceConnectionFields) => CorequeryServiceConnectionClass;
7
+ readonly buildDeparture: (fields: DepartureFields<CorequeryServiceClass>) => CorequeryDepartureClass;
8
+ readonly buildService: (fields: ServiceFields<CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass>) => CorequeryServiceClass;
9
+ readonly buildTags: (tags: Set<number>) => CorequeryTagsClass;
10
+ readonly buildServiceOriginatingMovement: (fields: ServiceOriginatingMovementFields) => CorequeryServiceOriginatingMovementClass;
11
+ readonly buildServiceRegularMovement: (fields: ServiceRegularMovementFields) => CorequeryServiceRegularMovementClass;
12
+ readonly buildServiceTerminatingMovement: (fields: ServiceTerminatingMovementFields) => CorequeryServiceTerminatingMovementClass;
13
+ readonly buildServicePassingMovement: (fields: ServicePassingMovementFields) => CorequeryServicePassingMovementClass;
14
+ readonly buildServiceConnection: (fields: ServiceConnectionFields) => CorequeryServiceConnectionClass;
15
15
  };
16
16
  export declare class GtfsServiceSource<CorequeryDepartureClass, CorequeryServiceClass, CorequeryTagsClass, CorequeryServiceOriginatingMovementClass, CorequeryServiceRegularMovementClass, CorequeryServiceTerminatingMovementClass, CorequeryServicePassingMovementClass, CorequeryServiceConnectionClass> implements ServiceSource<CorequeryDepartureClass, CorequeryServiceClass> {
17
17
  readonly sourceId: string;
@@ -1,9 +1,9 @@
1
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";
2
+ import { CorequeryIntrasourceId } from "./conversion/corequery-intrasource-id.js";
3
+ import { ServiceConverter } from "./conversion/service-converter.js";
4
4
  import { GtfsScheduledTrip } from "./data/gtfs-scheduled-trip.js";
5
5
  import { GtfsUpdatedTrip } from "./data/gtfs-updated-trip.js";
6
- import { ServiceConversionIterator } from "./corequeryify/service-conversion-iterator.js";
6
+ import { ServiceConversionIterator } from "./conversion/service-conversion-iterator.js";
7
7
  export class GtfsServiceSource {
8
8
  sourceId;
9
9
  gtfsSystem;
@@ -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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"}
@@ -9,26 +9,6 @@ export class GtfsSystem {
9
9
  _lineRoutesMapping;
10
10
  _bonusLinesMapping;
11
11
  _timezoneData;
12
- // TODO: The parsers are designed assuming that the same instance will be used
13
- // to parse multiple feeds. I'm now thinking that this GtfsSystem class should
14
- // house the feed, but only represent one GTFS feed so that it can be a
15
- // departure source for Corequery just like any other, e.g. Corequery would
16
- // have departure sources:
17
- //
18
- // - GTFS regional
19
- // - GTFS suburban
20
- // - PTV API
21
- // - Static timetables
22
- //
23
- // And it would all be zipped together at the Corequery level. The advantage
24
- // is that we don't have to track subfeed IDs within the GTFS systems, and we
25
- // can say within Corequery itself that every service is uniquely identified
26
- // by a source ID and service ID within that source.
27
- //
28
- // This is a long winded way of saying that I think GtfsFeedParser will
29
- // probably only be used for one feed, and I should check if there's any
30
- // reason I decided to make it reusable for multiple feeds (some expensive
31
- // setup that I wanted to avoid repeating?).
32
12
  _parser;
33
13
  _feed;
34
14
  _scheduleParsingErrors;
@@ -39,7 +19,15 @@ export class GtfsSystem {
39
19
  this._lineRoutesMapping = _lineRoutesMapping;
40
20
  this._bonusLinesMapping = _bonusLinesMapping;
41
21
  this._timezoneData = _timezoneData;
42
- this._parser = new GtfsFeedParser(this._lineRoutesMapping, this._bonusLinesMapping, this._timezoneData, (error) => this._onScheduledParsingError(error), (error) => this._onRealtimeParsingError(error));
22
+ this._parser = new GtfsFeedParser({
23
+ lineRoutesMapping: this._lineRoutesMapping,
24
+ bonusLinesMapping: this._bonusLinesMapping,
25
+ lineGtfsIdMapping: this._lineGtfsIdMapping,
26
+ stopGtfsIdMapping: this._stopGtfsIdMapping,
27
+ timezoneData: this._timezoneData,
28
+ onScheduleParsingError: (error) => this._onScheduledParsingError(error),
29
+ onRealtimeParsingError: (error) => this._onRealtimeParsingError(error),
30
+ });
43
31
  this._feed = null;
44
32
  this._scheduleParsingErrors = [];
45
33
  this._realtimeParsingErrors = [];
@@ -64,14 +52,14 @@ export class GtfsSystem {
64
52
  onNewScheduleData(scheduleCsvs, realtimeJson) {
65
53
  this._scheduleParsingErrors = [];
66
54
  this._realtimeParsingErrors = [];
67
- const result = this._parser.parse(scheduleCsvs, realtimeJson, this._lineGtfsIdMapping, this._stopGtfsIdMapping);
55
+ const result = this._parser.parse(scheduleCsvs, realtimeJson);
68
56
  this._feed = result;
69
57
  }
70
58
  onNewRealtimeData(realtimeJson) {
71
59
  if (this._feed == null)
72
60
  throw new Error("No schedule data parsed yet.");
73
61
  this._realtimeParsingErrors = [];
74
- const result = this._parser.updateWithNewRealtimeData(this._feed, realtimeJson, this._stopGtfsIdMapping);
62
+ const result = this._parser.updateWithNewRealtimeData(this._feed, realtimeJson);
75
63
  this._feed = result;
76
64
  }
77
65
  setFeed(feed) {
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-system.js","sourceRoot":"","sources":["../src/gtfs-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gtfs-system.js","sourceRoot":"","sources":["../src/gtfs-system.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,20 @@ import { type GtfsRealtimeDataParsingError } from "./realtime/gtfs-realtime-data
8
8
  import { type GtfsScheduleParsingError } from "./schedule/gtfs-schedule-data-parser.js";
9
9
  import type { GtfsFeedCsv } from "../data/raw/schedule-csvs.js";
10
10
  import type { TimezoneData } from "../config/timezone-data.js";
11
+ export type GtfsFeedParserFields = {
12
+ readonly lineRoutesMapping: LineRoutesMapping;
13
+ readonly bonusLinesMapping: BonusLinesMapping;
14
+ readonly lineGtfsIdMapping: LineGtfsIdMapping;
15
+ readonly stopGtfsIdMapping: StopGtfsIdMapping;
16
+ readonly timezoneData: TimezoneData;
17
+ readonly onScheduleParsingError: (error: GtfsScheduleParsingError) => void;
18
+ readonly onRealtimeParsingError: (error: GtfsRealtimeDataParsingError) => void;
19
+ };
11
20
  export declare class GtfsFeedParser {
12
21
  private readonly _timezoneData;
13
22
  private readonly _scheduleParser;
14
23
  private readonly _realtimeParser;
15
- constructor(lineRoutesMapping: LineRoutesMapping, bonusLinesMapping: BonusLinesMapping, _timezoneData: TimezoneData, _onScheduleParsingError: (error: GtfsScheduleParsingError) => void, _onRealtimeParsingError: (error: GtfsRealtimeDataParsingError) => void);
16
- parse(scheduleCsvs: GtfsFeedCsv, realtimeJson: RealtimeDataJson, lineGtfsIdMapping: LineGtfsIdMapping, stopGtfsIdMapping: StopGtfsIdMapping): GtfsFeed;
17
- updateWithNewRealtimeData(gtfsFeed: GtfsFeed, realtimeData: RealtimeDataJson, stopGtfsIdMapping: StopGtfsIdMapping): GtfsFeed;
24
+ constructor(fields: GtfsFeedParserFields);
25
+ parse(scheduleCsvs: GtfsFeedCsv, realtimeJson: RealtimeDataJson): GtfsFeed;
26
+ updateWithNewRealtimeData(gtfsFeed: GtfsFeed, realtimeData: RealtimeDataJson): GtfsFeed;
18
27
  }
@@ -5,18 +5,28 @@ export class GtfsFeedParser {
5
5
  _timezoneData;
6
6
  _scheduleParser;
7
7
  _realtimeParser;
8
- constructor(lineRoutesMapping, bonusLinesMapping, _timezoneData, _onScheduleParsingError, _onRealtimeParsingError) {
9
- this._timezoneData = _timezoneData;
10
- this._scheduleParser = new GtfsScheduleDataParser(lineRoutesMapping, bonusLinesMapping, _onScheduleParsingError);
11
- this._realtimeParser = new GtfsRealtimeDataParser(_timezoneData.timezone, _onRealtimeParsingError);
8
+ constructor(fields) {
9
+ this._timezoneData = fields.timezoneData;
10
+ this._scheduleParser = new GtfsScheduleDataParser({
11
+ lineRoutesMapping: fields.lineRoutesMapping,
12
+ bonusLinesMapping: fields.bonusLinesMapping,
13
+ lineGtfsIdMapping: fields.lineGtfsIdMapping,
14
+ stopGtfsIdMapping: fields.stopGtfsIdMapping,
15
+ onError: fields.onScheduleParsingError,
16
+ });
17
+ this._realtimeParser = new GtfsRealtimeDataParser({
18
+ timezone: fields.timezoneData.timezone,
19
+ stopGtfsIdMapping: fields.stopGtfsIdMapping,
20
+ onError: fields.onRealtimeParsingError,
21
+ });
12
22
  }
13
- parse(scheduleCsvs, realtimeJson, lineGtfsIdMapping, stopGtfsIdMapping) {
14
- const scheduleData = this._scheduleParser.parse(scheduleCsvs, lineGtfsIdMapping, stopGtfsIdMapping);
15
- const realtimeData = this._realtimeParser.parse(realtimeJson, scheduleData, stopGtfsIdMapping);
23
+ parse(scheduleCsvs, realtimeJson) {
24
+ const scheduleData = this._scheduleParser.parse(scheduleCsvs);
25
+ const realtimeData = this._realtimeParser.parse(realtimeJson, scheduleData);
16
26
  return GtfsFeed.fromNewScheduleData(scheduleData, realtimeData, this._timezoneData);
17
27
  }
18
- updateWithNewRealtimeData(gtfsFeed, realtimeData, stopGtfsIdMapping) {
19
- const updatedRealtime = this._realtimeParser.parse(realtimeData, gtfsFeed.scheduleData, stopGtfsIdMapping);
28
+ updateWithNewRealtimeData(gtfsFeed, realtimeData) {
29
+ const updatedRealtime = this._realtimeParser.parse(realtimeData, gtfsFeed.scheduleData);
20
30
  return gtfsFeed.withUpdatedRealtimeData(updatedRealtime);
21
31
  }
22
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gtfs-feed-parser.js","sourceRoot":"","sources":["../../src/parser/gtfs-feed-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AAIjD,MAAM,OAAO,cAAc;IAON;IANF,eAAe,CAAyB;IACxC,eAAe,CAAyB;IAEzD,YACE,iBAAoC,EACpC,iBAAoC,EACnB,aAA2B,EAC5C,uBAAkE,EAClE,uBAAsE;QAFrD,kBAAa,GAAb,aAAa,CAAc;QAI5C,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAC/C,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,CACxB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAC/C,aAAa,CAAC,QAAQ,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,KAAK,CACH,YAAyB,EACzB,YAA8B,EAC9B,iBAAoC,EACpC,iBAAoC;QAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAC7C,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAC7C,YAAY,EACZ,YAAY,EACZ,iBAAiB,CAClB,CAAC;QAEF,OAAO,QAAQ,CAAC,mBAAmB,CACjC,YAAY,EACZ,YAAY,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,yBAAyB,CACvB,QAAkB,EAClB,YAA8B,EAC9B,iBAAoC;QAEpC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAChD,YAAY,EACZ,QAAQ,CAAC,YAAY,EACrB,iBAAiB,CAClB,CAAC;QAEF,OAAO,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"gtfs-feed-parser.js","sourceRoot":"","sources":["../../src/parser/gtfs-feed-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAC;AAgBjD,MAAM,OAAO,cAAc;IACR,aAAa,CAAe;IAE5B,eAAe,CAAyB;IACxC,eAAe,CAAyB;IAEzD,YAAY,MAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QAEzC,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC;YAChD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,OAAO,EAAE,MAAM,CAAC,sBAAsB;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAsB,CAAC;YAChD,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ;YACtC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,OAAO,EAAE,MAAM,CAAC,sBAAsB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAyB,EAAE,YAA8B;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE5E,OAAO,QAAQ,CAAC,mBAAmB,CACjC,YAAY,EACZ,YAAY,EACZ,IAAI,CAAC,aAAa,CACnB,CAAC;IACJ,CAAC;IAED,yBAAyB,CACvB,QAAkB,EAClB,YAA8B;QAE9B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAChD,YAAY,EACZ,QAAQ,CAAC,YAAY,CACtB,CAAC;QAEF,OAAO,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -3,9 +3,16 @@ import type { GtfsScheduleData } from "../../data/gtfs-schedule-data.js";
3
3
  import type { StopGtfsIdMapping } from "../../data/ids/stop-gtfs-id-mapping.js";
4
4
  import type { RealtimeDataJson } from "../../data/raw/realtime-data-json.js";
5
5
  import { type GtfsTripUpdateParsingError } from "./gtfs-trip-update-parser.js";
6
+ export type GtfsRealtimeDataParserFields = {
7
+ readonly timezone: string;
8
+ readonly stopGtfsIdMapping: StopGtfsIdMapping;
9
+ readonly onError: (error: GtfsRealtimeDataParsingError) => void;
10
+ };
6
11
  export declare class GtfsRealtimeDataParser {
7
12
  private readonly _tripUpdateParser;
8
- constructor(timezone: string, onError: (error: GtfsRealtimeDataParsingError) => void);
9
- parse(realtimeData: RealtimeDataJson, scheduleData: GtfsScheduleData, stopGtfsIdMapping: StopGtfsIdMapping): GtfsRealtimeData;
13
+ constructor(fields: GtfsRealtimeDataParserFields);
14
+ parse(realtimeData: RealtimeDataJson, scheduleData: GtfsScheduleData): GtfsRealtimeData;
15
+ private _parseTripUpdates;
16
+ private _breakTransfers;
10
17
  }
11
18
  export type GtfsRealtimeDataParsingError = GtfsTripUpdateParsingError;