@ingissa/navcore-react-native 1.0.4 → 1.0.8

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 +3 -0
  2. package/dist/core/src/NavCore.d.ts +142 -0
  3. package/dist/core/src/NavCore.d.ts.map +1 -0
  4. package/dist/core/src/NavCore.js +390 -0
  5. package/dist/core/src/bearing/BearingEngine.d.ts +24 -0
  6. package/dist/core/src/bearing/BearingEngine.d.ts.map +1 -0
  7. package/dist/core/src/bearing/BearingEngine.js +50 -0
  8. package/dist/core/src/constants.d.ts +34 -0
  9. package/dist/core/src/constants.d.ts.map +1 -0
  10. package/dist/core/src/constants.js +41 -0
  11. package/dist/core/src/corridor/DeviationDetector.d.ts +33 -0
  12. package/dist/core/src/corridor/DeviationDetector.d.ts.map +1 -0
  13. package/dist/core/src/corridor/DeviationDetector.js +83 -0
  14. package/dist/core/src/corridor/DynamicCorridor.d.ts +13 -0
  15. package/dist/core/src/corridor/DynamicCorridor.d.ts.map +1 -0
  16. package/dist/core/src/corridor/DynamicCorridor.js +26 -0
  17. package/dist/core/src/dead-reckoning/DeadReckoning.d.ts +35 -0
  18. package/dist/core/src/dead-reckoning/DeadReckoning.d.ts.map +1 -0
  19. package/dist/core/src/dead-reckoning/DeadReckoning.js +49 -0
  20. package/dist/core/src/directions/DirectionsProvider.d.ts +70 -0
  21. package/dist/core/src/directions/DirectionsProvider.d.ts.map +1 -0
  22. package/dist/core/src/directions/DirectionsProvider.js +7 -0
  23. package/dist/core/src/directions/OSRMDirectionsProvider.d.ts +26 -0
  24. package/dist/core/src/directions/OSRMDirectionsProvider.d.ts.map +1 -0
  25. package/dist/core/src/directions/OSRMDirectionsProvider.js +90 -0
  26. package/dist/core/src/directions/OpenRouteServiceProvider.d.ts +30 -0
  27. package/dist/core/src/directions/OpenRouteServiceProvider.d.ts.map +1 -0
  28. package/dist/core/src/directions/OpenRouteServiceProvider.js +111 -0
  29. package/dist/core/src/directions/ValhallaDirectionsProvider.d.ts +33 -0
  30. package/dist/core/src/directions/ValhallaDirectionsProvider.d.ts.map +1 -0
  31. package/dist/core/src/directions/ValhallaDirectionsProvider.js +155 -0
  32. package/dist/core/src/eta/ETAEngine.d.ts +61 -0
  33. package/dist/core/src/eta/ETAEngine.d.ts.map +1 -0
  34. package/dist/core/src/eta/ETAEngine.js +74 -0
  35. package/dist/core/src/features.d.ts +76 -0
  36. package/dist/core/src/features.d.ts.map +1 -0
  37. package/dist/core/src/features.js +76 -0
  38. package/dist/core/src/geo/bearing.d.ts +11 -0
  39. package/dist/core/src/geo/bearing.d.ts.map +1 -0
  40. package/dist/core/src/geo/bearing.js +25 -0
  41. package/dist/core/src/geo/cumulative.d.ts +9 -0
  42. package/dist/core/src/geo/cumulative.d.ts.map +1 -0
  43. package/dist/core/src/geo/cumulative.js +20 -0
  44. package/dist/core/src/geo/haversine.d.ts +13 -0
  45. package/dist/core/src/geo/haversine.d.ts.map +1 -0
  46. package/dist/core/src/geo/haversine.js +39 -0
  47. package/dist/core/src/geo/projection.d.ts +7 -0
  48. package/dist/core/src/geo/projection.d.ts.map +1 -0
  49. package/dist/core/src/geo/projection.js +17 -0
  50. package/dist/core/src/geofencing/GeofencingEngine.d.ts +93 -0
  51. package/dist/core/src/geofencing/GeofencingEngine.d.ts.map +1 -0
  52. package/dist/core/src/geofencing/GeofencingEngine.js +154 -0
  53. package/dist/core/src/index.d.ts +66 -0
  54. package/dist/core/src/index.d.ts.map +1 -0
  55. package/dist/core/src/index.js +62 -0
  56. package/dist/core/src/kalman/KalmanFilter2D.d.ts +46 -0
  57. package/dist/core/src/kalman/KalmanFilter2D.d.ts.map +1 -0
  58. package/dist/core/src/kalman/KalmanFilter2D.js +77 -0
  59. package/dist/core/src/license/LicenseManager.d.ts +40 -0
  60. package/dist/core/src/license/LicenseManager.d.ts.map +1 -0
  61. package/dist/core/src/license/LicenseManager.js +119 -0
  62. package/dist/core/src/license/verifyP256Signature.d.ts +2 -0
  63. package/dist/core/src/license/verifyP256Signature.d.ts.map +1 -0
  64. package/dist/core/src/license/verifyP256Signature.js +26 -0
  65. package/dist/core/src/off-route/NavigationFSM.d.ts +42 -0
  66. package/dist/core/src/off-route/NavigationFSM.d.ts.map +1 -0
  67. package/dist/core/src/off-route/NavigationFSM.js +56 -0
  68. package/dist/core/src/off-route/OffRouteFSM.d.ts +70 -0
  69. package/dist/core/src/off-route/OffRouteFSM.d.ts.map +1 -0
  70. package/dist/core/src/off-route/OffRouteFSM.js +151 -0
  71. package/dist/core/src/predictor/RouteOffsetPredictor.d.ts +24 -0
  72. package/dist/core/src/predictor/RouteOffsetPredictor.d.ts.map +1 -0
  73. package/dist/core/src/predictor/RouteOffsetPredictor.js +55 -0
  74. package/dist/core/src/progress/InstructionEditor.d.ts +77 -0
  75. package/dist/core/src/progress/InstructionEditor.d.ts.map +1 -0
  76. package/dist/core/src/progress/InstructionEditor.js +151 -0
  77. package/dist/core/src/progress/InstructionResolver.d.ts +25 -0
  78. package/dist/core/src/progress/InstructionResolver.d.ts.map +1 -0
  79. package/dist/core/src/progress/InstructionResolver.js +78 -0
  80. package/dist/core/src/progress/ProgressTracker.d.ts +12 -0
  81. package/dist/core/src/progress/ProgressTracker.d.ts.map +1 -0
  82. package/dist/core/src/progress/ProgressTracker.js +22 -0
  83. package/dist/core/src/renderer/MapRendererAdapter.d.ts +72 -0
  84. package/dist/core/src/renderer/MapRendererAdapter.d.ts.map +1 -0
  85. package/dist/core/src/renderer/MapRendererAdapter.js +19 -0
  86. package/dist/core/src/route-builder/CustomRouteBuilder.d.ts +83 -0
  87. package/dist/core/src/route-builder/CustomRouteBuilder.d.ts.map +1 -0
  88. package/dist/core/src/route-builder/CustomRouteBuilder.js +160 -0
  89. package/dist/core/src/route-plan/RoutePlan.d.ts +38 -0
  90. package/dist/core/src/route-plan/RoutePlan.d.ts.map +1 -0
  91. package/dist/core/src/route-plan/RoutePlan.js +102 -0
  92. package/dist/core/src/session/NavigationSession.d.ts +81 -0
  93. package/dist/core/src/session/NavigationSession.d.ts.map +1 -0
  94. package/dist/core/src/session/NavigationSession.js +115 -0
  95. package/dist/core/src/snapper/ParallelRoadResolver.d.ts +86 -0
  96. package/dist/core/src/snapper/ParallelRoadResolver.d.ts.map +1 -0
  97. package/dist/core/src/snapper/ParallelRoadResolver.js +83 -0
  98. package/dist/core/src/snapper/RouteSnapper.d.ts +38 -0
  99. package/dist/core/src/snapper/RouteSnapper.d.ts.map +1 -0
  100. package/dist/core/src/snapper/RouteSnapper.js +80 -0
  101. package/dist/core/src/voice/VoiceTriggerEngine.d.ts +80 -0
  102. package/dist/core/src/voice/VoiceTriggerEngine.d.ts.map +1 -0
  103. package/dist/core/src/voice/VoiceTriggerEngine.js +108 -0
  104. package/dist/react-native/src/NavCoreProvider.d.ts +33 -0
  105. package/dist/react-native/src/NavCoreProvider.d.ts.map +1 -0
  106. package/dist/react-native/src/NavCoreProvider.js +41 -0
  107. package/dist/react-native/src/index.d.ts +10 -0
  108. package/dist/react-native/src/index.d.ts.map +1 -0
  109. package/dist/react-native/src/index.js +8 -0
  110. package/dist/{index.d.mts → react-native/src/useNavCore.d.ts} +12 -39
  111. package/dist/react-native/src/useNavCore.d.ts.map +1 -0
  112. package/dist/react-native/src/useNavCore.js +119 -0
  113. package/dist/react-native/src/useNavSelectors.d.ts +42 -0
  114. package/dist/react-native/src/useNavSelectors.d.ts.map +1 -0
  115. package/dist/react-native/src/useNavSelectors.js +103 -0
  116. package/package.json +20 -12
  117. package/src/NavCoreProvider.tsx +59 -0
  118. package/src/index.ts +18 -0
  119. package/src/useNavCore.ts +208 -0
  120. package/src/useNavSelectors.ts +143 -0
  121. package/dist/index.d.ts +0 -87
  122. package/dist/index.js +0 -161
  123. package/dist/index.mjs +0 -157
package/dist/index.js DELETED
@@ -1,161 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
- var navcoreCore = require('@ingissa/navcore-core');
5
- var jsxRuntime = require('react/jsx-runtime');
6
-
7
- // src/useNavCore.ts
8
- function useNavCore({
9
- gpsCoord,
10
- gpsBearing,
11
- gpsAccuracy,
12
- gpsTimestamp,
13
- speed,
14
- routeGeometry,
15
- instructions,
16
- isNavigating,
17
- options,
18
- resumeAtIndex,
19
- outputRef,
20
- onDeviation,
21
- onRejoin,
22
- onInstruction,
23
- onArrival,
24
- pollRateHz = 30
25
- }) {
26
- const navRef = react.useRef(null);
27
- if (!navRef.current) {
28
- navRef.current = new navcoreCore.NavCore(options);
29
- }
30
- const engine = navRef.current;
31
- const [state, setState] = react.useState(() => engine.getState());
32
- react.useEffect(() => {
33
- if (!onDeviation) return;
34
- const handler = (data) => onDeviation(data);
35
- engine.on("deviation", handler);
36
- return () => {
37
- engine.off("deviation", handler);
38
- };
39
- }, [engine, onDeviation]);
40
- react.useEffect(() => {
41
- if (!onRejoin) return;
42
- const handler = (data) => onRejoin(data);
43
- engine.on("rejoined", handler);
44
- return () => {
45
- engine.off("rejoined", handler);
46
- };
47
- }, [engine, onRejoin]);
48
- react.useEffect(() => {
49
- if (!onInstruction) return;
50
- const handler = (data) => onInstruction(data);
51
- engine.on("instruction", handler);
52
- return () => {
53
- engine.off("instruction", handler);
54
- };
55
- }, [engine, onInstruction]);
56
- react.useEffect(() => {
57
- if (!onArrival) return;
58
- const handler = () => onArrival();
59
- engine.on("arrival", handler);
60
- return () => {
61
- engine.off("arrival", handler);
62
- };
63
- }, [engine, onArrival]);
64
- react.useEffect(() => {
65
- if (routeGeometry && routeGeometry.length >= 2) {
66
- engine.setRoute(routeGeometry, instructions);
67
- setState(engine.getState());
68
- }
69
- }, [engine, routeGeometry, instructions]);
70
- react.useEffect(() => {
71
- if (instructions && instructions.length > 0 && routeGeometry && routeGeometry.length >= 2) {
72
- engine.setRoute(routeGeometry, instructions);
73
- }
74
- }, [engine, instructions]);
75
- react.useEffect(() => {
76
- if (!gpsCoord || !isNavigating) return;
77
- const gpsUpdate = {
78
- coord: gpsCoord,
79
- accuracy: gpsAccuracy ?? null,
80
- bearing: gpsBearing ?? null,
81
- speed,
82
- timestamp: gpsTimestamp ?? Date.now()
83
- };
84
- setState(engine.update(gpsUpdate));
85
- }, [engine, gpsCoord, gpsAccuracy, gpsBearing, gpsTimestamp, speed, isNavigating]);
86
- react.useEffect(() => {
87
- if (isNavigating) {
88
- engine.startNavigation();
89
- setState(engine.getState());
90
- }
91
- }, [engine, isNavigating]);
92
- react.useEffect(() => {
93
- if (!isNavigating) return;
94
- const lastRef = {
95
- snapped: [0, 0],
96
- bearing: 0,
97
- raw: [0, 0]
98
- };
99
- const intervalMs = Math.round(1e3 / pollRateHz);
100
- const poll = () => {
101
- const live = engine.getState();
102
- let changed = false;
103
- if (Math.abs(live.bearing - lastRef.bearing) > 0.1) {
104
- lastRef.bearing = live.bearing;
105
- changed = true;
106
- }
107
- if (live.snappedCoord && (live.snappedCoord[0] !== lastRef.snapped[0] || live.snappedCoord[1] !== lastRef.snapped[1])) {
108
- lastRef.snapped = [live.snappedCoord[0], live.snappedCoord[1]];
109
- changed = true;
110
- }
111
- if (live.rawGpsCoord && (live.rawGpsCoord[0] !== lastRef.raw[0] || live.rawGpsCoord[1] !== lastRef.raw[1])) {
112
- lastRef.raw = [live.rawGpsCoord[0], live.rawGpsCoord[1]];
113
- changed = true;
114
- }
115
- if (changed) {
116
- setState(live);
117
- }
118
- if (outputRef?.current !== void 0) {
119
- outputRef.current = {
120
- coord: live.snappedCoord ?? lastRef.snapped,
121
- bearing: live.bearing,
122
- speed: live.currentSpeed
123
- };
124
- }
125
- };
126
- const id = setInterval(poll, intervalMs);
127
- return () => clearInterval(id);
128
- }, [engine, isNavigating, pollRateHz, outputRef]);
129
- react.useEffect(() => {
130
- return () => {
131
- engine.destroy();
132
- navRef.current = null;
133
- };
134
- }, [engine]);
135
- return react.useMemo(() => ({
136
- ...state,
137
- engine
138
- }), [state, engine]);
139
- }
140
- var NavCoreContext = react.createContext(null);
141
- function NavCoreProvider({ children, options }) {
142
- const engineRef = react.useRef(null);
143
- if (!engineRef.current) {
144
- engineRef.current = new navcoreCore.NavCore(options);
145
- }
146
- const value = react.useMemo(() => ({
147
- engine: engineRef.current
148
- }), []);
149
- return /* @__PURE__ */ jsxRuntime.jsx(NavCoreContext.Provider, { value, children });
150
- }
151
- function useNavCoreContext() {
152
- const ctx = react.useContext(NavCoreContext);
153
- if (!ctx) {
154
- throw new Error("useNavCoreContext must be used within a <NavCoreProvider>");
155
- }
156
- return ctx;
157
- }
158
-
159
- exports.NavCoreProvider = NavCoreProvider;
160
- exports.useNavCore = useNavCore;
161
- exports.useNavCoreContext = useNavCoreContext;
package/dist/index.mjs DELETED
@@ -1,157 +0,0 @@
1
- import { createContext, useRef, useState, useEffect, useMemo, useContext } from 'react';
2
- import { NavCore } from '@ingissa/navcore-core';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- // src/useNavCore.ts
6
- function useNavCore({
7
- gpsCoord,
8
- gpsBearing,
9
- gpsAccuracy,
10
- gpsTimestamp,
11
- speed,
12
- routeGeometry,
13
- instructions,
14
- isNavigating,
15
- options,
16
- resumeAtIndex,
17
- outputRef,
18
- onDeviation,
19
- onRejoin,
20
- onInstruction,
21
- onArrival,
22
- pollRateHz = 30
23
- }) {
24
- const navRef = useRef(null);
25
- if (!navRef.current) {
26
- navRef.current = new NavCore(options);
27
- }
28
- const engine = navRef.current;
29
- const [state, setState] = useState(() => engine.getState());
30
- useEffect(() => {
31
- if (!onDeviation) return;
32
- const handler = (data) => onDeviation(data);
33
- engine.on("deviation", handler);
34
- return () => {
35
- engine.off("deviation", handler);
36
- };
37
- }, [engine, onDeviation]);
38
- useEffect(() => {
39
- if (!onRejoin) return;
40
- const handler = (data) => onRejoin(data);
41
- engine.on("rejoined", handler);
42
- return () => {
43
- engine.off("rejoined", handler);
44
- };
45
- }, [engine, onRejoin]);
46
- useEffect(() => {
47
- if (!onInstruction) return;
48
- const handler = (data) => onInstruction(data);
49
- engine.on("instruction", handler);
50
- return () => {
51
- engine.off("instruction", handler);
52
- };
53
- }, [engine, onInstruction]);
54
- useEffect(() => {
55
- if (!onArrival) return;
56
- const handler = () => onArrival();
57
- engine.on("arrival", handler);
58
- return () => {
59
- engine.off("arrival", handler);
60
- };
61
- }, [engine, onArrival]);
62
- useEffect(() => {
63
- if (routeGeometry && routeGeometry.length >= 2) {
64
- engine.setRoute(routeGeometry, instructions);
65
- setState(engine.getState());
66
- }
67
- }, [engine, routeGeometry, instructions]);
68
- useEffect(() => {
69
- if (instructions && instructions.length > 0 && routeGeometry && routeGeometry.length >= 2) {
70
- engine.setRoute(routeGeometry, instructions);
71
- }
72
- }, [engine, instructions]);
73
- useEffect(() => {
74
- if (!gpsCoord || !isNavigating) return;
75
- const gpsUpdate = {
76
- coord: gpsCoord,
77
- accuracy: gpsAccuracy ?? null,
78
- bearing: gpsBearing ?? null,
79
- speed,
80
- timestamp: gpsTimestamp ?? Date.now()
81
- };
82
- setState(engine.update(gpsUpdate));
83
- }, [engine, gpsCoord, gpsAccuracy, gpsBearing, gpsTimestamp, speed, isNavigating]);
84
- useEffect(() => {
85
- if (isNavigating) {
86
- engine.startNavigation();
87
- setState(engine.getState());
88
- }
89
- }, [engine, isNavigating]);
90
- useEffect(() => {
91
- if (!isNavigating) return;
92
- const lastRef = {
93
- snapped: [0, 0],
94
- bearing: 0,
95
- raw: [0, 0]
96
- };
97
- const intervalMs = Math.round(1e3 / pollRateHz);
98
- const poll = () => {
99
- const live = engine.getState();
100
- let changed = false;
101
- if (Math.abs(live.bearing - lastRef.bearing) > 0.1) {
102
- lastRef.bearing = live.bearing;
103
- changed = true;
104
- }
105
- if (live.snappedCoord && (live.snappedCoord[0] !== lastRef.snapped[0] || live.snappedCoord[1] !== lastRef.snapped[1])) {
106
- lastRef.snapped = [live.snappedCoord[0], live.snappedCoord[1]];
107
- changed = true;
108
- }
109
- if (live.rawGpsCoord && (live.rawGpsCoord[0] !== lastRef.raw[0] || live.rawGpsCoord[1] !== lastRef.raw[1])) {
110
- lastRef.raw = [live.rawGpsCoord[0], live.rawGpsCoord[1]];
111
- changed = true;
112
- }
113
- if (changed) {
114
- setState(live);
115
- }
116
- if (outputRef?.current !== void 0) {
117
- outputRef.current = {
118
- coord: live.snappedCoord ?? lastRef.snapped,
119
- bearing: live.bearing,
120
- speed: live.currentSpeed
121
- };
122
- }
123
- };
124
- const id = setInterval(poll, intervalMs);
125
- return () => clearInterval(id);
126
- }, [engine, isNavigating, pollRateHz, outputRef]);
127
- useEffect(() => {
128
- return () => {
129
- engine.destroy();
130
- navRef.current = null;
131
- };
132
- }, [engine]);
133
- return useMemo(() => ({
134
- ...state,
135
- engine
136
- }), [state, engine]);
137
- }
138
- var NavCoreContext = createContext(null);
139
- function NavCoreProvider({ children, options }) {
140
- const engineRef = useRef(null);
141
- if (!engineRef.current) {
142
- engineRef.current = new NavCore(options);
143
- }
144
- const value = useMemo(() => ({
145
- engine: engineRef.current
146
- }), []);
147
- return /* @__PURE__ */ jsx(NavCoreContext.Provider, { value, children });
148
- }
149
- function useNavCoreContext() {
150
- const ctx = useContext(NavCoreContext);
151
- if (!ctx) {
152
- throw new Error("useNavCoreContext must be used within a <NavCoreProvider>");
153
- }
154
- return ctx;
155
- }
156
-
157
- export { NavCoreProvider, useNavCore, useNavCoreContext };