minotor 3.0.1 → 4.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.
Files changed (82) hide show
  1. package/.cspell.json +12 -1
  2. package/.gitattributes +3 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +3 -0
  4. package/.github/workflows/minotor.yml +17 -1
  5. package/CHANGELOG.md +8 -3
  6. package/README.md +35 -14
  7. package/dist/__e2e__/router.test.d.ts +1 -0
  8. package/dist/cli/perf.d.ts +28 -0
  9. package/dist/cli/utils.d.ts +6 -2
  10. package/dist/cli.mjs +2130 -909
  11. package/dist/cli.mjs.map +1 -1
  12. package/dist/gtfs/trips.d.ts +7 -1
  13. package/dist/gtfs/utils.d.ts +1 -1
  14. package/dist/parser.cjs.js +1236 -755
  15. package/dist/parser.cjs.js.map +1 -1
  16. package/dist/parser.d.ts +4 -2
  17. package/dist/parser.esm.js +1236 -755
  18. package/dist/parser.esm.js.map +1 -1
  19. package/dist/router.cjs.js +1 -1
  20. package/dist/router.cjs.js.map +1 -1
  21. package/dist/router.d.ts +10 -5
  22. package/dist/router.esm.js +1 -1
  23. package/dist/router.esm.js.map +1 -1
  24. package/dist/router.umd.js +1 -1
  25. package/dist/router.umd.js.map +1 -1
  26. package/dist/routing/__tests__/result.test.d.ts +1 -0
  27. package/dist/routing/query.d.ts +27 -6
  28. package/dist/routing/result.d.ts +1 -1
  29. package/dist/routing/route.d.ts +47 -2
  30. package/dist/routing/router.d.ts +15 -1
  31. package/dist/stops/stopsIndex.d.ts +3 -3
  32. package/dist/timetable/__tests__/route.test.d.ts +1 -0
  33. package/dist/timetable/__tests__/time.test.d.ts +1 -0
  34. package/dist/timetable/io.d.ts +7 -1
  35. package/dist/timetable/proto/timetable.d.ts +3 -2
  36. package/dist/timetable/route.d.ts +157 -0
  37. package/dist/timetable/time.d.ts +21 -0
  38. package/dist/timetable/timetable.d.ts +42 -62
  39. package/package.json +36 -34
  40. package/src/__e2e__/benchmark.json +22 -0
  41. package/src/__e2e__/router.test.ts +209 -0
  42. package/src/__e2e__/timetable/stops.bin +3 -0
  43. package/src/__e2e__/timetable/timetable.bin +3 -0
  44. package/src/cli/minotor.ts +51 -1
  45. package/src/cli/perf.ts +136 -0
  46. package/src/cli/repl.ts +25 -13
  47. package/src/cli/utils.ts +6 -28
  48. package/src/gtfs/__tests__/parser.test.ts +12 -15
  49. package/src/gtfs/__tests__/services.test.ts +1 -0
  50. package/src/gtfs/__tests__/transfers.test.ts +0 -1
  51. package/src/gtfs/__tests__/trips.test.ts +56 -74
  52. package/src/gtfs/parser.ts +49 -9
  53. package/src/gtfs/profiles/ch.ts +1 -1
  54. package/src/gtfs/routes.ts +4 -4
  55. package/src/gtfs/services.ts +15 -2
  56. package/src/gtfs/stops.ts +7 -3
  57. package/src/gtfs/transfers.ts +6 -3
  58. package/src/gtfs/trips.ts +206 -108
  59. package/src/gtfs/utils.ts +13 -2
  60. package/src/parser.ts +4 -2
  61. package/src/router.ts +17 -11
  62. package/src/routing/__tests__/result.test.ts +392 -0
  63. package/src/routing/__tests__/router.test.ts +94 -137
  64. package/src/routing/query.ts +28 -7
  65. package/src/routing/result.ts +10 -5
  66. package/src/routing/route.ts +95 -9
  67. package/src/routing/router.ts +82 -66
  68. package/src/stops/__tests__/io.test.ts +1 -1
  69. package/src/stops/__tests__/stopFinder.test.ts +1 -1
  70. package/src/stops/proto/stops.ts +4 -4
  71. package/src/stops/stopsIndex.ts +3 -3
  72. package/src/timetable/__tests__/io.test.ts +16 -23
  73. package/src/timetable/__tests__/route.test.ts +325 -0
  74. package/src/timetable/__tests__/time.test.ts +494 -0
  75. package/src/timetable/__tests__/timetable.test.ts +60 -75
  76. package/src/timetable/io.ts +32 -26
  77. package/src/timetable/proto/timetable.proto +3 -2
  78. package/src/timetable/proto/timetable.ts +15 -14
  79. package/src/timetable/route.ts +361 -0
  80. package/src/timetable/time.ts +40 -8
  81. package/src/timetable/timetable.ts +75 -166
  82. package/tsconfig.build.json +1 -1
@@ -5,7 +5,13 @@ import { ParsedStopsMap } from './stops.js';
5
5
  import { TransfersMap } from './transfers.js';
6
6
  export type TripId = string;
7
7
  export type TripIdsMap = Map<TripId, ServiceRouteId>;
8
- export type GtfsPickupDropOffType = '' | 0 | 1 | 2 | 3;
8
+ export type GtfsPickupDropOffType = '' | '0' | '1' | '2' | '3';
9
+ export type SerializedPickUpDropOffType = 0 | 1 | 2 | 3;
10
+ /**
11
+ * Encodes pickup/drop-off types into a Uint8Array using 2 bits per value.
12
+ * Layout per byte: [drop_off_1][pickup_1][drop_off_0][pickup_0] for stops 0 and 1
13
+ */
14
+ export declare const encodePickUpDropOffTypes: (pickUpTypes: SerializedPickUpDropOffType[], dropOffTypes: SerializedPickUpDropOffType[]) => Uint8Array;
9
15
  /**
10
16
  * Parses the trips.txt file from a GTFS feed
11
17
  *
@@ -17,4 +17,4 @@ export declare const hashIds: (ids: number[]) => string;
17
17
  * @param stream The CSV stream.
18
18
  * @returns A parser from the csv-parse library.
19
19
  */
20
- export declare const parseCsv: (stream: NodeJS.ReadableStream) => Parser;
20
+ export declare const parseCsv: (stream: NodeJS.ReadableStream, numericColumns?: string[]) => Parser;