@ingissa/navcore-simulator 1.0.7 → 1.0.9

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 (169) hide show
  1. package/README.md +2 -0
  2. package/dist/index.d.mts +87 -0
  3. package/dist/{simulator/src/react-native/useSimulator.d.ts → index.d.ts} +37 -9
  4. package/dist/index.js +1393 -0
  5. package/dist/index.mjs +1383 -0
  6. package/dist/node.d.mts +527 -0
  7. package/dist/node.d.ts +527 -0
  8. package/dist/node.js +957 -0
  9. package/dist/node.mjs +949 -0
  10. package/dist/react-native.d.mts +4 -0
  11. package/dist/react-native.d.ts +4 -0
  12. package/dist/react-native.js +1393 -0
  13. package/dist/react-native.mjs +1383 -0
  14. package/package.json +19 -16
  15. package/dist/core/src/NavCore.d.ts +0 -142
  16. package/dist/core/src/NavCore.d.ts.map +0 -1
  17. package/dist/core/src/NavCore.js +0 -390
  18. package/dist/core/src/bearing/BearingEngine.d.ts +0 -24
  19. package/dist/core/src/bearing/BearingEngine.d.ts.map +0 -1
  20. package/dist/core/src/bearing/BearingEngine.js +0 -50
  21. package/dist/core/src/constants.d.ts +0 -34
  22. package/dist/core/src/constants.d.ts.map +0 -1
  23. package/dist/core/src/constants.js +0 -41
  24. package/dist/core/src/corridor/DeviationDetector.d.ts +0 -33
  25. package/dist/core/src/corridor/DeviationDetector.d.ts.map +0 -1
  26. package/dist/core/src/corridor/DeviationDetector.js +0 -83
  27. package/dist/core/src/corridor/DynamicCorridor.d.ts +0 -13
  28. package/dist/core/src/corridor/DynamicCorridor.d.ts.map +0 -1
  29. package/dist/core/src/corridor/DynamicCorridor.js +0 -26
  30. package/dist/core/src/dead-reckoning/DeadReckoning.d.ts +0 -35
  31. package/dist/core/src/dead-reckoning/DeadReckoning.d.ts.map +0 -1
  32. package/dist/core/src/dead-reckoning/DeadReckoning.js +0 -49
  33. package/dist/core/src/directions/DirectionsProvider.d.ts +0 -70
  34. package/dist/core/src/directions/DirectionsProvider.d.ts.map +0 -1
  35. package/dist/core/src/directions/DirectionsProvider.js +0 -7
  36. package/dist/core/src/directions/OSRMDirectionsProvider.d.ts +0 -26
  37. package/dist/core/src/directions/OSRMDirectionsProvider.d.ts.map +0 -1
  38. package/dist/core/src/directions/OSRMDirectionsProvider.js +0 -90
  39. package/dist/core/src/directions/OpenRouteServiceProvider.d.ts +0 -30
  40. package/dist/core/src/directions/OpenRouteServiceProvider.d.ts.map +0 -1
  41. package/dist/core/src/directions/OpenRouteServiceProvider.js +0 -111
  42. package/dist/core/src/directions/ValhallaDirectionsProvider.d.ts +0 -33
  43. package/dist/core/src/directions/ValhallaDirectionsProvider.d.ts.map +0 -1
  44. package/dist/core/src/directions/ValhallaDirectionsProvider.js +0 -155
  45. package/dist/core/src/eta/ETAEngine.d.ts +0 -61
  46. package/dist/core/src/eta/ETAEngine.d.ts.map +0 -1
  47. package/dist/core/src/eta/ETAEngine.js +0 -74
  48. package/dist/core/src/features.d.ts +0 -76
  49. package/dist/core/src/features.d.ts.map +0 -1
  50. package/dist/core/src/features.js +0 -76
  51. package/dist/core/src/geo/bearing.d.ts +0 -11
  52. package/dist/core/src/geo/bearing.d.ts.map +0 -1
  53. package/dist/core/src/geo/bearing.js +0 -25
  54. package/dist/core/src/geo/cumulative.d.ts +0 -9
  55. package/dist/core/src/geo/cumulative.d.ts.map +0 -1
  56. package/dist/core/src/geo/cumulative.js +0 -20
  57. package/dist/core/src/geo/haversine.d.ts +0 -13
  58. package/dist/core/src/geo/haversine.d.ts.map +0 -1
  59. package/dist/core/src/geo/haversine.js +0 -39
  60. package/dist/core/src/geo/projection.d.ts +0 -7
  61. package/dist/core/src/geo/projection.d.ts.map +0 -1
  62. package/dist/core/src/geo/projection.js +0 -17
  63. package/dist/core/src/geofencing/GeofencingEngine.d.ts +0 -93
  64. package/dist/core/src/geofencing/GeofencingEngine.d.ts.map +0 -1
  65. package/dist/core/src/geofencing/GeofencingEngine.js +0 -154
  66. package/dist/core/src/index.d.ts +0 -66
  67. package/dist/core/src/index.d.ts.map +0 -1
  68. package/dist/core/src/index.js +0 -62
  69. package/dist/core/src/kalman/KalmanFilter2D.d.ts +0 -46
  70. package/dist/core/src/kalman/KalmanFilter2D.d.ts.map +0 -1
  71. package/dist/core/src/kalman/KalmanFilter2D.js +0 -77
  72. package/dist/core/src/license/LicenseManager.d.ts +0 -40
  73. package/dist/core/src/license/LicenseManager.d.ts.map +0 -1
  74. package/dist/core/src/license/LicenseManager.js +0 -119
  75. package/dist/core/src/license/verifyP256Signature.d.ts +0 -2
  76. package/dist/core/src/license/verifyP256Signature.d.ts.map +0 -1
  77. package/dist/core/src/license/verifyP256Signature.js +0 -26
  78. package/dist/core/src/off-route/NavigationFSM.d.ts +0 -42
  79. package/dist/core/src/off-route/NavigationFSM.d.ts.map +0 -1
  80. package/dist/core/src/off-route/NavigationFSM.js +0 -56
  81. package/dist/core/src/off-route/OffRouteFSM.d.ts +0 -70
  82. package/dist/core/src/off-route/OffRouteFSM.d.ts.map +0 -1
  83. package/dist/core/src/off-route/OffRouteFSM.js +0 -151
  84. package/dist/core/src/predictor/RouteOffsetPredictor.d.ts +0 -24
  85. package/dist/core/src/predictor/RouteOffsetPredictor.d.ts.map +0 -1
  86. package/dist/core/src/predictor/RouteOffsetPredictor.js +0 -55
  87. package/dist/core/src/progress/InstructionEditor.d.ts +0 -77
  88. package/dist/core/src/progress/InstructionEditor.d.ts.map +0 -1
  89. package/dist/core/src/progress/InstructionEditor.js +0 -151
  90. package/dist/core/src/progress/InstructionResolver.d.ts +0 -25
  91. package/dist/core/src/progress/InstructionResolver.d.ts.map +0 -1
  92. package/dist/core/src/progress/InstructionResolver.js +0 -78
  93. package/dist/core/src/progress/ProgressTracker.d.ts +0 -12
  94. package/dist/core/src/progress/ProgressTracker.d.ts.map +0 -1
  95. package/dist/core/src/progress/ProgressTracker.js +0 -22
  96. package/dist/core/src/renderer/MapRendererAdapter.d.ts +0 -72
  97. package/dist/core/src/renderer/MapRendererAdapter.d.ts.map +0 -1
  98. package/dist/core/src/renderer/MapRendererAdapter.js +0 -19
  99. package/dist/core/src/route-builder/CustomRouteBuilder.d.ts +0 -83
  100. package/dist/core/src/route-builder/CustomRouteBuilder.d.ts.map +0 -1
  101. package/dist/core/src/route-builder/CustomRouteBuilder.js +0 -160
  102. package/dist/core/src/route-plan/RoutePlan.d.ts +0 -38
  103. package/dist/core/src/route-plan/RoutePlan.d.ts.map +0 -1
  104. package/dist/core/src/route-plan/RoutePlan.js +0 -102
  105. package/dist/core/src/session/NavigationSession.d.ts +0 -81
  106. package/dist/core/src/session/NavigationSession.d.ts.map +0 -1
  107. package/dist/core/src/session/NavigationSession.js +0 -115
  108. package/dist/core/src/snapper/ParallelRoadResolver.d.ts +0 -86
  109. package/dist/core/src/snapper/ParallelRoadResolver.d.ts.map +0 -1
  110. package/dist/core/src/snapper/ParallelRoadResolver.js +0 -83
  111. package/dist/core/src/snapper/RouteSnapper.d.ts +0 -38
  112. package/dist/core/src/snapper/RouteSnapper.d.ts.map +0 -1
  113. package/dist/core/src/snapper/RouteSnapper.js +0 -80
  114. package/dist/core/src/voice/VoiceTriggerEngine.d.ts +0 -80
  115. package/dist/core/src/voice/VoiceTriggerEngine.d.ts.map +0 -1
  116. package/dist/core/src/voice/VoiceTriggerEngine.js +0 -108
  117. package/dist/simulator/src/core/NoiseEngine.d.ts +0 -46
  118. package/dist/simulator/src/core/NoiseEngine.d.ts.map +0 -1
  119. package/dist/simulator/src/core/NoiseEngine.js +0 -106
  120. package/dist/simulator/src/core/RouteWalker.d.ts +0 -78
  121. package/dist/simulator/src/core/RouteWalker.d.ts.map +0 -1
  122. package/dist/simulator/src/core/RouteWalker.js +0 -180
  123. package/dist/simulator/src/core/SimulatorEngine.d.ts +0 -53
  124. package/dist/simulator/src/core/SimulatorEngine.d.ts.map +0 -1
  125. package/dist/simulator/src/core/SimulatorEngine.js +0 -298
  126. package/dist/simulator/src/core/types.d.ts +0 -157
  127. package/dist/simulator/src/core/types.d.ts.map +0 -1
  128. package/dist/simulator/src/core/types.js +0 -7
  129. package/dist/simulator/src/fleet/FleetSimulator.d.ts +0 -60
  130. package/dist/simulator/src/fleet/FleetSimulator.d.ts.map +0 -1
  131. package/dist/simulator/src/fleet/FleetSimulator.js +0 -114
  132. package/dist/simulator/src/index.d.ts +0 -28
  133. package/dist/simulator/src/index.d.ts.map +0 -1
  134. package/dist/simulator/src/index.js +0 -29
  135. package/dist/simulator/src/node.d.ts +0 -26
  136. package/dist/simulator/src/node.d.ts.map +0 -1
  137. package/dist/simulator/src/node.js +0 -25
  138. package/dist/simulator/src/react-native/SimulatorControls.d.ts +0 -35
  139. package/dist/simulator/src/react-native/SimulatorControls.d.ts.map +0 -1
  140. package/dist/simulator/src/react-native/SimulatorControls.js +0 -254
  141. package/dist/simulator/src/react-native/useSimulator.d.ts.map +0 -1
  142. package/dist/simulator/src/react-native/useSimulator.js +0 -100
  143. package/dist/simulator/src/replay/GpxParser.d.ts +0 -40
  144. package/dist/simulator/src/replay/GpxParser.d.ts.map +0 -1
  145. package/dist/simulator/src/replay/GpxParser.js +0 -95
  146. package/dist/simulator/src/replay/SessionRecorder.d.ts +0 -37
  147. package/dist/simulator/src/replay/SessionRecorder.d.ts.map +0 -1
  148. package/dist/simulator/src/replay/SessionRecorder.js +0 -120
  149. package/dist/simulator/src/scenarios/ScenarioInjector.d.ts +0 -55
  150. package/dist/simulator/src/scenarios/ScenarioInjector.d.ts.map +0 -1
  151. package/dist/simulator/src/scenarios/ScenarioInjector.js +0 -150
  152. package/src/__tests__/integration/simulator-pipeline.test.ts +0 -233
  153. package/src/core/NoiseEngine.ts +0 -137
  154. package/src/core/RouteWalker.ts +0 -227
  155. package/src/core/SimulatorEngine.ts +0 -364
  156. package/src/core/__tests__/NoiseEngine.test.ts +0 -131
  157. package/src/core/__tests__/RouteWalker.test.ts +0 -139
  158. package/src/core/__tests__/SimulatorEngine.test.ts +0 -317
  159. package/src/core/types.ts +0 -191
  160. package/src/fleet/FleetSimulator.ts +0 -162
  161. package/src/index.ts +0 -54
  162. package/src/node.ts +0 -48
  163. package/src/react-native/SimulatorControls.tsx +0 -473
  164. package/src/react-native/useSimulator.ts +0 -155
  165. package/src/replay/GpxParser.ts +0 -122
  166. package/src/replay/SessionRecorder.ts +0 -138
  167. package/src/replay/__tests__/GpxParser.test.ts +0 -136
  168. package/src/scenarios/ScenarioInjector.ts +0 -170
  169. package/src/scenarios/__tests__/ScenarioInjector.test.ts +0 -171
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @ingissa/navcore-simulator
2
2
 
3
+ [Site officiel](https://navcore-web.vercel.app/)
4
+
3
5
  > Headless GPS simulation engine for the NavCore ecosystem.
4
6
  > Works in **Node.js** (CI), **React Native**, and any JavaScript environment.
5
7
 
@@ -0,0 +1,87 @@
1
+ import { SimSession, SimulatorConfig, Scenario, SimPosition, SimLocationObject } from './node.mjs';
2
+ export { Coordinate, EngineState, ExportFormat, FleetReport, FleetSimulator, GpxParseResult, GpxParser, NoiseEngine, NoiseProfile, RouteWalker, ScenarioInjector, SessionRecorder, SimLocationCoords, SimulatorEngine, VehicleProfile, WalkerPosition } from './node.mjs';
3
+ import { Coordinate } from '@ingissa/navcore-core';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+
6
+ /**
7
+ * useSimulator — React Native hook wrapping SimulatorEngine.
8
+ *
9
+ * Drop-in replacement for useGpsSimulator.
10
+ * All engine logic lives in SimulatorEngine — this hook is purely a thin
11
+ * React adapter with no business logic of its own.
12
+ *
13
+ * BEFORE (current Go4Exams code):
14
+ * const simGps = useGpsSimulator(route, isNavigating, speedMultiplier)
15
+ *
16
+ * AFTER:
17
+ * const { position, controls, session, isRecording } = useSimulator({
18
+ * routeGeometry: route,
19
+ * active: isNavigating,
20
+ * config: { speedKmh: 50, noiseProfile: NoiseEngine.STANDARD },
21
+ * })
22
+ */
23
+
24
+ interface UseSimulatorOptions {
25
+ /** Route geometry to simulate along */
26
+ routeGeometry: Coordinate[] | null;
27
+ /** Whether the simulation should be active */
28
+ active: boolean;
29
+ /** Engine configuration (all fields optional) */
30
+ config?: Partial<Omit<SimulatorConfig, 'routeGeometry' | 'onPositionUpdate' | 'onRouteComplete'>>;
31
+ /** Pre-registered scenarios */
32
+ scenarios?: Scenario[];
33
+ /** Called when a scenario fires */
34
+ onScenarioFired?: (scenario: Scenario) => void;
35
+ /** Called when the route simulation finishes */
36
+ onRouteComplete?: () => void;
37
+ }
38
+ interface SimulatorControls$1 {
39
+ pause: () => void;
40
+ resume: () => void;
41
+ seek: (geometryIndex: number) => void;
42
+ setSpeed: (multiplier: 1 | 2 | 4 | 8) => void;
43
+ }
44
+ interface SessionControls {
45
+ start: (sessionId?: string) => void;
46
+ stop: () => SimSession | null;
47
+ }
48
+ interface UseSimulatorResult {
49
+ /** Current simulated position — null when inactive */
50
+ position: SimPosition | null;
51
+ /** Conforms to Expo LocationObject (null when inactive) */
52
+ location: SimLocationObject | null;
53
+ /** Alias for location conforming to Expo LocationObject */
54
+ rawLocation: SimLocationObject | null;
55
+ /** Playback controls */
56
+ controls: SimulatorControls$1;
57
+ /** Recording controls */
58
+ session: SessionControls;
59
+ /** Whether a recording is in progress */
60
+ isRecording: boolean;
61
+ }
62
+ declare function useSimulator(options: UseSimulatorOptions): UseSimulatorResult;
63
+
64
+ interface ScenarioLogEntry {
65
+ ts: number;
66
+ name: string;
67
+ type: string;
68
+ }
69
+ interface SimulatorControlsProps {
70
+ simulator: SimulatorControls$1;
71
+ session?: SessionControls;
72
+ style?: 'minimal' | 'full' | 'floating';
73
+ showScenarioLog?: boolean;
74
+ showSessionRecorder?: boolean;
75
+ scenarioLog?: ScenarioLogEntry[];
76
+ /** Current speed multiplier (controlled externally) */
77
+ currentSpeed?: 1 | 2 | 4 | 8;
78
+ /** Current engine state */
79
+ engineState?: 'idle' | 'running' | 'paused' | 'complete';
80
+ isRecording?: boolean;
81
+ onExportSession?: (session: SimSession) => void;
82
+ /** Additional style for the root container */
83
+ containerStyle?: object;
84
+ }
85
+ declare function SimulatorControls({ simulator, session, style, showScenarioLog, showSessionRecorder, scenarioLog, currentSpeed, engineState, isRecording, onExportSession, containerStyle, }: SimulatorControlsProps): react_jsx_runtime.JSX.Element;
86
+
87
+ export { Scenario, type ScenarioLogEntry, SimLocationObject, SimPosition, SimSession, SimulatorConfig, SimulatorControls, useSimulator };
@@ -1,3 +1,8 @@
1
+ import { SimSession, SimulatorConfig, Scenario, SimPosition, SimLocationObject } from './node.js';
2
+ export { Coordinate, EngineState, ExportFormat, FleetReport, FleetSimulator, GpxParseResult, GpxParser, NoiseEngine, NoiseProfile, RouteWalker, ScenarioInjector, SessionRecorder, SimLocationCoords, SimulatorEngine, VehicleProfile, WalkerPosition } from './node.js';
3
+ import { Coordinate } from '@ingissa/navcore-core';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+
1
6
  /**
2
7
  * useSimulator — React Native hook wrapping SimulatorEngine.
3
8
  *
@@ -15,9 +20,8 @@
15
20
  * config: { speedKmh: 50, noiseProfile: NoiseEngine.STANDARD },
16
21
  * })
17
22
  */
18
- import type { SimPosition, SimulatorConfig, SimSession, Scenario, SimLocationObject } from '../core/types';
19
- import type { Coordinate } from '@ingissa/navcore-core';
20
- export interface UseSimulatorOptions {
23
+
24
+ interface UseSimulatorOptions {
21
25
  /** Route geometry to simulate along */
22
26
  routeGeometry: Coordinate[] | null;
23
27
  /** Whether the simulation should be active */
@@ -31,17 +35,17 @@ export interface UseSimulatorOptions {
31
35
  /** Called when the route simulation finishes */
32
36
  onRouteComplete?: () => void;
33
37
  }
34
- export interface SimulatorControls {
38
+ interface SimulatorControls$1 {
35
39
  pause: () => void;
36
40
  resume: () => void;
37
41
  seek: (geometryIndex: number) => void;
38
42
  setSpeed: (multiplier: 1 | 2 | 4 | 8) => void;
39
43
  }
40
- export interface SessionControls {
44
+ interface SessionControls {
41
45
  start: (sessionId?: string) => void;
42
46
  stop: () => SimSession | null;
43
47
  }
44
- export interface UseSimulatorResult {
48
+ interface UseSimulatorResult {
45
49
  /** Current simulated position — null when inactive */
46
50
  position: SimPosition | null;
47
51
  /** Conforms to Expo LocationObject (null when inactive) */
@@ -49,11 +53,35 @@ export interface UseSimulatorResult {
49
53
  /** Alias for location conforming to Expo LocationObject */
50
54
  rawLocation: SimLocationObject | null;
51
55
  /** Playback controls */
52
- controls: SimulatorControls;
56
+ controls: SimulatorControls$1;
53
57
  /** Recording controls */
54
58
  session: SessionControls;
55
59
  /** Whether a recording is in progress */
56
60
  isRecording: boolean;
57
61
  }
58
- export declare function useSimulator(options: UseSimulatorOptions): UseSimulatorResult;
59
- //# sourceMappingURL=useSimulator.d.ts.map
62
+ declare function useSimulator(options: UseSimulatorOptions): UseSimulatorResult;
63
+
64
+ interface ScenarioLogEntry {
65
+ ts: number;
66
+ name: string;
67
+ type: string;
68
+ }
69
+ interface SimulatorControlsProps {
70
+ simulator: SimulatorControls$1;
71
+ session?: SessionControls;
72
+ style?: 'minimal' | 'full' | 'floating';
73
+ showScenarioLog?: boolean;
74
+ showSessionRecorder?: boolean;
75
+ scenarioLog?: ScenarioLogEntry[];
76
+ /** Current speed multiplier (controlled externally) */
77
+ currentSpeed?: 1 | 2 | 4 | 8;
78
+ /** Current engine state */
79
+ engineState?: 'idle' | 'running' | 'paused' | 'complete';
80
+ isRecording?: boolean;
81
+ onExportSession?: (session: SimSession) => void;
82
+ /** Additional style for the root container */
83
+ containerStyle?: object;
84
+ }
85
+ declare function SimulatorControls({ simulator, session, style, showScenarioLog, showSessionRecorder, scenarioLog, currentSpeed, engineState, isRecording, onExportSession, containerStyle, }: SimulatorControlsProps): react_jsx_runtime.JSX.Element;
86
+
87
+ export { Scenario, type ScenarioLogEntry, SimLocationObject, SimPosition, SimSession, SimulatorConfig, SimulatorControls, useSimulator };