@ovok/native 1.16.1-rc.3 → 1.16.1-rc.4

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 (597) hide show
  1. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +3 -1
  2. package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js +9 -141
  4. package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
  6. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/components/device-picker-sheet.js +160 -0
  8. package/lib/commonjs/modules/bt-management/components/device-picker-sheet.js.map +1 -0
  9. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  10. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js +2 -1
  11. package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -1
  12. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +1 -1
  13. package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -1
  14. package/lib/commonjs/modules/bt-management/index.js +12 -0
  15. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  16. package/lib/commonjs/modules/bt-management/services/bt-manager.js +50 -0
  17. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  18. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +3 -0
  19. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  20. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +4 -2
  21. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  22. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
  23. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  24. package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js +59 -0
  25. package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
  26. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +18 -37
  27. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +31 -3
  29. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  30. package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js +68 -0
  31. package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js +70 -0
  33. package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
  34. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +14 -0
  35. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  36. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +4 -7
  37. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
  38. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +106 -0
  39. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
  40. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
  41. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  42. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +41 -0
  43. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
  44. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +77 -0
  45. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
  46. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +49 -0
  47. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
  48. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +89 -0
  49. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
  50. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +35 -42
  51. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
  52. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +22 -24
  53. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  54. package/lib/commonjs/modules/bt-management/services/record-cursor.js +70 -0
  55. package/lib/commonjs/modules/bt-management/services/record-cursor.js.map +1 -0
  56. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +8 -0
  57. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  58. package/lib/commonjs/modules/bt-management/types/glucose-record-details.js +2 -0
  59. package/lib/commonjs/modules/bt-management/types/glucose-record-details.js.map +1 -0
  60. package/lib/commonjs/modules/bt-management/utils/bluetooth-permission-list.js +19 -0
  61. package/lib/commonjs/modules/bt-management/utils/bluetooth-permission-list.js.map +1 -0
  62. package/lib/commonjs/modules/bt-management/utils/device-user.js +22 -0
  63. package/lib/commonjs/modules/bt-management/utils/device-user.js.map +1 -0
  64. package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js +9 -0
  65. package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
  66. package/lib/commonjs/modules/bt-management/utils/result-identity.js +26 -35
  67. package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -1
  68. package/lib/commonjs/modules/bt-management/utils/rr-interval.js +16 -0
  69. package/lib/commonjs/modules/bt-management/utils/rr-interval.js.map +1 -0
  70. package/lib/commonjs/modules/bt-management/utils/temperature-type.js +15 -0
  71. package/lib/commonjs/modules/bt-management/utils/temperature-type.js.map +1 -0
  72. package/lib/commonjs/modules/bt-management/utils/wait.js +10 -0
  73. package/lib/commonjs/modules/bt-management/utils/wait.js.map +1 -0
  74. package/lib/commonjs/modules/next/background-sync/index.js +28 -0
  75. package/lib/commonjs/modules/next/background-sync/index.js.map +1 -0
  76. package/lib/commonjs/modules/next/background-sync/offline-measurement-background-sync.js +63 -0
  77. package/lib/commonjs/modules/next/background-sync/offline-measurement-background-sync.js.map +1 -0
  78. package/lib/commonjs/modules/next/bluetooth/auto-connect.js +32 -0
  79. package/lib/commonjs/modules/next/bluetooth/auto-connect.js.map +1 -0
  80. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-errors.js +33 -0
  81. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-errors.js.map +1 -0
  82. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js +162 -0
  83. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -0
  84. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-scanner.js +75 -0
  85. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-scanner.js.map +1 -0
  86. package/lib/commonjs/modules/next/bluetooth/ble-plx/built-in-devices.js +34 -0
  87. package/lib/commonjs/modules/next/bluetooth/ble-plx/built-in-devices.js.map +1 -0
  88. package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js +67 -0
  89. package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -0
  90. package/lib/commonjs/modules/next/bluetooth/connections.js +114 -0
  91. package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -0
  92. package/lib/commonjs/modules/next/bluetooth/daily-total-day.js.map +1 -0
  93. package/lib/commonjs/modules/next/bluetooth/devices.js +41 -0
  94. package/lib/commonjs/modules/next/bluetooth/devices.js.map +1 -0
  95. package/lib/commonjs/modules/next/bluetooth/driver.js +30 -20
  96. package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
  97. package/lib/commonjs/modules/next/bluetooth/errors.js +26 -0
  98. package/lib/commonjs/modules/next/bluetooth/errors.js.map +1 -0
  99. package/lib/commonjs/modules/next/bluetooth/index.js +122 -11
  100. package/lib/commonjs/modules/next/bluetooth/index.js.map +1 -1
  101. package/lib/commonjs/modules/next/bluetooth/link.js +0 -103
  102. package/lib/commonjs/modules/next/bluetooth/link.js.map +1 -1
  103. package/lib/commonjs/modules/next/bluetooth/paired.js +50 -0
  104. package/lib/commonjs/modules/next/bluetooth/paired.js.map +1 -0
  105. package/lib/commonjs/modules/next/bluetooth/permissions.js +2 -0
  106. package/lib/commonjs/modules/next/bluetooth/permissions.js.map +1 -0
  107. package/lib/commonjs/modules/next/bluetooth/react/bluetooth-device-picker.js +44 -0
  108. package/lib/commonjs/modules/next/bluetooth/react/bluetooth-device-picker.js.map +1 -0
  109. package/lib/commonjs/modules/next/bluetooth/react/context.js +54 -0
  110. package/lib/commonjs/modules/next/bluetooth/react/context.js.map +1 -0
  111. package/lib/commonjs/modules/next/bluetooth/react/hooks.js +86 -0
  112. package/lib/commonjs/modules/next/bluetooth/react/hooks.js.map +1 -0
  113. package/lib/commonjs/modules/next/bluetooth/react-native/create-bluetooth-runtime.js +28 -0
  114. package/lib/commonjs/modules/next/bluetooth/react-native/create-bluetooth-runtime.js.map +1 -0
  115. package/lib/commonjs/modules/next/bluetooth/react-native/os-permissions.js +32 -0
  116. package/lib/commonjs/modules/next/bluetooth/react-native/os-permissions.js.map +1 -0
  117. package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js +43 -0
  118. package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -0
  119. package/lib/commonjs/modules/next/bluetooth/readings.js +93 -0
  120. package/lib/commonjs/modules/next/bluetooth/readings.js.map +1 -0
  121. package/lib/commonjs/modules/next/bluetooth/result-policy.js +15 -2
  122. package/lib/commonjs/modules/next/bluetooth/result-policy.js.map +1 -1
  123. package/lib/commonjs/modules/next/bluetooth/runtime.js +223 -0
  124. package/lib/commonjs/modules/next/bluetooth/runtime.js.map +1 -0
  125. package/lib/commonjs/modules/next/bluetooth/scan-loop.js +82 -0
  126. package/lib/commonjs/modules/next/bluetooth/scan-loop.js.map +1 -0
  127. package/lib/commonjs/modules/next/bluetooth/sig-profiles.js +46 -13
  128. package/lib/commonjs/modules/next/bluetooth/sig-profiles.js.map +1 -1
  129. package/lib/commonjs/modules/next/bluetooth/sink.js +6 -0
  130. package/lib/commonjs/modules/next/bluetooth/sink.js.map +1 -0
  131. package/lib/commonjs/modules/next/bluetooth/snapshot.js +6 -0
  132. package/lib/commonjs/modules/next/bluetooth/snapshot.js.map +1 -0
  133. package/lib/commonjs/modules/next/bluetooth/stable-hash.js +42 -0
  134. package/lib/commonjs/modules/next/bluetooth/stable-hash.js.map +1 -0
  135. package/lib/commonjs/modules/next/bluetooth/store.js +61 -0
  136. package/lib/commonjs/modules/next/bluetooth/store.js.map +1 -0
  137. package/lib/commonjs/modules/next/bluetooth/transport.js +6 -0
  138. package/lib/commonjs/modules/next/bluetooth/transport.js.map +1 -0
  139. package/lib/commonjs/modules/next/data-sync/index.js +17 -0
  140. package/lib/commonjs/modules/next/data-sync/index.js.map +1 -0
  141. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +3 -1
  142. package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
  143. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js +9 -141
  144. package/lib/module/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
  145. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
  146. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  147. package/lib/module/modules/bt-management/components/device-picker-sheet.js +154 -0
  148. package/lib/module/modules/bt-management/components/device-picker-sheet.js.map +1 -0
  149. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  150. package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js +4 -3
  151. package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -1
  152. package/lib/module/modules/bt-management/hooks/use-measurements.js +1 -1
  153. package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -1
  154. package/lib/module/modules/bt-management/index.js +1 -0
  155. package/lib/module/modules/bt-management/index.js.map +1 -1
  156. package/lib/module/modules/bt-management/services/bt-manager.js +50 -0
  157. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  158. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +3 -0
  159. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  160. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +4 -2
  161. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  162. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
  163. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  164. package/lib/module/modules/bt-management/services/devices/bt-current-time.js +55 -0
  165. package/lib/module/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
  166. package/lib/module/modules/bt-management/services/devices/bt-device-information.js +18 -37
  167. package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  168. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +33 -5
  169. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  170. package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js +65 -0
  171. package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
  172. package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js +65 -0
  173. package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
  174. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +14 -0
  175. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  176. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +1 -4
  177. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
  178. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +99 -0
  179. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
  180. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
  181. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
  182. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +35 -0
  183. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
  184. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +72 -0
  185. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
  186. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +40 -0
  187. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
  188. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +85 -0
  189. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
  190. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +25 -32
  191. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
  192. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +18 -20
  193. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
  194. package/lib/module/modules/bt-management/services/record-cursor.js +66 -0
  195. package/lib/module/modules/bt-management/services/record-cursor.js.map +1 -0
  196. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +8 -0
  197. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  198. package/lib/module/modules/bt-management/types/custom-device-definition.js +4 -0
  199. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  200. package/lib/module/modules/bt-management/types/glucose-record-details.js +2 -0
  201. package/lib/module/modules/bt-management/types/glucose-record-details.js.map +1 -0
  202. package/lib/module/modules/bt-management/utils/bluetooth-permission-list.js +14 -0
  203. package/lib/module/modules/bt-management/utils/bluetooth-permission-list.js.map +1 -0
  204. package/lib/module/modules/bt-management/utils/device-user.js +17 -0
  205. package/lib/module/modules/bt-management/utils/device-user.js.map +1 -0
  206. package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js +6 -0
  207. package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
  208. package/lib/module/modules/bt-management/utils/result-identity.js +23 -33
  209. package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -1
  210. package/lib/module/modules/bt-management/utils/rr-interval.js +12 -0
  211. package/lib/module/modules/bt-management/utils/rr-interval.js.map +1 -0
  212. package/lib/module/modules/bt-management/utils/temperature-type.js +11 -0
  213. package/lib/module/modules/bt-management/utils/temperature-type.js.map +1 -0
  214. package/lib/module/modules/bt-management/utils/wait.js +5 -0
  215. package/lib/module/modules/bt-management/utils/wait.js.map +1 -0
  216. package/lib/module/modules/next/background-sync/index.js +12 -0
  217. package/lib/module/modules/next/background-sync/index.js.map +1 -0
  218. package/lib/module/modules/next/background-sync/offline-measurement-background-sync.js +55 -0
  219. package/lib/module/modules/next/background-sync/offline-measurement-background-sync.js.map +1 -0
  220. package/lib/module/modules/next/bluetooth/auto-connect.js +28 -0
  221. package/lib/module/modules/next/bluetooth/auto-connect.js.map +1 -0
  222. package/lib/module/modules/next/bluetooth/ble-plx/ble-errors.js +28 -0
  223. package/lib/module/modules/next/bluetooth/ble-plx/ble-errors.js.map +1 -0
  224. package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js +159 -0
  225. package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -0
  226. package/lib/module/modules/next/bluetooth/ble-plx/ble-scanner.js +69 -0
  227. package/lib/module/modules/next/bluetooth/ble-plx/ble-scanner.js.map +1 -0
  228. package/lib/module/modules/next/bluetooth/ble-plx/built-in-devices.js +31 -0
  229. package/lib/module/modules/next/bluetooth/ble-plx/built-in-devices.js.map +1 -0
  230. package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js +63 -0
  231. package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -0
  232. package/lib/module/modules/next/bluetooth/connections.js +110 -0
  233. package/lib/module/modules/next/bluetooth/connections.js.map +1 -0
  234. package/lib/module/modules/next/bluetooth/daily-total-day.js.map +1 -0
  235. package/lib/module/modules/next/bluetooth/devices.js +37 -0
  236. package/lib/module/modules/next/bluetooth/devices.js.map +1 -0
  237. package/lib/module/modules/next/bluetooth/driver.js +29 -20
  238. package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
  239. package/lib/module/modules/next/bluetooth/errors.js +21 -0
  240. package/lib/module/modules/next/bluetooth/errors.js.map +1 -0
  241. package/lib/module/modules/next/bluetooth/index.js +22 -4
  242. package/lib/module/modules/next/bluetooth/index.js.map +1 -1
  243. package/lib/module/modules/next/bluetooth/link.js +0 -101
  244. package/lib/module/modules/next/bluetooth/link.js.map +1 -1
  245. package/lib/module/modules/next/bluetooth/paired.js +46 -0
  246. package/lib/module/modules/next/bluetooth/paired.js.map +1 -0
  247. package/lib/module/modules/next/bluetooth/permissions.js +2 -0
  248. package/lib/module/modules/next/bluetooth/permissions.js.map +1 -0
  249. package/lib/module/modules/next/bluetooth/react/bluetooth-device-picker.js +39 -0
  250. package/lib/module/modules/next/bluetooth/react/bluetooth-device-picker.js.map +1 -0
  251. package/lib/module/modules/next/bluetooth/react/context.js +48 -0
  252. package/lib/module/modules/next/bluetooth/react/context.js.map +1 -0
  253. package/lib/module/modules/next/bluetooth/react/hooks.js +76 -0
  254. package/lib/module/modules/next/bluetooth/react/hooks.js.map +1 -0
  255. package/lib/module/modules/next/bluetooth/react-native/create-bluetooth-runtime.js +25 -0
  256. package/lib/module/modules/next/bluetooth/react-native/create-bluetooth-runtime.js.map +1 -0
  257. package/lib/module/modules/next/bluetooth/react-native/os-permissions.js +28 -0
  258. package/lib/module/modules/next/bluetooth/react-native/os-permissions.js.map +1 -0
  259. package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js +39 -0
  260. package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -0
  261. package/lib/module/modules/next/bluetooth/readings.js +89 -0
  262. package/lib/module/modules/next/bluetooth/readings.js.map +1 -0
  263. package/lib/module/modules/next/bluetooth/result-policy.js +14 -2
  264. package/lib/module/modules/next/bluetooth/result-policy.js.map +1 -1
  265. package/lib/module/modules/next/bluetooth/runtime.js +220 -0
  266. package/lib/module/modules/next/bluetooth/runtime.js.map +1 -0
  267. package/lib/module/modules/next/bluetooth/scan-loop.js +78 -0
  268. package/lib/module/modules/next/bluetooth/scan-loop.js.map +1 -0
  269. package/lib/module/modules/next/bluetooth/sig-profiles.js +44 -11
  270. package/lib/module/modules/next/bluetooth/sig-profiles.js.map +1 -1
  271. package/lib/module/modules/next/bluetooth/sink.js +4 -0
  272. package/lib/module/modules/next/bluetooth/sink.js.map +1 -0
  273. package/lib/module/modules/next/bluetooth/snapshot.js +4 -0
  274. package/lib/module/modules/next/bluetooth/snapshot.js.map +1 -0
  275. package/lib/module/modules/next/bluetooth/stable-hash.js +37 -0
  276. package/lib/module/modules/next/bluetooth/stable-hash.js.map +1 -0
  277. package/lib/module/modules/next/bluetooth/store.js +57 -0
  278. package/lib/module/modules/next/bluetooth/store.js.map +1 -0
  279. package/lib/module/modules/next/bluetooth/transport.js +4 -0
  280. package/lib/module/modules/next/bluetooth/transport.js.map +1 -0
  281. package/lib/module/modules/next/data-sync/index.js +11 -0
  282. package/lib/module/modules/next/data-sync/index.js.map +1 -0
  283. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
  284. package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts +1 -1
  286. package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/modules/bt-management/components/device-picker-sheet.d.ts +25 -0
  289. package/lib/typescript/commonjs/src/modules/bt-management/components/device-picker-sheet.d.ts.map +1 -0
  290. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  291. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -0
  295. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +20 -0
  297. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  299. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -1
  301. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
  303. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts +11 -0
  305. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
  306. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
  307. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +11 -1
  309. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts +15 -0
  311. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
  312. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
  313. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
  314. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  315. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
  318. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
  320. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  321. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
  322. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
  324. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
  326. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
  327. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
  328. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
  331. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts +21 -0
  333. package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
  334. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
  336. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +3 -0
  338. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  339. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +14 -1
  340. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
  342. package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
  343. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +2 -0
  344. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +6 -0
  346. package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/modules/bt-management/utils/bluetooth-permission-list.d.ts +4 -0
  348. package/lib/typescript/commonjs/src/modules/bt-management/utils/bluetooth-permission-list.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts +6 -0
  350. package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
  352. package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts +5 -4
  354. package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
  356. package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
  358. package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts +3 -0
  360. package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  362. package/lib/typescript/commonjs/src/modules/next/background-sync/index.d.ts +10 -0
  363. package/lib/typescript/commonjs/src/modules/next/background-sync/index.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/src/modules/next/background-sync/offline-measurement-background-sync.d.ts +22 -0
  365. package/lib/typescript/commonjs/src/modules/next/background-sync/offline-measurement-background-sync.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/src/modules/next/bluetooth/auto-connect.d.ts +10 -0
  367. package/lib/typescript/commonjs/src/modules/next/bluetooth/auto-connect.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts +4 -0
  369. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts.map +1 -0
  370. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +6 -0
  371. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -0
  372. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts +10 -0
  373. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts.map +1 -0
  374. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts +6 -0
  375. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts.map +1 -0
  376. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts +8 -0
  377. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts +25 -0
  379. package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -0
  380. package/lib/typescript/commonjs/src/modules/next/bluetooth/daily-total-day.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/modules/next/bluetooth/devices.d.ts +30 -0
  382. package/lib/typescript/commonjs/src/modules/next/bluetooth/devices.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +27 -20
  384. package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
  385. package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts +17 -0
  386. package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +34 -5
  388. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
  389. package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts +14 -5
  390. package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts.map +1 -1
  391. package/lib/typescript/commonjs/src/modules/next/bluetooth/paired.d.ts +18 -0
  392. package/lib/typescript/commonjs/src/modules/next/bluetooth/paired.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/src/modules/next/bluetooth/permissions.d.ts +13 -0
  394. package/lib/typescript/commonjs/src/modules/next/bluetooth/permissions.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts +35 -0
  396. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/context.d.ts +30 -0
  398. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/context.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/hooks.d.ts +47 -0
  400. package/lib/typescript/commonjs/src/modules/next/bluetooth/react/hooks.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts +21 -0
  402. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/os-permissions.d.ts +5 -0
  404. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/os-permissions.d.ts.map +1 -0
  405. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts +6 -0
  406. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/modules/next/bluetooth/readings.d.ts +21 -0
  408. package/lib/typescript/commonjs/src/modules/next/bluetooth/readings.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts +9 -1
  410. package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
  411. package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts +87 -0
  412. package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/modules/next/bluetooth/scan-loop.d.ts +23 -0
  414. package/lib/typescript/commonjs/src/modules/next/bluetooth/scan-loop.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/src/modules/next/bluetooth/sink.d.ts +20 -0
  417. package/lib/typescript/commonjs/src/modules/next/bluetooth/sink.d.ts.map +1 -0
  418. package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +72 -0
  419. package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -0
  420. package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts +6 -0
  421. package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -0
  422. package/lib/typescript/commonjs/src/modules/next/bluetooth/store.d.ts +16 -0
  423. package/lib/typescript/commonjs/src/modules/next/bluetooth/store.d.ts.map +1 -0
  424. package/lib/typescript/commonjs/src/modules/next/bluetooth/transport.d.ts +31 -0
  425. package/lib/typescript/commonjs/src/modules/next/bluetooth/transport.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/src/modules/next/data-sync/index.d.ts +9 -0
  427. package/lib/typescript/commonjs/src/modules/next/data-sync/index.d.ts.map +1 -0
  428. package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
  429. package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
  430. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts +1 -1
  431. package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
  432. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  433. package/lib/typescript/module/src/modules/bt-management/components/device-picker-sheet.d.ts +25 -0
  434. package/lib/typescript/module/src/modules/bt-management/components/device-picker-sheet.d.ts.map +1 -0
  435. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  436. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  437. package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -1
  438. package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
  439. package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -0
  440. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  441. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +20 -0
  442. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  443. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  444. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  445. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -1
  446. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  447. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
  448. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  449. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts +11 -0
  450. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
  451. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
  452. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  453. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +11 -1
  454. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  455. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts +15 -0
  456. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
  457. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
  458. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
  459. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  460. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  461. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
  462. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
  463. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
  464. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
  465. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
  466. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
  467. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
  468. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
  469. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
  470. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
  471. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
  472. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
  473. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
  474. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
  475. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
  476. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
  477. package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts +21 -0
  478. package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
  479. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  480. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
  481. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  482. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +3 -0
  483. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  484. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +14 -1
  485. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  486. package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
  487. package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
  488. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +2 -0
  489. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  490. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +6 -0
  491. package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
  492. package/lib/typescript/module/src/modules/bt-management/utils/bluetooth-permission-list.d.ts +4 -0
  493. package/lib/typescript/module/src/modules/bt-management/utils/bluetooth-permission-list.d.ts.map +1 -0
  494. package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts +6 -0
  495. package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
  496. package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
  497. package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
  498. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts +5 -4
  499. package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
  500. package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
  501. package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
  502. package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
  503. package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
  504. package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts +3 -0
  505. package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts.map +1 -0
  506. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  507. package/lib/typescript/module/src/modules/next/background-sync/index.d.ts +10 -0
  508. package/lib/typescript/module/src/modules/next/background-sync/index.d.ts.map +1 -0
  509. package/lib/typescript/module/src/modules/next/background-sync/offline-measurement-background-sync.d.ts +22 -0
  510. package/lib/typescript/module/src/modules/next/background-sync/offline-measurement-background-sync.d.ts.map +1 -0
  511. package/lib/typescript/module/src/modules/next/bluetooth/auto-connect.d.ts +10 -0
  512. package/lib/typescript/module/src/modules/next/bluetooth/auto-connect.d.ts.map +1 -0
  513. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts +4 -0
  514. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts.map +1 -0
  515. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +6 -0
  516. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -0
  517. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts +10 -0
  518. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts.map +1 -0
  519. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts +6 -0
  520. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts.map +1 -0
  521. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts +8 -0
  522. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -0
  523. package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts +25 -0
  524. package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -0
  525. package/lib/typescript/module/src/modules/next/bluetooth/daily-total-day.d.ts.map +1 -0
  526. package/lib/typescript/module/src/modules/next/bluetooth/devices.d.ts +30 -0
  527. package/lib/typescript/module/src/modules/next/bluetooth/devices.d.ts.map +1 -0
  528. package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +27 -20
  529. package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
  530. package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts +17 -0
  531. package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts.map +1 -0
  532. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +34 -5
  533. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
  534. package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts +14 -5
  535. package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts.map +1 -1
  536. package/lib/typescript/module/src/modules/next/bluetooth/paired.d.ts +18 -0
  537. package/lib/typescript/module/src/modules/next/bluetooth/paired.d.ts.map +1 -0
  538. package/lib/typescript/module/src/modules/next/bluetooth/permissions.d.ts +13 -0
  539. package/lib/typescript/module/src/modules/next/bluetooth/permissions.d.ts.map +1 -0
  540. package/lib/typescript/module/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts +35 -0
  541. package/lib/typescript/module/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts.map +1 -0
  542. package/lib/typescript/module/src/modules/next/bluetooth/react/context.d.ts +30 -0
  543. package/lib/typescript/module/src/modules/next/bluetooth/react/context.d.ts.map +1 -0
  544. package/lib/typescript/module/src/modules/next/bluetooth/react/hooks.d.ts +47 -0
  545. package/lib/typescript/module/src/modules/next/bluetooth/react/hooks.d.ts.map +1 -0
  546. package/lib/typescript/module/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts +21 -0
  547. package/lib/typescript/module/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts.map +1 -0
  548. package/lib/typescript/module/src/modules/next/bluetooth/react-native/os-permissions.d.ts +5 -0
  549. package/lib/typescript/module/src/modules/next/bluetooth/react-native/os-permissions.d.ts.map +1 -0
  550. package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts +6 -0
  551. package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -0
  552. package/lib/typescript/module/src/modules/next/bluetooth/readings.d.ts +21 -0
  553. package/lib/typescript/module/src/modules/next/bluetooth/readings.d.ts.map +1 -0
  554. package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts +9 -1
  555. package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
  556. package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts +87 -0
  557. package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts.map +1 -0
  558. package/lib/typescript/module/src/modules/next/bluetooth/scan-loop.d.ts +23 -0
  559. package/lib/typescript/module/src/modules/next/bluetooth/scan-loop.d.ts.map +1 -0
  560. package/lib/typescript/module/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
  561. package/lib/typescript/module/src/modules/next/bluetooth/sink.d.ts +20 -0
  562. package/lib/typescript/module/src/modules/next/bluetooth/sink.d.ts.map +1 -0
  563. package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +72 -0
  564. package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -0
  565. package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts +6 -0
  566. package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -0
  567. package/lib/typescript/module/src/modules/next/bluetooth/store.d.ts +16 -0
  568. package/lib/typescript/module/src/modules/next/bluetooth/store.d.ts.map +1 -0
  569. package/lib/typescript/module/src/modules/next/bluetooth/transport.d.ts +31 -0
  570. package/lib/typescript/module/src/modules/next/bluetooth/transport.d.ts.map +1 -0
  571. package/lib/typescript/module/src/modules/next/data-sync/index.d.ts +9 -0
  572. package/lib/typescript/module/src/modules/next/data-sync/index.d.ts.map +1 -0
  573. package/package.json +12 -2
  574. package/lib/commonjs/modules/bt-management/utils/daily-total-day.js.map +0 -1
  575. package/lib/commonjs/modules/next/bluetooth/drivers.js +0 -20
  576. package/lib/commonjs/modules/next/bluetooth/drivers.js.map +0 -1
  577. package/lib/commonjs/modules/next/bluetooth/legacy-driver.js +0 -55
  578. package/lib/commonjs/modules/next/bluetooth/legacy-driver.js.map +0 -1
  579. package/lib/module/modules/bt-management/utils/daily-total-day.js.map +0 -1
  580. package/lib/module/modules/next/bluetooth/drivers.js +0 -17
  581. package/lib/module/modules/next/bluetooth/drivers.js.map +0 -1
  582. package/lib/module/modules/next/bluetooth/legacy-driver.js +0 -51
  583. package/lib/module/modules/next/bluetooth/legacy-driver.js.map +0 -1
  584. package/lib/typescript/commonjs/src/modules/bt-management/utils/daily-total-day.d.ts.map +0 -1
  585. package/lib/typescript/commonjs/src/modules/next/bluetooth/drivers.d.ts +0 -7
  586. package/lib/typescript/commonjs/src/modules/next/bluetooth/drivers.d.ts.map +0 -1
  587. package/lib/typescript/commonjs/src/modules/next/bluetooth/legacy-driver.d.ts +0 -8
  588. package/lib/typescript/commonjs/src/modules/next/bluetooth/legacy-driver.d.ts.map +0 -1
  589. package/lib/typescript/module/src/modules/bt-management/utils/daily-total-day.d.ts.map +0 -1
  590. package/lib/typescript/module/src/modules/next/bluetooth/drivers.d.ts +0 -7
  591. package/lib/typescript/module/src/modules/next/bluetooth/drivers.d.ts.map +0 -1
  592. package/lib/typescript/module/src/modules/next/bluetooth/legacy-driver.d.ts +0 -8
  593. package/lib/typescript/module/src/modules/next/bluetooth/legacy-driver.d.ts.map +0 -1
  594. /package/lib/commonjs/modules/{bt-management/utils → next/bluetooth}/daily-total-day.js +0 -0
  595. /package/lib/module/modules/{bt-management/utils → next/bluetooth}/daily-total-day.js +0 -0
  596. /package/lib/typescript/commonjs/src/modules/{bt-management/utils → next/bluetooth}/daily-total-day.d.ts +0 -0
  597. /package/lib/typescript/module/src/modules/{bt-management/utils → next/bluetooth}/daily-total-day.d.ts +0 -0
@@ -11,11 +11,24 @@ Object.defineProperty(exports, "bloodPressureStatusFromFrame", {
11
11
  });
12
12
  exports.recordedAtFromBloodPressureFrame = exports.littleEndian = exports.decorateBloodPressureReading = exports.declareProfile = void 0;
13
13
  var _bloodPressureStates = require("../../../types/blood-pressure-states.js");
14
+ var _deviceUser = require("../../../utils/device-user.js");
14
15
  var _sigUuid = require("../../../utils/sig-uuid.js");
15
16
  var _defineCustomDevice = require("../../custom/define-custom-device.js");
16
17
  var _standardGattBloodPressureStatus = require("./standard-gatt.blood-pressure-status.js");
18
+ var _standardGattFrame = require("./standard-gatt.frame.js");
17
19
  /** Milliseconds a spot-check device may take to produce its reading. */
18
20
  const SPOT_CHECK_TIMEOUT_MS = 60_000;
21
+ /** Runs `first`, then `second` on what it returns; either may withhold the reading. */
22
+ const chainDecorators = (first, second) => {
23
+ if (!first || !second) {
24
+ return first ?? second;
25
+ }
26
+ return (reading, frame, recordOffset) => {
27
+ const decorated = first(reading, frame, recordOffset);
28
+ return decorated && second(decorated, frame, recordOffset);
29
+ };
30
+ };
31
+
19
32
  /**
20
33
  * The flags byte selects the case, because it decides which optional fields are present and
21
34
  * therefore where the later ones sit. Fields common to every shape are declared once; a
@@ -52,7 +65,7 @@ const declareProfile = (params, profile) => (0, _defineCustomDevice.defineCustom
52
65
  }]
53
66
  }]
54
67
  }, {
55
- decorateReading: params.decorateReading
68
+ decorateReading: chainDecorators(profile.decorateReading, params.decorateReading)
56
69
  });
57
70
  exports.declareProfile = declareProfile;
58
71
  const littleEndian = (name, byteIndexes, unit, encoding) => ({
@@ -62,28 +75,12 @@ const littleEndian = (name, byteIndexes, unit, encoding) => ({
62
75
  encoding,
63
76
  unit
64
77
  });
65
- exports.littleEndian = littleEndian;
66
- const byteAt = (frame, index, offset) => {
67
- const value = Number.parseInt(frame[index + offset] ?? "", 16);
68
- return Number.isInteger(value) && value >= 0 && value <= 0xff ? value : undefined;
69
- };
70
78
 
71
79
  /** Reads the SIG blood-pressure timestamp as a phone-local date. */
80
+ exports.littleEndian = littleEndian;
72
81
  const recordedAtFromBloodPressureFrame = (frame, offset = 0) => {
73
- const flags = byteAt(frame, 0, offset);
74
- const yearLow = byteAt(frame, 7, offset);
75
- const yearHigh = byteAt(frame, 8, offset);
76
- const month = byteAt(frame, 9, offset);
77
- const day = byteAt(frame, 10, offset);
78
- const hour = byteAt(frame, 11, offset);
79
- const minute = byteAt(frame, 12, offset);
80
- const second = byteAt(frame, 13, offset);
81
- if (flags === undefined || (flags & 0x02) === 0 || yearLow === undefined || yearHigh === undefined || month === undefined || day === undefined || hour === undefined || minute === undefined || second === undefined) {
82
- return undefined;
83
- }
84
- const year = yearLow | yearHigh << 8;
85
- const recordedAt = new Date(year, month - 1, day, hour, minute, second);
86
- return recordedAt.getFullYear() === year && recordedAt.getMonth() === month - 1 && recordedAt.getDate() === day && recordedAt.getHours() === hour && recordedAt.getMinutes() === minute && recordedAt.getSeconds() === second ? recordedAt : undefined;
82
+ const flags = (0, _standardGattFrame.byteAt)(frame, 0, offset);
83
+ return flags !== undefined && (flags & 0x02) !== 0 ? (0, _standardGattFrame.dateTimeAt)(frame, 7, offset) : undefined;
87
84
  };
88
85
  exports.recordedAtFromBloodPressureFrame = recordedAtFromBloodPressureFrame;
89
86
  const decorateBloodPressureReading = (reading, frame, recordOffset) => {
@@ -91,7 +88,7 @@ const decorateBloodPressureReading = (reading, frame, recordOffset) => {
91
88
  return reading;
92
89
  }
93
90
  const offset = recordOffset ?? 0;
94
- const flags = byteAt(frame, 0, offset);
91
+ const flags = (0, _standardGattFrame.byteAt)(frame, 0, offset);
95
92
  const recordedAt = recordedAtFromBloodPressureFrame(frame, offset);
96
93
  if (flags === undefined) {
97
94
  return recordedAt ? {
@@ -110,9 +107,10 @@ const decorateBloodPressureReading = (reading, frame, recordOffset) => {
110
107
  recordedAt
111
108
  } : {};
112
109
  if ((flags & 0x08) !== 0) {
113
- const userId = byteAt(frame, cursor, offset);
114
- if (userId === 0 || userId === 1) {
115
- metadata.memorySlot = userId + 1;
110
+ const userId = (0, _standardGattFrame.byteAt)(frame, cursor, offset);
111
+ const memorySlot = userId === undefined ? undefined : (0, _deviceUser.memorySlotForDeviceUser)(userId);
112
+ if (memorySlot !== undefined) {
113
+ metadata.memorySlot = memorySlot;
116
114
  }
117
115
  cursor += 1;
118
116
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_bloodPressureStates","require","_sigUuid","_defineCustomDevice","_standardGattBloodPressureStatus","SPOT_CHECK_TIMEOUT_MS","declareProfile","params","profile","defineCustomDevice","id","measurementTypeKey","nameMatch","matchByService","undefined","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","sigUuid","service","monitor","characteristic","frame","minLengthBytes","caseSelectorBytes","cases","selectors","map","selector","optional","optionalFields","fields","fieldsBySelector","kind","decorateReading","exports","littleEndian","name","byteIndexes","unit","encoding","byteOrder","byteAt","index","offset","value","Number","parseInt","isInteger","recordedAtFromBloodPressureFrame","flags","yearLow","yearHigh","month","day","hour","minute","second","year","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","decorateBloodPressureReading","reading","recordOffset","cursor","metadata","userId","memorySlot","status","bloodPressureStatusFromFrame","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","irregularHeartbeat","Object","keys","length"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bloodPressureStates","require","_deviceUser","_sigUuid","_defineCustomDevice","_standardGattBloodPressureStatus","_standardGattFrame","SPOT_CHECK_TIMEOUT_MS","chainDecorators","first","second","reading","frame","recordOffset","decorated","declareProfile","params","profile","defineCustomDevice","id","measurementTypeKey","nameMatch","matchByService","undefined","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","sigUuid","service","monitor","characteristic","minLengthBytes","caseSelectorBytes","cases","selectors","map","selector","optional","optionalFields","fields","fieldsBySelector","kind","decorateReading","exports","littleEndian","name","byteIndexes","unit","encoding","byteOrder","recordedAtFromBloodPressureFrame","offset","flags","byteAt","dateTimeAt","decorateBloodPressureReading","recordedAt","cursor","metadata","userId","memorySlot","memorySlotForDeviceUser","status","bloodPressureStatusFromFrame","BloodPressureStates","DISTURB_DETECTED","LOOSE_SLEEVE","REGULAR","irregularHeartbeat","Object","keys","length"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RecordCursor = void 0;
7
+ var _sentryLogger = require("../../helpers/utils/sentry-logger.js");
8
+ var _bluetoothError = require("../types/bluetooth-error.js");
9
+ const parseCursor = stored => {
10
+ const parsed = Number.parseInt(stored ?? "", 10);
11
+ return Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : undefined;
12
+ };
13
+
14
+ /**
15
+ * The number of the newest stored record read from one device, kept in `storage` so the next
16
+ * connection asks the device for newer records only. Without storage it forgets on disconnect.
17
+ */
18
+ class RecordCursor {
19
+ writing = false;
20
+ changedWhileWriting = false;
21
+ constructor(storage, key) {
22
+ this.storage = storage;
23
+ this.key = key;
24
+ }
25
+
26
+ /** What an earlier connection stored; nothing, an unreadable value or a failing store gives `undefined`. */
27
+ load = async () => {
28
+ try {
29
+ this.newest = parseCursor(await this.storage?.getItem(this.key));
30
+ } catch (error) {
31
+ (0, _sentryLogger.sentryLogger)("error", "RECORD_CURSOR: Could not read the stored cursor", {
32
+ errorCode: (0, _bluetoothError.toBluetoothError)(error).code
33
+ });
34
+ this.newest = undefined;
35
+ }
36
+ return this.newest;
37
+ };
38
+
39
+ /** Remembers a record number that is newer than any seen; writes to the store are coalesced. */
40
+ advance = recordNumber => {
41
+ if (this.newest !== undefined && recordNumber <= this.newest) {
42
+ return;
43
+ }
44
+ this.newest = recordNumber;
45
+ void this.persist();
46
+ };
47
+ persist = async () => {
48
+ if (this.writing) {
49
+ this.changedWhileWriting = true;
50
+ return;
51
+ }
52
+ this.writing = true;
53
+ do {
54
+ this.changedWhileWriting = false;
55
+ await this.store();
56
+ } while (this.changedWhileWriting);
57
+ this.writing = false;
58
+ };
59
+ store = async () => {
60
+ try {
61
+ await this.storage?.setItem(this.key, String(this.newest));
62
+ } catch (error) {
63
+ (0, _sentryLogger.sentryLogger)("error", "RECORD_CURSOR: Could not store the cursor", {
64
+ errorCode: (0, _bluetoothError.toBluetoothError)(error).code
65
+ });
66
+ }
67
+ };
68
+ }
69
+ exports.RecordCursor = RecordCursor;
70
+ //# sourceMappingURL=record-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_sentryLogger","require","_bluetoothError","parseCursor","stored","parsed","Number","parseInt","isSafeInteger","undefined","RecordCursor","writing","changedWhileWriting","constructor","storage","key","load","newest","getItem","error","sentryLogger","errorCode","toBluetoothError","code","advance","recordNumber","persist","store","setItem","String","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/record-cursor.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAEA,MAAME,WAAW,GAAIC,MAAiC,IAAyB;EAC7E,MAAMC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACH,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC;EAEhD,OAAOE,MAAM,CAACE,aAAa,CAACH,MAAM,CAAC,IAAIA,MAAM,IAAI,CAAC,GAAGA,MAAM,GAAGI,SAAS;AACzE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,YAAY,CAAC;EAETC,OAAO,GAAG,KAAK;EACfC,mBAAmB,GAAG,KAAK;EAE5BC,WAAWA,CACCC,OAA0C,EAC1CC,GAAW,EAC5B;IAAA,KAFiBD,OAA0C,GAA1CA,OAA0C;IAAA,KAC1CC,GAAW,GAAXA,GAAW;EAC3B;;EAEH;EACOC,IAAI,GAAG,MAAAA,CAAA,KAAyC;IACrD,IAAI;MACF,IAAI,CAACC,MAAM,GAAGd,WAAW,CAAC,MAAM,IAAI,CAACW,OAAO,EAAEI,OAAO,CAAC,IAAI,CAACH,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC,OAAOI,KAAK,EAAE;MACd,IAAAC,0BAAY,EAAC,OAAO,EAAE,iDAAiD,EAAE;QACvEC,SAAS,EAAE,IAAAC,gCAAgB,EAACH,KAAK,CAAC,CAACI;MACrC,CAAC,CAAC;MACF,IAAI,CAACN,MAAM,GAAGR,SAAS;IACzB;IAEA,OAAO,IAAI,CAACQ,MAAM;EACpB,CAAC;;EAED;EACOO,OAAO,GAAIC,YAAoB,IAAW;IAC/C,IAAI,IAAI,CAACR,MAAM,KAAKR,SAAS,IAAIgB,YAAY,IAAI,IAAI,CAACR,MAAM,EAAE;MAC5D;IACF;IAEA,IAAI,CAACA,MAAM,GAAGQ,YAAY;IAC1B,KAAK,IAAI,CAACC,OAAO,CAAC,CAAC;EACrB,CAAC;EAEOA,OAAO,GAAG,MAAAA,CAAA,KAA2B;IAC3C,IAAI,IAAI,CAACf,OAAO,EAAE;MAChB,IAAI,CAACC,mBAAmB,GAAG,IAAI;MAE/B;IACF;IAEA,IAAI,CAACD,OAAO,GAAG,IAAI;IAEnB,GAAG;MACD,IAAI,CAACC,mBAAmB,GAAG,KAAK;MAChC,MAAM,IAAI,CAACe,KAAK,CAAC,CAAC;IACpB,CAAC,QAAQ,IAAI,CAACf,mBAAmB;IAEjC,IAAI,CAACD,OAAO,GAAG,KAAK;EACtB,CAAC;EAEOgB,KAAK,GAAG,MAAAA,CAAA,KAA2B;IACzC,IAAI;MACF,MAAM,IAAI,CAACb,OAAO,EAAEc,OAAO,CAAC,IAAI,CAACb,GAAG,EAAEc,MAAM,CAAC,IAAI,CAACZ,MAAM,CAAC,CAAC;IAC5D,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,IAAAC,0BAAY,EAAC,OAAO,EAAE,2CAA2C,EAAE;QACjEC,SAAS,EAAE,IAAAC,gCAAgB,EAACH,KAAK,CAAC,CAACI;MACrC,CAAC,CAAC;IACJ;EACF,CAAC;AACH;AAACO,OAAA,CAAApB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createFakeBleManager = exports.createFakeBleDevice = void 0;
7
+ var _buffer = require("buffer");
7
8
  var _reactNativeBlePlx = require("react-native-ble-plx");
8
9
  /* eslint-disable import/group-exports */
9
10
 
@@ -16,6 +17,8 @@ var _reactNativeBlePlx = require("react-native-ble-plx");
16
17
  /** A deterministic BLE manager for hook and scan integration tests. No hardware is used. */
17
18
 
18
19
  const characteristicKey = (serviceUuid, characteristicUuid) => `${serviceUuid}/${characteristicUuid}`;
20
+ const NOTIFICATIONS_ENABLED = _buffer.Buffer.from([0x01, 0x00]).toString("base64");
21
+ const NOTIFICATIONS_DISABLED = _buffer.Buffer.from([0x00, 0x00]).toString("base64");
19
22
 
20
23
  /** Creates a GATT-capable fake device for connection and notification tests. */
21
24
  const createFakeBleDevice = ({
@@ -30,6 +33,7 @@ const createFakeBleDevice = ({
30
33
  let connected = false;
31
34
  let currentMtu = mtu;
32
35
  const values = new Map(Object.entries(characteristics));
36
+ const monitoredKeys = new Set();
33
37
  const disconnectedCallbacks = new Set();
34
38
  const notificationCallbacks = new Map();
35
39
  const fake = {
@@ -65,8 +69,12 @@ const createFakeBleDevice = ({
65
69
  readCharacteristicForService: async (serviceUuid, characteristicUuid) => ({
66
70
  value: values.get(characteristicKey(serviceUuid, characteristicUuid)) ?? null
67
71
  }),
72
+ readDescriptorForService: async (serviceUuid, characteristicUuid) => ({
73
+ value: monitoredKeys.has(characteristicKey(serviceUuid, characteristicUuid)) ? NOTIFICATIONS_ENABLED : NOTIFICATIONS_DISABLED
74
+ }),
68
75
  monitorCharacteristicForService: (serviceUuid, characteristicUuid, callback) => {
69
76
  const key = characteristicKey(serviceUuid, characteristicUuid);
77
+ monitoredKeys.add(key);
70
78
  const callbacks = notificationCallbacks.get(key) ?? new Set();
71
79
  callbacks.add(callback);
72
80
  notificationCallbacks.set(key, callbacks);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeBlePlx","require","characteristicKey","serviceUuid","characteristicUuid","createFakeBleDevice","id","name","localName","manufacturerData","serviceUUIDs","mtu","characteristics","connected","currentMtu","values","Map","Object","entries","disconnectedCallbacks","Set","notificationCallbacks","fake","isConnected","connect","cancelConnection","forEach","callback","discoverAllServicesAndCharacteristics","onDisconnected","add","remove","delete","requestMTU","requestedMtu","readCharacteristicForService","value","get","monitorCharacteristicForService","key","callbacks","set","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","device","emitCharacteristic","characteristic","uuid","disconnect","exports","createFakeBleManager","state","State","PoweredOn","devices","currentState","scanCallback","stateCallbacks","scannedServiceUUIDs","manager","onStateChange","emitCurrentState","startDeviceScan","_options","stopDeviceScan","undefined","createDevice","emitDevice","emitError","error","setState","nextState","getScannedServiceUUIDs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/fake-ble-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_buffer","require","_reactNativeBlePlx","characteristicKey","serviceUuid","characteristicUuid","NOTIFICATIONS_ENABLED","Buffer","from","toString","NOTIFICATIONS_DISABLED","createFakeBleDevice","id","name","localName","manufacturerData","serviceUUIDs","mtu","characteristics","connected","currentMtu","values","Map","Object","entries","monitoredKeys","Set","disconnectedCallbacks","notificationCallbacks","fake","isConnected","connect","cancelConnection","forEach","callback","discoverAllServicesAndCharacteristics","onDisconnected","add","remove","delete","requestMTU","requestedMtu","readCharacteristicForService","value","get","readDescriptorForService","has","monitorCharacteristicForService","key","callbacks","set","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","device","emitCharacteristic","characteristic","uuid","disconnect","exports","createFakeBleManager","state","State","PoweredOn","devices","currentState","scanCallback","stateCallbacks","scannedServiceUUIDs","manager","onStateChange","emitCurrentState","startDeviceScan","_options","stopDeviceScan","undefined","createDevice","emitDevice","emitError","error","setState","nextState","getScannedServiceUUIDs"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/testing/fake-ble-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=glucose-record-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/glucose-record-details.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bluetoothPermissionList = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _reactNativePermissions = require("react-native-permissions");
9
+ const ANDROID_12_API_LEVEL = 31;
10
+
11
+ /** The OS permissions Bluetooth scanning and connecting need on this platform. */
12
+ const bluetoothPermissionList = () => {
13
+ if (_reactNative.Platform.OS === "android") {
14
+ return Number(_reactNative.Platform.Version) >= ANDROID_12_API_LEVEL ? [_reactNativePermissions.PERMISSIONS.ANDROID.BLUETOOTH_CONNECT, _reactNativePermissions.PERMISSIONS.ANDROID.BLUETOOTH_SCAN] : [_reactNativePermissions.PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION];
15
+ }
16
+ return _reactNative.Platform.OS === "ios" ? [_reactNativePermissions.PERMISSIONS.IOS.BLUETOOTH] : [];
17
+ };
18
+ exports.bluetoothPermissionList = bluetoothPermissionList;
19
+ //# sourceMappingURL=bluetooth-permission-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNativePermissions","ANDROID_12_API_LEVEL","bluetoothPermissionList","Platform","OS","Number","Version","PERMISSIONS","ANDROID","BLUETOOTH_CONNECT","BLUETOOTH_SCAN","ACCESS_FINE_LOCATION","IOS","BLUETOOTH","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/bluetooth-permission-list.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAD,OAAA;AAEA,MAAME,oBAAoB,GAAG,EAAE;;AAE/B;AACO,MAAMC,uBAAuB,GAAGA,CAAA,KAAoB;EACzD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAOC,MAAM,CAACF,qBAAQ,CAACG,OAAO,CAAC,IAAIL,oBAAoB,GACnD,CAACM,mCAAW,CAACC,OAAO,CAACC,iBAAiB,EAAEF,mCAAW,CAACC,OAAO,CAACE,cAAc,CAAC,GAC3E,CAACH,mCAAW,CAACC,OAAO,CAACG,oBAAoB,CAAC;EAChD;EAEA,OAAOR,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,CAACG,mCAAW,CAACK,GAAG,CAACC,SAAS,CAAC,GAAG,EAAE;AACjE,CAAC;AAACC,OAAA,CAAAZ,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.memorySlotForDeviceUser = exports.isFromAcceptedMemorySlot = void 0;
7
+ /** The Bluetooth SIG User Index that means the device does not know whose reading it is. */
8
+ const UNKNOWN_DEVICE_USER = 0xff;
9
+
10
+ /** The memory slot of a SIG device user: users count from 0, slots from 1; the unknown user has none. */
11
+ const memorySlotForDeviceUser = userId => userId === UNKNOWN_DEVICE_USER ? undefined : userId + 1;
12
+
13
+ /** Whether a reading is from one of the device users `slots`; a reading that names no device user is kept. */
14
+ exports.memorySlotForDeviceUser = memorySlotForDeviceUser;
15
+ const isFromAcceptedMemorySlot = (reading, slots) => {
16
+ const {
17
+ memorySlot
18
+ } = reading;
19
+ return typeof memorySlot !== "number" || slots.includes(memorySlot);
20
+ };
21
+ exports.isFromAcceptedMemorySlot = isFromAcceptedMemorySlot;
22
+ //# sourceMappingURL=device-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UNKNOWN_DEVICE_USER","memorySlotForDeviceUser","userId","undefined","exports","isFromAcceptedMemorySlot","reading","slots","memorySlot","includes"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/device-user.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,mBAAmB,GAAG,IAAI;;AAEhC;AACA,MAAMC,uBAAuB,GAAIC,MAAc,IAC7CA,MAAM,KAAKF,mBAAmB,GAAGG,SAAS,GAAGD,MAAM,GAAG,CAAC;;AAEzD;AAAAE,OAAA,CAAAH,uBAAA,GAAAA,uBAAA;AACA,MAAMI,wBAAwB,GAAGA,CAC/BC,OAAe,EACfC,KAAwB,KACZ;EACZ,MAAM;IAAEC;EAAW,CAAC,GAAGF,OAAmC;EAE1D,OAAO,OAAOE,UAAU,KAAK,QAAQ,IAAID,KAAK,CAACE,QAAQ,CAACD,UAAU,CAAC;AACrE,CAAC;AAACJ,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.KPA_TO_MMHG = void 0;
7
+ /** Millimetres of mercury in one kilopascal. */
8
+ const KPA_TO_MMHG = exports.KPA_TO_MMHG = 7.50062;
9
+ //# sourceMappingURL=kpa-to-mmhg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KPA_TO_MMHG","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/kpa-to-mmhg.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
@@ -3,48 +3,39 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.reviveResultDates = exports.createStableResultId = void 0;
6
+ exports.reviveResultDates = exports.createStableResultId = exports.createLegacyResultId = void 0;
7
+ var _driver = require("../../next/bluetooth/driver.js");
8
+ var _stableHash = require("../../next/bluetooth/stable-hash.js");
7
9
  /* eslint-disable import/group-exports */
8
10
 
9
- const canonicalize = value => {
10
- if (value instanceof Date) {
11
- return value.toISOString();
12
- }
13
- if (Array.isArray(value)) {
14
- return value.map(canonicalize);
15
- }
16
- if (value && typeof value === "object") {
17
- return Object.fromEntries(Object.entries(value).sort(([left], [right]) => left.localeCompare(right)).map(([key, nested]) => [key, canonicalize(nested)]));
18
- }
19
- return value;
20
- };
21
- const hash = value => {
22
- let first = 0x811c9dc5;
23
- let second = 0x01000193;
24
- for (let index = 0; index < value.length; index += 1) {
25
- const code = value.charCodeAt(index);
26
- first = Math.imul(first ^ code, 0x01000193);
27
- second = Math.imul(second ^ code + index, 0x811c9dc5);
28
- }
29
- return `${(first >>> 0).toString(16).padStart(8, "0")}${(second >>> 0).toString(16).padStart(8, "0")}`;
30
- };
11
+ /** Reading properties added after result ids were first issued; leaving them out keeps every earlier id. */
12
+ const ADDED_READING_PROPERTIES = new Set(["sequenceNumber", "specimen", "sampleLocation", "sensorStatus", "outOfRange", "meal", "reportedUnit", "temperatureType", "rrIntervals"]);
13
+ const identifyingData = data => Object.fromEntries(Object.entries(data).filter(([key]) => !ADDED_READING_PROPERTIES.has(key)));
14
+ const deviceIdentityOf = deviceData => deviceData.sn || deviceData.manufacturerData || deviceData.model || deviceData.name || deviceData.id;
31
15
 
32
16
  /**
33
- * Creates an identity that is stable when a device sends its stored history again.
34
- * Recording IDs, timestamps and indexes are retained in the canonical payload; transient
35
- * delivery metadata is deliberately not part of the key.
17
+ * Creates an identity that is stable when a device sends its stored history again, in any time zone. A reading
18
+ * without a time of its own is a new measurement each time, so it is told apart by when it arrived.
36
19
  */
37
- const createStableResultId = (deviceData, data) => {
38
- const deviceIdentity = deviceData.sn || deviceData.manufacturerData || deviceData.model || deviceData.name || deviceData.id;
39
- return `ovok:${hash(JSON.stringify(canonicalize({
40
- device: deviceIdentity,
41
- name: deviceData.name,
42
- data
43
- })))}`;
44
- };
20
+ const createStableResultId = (deviceData, data, receivedAt = new Date()) => `ovok:${(0, _stableHash.stableHash)({
21
+ device: deviceIdentityOf(deviceData),
22
+ name: deviceData.name,
23
+ data: identifyingData(data),
24
+ ...((0, _driver.isTimestamped)(data) ? {} : {
25
+ receivedAt: receivedAt.toISOString()
26
+ })
27
+ })}`;
45
28
 
46
- /** Converts the ISO date strings of `recordedAt`, `start` and `end` fields back to `Date`s, recursively. */
29
+ /** The id SDKs before 1.16.1 gave the same reading, to find what they saved. */
47
30
  exports.createStableResultId = createStableResultId;
31
+ const createLegacyResultId = (deviceData, data) => `ovok:${(0, _stableHash.instantStableHash)({
32
+ device: deviceIdentityOf(deviceData),
33
+ name: deviceData.name,
34
+ data: identifyingData(data)
35
+ })}`;
36
+
37
+ /** Converts the ISO date strings of `recordedAt`, `start` and `end` fields back to `Date`s, recursively. */
38
+ exports.createLegacyResultId = createLegacyResultId;
48
39
  const reviveResultDates = value => {
49
40
  const revive = (current, key) => {
50
41
  if (typeof current === "string" && ["recordedAt", "start", "end"].includes(key ?? "")) {
@@ -1 +1 @@
1
- {"version":3,"names":["canonicalize","value","Date","toISOString","Array","isArray","map","Object","fromEntries","entries","sort","left","right","localeCompare","key","nested","hash","first","second","index","length","code","charCodeAt","Math","imul","toString","padStart","createStableResultId","deviceData","data","deviceIdentity","sn","manufacturerData","model","name","id","JSON","stringify","device","exports","reviveResultDates","revive","current","includes","date","Number","isNaN","getTime","item","childKey","childValue"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/result-identity.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_driver","require","_stableHash","ADDED_READING_PROPERTIES","Set","identifyingData","data","Object","fromEntries","entries","filter","key","has","deviceIdentityOf","deviceData","sn","manufacturerData","model","name","id","createStableResultId","receivedAt","Date","stableHash","device","isTimestamped","toISOString","exports","createLegacyResultId","instantStableHash","reviveResultDates","value","revive","current","includes","date","Number","isNaN","getTime","Array","isArray","map","item","childKey","childValue"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/result-identity.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.rrIntervalMilliseconds = void 0;
7
+ const MILLISECONDS_PER_SECOND = 1000;
8
+
9
+ /** The Bluetooth SIG heart-rate RR-Interval resolution: counts of 1/1024 s. */
10
+ const RR_COUNTS_PER_SECOND = 1024;
11
+ const RR_DECIMALS = 2;
12
+
13
+ /** An RR-Interval count from a Heart Rate Measurement, in milliseconds. */
14
+ const rrIntervalMilliseconds = counts => Number((counts * MILLISECONDS_PER_SECOND / RR_COUNTS_PER_SECOND).toFixed(RR_DECIMALS));
15
+ exports.rrIntervalMilliseconds = rrIntervalMilliseconds;
16
+ //# sourceMappingURL=rr-interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MILLISECONDS_PER_SECOND","RR_COUNTS_PER_SECOND","RR_DECIMALS","rrIntervalMilliseconds","counts","Number","toFixed","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/rr-interval.ts"],"mappings":";;;;;;AAAA,MAAMA,uBAAuB,GAAG,IAAI;;AAEpC;AACA,MAAMC,oBAAoB,GAAG,IAAI;AAEjC,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,sBAAsB,GAAIC,MAAc,IAC5CC,MAAM,CACJ,CAAED,MAAM,GAAGJ,uBAAuB,GAAIC,oBAAoB,EAAEK,OAAO,CACjEJ,WACF,CACF,CAAC;AAACK,OAAA,CAAAJ,sBAAA,GAAAA,sBAAA","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.temperatureTypeFromCode = void 0;
7
+ /** Where on the body a thermometer took its reading: the Bluetooth SIG Temperature Type. */
8
+
9
+ /** Indexed by the Temperature Type code, which starts at 1; code 0 is reserved. */
10
+ const TEMPERATURE_TYPES = ["armpit", "body", "ear", "finger", "gastrointestinal-tract", "mouth", "rectum", "toe", "tympanum"];
11
+
12
+ /** The body site for a Temperature Type code; undefined for a reserved or unknown code. */
13
+ const temperatureTypeFromCode = code => TEMPERATURE_TYPES[code - 1];
14
+ exports.temperatureTypeFromCode = temperatureTypeFromCode;
15
+ //# sourceMappingURL=temperature-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TEMPERATURE_TYPES","temperatureTypeFromCode","code","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/temperature-type.ts"],"mappings":";;;;;;AAAA;;AAYA;AACA,MAAMA,iBAA6C,GAAG,CACpD,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAQ,EACR,wBAAwB,EACxB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,UAAU,CACX;;AAED;AACA,MAAMC,uBAAuB,GAAIC,IAAY,IAC3CF,iBAAiB,CAACE,IAAI,GAAG,CAAC,CAAC;AAACC,OAAA,CAAAF,uBAAA,GAAAA,uBAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.wait = void 0;
7
+ /** Resolves after `milliseconds`. */
8
+ const wait = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds));
9
+ exports.wait = wait;
10
+ //# sourceMappingURL=wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["wait","milliseconds","Promise","resolve","setTimeout","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/wait.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,IAAI,GAAIC,YAAoB,IACvC,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,YAAY,CAAC,CAAC;AAACI,OAAA,CAAAL,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _index = require("../../background-sync/index.js");
7
+ Object.keys(_index).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _index[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _index[key];
14
+ }
15
+ });
16
+ });
17
+ var _offlineMeasurementBackgroundSync = require("./offline-measurement-background-sync.js");
18
+ Object.keys(_offlineMeasurementBackgroundSync).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _offlineMeasurementBackgroundSync[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _offlineMeasurementBackgroundSync[key];
25
+ }
26
+ });
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_index","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_offlineMeasurementBackgroundSync"],"sourceRoot":"../../../../../src","sources":["modules/next/background-sync/index.ts"],"mappings":";;;;;AAOA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,iCAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,iCAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,iCAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,iCAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.scheduleOfflineMeasurementBackgroundSync = exports.runOfflineMeasurementBackgroundSync = exports.registerOfflineMeasurementBackgroundTask = exports.cancelOfflineMeasurementBackgroundSync = void 0;
7
+ var BackgroundTask = _interopRequireWildcard(require("expo-background-task"));
8
+ var TaskManager = _interopRequireWildcard(require("expo-task-manager"));
9
+ var _sentryLogger = require("../../helpers/utils/sentry-logger.js");
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ const OFFLINE_MEASUREMENT_BACKGROUND_TASK_NAME = "OvokOfflineMeasurementBackgroundSync";
12
+ const MINIMUM_INTERVAL_MINUTES = 15;
13
+
14
+ /** Core client surface used by the background queue flush. */
15
+
16
+ /** Options for recurring offline measurement sync. */
17
+
18
+ /** Flushes the Core offline measurement queue for a restored client. */
19
+ const runOfflineMeasurementBackgroundSync = client => client.measurements.offlineQueue.flush();
20
+
21
+ /**
22
+ * Defines the task at app entry-point load so it exists after process restart.
23
+ * The callback must restore the app-owned client and its secure session.
24
+ */
25
+ exports.runOfflineMeasurementBackgroundSync = runOfflineMeasurementBackgroundSync;
26
+ const registerOfflineMeasurementBackgroundTask = restoreClient => {
27
+ TaskManager.defineTask(OFFLINE_MEASUREMENT_BACKGROUND_TASK_NAME, async () => {
28
+ try {
29
+ const client = await restoreClient();
30
+ const result = await runOfflineMeasurementBackgroundSync(client);
31
+ if (Object.keys(result.failures).length > 0) {
32
+ throw new Error("Offline measurement queue contains failed items.");
33
+ }
34
+ return BackgroundTask.BackgroundTaskResult.Success;
35
+ } catch {
36
+ (0, _sentryLogger.sentryLogger)("error", "Background measurement sync failed", {
37
+ errorCode: "offline_measurement_background_sync_failed"
38
+ });
39
+ return BackgroundTask.BackgroundTaskResult.Failed;
40
+ }
41
+ });
42
+ };
43
+
44
+ /** Schedules recurring offline measurement sync through WorkManager or BGTaskScheduler. */
45
+ exports.registerOfflineMeasurementBackgroundTask = registerOfflineMeasurementBackgroundTask;
46
+ const scheduleOfflineMeasurementBackgroundSync = async (options = {}) => {
47
+ const minimumIntervalMinutes = options.minimumIntervalMinutes ?? MINIMUM_INTERVAL_MINUTES;
48
+ if (!Number.isFinite(minimumIntervalMinutes) || minimumIntervalMinutes < MINIMUM_INTERVAL_MINUTES) {
49
+ throw new RangeError(`minimumIntervalMinutes must be at least ${MINIMUM_INTERVAL_MINUTES}.`);
50
+ }
51
+ if (!TaskManager.isTaskDefined(OFFLINE_MEASUREMENT_BACKGROUND_TASK_NAME)) {
52
+ throw new Error("Register the offline measurement background task from the app entry point before scheduling it.");
53
+ }
54
+ await BackgroundTask.registerTaskAsync(OFFLINE_MEASUREMENT_BACKGROUND_TASK_NAME, {
55
+ minimumInterval: minimumIntervalMinutes
56
+ });
57
+ };
58
+
59
+ /** Cancels recurring offline measurement sync. */
60
+ exports.scheduleOfflineMeasurementBackgroundSync = scheduleOfflineMeasurementBackgroundSync;
61
+ const cancelOfflineMeasurementBackgroundSync = () => BackgroundTask.unregisterTaskAsync(OFFLINE_MEASUREMENT_BACKGROUND_TASK_NAME);
62
+ exports.cancelOfflineMeasurementBackgroundSync = cancelOfflineMeasurementBackgroundSync;
63
+ //# sourceMappingURL=offline-measurement-background-sync.js.map