minotor 5.0.1 → 7.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/CHANGELOG.md +8 -3
- package/dist/cli.mjs +282 -654
- package/dist/cli.mjs.map +1 -1
- package/dist/gtfs/parser.d.ts +4 -10
- package/dist/gtfs/routes.d.ts +16 -2
- package/dist/gtfs/stops.d.ts +3 -13
- package/dist/gtfs/transfers.d.ts +2 -2
- package/dist/gtfs/trips.d.ts +12 -8
- package/dist/parser.cjs.js +257 -644
- package/dist/parser.cjs.js.map +1 -1
- package/dist/parser.esm.js +257 -644
- package/dist/parser.esm.js.map +1 -1
- package/dist/router.cjs.js +1 -1
- package/dist/router.cjs.js.map +1 -1
- package/dist/router.esm.js +1 -1
- package/dist/router.esm.js.map +1 -1
- package/dist/router.umd.js +1 -1
- package/dist/router.umd.js.map +1 -1
- package/dist/stops/io.d.ts +3 -3
- package/dist/stops/proto/stops.d.ts +1 -8
- package/dist/stops/stops.d.ts +0 -4
- package/dist/stops/stopsIndex.d.ts +3 -3
- package/dist/timetable/io.d.ts +6 -6
- package/dist/timetable/proto/timetable.d.ts +5 -27
- package/dist/timetable/route.d.ts +2 -11
- package/dist/timetable/timetable.d.ts +17 -9
- package/package.json +1 -1
- package/src/__e2e__/timetable/stops.bin +2 -2
- package/src/__e2e__/timetable/timetable.bin +2 -2
- package/src/cli/minotor.ts +3 -4
- package/src/gtfs/__tests__/parser.test.ts +5 -6
- package/src/gtfs/__tests__/routes.test.ts +0 -3
- package/src/gtfs/__tests__/stops.test.ts +1 -124
- package/src/gtfs/__tests__/transfers.test.ts +7 -7
- package/src/gtfs/__tests__/trips.test.ts +74 -45
- package/src/gtfs/parser.ts +32 -49
- package/src/gtfs/routes.ts +43 -5
- package/src/gtfs/stops.ts +2 -44
- package/src/gtfs/transfers.ts +2 -2
- package/src/gtfs/trips.ts +66 -43
- package/src/routing/__tests__/result.test.ts +48 -48
- package/src/routing/__tests__/router.test.ts +279 -363
- package/src/routing/router.ts +22 -8
- package/src/stops/__tests__/io.test.ts +25 -31
- package/src/stops/__tests__/stopFinder.test.ts +82 -103
- package/src/stops/io.ts +8 -17
- package/src/stops/proto/stops.proto +3 -3
- package/src/stops/proto/stops.ts +16 -120
- package/src/stops/stops.ts +0 -4
- package/src/stops/stopsIndex.ts +37 -41
- package/src/timetable/__tests__/io.test.ts +44 -54
- package/src/timetable/__tests__/route.test.ts +10 -29
- package/src/timetable/__tests__/timetable.test.ts +29 -37
- package/src/timetable/io.ts +66 -74
- package/src/timetable/proto/timetable.proto +7 -14
- package/src/timetable/proto/timetable.ts +49 -391
- package/src/timetable/route.ts +2 -32
- package/src/timetable/timetable.ts +51 -31
|
@@ -157,7 +157,7 @@ export interface Route {
|
|
|
157
157
|
* Format: [stop1, stop2, stop3, etc.]
|
|
158
158
|
*/
|
|
159
159
|
stops: Uint8Array;
|
|
160
|
-
serviceRouteId:
|
|
160
|
+
serviceRouteId: number;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
export interface Transfer {
|
|
@@ -166,40 +166,22 @@ export interface Transfer {
|
|
|
166
166
|
minTransferTime?: number | undefined;
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
export interface
|
|
170
|
-
stops: { [key: number]: StopsAdjacency_StopAdjacency };
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
export interface StopsAdjacency_StopAdjacency {
|
|
169
|
+
export interface StopAdjacency {
|
|
174
170
|
transfers: Transfer[];
|
|
175
171
|
routes: number[];
|
|
176
172
|
}
|
|
177
173
|
|
|
178
|
-
export interface StopsAdjacency_StopsEntry {
|
|
179
|
-
key: number;
|
|
180
|
-
value: StopsAdjacency_StopAdjacency | undefined;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
174
|
export interface ServiceRoute {
|
|
184
175
|
type: RouteType;
|
|
185
176
|
name: string;
|
|
186
177
|
routes: number[];
|
|
187
178
|
}
|
|
188
179
|
|
|
189
|
-
export interface ServiceRoutesMap {
|
|
190
|
-
routes: { [key: string]: ServiceRoute };
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export interface ServiceRoutesMap_RoutesEntry {
|
|
194
|
-
key: string;
|
|
195
|
-
value: ServiceRoute | undefined;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
180
|
export interface Timetable {
|
|
199
181
|
version: string;
|
|
200
|
-
stopsAdjacency:
|
|
182
|
+
stopsAdjacency: StopAdjacency[];
|
|
201
183
|
routesAdjacency: Route[];
|
|
202
|
-
|
|
184
|
+
serviceRoutes: ServiceRoute[];
|
|
203
185
|
}
|
|
204
186
|
|
|
205
187
|
function createBaseRoute(): Route {
|
|
@@ -207,7 +189,7 @@ function createBaseRoute(): Route {
|
|
|
207
189
|
stopTimes: new Uint8Array(0),
|
|
208
190
|
pickUpDropOffTypes: new Uint8Array(0),
|
|
209
191
|
stops: new Uint8Array(0),
|
|
210
|
-
serviceRouteId:
|
|
192
|
+
serviceRouteId: 0,
|
|
211
193
|
};
|
|
212
194
|
}
|
|
213
195
|
|
|
@@ -222,8 +204,8 @@ export const Route: MessageFns<Route> = {
|
|
|
222
204
|
if (message.stops.length !== 0) {
|
|
223
205
|
writer.uint32(26).bytes(message.stops);
|
|
224
206
|
}
|
|
225
|
-
if (message.serviceRouteId !==
|
|
226
|
-
writer.uint32(
|
|
207
|
+
if (message.serviceRouteId !== 0) {
|
|
208
|
+
writer.uint32(32).uint32(message.serviceRouteId);
|
|
227
209
|
}
|
|
228
210
|
return writer;
|
|
229
211
|
},
|
|
@@ -260,11 +242,11 @@ export const Route: MessageFns<Route> = {
|
|
|
260
242
|
continue;
|
|
261
243
|
}
|
|
262
244
|
case 4: {
|
|
263
|
-
if (tag !==
|
|
245
|
+
if (tag !== 32) {
|
|
264
246
|
break;
|
|
265
247
|
}
|
|
266
248
|
|
|
267
|
-
message.serviceRouteId = reader.
|
|
249
|
+
message.serviceRouteId = reader.uint32();
|
|
268
250
|
continue;
|
|
269
251
|
}
|
|
270
252
|
}
|
|
@@ -283,7 +265,7 @@ export const Route: MessageFns<Route> = {
|
|
|
283
265
|
? bytesFromBase64(object.pickUpDropOffTypes)
|
|
284
266
|
: new Uint8Array(0),
|
|
285
267
|
stops: isSet(object.stops) ? bytesFromBase64(object.stops) : new Uint8Array(0),
|
|
286
|
-
serviceRouteId: isSet(object.serviceRouteId) ? globalThis.
|
|
268
|
+
serviceRouteId: isSet(object.serviceRouteId) ? globalThis.Number(object.serviceRouteId) : 0,
|
|
287
269
|
};
|
|
288
270
|
},
|
|
289
271
|
|
|
@@ -298,8 +280,8 @@ export const Route: MessageFns<Route> = {
|
|
|
298
280
|
if (message.stops.length !== 0) {
|
|
299
281
|
obj.stops = base64FromBytes(message.stops);
|
|
300
282
|
}
|
|
301
|
-
if (message.serviceRouteId !==
|
|
302
|
-
obj.serviceRouteId = message.serviceRouteId;
|
|
283
|
+
if (message.serviceRouteId !== 0) {
|
|
284
|
+
obj.serviceRouteId = Math.round(message.serviceRouteId);
|
|
303
285
|
}
|
|
304
286
|
return obj;
|
|
305
287
|
},
|
|
@@ -312,7 +294,7 @@ export const Route: MessageFns<Route> = {
|
|
|
312
294
|
message.stopTimes = object.stopTimes ?? new Uint8Array(0);
|
|
313
295
|
message.pickUpDropOffTypes = object.pickUpDropOffTypes ?? new Uint8Array(0);
|
|
314
296
|
message.stops = object.stops ?? new Uint8Array(0);
|
|
315
|
-
message.serviceRouteId = object.serviceRouteId ??
|
|
297
|
+
message.serviceRouteId = object.serviceRouteId ?? 0;
|
|
316
298
|
return message;
|
|
317
299
|
},
|
|
318
300
|
};
|
|
@@ -409,109 +391,27 @@ export const Transfer: MessageFns<Transfer> = {
|
|
|
409
391
|
},
|
|
410
392
|
};
|
|
411
393
|
|
|
412
|
-
function
|
|
413
|
-
return { stops: {} };
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
export const StopsAdjacency: MessageFns<StopsAdjacency> = {
|
|
417
|
-
encode(message: StopsAdjacency, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
418
|
-
Object.entries(message.stops).forEach(([key, value]) => {
|
|
419
|
-
StopsAdjacency_StopsEntry.encode({ key: key as any, value }, writer.uint32(10).fork()).join();
|
|
420
|
-
});
|
|
421
|
-
return writer;
|
|
422
|
-
},
|
|
423
|
-
|
|
424
|
-
decode(input: BinaryReader | Uint8Array, length?: number): StopsAdjacency {
|
|
425
|
-
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
426
|
-
const end = length === undefined ? reader.len : reader.pos + length;
|
|
427
|
-
const message = createBaseStopsAdjacency();
|
|
428
|
-
while (reader.pos < end) {
|
|
429
|
-
const tag = reader.uint32();
|
|
430
|
-
switch (tag >>> 3) {
|
|
431
|
-
case 1: {
|
|
432
|
-
if (tag !== 10) {
|
|
433
|
-
break;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
const entry1 = StopsAdjacency_StopsEntry.decode(reader, reader.uint32());
|
|
437
|
-
if (entry1.value !== undefined) {
|
|
438
|
-
message.stops[entry1.key] = entry1.value;
|
|
439
|
-
}
|
|
440
|
-
continue;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
if ((tag & 7) === 4 || tag === 0) {
|
|
444
|
-
break;
|
|
445
|
-
}
|
|
446
|
-
reader.skip(tag & 7);
|
|
447
|
-
}
|
|
448
|
-
return message;
|
|
449
|
-
},
|
|
450
|
-
|
|
451
|
-
fromJSON(object: any): StopsAdjacency {
|
|
452
|
-
return {
|
|
453
|
-
stops: isObject(object.stops)
|
|
454
|
-
? Object.entries(object.stops).reduce<{ [key: number]: StopsAdjacency_StopAdjacency }>((acc, [key, value]) => {
|
|
455
|
-
acc[globalThis.Number(key)] = StopsAdjacency_StopAdjacency.fromJSON(value);
|
|
456
|
-
return acc;
|
|
457
|
-
}, {})
|
|
458
|
-
: {},
|
|
459
|
-
};
|
|
460
|
-
},
|
|
461
|
-
|
|
462
|
-
toJSON(message: StopsAdjacency): unknown {
|
|
463
|
-
const obj: any = {};
|
|
464
|
-
if (message.stops) {
|
|
465
|
-
const entries = Object.entries(message.stops);
|
|
466
|
-
if (entries.length > 0) {
|
|
467
|
-
obj.stops = {};
|
|
468
|
-
entries.forEach(([k, v]) => {
|
|
469
|
-
obj.stops[k] = StopsAdjacency_StopAdjacency.toJSON(v);
|
|
470
|
-
});
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
return obj;
|
|
474
|
-
},
|
|
475
|
-
|
|
476
|
-
create<I extends Exact<DeepPartial<StopsAdjacency>, I>>(base?: I): StopsAdjacency {
|
|
477
|
-
return StopsAdjacency.fromPartial(base ?? ({} as any));
|
|
478
|
-
},
|
|
479
|
-
fromPartial<I extends Exact<DeepPartial<StopsAdjacency>, I>>(object: I): StopsAdjacency {
|
|
480
|
-
const message = createBaseStopsAdjacency();
|
|
481
|
-
message.stops = Object.entries(object.stops ?? {}).reduce<{ [key: number]: StopsAdjacency_StopAdjacency }>(
|
|
482
|
-
(acc, [key, value]) => {
|
|
483
|
-
if (value !== undefined) {
|
|
484
|
-
acc[globalThis.Number(key)] = StopsAdjacency_StopAdjacency.fromPartial(value);
|
|
485
|
-
}
|
|
486
|
-
return acc;
|
|
487
|
-
},
|
|
488
|
-
{},
|
|
489
|
-
);
|
|
490
|
-
return message;
|
|
491
|
-
},
|
|
492
|
-
};
|
|
493
|
-
|
|
494
|
-
function createBaseStopsAdjacency_StopAdjacency(): StopsAdjacency_StopAdjacency {
|
|
394
|
+
function createBaseStopAdjacency(): StopAdjacency {
|
|
495
395
|
return { transfers: [], routes: [] };
|
|
496
396
|
}
|
|
497
397
|
|
|
498
|
-
export const
|
|
499
|
-
encode(message:
|
|
398
|
+
export const StopAdjacency: MessageFns<StopAdjacency> = {
|
|
399
|
+
encode(message: StopAdjacency, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
500
400
|
for (const v of message.transfers) {
|
|
501
401
|
Transfer.encode(v!, writer.uint32(10).fork()).join();
|
|
502
402
|
}
|
|
503
403
|
writer.uint32(18).fork();
|
|
504
404
|
for (const v of message.routes) {
|
|
505
|
-
writer.
|
|
405
|
+
writer.uint32(v);
|
|
506
406
|
}
|
|
507
407
|
writer.join();
|
|
508
408
|
return writer;
|
|
509
409
|
},
|
|
510
410
|
|
|
511
|
-
decode(input: BinaryReader | Uint8Array, length?: number):
|
|
411
|
+
decode(input: BinaryReader | Uint8Array, length?: number): StopAdjacency {
|
|
512
412
|
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
513
413
|
const end = length === undefined ? reader.len : reader.pos + length;
|
|
514
|
-
const message =
|
|
414
|
+
const message = createBaseStopAdjacency();
|
|
515
415
|
while (reader.pos < end) {
|
|
516
416
|
const tag = reader.uint32();
|
|
517
417
|
switch (tag >>> 3) {
|
|
@@ -525,7 +425,7 @@ export const StopsAdjacency_StopAdjacency: MessageFns<StopsAdjacency_StopAdjacen
|
|
|
525
425
|
}
|
|
526
426
|
case 2: {
|
|
527
427
|
if (tag === 16) {
|
|
528
|
-
message.routes.push(reader.
|
|
428
|
+
message.routes.push(reader.uint32());
|
|
529
429
|
|
|
530
430
|
continue;
|
|
531
431
|
}
|
|
@@ -533,7 +433,7 @@ export const StopsAdjacency_StopAdjacency: MessageFns<StopsAdjacency_StopAdjacen
|
|
|
533
433
|
if (tag === 18) {
|
|
534
434
|
const end2 = reader.uint32() + reader.pos;
|
|
535
435
|
while (reader.pos < end2) {
|
|
536
|
-
message.routes.push(reader.
|
|
436
|
+
message.routes.push(reader.uint32());
|
|
537
437
|
}
|
|
538
438
|
|
|
539
439
|
continue;
|
|
@@ -550,7 +450,7 @@ export const StopsAdjacency_StopAdjacency: MessageFns<StopsAdjacency_StopAdjacen
|
|
|
550
450
|
return message;
|
|
551
451
|
},
|
|
552
452
|
|
|
553
|
-
fromJSON(object: any):
|
|
453
|
+
fromJSON(object: any): StopAdjacency {
|
|
554
454
|
return {
|
|
555
455
|
transfers: globalThis.Array.isArray(object?.transfers)
|
|
556
456
|
? object.transfers.map((e: any) => Transfer.fromJSON(e))
|
|
@@ -559,7 +459,7 @@ export const StopsAdjacency_StopAdjacency: MessageFns<StopsAdjacency_StopAdjacen
|
|
|
559
459
|
};
|
|
560
460
|
},
|
|
561
461
|
|
|
562
|
-
toJSON(message:
|
|
462
|
+
toJSON(message: StopAdjacency): unknown {
|
|
563
463
|
const obj: any = {};
|
|
564
464
|
if (message.transfers?.length) {
|
|
565
465
|
obj.transfers = message.transfers.map((e) => Transfer.toJSON(e));
|
|
@@ -570,95 +470,17 @@ export const StopsAdjacency_StopAdjacency: MessageFns<StopsAdjacency_StopAdjacen
|
|
|
570
470
|
return obj;
|
|
571
471
|
},
|
|
572
472
|
|
|
573
|
-
create<I extends Exact<DeepPartial<
|
|
574
|
-
return
|
|
473
|
+
create<I extends Exact<DeepPartial<StopAdjacency>, I>>(base?: I): StopAdjacency {
|
|
474
|
+
return StopAdjacency.fromPartial(base ?? ({} as any));
|
|
575
475
|
},
|
|
576
|
-
fromPartial<I extends Exact<DeepPartial<
|
|
577
|
-
const message =
|
|
476
|
+
fromPartial<I extends Exact<DeepPartial<StopAdjacency>, I>>(object: I): StopAdjacency {
|
|
477
|
+
const message = createBaseStopAdjacency();
|
|
578
478
|
message.transfers = object.transfers?.map((e) => Transfer.fromPartial(e)) || [];
|
|
579
479
|
message.routes = object.routes?.map((e) => e) || [];
|
|
580
480
|
return message;
|
|
581
481
|
},
|
|
582
482
|
};
|
|
583
483
|
|
|
584
|
-
function createBaseStopsAdjacency_StopsEntry(): StopsAdjacency_StopsEntry {
|
|
585
|
-
return { key: 0, value: undefined };
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
export const StopsAdjacency_StopsEntry: MessageFns<StopsAdjacency_StopsEntry> = {
|
|
589
|
-
encode(message: StopsAdjacency_StopsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
590
|
-
if (message.key !== 0) {
|
|
591
|
-
writer.uint32(8).uint32(message.key);
|
|
592
|
-
}
|
|
593
|
-
if (message.value !== undefined) {
|
|
594
|
-
StopsAdjacency_StopAdjacency.encode(message.value, writer.uint32(18).fork()).join();
|
|
595
|
-
}
|
|
596
|
-
return writer;
|
|
597
|
-
},
|
|
598
|
-
|
|
599
|
-
decode(input: BinaryReader | Uint8Array, length?: number): StopsAdjacency_StopsEntry {
|
|
600
|
-
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
601
|
-
const end = length === undefined ? reader.len : reader.pos + length;
|
|
602
|
-
const message = createBaseStopsAdjacency_StopsEntry();
|
|
603
|
-
while (reader.pos < end) {
|
|
604
|
-
const tag = reader.uint32();
|
|
605
|
-
switch (tag >>> 3) {
|
|
606
|
-
case 1: {
|
|
607
|
-
if (tag !== 8) {
|
|
608
|
-
break;
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
message.key = reader.uint32();
|
|
612
|
-
continue;
|
|
613
|
-
}
|
|
614
|
-
case 2: {
|
|
615
|
-
if (tag !== 18) {
|
|
616
|
-
break;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
message.value = StopsAdjacency_StopAdjacency.decode(reader, reader.uint32());
|
|
620
|
-
continue;
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
if ((tag & 7) === 4 || tag === 0) {
|
|
624
|
-
break;
|
|
625
|
-
}
|
|
626
|
-
reader.skip(tag & 7);
|
|
627
|
-
}
|
|
628
|
-
return message;
|
|
629
|
-
},
|
|
630
|
-
|
|
631
|
-
fromJSON(object: any): StopsAdjacency_StopsEntry {
|
|
632
|
-
return {
|
|
633
|
-
key: isSet(object.key) ? globalThis.Number(object.key) : 0,
|
|
634
|
-
value: isSet(object.value) ? StopsAdjacency_StopAdjacency.fromJSON(object.value) : undefined,
|
|
635
|
-
};
|
|
636
|
-
},
|
|
637
|
-
|
|
638
|
-
toJSON(message: StopsAdjacency_StopsEntry): unknown {
|
|
639
|
-
const obj: any = {};
|
|
640
|
-
if (message.key !== 0) {
|
|
641
|
-
obj.key = Math.round(message.key);
|
|
642
|
-
}
|
|
643
|
-
if (message.value !== undefined) {
|
|
644
|
-
obj.value = StopsAdjacency_StopAdjacency.toJSON(message.value);
|
|
645
|
-
}
|
|
646
|
-
return obj;
|
|
647
|
-
},
|
|
648
|
-
|
|
649
|
-
create<I extends Exact<DeepPartial<StopsAdjacency_StopsEntry>, I>>(base?: I): StopsAdjacency_StopsEntry {
|
|
650
|
-
return StopsAdjacency_StopsEntry.fromPartial(base ?? ({} as any));
|
|
651
|
-
},
|
|
652
|
-
fromPartial<I extends Exact<DeepPartial<StopsAdjacency_StopsEntry>, I>>(object: I): StopsAdjacency_StopsEntry {
|
|
653
|
-
const message = createBaseStopsAdjacency_StopsEntry();
|
|
654
|
-
message.key = object.key ?? 0;
|
|
655
|
-
message.value = (object.value !== undefined && object.value !== null)
|
|
656
|
-
? StopsAdjacency_StopAdjacency.fromPartial(object.value)
|
|
657
|
-
: undefined;
|
|
658
|
-
return message;
|
|
659
|
-
},
|
|
660
|
-
};
|
|
661
|
-
|
|
662
484
|
function createBaseServiceRoute(): ServiceRoute {
|
|
663
485
|
return { type: 0, name: "", routes: [] };
|
|
664
486
|
}
|
|
@@ -673,7 +495,7 @@ export const ServiceRoute: MessageFns<ServiceRoute> = {
|
|
|
673
495
|
}
|
|
674
496
|
writer.uint32(26).fork();
|
|
675
497
|
for (const v of message.routes) {
|
|
676
|
-
writer.
|
|
498
|
+
writer.uint32(v);
|
|
677
499
|
}
|
|
678
500
|
writer.join();
|
|
679
501
|
return writer;
|
|
@@ -704,7 +526,7 @@ export const ServiceRoute: MessageFns<ServiceRoute> = {
|
|
|
704
526
|
}
|
|
705
527
|
case 3: {
|
|
706
528
|
if (tag === 24) {
|
|
707
|
-
message.routes.push(reader.
|
|
529
|
+
message.routes.push(reader.uint32());
|
|
708
530
|
|
|
709
531
|
continue;
|
|
710
532
|
}
|
|
@@ -712,7 +534,7 @@ export const ServiceRoute: MessageFns<ServiceRoute> = {
|
|
|
712
534
|
if (tag === 26) {
|
|
713
535
|
const end2 = reader.uint32() + reader.pos;
|
|
714
536
|
while (reader.pos < end2) {
|
|
715
|
-
message.routes.push(reader.
|
|
537
|
+
message.routes.push(reader.uint32());
|
|
716
538
|
}
|
|
717
539
|
|
|
718
540
|
continue;
|
|
@@ -763,168 +585,8 @@ export const ServiceRoute: MessageFns<ServiceRoute> = {
|
|
|
763
585
|
},
|
|
764
586
|
};
|
|
765
587
|
|
|
766
|
-
function createBaseServiceRoutesMap(): ServiceRoutesMap {
|
|
767
|
-
return { routes: {} };
|
|
768
|
-
}
|
|
769
|
-
|
|
770
|
-
export const ServiceRoutesMap: MessageFns<ServiceRoutesMap> = {
|
|
771
|
-
encode(message: ServiceRoutesMap, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
772
|
-
Object.entries(message.routes).forEach(([key, value]) => {
|
|
773
|
-
ServiceRoutesMap_RoutesEntry.encode({ key: key as any, value }, writer.uint32(10).fork()).join();
|
|
774
|
-
});
|
|
775
|
-
return writer;
|
|
776
|
-
},
|
|
777
|
-
|
|
778
|
-
decode(input: BinaryReader | Uint8Array, length?: number): ServiceRoutesMap {
|
|
779
|
-
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
780
|
-
const end = length === undefined ? reader.len : reader.pos + length;
|
|
781
|
-
const message = createBaseServiceRoutesMap();
|
|
782
|
-
while (reader.pos < end) {
|
|
783
|
-
const tag = reader.uint32();
|
|
784
|
-
switch (tag >>> 3) {
|
|
785
|
-
case 1: {
|
|
786
|
-
if (tag !== 10) {
|
|
787
|
-
break;
|
|
788
|
-
}
|
|
789
|
-
|
|
790
|
-
const entry1 = ServiceRoutesMap_RoutesEntry.decode(reader, reader.uint32());
|
|
791
|
-
if (entry1.value !== undefined) {
|
|
792
|
-
message.routes[entry1.key] = entry1.value;
|
|
793
|
-
}
|
|
794
|
-
continue;
|
|
795
|
-
}
|
|
796
|
-
}
|
|
797
|
-
if ((tag & 7) === 4 || tag === 0) {
|
|
798
|
-
break;
|
|
799
|
-
}
|
|
800
|
-
reader.skip(tag & 7);
|
|
801
|
-
}
|
|
802
|
-
return message;
|
|
803
|
-
},
|
|
804
|
-
|
|
805
|
-
fromJSON(object: any): ServiceRoutesMap {
|
|
806
|
-
return {
|
|
807
|
-
routes: isObject(object.routes)
|
|
808
|
-
? Object.entries(object.routes).reduce<{ [key: string]: ServiceRoute }>((acc, [key, value]) => {
|
|
809
|
-
acc[key] = ServiceRoute.fromJSON(value);
|
|
810
|
-
return acc;
|
|
811
|
-
}, {})
|
|
812
|
-
: {},
|
|
813
|
-
};
|
|
814
|
-
},
|
|
815
|
-
|
|
816
|
-
toJSON(message: ServiceRoutesMap): unknown {
|
|
817
|
-
const obj: any = {};
|
|
818
|
-
if (message.routes) {
|
|
819
|
-
const entries = Object.entries(message.routes);
|
|
820
|
-
if (entries.length > 0) {
|
|
821
|
-
obj.routes = {};
|
|
822
|
-
entries.forEach(([k, v]) => {
|
|
823
|
-
obj.routes[k] = ServiceRoute.toJSON(v);
|
|
824
|
-
});
|
|
825
|
-
}
|
|
826
|
-
}
|
|
827
|
-
return obj;
|
|
828
|
-
},
|
|
829
|
-
|
|
830
|
-
create<I extends Exact<DeepPartial<ServiceRoutesMap>, I>>(base?: I): ServiceRoutesMap {
|
|
831
|
-
return ServiceRoutesMap.fromPartial(base ?? ({} as any));
|
|
832
|
-
},
|
|
833
|
-
fromPartial<I extends Exact<DeepPartial<ServiceRoutesMap>, I>>(object: I): ServiceRoutesMap {
|
|
834
|
-
const message = createBaseServiceRoutesMap();
|
|
835
|
-
message.routes = Object.entries(object.routes ?? {}).reduce<{ [key: string]: ServiceRoute }>(
|
|
836
|
-
(acc, [key, value]) => {
|
|
837
|
-
if (value !== undefined) {
|
|
838
|
-
acc[key] = ServiceRoute.fromPartial(value);
|
|
839
|
-
}
|
|
840
|
-
return acc;
|
|
841
|
-
},
|
|
842
|
-
{},
|
|
843
|
-
);
|
|
844
|
-
return message;
|
|
845
|
-
},
|
|
846
|
-
};
|
|
847
|
-
|
|
848
|
-
function createBaseServiceRoutesMap_RoutesEntry(): ServiceRoutesMap_RoutesEntry {
|
|
849
|
-
return { key: "", value: undefined };
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
export const ServiceRoutesMap_RoutesEntry: MessageFns<ServiceRoutesMap_RoutesEntry> = {
|
|
853
|
-
encode(message: ServiceRoutesMap_RoutesEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
|
854
|
-
if (message.key !== "") {
|
|
855
|
-
writer.uint32(10).string(message.key);
|
|
856
|
-
}
|
|
857
|
-
if (message.value !== undefined) {
|
|
858
|
-
ServiceRoute.encode(message.value, writer.uint32(18).fork()).join();
|
|
859
|
-
}
|
|
860
|
-
return writer;
|
|
861
|
-
},
|
|
862
|
-
|
|
863
|
-
decode(input: BinaryReader | Uint8Array, length?: number): ServiceRoutesMap_RoutesEntry {
|
|
864
|
-
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
|
865
|
-
const end = length === undefined ? reader.len : reader.pos + length;
|
|
866
|
-
const message = createBaseServiceRoutesMap_RoutesEntry();
|
|
867
|
-
while (reader.pos < end) {
|
|
868
|
-
const tag = reader.uint32();
|
|
869
|
-
switch (tag >>> 3) {
|
|
870
|
-
case 1: {
|
|
871
|
-
if (tag !== 10) {
|
|
872
|
-
break;
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
message.key = reader.string();
|
|
876
|
-
continue;
|
|
877
|
-
}
|
|
878
|
-
case 2: {
|
|
879
|
-
if (tag !== 18) {
|
|
880
|
-
break;
|
|
881
|
-
}
|
|
882
|
-
|
|
883
|
-
message.value = ServiceRoute.decode(reader, reader.uint32());
|
|
884
|
-
continue;
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
if ((tag & 7) === 4 || tag === 0) {
|
|
888
|
-
break;
|
|
889
|
-
}
|
|
890
|
-
reader.skip(tag & 7);
|
|
891
|
-
}
|
|
892
|
-
return message;
|
|
893
|
-
},
|
|
894
|
-
|
|
895
|
-
fromJSON(object: any): ServiceRoutesMap_RoutesEntry {
|
|
896
|
-
return {
|
|
897
|
-
key: isSet(object.key) ? globalThis.String(object.key) : "",
|
|
898
|
-
value: isSet(object.value) ? ServiceRoute.fromJSON(object.value) : undefined,
|
|
899
|
-
};
|
|
900
|
-
},
|
|
901
|
-
|
|
902
|
-
toJSON(message: ServiceRoutesMap_RoutesEntry): unknown {
|
|
903
|
-
const obj: any = {};
|
|
904
|
-
if (message.key !== "") {
|
|
905
|
-
obj.key = message.key;
|
|
906
|
-
}
|
|
907
|
-
if (message.value !== undefined) {
|
|
908
|
-
obj.value = ServiceRoute.toJSON(message.value);
|
|
909
|
-
}
|
|
910
|
-
return obj;
|
|
911
|
-
},
|
|
912
|
-
|
|
913
|
-
create<I extends Exact<DeepPartial<ServiceRoutesMap_RoutesEntry>, I>>(base?: I): ServiceRoutesMap_RoutesEntry {
|
|
914
|
-
return ServiceRoutesMap_RoutesEntry.fromPartial(base ?? ({} as any));
|
|
915
|
-
},
|
|
916
|
-
fromPartial<I extends Exact<DeepPartial<ServiceRoutesMap_RoutesEntry>, I>>(object: I): ServiceRoutesMap_RoutesEntry {
|
|
917
|
-
const message = createBaseServiceRoutesMap_RoutesEntry();
|
|
918
|
-
message.key = object.key ?? "";
|
|
919
|
-
message.value = (object.value !== undefined && object.value !== null)
|
|
920
|
-
? ServiceRoute.fromPartial(object.value)
|
|
921
|
-
: undefined;
|
|
922
|
-
return message;
|
|
923
|
-
},
|
|
924
|
-
};
|
|
925
|
-
|
|
926
588
|
function createBaseTimetable(): Timetable {
|
|
927
|
-
return { version: "", stopsAdjacency:
|
|
589
|
+
return { version: "", stopsAdjacency: [], routesAdjacency: [], serviceRoutes: [] };
|
|
928
590
|
}
|
|
929
591
|
|
|
930
592
|
export const Timetable: MessageFns<Timetable> = {
|
|
@@ -932,14 +594,14 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
932
594
|
if (message.version !== "") {
|
|
933
595
|
writer.uint32(10).string(message.version);
|
|
934
596
|
}
|
|
935
|
-
|
|
936
|
-
|
|
597
|
+
for (const v of message.stopsAdjacency) {
|
|
598
|
+
StopAdjacency.encode(v!, writer.uint32(18).fork()).join();
|
|
937
599
|
}
|
|
938
600
|
for (const v of message.routesAdjacency) {
|
|
939
601
|
Route.encode(v!, writer.uint32(26).fork()).join();
|
|
940
602
|
}
|
|
941
|
-
|
|
942
|
-
|
|
603
|
+
for (const v of message.serviceRoutes) {
|
|
604
|
+
ServiceRoute.encode(v!, writer.uint32(34).fork()).join();
|
|
943
605
|
}
|
|
944
606
|
return writer;
|
|
945
607
|
},
|
|
@@ -964,7 +626,7 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
964
626
|
break;
|
|
965
627
|
}
|
|
966
628
|
|
|
967
|
-
message.stopsAdjacency
|
|
629
|
+
message.stopsAdjacency.push(StopAdjacency.decode(reader, reader.uint32()));
|
|
968
630
|
continue;
|
|
969
631
|
}
|
|
970
632
|
case 3: {
|
|
@@ -980,7 +642,7 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
980
642
|
break;
|
|
981
643
|
}
|
|
982
644
|
|
|
983
|
-
message.
|
|
645
|
+
message.serviceRoutes.push(ServiceRoute.decode(reader, reader.uint32()));
|
|
984
646
|
continue;
|
|
985
647
|
}
|
|
986
648
|
}
|
|
@@ -995,11 +657,15 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
995
657
|
fromJSON(object: any): Timetable {
|
|
996
658
|
return {
|
|
997
659
|
version: isSet(object.version) ? globalThis.String(object.version) : "",
|
|
998
|
-
stopsAdjacency:
|
|
660
|
+
stopsAdjacency: globalThis.Array.isArray(object?.stopsAdjacency)
|
|
661
|
+
? object.stopsAdjacency.map((e: any) => StopAdjacency.fromJSON(e))
|
|
662
|
+
: [],
|
|
999
663
|
routesAdjacency: globalThis.Array.isArray(object?.routesAdjacency)
|
|
1000
664
|
? object.routesAdjacency.map((e: any) => Route.fromJSON(e))
|
|
1001
665
|
: [],
|
|
1002
|
-
|
|
666
|
+
serviceRoutes: globalThis.Array.isArray(object?.serviceRoutes)
|
|
667
|
+
? object.serviceRoutes.map((e: any) => ServiceRoute.fromJSON(e))
|
|
668
|
+
: [],
|
|
1003
669
|
};
|
|
1004
670
|
},
|
|
1005
671
|
|
|
@@ -1008,14 +674,14 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
1008
674
|
if (message.version !== "") {
|
|
1009
675
|
obj.version = message.version;
|
|
1010
676
|
}
|
|
1011
|
-
if (message.stopsAdjacency
|
|
1012
|
-
obj.stopsAdjacency =
|
|
677
|
+
if (message.stopsAdjacency?.length) {
|
|
678
|
+
obj.stopsAdjacency = message.stopsAdjacency.map((e) => StopAdjacency.toJSON(e));
|
|
1013
679
|
}
|
|
1014
680
|
if (message.routesAdjacency?.length) {
|
|
1015
681
|
obj.routesAdjacency = message.routesAdjacency.map((e) => Route.toJSON(e));
|
|
1016
682
|
}
|
|
1017
|
-
if (message.
|
|
1018
|
-
obj.
|
|
683
|
+
if (message.serviceRoutes?.length) {
|
|
684
|
+
obj.serviceRoutes = message.serviceRoutes.map((e) => ServiceRoute.toJSON(e));
|
|
1019
685
|
}
|
|
1020
686
|
return obj;
|
|
1021
687
|
},
|
|
@@ -1026,13 +692,9 @@ export const Timetable: MessageFns<Timetable> = {
|
|
|
1026
692
|
fromPartial<I extends Exact<DeepPartial<Timetable>, I>>(object: I): Timetable {
|
|
1027
693
|
const message = createBaseTimetable();
|
|
1028
694
|
message.version = object.version ?? "";
|
|
1029
|
-
message.stopsAdjacency =
|
|
1030
|
-
? StopsAdjacency.fromPartial(object.stopsAdjacency)
|
|
1031
|
-
: undefined;
|
|
695
|
+
message.stopsAdjacency = object.stopsAdjacency?.map((e) => StopAdjacency.fromPartial(e)) || [];
|
|
1032
696
|
message.routesAdjacency = object.routesAdjacency?.map((e) => Route.fromPartial(e)) || [];
|
|
1033
|
-
message.
|
|
1034
|
-
? ServiceRoutesMap.fromPartial(object.routes)
|
|
1035
|
-
: undefined;
|
|
697
|
+
message.serviceRoutes = object.serviceRoutes?.map((e) => ServiceRoute.fromPartial(e)) || [];
|
|
1036
698
|
return message;
|
|
1037
699
|
},
|
|
1038
700
|
};
|
|
@@ -1074,10 +736,6 @@ type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
|
1074
736
|
export type Exact<P, I extends P> = P extends Builtin ? P
|
|
1075
737
|
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
|
|
1076
738
|
|
|
1077
|
-
function isObject(value: any): boolean {
|
|
1078
|
-
return typeof value === "object" && value !== null;
|
|
1079
|
-
}
|
|
1080
|
-
|
|
1081
739
|
function isSet(value: any): boolean {
|
|
1082
740
|
return value !== null && value !== undefined;
|
|
1083
741
|
}
|