corequery-gtfs 0.1.0 → 0.1.2

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 (185) hide show
  1. package/README.md +1 -1
  2. package/dist/config/gtfs-config.d.ts +10 -0
  3. package/dist/config/gtfs-config.js +2 -0
  4. package/dist/config/gtfs-config.js.map +1 -0
  5. package/dist/config/ids.d.ts +13 -0
  6. package/dist/config/ids.js +2 -0
  7. package/dist/config/ids.js.map +1 -0
  8. package/dist/config/index.d.ts +4 -0
  9. package/dist/config/index.js +5 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/config/routes.d.ts +16 -0
  12. package/dist/config/routes.js +2 -0
  13. package/dist/config/routes.js.map +1 -0
  14. package/dist/config/timezone-data.d.ts +5 -0
  15. package/dist/config/timezone-data.js +2 -0
  16. package/dist/config/timezone-data.js.map +1 -0
  17. package/dist/corequery-types.d.ts +2 -0
  18. package/dist/corequery-types.js +3 -0
  19. package/dist/corequery-types.js.map +1 -0
  20. package/dist/data/bounded-instant-range.d.ts +10 -0
  21. package/dist/data/bounded-instant-range.js +30 -0
  22. package/dist/data/bounded-instant-range.js.map +1 -0
  23. package/dist/data/gtfs-calendar.d.ts +38 -0
  24. package/dist/data/gtfs-calendar.js +116 -0
  25. package/dist/data/gtfs-calendar.js.map +1 -0
  26. package/dist/data/gtfs-feed.d.ts +16 -0
  27. package/dist/data/gtfs-feed.js +33 -0
  28. package/dist/data/gtfs-feed.js.map +1 -0
  29. package/dist/data/gtfs-realtime-data.d.ts +9 -0
  30. package/dist/data/gtfs-realtime-data.js +20 -0
  31. package/dist/data/gtfs-realtime-data.js.map +1 -0
  32. package/dist/data/gtfs-schedule-data.d.ts +13 -0
  33. package/dist/data/gtfs-schedule-data.js +40 -0
  34. package/dist/data/gtfs-schedule-data.js.map +1 -0
  35. package/dist/data/gtfs-scheduled-trip-movements.d.ts +118 -0
  36. package/dist/data/gtfs-scheduled-trip-movements.js +233 -0
  37. package/dist/data/gtfs-scheduled-trip-movements.js.map +1 -0
  38. package/dist/data/gtfs-scheduled-trip.d.ts +41 -0
  39. package/dist/data/gtfs-scheduled-trip.js +100 -0
  40. package/dist/data/gtfs-scheduled-trip.js.map +1 -0
  41. package/dist/data/gtfs-stop-time.d.ts +38 -0
  42. package/dist/data/gtfs-stop-time.js +105 -0
  43. package/dist/data/gtfs-stop-time.js.map +1 -0
  44. package/dist/data/gtfs-updated-trip-movements.d.ts +124 -0
  45. package/dist/data/gtfs-updated-trip-movements.js +150 -0
  46. package/dist/data/gtfs-updated-trip-movements.js.map +1 -0
  47. package/dist/data/gtfs-updated-trip.d.ts +21 -0
  48. package/dist/data/gtfs-updated-trip.js +55 -0
  49. package/dist/data/gtfs-updated-trip.js.map +1 -0
  50. package/dist/data/ids/index.d.ts +2 -0
  51. package/dist/data/ids/index.js +3 -0
  52. package/dist/data/ids/index.js.map +1 -0
  53. package/dist/data/ids/line-gtfs-id-collection.d.ts +16 -0
  54. package/dist/data/ids/line-gtfs-id-collection.js +47 -0
  55. package/dist/data/ids/line-gtfs-id-collection.js.map +1 -0
  56. package/dist/data/ids/line-gtfs-id-mapping.d.ts +17 -0
  57. package/dist/data/ids/line-gtfs-id-mapping.js +50 -0
  58. package/dist/data/ids/line-gtfs-id-mapping.js.map +1 -0
  59. package/dist/data/ids/line-gtfs-id-metadata.d.ts +17 -0
  60. package/dist/data/ids/line-gtfs-id-metadata.js +2 -0
  61. package/dist/data/ids/line-gtfs-id-metadata.js.map +1 -0
  62. package/dist/data/ids/stop-gtfs-id-collection.d.ts +14 -0
  63. package/dist/data/ids/stop-gtfs-id-collection.js +55 -0
  64. package/dist/data/ids/stop-gtfs-id-collection.js.map +1 -0
  65. package/dist/data/ids/stop-gtfs-id-mapping.d.ts +17 -0
  66. package/dist/data/ids/stop-gtfs-id-mapping.js +50 -0
  67. package/dist/data/ids/stop-gtfs-id-mapping.js.map +1 -0
  68. package/dist/data/ids/stop-gtfs-id-metadata.d.ts +23 -0
  69. package/dist/data/ids/stop-gtfs-id-metadata.js +2 -0
  70. package/dist/data/ids/stop-gtfs-id-metadata.js.map +1 -0
  71. package/dist/data/index.d.ts +3 -0
  72. package/dist/data/index.js +4 -0
  73. package/dist/data/index.js.map +1 -0
  74. package/dist/data/plain-date-range.d.ts +11 -0
  75. package/dist/data/plain-date-range.js +36 -0
  76. package/dist/data/plain-date-range.js.map +1 -0
  77. package/dist/data/raw/realtime-data-json.d.ts +26 -0
  78. package/dist/data/raw/realtime-data-json.js +2 -0
  79. package/dist/data/raw/realtime-data-json.js.map +1 -0
  80. package/dist/data/raw/schedule-csvs.d.ts +69 -0
  81. package/dist/data/raw/schedule-csvs.js +2 -0
  82. package/dist/data/raw/schedule-csvs.js.map +1 -0
  83. package/dist/data/route/bonus-lines-mapping.d.ts +17 -0
  84. package/dist/data/route/bonus-lines-mapping.js +29 -0
  85. package/dist/data/route/bonus-lines-mapping.js.map +1 -0
  86. package/dist/data/route/index.d.ts +1 -0
  87. package/dist/data/route/index.js +2 -0
  88. package/dist/data/route/index.js.map +1 -0
  89. package/dist/data/route/line-routes-mapping.d.ts +8 -0
  90. package/dist/data/route/line-routes-mapping.js +20 -0
  91. package/dist/data/route/line-routes-mapping.js.map +1 -0
  92. package/dist/data/route/route-stop.d.ts +12 -0
  93. package/dist/data/route/route-stop.js +18 -0
  94. package/dist/data/route/route-stop.js.map +1 -0
  95. package/dist/data/route/route.d.ts +19 -0
  96. package/dist/data/route/route.js +43 -0
  97. package/dist/data/route/route.js.map +1 -0
  98. package/dist/data/utils.d.ts +3 -0
  99. package/dist/data/utils.js +2 -0
  100. package/dist/data/utils.js.map +1 -0
  101. package/dist/departures/departures-block-iterator.d.ts +18 -0
  102. package/dist/departures/departures-block-iterator.js +70 -0
  103. package/dist/departures/departures-block-iterator.js.map +1 -0
  104. package/dist/departures/departures-block.d.ts +19 -0
  105. package/dist/departures/departures-block.js +13 -0
  106. package/dist/departures/departures-block.js.map +1 -0
  107. package/dist/departures/departures-iterator.d.ts +16 -0
  108. package/dist/departures/departures-iterator.js +15 -0
  109. package/dist/departures/departures-iterator.js.map +1 -0
  110. package/dist/departures/gtfs-scheduled-movements-index.d.ts +18 -0
  111. package/dist/departures/gtfs-scheduled-movements-index.js +66 -0
  112. package/dist/departures/gtfs-scheduled-movements-index.js.map +1 -0
  113. package/dist/departures/index.d.ts +1 -0
  114. package/dist/departures/index.js +2 -0
  115. package/dist/departures/index.js.map +1 -0
  116. package/dist/departures/multifeed-departures-iterator.d.ts +20 -0
  117. package/dist/departures/multifeed-departures-iterator.js +52 -0
  118. package/dist/departures/multifeed-departures-iterator.js.map +1 -0
  119. package/dist/departures/realtime-departures-block-iterator.d.ts +12 -0
  120. package/dist/departures/realtime-departures-block-iterator.js +38 -0
  121. package/dist/departures/realtime-departures-block-iterator.js.map +1 -0
  122. package/dist/departures/realtime-departures-block.d.ts +16 -0
  123. package/dist/departures/realtime-departures-block.js +43 -0
  124. package/dist/departures/realtime-departures-block.js.map +1 -0
  125. package/dist/departures/scheduled-departures-block-iterator.d.ts +12 -0
  126. package/dist/departures/scheduled-departures-block-iterator.js +55 -0
  127. package/dist/departures/scheduled-departures-block-iterator.js.map +1 -0
  128. package/dist/departures/scheduled-departures-block.d.ts +18 -0
  129. package/dist/departures/scheduled-departures-block.js +54 -0
  130. package/dist/departures/scheduled-departures-block.js.map +1 -0
  131. package/dist/departures/scheduled-departures-blocks-builder.d.ts +20 -0
  132. package/dist/departures/scheduled-departures-blocks-builder.js +222 -0
  133. package/dist/departures/scheduled-departures-blocks-builder.js.map +1 -0
  134. package/dist/departures/scheduled-departures-iterator.d.ts +30 -0
  135. package/dist/departures/scheduled-departures-iterator.js +204 -0
  136. package/dist/departures/scheduled-departures-iterator.js.map +1 -0
  137. package/dist/departures/zipper-departures-iterator.d.ts +18 -0
  138. package/dist/departures/zipper-departures-iterator.js +68 -0
  139. package/dist/departures/zipper-departures-iterator.js.map +1 -0
  140. package/dist/gtfs-system.d.ts +31 -0
  141. package/dist/gtfs-system.js +86 -0
  142. package/dist/gtfs-system.js.map +1 -0
  143. package/dist/index.d.ts +6 -0
  144. package/dist/index.js +7 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/parser/gtfs-feed-parser.d.ts +18 -0
  147. package/dist/parser/gtfs-feed-parser.js +23 -0
  148. package/dist/parser/gtfs-feed-parser.js.map +1 -0
  149. package/dist/parser/index.d.ts +2 -0
  150. package/dist/parser/index.js +3 -0
  151. package/dist/parser/index.js.map +1 -0
  152. package/dist/parser/realtime/gtfs-realtime-data-parser.d.ts +11 -0
  153. package/dist/parser/realtime/gtfs-realtime-data-parser.js +19 -0
  154. package/dist/parser/realtime/gtfs-realtime-data-parser.js.map +1 -0
  155. package/dist/parser/realtime/gtfs-trip-update-parser.d.ts +99 -0
  156. package/dist/parser/realtime/gtfs-trip-update-parser.js +335 -0
  157. package/dist/parser/realtime/gtfs-trip-update-parser.js.map +1 -0
  158. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.d.ts +35 -0
  159. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js +95 -0
  160. package/dist/parser/realtime/gtfs-trip-update-trip-identifier.js.map +1 -0
  161. package/dist/parser/realtime/index.d.ts +3 -0
  162. package/dist/parser/realtime/index.js +2 -0
  163. package/dist/parser/realtime/index.js.map +1 -0
  164. package/dist/parser/schedule/gtfs-calendar-parser.d.ts +28 -0
  165. package/dist/parser/schedule/gtfs-calendar-parser.js +113 -0
  166. package/dist/parser/schedule/gtfs-calendar-parser.js.map +1 -0
  167. package/dist/parser/schedule/gtfs-route-matcher.d.ts +48 -0
  168. package/dist/parser/schedule/gtfs-route-matcher.js +199 -0
  169. package/dist/parser/schedule/gtfs-route-matcher.js.map +1 -0
  170. package/dist/parser/schedule/gtfs-schedule-parser.d.ts +15 -0
  171. package/dist/parser/schedule/gtfs-schedule-parser.js +19 -0
  172. package/dist/parser/schedule/gtfs-schedule-parser.js.map +1 -0
  173. package/dist/parser/schedule/gtfs-stop-time-normaliser.d.ts +47 -0
  174. package/dist/parser/schedule/gtfs-stop-time-normaliser.js +119 -0
  175. package/dist/parser/schedule/gtfs-stop-time-normaliser.js.map +1 -0
  176. package/dist/parser/schedule/gtfs-transfer-connector.d.ts +52 -0
  177. package/dist/parser/schedule/gtfs-transfer-connector.js +168 -0
  178. package/dist/parser/schedule/gtfs-transfer-connector.js.map +1 -0
  179. package/dist/parser/schedule/gtfs-trip-parser.d.ts +45 -0
  180. package/dist/parser/schedule/gtfs-trip-parser.js +169 -0
  181. package/dist/parser/schedule/gtfs-trip-parser.js.map +1 -0
  182. package/dist/parser/schedule/index.d.ts +6 -0
  183. package/dist/parser/schedule/index.js +2 -0
  184. package/dist/parser/schedule/index.js.map +1 -0
  185. package/package.json +3 -3
@@ -0,0 +1,150 @@
1
+ export class GtfsUpdatedTripOriginatingMovement {
2
+ stopId;
3
+ originalPositionId;
4
+ updatedPositionId;
5
+ scheduledDepartureTime;
6
+ realtimeDepartureTime;
7
+ originalGtfsIdMetadata;
8
+ updatedGtfsIdMetadata;
9
+ gtfsStopSequence;
10
+ constructor(fields) {
11
+ this.stopId = fields.stopId;
12
+ this.originalPositionId = fields.originalPositionId;
13
+ this.updatedPositionId = fields.updatedPositionId;
14
+ this.scheduledDepartureTime = fields.scheduledDepartureTime;
15
+ this.realtimeDepartureTime = fields.realtimeDepartureTime;
16
+ this.originalGtfsIdMetadata = fields.originalGtfsIdMetadata;
17
+ this.updatedGtfsIdMetadata = fields.updatedGtfsIdMetadata;
18
+ this.gtfsStopSequence = fields.gtfsStopSequence;
19
+ }
20
+ with(newValues) {
21
+ return new GtfsUpdatedTripOriginatingMovement({ ...this, ...newValues });
22
+ }
23
+ get type() {
24
+ return "originating";
25
+ }
26
+ get isServicing() {
27
+ return true;
28
+ }
29
+ get isNonTerminal() {
30
+ return false;
31
+ }
32
+ get timeRelevantToDeparturesAlgorithm() {
33
+ return this.realtimeDepartureTime ?? this.scheduledDepartureTime;
34
+ }
35
+ get realtimeTimeRelevantToDeparturesAlgorithm() {
36
+ return this.realtimeDepartureTime;
37
+ }
38
+ get scheduledTimeRelevantToDeparturesAlgorithm() {
39
+ return this.scheduledDepartureTime;
40
+ }
41
+ }
42
+ export class GtfsUpdatedTripRegularMovement {
43
+ stopId;
44
+ originalPositionId;
45
+ updatedPositionId;
46
+ scheduledArrivalTime;
47
+ realtimeArrivalTime;
48
+ scheduledDepartureTime;
49
+ realtimeDepartureTime;
50
+ picksUp;
51
+ dropsOff;
52
+ originalGtfsIdMetadata;
53
+ updatedGtfsIdMetadata;
54
+ gtfsStopSequence;
55
+ constructor(fields) {
56
+ this.stopId = fields.stopId;
57
+ this.originalPositionId = fields.originalPositionId;
58
+ this.updatedPositionId = fields.updatedPositionId;
59
+ this.scheduledArrivalTime = fields.scheduledArrivalTime;
60
+ this.realtimeArrivalTime = fields.realtimeArrivalTime;
61
+ this.scheduledDepartureTime = fields.scheduledDepartureTime;
62
+ this.realtimeDepartureTime = fields.realtimeDepartureTime;
63
+ this.picksUp = fields.picksUp;
64
+ this.dropsOff = fields.dropsOff;
65
+ this.originalGtfsIdMetadata = fields.originalGtfsIdMetadata;
66
+ this.updatedGtfsIdMetadata = fields.updatedGtfsIdMetadata;
67
+ this.gtfsStopSequence = fields.gtfsStopSequence;
68
+ }
69
+ with(newValues) {
70
+ return new GtfsUpdatedTripRegularMovement({ ...this, ...newValues });
71
+ }
72
+ get type() {
73
+ return "regular";
74
+ }
75
+ get isServicing() {
76
+ return true;
77
+ }
78
+ get isNonTerminal() {
79
+ return true;
80
+ }
81
+ get timeRelevantToDeparturesAlgorithm() {
82
+ return this.realtimeDepartureTime ?? this.scheduledDepartureTime;
83
+ }
84
+ get realtimeTimeRelevantToDeparturesAlgorithm() {
85
+ return this.realtimeDepartureTime;
86
+ }
87
+ get scheduledTimeRelevantToDeparturesAlgorithm() {
88
+ return this.scheduledDepartureTime;
89
+ }
90
+ }
91
+ export class GtfsUpdatedTripTerminatingMovement {
92
+ stopId;
93
+ originalPositionId;
94
+ updatedPositionId;
95
+ scheduledArrivalTime;
96
+ realtimeArrivalTime;
97
+ originalGtfsIdMetadata;
98
+ updatedGtfsIdMetadata;
99
+ gtfsStopSequence;
100
+ constructor(fields) {
101
+ this.stopId = fields.stopId;
102
+ this.originalPositionId = fields.originalPositionId;
103
+ this.updatedPositionId = fields.updatedPositionId;
104
+ this.scheduledArrivalTime = fields.scheduledArrivalTime;
105
+ this.realtimeArrivalTime = fields.realtimeArrivalTime;
106
+ this.originalGtfsIdMetadata = fields.originalGtfsIdMetadata;
107
+ this.updatedGtfsIdMetadata = fields.updatedGtfsIdMetadata;
108
+ this.gtfsStopSequence = fields.gtfsStopSequence;
109
+ }
110
+ with(newValues) {
111
+ return new GtfsUpdatedTripTerminatingMovement({ ...this, ...newValues });
112
+ }
113
+ get type() {
114
+ return "terminating";
115
+ }
116
+ get isServicing() {
117
+ return true;
118
+ }
119
+ get isNonTerminal() {
120
+ return false;
121
+ }
122
+ get timeRelevantToDeparturesAlgorithm() {
123
+ return this.realtimeArrivalTime ?? this.scheduledArrivalTime;
124
+ }
125
+ get realtimeTimeRelevantToDeparturesAlgorithm() {
126
+ return this.realtimeArrivalTime;
127
+ }
128
+ get scheduledTimeRelevantToDeparturesAlgorithm() {
129
+ return this.scheduledArrivalTime;
130
+ }
131
+ }
132
+ export class GtfsUpdatedTripPassingMovement {
133
+ stopId;
134
+ constructor(fields) {
135
+ this.stopId = fields.stopId;
136
+ }
137
+ with(newValues) {
138
+ return new GtfsUpdatedTripPassingMovement({ ...this, ...newValues });
139
+ }
140
+ get type() {
141
+ return "passing";
142
+ }
143
+ get isServicing() {
144
+ return false;
145
+ }
146
+ get isNonTerminal() {
147
+ return true;
148
+ }
149
+ }
150
+ //# sourceMappingURL=gtfs-updated-trip-movements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtfs-updated-trip-movements.js","sourceRoot":"","sources":["../../src/data/gtfs-updated-trip-movements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { GtfsScheduledTrip } from "./gtfs-scheduled-trip.js";
2
+ import type { GtfsUpdatedTripMovement, GtfsUpdatedTripOriginatingMovement, GtfsUpdatedTripTerminatingMovement } from "./gtfs-updated-trip-movements.js";
3
+ type GtfsUpdatedTripFields = {
4
+ readonly scheduledTrip: GtfsScheduledTrip;
5
+ readonly serviceDay: Temporal.PlainDate;
6
+ readonly movements: readonly GtfsUpdatedTripMovement[];
7
+ readonly isCancelled: boolean;
8
+ };
9
+ export declare class GtfsUpdatedTrip {
10
+ readonly scheduledTrip: GtfsScheduledTrip;
11
+ readonly serviceDay: Temporal.PlainDate;
12
+ readonly movements: readonly GtfsUpdatedTripMovement[];
13
+ readonly isCancelled: boolean;
14
+ constructor(fields: GtfsUpdatedTripFields);
15
+ with(newValues: Partial<GtfsUpdatedTripFields>): GtfsUpdatedTrip;
16
+ get gtfsTripId(): string;
17
+ get origination(): GtfsUpdatedTripOriginatingMovement;
18
+ get termination(): GtfsUpdatedTripTerminatingMovement;
19
+ static unmodified(trip: GtfsScheduledTrip, serviceDay: Temporal.PlainDate, timezone: string): GtfsUpdatedTrip;
20
+ }
21
+ export {};
@@ -0,0 +1,55 @@
1
+ import { itsOk } from "@dan-schel/js-utils";
2
+ export class GtfsUpdatedTrip {
3
+ scheduledTrip;
4
+ // An updated trip is not recurring. It only ever applies to a single
5
+ // instance of a trip.
6
+ serviceDay;
7
+ movements;
8
+ isCancelled;
9
+ constructor(fields) {
10
+ this.scheduledTrip = fields.scheduledTrip;
11
+ this.serviceDay = fields.serviceDay;
12
+ this.movements = fields.movements;
13
+ this.isCancelled = fields.isCancelled;
14
+ if (this.movements.length < 2)
15
+ throw new Error("Must have 2+ movements.");
16
+ const originOk = itsOk(this.movements[0]).type === "originating";
17
+ const terminusOk = itsOk(this.movements.at(-1)).type === "terminating";
18
+ const othersOk = this.movements.slice(1, -1).every((m) => m.isNonTerminal);
19
+ if (!originOk)
20
+ throw new Error("First movement of wrong type.");
21
+ if (!terminusOk)
22
+ throw new Error("Last movement of wrong type");
23
+ if (!othersOk)
24
+ throw new Error("Some terminal movements in wrong places.");
25
+ }
26
+ with(newValues) {
27
+ return new GtfsUpdatedTrip({ ...this, ...newValues });
28
+ }
29
+ get gtfsTripId() {
30
+ return this.scheduledTrip.gtfsTripId;
31
+ }
32
+ get origination() {
33
+ const firstMovement = this.movements[0];
34
+ if (firstMovement?.type === "originating")
35
+ return firstMovement;
36
+ // Can't happen. Checked in constructor.
37
+ throw new Error();
38
+ }
39
+ get termination() {
40
+ const lastMovement = this.movements.at(-1);
41
+ if (lastMovement?.type === "terminating")
42
+ return lastMovement;
43
+ // Can't happen. Checked in constructor.
44
+ throw new Error();
45
+ }
46
+ static unmodified(trip, serviceDay, timezone) {
47
+ return new GtfsUpdatedTrip({
48
+ scheduledTrip: trip,
49
+ serviceDay,
50
+ movements: trip.movements.map((m) => m.asHollowUpdatedTripMovement(serviceDay, timezone)),
51
+ isCancelled: false,
52
+ });
53
+ }
54
+ }
55
+ //# sourceMappingURL=gtfs-updated-trip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtfs-updated-trip.js","sourceRoot":"","sources":["../../src/data/gtfs-updated-trip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAiB5C,MAAM,OAAO,eAAe;IACjB,aAAa,CAAoB;IAE1C,qEAAqE;IACrE,sBAAsB;IACb,UAAU,CAAqB;IAE/B,SAAS,CAAqC;IAC9C,WAAW,CAAU;IAE9B,YAAY,MAA6B;QACvC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACjE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,SAAyC;QAC5C,OAAO,IAAI,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,IAAI,WAAW;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,aAAa,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,aAAa,CAAC;QAEhE,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,YAAY,EAAE,IAAI,KAAK,aAAa;YAAE,OAAO,YAAY,CAAC;QAE9D,wCAAwC;QACxC,MAAM,IAAI,KAAK,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,UAAU,CACf,IAAuB,EACvB,UAA8B,EAC9B,QAAgB;QAEhB,OAAO,IAAI,eAAe,CAAC;YACzB,aAAa,EAAE,IAAI;YACnB,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CACpD;YACD,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from "./line-gtfs-id-mapping.js";
2
+ export * from "./stop-gtfs-id-mapping.js";
@@ -0,0 +1,3 @@
1
+ export * from "./line-gtfs-id-mapping.js";
2
+ export * from "./stop-gtfs-id-mapping.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/ids/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { LineGtfsIdMetadata } from "./line-gtfs-id-metadata.js";
2
+ import type { LineGtfsIdCollectionConfig } from "../../config/ids.js";
3
+ export declare class LineGtfsIdCollection {
4
+ readonly lineId: number;
5
+ readonly primary: string;
6
+ readonly other: readonly string[];
7
+ readonly replacementBus: readonly string[];
8
+ constructor(lineId: number, primary: string, other: readonly string[], replacementBus: readonly string[]);
9
+ all(): LineGtfsIdMetadata[];
10
+ allExcludingReplacementBus(): LineGtfsIdMetadata[];
11
+ includes(id: string, { ignoreReplacementBusIds }: {
12
+ ignoreReplacementBusIds: boolean;
13
+ }): boolean;
14
+ static build(stopId: number, gtfsIdsForSubfeed: LineGtfsIdCollectionConfig): LineGtfsIdCollection;
15
+ static withParentOnly(lineId: number, parentGtfsId: string): LineGtfsIdCollection;
16
+ }
@@ -0,0 +1,47 @@
1
+ export class LineGtfsIdCollection {
2
+ lineId;
3
+ primary;
4
+ other;
5
+ replacementBus;
6
+ constructor(lineId, primary, other, replacementBus) {
7
+ this.lineId = lineId;
8
+ this.primary = primary;
9
+ this.other = other;
10
+ this.replacementBus = replacementBus;
11
+ }
12
+ all() {
13
+ return [
14
+ {
15
+ type: "primary",
16
+ id: this.primary,
17
+ lineId: this.lineId,
18
+ },
19
+ ...this.other.map((id) => ({
20
+ type: "other",
21
+ id,
22
+ lineId: this.lineId,
23
+ })),
24
+ ...this.replacementBus.map((id) => ({
25
+ type: "replacement-bus",
26
+ id,
27
+ lineId: this.lineId,
28
+ })),
29
+ ];
30
+ }
31
+ allExcludingReplacementBus() {
32
+ return this.all().filter((metadata) => metadata.type !== "replacement-bus");
33
+ }
34
+ includes(id, { ignoreReplacementBusIds }) {
35
+ const idsToCheck = ignoreReplacementBusIds
36
+ ? this.allExcludingReplacementBus()
37
+ : this.all();
38
+ return idsToCheck.some((metadata) => metadata.id === id);
39
+ }
40
+ static build(stopId, gtfsIdsForSubfeed) {
41
+ return new LineGtfsIdCollection(stopId, gtfsIdsForSubfeed.primary, gtfsIdsForSubfeed.other ?? [], gtfsIdsForSubfeed.replacementBus ?? []);
42
+ }
43
+ static withParentOnly(lineId, parentGtfsId) {
44
+ return new LineGtfsIdCollection(lineId, parentGtfsId, [], []);
45
+ }
46
+ }
47
+ //# sourceMappingURL=line-gtfs-id-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-gtfs-id-collection.js","sourceRoot":"","sources":["../../../src/data/ids/line-gtfs-id-collection.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,oBAAoB;IAEpB;IACA;IACA;IACA;IAJX,YACW,MAAc,EACd,OAAe,EACf,KAAwB,EACxB,cAAiC;QAHjC,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAmB;QACxB,mBAAc,GAAd,cAAc,CAAmB;IACzC,CAAC;IAEJ,GAAG;QACD,OAAO;YACL;gBACE,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,IAAI,CAAC,OAAO;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;YAED,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzB,IAAI,EAAE,OAAgB;gBACtB,EAAE;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,iBAA0B;gBAChC,EAAE;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;IAC9E,CAAC;IAED,QAAQ,CACN,EAAU,EACV,EAAE,uBAAuB,EAAwC;QAEjE,MAAM,UAAU,GAAG,uBAAuB;YACxC,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACnC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAc,EAAE,iBAA6C;QACxE,OAAO,IAAI,oBAAoB,CAC7B,MAAM,EACN,iBAAiB,CAAC,OAAO,EACzB,iBAAiB,CAAC,KAAK,IAAI,EAAE,EAC7B,iBAAiB,CAAC,cAAc,IAAI,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,YAAoB;QACxD,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { LineGtfsIdsConfig } from "../../config/ids.js";
2
+ import type { LineGtfsIdMetadata } from "./line-gtfs-id-metadata.js";
3
+ import { LineGtfsIdCollection } from "./line-gtfs-id-collection.js";
4
+ type FromLineIdMapping = Map<number, LineGtfsIdCollection>;
5
+ export declare class LineGtfsIdMapping {
6
+ private _fromLineIdMapping;
7
+ private _fromGtfsIdMapping;
8
+ constructor(fromLineIdMapping: FromLineIdMapping);
9
+ tryResolve(gtfsId: string): LineGtfsIdMetadata | null;
10
+ resolveOrThrow(gtfsId: string): LineGtfsIdMetadata;
11
+ getForLine(lineId: number): LineGtfsIdCollection | null;
12
+ requireForLine(lineId: number): LineGtfsIdCollection;
13
+ allIds(): LineGtfsIdMetadata[];
14
+ static build(config: LineGtfsIdsConfig): LineGtfsIdMapping;
15
+ private static _reverseMapping;
16
+ }
17
+ export {};
@@ -0,0 +1,50 @@
1
+ import { parseIntThrow } from "@dan-schel/js-utils";
2
+ import { LineGtfsIdCollection } from "./line-gtfs-id-collection.js";
3
+ export class LineGtfsIdMapping {
4
+ _fromLineIdMapping;
5
+ _fromGtfsIdMapping;
6
+ constructor(fromLineIdMapping) {
7
+ this._fromLineIdMapping = fromLineIdMapping;
8
+ this._fromGtfsIdMapping =
9
+ LineGtfsIdMapping._reverseMapping(fromLineIdMapping);
10
+ }
11
+ tryResolve(gtfsId) {
12
+ return this._fromGtfsIdMapping.get(gtfsId) ?? null;
13
+ }
14
+ resolveOrThrow(gtfsId) {
15
+ const result = this.tryResolve(gtfsId);
16
+ if (result == null)
17
+ throw new Error(`GTFS ID "${gtfsId}" not mapped.`);
18
+ return result;
19
+ }
20
+ getForLine(lineId) {
21
+ return this._fromLineIdMapping.get(lineId) ?? null;
22
+ }
23
+ requireForLine(lineId) {
24
+ const result = this.getForLine(lineId);
25
+ if (result == null)
26
+ throw new Error(`No GTFS IDs for line ${lineId}.`);
27
+ return result;
28
+ }
29
+ allIds() {
30
+ return [...this._fromGtfsIdMapping.values()];
31
+ }
32
+ static build(config) {
33
+ const result = new Map();
34
+ for (const [lineIdStr, gtfsIds] of Object.entries(config)) {
35
+ const lineId = parseIntThrow(lineIdStr);
36
+ result.set(lineId, LineGtfsIdCollection.build(lineId, gtfsIds));
37
+ }
38
+ return new LineGtfsIdMapping(result);
39
+ }
40
+ static _reverseMapping(fromLineIdMapping) {
41
+ const result = new Map();
42
+ for (const gtfsIdCollection of fromLineIdMapping.values()) {
43
+ for (const gtfsId of gtfsIdCollection.all()) {
44
+ result.set(gtfsId.id, gtfsId);
45
+ }
46
+ }
47
+ return result;
48
+ }
49
+ }
50
+ //# sourceMappingURL=line-gtfs-id-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-gtfs-id-mapping.js","sourceRoot":"","sources":["../../../src/data/ids/line-gtfs-id-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,OAAO,iBAAiB;IACpB,kBAAkB,CAAoB;IACtC,kBAAkB,CAAoB;IAE9C,YAAY,iBAAoC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,kBAAkB;YACrB,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,eAAe,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAyB;QACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEvD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,iBAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;QAErD,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ export type LineGtfsIdMetadata = PrimaryLineGtfsIdMetadata | OtherLineGtfsIdMetadata | ReplacementBusLineGtfsIdMetadata;
2
+ type PrimaryLineGtfsIdMetadata = {
3
+ readonly type: "primary";
4
+ readonly id: string;
5
+ readonly lineId: number;
6
+ };
7
+ type OtherLineGtfsIdMetadata = {
8
+ readonly type: "other";
9
+ readonly id: string;
10
+ readonly lineId: number;
11
+ };
12
+ type ReplacementBusLineGtfsIdMetadata = {
13
+ readonly type: "replacement-bus";
14
+ readonly id: string;
15
+ readonly lineId: number;
16
+ };
17
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=line-gtfs-id-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-gtfs-id-metadata.js","sourceRoot":"","sources":["../../../src/data/ids/line-gtfs-id-metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { StopGtfsIdCollectionConfig } from "../../config/ids.js";
2
+ import type { StopGtfsIdMetadata } from "./stop-gtfs-id-metadata.js";
3
+ export declare class StopGtfsIdCollection {
4
+ readonly stopId: number;
5
+ readonly parent: string;
6
+ readonly general: readonly string[];
7
+ readonly platforms: Map<number, readonly string[]>;
8
+ readonly replacementBus: readonly string[];
9
+ constructor(stopId: number, parent: string, general: readonly string[], platforms: Map<number, readonly string[]>, replacementBus: readonly string[]);
10
+ all(): StopGtfsIdMetadata[];
11
+ includes(id: string): boolean;
12
+ static build(stopId: number, gtfsIdsForSubfeed: StopGtfsIdCollectionConfig): StopGtfsIdCollection;
13
+ static withParentOnly(stopId: number, parentGtfsId: string): StopGtfsIdCollection;
14
+ }
@@ -0,0 +1,55 @@
1
+ import { parseIntThrow } from "@dan-schel/js-utils";
2
+ export class StopGtfsIdCollection {
3
+ stopId;
4
+ parent;
5
+ general;
6
+ platforms;
7
+ replacementBus;
8
+ constructor(stopId, parent, general, platforms, replacementBus) {
9
+ this.stopId = stopId;
10
+ this.parent = parent;
11
+ this.general = general;
12
+ this.platforms = platforms;
13
+ this.replacementBus = replacementBus;
14
+ }
15
+ all() {
16
+ return [
17
+ {
18
+ type: "parent",
19
+ id: this.parent,
20
+ stopId: this.stopId,
21
+ },
22
+ ...this.general.map((id) => ({
23
+ type: "general",
24
+ id,
25
+ stopId: this.stopId,
26
+ })),
27
+ ...this.replacementBus.map((id) => ({
28
+ type: "replacement-bus",
29
+ id,
30
+ stopId: this.stopId,
31
+ })),
32
+ ...[...this.platforms.entries()].flatMap(([positionId, ids]) => ids.map((id) => ({
33
+ type: "platform",
34
+ id,
35
+ stopId: this.stopId,
36
+ positionId,
37
+ }))),
38
+ ];
39
+ }
40
+ includes(id) {
41
+ return this.all().some((metadata) => metadata.id === id);
42
+ }
43
+ static build(stopId, gtfsIdsForSubfeed) {
44
+ const platformsConfig = gtfsIdsForSubfeed.platforms ?? {};
45
+ const platforms = new Map();
46
+ for (const [platformIdStr, gtfsIds] of Object.entries(platformsConfig)) {
47
+ platforms.set(parseIntThrow(platformIdStr), gtfsIds);
48
+ }
49
+ return new StopGtfsIdCollection(stopId, gtfsIdsForSubfeed.parent, gtfsIdsForSubfeed.general ?? [], platforms, gtfsIdsForSubfeed.replacementBus ?? []);
50
+ }
51
+ static withParentOnly(stopId, parentGtfsId) {
52
+ return new StopGtfsIdCollection(stopId, parentGtfsId, [], new Map(), []);
53
+ }
54
+ }
55
+ //# sourceMappingURL=stop-gtfs-id-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-gtfs-id-collection.js","sourceRoot":"","sources":["../../../src/data/ids/stop-gtfs-id-collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,OAAO,oBAAoB;IAEpB;IACA;IACA;IACA;IACA;IALX,YACW,MAAc,EACd,MAAc,EACd,OAA0B,EAC1B,SAAyC,EACzC,cAAiC;QAJjC,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAmB;QAC1B,cAAS,GAAT,SAAS,CAAgC;QACzC,mBAAc,GAAd,cAAc,CAAmB;IACzC,CAAC;IAEJ,GAAG;QACD,OAAO;YACL;gBACE,IAAI,EAAE,QAAQ;gBACd,EAAE,EAAE,IAAI,CAAC,MAAM;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB;YAED,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,SAAkB;gBACxB,EAAE;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAClC,IAAI,EAAE,iBAA0B;gBAChC,EAAE;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAC7D,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACf,IAAI,EAAE,UAAmB;gBACzB,EAAE;gBACF,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU;aACX,CAAC,CAAC,CACJ;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAc,EAAE,iBAA6C;QACxE,MAAM,eAAe,GAAG,iBAAiB,CAAC,SAAS,IAAI,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;QACvD,KAAK,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACvE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,oBAAoB,CAC7B,MAAM,EACN,iBAAiB,CAAC,MAAM,EACxB,iBAAiB,CAAC,OAAO,IAAI,EAAE,EAC/B,SAAS,EACT,iBAAiB,CAAC,cAAc,IAAI,EAAE,CACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,YAAoB;QACxD,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { StopGtfsIdsConfig } from "../../config/ids.js";
2
+ import type { StopGtfsIdMetadata } from "./stop-gtfs-id-metadata.js";
3
+ import { StopGtfsIdCollection } from "./stop-gtfs-id-collection.js";
4
+ type FromStopIdMapping = Map<number, StopGtfsIdCollection>;
5
+ export declare class StopGtfsIdMapping {
6
+ private _fromStopIdMapping;
7
+ private _fromGtfsIdMapping;
8
+ constructor(fromStopIdMapping: FromStopIdMapping);
9
+ tryResolve(gtfsId: string): StopGtfsIdMetadata | null;
10
+ resolveOrThrow(gtfsId: string): StopGtfsIdMetadata;
11
+ getForStop(stopId: number): StopGtfsIdCollection | null;
12
+ requireForStop(stopId: number): StopGtfsIdCollection;
13
+ allIds(): StopGtfsIdMetadata[];
14
+ static build(config: StopGtfsIdsConfig): StopGtfsIdMapping;
15
+ private static _reverseMapping;
16
+ }
17
+ export {};
@@ -0,0 +1,50 @@
1
+ import { parseIntThrow } from "@dan-schel/js-utils";
2
+ import { StopGtfsIdCollection } from "./stop-gtfs-id-collection.js";
3
+ export class StopGtfsIdMapping {
4
+ _fromStopIdMapping;
5
+ _fromGtfsIdMapping;
6
+ constructor(fromStopIdMapping) {
7
+ this._fromStopIdMapping = fromStopIdMapping;
8
+ this._fromGtfsIdMapping =
9
+ StopGtfsIdMapping._reverseMapping(fromStopIdMapping);
10
+ }
11
+ tryResolve(gtfsId) {
12
+ return this._fromGtfsIdMapping.get(gtfsId) ?? null;
13
+ }
14
+ resolveOrThrow(gtfsId) {
15
+ const result = this.tryResolve(gtfsId);
16
+ if (result == null)
17
+ throw new Error(`GTFS ID "${gtfsId}" not mapped.`);
18
+ return result;
19
+ }
20
+ getForStop(stopId) {
21
+ return this._fromStopIdMapping.get(stopId) ?? null;
22
+ }
23
+ requireForStop(stopId) {
24
+ const result = this.getForStop(stopId);
25
+ if (result == null)
26
+ throw new Error(`No GTFS IDs for stop ${stopId}.`);
27
+ return result;
28
+ }
29
+ allIds() {
30
+ return [...this._fromGtfsIdMapping.values()];
31
+ }
32
+ static build(config) {
33
+ const result = new Map();
34
+ for (const [stopIdStr, gtfsIds] of Object.entries(config)) {
35
+ const stopId = parseIntThrow(stopIdStr);
36
+ result.set(stopId, StopGtfsIdCollection.build(stopId, gtfsIds));
37
+ }
38
+ return new StopGtfsIdMapping(result);
39
+ }
40
+ static _reverseMapping(fromStopIdMapping) {
41
+ const result = new Map();
42
+ for (const gtfsIdCollection of fromStopIdMapping.values()) {
43
+ for (const gtfsId of gtfsIdCollection.all()) {
44
+ result.set(gtfsId.id, gtfsId);
45
+ }
46
+ }
47
+ return result;
48
+ }
49
+ }
50
+ //# sourceMappingURL=stop-gtfs-id-mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-gtfs-id-mapping.js","sourceRoot":"","sources":["../../../src/data/ids/stop-gtfs-id-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAKpE,MAAM,OAAO,iBAAiB;IACpB,kBAAkB,CAAoB;IACtC,kBAAkB,CAAoB;IAE9C,YAAY,iBAAoC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,kBAAkB;YACrB,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACzD,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,eAAe,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAyB;QACpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEvD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,iBAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8B,CAAC;QAErD,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ export type StopGtfsIdMetadata = ParentStopGtfsIdMetadata | GeneralStopGtfsIdMetadata | PlatformStopGtfsIdMetadata | ReplacementBusStopGtfsIdMetadata;
2
+ type ParentStopGtfsIdMetadata = {
3
+ readonly type: "parent";
4
+ readonly id: string;
5
+ readonly stopId: number;
6
+ };
7
+ type GeneralStopGtfsIdMetadata = {
8
+ readonly type: "general";
9
+ readonly id: string;
10
+ readonly stopId: number;
11
+ };
12
+ type PlatformStopGtfsIdMetadata = {
13
+ readonly type: "platform";
14
+ readonly id: string;
15
+ readonly stopId: number;
16
+ readonly positionId: number;
17
+ };
18
+ type ReplacementBusStopGtfsIdMetadata = {
19
+ readonly type: "replacement-bus";
20
+ readonly id: string;
21
+ readonly stopId: number;
22
+ };
23
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=stop-gtfs-id-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-gtfs-id-metadata.js","sourceRoot":"","sources":["../../../src/data/ids/stop-gtfs-id-metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from "./ids/index.js";
2
+ export * from "./route/index.js";
3
+ export * from "./gtfs-stop-time.js";
@@ -0,0 +1,4 @@
1
+ export * from "./ids/index.js";
2
+ export * from "./route/index.js";
3
+ export * from "./gtfs-stop-time.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare class PlainDateRange {
2
+ readonly start: Temporal.PlainDate | null;
3
+ readonly end: Temporal.PlainDate | null;
4
+ static readonly infinite: PlainDateRange;
5
+ constructor(start: Temporal.PlainDate | null, end: Temporal.PlainDate | null);
6
+ includes(date: Temporal.PlainDate): boolean;
7
+ startsAfter(date: Temporal.PlainDate): boolean;
8
+ endsBefore(date: Temporal.PlainDate): boolean;
9
+ endsAfter(date: Temporal.PlainDate): boolean;
10
+ static encompassing(a: PlainDateRange, b: PlainDateRange): PlainDateRange;
11
+ }