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.
Files changed (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +507 -0
  3. package/dist/api/info.d.ts +77 -0
  4. package/dist/api/info.d.ts.map +1 -0
  5. package/dist/api/info.js +197 -0
  6. package/dist/api/info.js.map +1 -0
  7. package/dist/api/locations.d.ts +26 -0
  8. package/dist/api/locations.d.ts.map +1 -0
  9. package/dist/api/locations.js +57 -0
  10. package/dist/api/locations.js.map +1 -0
  11. package/dist/api/routes.d.ts +341 -0
  12. package/dist/api/routes.d.ts.map +1 -0
  13. package/dist/api/routes.js +1133 -0
  14. package/dist/api/routes.js.map +1 -0
  15. package/dist/api/stops.d.ts +92 -0
  16. package/dist/api/stops.d.ts.map +1 -0
  17. package/dist/api/stops.js +237 -0
  18. package/dist/api/stops.js.map +1 -0
  19. package/dist/api/vehicles.d.ts +49 -0
  20. package/dist/api/vehicles.d.ts.map +1 -0
  21. package/dist/api/vehicles.js +154 -0
  22. package/dist/api/vehicles.js.map +1 -0
  23. package/dist/client/base-client.d.ts +52 -0
  24. package/dist/client/base-client.d.ts.map +1 -0
  25. package/dist/client/base-client.js +76 -0
  26. package/dist/client/base-client.js.map +1 -0
  27. package/dist/client/transit-client.d.ts +91 -0
  28. package/dist/client/transit-client.d.ts.map +1 -0
  29. package/dist/client/transit-client.js +98 -0
  30. package/dist/client/transit-client.js.map +1 -0
  31. package/dist/constants/api.d.ts +16 -0
  32. package/dist/constants/api.d.ts.map +1 -0
  33. package/dist/constants/api.js +16 -0
  34. package/dist/constants/api.js.map +1 -0
  35. package/dist/constants/routes.d.ts +16 -0
  36. package/dist/constants/routes.d.ts.map +1 -0
  37. package/dist/constants/routes.js +16 -0
  38. package/dist/constants/routes.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +10 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/schemas/common.d.ts +34 -0
  44. package/dist/schemas/common.d.ts.map +1 -0
  45. package/dist/schemas/common.js +20 -0
  46. package/dist/schemas/common.js.map +1 -0
  47. package/dist/schemas/index.d.ts +7 -0
  48. package/dist/schemas/index.d.ts.map +1 -0
  49. package/dist/schemas/index.js +7 -0
  50. package/dist/schemas/index.js.map +1 -0
  51. package/dist/schemas/info.d.ts +390 -0
  52. package/dist/schemas/info.d.ts.map +1 -0
  53. package/dist/schemas/info.js +110 -0
  54. package/dist/schemas/info.js.map +1 -0
  55. package/dist/schemas/locations.d.ts +84 -0
  56. package/dist/schemas/locations.d.ts.map +1 -0
  57. package/dist/schemas/locations.js +31 -0
  58. package/dist/schemas/locations.js.map +1 -0
  59. package/dist/schemas/routes.d.ts +3967 -0
  60. package/dist/schemas/routes.d.ts.map +1 -0
  61. package/dist/schemas/routes.js +532 -0
  62. package/dist/schemas/routes.js.map +1 -0
  63. package/dist/schemas/stops.d.ts +543 -0
  64. package/dist/schemas/stops.d.ts.map +1 -0
  65. package/dist/schemas/stops.js +129 -0
  66. package/dist/schemas/stops.js.map +1 -0
  67. package/dist/schemas/vehicles.d.ts +602 -0
  68. package/dist/schemas/vehicles.d.ts.map +1 -0
  69. package/dist/schemas/vehicles.js +116 -0
  70. package/dist/schemas/vehicles.js.map +1 -0
  71. package/dist/types/api.d.ts +9 -0
  72. package/dist/types/api.d.ts.map +1 -0
  73. package/dist/types/api.js +5 -0
  74. package/dist/types/api.js.map +1 -0
  75. package/dist/types/coordinates.d.ts +7 -0
  76. package/dist/types/coordinates.d.ts.map +1 -0
  77. package/dist/types/coordinates.js +2 -0
  78. package/dist/types/coordinates.js.map +1 -0
  79. package/dist/types/geojson.d.ts +84 -0
  80. package/dist/types/geojson.d.ts.map +1 -0
  81. package/dist/types/geojson.js +2 -0
  82. package/dist/types/geojson.js.map +1 -0
  83. package/dist/types/index.d.ts +16 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +12 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/dist/types/info.d.ts +133 -0
  88. package/dist/types/info.d.ts.map +1 -0
  89. package/dist/types/info.js +5 -0
  90. package/dist/types/info.js.map +1 -0
  91. package/dist/types/locations.d.ts +59 -0
  92. package/dist/types/locations.d.ts.map +1 -0
  93. package/dist/types/locations.js +5 -0
  94. package/dist/types/locations.js.map +1 -0
  95. package/dist/types/routes.d.ts +1137 -0
  96. package/dist/types/routes.d.ts.map +1 -0
  97. package/dist/types/routes.js +14 -0
  98. package/dist/types/routes.js.map +1 -0
  99. package/dist/types/stops.d.ts +286 -0
  100. package/dist/types/stops.d.ts.map +1 -0
  101. package/dist/types/stops.js +26 -0
  102. package/dist/types/stops.js.map +1 -0
  103. package/dist/types/vehicles.d.ts +138 -0
  104. package/dist/types/vehicles.d.ts.map +1 -0
  105. package/dist/types/vehicles.js +5 -0
  106. package/dist/types/vehicles.js.map +1 -0
  107. package/dist/utils/date.d.ts +35 -0
  108. package/dist/utils/date.d.ts.map +1 -0
  109. package/dist/utils/date.js +49 -0
  110. package/dist/utils/date.js.map +1 -0
  111. package/dist/utils/errors.d.ts +34 -0
  112. package/dist/utils/errors.d.ts.map +1 -0
  113. package/dist/utils/errors.js +41 -0
  114. package/dist/utils/errors.js.map +1 -0
  115. package/dist/utils/geojson.d.ts +36 -0
  116. package/dist/utils/geojson.d.ts.map +1 -0
  117. package/dist/utils/geojson.js +115 -0
  118. package/dist/utils/geojson.js.map +1 -0
  119. package/dist/utils/validation.d.ts +40 -0
  120. package/dist/utils/validation.d.ts.map +1 -0
  121. package/dist/utils/validation.js +62 -0
  122. package/dist/utils/validation.js.map +1 -0
  123. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/schemas/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,532 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Zod schemas for route-related endpoints
4
+ */
5
+ /**
6
+ * Schema for route direction parameter (normalized input/output)
7
+ * Converts to lowercase and validates enum
8
+ */
9
+ export const routeDirectionSchema = z
10
+ .string()
11
+ .transform((val) => val.toLowerCase())
12
+ .pipe(z.enum(["up", "down"], { message: "Route direction must be 'up' or 'down'" }));
13
+ /**
14
+ * Schema for raw route between stations item from GetFareRoutes API
15
+ */
16
+ export const rawRouteBetweenStationsItemSchema = z.object({
17
+ id: z.number(),
18
+ fromstationid: z.number(),
19
+ source_code: z.string(),
20
+ from_displayname: z.string(),
21
+ tostationid: z.number(),
22
+ destination_code: z.string(),
23
+ to_displayname: z.string(),
24
+ fromdistance: z.number(),
25
+ todistance: z.number(),
26
+ routeid: z.number(),
27
+ routeno: z.string(),
28
+ routename: z.string(),
29
+ route_direction: z.string(), // Raw API returns string, we normalize in transformation
30
+ fromstationname: z.string(),
31
+ tostationname: z.string(),
32
+ });
33
+ /**
34
+ * Schema for raw routes between stations API response from BMTC API
35
+ */
36
+ export const rawRoutesBetweenStationsResponseSchema = z.object({
37
+ data: z.array(rawRouteBetweenStationsItemSchema),
38
+ Message: z.string(),
39
+ Issuccess: z.boolean(),
40
+ exception: z.string().nullable(),
41
+ RowCount: z.number(),
42
+ responsecode: z.number(),
43
+ });
44
+ /**
45
+ * Schema for routes between stops request parameters
46
+ */
47
+ export const routesBetweenStopsParamsSchema = z.object({
48
+ fromStationId: z.number().int().positive(), // API uses "station" in field names
49
+ toStationId: z.number().int().positive(), // API uses "station" in field names
50
+ });
51
+ /**
52
+ * Schema for raw route point data item from BMTC API
53
+ */
54
+ export const rawRoutePointItemSchema = z.object({
55
+ latitude: z.string(),
56
+ longitude: z.string(),
57
+ responsecode: z.number(),
58
+ });
59
+ /**
60
+ * Schema for raw route points API response from BMTC API
61
+ */
62
+ export const rawRoutePointsResponseSchema = z.object({
63
+ data: z.array(rawRoutePointItemSchema),
64
+ Message: z.string(),
65
+ Issuccess: z.boolean(),
66
+ exception: z.unknown().nullish(),
67
+ RowCount: z.number(),
68
+ responsecode: z.number(),
69
+ });
70
+ /**
71
+ * Schema for route points request parameters
72
+ */
73
+ export const routePointsParamsSchema = z.object({
74
+ routeid: z.number().int().positive("Route ID must be a positive integer"),
75
+ });
76
+ /**
77
+ * Schema for raw route search result item from BMTC API
78
+ */
79
+ export const rawRouteSearchItemSchema = z.object({
80
+ union_rowno: z.number(),
81
+ row: z.number(),
82
+ routeno: z.string(),
83
+ responsecode: z.number(),
84
+ routeparentid: z.number(),
85
+ });
86
+ /**
87
+ * Schema for raw route search API response from BMTC API
88
+ */
89
+ export const rawRouteSearchResponseSchema = z.object({
90
+ data: z.array(rawRouteSearchItemSchema),
91
+ Message: z.string(),
92
+ Issuccess: z.boolean(),
93
+ exception: z.unknown().nullish(),
94
+ RowCount: z.number(),
95
+ responsecode: z.number(),
96
+ });
97
+ /**
98
+ * Schema for route search request parameters
99
+ */
100
+ export const routeSearchParamsSchema = z.object({
101
+ routetext: z.string().min(1, "Route text is required"),
102
+ });
103
+ /**
104
+ * Schema for raw route list item from GetAllRouteList API
105
+ */
106
+ export const rawRouteListItemSchema = z.object({
107
+ routeid: z.number(),
108
+ routeno: z.string(),
109
+ routename: z.string(),
110
+ fromstationid: z.number(),
111
+ fromstation: z.string(),
112
+ tostationid: z.number(),
113
+ tostation: z.string(),
114
+ responsecode: z.number(),
115
+ });
116
+ /**
117
+ * Schema for raw all routes API response from BMTC API
118
+ */
119
+ export const rawAllRoutesResponseSchema = z.object({
120
+ data: z.array(rawRouteListItemSchema),
121
+ Message: z.string(),
122
+ Issuccess: z.boolean(),
123
+ exception: z.unknown().nullish(),
124
+ RowCount: z.number(),
125
+ responsecode: z.number(),
126
+ });
127
+ /**
128
+ * Schema for raw trip detail item from timetable API
129
+ */
130
+ export const rawTripDetailItemSchema = z.object({
131
+ starttime: z.string(), // Format: "HH:mm"
132
+ endtime: z.string(), // Format: "HH:mm"
133
+ });
134
+ /**
135
+ * Schema for raw timetable data item from BMTC API
136
+ */
137
+ export const rawTimetableItemSchema = z.object({
138
+ fromstationname: z.string(),
139
+ tostationname: z.string(),
140
+ fromstationid: z.string(), // API returns as string
141
+ tostationid: z.string(), // API returns as string
142
+ apptime: z.string(), // Format: "HH:mm:ss"
143
+ distance: z.string(), // API returns as string
144
+ platformname: z.string(),
145
+ platformnumber: z.string(),
146
+ baynumber: z.string(),
147
+ tripdetails: z.array(rawTripDetailItemSchema),
148
+ });
149
+ /**
150
+ * Schema for raw timetable API response from BMTC API
151
+ */
152
+ export const rawTimetableResponseSchema = z.object({
153
+ data: z.array(rawTimetableItemSchema),
154
+ Message: z.string(),
155
+ Issuccess: z.boolean(),
156
+ exception: z.unknown().nullish(),
157
+ RowCount: z.number(),
158
+ responsecode: z.number(),
159
+ });
160
+ /**
161
+ * Schema for timetable request parameters (internal - for API call)
162
+ */
163
+ export const timetableRequestSchema = z.object({
164
+ current_date: z.string(), // ISO 8601 format
165
+ routeid: z.number().int().positive("Route ID must be a positive integer"),
166
+ fromStationId: z.string().optional(),
167
+ toStationId: z.string().optional(),
168
+ starttime: z.string(), // Format: "YYYY-MM-DD HH:mm"
169
+ endtime: z.string(), // Format: "YYYY-MM-DD HH:mm"
170
+ });
171
+ /**
172
+ * Schema for raw vehicle detail item from SearchByRouteDetails_v4 API
173
+ */
174
+ export const rawRouteDetailVehicleItemSchema = z.object({
175
+ vehicleid: z.number(),
176
+ vehiclenumber: z.string(),
177
+ servicetypeid: z.number(),
178
+ servicetype: z.string(),
179
+ centerlat: z.number(),
180
+ centerlong: z.number(),
181
+ eta: z.string(),
182
+ sch_arrivaltime: z.string(),
183
+ sch_departuretime: z.string(),
184
+ actual_arrivaltime: z.string(),
185
+ actual_departuretime: z.string(),
186
+ sch_tripstarttime: z.string(),
187
+ sch_tripendtime: z.string(),
188
+ lastlocationid: z.number(),
189
+ currentlocationid: z.number(),
190
+ nextlocationid: z.number(),
191
+ currentstop: z.string().nullable(),
192
+ nextstop: z.string().nullable(),
193
+ laststop: z.string().nullable(),
194
+ stopCoveredStatus: z.number(),
195
+ heading: z.number(),
196
+ lastrefreshon: z.string(),
197
+ lastreceiveddatetimeflag: z.number(),
198
+ tripposition: z.number(),
199
+ });
200
+ /**
201
+ * Schema for raw station data item from SearchByRouteDetails_v4 API
202
+ */
203
+ export const rawRouteDetailStationItemSchema = z.object({
204
+ routeid: z.number(),
205
+ stationid: z.number(),
206
+ stationname: z.string(),
207
+ from: z.string(),
208
+ to: z.string(),
209
+ routeno: z.string(),
210
+ distance_on_station: z.number(),
211
+ centerlat: z.number(),
212
+ centerlong: z.number(),
213
+ responsecode: z.number(),
214
+ isnotify: z.number(),
215
+ vehicleDetails: z.array(rawRouteDetailVehicleItemSchema),
216
+ });
217
+ /**
218
+ * Schema for raw direction data (up or down) from SearchByRouteDetails_v4 API
219
+ */
220
+ export const rawRouteDetailDirectionDataSchema = z.object({
221
+ data: z.array(rawRouteDetailStationItemSchema),
222
+ mapData: z.array(rawRouteDetailVehicleItemSchema),
223
+ });
224
+ /**
225
+ * Schema for raw SearchByRouteDetails_v4 API response from BMTC API
226
+ */
227
+ export const rawRouteDetailsResponseSchema = z.object({
228
+ up: rawRouteDetailDirectionDataSchema,
229
+ down: rawRouteDetailDirectionDataSchema,
230
+ message: z.string(),
231
+ issuccess: z.boolean(),
232
+ exception: z.unknown().nullish(),
233
+ rowCount: z.number(),
234
+ responsecode: z.number(),
235
+ });
236
+ /**
237
+ * Schema for route details request parameters
238
+ */
239
+ export const routeDetailsParamsSchema = z.object({
240
+ routeid: z.number().int().positive("Parent route ID must be a positive integer"),
241
+ servicetypeid: z.number().int().positive().optional(),
242
+ });
243
+ /**
244
+ * Schema for raw fare data item from GetMobileFareData_v2 API
245
+ */
246
+ export const rawFareDataItemSchema = z.object({
247
+ servicetype: z.string(),
248
+ fare: z.string(),
249
+ });
250
+ /**
251
+ * Schema for raw fare data response from GetMobileFareData_v2 API
252
+ */
253
+ export const rawFareDataResponseSchema = z.object({
254
+ data: z.array(rawFareDataItemSchema),
255
+ Message: z.string(),
256
+ Issuccess: z.boolean(),
257
+ exception: z.string().nullable(),
258
+ RowCount: z.number().int().nonnegative(),
259
+ responsecode: z.number().int(),
260
+ });
261
+ /**
262
+ * Schema for fare data request parameters
263
+ */
264
+ export const fareDataParamsSchema = z.object({
265
+ routeno: z.string().min(1, "Route number is required"),
266
+ routeid: z.number().int().positive("Subroute ID must be a positive integer"),
267
+ route_direction: routeDirectionSchema, // Normalize to lowercase "up" | "down" for input
268
+ source_code: z.string().min(1, "Source code is required"),
269
+ destination_code: z.string().min(1, "Destination code is required"),
270
+ });
271
+ /**
272
+ * Schema for validating duration strings
273
+ * Format: "HH:mm:ss" (e.g., "01:30:45", "00:05:00")
274
+ */
275
+ const durationStringSchema = z
276
+ .string()
277
+ .regex(/^\d{2}:\d{2}:\d{2}$/, {
278
+ message: 'Duration must be in format "HH:mm:ss" (e.g., "01:30:45")',
279
+ })
280
+ .refine((durationStr) => {
281
+ const parts = durationStr.split(":").map(Number);
282
+ const [hours, minutes, seconds] = parts;
283
+ // Validate ranges: hours 0-23 (or more for longer durations), minutes 0-59, seconds 0-59
284
+ return minutes < 60 && seconds < 60 && hours >= 0;
285
+ }, {
286
+ message: "Duration must have valid time components (minutes and seconds < 60)",
287
+ });
288
+ /**
289
+ * Schema for raw trip planner path leg from TripPlannerMSMD API
290
+ */
291
+ export const rawTripPlannerPathLegSchema = z.object({
292
+ pathSrno: z.number(),
293
+ transferSrNo: z.number(),
294
+ tripId: z.number(),
295
+ routeid: z.number(),
296
+ routeno: z.string(),
297
+ schNo: z.string().nullable(),
298
+ vehicleId: z.number(),
299
+ busNo: z.string().nullable(),
300
+ distance: z.number(),
301
+ duration: durationStringSchema,
302
+ fromStationId: z.number(),
303
+ fromStationName: z.string(),
304
+ toStationId: z.number(),
305
+ toStationName: z.string(),
306
+ etaFromStation: z.string().nullable(),
307
+ etaToStation: z.string().nullable(),
308
+ serviceTypeId: z.number(),
309
+ fromLatitude: z.number(),
310
+ fromLongitude: z.number(),
311
+ toLatitude: z.number(),
312
+ toLongitude: z.number(),
313
+ routeParentId: z.number(),
314
+ totalDuration: durationStringSchema,
315
+ waitingDuration: durationStringSchema.nullable(),
316
+ platformnumber: z.string(),
317
+ baynumber: z.number(),
318
+ devicestatusnameflag: z.string(),
319
+ devicestatusflag: z.number(),
320
+ srno: z.number(),
321
+ approx_fare: z.number(),
322
+ fromstagenumber: z.number(),
323
+ tostagenumber: z.number(),
324
+ minsrno: z.number(),
325
+ maxsrno: z.number(),
326
+ tollfees: z.number(),
327
+ totalStages: z.number().nullable(),
328
+ });
329
+ /**
330
+ * Schema for raw trip planner response data structure
331
+ */
332
+ export const rawTripPlannerDataSchema = z.object({
333
+ directRoutes: z.array(z.array(rawTripPlannerPathLegSchema)),
334
+ transferRoutes: z.array(z.array(rawTripPlannerPathLegSchema)),
335
+ });
336
+ /**
337
+ * Schema for raw trip planner response from TripPlannerMSMD API
338
+ */
339
+ export const rawTripPlannerResponseSchema = z.object({
340
+ data: rawTripPlannerDataSchema,
341
+ Message: z.string(),
342
+ Issuccess: z.boolean(),
343
+ exception: z.string().nullable(),
344
+ RowCount: z.number().int().nonnegative(),
345
+ responsecode: z.number().int(),
346
+ });
347
+ /**
348
+ * Schema for validating future datetime strings
349
+ * Format: "YYYY-MM-DD HH:mm"
350
+ */
351
+ const futureDateTimeSchema = z
352
+ .string()
353
+ .regex(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$/, {
354
+ message: "DateTime must be in format 'YYYY-MM-DD HH:mm'",
355
+ })
356
+ .refine((dateTimeStr) => {
357
+ const dateTime = new Date(dateTimeStr.replace(" ", "T"));
358
+ const now = new Date();
359
+ return dateTime > now;
360
+ }, {
361
+ message: "DateTime must be in the future",
362
+ })
363
+ .optional();
364
+ /**
365
+ * Schema for trip planner request parameters (API format)
366
+ * Note: This validates the final API payload, not the discriminated union input
367
+ */
368
+ export const tripPlannerParamsSchema = z
369
+ .object({
370
+ fromStationId: z.number().int().nonnegative().optional(),
371
+ fromLatitude: z.number().min(-90).max(90).optional(),
372
+ fromLongitude: z.number().min(-180).max(180).optional(),
373
+ toStationId: z.number().int().nonnegative().optional(),
374
+ toLatitude: z.number().min(-90).max(90).optional(),
375
+ toLongitude: z.number().min(-180).max(180).optional(),
376
+ serviceTypeId: z.number().int().positive().optional(),
377
+ fromDateTime: futureDateTimeSchema,
378
+ filterBy: z.union([z.literal(1), z.literal(2)]).optional(),
379
+ })
380
+ .refine((data) => {
381
+ // Must have exactly one "from" type
382
+ const hasFromStation = data.fromStationId !== undefined;
383
+ const hasFromLocation = data.fromLatitude !== undefined && data.fromLongitude !== undefined;
384
+ if (hasFromStation === hasFromLocation) {
385
+ return false;
386
+ }
387
+ // Must have exactly one "to" type
388
+ const hasToStation = data.toStationId !== undefined;
389
+ const hasToLocation = data.toLatitude !== undefined && data.toLongitude !== undefined;
390
+ if (hasToStation === hasToLocation) {
391
+ return false;
392
+ }
393
+ return true;
394
+ }, {
395
+ message: "Must provide exactly one of: (fromStationId) or (fromLatitude, fromLongitude), and exactly one of: (toStationId) or (toLatitude, toLongitude)",
396
+ });
397
+ /**
398
+ * Schema for path detail request item
399
+ * All IDs are strings (converted to numbers internally for API call)
400
+ */
401
+ export const pathDetailRequestItemSchema = z.object({
402
+ tripId: z
403
+ .string()
404
+ .regex(/^\d+$/, "Trip ID must be a numeric string")
405
+ .refine((val) => parseInt(val, 10) > 0, "Trip ID must be a positive integer"),
406
+ fromStopId: z
407
+ .string()
408
+ .regex(/^\d+$/, "From stop ID must be a numeric string")
409
+ .refine((val) => parseInt(val, 10) > 0, "From stop ID must be a positive integer"),
410
+ toStopId: z
411
+ .string()
412
+ .regex(/^\d+$/, "To stop ID must be a numeric string")
413
+ .refine((val) => parseInt(val, 10) > 0, "To stop ID must be a positive integer"),
414
+ });
415
+ /**
416
+ * Schema for path details request parameters (user-facing, uses 'trips')
417
+ */
418
+ export const pathDetailsParamsSchema = z.object({
419
+ trips: z
420
+ .array(pathDetailRequestItemSchema)
421
+ .min(1, "At least one trip leg is required"),
422
+ });
423
+ /**
424
+ * Schema for path detail API request item (internal - for API call, uses station IDs to match API)
425
+ */
426
+ export const pathDetailApiRequestItemSchema = z.object({
427
+ tripId: z.number().int().positive("Trip ID must be a positive integer"),
428
+ fromStationId: z.number().int().positive("From station ID must be a positive integer"), // API uses "station"
429
+ toStationId: z.number().int().positive("To station ID must be a positive integer"), // API uses "station"
430
+ });
431
+ /**
432
+ * Schema for path details API request parameters (API format, uses 'data')
433
+ */
434
+ export const pathDetailsApiParamsSchema = z.object({
435
+ data: z
436
+ .array(pathDetailApiRequestItemSchema)
437
+ .min(1, "At least one path detail item is required"),
438
+ });
439
+ /**
440
+ * Schema for raw path detail item from GetPathDetails API
441
+ */
442
+ export const rawPathDetailItemSchema = z.object({
443
+ tripId: z.number(),
444
+ routeId: z.number(),
445
+ routeNo: z.string(),
446
+ stationId: z.number(),
447
+ stationName: z.string(),
448
+ latitude: z.number(),
449
+ longitude: z.number(),
450
+ eta: z.string(),
451
+ sch_arrivaltime: z.string(),
452
+ sch_departuretime: z.string(),
453
+ actual_arrivaltime: z.string(),
454
+ actual_departuretime: z.string(),
455
+ distance: z.number(),
456
+ duration: z.string().nullable(),
457
+ isTransfer: z.boolean(),
458
+ });
459
+ /**
460
+ * Schema for raw path details response from GetPathDetails API
461
+ */
462
+ export const rawPathDetailsResponseSchema = z.object({
463
+ data: z.array(rawPathDetailItemSchema),
464
+ message: z.string(),
465
+ issuccess: z.boolean(),
466
+ exception: z.string().nullable(),
467
+ rowCount: z.number().int().nonnegative(),
468
+ responsecode: z.number().int(),
469
+ });
470
+ /**
471
+ * Coordinate tuple schema [latitude, longitude]
472
+ */
473
+ const coordinateTupleSchema = z.tuple([z.number().min(-90).max(90), z.number().min(-180).max(180)]);
474
+ /**
475
+ * Schema for waypoints request parameters
476
+ */
477
+ export const waypointsParamsSchema = z.object({
478
+ viaPoints: z
479
+ .array(coordinateTupleSchema)
480
+ .min(2, "At least 2 points required (origin and destination)"),
481
+ });
482
+ /**
483
+ * Schema for raw waypoints response (array of encoded strings)
484
+ */
485
+ export const rawWaypointsResponseSchema = z.array(z.string());
486
+ /**
487
+ * Schema for raw timetable by station item from GetTimetableByStation_v4 API
488
+ */
489
+ export const rawTimetableByStationItemSchema = z.object({
490
+ routeid: z.number(),
491
+ id: z.number(),
492
+ fromstationid: z.number(),
493
+ tostationid: z.number(),
494
+ f: z.number(),
495
+ t: z.number(),
496
+ routeno: z.string(),
497
+ routename: z.string(),
498
+ fromstationname: z.string(),
499
+ tostationname: z.string(),
500
+ traveltime: z.string(),
501
+ distance: z.number(),
502
+ apptime: z.string(),
503
+ apptimesecs: z.string(),
504
+ starttime: z.string(),
505
+ platformname: z.string().nullable(),
506
+ platformnumber: z.string().nullable(),
507
+ baynumber: z.string().nullable(),
508
+ });
509
+ /**
510
+ * Schema for raw timetable by station API response from BMTC API
511
+ */
512
+ export const rawTimetableByStationResponseSchema = z.object({
513
+ data: z.array(rawTimetableByStationItemSchema),
514
+ Message: z.string(),
515
+ Issuccess: z.boolean(),
516
+ exception: z.string().nullable(),
517
+ RowCount: z.number(),
518
+ responsecode: z.number(),
519
+ });
520
+ /**
521
+ * Schema for timetable by station request parameters (internal - for API call)
522
+ */
523
+ export const timetableByStationRequestSchema = z.object({
524
+ fromStationId: z.number().int().positive(),
525
+ toStationId: z.number().int().positive(),
526
+ p_startdate: z.string(),
527
+ p_enddate: z.string(),
528
+ p_isshortesttime: z.number().optional(),
529
+ p_routeid: z.string().optional(),
530
+ p_date: z.string(),
531
+ });
532
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/schemas/routes.ts"],"names":[],"mappings":"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"}