corequery-gtfs 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/gtfs-feed.d.ts +5 -5
- package/dist/data/gtfs-feed.js +14 -6
- package/dist/data/gtfs-feed.js.map +1 -1
- package/dist/data/gtfs-schedule-data.d.ts +1 -0
- package/dist/data/gtfs-schedule-data.js +1 -0
- package/dist/data/gtfs-schedule-data.js.map +1 -1
- package/dist/departures/gtfs-scheduled-movements-index.d.ts +2 -1
- package/dist/departures/gtfs-scheduled-movements-index.js +2 -0
- package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -1
- package/dist/gtfs-system.d.ts +3 -3
- package/dist/gtfs-system.js +7 -9
- package/dist/gtfs-system.js.map +1 -1
- package/dist/parser/gtfs-feed-parser.d.ts +1 -1
- package/dist/parser/gtfs-feed-parser.js +2 -2
- package/dist/parser/gtfs-feed-parser.js.map +1 -1
- package/package.json +2 -2
package/dist/data/gtfs-feed.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { TimezoneData } from "../config/timezone-data.js";
|
|
2
2
|
import { GtfsScheduledMovementsIndex } from "../departures/gtfs-scheduled-movements-index.js";
|
|
3
3
|
import { ZipperDeparturesIterator } from "../departures/zipper-departures-iterator.js";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import { GtfsRealtimeData } from "./gtfs-realtime-data.js";
|
|
5
|
+
import { GtfsScheduleData } from "./gtfs-schedule-data.js";
|
|
6
6
|
import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
|
|
7
7
|
import type { GtfsUpdatedTrip } from "./gtfs-updated-trip.js";
|
|
8
8
|
export declare class GtfsFeed {
|
|
9
|
-
readonly corequeryDataSourceId: string;
|
|
10
9
|
readonly scheduleData: GtfsScheduleData;
|
|
11
10
|
readonly realtimeData: GtfsRealtimeData;
|
|
12
11
|
readonly timezoneData: TimezoneData;
|
|
13
12
|
readonly scheduledMovementsIndex: GtfsScheduledMovementsIndex;
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
static readonly empty: GtfsFeed;
|
|
14
|
+
constructor(scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData, scheduledMovementsIndex: GtfsScheduledMovementsIndex);
|
|
15
|
+
static fromNewScheduleData(scheduleData: GtfsScheduleData, realtimeData: GtfsRealtimeData, timezoneData: TimezoneData): GtfsFeed;
|
|
16
16
|
withUpdatedRealtimeData(realtimeData: GtfsRealtimeData): GtfsFeed;
|
|
17
17
|
getTrip(gtfsTripId: string, serviceDay: Temporal.PlainDate): GtfsScheduledTrip | GtfsUpdatedTrip | null;
|
|
18
18
|
createDepartureIterator(stopId: number): ZipperDeparturesIterator;
|
package/dist/data/gtfs-feed.js
CHANGED
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
import { GtfsScheduledMovementsIndex } from "../departures/gtfs-scheduled-movements-index.js";
|
|
2
2
|
import { ZipperDeparturesIterator } from "../departures/zipper-departures-iterator.js";
|
|
3
|
+
import { GtfsRealtimeData } from "./gtfs-realtime-data.js";
|
|
4
|
+
import { GtfsScheduleData } from "./gtfs-schedule-data.js";
|
|
3
5
|
export class GtfsFeed {
|
|
4
|
-
corequeryDataSourceId;
|
|
5
6
|
scheduleData;
|
|
6
7
|
realtimeData;
|
|
7
8
|
timezoneData;
|
|
8
9
|
scheduledMovementsIndex;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
static empty = new GtfsFeed(GtfsScheduleData.empty, GtfsRealtimeData.empty,
|
|
11
|
+
// Timezone data can be literally anything. Because there's no trips, we
|
|
12
|
+
// never create a ScheduledDeparturesBlocksBuilder, so it's unused.
|
|
13
|
+
{
|
|
14
|
+
timezone: "UTC",
|
|
15
|
+
minimumViableOffsetSeconds: 0,
|
|
16
|
+
maximumViableOffsetSeconds: 0,
|
|
17
|
+
}, GtfsScheduledMovementsIndex.empty);
|
|
18
|
+
constructor(scheduleData, realtimeData, timezoneData, scheduledMovementsIndex) {
|
|
11
19
|
this.scheduleData = scheduleData;
|
|
12
20
|
this.realtimeData = realtimeData;
|
|
13
21
|
this.timezoneData = timezoneData;
|
|
14
22
|
this.scheduledMovementsIndex = scheduledMovementsIndex;
|
|
15
23
|
}
|
|
16
|
-
static fromNewScheduleData(
|
|
24
|
+
static fromNewScheduleData(scheduleData, realtimeData, timezoneData) {
|
|
17
25
|
const scheduledMovementsIndex = GtfsScheduledMovementsIndex.build(scheduleData);
|
|
18
|
-
return new GtfsFeed(
|
|
26
|
+
return new GtfsFeed(scheduleData, realtimeData, timezoneData, scheduledMovementsIndex);
|
|
19
27
|
}
|
|
20
28
|
withUpdatedRealtimeData(realtimeData) {
|
|
21
|
-
return new GtfsFeed(this.
|
|
29
|
+
return new GtfsFeed(this.scheduleData, realtimeData, this.timezoneData, this.scheduledMovementsIndex);
|
|
22
30
|
}
|
|
23
31
|
getTrip(gtfsTripId, serviceDay) {
|
|
24
32
|
const realtimeTrip = this.realtimeData.getTrip(gtfsTripId, serviceDay);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-feed.js","sourceRoot":"","sources":["../../src/data/gtfs-feed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iDAAiD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,OAAO,QAAQ;IAiBR;IACA;IACA;IACA;IAnBX,MAAM,CAAU,KAAK,GAAG,IAAI,QAAQ,CAClC,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,KAAK;IAEtB,wEAAwE;IACxE,mEAAmE;IACnE;QACE,QAAQ,EAAE,KAAK;QACf,0BAA0B,EAAE,CAAC;QAC7B,0BAA0B,EAAE,CAAC;KAC9B,EAED,2BAA2B,CAAC,KAAK,CAClC,CAAC;IAEF,YACW,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B,EAC1B,uBAAoD;QAHpD,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,YAA8B,EAC9B,YAA8B,EAC9B,YAA0B;QAE1B,MAAM,uBAAuB,GAC3B,2BAA2B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,IAAI,QAAQ,CACjB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,uBAAuB,CAAC,YAA8B;QACpD,OAAO,IAAI,QAAQ,CACjB,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"}
|
|
@@ -4,6 +4,7 @@ export declare class GtfsScheduleData {
|
|
|
4
4
|
private readonly _trips;
|
|
5
5
|
private readonly _tripsById;
|
|
6
6
|
private readonly _calendarsById;
|
|
7
|
+
static readonly empty: GtfsScheduleData;
|
|
7
8
|
constructor(_trips: readonly GtfsScheduledTrip[], calendars: readonly GtfsCalendar[]);
|
|
8
9
|
allTrips(): readonly GtfsScheduledTrip[];
|
|
9
10
|
getTrip(gtfsTripId: string): GtfsScheduledTrip | null;
|
|
@@ -2,6 +2,7 @@ export class GtfsScheduleData {
|
|
|
2
2
|
_trips;
|
|
3
3
|
_tripsById;
|
|
4
4
|
_calendarsById;
|
|
5
|
+
static empty = GtfsScheduleData.fromTrips([]);
|
|
5
6
|
constructor(_trips, calendars) {
|
|
6
7
|
// Arguably we should be taking the map as the constructor argument because
|
|
7
8
|
// the GtfsTransferConnector operates on a map, that it converts back to an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-schedule-data.js","sourceRoot":"","sources":["../../src/data/gtfs-schedule-data.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"gtfs-schedule-data.js","sourceRoot":"","sources":["../../src/data/gtfs-schedule-data.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IAOR;IANF,UAAU,CAAiC;IAC3C,cAAc,CAA4B;IAE3D,MAAM,CAAU,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAEvD,YACmB,MAAoC,EACrD,SAAkC;QAElC,2EAA2E;QAC3E,2EAA2E;QAC3E,yEAAyE;QACzE,8BAA8B;QANb,WAAM,GAAN,MAAM,CAA8B;QAQrD,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,CACvB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAC9C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,UAAkB;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,cAAsB;QAChC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC;IACzD,CAAC;IAED,eAAe,CAAC,cAAsB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,uBAAuB,cAAc,+BAA+B,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAmC;QAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { GtfsScheduleData } from "../data/gtfs-schedule-data.js";
|
|
2
2
|
import { GtfsStopTime } from "../data/gtfs-stop-time.js";
|
|
3
3
|
import type { GtfsScheduledTrip } from "../data/gtfs-scheduled-trip.js";
|
|
4
4
|
import type { GtfsScheduledTripServicingMovement } from "../data/gtfs-scheduled-trip-movements.js";
|
|
@@ -12,6 +12,7 @@ export type GtfsScheduledMovementsIndexEntry = {
|
|
|
12
12
|
export declare class GtfsScheduledMovementsIndex {
|
|
13
13
|
private readonly _index;
|
|
14
14
|
private readonly _rangeEncompassingAllCalendarsByStop;
|
|
15
|
+
static readonly empty: GtfsScheduledMovementsIndex;
|
|
15
16
|
private constructor();
|
|
16
17
|
getMovementsForStop(stopId: number): readonly GtfsScheduledMovementsIndexEntry[];
|
|
17
18
|
getRangeEncompassingAllCalendarsForStop(stopId: number): PlainDateRange | null;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { itsOk } from "@dan-schel/js-utils";
|
|
2
|
+
import { GtfsScheduleData } from "../data/gtfs-schedule-data.js";
|
|
2
3
|
import { GtfsStopTime } from "../data/gtfs-stop-time.js";
|
|
3
4
|
import { PlainDateRange } from "../data/plain-date-range.js";
|
|
4
5
|
export class GtfsScheduledMovementsIndex {
|
|
5
6
|
_index;
|
|
6
7
|
_rangeEncompassingAllCalendarsByStop;
|
|
8
|
+
static empty = GtfsScheduledMovementsIndex.build(GtfsScheduleData.empty);
|
|
7
9
|
constructor(_index, _rangeEncompassingAllCalendarsByStop) {
|
|
8
10
|
this._index = _index;
|
|
9
11
|
this._rangeEncompassingAllCalendarsByStop = _rangeEncompassingAllCalendarsByStop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-scheduled-movements-index.js","sourceRoot":"","sources":["../../src/departures/gtfs-scheduled-movements-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gtfs-scheduled-movements-index.js","sourceRoot":"","sources":["../../src/departures/gtfs-scheduled-movements-index.ts"],"names":[],"mappings":"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"}
|
package/dist/gtfs-system.d.ts
CHANGED
|
@@ -8,7 +8,6 @@ import type { GtfsScheduleParsingError } from "./parser/schedule/gtfs-schedule-p
|
|
|
8
8
|
import type { RealtimeDataJson } from "./data/raw/realtime-data-json.js";
|
|
9
9
|
import type { GtfsFeedCsv } from "./data/raw/schedule-csvs.js";
|
|
10
10
|
export declare class GtfsSystem {
|
|
11
|
-
private readonly _corequeryDataSourceId;
|
|
12
11
|
private readonly _lineGtfsIdMapping;
|
|
13
12
|
private readonly _stopGtfsIdMapping;
|
|
14
13
|
private readonly _lineRoutesMapping;
|
|
@@ -18,14 +17,15 @@ export declare class GtfsSystem {
|
|
|
18
17
|
private _feed;
|
|
19
18
|
private _scheduleParsingErrors;
|
|
20
19
|
private _realtimeParsingErrors;
|
|
21
|
-
constructor(
|
|
22
|
-
static build(
|
|
20
|
+
constructor(_lineGtfsIdMapping: LineGtfsIdMapping, _stopGtfsIdMapping: StopGtfsIdMapping, _lineRoutesMapping: LineRoutesMapping, _bonusLinesMapping: BonusLinesMapping, _timezoneData: TimezoneData);
|
|
21
|
+
static build(config: GtfsConfig): GtfsSystem;
|
|
23
22
|
getFeed(): GtfsFeed | null;
|
|
24
23
|
requireFeed(): GtfsFeed;
|
|
25
24
|
get realtimeParsingErrors(): import("./index.js").GtfsTripUpdateParsingError[];
|
|
26
25
|
get scheduleParsingErrors(): GtfsScheduleParsingError[];
|
|
27
26
|
onNewScheduleData(scheduleCsvs: GtfsFeedCsv, realtimeJson: RealtimeDataJson): void;
|
|
28
27
|
onNewRealtimeData(realtimeJson: RealtimeDataJson): void;
|
|
28
|
+
setFeed(feed: GtfsFeed): void;
|
|
29
29
|
private _onScheduledParsingError;
|
|
30
30
|
private _onRealtimeParsingError;
|
|
31
31
|
}
|
package/dist/gtfs-system.js
CHANGED
|
@@ -4,7 +4,6 @@ import { BonusLinesMapping } from "./data/route/bonus-lines-mapping.js";
|
|
|
4
4
|
import { LineRoutesMapping } from "./data/route/line-routes-mapping.js";
|
|
5
5
|
import { GtfsFeedParser } from "./parser/gtfs-feed-parser.js";
|
|
6
6
|
export class GtfsSystem {
|
|
7
|
-
_corequeryDataSourceId;
|
|
8
7
|
_lineGtfsIdMapping;
|
|
9
8
|
_stopGtfsIdMapping;
|
|
10
9
|
_lineRoutesMapping;
|
|
@@ -34,11 +33,7 @@ export class GtfsSystem {
|
|
|
34
33
|
_feed;
|
|
35
34
|
_scheduleParsingErrors;
|
|
36
35
|
_realtimeParsingErrors;
|
|
37
|
-
constructor(
|
|
38
|
-
// TODO: I don't think this is needed, since GtfsServiceSource currently
|
|
39
|
-
// handles ensuring the source ID is attached to the returned services.
|
|
40
|
-
_corequeryDataSourceId, _lineGtfsIdMapping, _stopGtfsIdMapping, _lineRoutesMapping, _bonusLinesMapping, _timezoneData) {
|
|
41
|
-
this._corequeryDataSourceId = _corequeryDataSourceId;
|
|
36
|
+
constructor(_lineGtfsIdMapping, _stopGtfsIdMapping, _lineRoutesMapping, _bonusLinesMapping, _timezoneData) {
|
|
42
37
|
this._lineGtfsIdMapping = _lineGtfsIdMapping;
|
|
43
38
|
this._stopGtfsIdMapping = _stopGtfsIdMapping;
|
|
44
39
|
this._lineRoutesMapping = _lineRoutesMapping;
|
|
@@ -49,8 +44,8 @@ export class GtfsSystem {
|
|
|
49
44
|
this._scheduleParsingErrors = [];
|
|
50
45
|
this._realtimeParsingErrors = [];
|
|
51
46
|
}
|
|
52
|
-
static build(
|
|
53
|
-
return new GtfsSystem(
|
|
47
|
+
static build(config) {
|
|
48
|
+
return new GtfsSystem(LineGtfsIdMapping.build(config.lineGtfsIds), StopGtfsIdMapping.build(config.stopGtfsIds), LineRoutesMapping.build(config.lineRoutesMapping), BonusLinesMapping.build(config.bonusLinesMapping ?? {}), config.timezoneData);
|
|
54
49
|
}
|
|
55
50
|
getFeed() {
|
|
56
51
|
return this._feed;
|
|
@@ -69,7 +64,7 @@ export class GtfsSystem {
|
|
|
69
64
|
onNewScheduleData(scheduleCsvs, realtimeJson) {
|
|
70
65
|
this._scheduleParsingErrors = [];
|
|
71
66
|
this._realtimeParsingErrors = [];
|
|
72
|
-
const result = this._parser.parse(
|
|
67
|
+
const result = this._parser.parse(scheduleCsvs, realtimeJson, this._lineGtfsIdMapping, this._stopGtfsIdMapping);
|
|
73
68
|
this._feed = result;
|
|
74
69
|
}
|
|
75
70
|
onNewRealtimeData(realtimeJson) {
|
|
@@ -79,6 +74,9 @@ export class GtfsSystem {
|
|
|
79
74
|
const result = this._parser.updateWithNewRealtimeData(this._feed, realtimeJson, this._stopGtfsIdMapping);
|
|
80
75
|
this._feed = result;
|
|
81
76
|
}
|
|
77
|
+
setFeed(feed) {
|
|
78
|
+
this._feed = feed;
|
|
79
|
+
}
|
|
82
80
|
_onScheduledParsingError(error) {
|
|
83
81
|
this._scheduleParsingErrors.push(error);
|
|
84
82
|
}
|
package/dist/gtfs-system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gtfs-system.js","sourceRoot":"","sources":["../src/gtfs-system.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAM9D,MAAM,OAAO,UAAU;
|
|
1
|
+
{"version":3,"file":"gtfs-system.js","sourceRoot":"","sources":["../src/gtfs-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,6 @@ export declare class GtfsFeedParser {
|
|
|
13
13
|
private readonly _scheduleParser;
|
|
14
14
|
private readonly _realtimeParser;
|
|
15
15
|
constructor(lineRoutesMapping: LineRoutesMapping, bonusLinesMapping: BonusLinesMapping, _timezoneData: TimezoneData, _onScheduleParsingError: (error: GtfsScheduleParsingError) => void, _onRealtimeParsingError: (error: GtfsRealtimeDataParsingError) => void);
|
|
16
|
-
parse(
|
|
16
|
+
parse(scheduleCsvs: GtfsFeedCsv, realtimeJson: RealtimeDataJson, lineGtfsIdMapping: LineGtfsIdMapping, stopGtfsIdMapping: StopGtfsIdMapping): GtfsFeed;
|
|
17
17
|
updateWithNewRealtimeData(gtfsFeed: GtfsFeed, realtimeData: RealtimeDataJson, stopGtfsIdMapping: StopGtfsIdMapping): GtfsFeed;
|
|
18
18
|
}
|
|
@@ -10,10 +10,10 @@ export class GtfsFeedParser {
|
|
|
10
10
|
this._scheduleParser = new GtfsScheduleParser(lineRoutesMapping, bonusLinesMapping, _onScheduleParsingError);
|
|
11
11
|
this._realtimeParser = new GtfsRealtimeDataParser(_timezoneData.timezone, _onRealtimeParsingError);
|
|
12
12
|
}
|
|
13
|
-
parse(
|
|
13
|
+
parse(scheduleCsvs, realtimeJson, lineGtfsIdMapping, stopGtfsIdMapping) {
|
|
14
14
|
const scheduleData = this._scheduleParser.parse(scheduleCsvs, lineGtfsIdMapping, stopGtfsIdMapping);
|
|
15
15
|
const realtimeData = this._realtimeParser.parse(realtimeJson, scheduleData, stopGtfsIdMapping);
|
|
16
|
-
return GtfsFeed.fromNewScheduleData(
|
|
16
|
+
return GtfsFeed.fromNewScheduleData(scheduleData, realtimeData, this._timezoneData);
|
|
17
17
|
}
|
|
18
18
|
updateWithNewRealtimeData(gtfsFeed, realtimeData, stopGtfsIdMapping) {
|
|
19
19
|
const updatedRealtime = this._realtimeParser.parse(realtimeData, gtfsFeed.scheduleData, stopGtfsIdMapping);
|
|
@@ -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,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,OAAO,cAAc;IAON;IANF,eAAe,CAAqB;IACpC,eAAe,CAAyB;IAEzD,YACE,iBAAoC,EACpC,iBAAoC,EACnB,aAA2B,EAC5C,uBAAkE,EAClE,uBAAsE;QAFrD,kBAAa,GAAb,aAAa,CAAc;QAI5C,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAC3C,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,
|
|
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,kBAAkB,GAEnB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,OAAO,cAAc;IAON;IANF,eAAe,CAAqB;IACpC,eAAe,CAAyB;IAEzD,YACE,iBAAoC,EACpC,iBAAoC,EACnB,aAA2B,EAC5C,uBAAkE,EAClE,uBAAsE;QAFrD,kBAAa,GAAb,aAAa,CAAc;QAI5C,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAC3C,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "corequery-gtfs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
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": "tsc -p tsconfig.json --noEmit && eslint . --max-warnings 0 && knip",
|
|
14
|
+
"lint": "tsc -p tsconfig.json --noEmit && tsc -p tests/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\\/\""
|