@ovok/native 1.16.1-dev.2135 → 1.16.1-dev.2139

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 (223) hide show
  1. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
  2. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
  4. package/lib/commonjs/modules/bt-management/index.js +12 -0
  5. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  6. package/lib/commonjs/modules/bt-management/services/bt-manager.js +50 -0
  7. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  8. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +3 -0
  9. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  10. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +4 -2
  11. package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  12. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
  13. package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  14. package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js +59 -0
  15. package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +18 -37
  17. package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  18. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +12 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  20. package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js +68 -0
  21. package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
  22. package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js +70 -0
  23. package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
  24. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +14 -0
  25. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  26. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +77 -0
  27. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
  28. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +49 -0
  29. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +89 -0
  31. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +35 -42
  33. package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
  34. package/lib/commonjs/modules/bt-management/services/record-cursor.js +70 -0
  35. package/lib/commonjs/modules/bt-management/services/record-cursor.js.map +1 -0
  36. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +8 -0
  37. package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  38. package/lib/commonjs/modules/bt-management/types/glucose-record-details.js +2 -0
  39. package/lib/commonjs/modules/bt-management/types/glucose-record-details.js.map +1 -0
  40. package/lib/commonjs/modules/bt-management/utils/wait.js +10 -0
  41. package/lib/commonjs/modules/bt-management/utils/wait.js.map +1 -0
  42. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js +41 -4
  43. package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
  44. package/lib/commonjs/modules/next/bluetooth/connections.js +4 -0
  45. package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -1
  46. package/lib/commonjs/modules/next/bluetooth/driver.js +6 -0
  47. package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
  48. package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
  49. package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
  50. package/lib/commonjs/modules/next/bluetooth/readings.js +2 -1
  51. package/lib/commonjs/modules/next/bluetooth/readings.js.map +1 -1
  52. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
  53. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  54. package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
  55. package/lib/module/modules/bt-management/index.js +1 -0
  56. package/lib/module/modules/bt-management/index.js.map +1 -1
  57. package/lib/module/modules/bt-management/services/bt-manager.js +50 -0
  58. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  59. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +3 -0
  60. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
  61. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +4 -2
  62. package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +97 -28
  64. package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
  65. package/lib/module/modules/bt-management/services/devices/bt-current-time.js +55 -0
  66. package/lib/module/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
  67. package/lib/module/modules/bt-management/services/devices/bt-device-information.js +18 -37
  68. package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
  69. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +13 -2
  70. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  71. package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js +65 -0
  72. package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
  73. package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js +65 -0
  74. package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
  75. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +14 -0
  76. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  77. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +72 -0
  78. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
  79. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +40 -0
  80. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
  81. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +85 -0
  82. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
  83. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +25 -32
  84. package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
  85. package/lib/module/modules/bt-management/services/record-cursor.js +66 -0
  86. package/lib/module/modules/bt-management/services/record-cursor.js.map +1 -0
  87. package/lib/module/modules/bt-management/testing/fake-ble-manager.js +8 -0
  88. package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
  89. package/lib/module/modules/bt-management/types/custom-device-definition.js +4 -0
  90. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
  91. package/lib/module/modules/bt-management/types/glucose-record-details.js +2 -0
  92. package/lib/module/modules/bt-management/types/glucose-record-details.js.map +1 -0
  93. package/lib/module/modules/bt-management/utils/wait.js +5 -0
  94. package/lib/module/modules/bt-management/utils/wait.js.map +1 -0
  95. package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js +41 -4
  96. package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
  97. package/lib/module/modules/next/bluetooth/connections.js +4 -0
  98. package/lib/module/modules/next/bluetooth/connections.js.map +1 -1
  99. package/lib/module/modules/next/bluetooth/driver.js +6 -0
  100. package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
  101. package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
  102. package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
  103. package/lib/module/modules/next/bluetooth/readings.js +2 -1
  104. package/lib/module/modules/next/bluetooth/readings.js.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
  106. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  108. package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -0
  110. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +20 -0
  112. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  114. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -1
  116. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
  118. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts +11 -0
  120. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
  121. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
  122. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  124. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts +15 -0
  126. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
  127. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
  128. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  130. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
  132. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
  134. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
  136. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts +21 -0
  139. package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
  140. package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
  142. package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +3 -0
  144. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +14 -1
  146. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
  148. package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts +3 -0
  150. package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  152. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +1 -1
  153. package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +6 -1
  156. package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +1 -1
  158. package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts +12 -1
  160. package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
  162. package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +4 -1
  163. package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
  164. package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
  165. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  166. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
  167. package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
  168. package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -0
  169. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  170. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +20 -0
  171. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  172. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +2 -1
  173. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
  174. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -1
  175. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
  176. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts +14 -1
  177. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
  178. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts +11 -0
  179. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
  180. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -1
  181. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -1
  182. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +9 -1
  183. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  184. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts +15 -0
  185. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
  186. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
  187. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
  188. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
  189. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  190. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
  191. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
  192. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
  193. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
  194. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
  195. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
  196. package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
  197. package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts +21 -0
  198. package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
  199. package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
  200. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
  201. package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
  202. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +3 -0
  203. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  204. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +14 -1
  205. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
  206. package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
  207. package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
  208. package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts +3 -0
  209. package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts.map +1 -0
  210. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  211. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +1 -1
  212. package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
  213. package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -1
  214. package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +6 -1
  215. package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
  216. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +1 -1
  217. package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
  218. package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts +12 -1
  219. package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts.map +1 -1
  220. package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
  221. package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +4 -1
  222. package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
  223. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator } from "../../types/custom-device-definition";
1
+ import { CustomDeviceDefinition, CustomFrameHandlerFactory, CustomReadingDecorator, CustomSequencerFactory } from "../../types/custom-device-definition";
2
2
  import { CustomDeviceSpec } from "../../types/custom-device-spec";
3
3
  import { FrameReader } from "../../types/frame-reader";
4
4
  /**
@@ -12,6 +12,7 @@ import { FrameReader } from "../../types/frame-reader";
12
12
  export declare const defineCustomDevice: (spec: CustomDeviceSpec, options?: {
13
13
  decorateReading?: CustomReadingDecorator;
14
14
  createFrameHandler?: CustomFrameHandlerFactory;
15
+ createCommandSequencer?: CustomSequencerFactory;
15
16
  frameReader?: FrameReader;
16
17
  }) => CustomDeviceDefinition;
17
18
  //# sourceMappingURL=define-custom-device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAsKvD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,WAAW,CAAC,EAAE,WAAW,CAAC;CACtB,KACL,sBAqGF,CAAC"}
1
+ {"version":3,"file":"define-custom-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/custom/define-custom-device.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAsKvD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,gBAAgB,EACtB,UAAS;IACP,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAC/C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;IAChD,WAAW,CAAC,EAAE,WAAW,CAAC;CACtB,KACL,sBAwGF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { BleError, Device } from "react-native-ble-plx";
2
2
  import { DeviceCommand } from "../../types/device-command";
3
+ import { PairingRetry } from "./bt-pairing-retry";
3
4
  /**
4
5
  * The write channel to a connected device.
5
6
  *
@@ -13,9 +14,10 @@ export declare class BTCommandWriter {
13
14
  private readonly device;
14
15
  private readonly onError?;
15
16
  private readonly isNormalDisconnect?;
17
+ private readonly retryAfterPairing;
16
18
  private pendingWrites;
17
19
  private mtu;
18
- constructor(device: Device, onError?: ((error: BleError | Error) => void) | undefined, isNormalDisconnect?: (() => boolean) | undefined);
20
+ constructor(device: Device, onError?: ((error: BleError | Error) => void) | undefined, isNormalDisconnect?: (() => boolean) | undefined, retryAfterPairing?: PairingRetry);
19
21
  /**
20
22
  * Records what the link actually negotiated.
21
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAW3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IANtC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,GAAG,CAAmB;gBAGX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,aAAA,EAC3C,kBAAkB,CAAC,GAAE,MAAM,OAAO,aAAA;IAGrD;;;;;;OAMG;IACI,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAI,CAI5C;IAEF,kEAAkE;IAC3D,KAAK,QAAO,IAAI,CAErB;IAEF;;;;;;;OAOG;IACI,IAAI,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY,CAclB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,OAAO,CAmBb;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CASd;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAgChB;CACH"}
1
+ {"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAPpC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,GAAG,CAAmB;gBAGX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,aAAA,EAC3C,kBAAkB,CAAC,GAAE,MAAM,OAAO,aAAA,EAClC,iBAAiB,GAAE,YAAsB;IAG5D;;;;;;OAMG;IACI,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAI,CAI5C;IAEF,kEAAkE;IAC3D,KAAK,QAAO,IAAI,CAErB;IAEF;;;;;;;OAOG;IACI,IAAI,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY,CAclB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,OAAO,CAmBb;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CASd;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAkChB;CACH"}
@@ -1,4 +1,5 @@
1
1
  import { BleError, Device } from "react-native-ble-plx";
2
+ import { ClockSyncOptions } from "../../types/clock-sync";
2
3
  import { DeviceCommand } from "../../types/device-command";
3
4
  import { DeviceConnectionEvent } from "../../types/device-connection-event";
4
5
  import { DeviceStatus } from "../../types/device-status";
@@ -11,7 +12,9 @@ interface ConnectionHandlerCallbacks {
11
12
  onDeviceInfo?: Parameters<typeof readDeviceInformation>[1];
12
13
  onConnectionEvent?: (event: Omit<DeviceConnectionEvent, "deviceData">) => void;
13
14
  /** The commands to send once every characteristic is subscribed. */
14
- initialCommands?: () => readonly DeviceCommand[];
15
+ initialCommands?: () => readonly DeviceCommand[] | Promise<readonly DeviceCommand[]>;
16
+ /** Sets the peripheral's Current Time characteristic after discovery when it has one; leave out to keep its clock. */
17
+ currentTimeSync?: ClockSyncOptions;
15
18
  onServicesDiscovered?: (serviceUuids: readonly string[]) => void;
16
19
  /** Called after the first command has been written to the peripheral. */
17
20
  onCommandSent?: () => void;
@@ -26,7 +29,9 @@ export declare class BTConnectionHandler {
26
29
  private onDisconnectSubscription;
27
30
  private characteristicSubscriptions;
28
31
  private disconnectObserved;
32
+ private pairingReported;
29
33
  private readonly writer;
34
+ private readonly pairing;
30
35
  constructor(device: Device, mainServices: IMedicalDevice["mainService"], callbacks: ConnectionHandlerCallbacks, preferredMtu?: number | undefined);
31
36
  connect: () => Promise<void>;
32
37
  destroy: () => void;
@@ -47,6 +52,14 @@ export declare class BTConnectionHandler {
47
52
  /** Declared services minus any optional one discovery did not find. */
48
53
  private servicesPresent;
49
54
  private subscribeToAllCharacteristics;
55
+ /** A monitor failing for pairing while starting is thrown here, for the pairing retry, not reported. */
56
+ private startMonitors;
57
+ private monitor;
58
+ private removeSubscriptions;
59
+ /** Tells the app once per connection that the platform is asking the user to pair. */
60
+ private reportPairingRequired;
61
+ /** Sets the device clock when the declaration asked for it; a device that refuses keeps its own time. */
62
+ private syncCurrentTime;
50
63
  }
51
64
  export {};
52
65
  //# sourceMappingURL=bt-connection-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bt-connection-handler.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-connection-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAUtE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,UAAU,0BAA0B;IAClC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,KAC7C,IAAI,CAAC;IAEV,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,CAAC;IACjD,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IAEjE,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;CACpC;AAED,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAThC,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,2BAA2B,CAAsB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAGtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,SAAS,EAAE,0BAA0B,EACrC,YAAY,CAAC,EAAE,MAAM,YAAA;IASjC,OAAO,sBAqDZ;IAEK,OAAO,aAOZ;IAEF,6DAA6D;IACtD,YAAY,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAC5C;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,uEAAuE;IACvE,OAAO,CAAC,gBAAgB,CAwBtB;IAEF,OAAO,CAAC,kBAAkB,CA0CxB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,oBAAoB,CAiB1B;IAEF,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAsBrB;IAEF,OAAO,CAAC,6BAA6B,CAwDnC;CACH"}
1
+ {"version":3,"file":"bt-connection-handler.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-connection-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAUtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAO9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOhE,UAAU,0BAA0B;IAClC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,KAC7C,IAAI,CAAC;IAEV,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IAErF,sHAAsH;IACtH,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAEnC,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IAEjE,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC;CACpC;AAED,qBAAa,mBAAmB;IAS5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAXhC,OAAO,CAAC,wBAAwB,CAA2B;IAC3D,OAAO,CAAC,2BAA2B,CAAsB;IACzD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAGtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,cAAc,CAAC,aAAa,CAAC,EAC3C,SAAS,EAAE,0BAA0B,EACrC,YAAY,CAAC,EAAE,MAAM,YAAA;IAWjC,OAAO,sBAwDZ;IAEK,OAAO,aAMZ;IAEF,6DAA6D;IACtD,YAAY,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAC5C;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,uEAAuE;IACvE,OAAO,CAAC,gBAAgB,CAwBtB;IAEF,OAAO,CAAC,kBAAkB,CA0CxB;IAEF,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,oBAAoB,CAiB1B;IAEF,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAsBrB;IAEF,OAAO,CAAC,6BAA6B,CA0BnC;IAEF,wGAAwG;IACxG,OAAO,CAAC,aAAa,CAuCnB;IAEF,OAAO,CAAC,OAAO,CA2BX;IAEJ,OAAO,CAAC,mBAAmB,CAGzB;IAEF,sFAAsF;IACtF,OAAO,CAAC,qBAAqB,CAU3B;IAEF,yGAAyG;IACzG,OAAO,CAAC,eAAe,CAsBrB;CACH"}
@@ -0,0 +1,11 @@
1
+ import { Device } from "react-native-ble-plx";
2
+ import { ClockSyncOptions } from "../../types/clock-sync";
3
+ /**
4
+ * Sets the device clock through the Current Time Service.
5
+ *
6
+ * Resolves to the time written, or `undefined` when the device has no writable Current Time
7
+ * characteristic. A device that refuses the write rejects.
8
+ */
9
+ declare const writeCurrentTime: (device: Device, { now, timezone }: ClockSyncOptions) => Promise<Date | undefined>;
10
+ export { writeCurrentTime };
11
+ //# sourceMappingURL=bt-current-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bt-current-time.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-current-time.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,wBAAwB,CAAC;AAyCzE;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,GACpB,QAAQ,MAAM,EACd,mBAAmB,gBAAgB,KAClC,OAAO,CAAC,IAAI,GAAG,SAAS,CAkB1B,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { Device } from "react-native-ble-plx";
2
+ import { PairingRetry } from "./bt-pairing-retry";
2
3
  interface BTDeviceInformation {
3
4
  name?: string;
4
5
  manufacturerName?: string;
5
6
  model?: string;
6
7
  serialNumber?: string;
7
8
  }
8
- declare const readDeviceInformation: (device: Device, onDeviceInfo?: (info: BTDeviceInformation) => void) => Promise<void>;
9
+ declare const readDeviceInformation: (device: Device, onDeviceInfo?: (info: BTDeviceInformation) => void, retryAfterPairing?: PairingRetry) => Promise<void>;
9
10
  export { readDeviceInformation };
10
11
  export type { BTDeviceInformation };
11
12
  //# sourceMappingURL=bt-device-information.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bt-device-information.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-device-information.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAgBD,QAAA,MAAM,qBAAqB,GACzB,QAAQ,MAAM,EACd,eAAe,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,KACjD,OAAO,CAAC,IAAI,CAmEd,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"bt-device-information.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-device-information.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAE3D,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAeD,QAAA,MAAM,qBAAqB,GACzB,QAAQ,MAAM,EACd,eAAe,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,EAClD,oBAAmB,YAAsB,KACxC,OAAO,CAAC,IAAI,CAgCd,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
@@ -32,6 +32,7 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
32
32
  private readonly resultPolicy;
33
33
  /** A policy that picks how results are delivered replaces `oneReadingPerConnection`; a user filter does not. */
34
34
  private readonly policyPicksDelivery;
35
+ private readonly clockSyncOptions;
35
36
  private resultReportedThisConnection;
36
37
  private historyTransferActive;
37
38
  private bondedEventReported;
@@ -87,6 +88,12 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
87
88
  protected preferredMtu?: number;
88
89
  /** Only declarations with an actual bonding flow should report this event. */
89
90
  protected reportsBondedEvent: boolean;
91
+ /**
92
+ * Writes the phone's time to the device's Current Time characteristic on connect, when it
93
+ * has a writable one. Only for a device whose clock has no protocol of its own, and never
94
+ * once the app turned clock synchronisation off.
95
+ */
96
+ protected syncsCurrentTime: boolean;
90
97
  /**
91
98
  * Decides whether the buffer holds a parseable frame.
92
99
  *
@@ -115,11 +122,12 @@ export declare abstract class BTManagedDevice<T extends DeviceKey = IntegratedDe
115
122
  protected reportResult: (result: object) => void;
116
123
  constructor(
117
124
  /** The underlying BLE device. */
118
- device: Device, { deviceName, onError: onErrorCallback, onDeviceStatusChanged: onDeviceStatusChangedCallback, onResult: onResultCallback, onSeriesValue: onSeriesValueCallback, onConnectionEvent: onConnectionEventCallback, onDeviceDisconnected: onDeviceDisconnectedCallback, oneReadingPerConnection, resultPolicy, }: CreateDeviceParams<T>);
125
+ device: Device, { deviceName, onError: onErrorCallback, onDeviceStatusChanged: onDeviceStatusChangedCallback, onResult: onResultCallback, onSeriesValue: onSeriesValueCallback, onConnectionEvent: onConnectionEventCallback, onDeviceDisconnected: onDeviceDisconnectedCallback, oneReadingPerConnection, resultPolicy, clockSync, }: CreateDeviceParams<T>);
119
126
  /** Stops the connection and data processing and clears the callbacks. */
120
127
  destroy: () => void;
121
128
  /** Stops this device's subscriptions and closes its BLE connection. */
122
129
  disconnect: () => Promise<void>;
130
+ private currentTimeSync;
123
131
  private connectInternal;
124
132
  /**
125
133
  * Connects to the device and starts reading.
@@ -1 +1 @@
1
- {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bt-managed-device.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-managed-device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Device } from "react-native-ble-plx";
2
+ /** A characteristic whose notifications were just requested. */
3
+ interface MonitoredCharacteristic {
4
+ serviceUuid: string;
5
+ characteristicUuid: string;
6
+ }
7
+ /**
8
+ * Resolves once the device reports notifications on for every characteristic, because
9
+ * `monitorCharacteristicForService` returns before its descriptor write completes.
10
+ * A platform that cannot read the descriptor gets a fixed settle time instead.
11
+ */
12
+ declare const awaitNotificationsEnabled: (device: Device, characteristics: readonly MonitoredCharacteristic[]) => Promise<void>;
13
+ export { awaitNotificationsEnabled };
14
+ export type { MonitoredCharacteristic };
15
+ //# sourceMappingURL=bt-notification-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bt-notification-readiness.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-notification-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAmB9C,gEAAgE;AAChE,UAAU,uBAAuB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AA+BD;;;;GAIG;AACH,QAAA,MAAM,yBAAyB,GAC7B,QAAQ,MAAM,EACd,iBAAiB,SAAS,uBAAuB,EAAE,KAClD,OAAO,CAAC,IAAI,CAqBd,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Device } from "react-native-ble-plx";
2
+ /** Runs `operation`; when the device needs pairing for it, runs it again once the user has paired. */
3
+ type PairingRetry = <T>(operation: () => Promise<T>) => Promise<T>;
4
+ declare const isPairingRequired: (error: unknown) => boolean;
5
+ declare const runOnce: PairingRetry;
6
+ /**
7
+ * Keeps the link while the system pairing (raised by the encrypted access itself) runs,
8
+ * then retries the step that needed it. After a wait ran out, later steps fail at once.
9
+ */
10
+ declare class BTPairingRetry {
11
+ private readonly device;
12
+ private readonly onPairingRequired;
13
+ private abandoned;
14
+ constructor(device: Device, onPairingRequired: () => void);
15
+ run: PairingRetry;
16
+ private retryUntilPaired;
17
+ private stillConnected;
18
+ }
19
+ export { BTPairingRetry, isPairingRequired, runOnce };
20
+ export type { PairingRetry };
21
+ //# sourceMappingURL=bt-pairing-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bt-pairing-retry.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-pairing-retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAY9C,sGAAsG;AACtG,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnE,QAAA,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,OAC0B,CAAC;AAEvE,QAAA,MAAM,OAAO,EAAE,YAAyC,CAAC;AAEzD;;;GAGG;AACH,cAAM,cAAc;IAIhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAJpC,OAAO,CAAC,SAAS,CAAS;gBAGP,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,IAAI;IAGzC,GAAG,EAAE,YAAY,CAYtB;IAEF,OAAO,CAAC,gBAAgB,CA+BtB;IAEF,OAAO,CAAC,cAAc,CACyB;CAChD;AAED,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -30,6 +30,8 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
30
30
  private readonly sessionAggregates;
31
31
  private sessionStartedAt;
32
32
  constructor(device: Device, params: CreateDeviceParams<CustomDeviceId>, definition: CustomDeviceDefinition);
33
+ /** Gives a declaration that computes its commands at connect time the context it needs to do so. */
34
+ private declareSequencerFactory;
33
35
  /** Gives a TMB declaration its length-prefixed reader and history command sequence. */
34
36
  private declareTmbProtocol;
35
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { GlucoseRecordDetails } from "../../../types/glucose-record-details";
2
+ /** Whether the meter flagged the record as a test that failed rather than a result. */
3
+ declare const hasUnusableSensorStatus: (frame: readonly string[]) => boolean;
4
+ /** What the record says about itself, beside its concentration. */
5
+ declare const glucoseRecordDetails: (frame: readonly string[]) => GlucoseRecordDetails;
6
+ export { glucoseRecordDetails, hasUnusableSensorStatus };
7
+ //# sourceMappingURL=standard-gatt.glucose-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.glucose-details.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAKrB,MAAM,uCAAuC,CAAC;AAiF/C,uFAAuF;AACvF,QAAA,MAAM,uBAAuB,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,OAI3D,CAAC;AAEF,mEAAmE;AACnE,QAAA,MAAM,oBAAoB,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,oBA0BxD,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ declare const FLAG_TIME_OFFSET = 1;
2
+ declare const FLAG_CONCENTRATION = 2;
3
+ declare const FLAG_MOL_PER_L = 4;
4
+ declare const BASE_TIME_INDEX = 3;
5
+ declare const TIME_OFFSET_INDEX = 10;
6
+ declare const hasFlag: (flags: number, flag: number) => boolean;
7
+ declare const concentrationIndex: (flags: number) => number;
8
+ declare const byte: (frame: readonly string[], index: number) => number | undefined;
9
+ /** The meter's number for the record, in bytes 1-2 of every Glucose Measurement. */
10
+ declare const sequenceNumberFromGlucoseFrame: (frame: readonly string[]) => number | undefined;
11
+ /** Specimen type in the low nibble and sample location in the high one; only a record with a concentration has it. */
12
+ declare const typeAndLocationFromGlucoseFrame: (frame: readonly string[]) => number | undefined;
13
+ /** The Sensor Status Annunciation bits, which only a record that sets flag bit 3 carries. */
14
+ declare const sensorStatusFromGlucoseFrame: (frame: readonly string[]) => number | undefined;
15
+ export { BASE_TIME_INDEX, byte, concentrationIndex, FLAG_CONCENTRATION, FLAG_MOL_PER_L, FLAG_TIME_OFFSET, hasFlag, sensorStatusFromGlucoseFrame, sequenceNumberFromGlucoseFrame, TIME_OFFSET_INDEX, typeAndLocationFromGlucoseFrame, };
16
+ //# sourceMappingURL=standard-gatt.glucose-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.glucose-frame.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gBAAgB,IAAO,CAAC;AAC9B,QAAA,MAAM,kBAAkB,IAAO,CAAC;AAChC,QAAA,MAAM,cAAc,IAAO,CAAC;AAI5B,QAAA,MAAM,eAAe,IAAI,CAAC;AAC1B,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAM7B,QAAA,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,OAA+B,CAAC;AAE/E,QAAA,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MACkC,CAAC;AAE/E,QAAA,MAAM,IAAI,GAAI,OAAO,SAAS,MAAM,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,GAAG,SAIhE,CAAC;AAWF,oFAAoF;AACpF,QAAA,MAAM,8BAA8B,GAClC,OAAO,SAAS,MAAM,EAAE,KACvB,MAAM,GAAG,SAAiD,CAAC;AAE9D,sHAAsH;AACtH,QAAA,MAAM,+BAA+B,GACnC,OAAO,SAAS,MAAM,EAAE,KACvB,MAAM,GAAG,SAMX,CAAC;AAEF,6FAA6F;AAC7F,QAAA,MAAM,4BAA4B,GAChC,OAAO,SAAS,MAAM,EAAE,KACvB,MAAM,GAAG,SAMX,CAAC;AAEF,OAAO,EACL,eAAe,EACf,IAAI,EACJ,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,4BAA4B,EAC5B,8BAA8B,EAC9B,iBAAiB,EACjB,+BAA+B,GAChC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CustomSequencerFactory } from "../../../types/custom-device-definition";
2
+ declare const GLUCOSE_SERVICE_UUID: string;
3
+ declare const GLUCOSE_MEASUREMENT_UUID: string;
4
+ declare const RECORD_ACCESS_CONTROL_POINT_UUID: string;
5
+ /** Gives each connection to a glucose meter its own sequencer over that meter's stored cursor. */
6
+ declare const createGlucoseSequencer: CustomSequencerFactory;
7
+ export { createGlucoseSequencer, GLUCOSE_MEASUREMENT_UUID, GLUCOSE_SERVICE_UUID, RECORD_ACCESS_CONTROL_POINT_UUID, };
8
+ //# sourceMappingURL=standard-gatt.glucose-racp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-gatt.glucose-racp.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAQjF,QAAA,MAAM,oBAAoB,QAAkB,CAAC;AAC7C,QAAA,MAAM,wBAAwB,QAAkB,CAAC;AACjD,QAAA,MAAM,gCAAgC,QAAkB,CAAC;AA4GzD,kGAAkG;AAClG,QAAA,MAAM,sBAAsB,EAAE,sBAM3B,CAAC;AAEJ,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,gCAAgC,GACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-gatt.glucose.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAMjF,OAAO,EAAgB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAyD7E,4FAA4F;AAC5F,QAAA,MAAM,0BAA0B,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,IAAI,GAAG,SA+CrE,CAAC;AAaF,uDAAuD;AACvD,QAAA,MAAM,qBAAqB,GACzB,QAAQ,oBAAoB,KAC3B,sBAgEA,CAAC;AAEJ,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"standard-gatt.glucose.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAyBjF,OAAO,EAAgB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA2C7E,4FAA4F;AAC5F,QAAA,MAAM,0BAA0B,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,IAAI,GAAG,SA+CrE,CAAC;AAYF,uDAAuD;AACvD,QAAA,MAAM,qBAAqB,GACzB,QAAQ,oBAAoB,KAC3B,sBAiEA,CAAC;AAEJ,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { BackgroundSyncStorage } from "../types/background-sync";
2
+ /**
3
+ * The number of the newest stored record read from one device, kept in `storage` so the next
4
+ * connection asks the device for newer records only. Without storage it forgets on disconnect.
5
+ */
6
+ declare class RecordCursor {
7
+ private readonly storage;
8
+ private readonly key;
9
+ private newest;
10
+ private writing;
11
+ private changedWhileWriting;
12
+ constructor(storage: BackgroundSyncStorage | undefined, key: string);
13
+ /** What an earlier connection stored; nothing, an unreadable value or a failing store gives `undefined`. */
14
+ load: () => Promise<number | undefined>;
15
+ /** Remembers a record number that is newer than any seen; writes to the store are coalesced. */
16
+ advance: (recordNumber: number) => void;
17
+ private persist;
18
+ private store;
19
+ }
20
+ export { RecordCursor };
21
+ //# sourceMappingURL=record-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-cursor.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/record-cursor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AASjE;;;GAGG;AACH,cAAM,YAAY;IAMd,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,mBAAmB,CAAS;gBAGjB,OAAO,EAAE,qBAAqB,GAAG,SAAS,EAC1C,GAAG,EAAE,MAAM;IAG9B,4GAA4G;IACrG,IAAI,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWjD;IAEF,gGAAgG;IACzF,OAAO,GAAI,cAAc,MAAM,KAAG,IAAI,CAO3C;IAEF,OAAO,CAAC,OAAO,CAeb;IAEF,OAAO,CAAC,KAAK,CAQX;CACH;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fake-ble-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/testing/fake-ble-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAgB,MAAM,sBAAsB,CAAC;AAE/E,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IAEnC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IAEX,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAE5B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,iFAAiF;IACjF,kBAAkB,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,gEAAgE;IAChE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IAEpC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAE7B,mDAAmD;IACnD,OAAO,EAAE,UAAU,CAAC;IAEpB,kCAAkC;IAClC,YAAY,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,aAAa,CAAC;IAE/D,2CAA2C;IAC3C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,+CAA+C;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,8DAA8D;IAC9D,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,qFAAqF;IACrF,sBAAsB,EAAE,MAAM,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvD,6BAA6B;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAKD,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,GAAI,gFAQjC,oBAAoB,KAAG,aA6EzB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,GAAI,sBAGlC,qBAA0B,KAAG,cA8C/B,CAAC"}
1
+ {"version":3,"file":"fake-ble-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/testing/fake-ble-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAgB,MAAM,sBAAsB,CAAC;AAE/E,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IAEnC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IAEX,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAE5B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,iFAAiF;IACjF,kBAAkB,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,KAAK,EAAE,MAAM,KACV,IAAI,CAAC;IAEV,gEAAgE;IAChE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IAEpC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAc;IAE7B,mDAAmD;IACnD,OAAO,EAAE,UAAU,CAAC;IAEpB,kCAAkC;IAClC,YAAY,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,aAAa,CAAC;IAE/D,2CAA2C;IAC3C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,+CAA+C;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEpC,8DAA8D;IAC9D,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC,qFAAqF;IACrF,sBAAsB,EAAE,MAAM,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAEvD,6BAA6B;IAC7B,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAQD,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,GAAI,gFAQjC,oBAAoB,KAAG,aAwFzB,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,GAAI,sBAGlC,qBAA0B,KAAG,cA8C/B,CAAC"}
@@ -19,8 +19,12 @@ export interface CommandTimeoutResult {
19
19
  * returned.
20
20
  */
21
21
  export interface CommandSequencer {
22
- /** Sent once every characteristic is subscribed. Empty starts a device that only listens. */
23
- initialCommands(): readonly DeviceCommand[];
22
+ /**
23
+ * Sent once every characteristic is subscribed. Empty starts a device that only listens.
24
+ *
25
+ * May resolve later, for a first command that depends on state read from storage.
26
+ */
27
+ initialCommands(): readonly DeviceCommand[] | Promise<readonly DeviceCommand[]>;
24
28
  /**
25
29
  * Answers one complete frame, with the characteristic it arrived on.
26
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"command-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/command-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IAEnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAEpC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAE/B,6FAA6F;IAC7F,eAAe,IAAI,SAAS,aAAa,EAAE,CAAC;IAE5C;;;;;;OAMG;IACH,WAAW,CACT,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExC,4GAA4G;IAC5G,oBAAoB,CAAC,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7D,6FAA6F;IAC7F,gBAAgB,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IAExC,kFAAkF;IAClF,gBAAgB,CAAC,IAAI,oBAAoB,CAAC;IAE1C,2FAA2F;IAC3F,eAAe,CAAC,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAE/E,qFAAqF;IACrF,kBAAkB,CAAC,IAAI,OAAO,CAAC;IAE/B,6EAA6E;IAC7E,iBAAiB,CAAC,IAAI,OAAO,CAAC;CAC/B"}
1
+ {"version":3,"file":"command-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/command-sequencer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,WAAW,oBAAoB;IAEnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAEpC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAE/B;;;;OAIG;IACH,eAAe,IAAI,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IAEhF;;;;;;OAMG;IACH,WAAW,CACT,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,SAAS,aAAa,EAAE,GAAG,SAAS,CAAC;IAExC,4GAA4G;IAC5G,oBAAoB,CAAC,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7D,6FAA6F;IAC7F,gBAAgB,CAAC,IAAI,MAAM,GAAG,SAAS,CAAC;IAExC,kFAAkF;IAClF,gBAAgB,CAAC,IAAI,oBAAoB,CAAC;IAE1C,2FAA2F;IAC3F,eAAe,CAAC,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAE/E,qFAAqF;IACrF,kBAAkB,CAAC,IAAI,OAAO,CAAC;IAE/B,6EAA6E;IAC7E,iBAAiB,CAAC,IAAI,OAAO,CAAC;CAC/B"}
@@ -1,5 +1,6 @@
1
1
  import { Measurement } from "@ovok/core/next";
2
2
  import { Device } from "react-native-ble-plx";
3
+ import { BackgroundSyncStorage } from "./background-sync";
3
4
  import { ClockSyncOptions } from "./clock-sync";
4
5
  import { DeviceConnectionEvent } from "./device-connection-event";
5
6
  import { DeviceData } from "./device-data";
@@ -25,6 +26,8 @@ export interface CreateDeviceParams<T extends DeviceKey> {
25
26
  oneReadingPerConnection?: boolean;
26
27
  deliveredEcgFileNames?: readonly string[];
27
28
  deliveredFileNames?: readonly string[];
29
+ /** Where a device that downloads stored records remembers how far it got, so a reconnect asks only for newer ones. */
30
+ recordCursorStorage?: BackgroundSyncStorage;
28
31
  /** Clear device-held history after a successful history download when supported. */
29
32
  clearDeviceHistory?: boolean;
30
33
  resultPolicy?: DeviceResultPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"create-device-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/create-device-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
1
+ {"version":3,"file":"create-device-params.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/create-device-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;IAC1E,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,sHAAsH;IACtH,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAE5C,oFAAoF;IACpF,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
@@ -1,6 +1,8 @@
1
1
  import { Measurement } from "@ovok/core/next";
2
2
  import { CUSTOM_DEVICE_BRAND } from "../constants/custom-device-brand";
3
+ import { BackgroundSyncStorage } from "./background-sync";
3
4
  import { ClockSyncCapability } from "./clock-sync";
5
+ import { CommandSequencer } from "./command-sequencer";
4
6
  import { CompiledCustomField } from "./compiled-custom-field";
5
7
  import { CustomDeviceId } from "./custom-device-id";
6
8
  import { CustomDeviceSpec } from "./custom-device-spec";
@@ -25,6 +27,15 @@ interface CustomFrameHandlerParams {
25
27
  type CustomFrameHandler = (params: CustomFrameHandlerParams) => void;
26
28
  /** Creates the per-device `CustomFrameHandler`. */
27
29
  type CustomFrameHandlerFactory = () => CustomFrameHandler;
30
+ /** What a declaration's command sequencer is told about the device it is about to drive. */
31
+ interface CustomSequencerContext {
32
+ /** Platform identifier of the BLE device. */
33
+ deviceId: string;
34
+ /** Where the manager keeps what must outlive a connection, when it was given a store. */
35
+ recordCursorStorage?: BackgroundSyncStorage;
36
+ }
37
+ /** Creates the command sequencer of one connection, for a declaration whose commands depend on the device or on stored state. */
38
+ type CustomSequencerFactory = (context: CustomSequencerContext) => CommandSequencer;
28
39
  /**
29
40
  * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
30
41
  */
@@ -67,6 +78,8 @@ interface CustomDeviceDefinition {
67
78
  readonly decorateReading?: CustomReadingDecorator;
68
79
  /** Creates per-device state for frames that need a protocol-specific decoder. */
69
80
  readonly createFrameHandler?: CustomFrameHandlerFactory;
81
+ /** Replaces the declared `write` with a command sequence the protocol computes at connect time. */
82
+ readonly createCommandSequencer?: CustomSequencerFactory;
70
83
  }
71
- export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, };
84
+ export type { CustomDeviceDefinition, CustomFrameHandler, CustomFrameHandlerFactory, CustomReadingDecorator, CustomSequencerContext, CustomSequencerFactory, };
72
85
  //# sourceMappingURL=custom-device-definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-device-definition.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/custom-device-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /** What a glucose sample was taken from. Control-solution tests are never reported. */
2
+ type GlucoseSpecimenType = "capillaryWholeBlood" | "capillaryPlasma" | "venousWholeBlood" | "venousPlasma" | "arterialWholeBlood" | "arterialPlasma" | "undeterminedWholeBlood" | "undeterminedPlasma" | "interstitialFluid";
3
+ /** Where on the body the sample was taken. */
4
+ type GlucoseSampleLocation = "finger" | "alternateSite" | "earlobe";
5
+ /** A condition the meter flagged on a record that does not make its value unusable. */
6
+ type GlucoseSensorWarning = "batteryLow" | "temperatureTooHigh" | "temperatureTooLow" | "timeFault";
7
+ /** The unit the meter displayed the concentration in. */
8
+ type GlucoseReportedUnit = "mg/dL" | "mmol/L";
9
+ /**
10
+ * What a Bluetooth SIG glucose meter says about a record, added to the reading beside
11
+ * `bloodGlucose`, which is always in mg/dL.
12
+ *
13
+ * Properties the frame does not carry are absent.
14
+ */
15
+ interface GlucoseRecordDetails {
16
+ /** The meter's own number for the record. It counts up, so it tells records apart. */
17
+ sequenceNumber?: number;
18
+ /** The unit the meter reported; `bloodGlucose` keeps its precision when converted back. */
19
+ reportedUnit?: GlucoseReportedUnit;
20
+ /** What the sample was taken from. */
21
+ specimen?: GlucoseSpecimenType;
22
+ /** Where the sample was taken. */
23
+ sampleLocation?: GlucoseSampleLocation;
24
+ /**
25
+ * The meter says the result lies beyond what it can measure. `bloodGlucose` is then the
26
+ * edge of its range, not a measurement; do not store or chart it as a value.
27
+ */
28
+ outOfRange?: "high" | "low";
29
+ /** Conditions the meter flagged that leave the value usable. */
30
+ sensorStatus?: readonly GlucoseSensorWarning[];
31
+ }
32
+ export type { GlucoseRecordDetails, GlucoseReportedUnit, GlucoseSampleLocation, GlucoseSensorWarning, GlucoseSpecimenType, };
33
+ //# sourceMappingURL=glucose-record-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glucose-record-details.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/glucose-record-details.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,KAAK,mBAAmB,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,gBAAgB,GAChB,wBAAwB,GACxB,oBAAoB,GACpB,mBAAmB,CAAC;AAExB,8CAA8C;AAC9C,KAAK,qBAAqB,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;AAEpE,uFAAuF;AACvF,KAAK,oBAAoB,GACrB,YAAY,GACZ,oBAAoB,GACpB,mBAAmB,GACnB,WAAW,CAAC;AAEhB,yDAAyD;AACzD,KAAK,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,UAAU,oBAAoB;IAE5B,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC,sCAAsC;IACtC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B,kCAAkC;IAClC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE5B,gEAAgE;IAChE,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD;AAED,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Resolves after `milliseconds`. */
2
+ export declare const wait: (milliseconds: number) => Promise<void>;
3
+ //# sourceMappingURL=wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/utils/wait.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,eAAO,MAAM,IAAI,GAAI,cAAc,MAAM,KAAG,OAAO,CAAC,IAAI,CACK,CAAC"}
@@ -16,7 +16,7 @@ export declare class SyncProgressManager<TDataToSync extends AndroidHealthSyncPr
16
16
  setTotalObservations(measurementTypeKey: HealthSyncKey, total: number): void;
17
17
  incrementSyncedObservations(measurementTypeKey: HealthSyncKey, count: number, createdCount?: number): void;
18
18
  setStatus(measurementTypeKey: HealthSyncKey, status: SyncProgress["status"], reason?: SyncPauseReason): void;
19
- getStatus(measurementTypeKey: HealthSyncKey): "idle" | "started" | "completed" | "failed" | "syncing" | "paused";
19
+ getStatus(measurementTypeKey: HealthSyncKey): "started" | "completed" | "failed" | "idle" | "syncing" | "paused";
20
20
  resetAll(): void;
21
21
  private notifyProgress;
22
22
  }
@@ -1,6 +1,6 @@
1
1
  import { Device } from "react-native-ble-plx";
2
2
  import { Link } from "../link";
3
- /** Connects (retrying with backoff) and discovers services; aborting `signal` closes the link. */
3
+ /** Connects (retrying with backoff), discovers services and reads Device Information; aborting `signal` closes the link. */
4
4
  declare function openBleLink(device: Device, signal: AbortSignal): Promise<Link>;
5
5
  export { openBleLink };
6
6
  //# sourceMappingURL=ble-link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ble-link.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/ble-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAItE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAyH/B,kGAAkG;AAClG,iBAAe,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"ble-link.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/next/bluetooth/ble-plx/ble-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAOtE,OAAO,EAAqB,IAAI,EAAE,MAAM,SAAS,CAAC;AAyJlD,4HAA4H;AAC5H,iBAAe,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;IAIb,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAGpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;IAGzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,yGAAyG;IAC5F,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,0EAA0E;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,OAAO,CAAC,KAAK;YAsCC,GAAG;IAMjB,OAAO,CAAC,KAAK;CAgBd;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/connections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,gFAAgF;AAChF,cAAM,WAAW;IAIb,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAGpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;IAGzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIpC,yGAAyG;IAC5F,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,0EAA0E;IAC7D,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,OAAO,CAAC,KAAK;YAsCC,GAAG;IAMjB,OAAO,CAAC,KAAK;CAkBd;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Measurement } from "@ovok/core/next";
2
2
  import { BluetoothError } from "./errors";
3
- import { Link } from "./link";
3
+ import { DeviceInformation, Link } from "./link";
4
4
  import { Peripheral } from "./transport";
5
5
  /** What a driver reports while it runs. */
6
6
  type DeviceEvent = {
@@ -8,6 +8,11 @@ type DeviceEvent = {
8
8
  kind: "status";
9
9
  /** Where it stands now. */
10
10
  status: "connected" | "measuring" | "disconnected";
11
+ } | {
12
+ /** The device reported who made it, which model it is and its serial number. */
13
+ kind: "information";
14
+ /** What it reported. */
15
+ information: DeviceInformation;
11
16
  } | {
12
17
  /** The device sent a reading. */
13
18
  kind: "reading";
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2CAA2C;AAC3C,KAAK,WAAW,GACZ;IAEA,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACpD,GACC;IAEA,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAEhB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAElB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB,GACC;IAEA,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,iGAAiG;AACjG,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1F,0EAA0E;AAC1E,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjE,8GAA8G;AAC9G,QAAA,MAAM,aAAa,GAAI,SAAS,WAAW,KAAG,OAI7C,CAAC;AAMF,yCAAyC;AACzC,QAAA,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,cAAc,KAAG,MAazD,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/next/bluetooth/driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,2CAA2C;AAC3C,KAAK,WAAW,GACZ;IAEA,+BAA+B;IAC/B,IAAI,EAAE,QAAQ,CAAC;IAEf,2BAA2B;IAC3B,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,cAAc,CAAC;CACpD,GACC;IAEA,gFAAgF;IAChF,IAAI,EAAE,aAAa,CAAC;IAEpB,wBAAwB;IACxB,WAAW,EAAE,iBAAiB,CAAC;CAChC,GACC;IAEA,iCAAiC;IACjC,IAAI,EAAE,SAAS,CAAC;IAEhB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAElB,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB,GACC;IAEA,iFAAiF;IACjF,IAAI,EAAE,OAAO,CAAC;IAEd,iBAAiB;IACjB,KAAK,EAAE,cAAc,CAAC;CACvB,CAAC;AAEJ,iGAAiG;AACjG,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAE1F,0EAA0E;AAC1E,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC;AAEjE,8GAA8G;AAC9G,QAAA,MAAM,aAAa,GAAI,SAAS,WAAW,KAAG,OAI7C,CAAC;AAMF,yCAAyC;AACzC,QAAA,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,cAAc,KAAG,MAgBzD,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC"}