@tiducto/spider-sdk-typescript 0.7.0 → 1.0.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.
- package/README.md +1 -1
- package/dist/contract/routing/PlanConnectionStreamVariables.d.ts +2 -2
- package/dist/contract/routing/PlanConnectionStreamVariables.d.ts.map +1 -1
- package/dist/contract/routing/Route.d.ts +3 -0
- package/dist/contract/routing/Route.d.ts.map +1 -1
- package/dist/contract/routing/Stop.d.ts +2 -0
- package/dist/contract/routing/Stop.d.ts.map +1 -1
- package/dist/contract/routing/StopDeparturesData.d.ts +3 -3
- package/dist/contract/routing/StopDeparturesData.d.ts.map +1 -1
- package/dist/contract/routing/StopDeparturesRoute.d.ts +3 -0
- package/dist/contract/routing/StopDeparturesRoute.d.ts.map +1 -1
- package/dist/contract/routing/StopDeparturesStop.d.ts +1 -5
- package/dist/contract/routing/StopDeparturesStop.d.ts.map +1 -1
- package/dist/contract/routing/StopDeparturesStop2.d.ts +9 -0
- package/dist/contract/routing/StopDeparturesStop2.d.ts.map +1 -0
- package/dist/contract/routing/StopDeparturesStop2.js +2 -0
- package/dist/contract/routing/StopDeparturesStop2.js.map +1 -0
- package/dist/contract/routing/StopDeparturesStoptime.d.ts +14 -0
- package/dist/contract/routing/StopDeparturesStoptime.d.ts.map +1 -0
- package/dist/contract/routing/StopDeparturesStoptime.js +2 -0
- package/dist/contract/routing/StopDeparturesStoptime.js.map +1 -0
- package/dist/contract/routing/StopDeparturesTrip.d.ts +2 -0
- package/dist/contract/routing/StopDeparturesTrip.d.ts.map +1 -1
- package/dist/contract/routing/StopDeparturesVariables.d.ts +2 -2
- package/dist/contract/routing/StopDeparturesVariables.d.ts.map +1 -1
- package/dist/contract/routing/Stoptime.d.ts +4 -3
- package/dist/contract/routing/Stoptime.d.ts.map +1 -1
- package/dist/contract/routing/TripRoute.d.ts +3 -0
- package/dist/contract/routing/TripRoute.d.ts.map +1 -1
- package/dist/contract/routing/TripStop.d.ts +2 -0
- package/dist/contract/routing/TripStop.d.ts.map +1 -1
- package/dist/contract/routing/TripTrip.d.ts +4 -2
- package/dist/contract/routing/TripTrip.d.ts.map +1 -1
- package/dist/contract/routing/index.d.ts +2 -1
- package/dist/contract/routing/index.d.ts.map +1 -1
- package/dist/contract.d.ts +0 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +0 -12
- package/dist/contract.js.map +1 -1
- package/dist/contractVersion.d.ts +1 -1
- package/dist/contractVersion.js +1 -1
- package/dist/enums.d.ts +11 -4
- package/dist/enums.d.ts.map +1 -1
- package/dist/enums.js +43 -24
- package/dist/enums.js.map +1 -1
- package/dist/errors.d.ts +30 -10
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +55 -18
- package/dist/errors.js.map +1 -1
- package/dist/http.d.ts +14 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +18 -30
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/location.d.ts +4 -0
- package/dist/location.d.ts.map +1 -1
- package/dist/location.js +4 -0
- package/dist/location.js.map +1 -1
- package/dist/persistedQueries.js +4 -4
- package/dist/realtime.d.ts +6 -2
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +21 -14
- package/dist/realtime.js.map +1 -1
- package/dist/routing.d.ts +91 -73
- package/dist/routing.d.ts.map +1 -1
- package/dist/routing.js +149 -145
- package/dist/routing.js.map +1 -1
- package/dist/sdk.d.ts +1 -1
- package/dist/sdkVersion.d.ts +1 -1
- package/dist/sdkVersion.js +1 -1
- package/dist/serviceDate.d.ts +6 -0
- package/dist/serviceDate.d.ts.map +1 -0
- package/dist/serviceDate.js +17 -0
- package/dist/serviceDate.js.map +1 -0
- package/dist/stops.d.ts +12 -1
- package/dist/stops.d.ts.map +1 -1
- package/dist/stops.js +15 -6
- package/dist/stops.js.map +1 -1
- package/package.json +1 -1
- package/dist/contract/routing/TripStoptime.d.ts +0 -13
- package/dist/contract/routing/TripStoptime.d.ts.map +0 -1
- package/dist/contract/routing/TripStoptime.js +0 -2
- package/dist/contract/routing/TripStoptime.js.map +0 -1
package/dist/routing.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { failure, success } from "./result.js";
|
|
2
|
-
import { DecodingError,
|
|
3
|
-
import {
|
|
2
|
+
import { DecodingError, TransportError, badRequest, httpFailure, toSpiderError } from "./errors.js";
|
|
3
|
+
import { graphqlFailure } from "./http.js";
|
|
4
|
+
import { bikesAllowedFromWire, inputFieldFromWire, realtimeStateFromWire, routingErrorCodeFromWire, transitModeFromWire, wheelchairFromWire, } from "./enums.js";
|
|
4
5
|
import { decodePolyline } from "./polyline.js";
|
|
6
|
+
import { invalidServiceDate, serviceDateOf } from "./serviceDate.js";
|
|
5
7
|
import { DEPARTURES, PLAN, PLAN_STREAM, TRIP } from "./persistedQueries.js";
|
|
6
8
|
const DEFAULT_SEARCH_WINDOW_MINUTES = 60;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
9
|
+
const DEFAULT_NUMBER_OF_DEPARTURES = 30;
|
|
10
|
+
const MAX_TIME_RANGE_SECONDS = 24 * 60 * 60;
|
|
11
|
+
// Fixed platform limits; the env-set ones (search window, result count, via count) are the server's to check.
|
|
12
|
+
const MIN_STREAM_WINDOW_MINUTES = 120;
|
|
13
|
+
const MAX_VIA_STOP_IDS = 10;
|
|
14
|
+
const MAX_VIA_WAIT_SECONDS = 24 * 60 * 60;
|
|
13
15
|
// The OTP transit modes valid in a modes filter — the public TransitMode union also carries street/leg
|
|
14
16
|
// values (WALK, BICYCLE, CAR, TRANSIT, UNKNOWN) that are not transit modes and must not reach the wire.
|
|
15
17
|
const WIRE_TRANSIT_MODES = new Set([
|
|
@@ -36,28 +38,51 @@ export class SpiderRouting {
|
|
|
36
38
|
searchWindowMinutes: options.searchWindowMinutes ?? DEFAULT_SEARCH_WINDOW_MINUTES,
|
|
37
39
|
wheelchairAccessible: options.wheelchairAccessible ?? false,
|
|
38
40
|
};
|
|
41
|
+
const invalid = invalidVia(request.via);
|
|
42
|
+
if (invalid != null)
|
|
43
|
+
return failure(invalid);
|
|
39
44
|
return this.page(request);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Streams itineraries over Server-Sent Events as the router sweeps the search window forward, emitting them
|
|
43
48
|
* as they finalize instead of one batched page. Lazy and cancellable: iteration opens the request, and
|
|
44
|
-
* `break`ing out of the `for await` cancels the underlying stream. Each `
|
|
45
|
-
* with realtime delays already on their legs; a `
|
|
46
|
-
*
|
|
47
|
-
*
|
|
49
|
+
* `break`ing out of the `for await` cancels the underlying stream. Each `result` event carries itineraries
|
|
50
|
+
* with realtime delays already on their legs; a terminal `done` event then carries the continuation
|
|
51
|
+
* {@link RoutePageInfo} and any `routingErrors` (or a terminal `failure`). Never throws — transport, HTTP and
|
|
52
|
+
* request errors surface as a `failure` event.
|
|
48
53
|
*
|
|
49
|
-
* `targetResults`
|
|
50
|
-
*
|
|
51
|
-
*
|
|
54
|
+
* `targetResults` (a soft floor the sweep aims to reach) and `maxWindowMinutes` (how far it may search, at
|
|
55
|
+
* least 2 h) are required. This opens a fresh stream; to continue, call {@link planStreamNext} with
|
|
56
|
+
* `done.pageInfo.endCursor` (when `hasNextPage`) or {@link planStreamPrevious} with `done.pageInfo.startCursor`
|
|
57
|
+
* (when `hasPreviousPage`). For a single batched page instead, use {@link plan}.
|
|
52
58
|
*/
|
|
53
59
|
async *planStream(options) {
|
|
60
|
+
yield* this.openPlanStream(options);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Continues a stream forward from a prior `done` event's `endCursor`. Takes the same options as
|
|
64
|
+
* {@link planStream} (so `targetResults` / `maxWindowMinutes` can vary per continuation) plus the raw cursor.
|
|
65
|
+
* Call only when the prior `done.pageInfo.hasNextPage` was true.
|
|
66
|
+
*/
|
|
67
|
+
async *planStreamNext(options, after) {
|
|
68
|
+
yield* this.openPlanStream(options, { after });
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Continues a stream backward from a prior `done` event's `startCursor`. Takes the same options as
|
|
72
|
+
* {@link planStream} plus the raw cursor. Call only when the prior `done.pageInfo.hasPreviousPage` was true.
|
|
73
|
+
*/
|
|
74
|
+
async *planStreamPrevious(options, before) {
|
|
75
|
+
yield* this.openPlanStream(options, { before });
|
|
76
|
+
}
|
|
77
|
+
// Builds the SSE request variables from the public options plus an optional raw continuation cursor. Forward
|
|
78
|
+
// paging sets `after`, backward sets `before`; an initial stream sets neither.
|
|
79
|
+
streamVariables(options, cursor) {
|
|
54
80
|
const time = options.arriveBy != null
|
|
55
81
|
? { kind: 'arriveBy', epochMs: toEpochMs(options.arriveBy) }
|
|
56
82
|
: { kind: 'departAt', epochMs: toEpochMs(options.departAt ?? Date.now()) };
|
|
57
83
|
const iso = new Date(time.epochMs).toISOString();
|
|
58
84
|
const via = options.via ?? [];
|
|
59
|
-
|
|
60
|
-
const variables = {
|
|
85
|
+
return {
|
|
61
86
|
dateTime: time.kind === 'departAt' ? { earliestDeparture: iso } : { latestArrival: iso },
|
|
62
87
|
origin: locationToInput(options.origin),
|
|
63
88
|
destination: locationToInput(options.destination),
|
|
@@ -67,50 +92,58 @@ export class SpiderRouting {
|
|
|
67
92
|
maxTransfers: options.maxTransfers,
|
|
68
93
|
wheelchairAccessible: options.wheelchairAccessible ?? false,
|
|
69
94
|
}),
|
|
70
|
-
targetResults: options.targetResults
|
|
71
|
-
maxWindow: `PT${maxWindowMinutes}M`,
|
|
72
|
-
before:
|
|
73
|
-
after:
|
|
95
|
+
targetResults: options.targetResults,
|
|
96
|
+
maxWindow: `PT${Math.floor(options.maxWindowMinutes)}M`,
|
|
97
|
+
before: cursor?.before,
|
|
98
|
+
after: cursor?.after,
|
|
74
99
|
};
|
|
75
|
-
yield* this.openPlanStream(variables);
|
|
76
100
|
}
|
|
77
101
|
// Opens the SSE `plan-stream` request and turns its `chunk`/`pageInfo`/`done`/`error` records into a
|
|
78
|
-
// PlanStreamEvent stream.
|
|
79
|
-
// `failure` event rather than a throw
|
|
80
|
-
//
|
|
81
|
-
async *openPlanStream(
|
|
102
|
+
// PlanStreamEvent stream. Invalid options, a non-2xx response, a transport error, or a decoding slip becomes a
|
|
103
|
+
// terminal `failure` event rather than a throw. Reading stops when the server closes the stream or the
|
|
104
|
+
// consumer stops iterating (which cancels the reader → aborts the request).
|
|
105
|
+
async *openPlanStream(options, cursor) {
|
|
106
|
+
const invalid = invalidStreamOptions(options);
|
|
107
|
+
if (invalid != null) {
|
|
108
|
+
yield { type: 'failure', error: invalid };
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
82
111
|
let response;
|
|
83
112
|
try {
|
|
84
|
-
response = await this.transport.stream(PLAN_STREAM,
|
|
113
|
+
response = await this.transport.stream(PLAN_STREAM, this.streamVariables(options, cursor));
|
|
85
114
|
}
|
|
86
115
|
catch (e) {
|
|
87
|
-
|
|
88
|
-
throw e;
|
|
89
|
-
yield { kind: 'failure', error: toSpiderError(e) };
|
|
116
|
+
yield { type: 'failure', error: toSpiderError(e) };
|
|
90
117
|
return;
|
|
91
118
|
}
|
|
92
119
|
if (!response.ok) {
|
|
93
|
-
|
|
94
|
-
const env = parseErrorEnvelope(text);
|
|
95
|
-
const detail = env.message ?? text.slice(0, 300);
|
|
96
|
-
const err = new TransportError('http', `routing plan-stream -> ${response.status}: ${detail}`, response.status, env.code);
|
|
97
|
-
yield { kind: 'failure', error: toSpiderError(err) };
|
|
120
|
+
yield { type: 'failure', error: toSpiderError(httpFailure('routing plan-stream', response.status, await drainText(response))) };
|
|
98
121
|
return;
|
|
99
122
|
}
|
|
100
123
|
const body = response.body;
|
|
101
124
|
if (body == null) {
|
|
102
|
-
yield {
|
|
125
|
+
yield { type: 'failure', error: toSpiderError(new TransportError('no_data', 'routing plan-stream returned no body')) };
|
|
103
126
|
return;
|
|
104
127
|
}
|
|
105
128
|
const reader = body.getReader();
|
|
106
129
|
const decoder = new TextDecoder();
|
|
107
130
|
let buffer = '';
|
|
131
|
+
// The gateway answers some rejections (e.g. a missing required variable) with a 2xx GraphQL JSON body
|
|
132
|
+
// before any event, so a body that opens with `{` is read whole and mapped like a batch response.
|
|
133
|
+
let json = (response.headers.get('content-type') ?? '').includes('json') ? true : undefined;
|
|
108
134
|
try {
|
|
109
135
|
for (;;) {
|
|
110
136
|
const { value, done } = await reader.read();
|
|
111
137
|
if (done)
|
|
112
138
|
break;
|
|
113
139
|
buffer = (buffer + decoder.decode(value, { stream: true })).replace(/\r\n/g, '\n');
|
|
140
|
+
if (json === undefined) {
|
|
141
|
+
const head = buffer.trimStart();
|
|
142
|
+
if (head !== '')
|
|
143
|
+
json = head.startsWith('{');
|
|
144
|
+
}
|
|
145
|
+
if (json !== false)
|
|
146
|
+
continue;
|
|
114
147
|
// SSE records are separated by a blank line; parse every complete one and keep the remainder buffered.
|
|
115
148
|
let boundary;
|
|
116
149
|
while ((boundary = buffer.indexOf('\n\n')) !== -1) {
|
|
@@ -121,6 +154,10 @@ export class SpiderRouting {
|
|
|
121
154
|
yield event;
|
|
122
155
|
}
|
|
123
156
|
}
|
|
157
|
+
if (json === true) {
|
|
158
|
+
yield { type: 'failure', error: streamErrorToSpiderError(buffer) };
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
124
161
|
// A trailing record the server didn't terminate with a blank line before closing.
|
|
125
162
|
const record = parseSseFrame(buffer);
|
|
126
163
|
const event = parsePlanStreamRecord(record.event, record.data);
|
|
@@ -128,7 +165,7 @@ export class SpiderRouting {
|
|
|
128
165
|
yield event;
|
|
129
166
|
}
|
|
130
167
|
catch (e) {
|
|
131
|
-
yield {
|
|
168
|
+
yield { type: 'failure', error: toSpiderError(e) };
|
|
132
169
|
}
|
|
133
170
|
finally {
|
|
134
171
|
await reader.cancel().catch(() => { });
|
|
@@ -147,66 +184,19 @@ export class SpiderRouting {
|
|
|
147
184
|
return this.page(requestOf(route), route.pageInfo.startCursor ?? undefined, undefined);
|
|
148
185
|
}
|
|
149
186
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
* whole window in one search, so a busy window yields more — `targetResults` is a soft floor, the window
|
|
153
|
-
* that reaches it is yielded whole. Lazy: `for await ... break` stops stepping and skips the remaining OTP
|
|
154
|
-
* searches. Each yield is one step's `SpiderResult` (a terminal error ends the stream), matching the
|
|
155
|
-
* non-throwing poll helpers.
|
|
156
|
-
*
|
|
157
|
-
* The step is `searchWindowMinutes` and it is fixed for the whole walk — OTP locks the window into the
|
|
158
|
-
* paging cursor after the first search and ignores it thereafter, so a wider step means a wider
|
|
159
|
-
* `searchWindowMinutes` here, not on a continuation.
|
|
187
|
+
* Upcoming departures from a stop or station: `numberOfDepartures` (default 30, up to the environment's
|
|
188
|
+
* limit) within `options.timeRangeSeconds` (default 24 h) from `options.startTime` (default now).
|
|
160
189
|
*/
|
|
161
|
-
async
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const first = await this.plan(planOptions);
|
|
166
|
-
yield first;
|
|
167
|
-
if (!first.isSuccess)
|
|
168
|
-
return;
|
|
169
|
-
yield* this.stepFrom(first.data, 'forward', steps - 1, target, first.data.edges.length);
|
|
170
|
-
}
|
|
171
|
-
/** Streaming form of `planNext`: steps forward from `prev`, one (fixed) search window per step. */
|
|
172
|
-
async *planNextUntil(prev, options) {
|
|
173
|
-
const steps = stepCount(options?.maxTraversalMinutes ?? DEFAULT_MAX_TRAVERSAL_MINUTES, requestOf(prev).searchWindowMinutes);
|
|
174
|
-
yield* this.stepFrom(prev, 'forward', steps, options?.targetResults ?? DEFAULT_TARGET_RESULTS, 0);
|
|
175
|
-
}
|
|
176
|
-
/** Streaming form of `planPrevious`: steps backward from `prev`, one (fixed) search window per step. */
|
|
177
|
-
async *planPreviousUntil(prev, options) {
|
|
178
|
-
const steps = stepCount(options?.maxTraversalMinutes ?? DEFAULT_MAX_TRAVERSAL_MINUTES, requestOf(prev).searchWindowMinutes);
|
|
179
|
-
yield* this.stepFrom(prev, 'backward', steps, options?.targetResults ?? DEFAULT_TARGET_RESULTS, 0);
|
|
180
|
-
}
|
|
181
|
-
// Step from `start` one search window at a time, accumulating itinerary count. Stop at `targetResults`, when a
|
|
182
|
-
// step has no next page, or on an error. `collectedSoFar` seeds the count (planUntil already yielded step 1).
|
|
183
|
-
async *stepFrom(start, direction, remainingSteps, targetResults, collectedSoFar) {
|
|
184
|
-
if (collectedSoFar >= targetResults)
|
|
185
|
-
return;
|
|
186
|
-
let prev = start;
|
|
187
|
-
let collected = collectedSoFar;
|
|
188
|
-
for (let i = 0; i < Math.max(0, remainingSteps); i++) {
|
|
189
|
-
const res = direction === 'forward'
|
|
190
|
-
? await this.planNext(prev)
|
|
191
|
-
: await this.planPrevious(prev);
|
|
192
|
-
if (res === null)
|
|
193
|
-
return;
|
|
194
|
-
yield res;
|
|
195
|
-
if (!res.isSuccess)
|
|
196
|
-
return;
|
|
197
|
-
collected += res.data.edges.length;
|
|
198
|
-
if (collected >= targetResults)
|
|
199
|
-
return;
|
|
200
|
-
prev = res.data;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
async departures(stopId, numberOfDepartures = 30, options) {
|
|
190
|
+
async departures(stopId, numberOfDepartures = DEFAULT_NUMBER_OF_DEPARTURES, options) {
|
|
191
|
+
const timeRange = Math.floor(options?.timeRangeSeconds ?? MAX_TIME_RANGE_SECONDS);
|
|
192
|
+
if (!(timeRange > 0 && timeRange <= MAX_TIME_RANGE_SECONDS))
|
|
193
|
+
return failure(badRequest('timeRange'));
|
|
204
194
|
try {
|
|
205
195
|
const variables = {
|
|
206
196
|
id: stopId,
|
|
207
197
|
numberOfDepartures,
|
|
208
198
|
startTime: options?.startTime != null ? Math.floor(toEpochMs(options.startTime) / 1000) : undefined,
|
|
209
|
-
timeRange
|
|
199
|
+
timeRange,
|
|
210
200
|
};
|
|
211
201
|
const data = await this.transport.graphql(DEPARTURES, variables);
|
|
212
202
|
const stop = data.asStop ?? data.asStation;
|
|
@@ -216,12 +206,14 @@ export class SpiderRouting {
|
|
|
216
206
|
return success(mapDepartures(stop));
|
|
217
207
|
}
|
|
218
208
|
catch (e) {
|
|
219
|
-
if (e instanceof SpiderContractMismatchError)
|
|
220
|
-
throw e;
|
|
221
209
|
return failure(toSpiderError(e));
|
|
222
210
|
}
|
|
223
211
|
}
|
|
212
|
+
/** One trip on one service date (ISO `YYYY-MM-DD`, e.g. a {@link Departure.serviceDate}); undefined = today. */
|
|
224
213
|
async trip(tripId, serviceDate) {
|
|
214
|
+
const invalid = serviceDate != null ? invalidServiceDate(serviceDate) : null;
|
|
215
|
+
if (invalid != null)
|
|
216
|
+
return failure(invalid);
|
|
225
217
|
try {
|
|
226
218
|
const variables = { id: tripId, serviceDate };
|
|
227
219
|
const data = await this.transport.graphql(TRIP, variables);
|
|
@@ -232,8 +224,6 @@ export class SpiderRouting {
|
|
|
232
224
|
return success(mapTrip(trip));
|
|
233
225
|
}
|
|
234
226
|
catch (e) {
|
|
235
|
-
if (e instanceof SpiderContractMismatchError)
|
|
236
|
-
throw e;
|
|
237
227
|
return failure(toSpiderError(e));
|
|
238
228
|
}
|
|
239
229
|
}
|
|
@@ -242,8 +232,6 @@ export class SpiderRouting {
|
|
|
242
232
|
return success(await this.fetchPlan(request, before, after));
|
|
243
233
|
}
|
|
244
234
|
catch (e) {
|
|
245
|
-
if (e instanceof SpiderContractMismatchError)
|
|
246
|
-
throw e;
|
|
247
235
|
return failure(toSpiderError(e));
|
|
248
236
|
}
|
|
249
237
|
}
|
|
@@ -259,8 +247,7 @@ export class SpiderRouting {
|
|
|
259
247
|
via: request.via.length > 0 ? request.via.map(viaToInput) : undefined,
|
|
260
248
|
modes: modesInput(request.allowedTransitModes),
|
|
261
249
|
preferences: preferencesInput(request),
|
|
262
|
-
|
|
263
|
-
searchWindow: `PT${Math.max(1, Math.floor(request.searchWindowMinutes))}M`,
|
|
250
|
+
searchWindow: `PT${Math.floor(request.searchWindowMinutes)}M`,
|
|
264
251
|
before,
|
|
265
252
|
after,
|
|
266
253
|
};
|
|
@@ -278,11 +265,7 @@ export class SpiderRouting {
|
|
|
278
265
|
hasPreviousPage: plan.pageInfo.hasPreviousPage,
|
|
279
266
|
searchWindowUsed: plan.pageInfo.searchWindowUsed ?? null,
|
|
280
267
|
},
|
|
281
|
-
routingErrors: plan.routingErrors.map(
|
|
282
|
-
code: re.code,
|
|
283
|
-
description: re.description,
|
|
284
|
-
inputField: re.inputField ?? null,
|
|
285
|
-
})),
|
|
268
|
+
routingErrors: plan.routingErrors.map(mapRoutingError),
|
|
286
269
|
searchDateTime: plan.searchDateTime ?? null,
|
|
287
270
|
};
|
|
288
271
|
return Object.assign({}, route, { [ROUTE_REQUEST]: request });
|
|
@@ -294,13 +277,23 @@ function requestOf(route) {
|
|
|
294
277
|
function toEpochMs(value) {
|
|
295
278
|
return typeof value === 'number' ? value : value.getTime();
|
|
296
279
|
}
|
|
297
|
-
function
|
|
298
|
-
|
|
280
|
+
function invalidStreamOptions(options) {
|
|
281
|
+
// Required by the type; a plain-JS caller can still omit it, and `PTNaNM` must never reach the wire.
|
|
282
|
+
if (options.maxWindowMinutes == null)
|
|
283
|
+
return badRequest('maxWindow', 'is required');
|
|
284
|
+
if (!(Math.floor(options.maxWindowMinutes) >= MIN_STREAM_WINDOW_MINUTES))
|
|
285
|
+
return badRequest('maxWindow');
|
|
286
|
+
return invalidVia(options.via ?? []);
|
|
299
287
|
}
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
288
|
+
function invalidVia(via) {
|
|
289
|
+
for (const v of via) {
|
|
290
|
+
const valid = v.kind === 'passThrough'
|
|
291
|
+
? v.stopIds.length >= 1 && v.stopIds.length <= MAX_VIA_STOP_IDS
|
|
292
|
+
: v.minimumWaitSeconds >= 0 && v.minimumWaitSeconds <= MAX_VIA_WAIT_SECONDS;
|
|
293
|
+
if (!valid)
|
|
294
|
+
return badRequest('via');
|
|
295
|
+
}
|
|
296
|
+
return null;
|
|
304
297
|
}
|
|
305
298
|
function locationToInput(location) {
|
|
306
299
|
if (location.kind === 'stop') {
|
|
@@ -328,7 +321,7 @@ function viaToInput(via) {
|
|
|
328
321
|
function modesInput(modes) {
|
|
329
322
|
const transit = modes
|
|
330
323
|
.filter((m) => WIRE_TRANSIT_MODES.has(m))
|
|
331
|
-
.map((mode) => ({ mode }));
|
|
324
|
+
.map((mode) => ({ mode: mode }));
|
|
332
325
|
return transit.length > 0 ? { transit: { transit } } : undefined;
|
|
333
326
|
}
|
|
334
327
|
function preferencesInput(request) {
|
|
@@ -358,23 +351,22 @@ function durationSecondsFromWire(raw) {
|
|
|
358
351
|
}
|
|
359
352
|
const SSE_DEFAULT_EVENT = 'message';
|
|
360
353
|
// Parses one finished SSE record (its event name + accumulated data) into a PlanStreamEvent; returns null for
|
|
361
|
-
// records the SDK doesn't surface (heartbeats, unknown events
|
|
362
|
-
// `failure` rather than throwing. Exported so the wire-contract test
|
|
354
|
+
// records the SDK doesn't surface (heartbeats, unknown events, the terminal `done` telemetry frame). A
|
|
355
|
+
// malformed payload becomes a terminal `failure` rather than throwing. Exported so the wire-contract test
|
|
356
|
+
// exercises it directly. A `chunk` frame → `result`; the `pageInfo` frame → terminal `done` (carrying the
|
|
357
|
+
// RoutePageInfo and routingErrors); the wire `done` telemetry frame just ends the stream and is dropped.
|
|
363
358
|
export function parsePlanStreamRecord(event, data) {
|
|
364
359
|
if (data.trim() === '')
|
|
365
360
|
return null;
|
|
366
361
|
switch (event) {
|
|
367
362
|
case 'chunk':
|
|
368
363
|
return decodeStreamRecord('chunk', data, (chunk) => ({
|
|
369
|
-
|
|
370
|
-
frontierSeconds: chunk.frontier ?? 0,
|
|
371
|
-
found: chunk.found ?? 0,
|
|
372
|
-
finalized: chunk.finalized ?? 0,
|
|
364
|
+
type: 'result',
|
|
373
365
|
itineraries: (chunk.results ?? []).map(mapItinerary),
|
|
374
366
|
}));
|
|
375
367
|
case 'pageInfo':
|
|
376
368
|
return decodeStreamRecord('pageInfo', data, (page) => ({
|
|
377
|
-
|
|
369
|
+
type: 'done',
|
|
378
370
|
pageInfo: {
|
|
379
371
|
startCursor: page.startCursor ?? null,
|
|
380
372
|
endCursor: page.endCursor ?? null,
|
|
@@ -382,27 +374,20 @@ export function parsePlanStreamRecord(event, data) {
|
|
|
382
374
|
hasPreviousPage: page.hasPreviousPage ?? false,
|
|
383
375
|
searchWindowUsed: page.searchWindowUsed ?? null,
|
|
384
376
|
},
|
|
385
|
-
|
|
386
|
-
case 'done':
|
|
387
|
-
return decodeStreamRecord('done', data, (done) => ({
|
|
388
|
-
kind: 'done',
|
|
389
|
-
iterations: done.iterations ?? 0,
|
|
390
|
-
windowSeconds: done.windowSeconds ?? 0,
|
|
391
|
-
resultCount: done.resultCount ?? 0,
|
|
392
|
-
stoppedBy: done.stoppedBy ?? 'unknown',
|
|
377
|
+
routingErrors: (page.routingErrors ?? []).map(mapRoutingError),
|
|
393
378
|
}));
|
|
394
379
|
case 'error':
|
|
395
|
-
return {
|
|
380
|
+
return { type: 'failure', error: streamErrorToSpiderError(data) };
|
|
396
381
|
default:
|
|
397
382
|
return null;
|
|
398
383
|
}
|
|
399
384
|
}
|
|
400
|
-
function decodeStreamRecord(
|
|
385
|
+
function decodeStreamRecord(frame, data, map) {
|
|
401
386
|
try {
|
|
402
387
|
return map(JSON.parse(data));
|
|
403
388
|
}
|
|
404
389
|
catch (e) {
|
|
405
|
-
return {
|
|
390
|
+
return { type: 'failure', error: toSpiderError(new DecodingError(`failed to decode plan-stream ${frame}`, e)) };
|
|
406
391
|
}
|
|
407
392
|
}
|
|
408
393
|
// Splits one raw SSE record into its event name (default "message") and data (multiple `data:` lines joined
|
|
@@ -426,25 +411,20 @@ function parseSseFrame(record) {
|
|
|
426
411
|
}
|
|
427
412
|
return { event, data: data.join('\n') };
|
|
428
413
|
}
|
|
429
|
-
// A stream `error` record
|
|
430
|
-
// same taxonomy
|
|
414
|
+
// A stream `error` record (or a 2xx JSON body in place of the stream) is the same GraphQL error envelope the
|
|
415
|
+
// batch path returns, so it maps through the same taxonomy: a BAD_REQUEST becomes bad_request with its field.
|
|
431
416
|
function streamErrorToSpiderError(data) {
|
|
432
417
|
let env;
|
|
433
418
|
try {
|
|
434
419
|
env = JSON.parse(data);
|
|
435
420
|
}
|
|
436
421
|
catch {
|
|
437
|
-
return toSpiderError(new TransportError('upstream', `plan-stream error: ${data.slice(0, 300)}`));
|
|
422
|
+
return toSpiderError(new TransportError('upstream', `routing plan-stream error: ${data.slice(0, 300)}`));
|
|
438
423
|
}
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
const bad = errors.find((e) => e.extensions?.code === 'BAD_REQUEST');
|
|
442
|
-
if (bad != null) {
|
|
443
|
-
return toSpiderError(new TransportError('bad_request', bad.message, undefined, undefined, bad.extensions?.field));
|
|
444
|
-
}
|
|
445
|
-
return toSpiderError(new TransportError('upstream', `plan-stream errors: ${errors.map((e) => e.message).join(', ')}`));
|
|
424
|
+
if (env.errors != null && env.errors.length > 0) {
|
|
425
|
+
return toSpiderError(graphqlFailure('routing plan-stream', env.errors));
|
|
446
426
|
}
|
|
447
|
-
return toSpiderError(new TransportError('upstream', `plan-stream error: ${env.message ?? data.slice(0, 300)}`));
|
|
427
|
+
return toSpiderError(new TransportError('upstream', `routing plan-stream error: ${env.message ?? data.slice(0, 300)}`));
|
|
448
428
|
}
|
|
449
429
|
async function drainText(response) {
|
|
450
430
|
try {
|
|
@@ -454,6 +434,9 @@ async function drainText(response) {
|
|
|
454
434
|
return '';
|
|
455
435
|
}
|
|
456
436
|
}
|
|
437
|
+
function mapRoutingError(re) {
|
|
438
|
+
return { code: routingErrorCodeFromWire(re.code), description: re.description, inputField: inputFieldFromWire(re.inputField) };
|
|
439
|
+
}
|
|
457
440
|
function mapItinerary(node) {
|
|
458
441
|
return {
|
|
459
442
|
start: node.start ?? null,
|
|
@@ -475,12 +458,21 @@ function mapLeg(leg) {
|
|
|
475
458
|
startDelaySeconds: durationSecondsFromWire(leg.start.estimated?.delay),
|
|
476
459
|
endDelaySeconds: durationSecondsFromWire(leg.end.estimated?.delay),
|
|
477
460
|
isRealtime: leg.realTime ?? false,
|
|
478
|
-
realtimeState: leg.realtimeState
|
|
461
|
+
realtimeState: realtimeStateFromWire(leg.realtimeState),
|
|
479
462
|
serviceDate: leg.serviceDate ?? null,
|
|
480
463
|
fromName: leg.from.name ?? null,
|
|
481
464
|
toName: leg.to.name ?? null,
|
|
465
|
+
fromGtfsId: leg.from.stop?.gtfsId ?? null,
|
|
466
|
+
toGtfsId: leg.to.stop?.gtfsId ?? null,
|
|
467
|
+
fromPlatformCode: leg.from.stop?.platformCode ?? null,
|
|
468
|
+
toPlatformCode: leg.to.stop?.platformCode ?? null,
|
|
469
|
+
fromZoneId: leg.from.stop?.zoneId ?? null,
|
|
470
|
+
toZoneId: leg.to.stop?.zoneId ?? null,
|
|
471
|
+
routeGtfsId: leg.route?.gtfsId ?? null,
|
|
482
472
|
routeShortName: leg.route?.shortName ?? null,
|
|
483
473
|
routeLongName: leg.route?.longName ?? null,
|
|
474
|
+
routeColor: leg.route?.color ?? null,
|
|
475
|
+
routeTextColor: leg.route?.textColor ?? null,
|
|
484
476
|
headsign: leg.headsign ?? null,
|
|
485
477
|
distanceMeters: leg.distance ?? null,
|
|
486
478
|
durationSeconds: leg.duration ?? null,
|
|
@@ -493,31 +485,36 @@ function mapLeg(leg) {
|
|
|
493
485
|
};
|
|
494
486
|
}
|
|
495
487
|
function mapDepartures(stop) {
|
|
496
|
-
const stopName = stop.name.trim().toLowerCase();
|
|
497
488
|
const out = [];
|
|
498
489
|
for (const st of stop.stoptimesWithoutPatterns ?? []) {
|
|
499
490
|
const serviceDay = st.serviceDay;
|
|
500
491
|
const scheduledOffset = st.scheduledDeparture;
|
|
501
492
|
if (serviceDay == null || scheduledOffset == null)
|
|
502
493
|
continue;
|
|
503
|
-
if (st.headsign != null && st.headsign.trim().toLowerCase() === stopName)
|
|
504
|
-
continue;
|
|
505
494
|
const route = st.trip?.route;
|
|
506
495
|
out.push({
|
|
507
496
|
scheduledTimeEpochMs: (serviceDay + scheduledOffset) * 1000,
|
|
508
497
|
realtimeTimeEpochMs: st.realtimeDeparture != null ? (serviceDay + st.realtimeDeparture) * 1000 : null,
|
|
509
498
|
isRealtime: st.realtime ?? false,
|
|
510
|
-
realtimeState: st.realtimeState
|
|
499
|
+
realtimeState: realtimeStateFromWire(st.realtimeState),
|
|
511
500
|
headsign: st.headsign ?? null,
|
|
512
501
|
tripGtfsId: st.trip?.gtfsId ?? null,
|
|
502
|
+
serviceDate: serviceDateOf(serviceDay),
|
|
503
|
+
routeGtfsId: route?.gtfsId ?? null,
|
|
513
504
|
routeShortName: route?.shortName ?? null,
|
|
514
505
|
routeLongName: route?.longName ?? null,
|
|
506
|
+
routeColor: route?.color ?? null,
|
|
507
|
+
routeTextColor: route?.textColor ?? null,
|
|
515
508
|
mode: transitModeFromWire(route?.mode),
|
|
509
|
+
stopGtfsId: st.stop?.gtfsId ?? null,
|
|
510
|
+
platformCode: st.stop?.platformCode ?? null,
|
|
511
|
+
wheelchairAccessible: wheelchairFromWire(st.trip?.wheelchairAccessible),
|
|
516
512
|
});
|
|
517
513
|
}
|
|
518
514
|
return out;
|
|
519
515
|
}
|
|
520
516
|
function mapTrip(trip) {
|
|
517
|
+
const serviceDay = trip.stoptimesForDate?.find((st) => st.serviceDay != null)?.serviceDay;
|
|
521
518
|
const stops = [];
|
|
522
519
|
for (const st of trip.stoptimesForDate ?? []) {
|
|
523
520
|
const s = st.stop;
|
|
@@ -536,16 +533,23 @@ function mapTrip(trip) {
|
|
|
536
533
|
realtimeDepartureEpochMs: at(st.realtimeDeparture),
|
|
537
534
|
isRealtime: st.realtime ?? false,
|
|
538
535
|
wheelchairBoarding: wheelchairFromWire(s.wheelchairBoarding),
|
|
536
|
+
platformCode: s.platformCode ?? null,
|
|
537
|
+
zoneId: s.zoneId ?? null,
|
|
539
538
|
});
|
|
540
539
|
}
|
|
541
540
|
return {
|
|
542
541
|
gtfsId: trip.gtfsId,
|
|
542
|
+
serviceDate: serviceDay != null ? serviceDateOf(serviceDay) : null,
|
|
543
|
+
routeGtfsId: trip.route.gtfsId ?? null,
|
|
543
544
|
routeShortName: trip.route.shortName ?? null,
|
|
544
545
|
routeLongName: trip.route.longName ?? null,
|
|
546
|
+
routeColor: trip.route.color ?? null,
|
|
547
|
+
routeTextColor: trip.route.textColor ?? null,
|
|
545
548
|
mode: transitModeFromWire(trip.route.mode),
|
|
546
549
|
headsign: trip.tripHeadsign ?? null,
|
|
547
550
|
directionId: trip.directionId ?? null,
|
|
548
551
|
bikesAllowed: bikesAllowedFromWire(trip.bikesAllowed),
|
|
552
|
+
wheelchairAccessible: wheelchairFromWire(trip.wheelchairAccessible),
|
|
549
553
|
stops,
|
|
550
554
|
geometry: trip.tripGeometry?.points ? decodePolyline(trip.tripGeometry.points) : [],
|
|
551
555
|
};
|
package/dist/routing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../src/routing.ts"],"names":[],"mappings":"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"}
|