@symbiote-native/sensors 0.1.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 (264) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +138 -0
  3. package/build/angular/index.d.ts +16 -0
  4. package/build/angular/index.js +12 -0
  5. package/build/angular/services/accelerometer.service/index.d.ts +6 -0
  6. package/build/angular/services/accelerometer.service/index.js +81 -0
  7. package/build/angular/services/barometer.service/index.d.ts +6 -0
  8. package/build/angular/services/barometer.service/index.js +81 -0
  9. package/build/angular/services/device-motion.service/index.d.ts +6 -0
  10. package/build/angular/services/device-motion.service/index.js +81 -0
  11. package/build/angular/services/gyroscope.service/index.d.ts +6 -0
  12. package/build/angular/services/gyroscope.service/index.js +81 -0
  13. package/build/angular/services/light-sensor.service/index.d.ts +6 -0
  14. package/build/angular/services/light-sensor.service/index.js +81 -0
  15. package/build/angular/services/magnetometer-uncalibrated.service/index.d.ts +6 -0
  16. package/build/angular/services/magnetometer-uncalibrated.service/index.js +81 -0
  17. package/build/angular/services/magnetometer.service/index.d.ts +6 -0
  18. package/build/angular/services/magnetometer.service/index.js +81 -0
  19. package/build/angular/services/pedometer.service/index.d.ts +6 -0
  20. package/build/angular/services/pedometer.service/index.js +76 -0
  21. package/build/core/accelerometer.d.ts +10 -0
  22. package/build/core/accelerometer.js +6 -0
  23. package/build/core/barometer.d.ts +9 -0
  24. package/build/core/barometer.js +6 -0
  25. package/build/core/device-motion.d.ts +40 -0
  26. package/build/core/device-motion.js +21 -0
  27. package/build/core/device-sensor.d.ts +27 -0
  28. package/build/core/device-sensor.js +61 -0
  29. package/build/core/gyroscope.d.ts +10 -0
  30. package/build/core/gyroscope.js +6 -0
  31. package/build/core/index.d.ts +11 -0
  32. package/build/core/index.js +10 -0
  33. package/build/core/light-sensor.d.ts +8 -0
  34. package/build/core/light-sensor.js +6 -0
  35. package/build/core/magnetometer-uncalibrated.d.ts +10 -0
  36. package/build/core/magnetometer-uncalibrated.js +6 -0
  37. package/build/core/magnetometer.d.ts +10 -0
  38. package/build/core/magnetometer.js +6 -0
  39. package/build/core/native/exponent-accelerometer.d.ts +3 -0
  40. package/build/core/native/exponent-accelerometer.js +3 -0
  41. package/build/core/native/exponent-barometer.d.ts +3 -0
  42. package/build/core/native/exponent-barometer.js +3 -0
  43. package/build/core/native/exponent-device-motion.d.ts +7 -0
  44. package/build/core/native/exponent-device-motion.js +3 -0
  45. package/build/core/native/exponent-gyroscope.d.ts +3 -0
  46. package/build/core/native/exponent-gyroscope.js +3 -0
  47. package/build/core/native/exponent-light-sensor/index.android.d.ts +3 -0
  48. package/build/core/native/exponent-light-sensor/index.android.js +3 -0
  49. package/build/core/native/exponent-light-sensor/index.d.ts +1 -0
  50. package/build/core/native/exponent-light-sensor/index.ios.d.ts +3 -0
  51. package/build/core/native/exponent-light-sensor/index.ios.js +6 -0
  52. package/build/core/native/exponent-light-sensor/index.js +5 -0
  53. package/build/core/native/exponent-magnetometer-uncalibrated.d.ts +3 -0
  54. package/build/core/native/exponent-magnetometer-uncalibrated.js +3 -0
  55. package/build/core/native/exponent-magnetometer.d.ts +3 -0
  56. package/build/core/native/exponent-magnetometer.js +3 -0
  57. package/build/core/native/exponent-pedometer.d.ts +10 -0
  58. package/build/core/native/exponent-pedometer.js +3 -0
  59. package/build/core/pedometer.d.ts +10 -0
  60. package/build/core/pedometer.js +44 -0
  61. package/build/react/hooks/use-accelerometer/index.d.ts +2 -0
  62. package/build/react/hooks/use-accelerometer/index.js +17 -0
  63. package/build/react/hooks/use-barometer/index.d.ts +2 -0
  64. package/build/react/hooks/use-barometer/index.js +17 -0
  65. package/build/react/hooks/use-device-motion/index.d.ts +2 -0
  66. package/build/react/hooks/use-device-motion/index.js +17 -0
  67. package/build/react/hooks/use-gyroscope/index.d.ts +2 -0
  68. package/build/react/hooks/use-gyroscope/index.js +17 -0
  69. package/build/react/hooks/use-light-sensor/index.d.ts +2 -0
  70. package/build/react/hooks/use-light-sensor/index.js +17 -0
  71. package/build/react/hooks/use-magnetometer/index.d.ts +2 -0
  72. package/build/react/hooks/use-magnetometer/index.js +17 -0
  73. package/build/react/hooks/use-magnetometer-uncalibrated/index.d.ts +2 -0
  74. package/build/react/hooks/use-magnetometer-uncalibrated/index.js +17 -0
  75. package/build/react/hooks/use-pedometer/index.d.ts +2 -0
  76. package/build/react/hooks/use-pedometer/index.js +14 -0
  77. package/build/react/index.d.ts +16 -0
  78. package/build/react/index.js +14 -0
  79. package/build/vue/composables/use-accelerometer/index.d.ts +3 -0
  80. package/build/vue/composables/use-accelerometer/index.js +25 -0
  81. package/build/vue/composables/use-barometer/index.d.ts +3 -0
  82. package/build/vue/composables/use-barometer/index.js +25 -0
  83. package/build/vue/composables/use-device-motion/index.d.ts +3 -0
  84. package/build/vue/composables/use-device-motion/index.js +25 -0
  85. package/build/vue/composables/use-gyroscope/index.d.ts +3 -0
  86. package/build/vue/composables/use-gyroscope/index.js +25 -0
  87. package/build/vue/composables/use-light-sensor/index.d.ts +3 -0
  88. package/build/vue/composables/use-light-sensor/index.js +25 -0
  89. package/build/vue/composables/use-magnetometer/index.d.ts +3 -0
  90. package/build/vue/composables/use-magnetometer/index.js +25 -0
  91. package/build/vue/composables/use-magnetometer-uncalibrated/index.d.ts +3 -0
  92. package/build/vue/composables/use-magnetometer-uncalibrated/index.js +25 -0
  93. package/build/vue/composables/use-pedometer/index.d.ts +3 -0
  94. package/build/vue/composables/use-pedometer/index.js +20 -0
  95. package/build/vue/index.d.ts +16 -0
  96. package/build/vue/index.js +14 -0
  97. package/build-ngc/angular/index.d.ts +16 -0
  98. package/build-ngc/angular/index.js +13 -0
  99. package/build-ngc/angular/index.js.map +1 -0
  100. package/build-ngc/angular/services/accelerometer.service/index.d.ts +9 -0
  101. package/build-ngc/angular/services/accelerometer.service/index.js +40 -0
  102. package/build-ngc/angular/services/accelerometer.service/index.js.map +1 -0
  103. package/build-ngc/angular/services/barometer.service/index.d.ts +9 -0
  104. package/build-ngc/angular/services/barometer.service/index.js +40 -0
  105. package/build-ngc/angular/services/barometer.service/index.js.map +1 -0
  106. package/build-ngc/angular/services/device-motion.service/index.d.ts +9 -0
  107. package/build-ngc/angular/services/device-motion.service/index.js +40 -0
  108. package/build-ngc/angular/services/device-motion.service/index.js.map +1 -0
  109. package/build-ngc/angular/services/gyroscope.service/index.d.ts +9 -0
  110. package/build-ngc/angular/services/gyroscope.service/index.js +40 -0
  111. package/build-ngc/angular/services/gyroscope.service/index.js.map +1 -0
  112. package/build-ngc/angular/services/light-sensor.service/index.d.ts +9 -0
  113. package/build-ngc/angular/services/light-sensor.service/index.js +40 -0
  114. package/build-ngc/angular/services/light-sensor.service/index.js.map +1 -0
  115. package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.d.ts +9 -0
  116. package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.js +40 -0
  117. package/build-ngc/angular/services/magnetometer-uncalibrated.service/index.js.map +1 -0
  118. package/build-ngc/angular/services/magnetometer.service/index.d.ts +9 -0
  119. package/build-ngc/angular/services/magnetometer.service/index.js +40 -0
  120. package/build-ngc/angular/services/magnetometer.service/index.js.map +1 -0
  121. package/build-ngc/angular/services/pedometer.service/index.d.ts +9 -0
  122. package/build-ngc/angular/services/pedometer.service/index.js +35 -0
  123. package/build-ngc/angular/services/pedometer.service/index.js.map +1 -0
  124. package/build-ngc/core/accelerometer.d.ts +10 -0
  125. package/build-ngc/core/accelerometer.js +7 -0
  126. package/build-ngc/core/accelerometer.js.map +1 -0
  127. package/build-ngc/core/barometer.d.ts +9 -0
  128. package/build-ngc/core/barometer.js +7 -0
  129. package/build-ngc/core/barometer.js.map +1 -0
  130. package/build-ngc/core/device-motion.d.ts +40 -0
  131. package/build-ngc/core/device-motion.js +22 -0
  132. package/build-ngc/core/device-motion.js.map +1 -0
  133. package/build-ngc/core/device-sensor.d.ts +27 -0
  134. package/build-ngc/core/device-sensor.js +62 -0
  135. package/build-ngc/core/device-sensor.js.map +1 -0
  136. package/build-ngc/core/gyroscope.d.ts +10 -0
  137. package/build-ngc/core/gyroscope.js +7 -0
  138. package/build-ngc/core/gyroscope.js.map +1 -0
  139. package/build-ngc/core/index.d.ts +11 -0
  140. package/build-ngc/core/index.js +11 -0
  141. package/build-ngc/core/index.js.map +1 -0
  142. package/build-ngc/core/light-sensor.d.ts +8 -0
  143. package/build-ngc/core/light-sensor.js +7 -0
  144. package/build-ngc/core/light-sensor.js.map +1 -0
  145. package/build-ngc/core/magnetometer-uncalibrated.d.ts +10 -0
  146. package/build-ngc/core/magnetometer-uncalibrated.js +7 -0
  147. package/build-ngc/core/magnetometer-uncalibrated.js.map +1 -0
  148. package/build-ngc/core/magnetometer.d.ts +10 -0
  149. package/build-ngc/core/magnetometer.js +7 -0
  150. package/build-ngc/core/magnetometer.js.map +1 -0
  151. package/build-ngc/core/native/exponent-accelerometer.d.ts +3 -0
  152. package/build-ngc/core/native/exponent-accelerometer.js +4 -0
  153. package/build-ngc/core/native/exponent-accelerometer.js.map +1 -0
  154. package/build-ngc/core/native/exponent-barometer.d.ts +3 -0
  155. package/build-ngc/core/native/exponent-barometer.js +4 -0
  156. package/build-ngc/core/native/exponent-barometer.js.map +1 -0
  157. package/build-ngc/core/native/exponent-device-motion.d.ts +7 -0
  158. package/build-ngc/core/native/exponent-device-motion.js +4 -0
  159. package/build-ngc/core/native/exponent-device-motion.js.map +1 -0
  160. package/build-ngc/core/native/exponent-gyroscope.d.ts +3 -0
  161. package/build-ngc/core/native/exponent-gyroscope.js +4 -0
  162. package/build-ngc/core/native/exponent-gyroscope.js.map +1 -0
  163. package/build-ngc/core/native/exponent-light-sensor/index.android.d.ts +3 -0
  164. package/build-ngc/core/native/exponent-light-sensor/index.android.js +4 -0
  165. package/build-ngc/core/native/exponent-light-sensor/index.android.js.map +1 -0
  166. package/build-ngc/core/native/exponent-light-sensor/index.d.ts +1 -0
  167. package/build-ngc/core/native/exponent-light-sensor/index.ios.d.ts +3 -0
  168. package/build-ngc/core/native/exponent-light-sensor/index.ios.js +7 -0
  169. package/build-ngc/core/native/exponent-light-sensor/index.ios.js.map +1 -0
  170. package/build-ngc/core/native/exponent-light-sensor/index.js +6 -0
  171. package/build-ngc/core/native/exponent-light-sensor/index.js.map +1 -0
  172. package/build-ngc/core/native/exponent-magnetometer-uncalibrated.d.ts +3 -0
  173. package/build-ngc/core/native/exponent-magnetometer-uncalibrated.js +4 -0
  174. package/build-ngc/core/native/exponent-magnetometer-uncalibrated.js.map +1 -0
  175. package/build-ngc/core/native/exponent-magnetometer.d.ts +3 -0
  176. package/build-ngc/core/native/exponent-magnetometer.js +4 -0
  177. package/build-ngc/core/native/exponent-magnetometer.js.map +1 -0
  178. package/build-ngc/core/native/exponent-pedometer.d.ts +10 -0
  179. package/build-ngc/core/native/exponent-pedometer.js +4 -0
  180. package/build-ngc/core/native/exponent-pedometer.js.map +1 -0
  181. package/build-ngc/core/pedometer.d.ts +10 -0
  182. package/build-ngc/core/pedometer.js +45 -0
  183. package/build-ngc/core/pedometer.js.map +1 -0
  184. package/package.json +106 -0
  185. package/src/angular/index.ts +26 -0
  186. package/src/angular/services/accelerometer.service/accelerometer.service.test.ts +118 -0
  187. package/src/angular/services/accelerometer.service/index.ts +39 -0
  188. package/src/angular/services/barometer.service/barometer.service.test.ts +122 -0
  189. package/src/angular/services/barometer.service/index.ts +39 -0
  190. package/src/angular/services/device-motion.service/device-motion.service.test.ts +125 -0
  191. package/src/angular/services/device-motion.service/index.ts +39 -0
  192. package/src/angular/services/gyroscope.service/gyroscope.service.test.ts +118 -0
  193. package/src/angular/services/gyroscope.service/index.ts +39 -0
  194. package/src/angular/services/light-sensor.service/index.ts +39 -0
  195. package/src/angular/services/light-sensor.service/light-sensor.service.test.ts +118 -0
  196. package/src/angular/services/magnetometer-uncalibrated.service/index.ts +39 -0
  197. package/src/angular/services/magnetometer-uncalibrated.service/magnetometer-uncalibrated.service.test.ts +123 -0
  198. package/src/angular/services/magnetometer.service/index.ts +39 -0
  199. package/src/angular/services/magnetometer.service/magnetometer.service.test.ts +118 -0
  200. package/src/angular/services/pedometer.service/index.ts +34 -0
  201. package/src/angular/services/pedometer.service/pedometer.service.test.ts +86 -0
  202. package/src/core/accelerometer.test.ts +49 -0
  203. package/src/core/accelerometer.ts +19 -0
  204. package/src/core/barometer.test.ts +46 -0
  205. package/src/core/barometer.ts +15 -0
  206. package/src/core/device-motion.test.ts +60 -0
  207. package/src/core/device-motion.ts +41 -0
  208. package/src/core/device-sensor.test.ts +76 -0
  209. package/src/core/device-sensor.ts +95 -0
  210. package/src/core/gyroscope.test.ts +46 -0
  211. package/src/core/gyroscope.ts +16 -0
  212. package/src/core/index.ts +37 -0
  213. package/src/core/light-sensor.test.ts +49 -0
  214. package/src/core/light-sensor.ts +18 -0
  215. package/src/core/magnetometer-uncalibrated.test.ts +49 -0
  216. package/src/core/magnetometer-uncalibrated.ts +20 -0
  217. package/src/core/magnetometer.test.ts +49 -0
  218. package/src/core/magnetometer.ts +19 -0
  219. package/src/core/native/exponent-accelerometer.ts +9 -0
  220. package/src/core/native/exponent-barometer.ts +9 -0
  221. package/src/core/native/exponent-device-motion.ts +15 -0
  222. package/src/core/native/exponent-gyroscope.ts +9 -0
  223. package/src/core/native/exponent-light-sensor/index.android.ts +9 -0
  224. package/src/core/native/exponent-light-sensor/index.ios.ts +12 -0
  225. package/src/core/native/exponent-light-sensor/index.ts +5 -0
  226. package/src/core/native/exponent-magnetometer-uncalibrated.ts +9 -0
  227. package/src/core/native/exponent-magnetometer.ts +9 -0
  228. package/src/core/native/exponent-pedometer.ts +17 -0
  229. package/src/core/pedometer.test.ts +118 -0
  230. package/src/core/pedometer.ts +62 -0
  231. package/src/react/hooks/use-accelerometer/index.ts +21 -0
  232. package/src/react/hooks/use-accelerometer/use-accelerometer.test.tsx +81 -0
  233. package/src/react/hooks/use-barometer/index.ts +21 -0
  234. package/src/react/hooks/use-barometer/use-barometer.test.tsx +83 -0
  235. package/src/react/hooks/use-device-motion/index.ts +21 -0
  236. package/src/react/hooks/use-device-motion/use-device-motion.test.tsx +88 -0
  237. package/src/react/hooks/use-gyroscope/index.ts +21 -0
  238. package/src/react/hooks/use-gyroscope/use-gyroscope.test.tsx +79 -0
  239. package/src/react/hooks/use-light-sensor/index.ts +21 -0
  240. package/src/react/hooks/use-light-sensor/use-light-sensor.test.tsx +79 -0
  241. package/src/react/hooks/use-magnetometer/index.ts +21 -0
  242. package/src/react/hooks/use-magnetometer/use-magnetometer.test.tsx +81 -0
  243. package/src/react/hooks/use-magnetometer-uncalibrated/index.ts +23 -0
  244. package/src/react/hooks/use-magnetometer-uncalibrated/use-magnetometer-uncalibrated.test.tsx +88 -0
  245. package/src/react/hooks/use-pedometer/index.ts +17 -0
  246. package/src/react/hooks/use-pedometer/use-pedometer.test.tsx +69 -0
  247. package/src/react/index.ts +29 -0
  248. package/src/vue/composables/use-accelerometer/index.ts +34 -0
  249. package/src/vue/composables/use-accelerometer/use-accelerometer.test.ts +96 -0
  250. package/src/vue/composables/use-barometer/index.ts +30 -0
  251. package/src/vue/composables/use-barometer/use-barometer.test.ts +100 -0
  252. package/src/vue/composables/use-device-motion/index.ts +30 -0
  253. package/src/vue/composables/use-device-motion/use-device-motion.test.ts +104 -0
  254. package/src/vue/composables/use-gyroscope/index.ts +30 -0
  255. package/src/vue/composables/use-gyroscope/use-gyroscope.test.ts +96 -0
  256. package/src/vue/composables/use-light-sensor/index.ts +30 -0
  257. package/src/vue/composables/use-light-sensor/use-light-sensor.test.ts +96 -0
  258. package/src/vue/composables/use-magnetometer/index.ts +30 -0
  259. package/src/vue/composables/use-magnetometer/use-magnetometer.test.ts +96 -0
  260. package/src/vue/composables/use-magnetometer-uncalibrated/index.ts +36 -0
  261. package/src/vue/composables/use-magnetometer-uncalibrated/use-magnetometer-uncalibrated.test.ts +103 -0
  262. package/src/vue/composables/use-pedometer/index.ts +25 -0
  263. package/src/vue/composables/use-pedometer/use-pedometer.test.ts +77 -0
  264. package/src/vue/index.ts +29 -0
@@ -0,0 +1,6 @@
1
+ import { type Signal } from '@angular/core';
2
+ import { type IMagnetometerUncalibratedMeasurement } from '../../../core';
3
+ export declare class MagnetometerUncalibratedService {
4
+ private readonly injector;
5
+ connect(updateIntervalMs?: number): Signal<IMagnetometerUncalibratedMeasurement | null>;
6
+ }
@@ -0,0 +1,81 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { effect, inject, Injectable, Injector, signal } from '@angular/core';
36
+ import { MagnetometerUncalibrated } from '../../../core/index.js';
37
+ // Angular twin of React's `useMagnetometerUncalibrated` hook and Vue's
38
+ // `useMagnetometerUncalibrated` composable. Angular has no per-instance hook — state and
39
+ // lifecycle live in DI instead, so `connect()` stands in for the hook's role: call it ONCE
40
+ // (typically from a component's field initializer, inside an injection context).
41
+ //
42
+ // readonly measurement = inject(MagnetometerUncalibratedService).connect();
43
+ // // template: {{ measurement()?.x }}
44
+ //
45
+ // Unlike HideAnimationService.connect(), there is no per-render config to re-sync — the
46
+ // subscription doesn't depend on anything the caller's own signals could change between
47
+ // renders — so a single effect() that subscribes once and cleans up once is enough; no
48
+ // `updateConfig`-style effect that re-runs on every read is needed here.
49
+ let MagnetometerUncalibratedService = (() => {
50
+ let _classDecorators = [Injectable({ providedIn: 'root' })];
51
+ let _classDescriptor;
52
+ let _classExtraInitializers = [];
53
+ let _classThis;
54
+ var MagnetometerUncalibratedService = class {
55
+ static { _classThis = this; }
56
+ static {
57
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
58
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
59
+ MagnetometerUncalibratedService = _classThis = _classDescriptor.value;
60
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
+ __runInitializers(_classThis, _classExtraInitializers);
62
+ }
63
+ // Captured in the constructor (itself always run inside an injection context by Angular's
64
+ // own DI) so `connect()` can create an `effect()` even when called from plain field-initializer
65
+ // code that is not, on its own, an active injection context — mirrors HideAnimationService.
66
+ injector = inject(Injector);
67
+ connect(updateIntervalMs) {
68
+ const measurement = signal(null);
69
+ effect(onCleanup => {
70
+ if (updateIntervalMs !== undefined) {
71
+ MagnetometerUncalibrated.setUpdateInterval(updateIntervalMs);
72
+ }
73
+ const subscription = MagnetometerUncalibrated.addListener(next => measurement.set(next));
74
+ onCleanup(() => subscription.remove());
75
+ }, { injector: this.injector });
76
+ return measurement.asReadonly();
77
+ }
78
+ };
79
+ return MagnetometerUncalibratedService = _classThis;
80
+ })();
81
+ export { MagnetometerUncalibratedService };
@@ -0,0 +1,6 @@
1
+ import { type Signal } from '@angular/core';
2
+ import { type IMagnetometerMeasurement } from '../../../core';
3
+ export declare class MagnetometerService {
4
+ private readonly injector;
5
+ connect(updateIntervalMs?: number): Signal<IMagnetometerMeasurement | null>;
6
+ }
@@ -0,0 +1,81 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { effect, inject, Injectable, Injector, signal } from '@angular/core';
36
+ import { Magnetometer } from '../../../core/index.js';
37
+ // Angular twin of React's `useMagnetometer` hook and Vue's `useMagnetometer` composable.
38
+ // Angular has no per-instance hook — state and lifecycle live in DI instead, so `connect()`
39
+ // stands in for the hook's role: call it ONCE (typically from a component's field initializer,
40
+ // inside an injection context).
41
+ //
42
+ // readonly measurement = inject(MagnetometerService).connect();
43
+ // // template: {{ measurement()?.x }}
44
+ //
45
+ // Unlike HideAnimationService.connect(), there is no per-render config to re-sync — the
46
+ // subscription doesn't depend on anything the caller's own signals could change between
47
+ // renders — so a single effect() that subscribes once and cleans up once is enough; no
48
+ // `updateConfig`-style effect that re-runs on every read is needed here.
49
+ let MagnetometerService = (() => {
50
+ let _classDecorators = [Injectable({ providedIn: 'root' })];
51
+ let _classDescriptor;
52
+ let _classExtraInitializers = [];
53
+ let _classThis;
54
+ var MagnetometerService = class {
55
+ static { _classThis = this; }
56
+ static {
57
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
58
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
59
+ MagnetometerService = _classThis = _classDescriptor.value;
60
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
+ __runInitializers(_classThis, _classExtraInitializers);
62
+ }
63
+ // Captured in the constructor (itself always run inside an injection context by Angular's
64
+ // own DI) so `connect()` can create an `effect()` even when called from plain field-initializer
65
+ // code that is not, on its own, an active injection context — mirrors HideAnimationService.
66
+ injector = inject(Injector);
67
+ connect(updateIntervalMs) {
68
+ const measurement = signal(null);
69
+ effect(onCleanup => {
70
+ if (updateIntervalMs !== undefined) {
71
+ Magnetometer.setUpdateInterval(updateIntervalMs);
72
+ }
73
+ const subscription = Magnetometer.addListener(next => measurement.set(next));
74
+ onCleanup(() => subscription.remove());
75
+ }, { injector: this.injector });
76
+ return measurement.asReadonly();
77
+ }
78
+ };
79
+ return MagnetometerService = _classThis;
80
+ })();
81
+ export { MagnetometerService };
@@ -0,0 +1,6 @@
1
+ import { type Signal } from '@angular/core';
2
+ import { type IPedometerResult } from '../../../core';
3
+ export declare class PedometerService {
4
+ private readonly injector;
5
+ connect(): Signal<IPedometerResult | null>;
6
+ }
@@ -0,0 +1,76 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { effect, inject, Injectable, Injector, signal } from '@angular/core';
36
+ import { watchStepCount } from '../../../core/index.js';
37
+ // Angular twin of React's `usePedometer` hook and Vue's `usePedometer` composable. Angular has
38
+ // no per-instance hook — state and lifecycle live in DI instead, so `connect()` stands in for
39
+ // the hook's role: call it ONCE (typically from a component's field initializer, inside an
40
+ // injection context).
41
+ //
42
+ // readonly result = inject(PedometerService).connect();
43
+ // // template: {{ result()?.steps }}
44
+ //
45
+ // Unlike AccelerometerService.connect(), there is no updateIntervalMs to apply — Pedometer has
46
+ // no setUpdateInterval — so a single effect() that subscribes once and cleans up once is enough.
47
+ let PedometerService = (() => {
48
+ let _classDecorators = [Injectable({ providedIn: 'root' })];
49
+ let _classDescriptor;
50
+ let _classExtraInitializers = [];
51
+ let _classThis;
52
+ var PedometerService = class {
53
+ static { _classThis = this; }
54
+ static {
55
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
56
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
57
+ PedometerService = _classThis = _classDescriptor.value;
58
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
59
+ __runInitializers(_classThis, _classExtraInitializers);
60
+ }
61
+ // Captured in the constructor (itself always run inside an injection context by Angular's own
62
+ // DI) so `connect()` can create an `effect()` even when called from plain field-initializer
63
+ // code that is not, on its own, an active injection context — mirrors AccelerometerService.
64
+ injector = inject(Injector);
65
+ connect() {
66
+ const result = signal(null);
67
+ effect(onCleanup => {
68
+ const subscription = watchStepCount(next => result.set(next));
69
+ onCleanup(() => subscription.remove());
70
+ }, { injector: this.injector });
71
+ return result.asReadonly();
72
+ }
73
+ };
74
+ return PedometerService = _classThis;
75
+ })();
76
+ export { PedometerService };
@@ -0,0 +1,10 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IAccelerometerMeasurement = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ timestamp: number;
7
+ };
8
+ export declare class AccelerometerSensor extends DeviceSensor<IAccelerometerMeasurement> {
9
+ }
10
+ export declare const Accelerometer: AccelerometerSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentAccelerometer } from './native/exponent-accelerometer.js';
3
+ export class AccelerometerSensor extends DeviceSensor {
4
+ }
5
+ const ACCELEROMETER_DID_UPDATE_EVENT_NAME = 'accelerometerDidUpdate';
6
+ export const Accelerometer = new AccelerometerSensor(exponentAccelerometer, ACCELEROMETER_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,9 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IBarometerMeasurement = {
3
+ pressure: number;
4
+ relativeAltitude?: number;
5
+ timestamp: number;
6
+ };
7
+ export declare class BarometerSensor extends DeviceSensor<IBarometerMeasurement> {
8
+ }
9
+ export declare const Barometer: BarometerSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentBarometer } from './native/exponent-barometer.js';
3
+ export class BarometerSensor extends DeviceSensor {
4
+ }
5
+ const BAROMETER_DID_UPDATE_EVENT_NAME = 'barometerDidUpdate';
6
+ export const Barometer = new BarometerSensor(exponentBarometer, BAROMETER_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,40 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IDeviceMotionMeasurement = {
3
+ acceleration: null | {
4
+ x: number;
5
+ y: number;
6
+ z: number;
7
+ timestamp: number;
8
+ };
9
+ accelerationIncludingGravity: {
10
+ x: number;
11
+ y: number;
12
+ z: number;
13
+ timestamp: number;
14
+ };
15
+ rotation: {
16
+ alpha: number;
17
+ beta: number;
18
+ gamma: number;
19
+ timestamp: number;
20
+ };
21
+ rotationRate: null | {
22
+ alpha: number;
23
+ beta: number;
24
+ gamma: number;
25
+ timestamp: number;
26
+ };
27
+ interval: number;
28
+ orientation: DeviceMotionOrientation;
29
+ };
30
+ export declare enum DeviceMotionOrientation {
31
+ Portrait = 0,
32
+ RightLandscape = 90,
33
+ UpsideDown = 180,
34
+ LeftLandscape = -90
35
+ }
36
+ export declare class DeviceMotionSensor extends DeviceSensor<IDeviceMotionMeasurement> {
37
+ readonly gravity: number;
38
+ }
39
+ export declare const DeviceMotion: DeviceMotionSensor;
40
+ export declare const gravity: number;
@@ -0,0 +1,21 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentDeviceMotion } from './native/exponent-device-motion.js';
3
+ // Device orientation based on screen rotation.
4
+ export var DeviceMotionOrientation;
5
+ (function (DeviceMotionOrientation) {
6
+ DeviceMotionOrientation[DeviceMotionOrientation["Portrait"] = 0] = "Portrait";
7
+ DeviceMotionOrientation[DeviceMotionOrientation["RightLandscape"] = 90] = "RightLandscape";
8
+ DeviceMotionOrientation[DeviceMotionOrientation["UpsideDown"] = 180] = "UpsideDown";
9
+ DeviceMotionOrientation[DeviceMotionOrientation["LeftLandscape"] = -90] = "LeftLandscape";
10
+ })(DeviceMotionOrientation || (DeviceMotionOrientation = {}));
11
+ export class DeviceMotionSensor extends DeviceSensor {
12
+ // Standard gravitational acceleration for Earth (m/s^2), read off the native module rather
13
+ // than hardcoded — mirrors upstream's dual exposure as both an instance property and the
14
+ // standalone `gravity` export below.
15
+ gravity = exponentDeviceMotion.Gravity;
16
+ }
17
+ const DEVICE_MOTION_DID_UPDATE_EVENT_NAME = 'deviceMotionDidUpdate';
18
+ export const DeviceMotion = new DeviceMotionSensor(exponentDeviceMotion, DEVICE_MOTION_DID_UPDATE_EVENT_NAME);
19
+ // Standalone export mirroring the instance property above, for callers that only need the
20
+ // constant and not the full sensor singleton.
21
+ export const gravity = exponentDeviceMotion.Gravity;
@@ -0,0 +1,27 @@
1
+ import { PermissionStatus, type EventSubscription, type PermissionExpiration, type PermissionResponse } from 'expo-modules-core';
2
+ export type IListener<Measurement> = (measurement: Measurement) => void;
3
+ export type INativeSensorModule<Measurement> = {
4
+ addListener(eventName: string, listener: IListener<Measurement>): EventSubscription;
5
+ listenerCount(eventName: string): number;
6
+ removeAllListeners(eventName: string): void;
7
+ setUpdateInterval?(intervalMs: number): void;
8
+ isAvailableAsync?(): Promise<boolean>;
9
+ getPermissionsAsync?(): Promise<PermissionResponse>;
10
+ requestPermissionsAsync?(): Promise<PermissionResponse>;
11
+ };
12
+ export declare class DeviceSensor<Measurement> {
13
+ readonly nativeModule: INativeSensorModule<Measurement>;
14
+ readonly nativeEventName: string;
15
+ constructor(nativeModule: INativeSensorModule<Measurement>, nativeEventName: string);
16
+ addListener(listener: IListener<Measurement>): EventSubscription;
17
+ hasListeners(): boolean;
18
+ getListenerCount(): number;
19
+ removeAllListeners(): void;
20
+ removeSubscription(subscription: EventSubscription): void;
21
+ setUpdateInterval(intervalMs: number): void;
22
+ isAvailableAsync(): Promise<boolean>;
23
+ getPermissionsAsync(): Promise<PermissionResponse>;
24
+ requestPermissionsAsync(): Promise<PermissionResponse>;
25
+ }
26
+ export { PermissionStatus };
27
+ export type { EventSubscription, PermissionExpiration, PermissionResponse };
@@ -0,0 +1,61 @@
1
+ // expo-sensors' own DeviceSensor imports PermissionResponse/PermissionExpiration/PermissionStatus
2
+ // from the `expo` meta-package. We never depend on `expo` itself (it drags in a second
3
+ // Metro/babel pipeline — see the symbiote-expo-native-module skill) so this pulls the same
4
+ // three exports straight from expo-modules-core, which is where `expo` re-exports them from.
5
+ import { Platform, PermissionStatus, } from 'expo-modules-core';
6
+ const DEFAULT_PERMISSION_RESPONSE = {
7
+ granted: true,
8
+ expires: 'never',
9
+ canAskAgain: true,
10
+ status: PermissionStatus.GRANTED,
11
+ };
12
+ export class DeviceSensor {
13
+ nativeModule;
14
+ nativeEventName;
15
+ constructor(nativeModule, nativeEventName) {
16
+ this.nativeModule = nativeModule;
17
+ this.nativeEventName = nativeEventName;
18
+ }
19
+ addListener(listener) {
20
+ return this.nativeModule.addListener(this.nativeEventName, listener);
21
+ }
22
+ hasListeners() {
23
+ return this.getListenerCount() > 0;
24
+ }
25
+ getListenerCount() {
26
+ return this.nativeModule.listenerCount(this.nativeEventName);
27
+ }
28
+ removeAllListeners() {
29
+ this.nativeModule.removeAllListeners(this.nativeEventName);
30
+ }
31
+ // upstream keeps this only for callers still holding a pre-subscription-object reference.
32
+ removeSubscription(subscription) {
33
+ subscription.remove();
34
+ }
35
+ setUpdateInterval(intervalMs) {
36
+ if (!this.nativeModule.setUpdateInterval) {
37
+ console.warn(`@symbiote-native/sensors: setUpdateInterval() is not supported on ${Platform.OS}`);
38
+ return;
39
+ }
40
+ this.nativeModule.setUpdateInterval(intervalMs);
41
+ }
42
+ async isAvailableAsync() {
43
+ if (!this.nativeModule.isAvailableAsync) {
44
+ return false;
45
+ }
46
+ return this.nativeModule.isAvailableAsync();
47
+ }
48
+ async getPermissionsAsync() {
49
+ if (!this.nativeModule.getPermissionsAsync) {
50
+ return DEFAULT_PERMISSION_RESPONSE;
51
+ }
52
+ return this.nativeModule.getPermissionsAsync();
53
+ }
54
+ async requestPermissionsAsync() {
55
+ if (!this.nativeModule.requestPermissionsAsync) {
56
+ return DEFAULT_PERMISSION_RESPONSE;
57
+ }
58
+ return this.nativeModule.requestPermissionsAsync();
59
+ }
60
+ }
61
+ export { PermissionStatus };
@@ -0,0 +1,10 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IGyroscopeMeasurement = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ timestamp: number;
7
+ };
8
+ export declare class GyroscopeSensor extends DeviceSensor<IGyroscopeMeasurement> {
9
+ }
10
+ export declare const Gyroscope: GyroscopeSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentGyroscope } from './native/exponent-gyroscope.js';
3
+ export class GyroscopeSensor extends DeviceSensor {
4
+ }
5
+ const GYROSCOPE_DID_UPDATE_EVENT_NAME = 'gyroscopeDidUpdate';
6
+ export const Gyroscope = new GyroscopeSensor(exponentGyroscope, GYROSCOPE_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,11 @@
1
+ export { Accelerometer, AccelerometerSensor, type IAccelerometerMeasurement, } from './accelerometer';
2
+ export { Barometer, BarometerSensor, type IBarometerMeasurement } from './barometer';
3
+ export { DeviceMotion, DeviceMotionSensor, DeviceMotionOrientation, gravity, type IDeviceMotionMeasurement, } from './device-motion';
4
+ export { Gyroscope, GyroscopeSensor, type IGyroscopeMeasurement } from './gyroscope';
5
+ export { LightSensor, LightSensorSensor, type ILightSensorMeasurement } from './light-sensor';
6
+ export { Magnetometer, MagnetometerSensor, type IMagnetometerMeasurement } from './magnetometer';
7
+ export { MagnetometerUncalibrated, MagnetometerUncalibratedSensor, type IMagnetometerUncalibratedMeasurement, } from './magnetometer-uncalibrated';
8
+ export { watchStepCount, getStepCountAsync, isAvailableAsync, getPermissionsAsync, requestPermissionsAsync, type IPedometerResult, type IPedometerUpdateCallback, } from './pedometer';
9
+ export { DeviceSensor, type IListener, type INativeSensorModule } from './device-sensor';
10
+ export type { EventSubscription, PermissionExpiration, PermissionResponse, } from 'expo-modules-core';
11
+ export { PermissionStatus } from 'expo-modules-core';
@@ -0,0 +1,10 @@
1
+ export { Accelerometer, AccelerometerSensor, } from './accelerometer.js';
2
+ export { Barometer, BarometerSensor } from './barometer.js';
3
+ export { DeviceMotion, DeviceMotionSensor, DeviceMotionOrientation, gravity, } from './device-motion.js';
4
+ export { Gyroscope, GyroscopeSensor } from './gyroscope.js';
5
+ export { LightSensor, LightSensorSensor } from './light-sensor.js';
6
+ export { Magnetometer, MagnetometerSensor } from './magnetometer.js';
7
+ export { MagnetometerUncalibrated, MagnetometerUncalibratedSensor, } from './magnetometer-uncalibrated.js';
8
+ export { watchStepCount, getStepCountAsync, isAvailableAsync, getPermissionsAsync, requestPermissionsAsync, } from './pedometer.js';
9
+ export { DeviceSensor } from './device-sensor.js';
10
+ export { PermissionStatus } from 'expo-modules-core';
@@ -0,0 +1,8 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type ILightSensorMeasurement = {
3
+ illuminance: number;
4
+ timestamp: number;
5
+ };
6
+ export declare class LightSensorSensor extends DeviceSensor<ILightSensorMeasurement> {
7
+ }
8
+ export declare const LightSensor: LightSensorSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentLightSensor } from './native/exponent-light-sensor';
3
+ export class LightSensorSensor extends DeviceSensor {
4
+ }
5
+ const LIGHT_SENSOR_DID_UPDATE_EVENT_NAME = 'lightSensorDidUpdate';
6
+ export const LightSensor = new LightSensorSensor(exponentLightSensor, LIGHT_SENSOR_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,10 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IMagnetometerUncalibratedMeasurement = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ timestamp: number;
7
+ };
8
+ export declare class MagnetometerUncalibratedSensor extends DeviceSensor<IMagnetometerUncalibratedMeasurement> {
9
+ }
10
+ export declare const MagnetometerUncalibrated: MagnetometerUncalibratedSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentMagnetometerUncalibrated } from './native/exponent-magnetometer-uncalibrated.js';
3
+ export class MagnetometerUncalibratedSensor extends DeviceSensor {
4
+ }
5
+ const MAGNETOMETER_UNCALIBRATED_DID_UPDATE_EVENT_NAME = 'magnetometerUncalibratedDidUpdate';
6
+ export const MagnetometerUncalibrated = new MagnetometerUncalibratedSensor(exponentMagnetometerUncalibrated, MAGNETOMETER_UNCALIBRATED_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,10 @@
1
+ import { DeviceSensor } from './device-sensor';
2
+ export type IMagnetometerMeasurement = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ timestamp: number;
7
+ };
8
+ export declare class MagnetometerSensor extends DeviceSensor<IMagnetometerMeasurement> {
9
+ }
10
+ export declare const Magnetometer: MagnetometerSensor;
@@ -0,0 +1,6 @@
1
+ import { DeviceSensor } from './device-sensor.js';
2
+ import { exponentMagnetometer } from './native/exponent-magnetometer.js';
3
+ export class MagnetometerSensor extends DeviceSensor {
4
+ }
5
+ const MAGNETOMETER_DID_UPDATE_EVENT_NAME = 'magnetometerDidUpdate';
6
+ export const Magnetometer = new MagnetometerSensor(exponentMagnetometer, MAGNETOMETER_DID_UPDATE_EVENT_NAME);
@@ -0,0 +1,3 @@
1
+ import type { INativeSensorModule } from '../device-sensor';
2
+ import type { IAccelerometerMeasurement } from '../accelerometer';
3
+ export declare const exponentAccelerometer: INativeSensorModule<IAccelerometerMeasurement>;
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ const EXPONENT_ACCELEROMETER_MODULE_NAME = 'ExponentAccelerometer';
3
+ export const exponentAccelerometer = requireNativeModule(EXPONENT_ACCELEROMETER_MODULE_NAME);
@@ -0,0 +1,3 @@
1
+ import type { INativeSensorModule } from '../device-sensor';
2
+ import type { IBarometerMeasurement } from '../barometer';
3
+ export declare const exponentBarometer: INativeSensorModule<IBarometerMeasurement>;
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ const EXPO_BAROMETER_MODULE_NAME = 'ExpoBarometer';
3
+ export const exponentBarometer = requireNativeModule(EXPO_BAROMETER_MODULE_NAME);
@@ -0,0 +1,7 @@
1
+ import type { INativeSensorModule } from '../device-sensor';
2
+ import type { IDeviceMotionMeasurement } from '../device-motion';
3
+ type IExponentDeviceMotionModule = INativeSensorModule<IDeviceMotionMeasurement> & {
4
+ Gravity: number;
5
+ };
6
+ export declare const exponentDeviceMotion: IExponentDeviceMotionModule;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ const EXPONENT_DEVICE_MOTION_MODULE_NAME = 'ExponentDeviceMotion';
3
+ export const exponentDeviceMotion = requireNativeModule(EXPONENT_DEVICE_MOTION_MODULE_NAME);
@@ -0,0 +1,3 @@
1
+ import type { INativeSensorModule } from '../device-sensor';
2
+ import type { IGyroscopeMeasurement } from '../gyroscope';
3
+ export declare const exponentGyroscope: INativeSensorModule<IGyroscopeMeasurement>;
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ const EXPONENT_GYROSCOPE_MODULE_NAME = 'ExponentGyroscope';
3
+ export const exponentGyroscope = requireNativeModule(EXPONENT_GYROSCOPE_MODULE_NAME);
@@ -0,0 +1,3 @@
1
+ import type { INativeSensorModule } from '../../device-sensor';
2
+ import type { ILightSensorMeasurement } from '../../light-sensor';
3
+ export declare const exponentLightSensor: INativeSensorModule<ILightSensorMeasurement>;
@@ -0,0 +1,3 @@
1
+ import { requireNativeModule } from 'expo-modules-core';
2
+ const EXPONENT_LIGHT_SENSOR_MODULE_NAME = 'ExpoLightSensor';
3
+ export const exponentLightSensor = requireNativeModule(EXPONENT_LIGHT_SENSOR_MODULE_NAME);
@@ -0,0 +1 @@
1
+ export { exponentLightSensor } from './index.ios';
@@ -0,0 +1,3 @@
1
+ import type { INativeSensorModule } from '../../device-sensor';
2
+ import type { ILightSensorMeasurement } from '../../light-sensor';
3
+ export declare const exponentLightSensor: INativeSensorModule<ILightSensorMeasurement>;
@@ -0,0 +1,6 @@
1
+ export const exponentLightSensor = {
2
+ addListener: () => ({ remove: () => { } }),
3
+ listenerCount: () => 0,
4
+ removeAllListeners: () => { },
5
+ isAvailableAsync: async () => false,
6
+ };