@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/errors.js
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
1
|
+
const QUERY_RETIRED = 'query_retired';
|
|
2
|
+
// Plan-limit refusals: the body code names the state, and the fixed wording stands in for a body without a message.
|
|
3
|
+
const LIMIT_MESSAGES = {
|
|
4
|
+
planning_limit_reached: 'trip planning limit reached',
|
|
5
|
+
agreement_inactive: 'agreement is not active',
|
|
6
|
+
};
|
|
7
|
+
/** A `bad_request` that names only the field, like the server's own validation errors. */
|
|
8
|
+
export function badRequest(field, problem = 'is out of range') {
|
|
9
|
+
return { code: 'bad_request', message: `${field} ${problem}`, field };
|
|
10
10
|
}
|
|
11
11
|
export class TransportError extends Error {
|
|
12
12
|
kind;
|
|
13
13
|
httpStatus;
|
|
14
14
|
serverCode;
|
|
15
15
|
field;
|
|
16
|
-
|
|
16
|
+
/** The response body's own `message`, when it has one. */
|
|
17
|
+
serverMessage;
|
|
18
|
+
/** The code-shaped `error` field of the response body, where the gateway puts its own refusal codes. */
|
|
19
|
+
gatewayCode;
|
|
20
|
+
constructor(kind, message, httpStatus, serverCode, field, body) {
|
|
17
21
|
super(message);
|
|
18
22
|
this.name = 'TransportError';
|
|
19
23
|
this.kind = kind;
|
|
20
24
|
this.httpStatus = httpStatus;
|
|
21
25
|
this.serverCode = serverCode;
|
|
22
26
|
this.field = field;
|
|
27
|
+
this.serverMessage = body?.message;
|
|
28
|
+
this.gatewayCode = body?.gatewayCode;
|
|
23
29
|
}
|
|
24
30
|
}
|
|
25
31
|
export function parseErrorEnvelope(text) {
|
|
@@ -32,13 +38,36 @@ export function parseErrorEnvelope(text) {
|
|
|
32
38
|
}
|
|
33
39
|
if (typeof body === 'object' && body !== null) {
|
|
34
40
|
const b = body;
|
|
41
|
+
// The gateway's own rejections carry their code in `error` (e.g. "query_retired"); other
|
|
42
|
+
// services put a human sentence there, so only a code-shaped value counts.
|
|
43
|
+
const gatewayCode = typeof b.error === 'string' && /^[a-z][a-z0-9_]*$/.test(b.error) ? b.error : undefined;
|
|
35
44
|
return {
|
|
36
|
-
code: typeof b.code === 'string' ? b.code :
|
|
45
|
+
code: typeof b.code === 'string' ? b.code : gatewayCode,
|
|
37
46
|
message: typeof b.message === 'string' ? b.message : undefined,
|
|
47
|
+
gatewayCode,
|
|
38
48
|
};
|
|
39
49
|
}
|
|
40
50
|
return {};
|
|
41
51
|
}
|
|
52
|
+
// The fixed wording of the gateway's and services' own 400s, e.g. "limit is out of range".
|
|
53
|
+
const FIELD_PROBLEM = /^([A-Za-z_]\w*) (?:is required|is out of range|is invalid)$/;
|
|
54
|
+
/** A non-2xx response → an `http` TransportError carrying the body's error code, and for a 400 the field it names. */
|
|
55
|
+
export function httpFailure(where, status, text, detail) {
|
|
56
|
+
const env = parseErrorEnvelope(text);
|
|
57
|
+
const message = (detail ?? env.message ?? text.slice(0, 300)).trim();
|
|
58
|
+
const field = status === 400 ? FIELD_PROBLEM.exec(message)?.[1] : undefined;
|
|
59
|
+
return new TransportError('http', `${where} -> ${status}: ${message}`, status, env.code, field, env);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The plan-limit error an `http` failure's body `error` field names (`planning_limit_reached`,
|
|
63
|
+
* `agreement_inactive`), whatever its status, or `undefined` when it names neither. A `code` field is not read.
|
|
64
|
+
*/
|
|
65
|
+
export function limitRefusal(e) {
|
|
66
|
+
if (e.kind !== 'http' || e.gatewayCode == null || !Object.hasOwn(LIMIT_MESSAGES, e.gatewayCode))
|
|
67
|
+
return undefined;
|
|
68
|
+
const code = e.gatewayCode;
|
|
69
|
+
return { code, message: e.serverMessage?.trim() || LIMIT_MESSAGES[code], httpStatus: e.httpStatus, serverCode: code };
|
|
70
|
+
}
|
|
42
71
|
export class DecodingError extends Error {
|
|
43
72
|
cause;
|
|
44
73
|
constructor(message, cause) {
|
|
@@ -59,14 +88,22 @@ function isAbort(e) {
|
|
|
59
88
|
export function toSpiderError(e) {
|
|
60
89
|
if (e instanceof TransportError) {
|
|
61
90
|
if (e.kind === 'http') {
|
|
91
|
+
// The body code decides whatever the status, since a proxy may rewrite it; plan limits have no status fallback.
|
|
92
|
+
const refusal = limitRefusal(e);
|
|
93
|
+
if (refusal != null)
|
|
94
|
+
return refusal;
|
|
62
95
|
const status = e.httpStatus ?? 0;
|
|
63
|
-
|
|
64
|
-
:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
96
|
+
if (e.serverCode === QUERY_RETIRED || status === 410) {
|
|
97
|
+
return { code: 'query_retired', message: 'persisted query is retired', httpStatus: status, serverCode: e.serverCode };
|
|
98
|
+
}
|
|
99
|
+
const code = status === 400 ? 'bad_request'
|
|
100
|
+
: status === 401 || status === 403 ? 'unauthorized'
|
|
101
|
+
: status === 404 ? 'not_found'
|
|
102
|
+
: status === 408 || status === 504 ? 'timeout'
|
|
103
|
+
: status === 429 ? 'rate_limited'
|
|
104
|
+
: status >= 500 && status <= 599 ? 'server'
|
|
105
|
+
: 'unknown';
|
|
106
|
+
return { code, message: e.message, httpStatus: status, serverCode: e.serverCode, field: e.field };
|
|
70
107
|
}
|
|
71
108
|
if (e.kind === 'no_data')
|
|
72
109
|
return { code: 'not_found', message: e.message };
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TransportError } from './errors.ts';
|
|
1
2
|
export type FetchLike = typeof fetch;
|
|
2
3
|
export interface AutoRetryOptions {
|
|
3
4
|
readonly maxAttempts?: number;
|
|
@@ -24,6 +25,19 @@ export interface RawResponse {
|
|
|
24
25
|
readonly status: number;
|
|
25
26
|
readonly text: string;
|
|
26
27
|
}
|
|
28
|
+
export interface GraphQLError {
|
|
29
|
+
message: string;
|
|
30
|
+
extensions?: {
|
|
31
|
+
code?: string;
|
|
32
|
+
field?: string;
|
|
33
|
+
} | null;
|
|
34
|
+
}
|
|
35
|
+
export interface GraphQLEnvelope<D> {
|
|
36
|
+
data?: D | null;
|
|
37
|
+
errors?: ReadonlyArray<GraphQLError> | null;
|
|
38
|
+
}
|
|
39
|
+
/** A GraphQL `errors` array → a typed bad_request for a BAD_REQUEST extension (with its field), else upstream. */
|
|
40
|
+
export declare function graphqlFailure(where: string, errors: ReadonlyArray<GraphQLError>): TransportError;
|
|
27
41
|
export declare function parseJson<T>(text: string, where: string): T;
|
|
28
42
|
export declare class Transport {
|
|
29
43
|
private readonly baseUrl;
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/http.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
import { CONTRACT_HEADER, CONTRACT_VERSION
|
|
1
|
+
import { CONTRACT_HEADER, CONTRACT_VERSION } from "./contract.js";
|
|
2
2
|
import { SDK_HEADER, SDK_IDENTITY } from "./sdk.js";
|
|
3
|
-
import { DecodingError, TransportError,
|
|
3
|
+
import { DecodingError, TransportError, httpFailure } from "./errors.js";
|
|
4
|
+
/** A GraphQL `errors` array → a typed bad_request for a BAD_REQUEST extension (with its field), else upstream. */
|
|
5
|
+
export function graphqlFailure(where, errors) {
|
|
6
|
+
const bad = errors.find((e) => e.extensions?.code === 'BAD_REQUEST');
|
|
7
|
+
if (bad != null) {
|
|
8
|
+
return new TransportError('bad_request', bad.message, undefined, undefined, bad.extensions?.field);
|
|
9
|
+
}
|
|
10
|
+
return new TransportError('upstream', `${where} errors: ${errors.map((e) => e.message).join(', ')}`);
|
|
11
|
+
}
|
|
4
12
|
export function parseJson(text, where) {
|
|
5
13
|
try {
|
|
6
14
|
return JSON.parse(text);
|
|
@@ -31,21 +39,12 @@ export class Transport {
|
|
|
31
39
|
headers: this.contractHeaders({ 'content-type': 'application/json' }),
|
|
32
40
|
body: JSON.stringify({ id: op.id, variables }),
|
|
33
41
|
});
|
|
34
|
-
checkContract(res.headers.get(CONTRACT_HEADER));
|
|
35
42
|
const text = await res.text();
|
|
36
|
-
if (!res.ok)
|
|
37
|
-
|
|
38
|
-
const detail = env.message ?? text.slice(0, 300);
|
|
39
|
-
throw new TransportError('http', `routing ${op.path} -> ${res.status}: ${detail}`, res.status, env.code);
|
|
40
|
-
}
|
|
43
|
+
if (!res.ok)
|
|
44
|
+
throw httpFailure(`routing ${op.path}`, res.status, text);
|
|
41
45
|
const envelope = parseJson(text, `routing ${op.path}`);
|
|
42
46
|
if (envelope.errors != null && envelope.errors.length > 0) {
|
|
43
|
-
|
|
44
|
-
const bad = envelope.errors.find((e) => e.extensions?.code === 'BAD_REQUEST');
|
|
45
|
-
if (bad != null) {
|
|
46
|
-
throw new TransportError('bad_request', bad.message, undefined, undefined, bad.extensions?.field);
|
|
47
|
-
}
|
|
48
|
-
throw new TransportError('upstream', `routing ${op.path} errors: ${envelope.errors.map((e) => e.message).join(', ')}`);
|
|
47
|
+
throw graphqlFailure(`routing ${op.path}`, envelope.errors);
|
|
49
48
|
}
|
|
50
49
|
if (envelope.data == null) {
|
|
51
50
|
throw new TransportError('no_data', `routing ${op.path} returned no data`);
|
|
@@ -58,13 +57,9 @@ export class Transport {
|
|
|
58
57
|
headers: this.contractHeaders({ 'content-type': 'application/json' }),
|
|
59
58
|
body: JSON.stringify(body),
|
|
60
59
|
});
|
|
61
|
-
checkContract(res.headers.get(CONTRACT_HEADER));
|
|
62
60
|
const text = await res.text();
|
|
63
|
-
if (!res.ok)
|
|
64
|
-
|
|
65
|
-
const message = errorMessage ? errorMessage(text) : (env.message ?? text.slice(0, 300));
|
|
66
|
-
throw new TransportError('http', `POST ${path} -> ${res.status}: ${message}`, res.status, env.code);
|
|
67
|
-
}
|
|
61
|
+
if (!res.ok)
|
|
62
|
+
throw httpFailure(`POST ${path}`, res.status, text, errorMessage?.(text));
|
|
68
63
|
return parseJson(text, `POST ${path}`);
|
|
69
64
|
}
|
|
70
65
|
/**
|
|
@@ -79,9 +74,8 @@ export class Transport {
|
|
|
79
74
|
headers.set('apikey', this.apiKey);
|
|
80
75
|
const controller = new AbortController();
|
|
81
76
|
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
82
|
-
let res;
|
|
83
77
|
try {
|
|
84
|
-
|
|
78
|
+
return await this.doFetch(`${this.baseUrl}/routing/${op.path}`, {
|
|
85
79
|
method: 'POST',
|
|
86
80
|
headers,
|
|
87
81
|
body: JSON.stringify({ id: op.id, variables }),
|
|
@@ -91,16 +85,11 @@ export class Transport {
|
|
|
91
85
|
finally {
|
|
92
86
|
clearTimeout(timer);
|
|
93
87
|
}
|
|
94
|
-
checkContract(res.headers.get(CONTRACT_HEADER));
|
|
95
|
-
return res;
|
|
96
88
|
}
|
|
97
89
|
async getJson(path, query) {
|
|
98
90
|
const raw = await this.getRaw(path, query);
|
|
99
|
-
if (!raw.ok)
|
|
100
|
-
|
|
101
|
-
const detail = env.message ?? raw.text.slice(0, 300);
|
|
102
|
-
throw new TransportError('http', `GET ${path} -> ${raw.status}: ${detail}`, raw.status, env.code);
|
|
103
|
-
}
|
|
91
|
+
if (!raw.ok)
|
|
92
|
+
throw httpFailure(`GET ${path}`, raw.status, raw.text);
|
|
104
93
|
return parseJson(raw.text, `GET ${path}`);
|
|
105
94
|
}
|
|
106
95
|
async getRaw(path, query) {
|
|
@@ -111,7 +100,6 @@ export class Transport {
|
|
|
111
100
|
}
|
|
112
101
|
}
|
|
113
102
|
const res = await this.send(url.toString(), { method: 'GET', headers: this.contractHeaders() });
|
|
114
|
-
checkContract(res.headers.get(CONTRACT_HEADER));
|
|
115
103
|
return { ok: res.ok, status: res.status, text: await res.text() };
|
|
116
104
|
}
|
|
117
105
|
/**
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,11 +2,10 @@ export { SpiderClient } from './client.ts';
|
|
|
2
2
|
export type { SpiderClientOptions, FetchLike, FeatureOptions, AutoRetryOptions } from './http.ts';
|
|
3
3
|
export type { SpiderResult } from './result.ts';
|
|
4
4
|
export type { SpiderError, SpiderErrorCode } from './errors.ts';
|
|
5
|
-
export { SpiderContractMismatchError } from './errors.ts';
|
|
6
5
|
export { Location, ViaLocation } from './location.ts';
|
|
7
|
-
export type { TransitMode, WheelchairBoarding, BikesAllowed, OccupancyStatus } from './enums.ts';
|
|
6
|
+
export type { TransitMode, WheelchairBoarding, BikesAllowed, OccupancyStatus, RealtimeState, RoutingErrorCode, InputField, } from './enums.ts';
|
|
8
7
|
export { SpiderRouting } from './routing.ts';
|
|
9
|
-
export type { Route, RouteEdge, Itinerary, Leg, LatLon, RoutePageInfo, RoutingError, Departure, TripDetails, TripStop, PlanOptions,
|
|
8
|
+
export type { Route, RouteEdge, Itinerary, Leg, LatLon, RoutePageInfo, RoutingError, Departure, TripDetails, TripStop, PlanOptions, PlanStreamRequestOptions, PlanStreamEvent, DeparturesOptions, } from './routing.ts';
|
|
10
9
|
export { SpiderStops } from './stops.ts';
|
|
11
10
|
export type { Stop, StopFilter, GeoPoint, GeoBoundingBox } from './stops.ts';
|
|
12
11
|
export { SpiderRealtime, delayFor } from './realtime.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClG,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClG,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,GAAG,EACH,MAAM,EACN,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,WAAW,EACX,wBAAwB,EACxB,eAAe,EACf,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxF,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAiB7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAezD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/location.d.ts
CHANGED
|
@@ -18,6 +18,10 @@ export type ViaLocation = {
|
|
|
18
18
|
readonly location: Location;
|
|
19
19
|
readonly minimumWaitSeconds: number;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* A point the itinerary must pass. How many a request may carry is an environment setting; each pass-through takes
|
|
23
|
+
* 1 to 10 stop ids and a visit waits 0 to 86400 seconds, else the request fails as `bad_request` on `via`.
|
|
24
|
+
*/
|
|
21
25
|
export declare const ViaLocation: {
|
|
22
26
|
readonly passThrough: (...stopIds: string[]) => ViaLocation;
|
|
23
27
|
readonly visit: (location: Location, minimumWaitSeconds?: number) => ViaLocation;
|
package/dist/location.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,QAAQ;oCACE,MAAM,aAAa,MAAM,KAAG,QAAQ;wBAGhD,MAAM,KAAG,QAAQ;CAGlB,CAAC;AAEX,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,WAAW;uCACE,MAAM,EAAE,KAAG,WAAW;+BAG9B,QAAQ,kCAA2B,WAAW;CAGtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"location.d.ts","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtF;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,eAAO,MAAM,QAAQ;oCACE,MAAM,aAAa,MAAM,KAAG,QAAQ;wBAGhD,MAAM,KAAG,QAAQ;CAGlB,CAAC;AAEX,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG;;;GAGG;AACH,eAAO,MAAM,WAAW;uCACE,MAAM,EAAE,KAAG,WAAW;+BAG9B,QAAQ,kCAA2B,WAAW;CAGtD,CAAC"}
|
package/dist/location.js
CHANGED
|
@@ -6,6 +6,10 @@ export const Location = {
|
|
|
6
6
|
return { kind: 'stop', id };
|
|
7
7
|
},
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* A point the itinerary must pass. How many a request may carry is an environment setting; each pass-through takes
|
|
11
|
+
* 1 to 10 stop ids and a visit waits 0 to 86400 seconds, else the request fails as `bad_request` on `via`.
|
|
12
|
+
*/
|
|
9
13
|
export const ViaLocation = {
|
|
10
14
|
passThrough(...stopIds) {
|
|
11
15
|
return { kind: 'passThrough', stopIds };
|
package/dist/location.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU,CAAC,QAAgB,EAAE,SAAiB;QAC5C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,EAAU;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;CACO,CAAC;AAMX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW,CAAC,GAAG,OAAiB;QAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,QAAkB,EAAE,kBAAkB,GAAG,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IACzD,CAAC;CACO,CAAC"}
|
|
1
|
+
{"version":3,"file":"location.js","sourceRoot":"","sources":["../src/location.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU,CAAC,QAAgB,EAAE,SAAiB;QAC5C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,EAAU;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;CACO,CAAC;AAMX;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW,CAAC,GAAG,OAAiB;QAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,KAAK,CAAC,QAAkB,EAAE,kBAAkB,GAAG,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IACzD,CAAC;CACO,CAAC"}
|
package/dist/persistedQueries.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const DEPARTURES = { id: '
|
|
2
|
-
export const PLAN = { id: '
|
|
3
|
-
export const PLAN_STREAM = { id: '
|
|
4
|
-
export const TRIP = { id: '
|
|
1
|
+
export const DEPARTURES = { id: 'e4ae3f49e06982173b38e945c3c02ef113be05e12564145faeade7758295f536', path: 'departures' };
|
|
2
|
+
export const PLAN = { id: '679549e87f9653ff7a5a021c0b329a2c9658d4701c836139e63712dd9b77981f', path: 'plan' };
|
|
3
|
+
export const PLAN_STREAM = { id: '40380fc4cf10397a4c20d039cc9428b73757c7fce0de2072ae1685a43efbfc15', path: 'plan-stream' };
|
|
4
|
+
export const TRIP = { id: '4a10717f45697a241a0843902808cd696eb8ffd102e93238bf753f865d939a3f', path: 'trip' };
|
|
5
5
|
//# sourceMappingURL=persistedQueries.js.map
|
package/dist/realtime.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface FeedFreshness {
|
|
|
5
5
|
readonly feedTimestampEpochMs: number | null;
|
|
6
6
|
readonly staleSeconds: number | null;
|
|
7
7
|
}
|
|
8
|
+
/** A vehicle's live position. `tripId`, `routeId`, `stopId` and `vehicleId` are feed-prefixed (`<feedId>:<id>`). */
|
|
8
9
|
export interface LiveVehicle {
|
|
9
10
|
readonly tripId: string | null;
|
|
10
11
|
readonly routeId: string | null;
|
|
@@ -86,14 +87,17 @@ export interface ServiceAlerts {
|
|
|
86
87
|
export declare class SpiderRealtime {
|
|
87
88
|
private readonly transport;
|
|
88
89
|
constructor(transport: Transport);
|
|
90
|
+
/** Live positions for up to 50 trips. Empty input skips the call; more than 50 fails as `bad_request` without a request. */
|
|
89
91
|
vehicles(tripIds: readonly string[]): Promise<SpiderResult<VehiclePositions>>;
|
|
90
92
|
vehicleForTrip(tripId: string): Promise<SpiderResult<LiveVehicleUpdate>>;
|
|
91
93
|
/**
|
|
92
94
|
* Live delays, resolved per `(tripId, serviceDate)` instance: group trip ids by the GTFS service date
|
|
93
|
-
* (`
|
|
95
|
+
* (ISO `YYYY-MM-DD`) they run on — pass each plan leg's or departure's `serviceDate` through. Up to 50 trip ids
|
|
96
|
+
* in total across all dates. Empty input skips the call; a malformed date or more than 50 ids fails as
|
|
97
|
+
* `bad_request` without a request.
|
|
94
98
|
*/
|
|
95
99
|
delays(byServiceDate: Readonly<Record<string, readonly string[]>>): Promise<SpiderResult<TripDelays>>;
|
|
96
|
-
/** Live delays for `tripIds` all on one `serviceDate` (`
|
|
100
|
+
/** Live delays for `tripIds` all on one `serviceDate` (ISO `YYYY-MM-DD`) — the common single-day case. */
|
|
97
101
|
delays(tripIds: readonly string[], serviceDate: string): Promise<SpiderResult<TripDelays>>;
|
|
98
102
|
alerts(): Promise<SpiderResult<ServiceAlerts>>;
|
|
99
103
|
}
|
package/dist/realtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
|
package/dist/realtime.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { parseJson } from "./http.js";
|
|
2
2
|
import { failure, success } from "./result.js";
|
|
3
|
-
import {
|
|
3
|
+
import { badRequest, httpFailure, limitRefusal, toSpiderError } from "./errors.js";
|
|
4
|
+
import { invalidServiceDate } from "./serviceDate.js";
|
|
4
5
|
import { occupancyFromWire } from "./enums.js";
|
|
5
6
|
/** The delay for the (`tripId`, `serviceDate`) instance, if the feed reported one; otherwise null. */
|
|
6
7
|
export function delayFor(delays, tripId, serviceDate) {
|
|
@@ -10,14 +11,18 @@ export function delayFor(delays, tripId, serviceDate) {
|
|
|
10
11
|
const EMPTY_FRESHNESS = { feedTimestampEpochMs: null, staleSeconds: null };
|
|
11
12
|
const EMPTY_POSITIONS = { vehicles: [], missing: [], freshness: EMPTY_FRESHNESS };
|
|
12
13
|
const EMPTY_DELAYS = { groups: [], freshness: EMPTY_FRESHNESS };
|
|
14
|
+
const MAX_TRIP_IDS = 50;
|
|
13
15
|
export class SpiderRealtime {
|
|
14
16
|
transport;
|
|
15
17
|
constructor(transport) {
|
|
16
18
|
this.transport = transport;
|
|
17
19
|
}
|
|
20
|
+
/** Live positions for up to 50 trips. Empty input skips the call; more than 50 fails as `bad_request` without a request. */
|
|
18
21
|
async vehicles(tripIds) {
|
|
19
22
|
if (tripIds.length === 0)
|
|
20
23
|
return success(EMPTY_POSITIONS);
|
|
24
|
+
if (tripIds.length > MAX_TRIP_IDS)
|
|
25
|
+
return failure(badRequest('tripIds'));
|
|
21
26
|
try {
|
|
22
27
|
const dto = await this.transport.getJson('/realtime/vehicles', {
|
|
23
28
|
tripIds: tripIds.join(','),
|
|
@@ -29,8 +34,6 @@ export class SpiderRealtime {
|
|
|
29
34
|
});
|
|
30
35
|
}
|
|
31
36
|
catch (e) {
|
|
32
|
-
if (e instanceof SpiderContractMismatchError)
|
|
33
|
-
throw e;
|
|
34
37
|
return failure(toSpiderError(e));
|
|
35
38
|
}
|
|
36
39
|
}
|
|
@@ -38,11 +41,13 @@ export class SpiderRealtime {
|
|
|
38
41
|
const path = `/realtime/vehicles/by-trip/${encodeURIComponent(tripId)}`;
|
|
39
42
|
try {
|
|
40
43
|
const raw = await this.transport.getRaw(path);
|
|
41
|
-
if (raw.status === 404) {
|
|
42
|
-
return success({ vehicle: null, freshness: EMPTY_FRESHNESS });
|
|
43
|
-
}
|
|
44
44
|
if (!raw.ok) {
|
|
45
|
-
|
|
45
|
+
const error = httpFailure(`GET ${path}`, raw.status, raw.text);
|
|
46
|
+
// A 404 is "no vehicle" unless its body names a plan limit.
|
|
47
|
+
if (raw.status === 404 && limitRefusal(error) == null) {
|
|
48
|
+
return success({ vehicle: null, freshness: EMPTY_FRESHNESS });
|
|
49
|
+
}
|
|
50
|
+
throw error;
|
|
46
51
|
}
|
|
47
52
|
const dto = parseJson(raw.text, path);
|
|
48
53
|
return success({
|
|
@@ -51,8 +56,6 @@ export class SpiderRealtime {
|
|
|
51
56
|
});
|
|
52
57
|
}
|
|
53
58
|
catch (e) {
|
|
54
|
-
if (e instanceof SpiderContractMismatchError)
|
|
55
|
-
throw e;
|
|
56
59
|
return failure(toSpiderError(e));
|
|
57
60
|
}
|
|
58
61
|
}
|
|
@@ -61,8 +64,16 @@ export class SpiderRealtime {
|
|
|
61
64
|
? { [serviceDate]: arg }
|
|
62
65
|
: arg;
|
|
63
66
|
const queries = Object.entries(byServiceDate).map(([date, tripIds]) => ({ serviceDate: date, tripIds: [...tripIds] }));
|
|
64
|
-
|
|
67
|
+
for (const q of queries) {
|
|
68
|
+
const invalid = invalidServiceDate(q.serviceDate);
|
|
69
|
+
if (invalid != null)
|
|
70
|
+
return failure(invalid);
|
|
71
|
+
}
|
|
72
|
+
const total = queries.reduce((n, q) => n + q.tripIds.length, 0);
|
|
73
|
+
if (total === 0)
|
|
65
74
|
return success(EMPTY_DELAYS);
|
|
75
|
+
if (total > MAX_TRIP_IDS)
|
|
76
|
+
return failure(badRequest('tripIds'));
|
|
66
77
|
try {
|
|
67
78
|
const request = { queries };
|
|
68
79
|
const dto = await this.transport.postJson('/realtime/delays', request);
|
|
@@ -72,8 +83,6 @@ export class SpiderRealtime {
|
|
|
72
83
|
});
|
|
73
84
|
}
|
|
74
85
|
catch (e) {
|
|
75
|
-
if (e instanceof SpiderContractMismatchError)
|
|
76
|
-
throw e;
|
|
77
86
|
return failure(toSpiderError(e));
|
|
78
87
|
}
|
|
79
88
|
}
|
|
@@ -86,8 +95,6 @@ export class SpiderRealtime {
|
|
|
86
95
|
});
|
|
87
96
|
}
|
|
88
97
|
catch (e) {
|
|
89
|
-
if (e instanceof SpiderContractMismatchError)
|
|
90
|
-
throw e;
|
|
91
98
|
return failure(toSpiderError(e));
|
|
92
99
|
}
|
|
93
100
|
}
|
package/dist/realtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../src/realtime.ts"],"names":[],"mappings":"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"}
|