bengaluru-transit 0.1.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/LICENSE +21 -0
- package/README.md +507 -0
- package/dist/api/info.d.ts +77 -0
- package/dist/api/info.d.ts.map +1 -0
- package/dist/api/info.js +197 -0
- package/dist/api/info.js.map +1 -0
- package/dist/api/locations.d.ts +26 -0
- package/dist/api/locations.d.ts.map +1 -0
- package/dist/api/locations.js +57 -0
- package/dist/api/locations.js.map +1 -0
- package/dist/api/routes.d.ts +341 -0
- package/dist/api/routes.d.ts.map +1 -0
- package/dist/api/routes.js +1133 -0
- package/dist/api/routes.js.map +1 -0
- package/dist/api/stops.d.ts +92 -0
- package/dist/api/stops.d.ts.map +1 -0
- package/dist/api/stops.js +237 -0
- package/dist/api/stops.js.map +1 -0
- package/dist/api/vehicles.d.ts +49 -0
- package/dist/api/vehicles.d.ts.map +1 -0
- package/dist/api/vehicles.js +154 -0
- package/dist/api/vehicles.js.map +1 -0
- package/dist/client/base-client.d.ts +52 -0
- package/dist/client/base-client.d.ts.map +1 -0
- package/dist/client/base-client.js +76 -0
- package/dist/client/base-client.js.map +1 -0
- package/dist/client/transit-client.d.ts +91 -0
- package/dist/client/transit-client.d.ts.map +1 -0
- package/dist/client/transit-client.js +98 -0
- package/dist/client/transit-client.js.map +1 -0
- package/dist/constants/api.d.ts +16 -0
- package/dist/constants/api.d.ts.map +1 -0
- package/dist/constants/api.js +16 -0
- package/dist/constants/api.js.map +1 -0
- package/dist/constants/routes.d.ts +16 -0
- package/dist/constants/routes.d.ts.map +1 -0
- package/dist/constants/routes.js +16 -0
- package/dist/constants/routes.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/common.d.ts +34 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +20 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +7 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/info.d.ts +390 -0
- package/dist/schemas/info.d.ts.map +1 -0
- package/dist/schemas/info.js +110 -0
- package/dist/schemas/info.js.map +1 -0
- package/dist/schemas/locations.d.ts +84 -0
- package/dist/schemas/locations.d.ts.map +1 -0
- package/dist/schemas/locations.js +31 -0
- package/dist/schemas/locations.js.map +1 -0
- package/dist/schemas/routes.d.ts +3967 -0
- package/dist/schemas/routes.d.ts.map +1 -0
- package/dist/schemas/routes.js +532 -0
- package/dist/schemas/routes.js.map +1 -0
- package/dist/schemas/stops.d.ts +543 -0
- package/dist/schemas/stops.d.ts.map +1 -0
- package/dist/schemas/stops.js +129 -0
- package/dist/schemas/stops.js.map +1 -0
- package/dist/schemas/vehicles.d.ts +602 -0
- package/dist/schemas/vehicles.d.ts.map +1 -0
- package/dist/schemas/vehicles.js +116 -0
- package/dist/schemas/vehicles.js.map +1 -0
- package/dist/types/api.d.ts +9 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +5 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/coordinates.d.ts +7 -0
- package/dist/types/coordinates.d.ts.map +1 -0
- package/dist/types/coordinates.js +2 -0
- package/dist/types/coordinates.js.map +1 -0
- package/dist/types/geojson.d.ts +84 -0
- package/dist/types/geojson.d.ts.map +1 -0
- package/dist/types/geojson.js +2 -0
- package/dist/types/geojson.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/info.d.ts +133 -0
- package/dist/types/info.d.ts.map +1 -0
- package/dist/types/info.js +5 -0
- package/dist/types/info.js.map +1 -0
- package/dist/types/locations.d.ts +59 -0
- package/dist/types/locations.d.ts.map +1 -0
- package/dist/types/locations.js +5 -0
- package/dist/types/locations.js.map +1 -0
- package/dist/types/routes.d.ts +1137 -0
- package/dist/types/routes.d.ts.map +1 -0
- package/dist/types/routes.js +14 -0
- package/dist/types/routes.js.map +1 -0
- package/dist/types/stops.d.ts +286 -0
- package/dist/types/stops.d.ts.map +1 -0
- package/dist/types/stops.js +26 -0
- package/dist/types/stops.js.map +1 -0
- package/dist/types/vehicles.d.ts +138 -0
- package/dist/types/vehicles.d.ts.map +1 -0
- package/dist/types/vehicles.js +5 -0
- package/dist/types/vehicles.js.map +1 -0
- package/dist/utils/date.d.ts +35 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +49 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/errors.d.ts +34 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +41 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/geojson.d.ts +36 -0
- package/dist/utils/geojson.d.ts.map +1 -0
- package/dist/utils/geojson.js +115 -0
- package/dist/utils/geojson.js.map +1 -0
- package/dist/utils/validation.d.ts +40 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +62 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { BaseClient } from "../client/base-client";
|
|
2
|
+
import type { AroundBusStopsResponse, AroundBusStopsParams, NearbyBusStopsResponse, NearbyBusStopsParams, NearbyStationsResponse, NearbyStationsParams } from "../types/stops";
|
|
3
|
+
/**
|
|
4
|
+
* Stops/Stations API methods
|
|
5
|
+
*/
|
|
6
|
+
export declare class StopsAPI {
|
|
7
|
+
private client;
|
|
8
|
+
constructor(client: BaseClient);
|
|
9
|
+
/**
|
|
10
|
+
* Find nearby bus stations with facilities around a location
|
|
11
|
+
* @param params - Parameters including coordinates [latitude, longitude]
|
|
12
|
+
* @param params.coordinates - [latitude, longitude] coordinates
|
|
13
|
+
* @returns List of nearby stations with facilities as GeoJSON Point features
|
|
14
|
+
* @throws {TransitValidationError} If coordinates are invalid or validation fails
|
|
15
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const stations = await client.stops.findNearbyStations({
|
|
19
|
+
* coordinates: [13.09784, 77.59167]
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* stations.features.forEach(station => {
|
|
23
|
+
* console.log(`${station.properties.stationName} - ${station.properties.facilities.length} facilities`);
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
findNearbyStations(params: AroundBusStopsParams): Promise<AroundBusStopsResponse>;
|
|
28
|
+
/**
|
|
29
|
+
* Search bus stops by station name
|
|
30
|
+
* @param params - Parameters including station name query and optional station type
|
|
31
|
+
* @param params.stationName - Station name to search for
|
|
32
|
+
* @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
|
|
33
|
+
* @returns List of bus stops matching the query
|
|
34
|
+
* @remarks
|
|
35
|
+
* The stationType parameter determines the type of stops to search (defaults to "bmtc"):
|
|
36
|
+
* - "bmtc": Transit Bus Stops (default)
|
|
37
|
+
* - "chartered": Chartered Stops
|
|
38
|
+
* - "metro": Metro Stops
|
|
39
|
+
* - "ksrtc": KSRTC bus stops
|
|
40
|
+
* @throws {TransitValidationError} If stationName is invalid or validation fails
|
|
41
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // Search transit stops
|
|
45
|
+
* const stops = await client.stops.searchBusStops({
|
|
46
|
+
* stationName: "MG Road"
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // Search metro stops only
|
|
50
|
+
* const metroStops = await client.stops.searchBusStops({
|
|
51
|
+
* stationName: "MG Road",
|
|
52
|
+
* stationType: "metro"
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
searchBusStops(params: NearbyBusStopsParams): Promise<NearbyBusStopsResponse>;
|
|
57
|
+
/**
|
|
58
|
+
* Find nearby stops by location within a radius
|
|
59
|
+
* @param params - Parameters including coordinates [latitude, longitude], radius, and optional filters
|
|
60
|
+
* @param params.coordinates - [latitude, longitude] coordinates
|
|
61
|
+
* @param params.radius - Search radius in kilometers
|
|
62
|
+
* @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
|
|
63
|
+
* @param params.bmtcCategory - Optional: BMTC category filter ("airport", "all") - only when stationType is "bmtc"
|
|
64
|
+
* @returns List of nearby stops with distance and travel time information
|
|
65
|
+
* @remarks
|
|
66
|
+
* This endpoint returns up to 10 results. Pagination is not supported.
|
|
67
|
+
* The bmtcCategory parameter filters specific subsets of BMTC stops:
|
|
68
|
+
* - "airport": Airport bus stops only
|
|
69
|
+
* - "all": All BMTC stops
|
|
70
|
+
* Note: bmtcCategory can only be used when stationType is "bmtc"
|
|
71
|
+
* @throws {TransitValidationError} If coordinates, radius, or filters are invalid or validation fails
|
|
72
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* // Find all nearby stops within 1km
|
|
76
|
+
* const stops = await client.stops.findNearbyStops({
|
|
77
|
+
* coordinates: [13.09784, 77.59167],
|
|
78
|
+
* radius: 1
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* // Find airport stops only
|
|
82
|
+
* const airportStops = await client.stops.findNearbyStops({
|
|
83
|
+
* coordinates: [13.09784, 77.59167],
|
|
84
|
+
* radius: 2,
|
|
85
|
+
* stationType: "bmtc",
|
|
86
|
+
* bmtcCategory: "airport"
|
|
87
|
+
* });
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
findNearbyStops(params: NearbyStationsParams): Promise<NearbyStationsResponse>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=stops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stops.d.ts","sourceRoot":"","sources":["../../src/api/stops.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACX,sBAAsB,EAEtB,oBAAoB,EAGpB,sBAAsB,EAEtB,oBAAoB,EAEpB,sBAAsB,EAEtB,oBAAoB,EAEpB,MAAM,gBAAgB,CAAC;AA+FxB;;GAEG;AACH,qBAAa,QAAQ;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC;;;;;;;;;;;;;;;;;OAiBG;IACG,kBAAkB,CACvB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IA6BlC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,cAAc,CACnB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IAmClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,eAAe,CACpB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;CA2DlC"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { validate, stringifyId } from "../utils/validation";
|
|
2
|
+
import { rawAroundBusStopsResponseSchema, aroundBusStopsParamsSchema, rawNearbyBusStopsResponseSchema, nearbyBusStopsParamsSchema, rawNearbyStationsResponseSchema, nearbyStationsParamsSchema, } from "../schemas/stops";
|
|
3
|
+
import { createFacilityFeature, createFeatureCollection, } from "../utils/geojson";
|
|
4
|
+
import { stationTypeToNumber, transitCategoryToNumber } from "../types/stops";
|
|
5
|
+
/**
|
|
6
|
+
* Transform raw around bus stops API response to clean, normalized format
|
|
7
|
+
*/
|
|
8
|
+
function transformAroundBusStopsResponse(raw) {
|
|
9
|
+
const stations = raw.data.map((stationItem) => {
|
|
10
|
+
const facilityTypes = stationItem.Arounds.map((facilityTypeGroup) => {
|
|
11
|
+
// Convert each facility to GeoJSON Point feature
|
|
12
|
+
const facilityFeatures = facilityTypeGroup.list.map((facility) => createFacilityFeature([parseFloat(facility.longitude), parseFloat(facility.latitude)], // GeoJSON: [lng, lat]
|
|
13
|
+
{
|
|
14
|
+
facilityName: facility.name,
|
|
15
|
+
facilityType: facilityTypeGroup.type,
|
|
16
|
+
facilityTypeId: facilityTypeGroup.typeid,
|
|
17
|
+
icon: facilityTypeGroup.icon,
|
|
18
|
+
distance: parseFloat(facility.distance),
|
|
19
|
+
stationName: stationItem.stationname,
|
|
20
|
+
}));
|
|
21
|
+
return {
|
|
22
|
+
type: facilityTypeGroup.type,
|
|
23
|
+
typeId: facilityTypeGroup.typeid,
|
|
24
|
+
icon: facilityTypeGroup.icon,
|
|
25
|
+
facilities: createFeatureCollection(facilityFeatures),
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
stationName: stationItem.stationname,
|
|
30
|
+
distance: parseFloat(stationItem.distance),
|
|
31
|
+
facilityTypes,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
stations,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Transform raw nearby bus stops API response to clean, normalized format
|
|
40
|
+
*/
|
|
41
|
+
function transformNearbyBusStopsResponse(raw) {
|
|
42
|
+
const items = raw.data.map((item) => ({
|
|
43
|
+
serialNumber: item.srno,
|
|
44
|
+
routeNo: item.routeno,
|
|
45
|
+
stationId: stringifyId(item.routeid),
|
|
46
|
+
latitude: item.center_lat,
|
|
47
|
+
longitude: item.center_lon,
|
|
48
|
+
routeTypeId: item.routetypeid,
|
|
49
|
+
stationName: item.routename,
|
|
50
|
+
route: item.route,
|
|
51
|
+
}));
|
|
52
|
+
return {
|
|
53
|
+
items,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Transform raw nearby stations API response to clean, normalized format
|
|
58
|
+
*/
|
|
59
|
+
function transformNearbyStationsResponse(raw) {
|
|
60
|
+
const items = raw.data.map((item) => ({
|
|
61
|
+
rowNumber: item.rowno,
|
|
62
|
+
stationId: stringifyId(item.geofenceid),
|
|
63
|
+
stationName: item.geofencename,
|
|
64
|
+
latitude: item.center_lat,
|
|
65
|
+
longitude: item.center_lon,
|
|
66
|
+
towards: item.towards,
|
|
67
|
+
distance: item.distance,
|
|
68
|
+
travelTimeMinutes: item.totalminute,
|
|
69
|
+
radius: item.radiuskm,
|
|
70
|
+
}));
|
|
71
|
+
return {
|
|
72
|
+
items,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Stops/Stations API methods
|
|
77
|
+
*/
|
|
78
|
+
export class StopsAPI {
|
|
79
|
+
client;
|
|
80
|
+
constructor(client) {
|
|
81
|
+
this.client = client;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Find nearby bus stations with facilities around a location
|
|
85
|
+
* @param params - Parameters including coordinates [latitude, longitude]
|
|
86
|
+
* @param params.coordinates - [latitude, longitude] coordinates
|
|
87
|
+
* @returns List of nearby stations with facilities as GeoJSON Point features
|
|
88
|
+
* @throws {TransitValidationError} If coordinates are invalid or validation fails
|
|
89
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const stations = await client.stops.findNearbyStations({
|
|
93
|
+
* coordinates: [13.09784, 77.59167]
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* stations.features.forEach(station => {
|
|
97
|
+
* console.log(`${station.properties.stationName} - ${station.properties.facilities.length} facilities`);
|
|
98
|
+
* });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
async findNearbyStations(params) {
|
|
102
|
+
// Validate input parameters
|
|
103
|
+
const [latitude, longitude] = params.coordinates;
|
|
104
|
+
const validatedParams = validate(aroundBusStopsParamsSchema, {
|
|
105
|
+
latitude,
|
|
106
|
+
longitude,
|
|
107
|
+
}, "Invalid around bus stops parameters");
|
|
108
|
+
const response = await this.client.getClient().post("AroundBusStops_v2", {
|
|
109
|
+
json: validatedParams,
|
|
110
|
+
});
|
|
111
|
+
const data = await response.json();
|
|
112
|
+
// Validate raw response with Zod schema
|
|
113
|
+
const rawResponse = validate(rawAroundBusStopsResponseSchema, data, "Invalid around bus stops response");
|
|
114
|
+
// Transform to clean, normalized format
|
|
115
|
+
return transformAroundBusStopsResponse(rawResponse);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Search bus stops by station name
|
|
119
|
+
* @param params - Parameters including station name query and optional station type
|
|
120
|
+
* @param params.stationName - Station name to search for
|
|
121
|
+
* @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
|
|
122
|
+
* @returns List of bus stops matching the query
|
|
123
|
+
* @remarks
|
|
124
|
+
* The stationType parameter determines the type of stops to search (defaults to "bmtc"):
|
|
125
|
+
* - "bmtc": Transit Bus Stops (default)
|
|
126
|
+
* - "chartered": Chartered Stops
|
|
127
|
+
* - "metro": Metro Stops
|
|
128
|
+
* - "ksrtc": KSRTC bus stops
|
|
129
|
+
* @throws {TransitValidationError} If stationName is invalid or validation fails
|
|
130
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* // Search transit stops
|
|
134
|
+
* const stops = await client.stops.searchBusStops({
|
|
135
|
+
* stationName: "MG Road"
|
|
136
|
+
* });
|
|
137
|
+
*
|
|
138
|
+
* // Search metro stops only
|
|
139
|
+
* const metroStops = await client.stops.searchBusStops({
|
|
140
|
+
* stationName: "MG Road",
|
|
141
|
+
* stationType: "metro"
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
async searchBusStops(params) {
|
|
146
|
+
// Convert human-readable stationType to API numeric value (default to "bmtc" for transit stops)
|
|
147
|
+
const stationTypeValue = params.stationType || "bmtc";
|
|
148
|
+
const stationTypeNumber = stationTypeToNumber(stationTypeValue);
|
|
149
|
+
// Validate input parameters
|
|
150
|
+
const validatedParams = validate(nearbyBusStopsParamsSchema, {
|
|
151
|
+
stationname: params.stationName,
|
|
152
|
+
stationflag: stationTypeNumber,
|
|
153
|
+
}, "Invalid nearby bus stops parameters");
|
|
154
|
+
const response = await this.client.getClient().post("FindNearByBusStop_v2", {
|
|
155
|
+
json: {
|
|
156
|
+
stationname: validatedParams.stationname,
|
|
157
|
+
stationflag: validatedParams.stationflag,
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
const data = await response.json();
|
|
161
|
+
// Validate raw response with Zod schema
|
|
162
|
+
const rawResponse = validate(rawNearbyBusStopsResponseSchema, data, "Invalid nearby bus stops response");
|
|
163
|
+
// Transform to clean, normalized format
|
|
164
|
+
return transformNearbyBusStopsResponse(rawResponse);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Find nearby stops by location within a radius
|
|
168
|
+
* @param params - Parameters including coordinates [latitude, longitude], radius, and optional filters
|
|
169
|
+
* @param params.coordinates - [latitude, longitude] coordinates
|
|
170
|
+
* @param params.radius - Search radius in kilometers
|
|
171
|
+
* @param params.stationType - Optional: Type of stops to search ("bmtc", "chartered", "metro", "ksrtc")
|
|
172
|
+
* @param params.bmtcCategory - Optional: BMTC category filter ("airport", "all") - only when stationType is "bmtc"
|
|
173
|
+
* @returns List of nearby stops with distance and travel time information
|
|
174
|
+
* @remarks
|
|
175
|
+
* This endpoint returns up to 10 results. Pagination is not supported.
|
|
176
|
+
* The bmtcCategory parameter filters specific subsets of BMTC stops:
|
|
177
|
+
* - "airport": Airport bus stops only
|
|
178
|
+
* - "all": All BMTC stops
|
|
179
|
+
* Note: bmtcCategory can only be used when stationType is "bmtc"
|
|
180
|
+
* @throws {TransitValidationError} If coordinates, radius, or filters are invalid or validation fails
|
|
181
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* // Find all nearby stops within 1km
|
|
185
|
+
* const stops = await client.stops.findNearbyStops({
|
|
186
|
+
* coordinates: [13.09784, 77.59167],
|
|
187
|
+
* radius: 1
|
|
188
|
+
* });
|
|
189
|
+
*
|
|
190
|
+
* // Find airport stops only
|
|
191
|
+
* const airportStops = await client.stops.findNearbyStops({
|
|
192
|
+
* coordinates: [13.09784, 77.59167],
|
|
193
|
+
* radius: 2,
|
|
194
|
+
* stationType: "bmtc",
|
|
195
|
+
* bmtcCategory: "airport"
|
|
196
|
+
* });
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
async findNearbyStops(params) {
|
|
200
|
+
// Convert human-readable stationType to API numeric value (default to "bmtc")
|
|
201
|
+
let stationTypeNumber;
|
|
202
|
+
if (params.stationType) {
|
|
203
|
+
stationTypeNumber = stationTypeToNumber(params.stationType);
|
|
204
|
+
}
|
|
205
|
+
// Convert human-readable bmtcCategory to API numeric value if provided
|
|
206
|
+
// TypeScript ensures this is only possible when stationType is "bmtc"
|
|
207
|
+
let bmtcCategoryNumber;
|
|
208
|
+
if ("bmtcCategory" in params && params.bmtcCategory) {
|
|
209
|
+
bmtcCategoryNumber = transitCategoryToNumber(params.bmtcCategory);
|
|
210
|
+
}
|
|
211
|
+
// Build request payload
|
|
212
|
+
const [latitude, longitude] = params.coordinates;
|
|
213
|
+
const requestPayload = {
|
|
214
|
+
latitude,
|
|
215
|
+
longitude,
|
|
216
|
+
radiuskm: params.radius,
|
|
217
|
+
};
|
|
218
|
+
// Add optional parameters if provided
|
|
219
|
+
if (stationTypeNumber !== undefined) {
|
|
220
|
+
requestPayload.stationflag = stationTypeNumber;
|
|
221
|
+
}
|
|
222
|
+
if (bmtcCategoryNumber !== undefined) {
|
|
223
|
+
requestPayload.flexiflag = bmtcCategoryNumber;
|
|
224
|
+
}
|
|
225
|
+
// Validate input parameters
|
|
226
|
+
const validatedParams = validate(nearbyStationsParamsSchema, requestPayload, "Invalid nearby stations parameters");
|
|
227
|
+
const response = await this.client.getClient().post("NearbyStations_v2", {
|
|
228
|
+
json: validatedParams,
|
|
229
|
+
});
|
|
230
|
+
const data = await response.json();
|
|
231
|
+
// Validate raw response with Zod schema
|
|
232
|
+
const rawResponse = validate(rawNearbyStationsResponseSchema, data, "Invalid nearby stations response");
|
|
233
|
+
// Transform to clean, normalized format
|
|
234
|
+
return transformNearbyStationsResponse(rawResponse);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=stops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stops.js","sourceRoot":"","sources":["../../src/api/stops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG9E;;GAEG;AACH,SAAS,+BAA+B,CACvC,GAA8B;IAE9B,MAAM,QAAQ,GAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9D,MAAM,aAAa,GAAwB,WAAW,CAAC,OAAO,CAAC,GAAG,CACjE,CAAC,iBAAiB,EAAE,EAAE;YACrB,iDAAiD;YACjD,MAAM,gBAAgB,GAAsB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CACrE,CAAC,QAAQ,EAAE,EAAE,CACZ,qBAAqB,CACpB,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,sBAAsB;YACvF;gBACC,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,YAAY,EAAE,iBAAiB,CAAC,IAAI;gBACpC,cAAc,EAAE,iBAAiB,CAAC,MAAM;gBACxC,IAAI,EAAE,iBAAiB,CAAC,IAAI;gBAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvC,WAAW,EAAE,WAAW,CAAC,WAAW;aACpC,CACD,CACF,CAAC;YAEF,OAAO;gBACN,IAAI,EAAE,iBAAiB,CAAC,IAAI;gBAC5B,MAAM,EAAE,iBAAiB,CAAC,MAAM;gBAChC,IAAI,EAAE,iBAAiB,CAAC,IAAI;gBAC5B,UAAU,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;aACrD,CAAC;QACH,CAAC,CACD,CAAC;QAEF,OAAO;YACN,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC1C,aAAa;SACb,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACN,QAAQ;KACR,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,+BAA+B,CACvC,GAA8B;IAE9B,MAAM,KAAK,GAAwB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,YAAY,EAAE,IAAI,CAAC,IAAI;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;QACpC,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,SAAS;QAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;KACjB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,+BAA+B,CACvC,GAA8B;IAE9B,MAAM,KAAK,GAAwB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QACvC,WAAW,EAAE,IAAI,CAAC,YAAY;QAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU;QACzB,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,iBAAiB,EAAE,IAAI,CAAC,WAAW;QACnC,MAAM,EAAE,IAAI,CAAC,QAAQ;KACrB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACN,KAAK;KACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,QAAQ;IACA;IAApB,YAAoB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE1C;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,kBAAkB,CACvB,MAA4B;QAE5B,4BAA4B;QAC5B,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACjD,MAAM,eAAe,GAAG,QAAQ,CAC/B,0BAA0B,EAC1B;YACC,QAAQ;YACR,SAAS;SACT,EACD,qCAAqC,CACrC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACxE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,+BAA+B,EAC/B,IAAI,EACJ,mCAAmC,CACnC,CAAC;QAEF,wCAAwC;QACxC,OAAO,+BAA+B,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,cAAc,CACnB,MAA4B;QAE5B,gGAAgG;QAChG,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACtD,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAEhE,4BAA4B;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAC/B,0BAA0B,EAC1B;YACC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,iBAAiB;SAC9B,EACD,qCAAqC,CACrC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC3E,IAAI,EAAE;gBACL,WAAW,EAAE,eAAe,CAAC,WAAW;gBACxC,WAAW,EAAE,eAAe,CAAC,WAAW;aACxC;SACD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,+BAA+B,EAC/B,IAAI,EACJ,mCAAmC,CACnC,CAAC;QAEF,wCAAwC;QACxC,OAAO,+BAA+B,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,KAAK,CAAC,eAAe,CACpB,MAA4B;QAE5B,8EAA8E;QAC9E,IAAI,iBAAqC,CAAC;QAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,kBAAsC,CAAC;QAC3C,IAAI,cAAc,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACrD,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QAED,wBAAwB;QACxB,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACjD,MAAM,cAAc,GAMhB;YACH,QAAQ;YACR,SAAS;YACT,QAAQ,EAAE,MAAM,CAAC,MAAM;SACvB,CAAC;QAEF,sCAAsC;QACtC,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACrC,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAC;QAChD,CAAC;QACD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACtC,cAAc,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC/C,CAAC;QAED,4BAA4B;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAC/B,0BAA0B,EAC1B,cAAc,EACd,oCAAoC,CACpC,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACxE,IAAI,EAAE,eAAe;SACrB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAW,CAAC;QAE5C,wCAAwC;QACxC,MAAM,WAAW,GAAG,QAAQ,CAC3B,+BAA+B,EAC/B,IAAI,EACJ,kCAAkC,CAClC,CAAC;QAEF,wCAAwC;QACxC,OAAO,+BAA+B,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;CACD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { BaseClient } from "../client/base-client";
|
|
2
|
+
import type { SearchVehiclesResponse, SearchVehiclesParams, VehicleTripResponse, VehicleTripParams } from "../types/vehicles";
|
|
3
|
+
/**
|
|
4
|
+
* Vehicles API methods
|
|
5
|
+
*/
|
|
6
|
+
export declare class VehiclesAPI {
|
|
7
|
+
private client;
|
|
8
|
+
constructor(client: BaseClient);
|
|
9
|
+
/**
|
|
10
|
+
* Search vehicles by query (partial match)
|
|
11
|
+
* @param params - Search parameters including search query
|
|
12
|
+
* @param params.query - Vehicle registration number (partial match supported)
|
|
13
|
+
* @returns List of matching vehicles in normalized format
|
|
14
|
+
* @throws {TransitValidationError} If query is invalid or validation fails
|
|
15
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const vehicles = await client.vehicles.searchVehicles({ query: "KA57F2403" });
|
|
19
|
+
* if (vehicles.items.length > 0) {
|
|
20
|
+
* const vehicle = vehicles.items[0];
|
|
21
|
+
* const trip = await client.vehicles.getVehicleTrip({ vehicleId: vehicle.vehicleId });
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
searchVehicles(params: SearchVehiclesParams): Promise<SearchVehiclesResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* Get vehicle trip information including route stops and live location
|
|
28
|
+
* @param params - Parameters including vehicle ID
|
|
29
|
+
* @param params.vehicleId - Vehicle ID (always string for consistency)
|
|
30
|
+
* @returns Vehicle trip with route information and live location in normalized GeoJSON format
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const trip = await client.vehicles.getVehicleTrip({ vehicleId: "12345" });
|
|
34
|
+
*
|
|
35
|
+
* // Access route stops
|
|
36
|
+
* trip.routeStops.features.forEach(stop => {
|
|
37
|
+
* console.log(`${stop.properties.stopName} - ${stop.properties.eta}`);
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // Access live vehicle location
|
|
41
|
+
* const location = trip.vehicleLocation.features[0];
|
|
42
|
+
* console.log(`Vehicle at: [${location.geometry.coordinates}]`);
|
|
43
|
+
* ```
|
|
44
|
+
* @throws {TransitValidationError} If vehicleId is invalid or validation fails
|
|
45
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
46
|
+
*/
|
|
47
|
+
getVehicleTrip(params: VehicleTripParams): Promise<VehicleTripResponse>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=vehicles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicles.d.ts","sourceRoot":"","sources":["../../src/api/vehicles.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACX,sBAAsB,EAGtB,oBAAoB,EACpB,mBAAmB,EAEnB,iBAAiB,EACjB,MAAM,mBAAmB,CAAC;AAkG3B;;GAEG;AACH,qBAAa,WAAW;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC;;;;;;;;;;;;;;;OAeG;IACG,cAAc,CACnB,MAAM,EAAE,oBAAoB,GAC1B,OAAO,CAAC,sBAAsB,CAAC;IAyBlC;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,cAAc,CACnB,MAAM,EAAE,iBAAiB,GACvB,OAAO,CAAC,mBAAmB,CAAC;CA0B/B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { validate, parseId, stringifyId } from "../utils/validation";
|
|
2
|
+
import { rawSearchVehiclesResponseSchema, searchVehiclesParamsSchema, rawVehicleTripResponseSchema, vehicleTripParamsSchema, } from "../schemas/vehicles";
|
|
3
|
+
import { createStopFeature, createLocationFeature, createFeatureCollection, } from "../utils/geojson";
|
|
4
|
+
/**
|
|
5
|
+
* Transform raw search vehicles API response to clean, normalized format
|
|
6
|
+
*/
|
|
7
|
+
function transformSearchVehiclesResponse(raw) {
|
|
8
|
+
return {
|
|
9
|
+
items: raw.data.map((item) => ({
|
|
10
|
+
vehicleId: stringifyId(item.vehicleid),
|
|
11
|
+
vehicleRegNo: item.vehicleregno,
|
|
12
|
+
})),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Transform raw vehicle trip API response to clean, normalized format
|
|
17
|
+
*/
|
|
18
|
+
function transformVehicleTripResponse(raw) {
|
|
19
|
+
// Create GeoJSON features for route stops (stations along the route)
|
|
20
|
+
const routeStopsFeatures = raw.RouteDetails.map((item) => createStopFeature([item.longitude, item.latitude], // GeoJSON: [lng, lat]
|
|
21
|
+
{
|
|
22
|
+
stopId: stringifyId(item.stationid),
|
|
23
|
+
stopName: item.stationname,
|
|
24
|
+
tripId: stringifyId(item.tripid),
|
|
25
|
+
routeNo: item.routeno,
|
|
26
|
+
routeName: item.routename,
|
|
27
|
+
busNo: item.busno,
|
|
28
|
+
tripStatus: item.tripstatus,
|
|
29
|
+
tripStatusId: item.tripstatusid,
|
|
30
|
+
sourceStation: item.sourcestation,
|
|
31
|
+
destinationStation: item.destinationstation,
|
|
32
|
+
serviceType: item.servicetype,
|
|
33
|
+
serviceTypeId: stringifyId(item.servicetypeid),
|
|
34
|
+
lastUpdatedAt: item.lastupdatedat,
|
|
35
|
+
actualArrivalTime: item.actual_arrivaltime,
|
|
36
|
+
etaStatus: item.etastatus,
|
|
37
|
+
etaStatusMapView: item.etastatusmapview,
|
|
38
|
+
currentStop: item.currentstop,
|
|
39
|
+
lastStop: item.laststop,
|
|
40
|
+
webLastStop: item.weblaststop,
|
|
41
|
+
nextStop: item.nextstop,
|
|
42
|
+
currentLatitude: item.currlatitude,
|
|
43
|
+
currentLongitude: item.currlongitude,
|
|
44
|
+
scheduledArrivalTime: item.sch_arrivaltime,
|
|
45
|
+
scheduledDepartureTime: item.sch_departuretime,
|
|
46
|
+
eta: item.eta,
|
|
47
|
+
actualArrivalTime1: item.actual_arrivaltime1,
|
|
48
|
+
actualDepartureTime: item.actual_departudetime,
|
|
49
|
+
tripStartTime: item.tripstarttime,
|
|
50
|
+
tripEndTime: item.tripendtime,
|
|
51
|
+
routeId: stringifyId(item.routeid),
|
|
52
|
+
vehicleId: stringifyId(item.vehicleid),
|
|
53
|
+
lastReceivedDateTimeFlag: item.lastreceiveddatetimeflag,
|
|
54
|
+
serialNo: item.srno,
|
|
55
|
+
tripPosition: item.tripposition,
|
|
56
|
+
stopStatus: item.stopstatus,
|
|
57
|
+
stopStatusDistance: item.stopstatus_distance,
|
|
58
|
+
lastEtaUpdated: item.lastetaupdated,
|
|
59
|
+
minStopStatusDistance: item.minstopstatus_distance,
|
|
60
|
+
}));
|
|
61
|
+
// Create GeoJSON features for vehicle live location
|
|
62
|
+
const vehicleLocationFeatures = raw.LiveLocation.map((item) => createLocationFeature([item.longitude, item.latitude], // GeoJSON: [lng, lat]
|
|
63
|
+
{
|
|
64
|
+
vehicleId: stringifyId(item.vehicleid),
|
|
65
|
+
vehicleNumber: item.vehiclenumber,
|
|
66
|
+
routeNo: item.routeno,
|
|
67
|
+
serviceType: item.servicetype,
|
|
68
|
+
serviceTypeId: stringifyId(item.servicetypeid),
|
|
69
|
+
heading: item.heading,
|
|
70
|
+
location: item.location,
|
|
71
|
+
lastRefreshedOn: item.lastrefreshon,
|
|
72
|
+
nextStop: item.nextstop,
|
|
73
|
+
previousStop: item.previousstop,
|
|
74
|
+
tripStatus: item.trip_status,
|
|
75
|
+
lastReceivedDateTimeFlag: item.lastreceiveddatetimeflag,
|
|
76
|
+
}));
|
|
77
|
+
return {
|
|
78
|
+
routeStops: createFeatureCollection(routeStopsFeatures),
|
|
79
|
+
vehicleLocation: createFeatureCollection(vehicleLocationFeatures),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Vehicles API methods
|
|
84
|
+
*/
|
|
85
|
+
export class VehiclesAPI {
|
|
86
|
+
client;
|
|
87
|
+
constructor(client) {
|
|
88
|
+
this.client = client;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Search vehicles by query (partial match)
|
|
92
|
+
* @param params - Search parameters including search query
|
|
93
|
+
* @param params.query - Vehicle registration number (partial match supported)
|
|
94
|
+
* @returns List of matching vehicles in normalized format
|
|
95
|
+
* @throws {TransitValidationError} If query is invalid or validation fails
|
|
96
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* const vehicles = await client.vehicles.searchVehicles({ query: "KA57F2403" });
|
|
100
|
+
* if (vehicles.items.length > 0) {
|
|
101
|
+
* const vehicle = vehicles.items[0];
|
|
102
|
+
* const trip = await client.vehicles.getVehicleTrip({ vehicleId: vehicle.vehicleId });
|
|
103
|
+
* }
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
async searchVehicles(params) {
|
|
107
|
+
// Validate input parameters
|
|
108
|
+
const validatedParams = validate(searchVehiclesParamsSchema, { vehicleregno: params.query }, "Invalid search vehicles parameters");
|
|
109
|
+
const response = await this.client.getClient().post("ListVehicles", {
|
|
110
|
+
json: validatedParams,
|
|
111
|
+
});
|
|
112
|
+
const data = await response.json();
|
|
113
|
+
// Validate raw response with Zod schema
|
|
114
|
+
const rawResponse = validate(rawSearchVehiclesResponseSchema, data, "Invalid search vehicles response");
|
|
115
|
+
// Transform to clean, normalized format
|
|
116
|
+
return transformSearchVehiclesResponse(rawResponse);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get vehicle trip information including route stops and live location
|
|
120
|
+
* @param params - Parameters including vehicle ID
|
|
121
|
+
* @param params.vehicleId - Vehicle ID (always string for consistency)
|
|
122
|
+
* @returns Vehicle trip with route information and live location in normalized GeoJSON format
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const trip = await client.vehicles.getVehicleTrip({ vehicleId: "12345" });
|
|
126
|
+
*
|
|
127
|
+
* // Access route stops
|
|
128
|
+
* trip.routeStops.features.forEach(stop => {
|
|
129
|
+
* console.log(`${stop.properties.stopName} - ${stop.properties.eta}`);
|
|
130
|
+
* });
|
|
131
|
+
*
|
|
132
|
+
* // Access live vehicle location
|
|
133
|
+
* const location = trip.vehicleLocation.features[0];
|
|
134
|
+
* console.log(`Vehicle at: [${location.geometry.coordinates}]`);
|
|
135
|
+
* ```
|
|
136
|
+
* @throws {TransitValidationError} If vehicleId is invalid or validation fails
|
|
137
|
+
* @throws {HTTPError} If the API request fails (network error, 4xx, 5xx)
|
|
138
|
+
*/
|
|
139
|
+
async getVehicleTrip(params) {
|
|
140
|
+
// Validate input parameters - API expects number, convert from string
|
|
141
|
+
const validatedParams = validate(vehicleTripParamsSchema, { vehicleId: parseId(params.vehicleId) }, "Invalid vehicle trip parameters");
|
|
142
|
+
const response = await this.client
|
|
143
|
+
.getClient()
|
|
144
|
+
.post("VehicleTripDetails_v2", {
|
|
145
|
+
json: validatedParams,
|
|
146
|
+
});
|
|
147
|
+
const data = await response.json();
|
|
148
|
+
// Validate raw response with Zod schema
|
|
149
|
+
const rawResponse = validate(rawVehicleTripResponseSchema, data, "Invalid vehicle trip response");
|
|
150
|
+
// Transform to clean, normalized format
|
|
151
|
+
return transformVehicleTripResponse(rawResponse);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=vehicles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicles.js","sourceRoot":"","sources":["../../src/api/vehicles.ts"],"names":[],"mappings":"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"}
|