@wemap/providers 3.1.22 → 3.2.1

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 (74) hide show
  1. package/babel.config.json +16 -0
  2. package/debug/MainComponent.jsx +5 -5
  3. package/debug/components/AbsoluteAttitudeComponent.jsx +5 -5
  4. package/debug/components/AbsolutePositionComponent.jsx +7 -9
  5. package/debug/components/GnssWifiComponent.jsx +5 -5
  6. package/debug/components/ImuComponent.jsx +4 -4
  7. package/debug/components/InclinationComponent.jsx +4 -4
  8. package/debug/components/RelativeAttitudeComponent.jsx +4 -4
  9. package/debug/components/StepDetectionComponent.jsx +4 -4
  10. package/debug/components/Utils.js +1 -1
  11. package/debug/{Common.css → css/App.css} +0 -44
  12. package/debug/css/UserOnMapHandler.css +43 -0
  13. package/debug/details/DetailsAttitudeComponent.jsx +1 -1
  14. package/debug/details/DetailsComponent.jsx +4 -5
  15. package/debug/details/DetailsPositionComponent.jsx +2 -2
  16. package/debug/details/ItineraryComponent.jsx +10 -69
  17. package/debug/index.js +8 -8
  18. package/debug/map/MapComponent.jsx +23 -15
  19. package/debug/map/MapHandler.js +7 -16
  20. package/debug/map/helpers/ItineraryMapHandler.js +15 -16
  21. package/debug/map/helpers/MapClickHandler.js +9 -7
  22. package/debug/map/helpers/UserOnMapHandler.js +23 -417
  23. package/debug/stores/ItineraryStore.js +23 -48
  24. package/dist/assets/indoor-maps/bureaux-wemap-montpellier.geojson +339 -513
  25. package/dist/js/providers-components.js +2361 -0
  26. package/dist/logger.html +58 -0
  27. package/index.js +7 -5
  28. package/package.json +25 -21
  29. package/src/Providers.js +15 -15
  30. package/src/ProvidersInterface.js +7 -5
  31. package/src/errors/MissingAccelerometerError.js +2 -2
  32. package/src/errors/MissingGyroscopeError.js +2 -2
  33. package/src/errors/MissingMagnetometerError.js +1 -1
  34. package/src/events/ProviderEvent.js +1 -1
  35. package/src/events/{ProvidersLogger.js → ProvidersLoggerOld.js} +7 -7
  36. package/src/logger/NavigationLogger.js +131 -0
  37. package/src/logger/NavigationLoggerConverter.js +228 -0
  38. package/src/providers/FakeProvider.spec.js +3 -4
  39. package/src/providers/MetaProvider.js +3 -3
  40. package/src/providers/Provider.js +12 -11
  41. package/src/providers/Provider.spec.js +5 -7
  42. package/src/providers/attitude/EkfAttitude.spec.js +1 -1
  43. package/src/providers/attitude/absolute/AbsoluteAttitudeFromBrowserProvider.js +9 -6
  44. package/src/providers/attitude/absolute/AbsoluteAttitudeFromRelAttProvider.js +5 -6
  45. package/src/providers/attitude/absolute/AbsoluteAttitudeProvider.js +3 -3
  46. package/src/providers/attitude/relative/RelativeAttitudeFromBrowserProvider.js +5 -5
  47. package/src/providers/attitude/relative/RelativeAttitudeFromEkfProvider.js +5 -5
  48. package/src/providers/attitude/relative/RelativeAttitudeFromInertialProvider.js +3 -3
  49. package/src/providers/attitude/relative/RelativeAttitudeProvider.js +5 -4
  50. package/src/providers/imu/AccelerometerProvider.js +4 -4
  51. package/src/providers/imu/GyroscopeProvider.js +4 -4
  52. package/src/providers/imu/ImuProvider.js +4 -2
  53. package/src/providers/inclination/InclinationFromAccProvider.js +3 -3
  54. package/src/providers/inclination/InclinationFromRelativeAttitudeProvider.js +3 -3
  55. package/src/providers/inclination/InclinationProvider.js +3 -3
  56. package/src/providers/legacy/helpers/HeadingUnlocker.spec.js +1 -1
  57. package/src/providers/others/BarcodeProvider.js +3 -3
  58. package/src/providers/others/CameraNativeProvider.js +4 -4
  59. package/src/providers/others/CameraProjectionMatrixProvider.js +3 -3
  60. package/src/providers/position/absolute/AbsolutePositionFromRelProvider.js +4 -4
  61. package/src/providers/position/absolute/AbsolutePositionProvider.js +5 -5
  62. package/src/providers/position/absolute/GnssWifiProvider.js +9 -6
  63. package/src/providers/position/absolute/IpProvider.js +3 -3
  64. package/src/providers/position/relative/ArCoreProvider.js +5 -5
  65. package/src/providers/position/relative/GeoRelativePositionFromArCoreProvider.js +3 -3
  66. package/src/providers/position/relative/GeoRelativePositionProvider.js +3 -3
  67. package/src/providers/position/relative/PdrProvider.js +3 -3
  68. package/src/providers/steps/StepDetectionProvider.js +11 -4
  69. package/src/smoothers/PositionSmoother.spec.js +1 -1
  70. package/webpack/{webpack.common.js → webpack.common.cjs} +7 -1
  71. package/webpack/{webpack.dev.js → webpack.dev.cjs} +1 -7
  72. package/webpack/{webpack.prod.js → webpack.prod.cjs} +1 -1
  73. package/babel.config.js +0 -11
  74. package/debug/map/MapboxHelper.js +0 -50
@@ -0,0 +1,228 @@
1
+ /* eslint-disable complexity */
2
+ import { UserPosition } from '@wemap/geo';
3
+ import { Network } from '@wemap/graph';
4
+
5
+ import EventType from '../events/EventType.js';
6
+
7
+ const PRECISION = 1e-6;
8
+ const PRECISION_INV = 1 / PRECISION;
9
+ const round = num => typeof num === 'number' ? Math.round(num * PRECISION_INV) / PRECISION_INV : num;
10
+
11
+ class NavigationLoggerConverter {
12
+
13
+ static externalDataToArray(eventType, time, data) {
14
+ switch (eventType) {
15
+ case EventType.Network:
16
+ return [0, 'network', round(time), data === null ? null : JSON.stringify(data.toCompressedJson())];
17
+ case EventType.AbsolutePosition:
18
+ return [0, 'absolute-position', round(time), JSON.stringify(data.toJson())];
19
+ case EventType.AbsoluteHeading:
20
+ return [0, 'absolute-heading', round(time), JSON.stringify(data.toJson())];
21
+ case EventType.AbsoluteAttitude:
22
+ return [0, 'absolute-attitude', round(time), JSON.stringify(data.toJson())];
23
+ }
24
+ return [0, 'unknown', eventType];
25
+ }
26
+
27
+ static rawDataToArray(eventName, time, data) {
28
+ switch (eventName) {
29
+
30
+ case 'devicemotion':
31
+ const acc = data.accelerationIncludingGravity;
32
+ const gyr = data.rotationRate;
33
+ const linearAcc = data.acceleration;
34
+
35
+ return [
36
+ 1,
37
+ round(time),
38
+ round(data.timeStamp),
39
+ acc && typeof acc.x === 'number' ? round(acc.x) : Number.MIN_VALUE,
40
+ acc && typeof acc.y === 'number' ? round(acc.y) : Number.MIN_VALUE,
41
+ acc && typeof acc.z === 'number' ? round(acc.z) : Number.MIN_VALUE,
42
+ gyr && typeof gyr.alpha === 'number' ? round(gyr.alpha) : Number.MIN_VALUE,
43
+ gyr && typeof gyr.beta === 'number' ? round(gyr.beta) : Number.MIN_VALUE,
44
+ gyr && typeof gyr.gamma === 'number' ? round(gyr.gamma) : Number.MIN_VALUE,
45
+ linearAcc && typeof linearAcc.x === 'number' ? round(linearAcc.x) : Number.MIN_VALUE,
46
+ linearAcc && typeof linearAcc.y === 'number' ? round(linearAcc.y) : Number.MIN_VALUE,
47
+ linearAcc && typeof linearAcc.z === 'number' ? round(linearAcc.z) : Number.MIN_VALUE,
48
+ round(data.interval)
49
+ ];
50
+
51
+ case 'deviceorientation':
52
+ return [
53
+ 2,
54
+ round(time),
55
+ round(data.timeStamp),
56
+ round(data.alpha),
57
+ round(data.beta),
58
+ round(data.gamma),
59
+ round(data.webkitCompassHeading),
60
+ data.absolute ? 1 : 0
61
+ ];
62
+
63
+ case 'deviceorientationabsolute':
64
+ return [
65
+ 3,
66
+ round(time),
67
+ round(data.timeStamp),
68
+ round(data.alpha),
69
+ round(data.beta),
70
+ round(data.gamma),
71
+ data.absolute ? 1 : 0
72
+ ];
73
+
74
+ case 'geolocation':
75
+ return [
76
+ 4,
77
+ round(time),
78
+ round(data.timestamp),
79
+ data.coords.latitude,
80
+ data.coords.longitude,
81
+ typeof data.coords.altitude === 'number' ? round(data.coords.altitude) : Number.MIN_VALUE,
82
+ round(data.coords.accuracy),
83
+ typeof data.coords.altitudeAccuracy === 'number' ? round(data.coords.altitudeAccuracy) : Number.MIN_VALUE,
84
+ typeof data.coords.heading === 'number' ? round(data.coords.heading) : Number.MIN_VALUE,
85
+ typeof data.coords.speed === 'number' ? round(data.coords.speed) : Number.MIN_VALUE
86
+ ];
87
+ }
88
+
89
+ throw new Error(`Cannot parse eventName: ${eventName}`);
90
+ }
91
+
92
+ static _strToObj(str) {
93
+
94
+ const indexOfFirstComma = str.indexOf(',');
95
+ const rowType = parseInt(str.substring(0, indexOfFirstComma), 10);
96
+
97
+ let array;
98
+
99
+ switch (rowType) {
100
+
101
+ case 1:
102
+ array = str.split(',').map(parseFloat);
103
+ return {
104
+ eventName: 'devicemotion',
105
+ time: array[1],
106
+ data: {
107
+ timeStamp: array[2],
108
+ accelerationIncludingGravity: {
109
+ x: array[3] === Number.MIN_VALUE ? null : array[3],
110
+ y: array[4] === Number.MIN_VALUE ? null : array[4],
111
+ z: array[5] === Number.MIN_VALUE ? null : array[5]
112
+ },
113
+ rotationRate: {
114
+ alpha: array[6] === Number.MIN_VALUE ? null : array[6],
115
+ beta: array[7] === Number.MIN_VALUE ? null : array[7],
116
+ gamma: array[8] === Number.MIN_VALUE ? null : array[8]
117
+ },
118
+ acceleration: {
119
+ x: array[9] === Number.MIN_VALUE ? null : array[9],
120
+ y: array[10] === Number.MIN_VALUE ? null : array[10],
121
+ z: array[11] === Number.MIN_VALUE ? null : array[11]
122
+ }
123
+ },
124
+ isExternal: false
125
+ };
126
+
127
+ case 2:
128
+ array = str.split(',').map(parseFloat);
129
+ return {
130
+ eventName: 'deviceorientation',
131
+ time: array[1],
132
+ data: {
133
+ timeStamp: array[2],
134
+ alpha: array[3],
135
+ beta: array[4],
136
+ gamma: array[5],
137
+ webkitCompassHeading: array[6],
138
+ absolute: array[7] === 1
139
+ },
140
+ isExternal: false
141
+ };
142
+
143
+ case 3:
144
+ array = str.split(',').map(parseFloat);
145
+ return {
146
+ eventName: 'deviceorientationabsolute',
147
+ time: array[1],
148
+ data: {
149
+ timeStamp: array[2],
150
+ alpha: array[3],
151
+ beta: array[4],
152
+ gamma: array[5],
153
+ absolute: array[6] === 1
154
+ },
155
+ isExternal: false
156
+ };
157
+
158
+ case 4:
159
+ array = str.split(',').map(parseFloat);
160
+ return {
161
+ eventName: 'geolocation',
162
+ time: array[1],
163
+ data: {
164
+ timestamp: array[2],
165
+ coords: {
166
+ latitude: array[3],
167
+ longitude: array[4],
168
+ altitude: array[5] === Number.MIN_VALUE ? null : array[5],
169
+ accuracy: array[6],
170
+ altitudeAccuracy: array[7] === Number.MIN_VALUE ? null : array[7],
171
+ heading: array[8] === Number.MIN_VALUE ? null : array[8],
172
+ speed: array[9] === Number.MIN_VALUE ? null : array[9]
173
+ }
174
+ },
175
+ isExternal: false
176
+ };
177
+
178
+ case 0:
179
+
180
+ const indexOfSecondComma = str.indexOf(',', indexOfFirstComma + 1);
181
+ const eventTypeStr = str.substring(indexOfFirstComma + 1, indexOfSecondComma);
182
+
183
+ const indexOfThirdComma = str.indexOf(',', indexOfSecondComma + 1);
184
+ const time = str.substring(indexOfSecondComma + 1, indexOfThirdComma);
185
+
186
+ const dataStr = str.substring(indexOfThirdComma + 1);
187
+ const dataJson = JSON.parse(dataStr);
188
+
189
+ let eventType, data;
190
+ switch (eventTypeStr) {
191
+
192
+ case 'network':
193
+ eventType = EventType.Network;
194
+ data = dataStr === null ? null : Network.fromCompressedJson(dataJson);
195
+ break;
196
+
197
+ case 'absolute-position':
198
+ eventType = EventType.AbsolutePosition;
199
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
200
+ break;
201
+
202
+ case 'absolute-attitude':
203
+ eventType = EventType.AbsoluteAttitude;
204
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
205
+ break;
206
+
207
+ case 'absolute-heading':
208
+ eventType = EventType.AbsoluteHeading;
209
+ data = dataStr === null ? null : UserPosition.fromJson(dataJson);
210
+ break;
211
+
212
+ default:
213
+ throw new Error(`Cannot parse eventType: ${array[1]}`);
214
+ }
215
+
216
+ return {
217
+ eventType,
218
+ data,
219
+ time: round(time),
220
+ isExternal: true
221
+ };
222
+ }
223
+
224
+ return null;
225
+ }
226
+ }
227
+
228
+ export default NavigationLoggerConverter;
@@ -1,10 +1,9 @@
1
1
  import { UserPosition } from '@wemap/geo';
2
-
3
- import Provider from './Provider';
4
-
5
- import EventType from '../events/EventType';
6
2
  import { TimeUtils } from '@wemap/utils';
7
3
 
4
+ import Provider from './Provider.js';
5
+ import EventType from '../events/EventType.js';
6
+
8
7
  class FakeProvider1 extends Provider {
9
8
  static get pname() {
10
9
  return 'FakeProvider1';
@@ -1,6 +1,6 @@
1
- import EventType from '../events/EventType';
2
- import Provider from './Provider';
3
- import ProviderEvent from '../events/ProviderEvent';
1
+ import EventType from '../events/EventType.js';
2
+ import Provider from './Provider.js';
3
+ import ProviderEvent from '../events/ProviderEvent.js';
4
4
 
5
5
  class MetaProvider extends Provider {
6
6
 
@@ -2,12 +2,12 @@ import noop from 'lodash.noop';
2
2
 
3
3
  import { TimeUtils } from '@wemap/utils';
4
4
 
5
- import EventType from '../events/EventType';
6
- import ProviderEvent from '../events/ProviderEvent';
7
- import ProvidersLogger from '../events/ProvidersLogger';
8
- import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError';
9
- import ProvidersOptions from '../ProvidersOptions';
10
- import ProviderState from './ProviderState';
5
+ import EventType from '../events/EventType.js';
6
+ import ProviderEvent from '../events/ProviderEvent.js';
7
+ import ProvidersLoggerOld from '../events/ProvidersLoggerOld.js';
8
+ import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError.js';
9
+ import ProvidersOptions from '../ProvidersOptions.js';
10
+ import ProviderState from './ProviderState.js';
11
11
 
12
12
  let uniqueId = 1;
13
13
 
@@ -52,7 +52,7 @@ class Provider {
52
52
 
53
53
  this.id = uniqueId++;
54
54
 
55
- ProvidersLogger.addEvent(this, 'constructor');
55
+ ProvidersLoggerOld.addEvent(this, 'constructor');
56
56
  }
57
57
 
58
58
  /**
@@ -166,6 +166,7 @@ class Provider {
166
166
  if (this.state !== ProviderState.STOPPPED) {
167
167
  return id;
168
168
  }
169
+ this.state = ProviderState.STARTING;
169
170
 
170
171
  // Check availability on start if defined in options
171
172
  let availabilityPromise = Promise.resolve();
@@ -175,9 +176,8 @@ class Provider {
175
176
 
176
177
  availabilityPromise
177
178
  .then(() => {
178
- this.state = ProviderState.STARTING;
179
179
 
180
- ProvidersLogger.addEvent(this, 'start');
180
+ ProvidersLoggerOld.addEvent(this, 'start');
181
181
  // Call the child start function
182
182
  this.start();
183
183
 
@@ -186,6 +186,7 @@ class Provider {
186
186
  this._monitoringCallbacks.forEach(({ onStarted }) => onStarted());
187
187
  })
188
188
  .catch(e => {
189
+ this.state = ProviderState.STOPPPED;
189
190
  this.notifyError(e);
190
191
  })
191
192
  // notifyError can throw an error if onStop is not defined
@@ -226,7 +227,7 @@ class Provider {
226
227
  return;
227
228
  }
228
229
 
229
- ProvidersLogger.addEvent(this, 'stop');
230
+ ProvidersLoggerOld.addEvent(this, 'stop');
230
231
  // Call the child stop function
231
232
  this.stop();
232
233
 
@@ -283,7 +284,7 @@ class Provider {
283
284
  */
284
285
  notify(...events) {
285
286
  // Logging
286
- ProvidersLogger.incrementNotifications(this);
287
+ ProvidersLoggerOld.incrementNotifications(this);
287
288
 
288
289
  // Add current provider to the list of providers for this event.
289
290
  events.forEach(event => event.providersStack.unshift(this.pname));
@@ -5,15 +5,13 @@ import noop from 'lodash.noop';
5
5
 
6
6
  import Logger from '@wemap/logger';
7
7
 
8
- import Provider from './Provider';
9
-
10
- import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError';
11
-
8
+ import Provider from './Provider.js';
9
+ import ContainsIgnoredProviderError from '../errors/ContainsIgnoredProviderError.js';
12
10
  import {
13
11
  FakeProvider1, FakeProvider2, FakeProvider3, FakeProvider4
14
- } from './FakeProvider.spec';
15
- import ProvidersOptions from '../ProvidersOptions';
16
- import ProviderState from './ProviderState';
12
+ } from './FakeProvider.spec.js';
13
+ import ProvidersOptions from '../ProvidersOptions.js';
14
+ import ProviderState from './ProviderState.js';
17
15
 
18
16
  chai.use(chaiAsPromised);
19
17
  Logger.enable(false);
@@ -2,7 +2,7 @@ import chai from 'chai';
2
2
 
3
3
  import { Quaternion } from '@wemap/maths';
4
4
 
5
- import EkfAttitude from './EkfAttitude';
5
+ import EkfAttitude from './EkfAttitude.js';
6
6
 
7
7
  const expect = chai.expect;
8
8
 
@@ -10,12 +10,13 @@ import {
10
10
  Browser, BrowserUtils
11
11
  } from '@wemap/utils';
12
12
 
13
- import Provider from '../../Provider';
14
- import EventType from '../../../events/EventType';
15
- import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError';
16
- import MissingMagnetometerError from '../../../errors/MissingMagnetometerError';
17
- import MissingSensorError from '../../../errors/MissingSensorError';
18
- import { AbsolutePosition } from '../../../Providers';
13
+ import Provider from '../../Provider.js';
14
+ import EventType from '../../../events/EventType.js';
15
+ import NavigationLogger from '../../../logger/NavigationLogger.js';
16
+ import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError.js';
17
+ import MissingMagnetometerError from '../../../errors/MissingMagnetometerError.js';
18
+ import MissingSensorError from '../../../errors/MissingSensorError.js';
19
+ import { AbsolutePosition } from '../../../Providers.js';
19
20
 
20
21
 
21
22
  /**
@@ -135,6 +136,7 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
135
136
 
136
137
 
137
138
  onDeviceOrientationChromeEvent = e => {
139
+ NavigationLogger.feedRawData('deviceorientationabsolute', e);
138
140
 
139
141
  this.magQuaternionTimestamp = e.timeStamp / 1e3;
140
142
 
@@ -151,6 +153,7 @@ class AbsoluteAttitudeFromBrowserProvider extends Provider {
151
153
 
152
154
 
153
155
  onDeviceOrientationSafariEvent = e => {
156
+ NavigationLogger.feedRawData('deviceorientation', e);
154
157
 
155
158
  this.magQuaternionTimestamp = e.timeStamp / 1e3;
156
159
 
@@ -1,10 +1,10 @@
1
1
  import { Quaternion } from '@wemap/maths';
2
2
  import { Attitude } from '@wemap/geo';
3
3
 
4
- import Provider from '../../Provider';
5
- import EventType from '../../../events/EventType';
4
+ import Provider from '../../Provider.js';
5
+ import EventType from '../../../events/EventType.js';
6
6
  import {
7
- RelativeAttitude, AbsoluteAttitude, AbsoluteAttitudeFromBrowser
7
+ RelativeAttitude, AbsoluteAttitude
8
8
  } from '../../../Providers.js';
9
9
 
10
10
  /**
@@ -90,8 +90,7 @@ class AbsoluteAttitudeFromRelAttProvider extends Provider {
90
90
  /**
91
91
  * Use absolute attitude events only when they are not from this provider
92
92
  */
93
- if (absoluteAttitudeEvent.providersStack.includes(this.pname)
94
- || absoluteAttitudeEvent.providersStack.includes(AbsoluteAttitudeFromBrowser.pname)) {
93
+ if (absoluteAttitudeEvent.providersStack.includes(this.pname)) {
95
94
  return;
96
95
  }
97
96
  this.absoluteAttitudeEvent = absoluteAttitudeEvent;
@@ -115,7 +114,7 @@ class AbsoluteAttitudeFromRelAttProvider extends Provider {
115
114
  const absoluteAttitudeAccuracy = this.absoluteAttitudeEvent.data.accuracy;
116
115
 
117
116
  const absoluteQuat = Quaternion.multiply(this.zOffset, quaternion);
118
- const newAccuracy = absoluteAttitudeAccuracy + this.accuracy;
117
+ const newAccuracy = Math.min(absoluteAttitudeAccuracy + this.accuracy, Math.PI);
119
118
  const attitude = new Attitude(absoluteQuat, time, newAccuracy, this.pname);
120
119
 
121
120
  this.notify(this.createEvent(
@@ -3,11 +3,11 @@ import {
3
3
  } from '@wemap/geo';
4
4
  import { PromiseUtils } from '@wemap/utils';
5
5
 
6
- import MetaProvider from '../../MetaProvider';
7
- import EventType from '../../../events/EventType';
6
+ import MetaProvider from '../../MetaProvider.js';
7
+ import EventType from '../../../events/EventType.js';
8
8
  import {
9
9
  AbsoluteAttitudeFromBrowser, AbsoluteAttitudeFromRelAtt
10
- } from '../../../Providers';
10
+ } from '../../../Providers.js';
11
11
 
12
12
 
13
13
  /**
@@ -2,11 +2,11 @@ import { Attitude } from '@wemap/geo';
2
2
  import { Rotations } from '@wemap/maths';
3
3
  import { BrowserUtils } from '@wemap/utils';
4
4
 
5
- import Provider from '../../Provider';
6
- import EventType from '../../../events/EventType';
7
- import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError';
8
- import MissingSensorError from '../../../errors/MissingSensorError';
9
- import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider';
5
+ import Provider from '../../Provider.js';
6
+ import EventType from '../../../events/EventType.js';
7
+ import AskImuOnDesktopError from '../../../errors/AskImuOnDesktopError.js';
8
+ import MissingSensorError from '../../../errors/MissingSensorError.js';
9
+ import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider.js';
10
10
 
11
11
 
12
12
  /**
@@ -1,12 +1,12 @@
1
1
  import { Attitude } from '@wemap/geo';
2
2
 
3
- import Provider from '../../Provider';
4
- import EventType from '../../../events/EventType';
5
- import EkfAttitude from '../EkfAttitude';
6
- import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider';
3
+ import Provider from '../../Provider.js';
4
+ import EventType from '../../../events/EventType.js';
5
+ import EkfAttitude from '../EkfAttitude.js';
6
+ import RelativeAttitudeFromInertialProvider from './RelativeAttitudeFromInertialProvider.js';
7
7
  import {
8
8
  Accelerometer, Gyroscope
9
- } from '../../../Providers';
9
+ } from '../../../Providers.js';
10
10
 
11
11
 
12
12
  /**
@@ -1,11 +1,11 @@
1
1
  import { deg2rad } from '@wemap/maths';
2
2
  import { PromiseUtils } from '@wemap/utils';
3
3
 
4
- import Provider from '../../Provider';
5
- import EventType from '../../../events/EventType';
4
+ import Provider from '../../Provider.js';
5
+ import EventType from '../../../events/EventType.js';
6
6
  import {
7
7
  RelativeAttitudeFromEkf, RelativeAttitudeFromBrowser
8
- } from '../../../Providers';
8
+ } from '../../../Providers.js';
9
9
 
10
10
  class RelativeAttitudeFromInertialProvider extends Provider {
11
11
 
@@ -1,10 +1,11 @@
1
- import Provider from '../../Provider';
2
- import EventType from '../../../events/EventType';
3
1
  import noop from 'lodash.noop';
4
- import ProviderState from '../../ProviderState';
2
+
3
+ import Provider from '../../Provider.js';
4
+ import EventType from '../../../events/EventType.js';
5
+ import ProviderState from '../../ProviderState.js';
5
6
  import {
6
7
  RelativeAttitudeFromInertial, ArCore
7
- } from '../../../Providers';
8
+ } from '../../../Providers.js';
8
9
 
9
10
 
10
11
  /**
@@ -1,7 +1,7 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import MissingAccelerometerError from '../../errors/MissingAccelerometerError';
4
- import { Imu } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import MissingAccelerometerError from '../../errors/MissingAccelerometerError.js';
4
+ import { Imu } from '../../Providers.js';
5
5
 
6
6
  class AccelerometerProvider extends Provider {
7
7
 
@@ -1,7 +1,7 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import MissingGyroscopeError from '../../errors/MissingGyroscopeError';
4
- import { Imu } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import MissingGyroscopeError from '../../errors/MissingGyroscopeError.js';
4
+ import { Imu } from '../../Providers.js';
5
5
 
6
6
  class GyroscopeProvider extends Provider {
7
7
 
@@ -3,9 +3,10 @@ import {
3
3
  Browser, BrowserUtils
4
4
  } from '@wemap/utils';
5
5
 
6
- import Provider from '../Provider';
6
+ import Provider from '../Provider.js';
7
7
  import EventType from '../../events/EventType';
8
- import AskImuOnDesktopError from '../../errors/AskImuOnDesktopError';
8
+ import AskImuOnDesktopError from '../../errors/AskImuOnDesktopError.js';
9
+ import NavigationLogger from '../../logger/NavigationLogger.js';
9
10
 
10
11
  /**
11
12
  * Imu (Inertial Measurement Unit) provider retrieve acceleration data
@@ -82,6 +83,7 @@ class ImuProvider extends Provider {
82
83
  * @private
83
84
  */
84
85
  parseDeviceMotionEvent = e => {
86
+ NavigationLogger.feedRawData('devicemotion', e);
85
87
 
86
88
  const events = [];
87
89
 
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { Accelerometer } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { Accelerometer } from '../../Providers.js';
4
4
 
5
5
  /**
6
6
  * Inclination provider gives the inclination of the device using Imu Sensor
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { RelativeAttitudeFromInertial } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { RelativeAttitudeFromInertial } from '../../Providers.js';
4
4
 
5
5
  /**
6
6
  * Inclination provider gives the inclination of the device using Relative Attitude
@@ -1,10 +1,10 @@
1
1
  import { PromiseUtils } from '@wemap/utils';
2
2
 
3
- import MetaProvider from '../MetaProvider';
4
- import EventType from '../../events/EventType';
3
+ import MetaProvider from '../MetaProvider.js';
4
+ import EventType from '../../events/EventType.js';
5
5
  import {
6
6
  InclinationFromRelativeAttitude, InclinationFromAcc
7
- } from '../../Providers';
7
+ } from '../../Providers.js';
8
8
 
9
9
  /**
10
10
  * Inclination provider gives the inclination of the device using Imu Sensor
@@ -3,7 +3,7 @@ import chaiAlmost from 'chai-almost';
3
3
 
4
4
  import { deg2rad } from '@wemap/maths';
5
5
 
6
- import HeadingUnlocker from './HeadingUnlocker';
6
+ import HeadingUnlocker from './HeadingUnlocker.js';
7
7
 
8
8
  const expect = chai.expect;
9
9
  chai.use(chaiAlmost());
@@ -1,6 +1,6 @@
1
- import Provider from '../Provider';
2
- import EventType from '../../events/EventType';
3
- import { ArCore } from '../../Providers';
1
+ import Provider from '../Provider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { ArCore } from '../../Providers.js';
4
4
 
5
5
  class BarcodeProvider extends Provider {
6
6
 
@@ -1,7 +1,7 @@
1
- import MetaProvider from '../MetaProvider';
2
- import EventType from '../../events/EventType';
3
- import { ArCore } from '../../Providers';
4
- import ProviderState from '../ProviderState';
1
+ import MetaProvider from '../MetaProvider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { ArCore } from '../../Providers.js';
4
+ import ProviderState from '../ProviderState.js';
5
5
 
6
6
  class CameraNativeProvider extends MetaProvider {
7
7
 
@@ -1,6 +1,6 @@
1
- import MetaProvider from '../MetaProvider';
2
- import EventType from '../../events/EventType';
3
- import { ArCore } from '../../Providers';
1
+ import MetaProvider from '../MetaProvider.js';
2
+ import EventType from '../../events/EventType.js';
3
+ import { ArCore } from '../../Providers.js';
4
4
 
5
5
  class CameraProjectionMatrixProvider extends MetaProvider {
6
6
 
@@ -1,9 +1,9 @@
1
- import Provider from '../../Provider';
2
- import EventType from '../../../events/EventType';
3
- import ProviderEvent from '../../../events/ProviderEvent';
1
+ import Provider from '../../Provider.js';
2
+ import EventType from '../../../events/EventType.js';
3
+ import ProviderEvent from '../../../events/ProviderEvent.js';
4
4
  import {
5
5
  AbsolutePosition, GeoRelativePosition
6
- } from '../../../Providers';
6
+ } from '../../../Providers.js';
7
7
 
8
8
  class AbsolutePositionFromRelProvider extends Provider {
9
9