@ovok/native 0.4.2 → 0.4.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 (354) hide show
  1. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  2. package/lib/commonjs/modules/bt-management/components/bt-provider.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/constants/custom-device-brand.js +12 -0
  4. package/lib/commonjs/modules/bt-management/constants/custom-device-brand.js.map +1 -0
  5. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js +111 -0
  6. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -0
  7. package/lib/commonjs/modules/bt-management/index.js +209 -0
  8. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  9. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  10. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js +116 -0
  11. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-case.js.map +1 -0
  12. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js +83 -0
  13. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-field.js.map +1 -0
  14. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-frame.js +64 -0
  15. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -0
  16. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js +76 -0
  17. package/lib/commonjs/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -0
  18. package/lib/commonjs/modules/bt-management/services/custom/custom-device-error.js +13 -0
  19. package/lib/commonjs/modules/bt-management/services/custom/custom-device-error.js.map +1 -0
  20. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +120 -0
  21. package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -0
  22. package/lib/commonjs/modules/bt-management/services/custom/normalize-ble-uuid.js +32 -0
  23. package/lib/commonjs/modules/bt-management/services/custom/normalize-ble-uuid.js.map +1 -0
  24. package/lib/commonjs/modules/bt-management/services/device-creator.js +52 -26
  25. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  26. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +22 -5
  27. package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  28. package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  29. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +103 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -0
  31. package/lib/commonjs/modules/bt-management/types/accepted-device.js +6 -0
  32. package/lib/commonjs/modules/bt-management/types/accepted-device.js.map +1 -0
  33. package/lib/commonjs/modules/bt-management/types/compiled-custom-field.js +6 -0
  34. package/lib/commonjs/modules/bt-management/types/compiled-custom-field.js.map +1 -0
  35. package/lib/commonjs/modules/bt-management/types/custom-byte-order.js +2 -0
  36. package/lib/commonjs/modules/bt-management/types/custom-byte-order.js.map +1 -0
  37. package/lib/commonjs/modules/bt-management/types/custom-case-kind.js +2 -0
  38. package/lib/commonjs/modules/bt-management/types/custom-case-kind.js.map +1 -0
  39. package/lib/commonjs/modules/bt-management/types/custom-case-spec.js +6 -0
  40. package/lib/commonjs/modules/bt-management/types/custom-case-spec.js.map +1 -0
  41. package/lib/commonjs/modules/bt-management/types/custom-device-definition.js +4 -0
  42. package/lib/commonjs/modules/bt-management/types/custom-device-definition.js.map +1 -0
  43. package/lib/commonjs/modules/bt-management/types/custom-device-id.js +2 -0
  44. package/lib/commonjs/modules/bt-management/types/custom-device-id.js.map +1 -0
  45. package/lib/commonjs/modules/bt-management/types/custom-device-spec.js +6 -0
  46. package/lib/commonjs/modules/bt-management/types/custom-device-spec.js.map +1 -0
  47. package/lib/commonjs/modules/bt-management/types/custom-field-encoding.js +2 -0
  48. package/lib/commonjs/modules/bt-management/types/custom-field-encoding.js.map +1 -0
  49. package/lib/commonjs/modules/bt-management/types/custom-field-spec.js +6 -0
  50. package/lib/commonjs/modules/bt-management/types/custom-field-spec.js.map +1 -0
  51. package/lib/commonjs/modules/bt-management/types/custom-frame-spec.js +6 -0
  52. package/lib/commonjs/modules/bt-management/types/custom-frame-spec.js.map +1 -0
  53. package/lib/commonjs/modules/bt-management/types/custom-measurement.js +6 -0
  54. package/lib/commonjs/modules/bt-management/types/custom-measurement.js.map +1 -0
  55. package/lib/commonjs/modules/bt-management/types/custom-monitor-spec.js +6 -0
  56. package/lib/commonjs/modules/bt-management/types/custom-monitor-spec.js.map +1 -0
  57. package/lib/commonjs/modules/bt-management/types/custom-service-spec.js +6 -0
  58. package/lib/commonjs/modules/bt-management/types/custom-service-spec.js.map +1 -0
  59. package/lib/commonjs/modules/bt-management/types/device-key-of.js +6 -0
  60. package/lib/commonjs/modules/bt-management/types/device-key-of.js.map +1 -0
  61. package/lib/commonjs/modules/bt-management/types/device-key.js +6 -0
  62. package/lib/commonjs/modules/bt-management/types/device-key.js.map +1 -0
  63. package/lib/commonjs/modules/bt-management/types/device-measurement-map.js.map +1 -1
  64. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js +54 -0
  65. package/lib/commonjs/modules/bt-management/utils/create-custom-field-parser.js.map +1 -0
  66. package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js +40 -0
  67. package/lib/commonjs/modules/bt-management/utils/create-frame-validator.js.map +1 -0
  68. package/lib/commonjs/modules/bt-management/utils/decode-medical-float.js +38 -0
  69. package/lib/commonjs/modules/bt-management/utils/decode-medical-float.js.map +1 -0
  70. package/lib/commonjs/modules/bt-management/utils/is-custom-device-definition.js +15 -0
  71. package/lib/commonjs/modules/bt-management/utils/is-custom-device-definition.js.map +1 -0
  72. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +11 -1
  73. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  74. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +33 -1
  75. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  76. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -0
  77. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  78. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +30 -2
  79. package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  80. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +19 -0
  81. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  82. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  83. package/lib/module/modules/bt-management/components/bt-provider.js.map +1 -1
  84. package/lib/module/modules/bt-management/constants/custom-device-brand.js +8 -0
  85. package/lib/module/modules/bt-management/constants/custom-device-brand.js.map +1 -0
  86. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +108 -0
  87. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -0
  88. package/lib/module/modules/bt-management/index.js +19 -0
  89. package/lib/module/modules/bt-management/index.js.map +1 -1
  90. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  91. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js +112 -0
  92. package/lib/module/modules/bt-management/services/custom/compile-custom-case.js.map +1 -0
  93. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js +78 -0
  94. package/lib/module/modules/bt-management/services/custom/compile-custom-field.js.map +1 -0
  95. package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js +59 -0
  96. package/lib/module/modules/bt-management/services/custom/compile-custom-frame.js.map +1 -0
  97. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js +71 -0
  98. package/lib/module/modules/bt-management/services/custom/compile-custom-monitor.js.map +1 -0
  99. package/lib/module/modules/bt-management/services/custom/custom-device-error.js +8 -0
  100. package/lib/module/modules/bt-management/services/custom/custom-device-error.js.map +1 -0
  101. package/lib/module/modules/bt-management/services/custom/define-custom-device.js +115 -0
  102. package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -0
  103. package/lib/module/modules/bt-management/services/custom/normalize-ble-uuid.js +27 -0
  104. package/lib/module/modules/bt-management/services/custom/normalize-ble-uuid.js.map +1 -0
  105. package/lib/module/modules/bt-management/services/device-creator.js +52 -26
  106. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  107. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +22 -5
  108. package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
  109. package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
  110. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +98 -0
  111. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -0
  112. package/lib/module/modules/bt-management/types/accepted-device.js +4 -0
  113. package/lib/module/modules/bt-management/types/accepted-device.js.map +1 -0
  114. package/lib/module/modules/bt-management/types/compiled-custom-field.js +4 -0
  115. package/lib/module/modules/bt-management/types/compiled-custom-field.js.map +1 -0
  116. package/lib/module/modules/bt-management/types/custom-byte-order.js +2 -0
  117. package/lib/module/modules/bt-management/types/custom-byte-order.js.map +1 -0
  118. package/lib/module/modules/bt-management/types/custom-case-kind.js +2 -0
  119. package/lib/module/modules/bt-management/types/custom-case-kind.js.map +1 -0
  120. package/lib/module/modules/bt-management/types/custom-case-spec.js +4 -0
  121. package/lib/module/modules/bt-management/types/custom-case-spec.js.map +1 -0
  122. package/lib/module/modules/bt-management/types/custom-device-definition.js +8 -0
  123. package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -0
  124. package/lib/module/modules/bt-management/types/custom-device-id.js +2 -0
  125. package/lib/module/modules/bt-management/types/custom-device-id.js.map +1 -0
  126. package/lib/module/modules/bt-management/types/custom-device-spec.js +4 -0
  127. package/lib/module/modules/bt-management/types/custom-device-spec.js.map +1 -0
  128. package/lib/module/modules/bt-management/types/custom-field-encoding.js +2 -0
  129. package/lib/module/modules/bt-management/types/custom-field-encoding.js.map +1 -0
  130. package/lib/module/modules/bt-management/types/custom-field-spec.js +4 -0
  131. package/lib/module/modules/bt-management/types/custom-field-spec.js.map +1 -0
  132. package/lib/module/modules/bt-management/types/custom-frame-spec.js +4 -0
  133. package/lib/module/modules/bt-management/types/custom-frame-spec.js.map +1 -0
  134. package/lib/module/modules/bt-management/types/custom-measurement.js +4 -0
  135. package/lib/module/modules/bt-management/types/custom-measurement.js.map +1 -0
  136. package/lib/module/modules/bt-management/types/custom-monitor-spec.js +4 -0
  137. package/lib/module/modules/bt-management/types/custom-monitor-spec.js.map +1 -0
  138. package/lib/module/modules/bt-management/types/custom-service-spec.js +4 -0
  139. package/lib/module/modules/bt-management/types/custom-service-spec.js.map +1 -0
  140. package/lib/module/modules/bt-management/types/device-key-of.js +4 -0
  141. package/lib/module/modules/bt-management/types/device-key-of.js.map +1 -0
  142. package/lib/module/modules/bt-management/types/device-key.js +4 -0
  143. package/lib/module/modules/bt-management/types/device-key.js.map +1 -0
  144. package/lib/module/modules/bt-management/types/device-measurement-map.js +5 -0
  145. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  146. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js +49 -0
  147. package/lib/module/modules/bt-management/utils/create-custom-field-parser.js.map +1 -0
  148. package/lib/module/modules/bt-management/utils/create-frame-validator.js +35 -0
  149. package/lib/module/modules/bt-management/utils/create-frame-validator.js.map +1 -0
  150. package/lib/module/modules/bt-management/utils/decode-medical-float.js +33 -0
  151. package/lib/module/modules/bt-management/utils/decode-medical-float.js.map +1 -0
  152. package/lib/module/modules/bt-management/utils/is-custom-device-definition.js +10 -0
  153. package/lib/module/modules/bt-management/utils/is-custom-device-definition.js.map +1 -0
  154. package/lib/module/modules/data-sync/components/android/android-health-sync.js +11 -1
  155. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  156. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +33 -1
  157. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  158. package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -0
  159. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  160. package/lib/module/modules/data-sync/services/managers/storage-manager.js +30 -2
  161. package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
  162. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +19 -0
  163. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  164. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts +2 -2
  165. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  166. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider.d.ts +2 -2
  167. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider.d.ts.map +1 -1
  168. package/lib/typescript/commonjs/src/modules/bt-management/constants/custom-device-brand.d.ts +6 -0
  169. package/lib/typescript/commonjs/src/modules/bt-management/constants/custom-device-brand.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts +26 -0
  171. package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +19 -0
  173. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +5 -4
  175. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  176. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts +6 -0
  177. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-field.d.ts +6 -0
  179. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -0
  180. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-frame.d.ts +13 -0
  181. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts +10 -0
  183. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -0
  184. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/custom-device-error.d.ts +6 -0
  185. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/custom-device-error.d.ts.map +1 -0
  186. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts +12 -0
  187. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -0
  188. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/normalize-ble-uuid.d.ts +7 -0
  189. package/lib/typescript/commonjs/src/modules/bt-management/services/custom/normalize-ble-uuid.d.ts.map +1 -0
  190. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts +12 -5
  191. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +12 -1
  193. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +2 -1
  195. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  196. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +43 -0
  197. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -0
  198. package/lib/typescript/commonjs/src/modules/bt-management/types/accepted-device.d.ts +5 -0
  199. package/lib/typescript/commonjs/src/modules/bt-management/types/accepted-device.d.ts.map +1 -0
  200. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +5 -4
  201. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-props.d.ts +2 -2
  203. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-props.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/modules/bt-management/types/compiled-custom-field.d.ts +16 -0
  205. package/lib/typescript/commonjs/src/modules/bt-management/types/compiled-custom-field.d.ts.map +1 -0
  206. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +2 -2
  207. package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-byte-order.d.ts +6 -0
  209. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-byte-order.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts +12 -0
  211. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -0
  212. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts +18 -0
  213. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -0
  214. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts +22 -0
  215. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -0
  216. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-id.d.ts +10 -0
  217. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-id.d.ts.map +1 -0
  218. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
  219. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -0
  220. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts +10 -0
  221. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -0
  222. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-spec.d.ts +33 -0
  223. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-field-spec.d.ts.map +1 -0
  224. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts +27 -0
  225. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -0
  226. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement.d.ts +10 -0
  227. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-measurement.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-monitor-spec.d.ts +14 -0
  229. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-monitor-spec.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-service-spec.d.ts +15 -0
  231. package/lib/typescript/commonjs/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +2 -2
  233. package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/src/modules/bt-management/types/device-key-of.d.ts +8 -0
  235. package/lib/typescript/commonjs/src/modules/bt-management/types/device-key-of.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/src/modules/bt-management/types/device-key.d.ts +5 -0
  237. package/lib/typescript/commonjs/src/modules/bt-management/types/device-key.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +10 -5
  239. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +2 -2
  241. package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-custom-field-parser.d.ts +12 -0
  243. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-frame-validator.d.ts +10 -0
  245. package/lib/typescript/commonjs/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -0
  246. package/lib/typescript/commonjs/src/modules/bt-management/utils/decode-medical-float.d.ts +9 -0
  247. package/lib/typescript/commonjs/src/modules/bt-management/utils/decode-medical-float.d.ts.map +1 -0
  248. package/lib/typescript/commonjs/src/modules/bt-management/utils/is-custom-device-definition.d.ts +9 -0
  249. package/lib/typescript/commonjs/src/modules/bt-management/utils/is-custom-device-definition.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -0
  253. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +20 -0
  255. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  257. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +13 -0
  258. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  259. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts +2 -2
  260. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  261. package/lib/typescript/module/src/modules/bt-management/components/bt-provider.d.ts +2 -2
  262. package/lib/typescript/module/src/modules/bt-management/components/bt-provider.d.ts.map +1 -1
  263. package/lib/typescript/module/src/modules/bt-management/constants/custom-device-brand.d.ts +6 -0
  264. package/lib/typescript/module/src/modules/bt-management/constants/custom-device-brand.d.ts.map +1 -0
  265. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts +26 -0
  266. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -0
  267. package/lib/typescript/module/src/modules/bt-management/index.d.ts +19 -0
  268. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  269. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +5 -4
  270. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  271. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts +6 -0
  272. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-case.d.ts.map +1 -0
  273. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-field.d.ts +6 -0
  274. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-field.d.ts.map +1 -0
  275. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-frame.d.ts +13 -0
  276. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-frame.d.ts.map +1 -0
  277. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts +10 -0
  278. package/lib/typescript/module/src/modules/bt-management/services/custom/compile-custom-monitor.d.ts.map +1 -0
  279. package/lib/typescript/module/src/modules/bt-management/services/custom/custom-device-error.d.ts +6 -0
  280. package/lib/typescript/module/src/modules/bt-management/services/custom/custom-device-error.d.ts.map +1 -0
  281. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts +12 -0
  282. package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -0
  283. package/lib/typescript/module/src/modules/bt-management/services/custom/normalize-ble-uuid.d.ts +7 -0
  284. package/lib/typescript/module/src/modules/bt-management/services/custom/normalize-ble-uuid.d.ts.map +1 -0
  285. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts +12 -5
  286. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  287. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +12 -1
  288. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
  289. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +2 -1
  290. package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
  291. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +43 -0
  292. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -0
  293. package/lib/typescript/module/src/modules/bt-management/types/accepted-device.d.ts +5 -0
  294. package/lib/typescript/module/src/modules/bt-management/types/accepted-device.d.ts.map +1 -0
  295. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +5 -4
  296. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  297. package/lib/typescript/module/src/modules/bt-management/types/btprovider-props.d.ts +2 -2
  298. package/lib/typescript/module/src/modules/bt-management/types/btprovider-props.d.ts.map +1 -1
  299. package/lib/typescript/module/src/modules/bt-management/types/compiled-custom-field.d.ts +16 -0
  300. package/lib/typescript/module/src/modules/bt-management/types/compiled-custom-field.d.ts.map +1 -0
  301. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +2 -2
  302. package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
  303. package/lib/typescript/module/src/modules/bt-management/types/custom-byte-order.d.ts +6 -0
  304. package/lib/typescript/module/src/modules/bt-management/types/custom-byte-order.d.ts.map +1 -0
  305. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts +12 -0
  306. package/lib/typescript/module/src/modules/bt-management/types/custom-case-kind.d.ts.map +1 -0
  307. package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts +18 -0
  308. package/lib/typescript/module/src/modules/bt-management/types/custom-case-spec.d.ts.map +1 -0
  309. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts +22 -0
  310. package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -0
  311. package/lib/typescript/module/src/modules/bt-management/types/custom-device-id.d.ts +10 -0
  312. package/lib/typescript/module/src/modules/bt-management/types/custom-device-id.d.ts.map +1 -0
  313. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts +12 -0
  314. package/lib/typescript/module/src/modules/bt-management/types/custom-device-spec.d.ts.map +1 -0
  315. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts +10 -0
  316. package/lib/typescript/module/src/modules/bt-management/types/custom-field-encoding.d.ts.map +1 -0
  317. package/lib/typescript/module/src/modules/bt-management/types/custom-field-spec.d.ts +33 -0
  318. package/lib/typescript/module/src/modules/bt-management/types/custom-field-spec.d.ts.map +1 -0
  319. package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts +27 -0
  320. package/lib/typescript/module/src/modules/bt-management/types/custom-frame-spec.d.ts.map +1 -0
  321. package/lib/typescript/module/src/modules/bt-management/types/custom-measurement.d.ts +10 -0
  322. package/lib/typescript/module/src/modules/bt-management/types/custom-measurement.d.ts.map +1 -0
  323. package/lib/typescript/module/src/modules/bt-management/types/custom-monitor-spec.d.ts +14 -0
  324. package/lib/typescript/module/src/modules/bt-management/types/custom-monitor-spec.d.ts.map +1 -0
  325. package/lib/typescript/module/src/modules/bt-management/types/custom-service-spec.d.ts +15 -0
  326. package/lib/typescript/module/src/modules/bt-management/types/custom-service-spec.d.ts.map +1 -0
  327. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +2 -2
  328. package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
  329. package/lib/typescript/module/src/modules/bt-management/types/device-key-of.d.ts +8 -0
  330. package/lib/typescript/module/src/modules/bt-management/types/device-key-of.d.ts.map +1 -0
  331. package/lib/typescript/module/src/modules/bt-management/types/device-key.d.ts +5 -0
  332. package/lib/typescript/module/src/modules/bt-management/types/device-key.d.ts.map +1 -0
  333. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +10 -5
  334. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  335. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +2 -2
  336. package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
  337. package/lib/typescript/module/src/modules/bt-management/utils/create-custom-field-parser.d.ts +12 -0
  338. package/lib/typescript/module/src/modules/bt-management/utils/create-custom-field-parser.d.ts.map +1 -0
  339. package/lib/typescript/module/src/modules/bt-management/utils/create-frame-validator.d.ts +10 -0
  340. package/lib/typescript/module/src/modules/bt-management/utils/create-frame-validator.d.ts.map +1 -0
  341. package/lib/typescript/module/src/modules/bt-management/utils/decode-medical-float.d.ts +9 -0
  342. package/lib/typescript/module/src/modules/bt-management/utils/decode-medical-float.d.ts.map +1 -0
  343. package/lib/typescript/module/src/modules/bt-management/utils/is-custom-device-definition.d.ts +9 -0
  344. package/lib/typescript/module/src/modules/bt-management/utils/is-custom-device-definition.d.ts.map +1 -0
  345. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  346. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  347. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -0
  348. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  349. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +20 -0
  350. package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
  351. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
  352. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +13 -0
  353. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  354. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["CaseType","DeviceStatus","parseMeasurement","BTDataProcessor","collectedValues","isMeasuring","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","destroy","clearTimeout","stuckDataTimeout","undefined","processData","uuid","hexValue","push","startStuckTimeout","isValid","validatePackage","data","extractData","resetDataAndSendCommandToDevice","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","handleStatusChanges","parsingModel","findParsingModel","value","caseValuePosition","map","index","join","findParsingCase","parsedData","parseData","measurementTypeKey","mainService","characteristic","monitorUuids","find","e","toLowerCase","caseValue","cases","successResult","STREAM","onStreamStart","onStatusChanged","MEASURING","OTHER","CONNECTED","skipConnectedChange","onResult","RESULT","onSendCommandToDevice","setTimeout","onError","Error","cause","message","cancelConnection"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CaseType","DeviceStatus","parseMeasurement","BTDataProcessor","buffers","Map","isMeasuring","constructor","device","mainServices","stuckDataTimeoutDuration","callbacks","collectedValues","get","currentUuid","destroy","clear","clearTimeout","stuckDataTimeout","undefined","processData","uuid","hexValue","String","toLowerCase","buffer","push","set","startStuckTimeout","isValid","validatePackage","data","extractData","resetDataAndSendCommandToDevice","dependentData","parsingCase","caseType","DEPENDENT","handleDependentResult","handleStatusChanges","parsingModel","findParsingModel","value","caseValuePosition","map","index","join","findParsingCase","parsedData","parseData","measurementTypeKey","mainService","characteristic","monitorUuids","find","e","caseValue","cases","successResult","STREAM","onStreamStart","onStatusChanged","MEASURING","OTHER","CONNECTED","skipConnectedChange","onResult","RESULT","onSendCommandToDevice","setTimeout","onError","Error","cause","message","cancelConnection"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-data-processor.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["sentryLogger","DeviceStatus","BTConnectionHandler","BTDataProcessor","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","diagramPoints","length","undefined","destroy","connectionHandler","dataProcessor","connect","getSupportedMeasurementTypeKeys","mainServices","onStatusChanged","bind","DISCONNECTED","onDataReceived","uuid","hexValue","processData","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","onSendCommandToDevice","sendCommandToDevice","handleDependentResult","flatMap","service","monitorUuids","parsingModel","cases","map","c","filter","type","uniqueMeasurementTypes","Set","flat"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sentryLogger","DeviceStatus","BTConnectionHandler","BTDataProcessor","BTManagedDevice","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResult","onResultCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","deviceId","id","deviceData","name","localName","manufacturerData","sn","measurementTypes","status","measurementTypeKey","error","Error","message","caseType","_","data","diagramPoints","length","undefined","destroy","connectionHandler","dataProcessor","connect","getSupportedMeasurementTypeKeys","mainServices","onStatusChanged","bind","DISCONNECTED","onDataReceived","uuid","hexValue","processData","stuckDataTimeout","onStreamStart","validatePackage","parsedData","collectedValues","handleSuccessResult","onSendCommandToDevice","sendCommandToDevice","handleDependentResult","flatMap","service","monitorUuids","parsingModel","cases","map","c","filter","type","uniqueMeasurementTypes","Set","flat"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ import { CaseType } from "../../../types/case-type.js";
4
+ import { createFrameValidator } from "../../../utils/create-frame-validator.js";
5
+ import { BTManagedDevice } from "../bt-managed-device.js";
6
+ const RESERVED_KEYS = ["measurementTypeKey", "caseType"];
7
+
8
+ /**
9
+ * Runs a device registered with defineCustomDevice.
10
+ *
11
+ * Everything specific to the device is data: the services and characteristics it exposes,
12
+ * how a complete frame is recognised, which frame carries which reading, and how each byte
13
+ * range becomes a number. What is left here is the safety net - a reading is reported only
14
+ * when every property the declaration named decoded to a finite number inside the range the
15
+ * catalog accepts. Anything else is reported through onError and no measurement is emitted.
16
+ */
17
+ export class CustomDevice extends BTManagedDevice {
18
+ validators = new Map();
19
+ constructor(device, params, definition) {
20
+ super(device, params);
21
+ this.definition = definition;
22
+ this.mainServices = definition.mainServices;
23
+ this.stuckDataTimeout = definition.stuckDataTimeout;
24
+ definition.frames.forEach((frame, uuid) => {
25
+ this.validators.set(uuid, createFrameValidator(frame));
26
+ });
27
+ }
28
+ validatePackage = (pkg, uuid) => {
29
+ const validate = this.validators.get(String(uuid ?? "").toLowerCase());
30
+ if (!validate) {
31
+ return false;
32
+ }
33
+ return validate(pkg);
34
+ };
35
+
36
+ /**
37
+ * Every declared "result" frame arrives here, whether or not the device streamed first.
38
+ * The reading is checked and reported, and the frame is then handed back as OTHER so the
39
+ * processor returns the device to CONNECTED without reporting it a second time.
40
+ */
41
+ handleDependentResult = data => {
42
+ try {
43
+ this.report(data.parsedData);
44
+ } catch (error) {
45
+ this.onError?.(error);
46
+ }
47
+ return {
48
+ ...data,
49
+ parsingCase: {
50
+ ...data.parsingCase,
51
+ caseType: CaseType.OTHER
52
+ }
53
+ };
54
+ };
55
+
56
+ /**
57
+ * Stream frames reach this while the device is measuring. They carry no fields, and the
58
+ * readings themselves are reported from handleDependentResult, so there is nothing to do.
59
+ */
60
+ handleSuccessResult() {
61
+ return;
62
+ }
63
+ report(parsedData) {
64
+ const measurementTypeKey = parsedData.measurementTypeKey;
65
+ if (!measurementTypeKey) {
66
+ this.fail("a result frame carries no measurement type", parsedData);
67
+ return;
68
+ }
69
+ const names = Object.keys(parsedData).filter(key => !RESERVED_KEYS.includes(key));
70
+ if (names.length === 0) {
71
+ this.fail("a result frame decoded no properties", parsedData);
72
+ return;
73
+ }
74
+ const rejection = names.map(name => this.reject(measurementTypeKey, name, parsedData[name])).find(message => message !== undefined);
75
+ if (rejection) {
76
+ this.fail(rejection, parsedData);
77
+ return;
78
+ }
79
+ this.onResult?.(parsedData);
80
+ }
81
+ reject(measurementTypeKey, name, value) {
82
+ const field = this.definition.fields.get(`${measurementTypeKey}:${name}`);
83
+ if (!field) {
84
+ return `decoded "${name}", which is not declared for ${measurementTypeKey}`;
85
+ }
86
+ if (typeof value !== "number" || !Number.isFinite(value)) {
87
+ return `could not decode ${name}; the frame was shorter than the declaration expects`;
88
+ }
89
+ if (value < field.min || value > field.max) {
90
+ return `decoded ${name} = ${value} ${field.unit}, outside the accepted range ${field.min}-${field.max} ${field.unit}`;
91
+ }
92
+ return undefined;
93
+ }
94
+ fail(reason, parsedData) {
95
+ this.onError?.(new Error(`Custom device "${this.definition.id}": ${reason}. The reading was discarded (decoded ${JSON.stringify(parsedData)}).`));
96
+ }
97
+ }
98
+ //# sourceMappingURL=custom.device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CaseType","createFrameValidator","BTManagedDevice","RESERVED_KEYS","CustomDevice","validators","Map","constructor","device","params","definition","mainServices","stuckDataTimeout","frames","forEach","frame","uuid","set","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","report","parsedData","error","onError","parsingCase","caseType","OTHER","handleSuccessResult","measurementTypeKey","fail","names","Object","keys","filter","key","includes","length","rejection","map","name","reject","find","message","undefined","onResult","value","field","fields","Number","isFinite","min","max","unit","reason","Error","id","JSON","stringify"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,6BAA0B;AAQnD,SAASC,oBAAoB,QAAQ,0CAAuC;AAC5E,SAASC,eAAe,QAAQ,yBAAsB;AAKtD,MAAMC,aAAa,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAASF,eAAe,CAAiB;EAM/CG,UAAU,GAAG,IAAIC,GAAG,CAAqC,CAAC;EAE3EC,WAAWA,CACTC,MAAc,EACdC,MAA0C,EAC1CC,UAAkC,EAClC;IACA,KAAK,CAACF,MAAM,EAAEC,MAAM,CAAC;IAErB,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,YAAY,GAAGD,UAAU,CAACC,YAAY;IAC3C,IAAI,CAACC,gBAAgB,GAAGF,UAAU,CAACE,gBAAgB;IAEnDF,UAAU,CAACG,MAAM,CAACC,OAAO,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAK;MACzC,IAAI,CAACX,UAAU,CAACY,GAAG,CAACD,IAAI,EAAEf,oBAAoB,CAACc,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC;EACJ;EAEUG,eAAe,GAAGA,CAACC,GAAa,EAAEH,IAAY,KAAc;IACpE,MAAMI,QAAQ,GAAG,IAAI,CAACf,UAAU,CAACgB,GAAG,CAACC,MAAM,CAACN,IAAI,IAAI,EAAE,CAAC,CAACO,WAAW,CAAC,CAAC,CAAC;IAEtE,IAAI,CAACH,QAAQ,EAAE;MACb,OAAO,KAAK;IACd;IAEA,OAAOA,QAAQ,CAACD,GAAG,CAAC;EACtB,CAAC;;EAED;AACF;AACA;AACA;AACA;EACYK,qBAAqB,GAC7BC,IAAuD,IACD;IACtD,IAAI;MACF,IAAI,CAACC,MAAM,CAACD,IAAI,CAACE,UAAU,CAAC;IAC9B,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,IAAI,CAACC,OAAO,GAAGD,KAAc,CAAC;IAChC;IAEA,OAAO;MACL,GAAGH,IAAI;MACPK,WAAW,EAAE;QAAE,GAAGL,IAAI,CAACK,WAAW;QAAEC,QAAQ,EAAE/B,QAAQ,CAACgC;MAAM;IAC/D,CAAC;EACH,CAAC;;EAED;AACF;AACA;AACA;EACYC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;EAEQP,MAAMA,CAACC,UAAwB,EAAQ;IAC7C,MAAMO,kBAAkB,GAAGP,UAAU,CAACO,kBAAkB;IAExD,IAAI,CAACA,kBAAkB,EAAE;MACvB,IAAI,CAACC,IAAI,CAAC,4CAA4C,EAAER,UAAU,CAAC;MAEnE;IACF;IAEA,MAAMS,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACX,UAAU,CAAC,CAACY,MAAM,CACzCC,GAAG,IAAK,CAACrC,aAAa,CAACsC,QAAQ,CAACD,GAAG,CACtC,CAAC;IAED,IAAIJ,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;MACtB,IAAI,CAACP,IAAI,CAAC,sCAAsC,EAAER,UAAU,CAAC;MAE7D;IACF;IAEA,MAAMgB,SAAS,GAAGP,KAAK,CACpBQ,GAAG,CAAEC,IAAI,IAAK,IAAI,CAACC,MAAM,CAACZ,kBAAkB,EAAEW,IAAI,EAAElB,UAAU,CAACkB,IAAI,CAAC,CAAC,CAAC,CACtEE,IAAI,CAAEC,OAAO,IAAKA,OAAO,KAAKC,SAAS,CAAC;IAE3C,IAAIN,SAAS,EAAE;MACb,IAAI,CAACR,IAAI,CAACQ,SAAS,EAAEhB,UAAU,CAAC;MAEhC;IACF;IAEA,IAAI,CAACuB,QAAQ,GAAGvB,UAAU,CAAC;EAC7B;EAEQmB,MAAMA,CACZZ,kBAA0B,EAC1BW,IAAY,EACZM,KAAc,EACM;IACpB,MAAMC,KAAK,GAAG,IAAI,CAAC1C,UAAU,CAAC2C,MAAM,CAAChC,GAAG,CAAC,GAAGa,kBAAkB,IAAIW,IAAI,EAAE,CAAC;IAEzE,IAAI,CAACO,KAAK,EAAE;MACV,OAAO,YAAYP,IAAI,gCAAgCX,kBAAkB,EAAE;IAC7E;IAEA,IAAI,OAAOiB,KAAK,KAAK,QAAQ,IAAI,CAACG,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAAC,EAAE;MACxD,OAAO,oBAAoBN,IAAI,sDAAsD;IACvF;IAEA,IAAIM,KAAK,GAAGC,KAAK,CAACI,GAAG,IAAIL,KAAK,GAAGC,KAAK,CAACK,GAAG,EAAE;MAC1C,OAAO,WAAWZ,IAAI,MAAMM,KAAK,IAAIC,KAAK,CAACM,IAAI,gCAAgCN,KAAK,CAACI,GAAG,IAAIJ,KAAK,CAACK,GAAG,IAAIL,KAAK,CAACM,IAAI,EAAE;IACvH;IAEA,OAAOT,SAAS;EAClB;EAEQd,IAAIA,CAACwB,MAAc,EAAEhC,UAAwB,EAAQ;IAC3D,IAAI,CAACE,OAAO,GACV,IAAI+B,KAAK,CACP,kBAAkB,IAAI,CAAClD,UAAU,CAACmD,EAAE,MAAMF,MAAM,wCAAwCG,IAAI,CAACC,SAAS,CAACpC,UAAU,CAAC,IACpH,CACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=accepted-device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/accepted-device.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=compiled-custom-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/compiled-custom-field.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-byte-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-byte-order.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-case-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-case-kind.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-case-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-case-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ import { CUSTOM_DEVICE_BRAND } from "../constants/custom-device-brand.js";
4
+
5
+ /**
6
+ * A validated, ready-to-run custom device. Only defineCustomDevice produces one.
7
+ */
8
+ //# sourceMappingURL=custom-device-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CUSTOM_DEVICE_BRAND"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-device-definition.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,qCAAkC;;AAQtE;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-device-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-device-id.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-device-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-device-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=custom-field-encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-field-encoding.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-field-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-field-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-frame-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-frame-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-measurement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-measurement.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-monitor-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-monitor-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=custom-service-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/custom-service-spec.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=device-key-of.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-key-of.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=device-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-key.ts"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { IntegratedDevices } from "./integrated-devices.js";
4
+
5
+ /**
6
+ * A built-in device has a measurement type the SDK knows statically. A device registered
7
+ * through defineCustomDevice reports the catalog-checked properties its declaration named.
8
+ */
4
9
  //# sourceMappingURL=device-measurement-map.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AASA,SAASA,iBAAiB,QAAQ,yBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["IntegratedDevices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/device-measurement-map.ts"],"mappings":";;AAWA,SAASA,iBAAiB,QAAQ,yBAAsB;;AAwBxD;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ import { decodeMedicalFloat } from "./decode-medical-float.js";
4
+ const HEX_ONLY = /^[0-9a-f]+$/;
5
+ const toRaw = (hex, field) => {
6
+ const raw = parseInt(hex, 16);
7
+ const bits = hex.length * 4;
8
+ if (field.encoding === "int") {
9
+ const sign = 2 ** (bits - 1);
10
+ return raw >= sign ? raw - sign * 2 : raw;
11
+ }
12
+ if (field.encoding === "sfloat") {
13
+ return decodeMedicalFloat(raw, 4, 12);
14
+ }
15
+ if (field.encoding === "float") {
16
+ return decodeMedicalFloat(raw, 8, 24);
17
+ }
18
+ return raw;
19
+ };
20
+
21
+ /**
22
+ * Builds the parser a compiled field contributes to the parsing model.
23
+ *
24
+ * It receives the hex bytes parse-measurement assembled for the field. Anything that is not
25
+ * exactly the declared width of clean hex returns undefined - notably the string
26
+ * parse-measurement produces when a byte index falls off the end of a short frame, which
27
+ * would otherwise be parsed as a plausible truncated number. The device turns an undefined
28
+ * field into an error and reports no reading.
29
+ */
30
+ export const createCustomFieldParser = field => assembledHex => {
31
+ const hex = (assembledHex ?? "").toLowerCase();
32
+ if (hex.length !== field.byteIndexes.length * 2 || !HEX_ONLY.test(hex)) {
33
+ return undefined;
34
+ }
35
+ const raw = toRaw(hex, field);
36
+ if (raw === undefined || !Number.isFinite(raw)) {
37
+ return undefined;
38
+ }
39
+ const value = raw * field.scale + field.offset;
40
+ if (!Number.isFinite(value)) {
41
+ return undefined;
42
+ }
43
+ if (field.decimals === undefined) {
44
+ return value;
45
+ }
46
+ const factor = 10 ** field.decimals;
47
+ return Math.round(value * factor) / factor;
48
+ };
49
+ //# sourceMappingURL=create-custom-field-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["decodeMedicalFloat","HEX_ONLY","toRaw","hex","field","raw","parseInt","bits","length","encoding","sign","createCustomFieldParser","assembledHex","toLowerCase","byteIndexes","test","undefined","Number","isFinite","value","scale","offset","decimals","factor","Math","round"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-custom-field-parser.ts"],"mappings":";;AAEA,SAASA,kBAAkB,QAAQ,2BAAwB;AAE3D,MAAMC,QAAQ,GAAG,aAAa;AAE9B,MAAMC,KAAK,GAAGA,CACZC,GAAW,EACXC,KAA0B,KACH;EACvB,MAAMC,GAAG,GAAGC,QAAQ,CAACH,GAAG,EAAE,EAAE,CAAC;EAC7B,MAAMI,IAAI,GAAGJ,GAAG,CAACK,MAAM,GAAG,CAAC;EAE3B,IAAIJ,KAAK,CAACK,QAAQ,KAAK,KAAK,EAAE;IAC5B,MAAMC,IAAI,GAAG,CAAC,KAAKH,IAAI,GAAG,CAAC,CAAC;IAE5B,OAAOF,GAAG,IAAIK,IAAI,GAAGL,GAAG,GAAGK,IAAI,GAAG,CAAC,GAAGL,GAAG;EAC3C;EAEA,IAAID,KAAK,CAACK,QAAQ,KAAK,QAAQ,EAAE;IAC/B,OAAOT,kBAAkB,CAACK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;EACvC;EAEA,IAAID,KAAK,CAACK,QAAQ,KAAK,OAAO,EAAE;IAC9B,OAAOT,kBAAkB,CAACK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;EACvC;EAEA,OAAOA,GAAG;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,uBAAuB,GACjCP,KAA0B,IAC1BQ,YAAoB,IAAyB;EAC5C,MAAMT,GAAG,GAAG,CAACS,YAAY,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC;EAE9C,IACEV,GAAG,CAACK,MAAM,KAAKJ,KAAK,CAACU,WAAW,CAACN,MAAM,GAAG,CAAC,IAC3C,CAACP,QAAQ,CAACc,IAAI,CAACZ,GAAG,CAAC,EACnB;IACA,OAAOa,SAAS;EAClB;EAEA,MAAMX,GAAG,GAAGH,KAAK,CAACC,GAAG,EAAEC,KAAK,CAAC;EAE7B,IAAIC,GAAG,KAAKW,SAAS,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACb,GAAG,CAAC,EAAE;IAC9C,OAAOW,SAAS;EAClB;EAEA,MAAMG,KAAK,GAAGd,GAAG,GAAGD,KAAK,CAACgB,KAAK,GAAGhB,KAAK,CAACiB,MAAM;EAE9C,IAAI,CAACJ,MAAM,CAACC,QAAQ,CAACC,KAAK,CAAC,EAAE;IAC3B,OAAOH,SAAS;EAClB;EAEA,IAAIZ,KAAK,CAACkB,QAAQ,KAAKN,SAAS,EAAE;IAChC,OAAOG,KAAK;EACd;EAEA,MAAMI,MAAM,GAAG,EAAE,IAAInB,KAAK,CAACkB,QAAQ;EAEnC,OAAOE,IAAI,CAACC,KAAK,CAACN,KAAK,GAAGI,MAAM,CAAC,GAAGA,MAAM;AAC5C,CAAC","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ const byteAt = (pkg, index) => parseInt(pkg[index] ?? "0", 16);
4
+ const announcedLength = (pkg, length) => {
5
+ const bytes = [];
6
+ for (let i = 0; i < length.widthBytes; i++) {
7
+ bytes.push(byteAt(pkg, length.index + i));
8
+ }
9
+ const ordered = length.byteOrder === "little" ? bytes.reverse() : bytes;
10
+ return ordered.reduce((total, byte) => total * 256 + byte, 0);
11
+ };
12
+
13
+ /**
14
+ * Builds the package validator for a declared device.
15
+ *
16
+ * The buffer must start with the declared header. The SDK never scans forward for it,
17
+ * because every declared byte index is absolute: a buffer that arrived misaligned is left
18
+ * to the stuck-data timeout instead of being decoded at a shifted offset.
19
+ */
20
+ export const createFrameValidator = frame => pkg => {
21
+ if (pkg.length < frame.minLengthBytes) {
22
+ return false;
23
+ }
24
+ const header = frame.header ?? [];
25
+ for (let i = 0; i < header.length; i++) {
26
+ if ((pkg[i] ?? "").toLowerCase() !== header[i]) {
27
+ return false;
28
+ }
29
+ }
30
+ if (!frame.length) {
31
+ return true;
32
+ }
33
+ return pkg.length >= frame.length.overheadBytes + announcedLength(pkg, frame.length);
34
+ };
35
+ //# sourceMappingURL=create-frame-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["byteAt","pkg","index","parseInt","announcedLength","length","bytes","i","widthBytes","push","ordered","byteOrder","reverse","reduce","total","byte","createFrameValidator","frame","minLengthBytes","header","toLowerCase","overheadBytes"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/create-frame-validator.ts"],"mappings":";;AAEA,MAAMA,MAAM,GAAGA,CAACC,GAAa,EAAEC,KAAa,KAC1CC,QAAQ,CAACF,GAAG,CAACC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;AAEjC,MAAME,eAAe,GAAGA,CACtBH,GAAa,EACbI,MAA8C,KACnC;EACX,MAAMC,KAAe,GAAG,EAAE;EAE1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,UAAU,EAAED,CAAC,EAAE,EAAE;IAC1CD,KAAK,CAACG,IAAI,CAACT,MAAM,CAACC,GAAG,EAAEI,MAAM,CAACH,KAAK,GAAGK,CAAC,CAAC,CAAC;EAC3C;EAEA,MAAMG,OAAO,GAAGL,MAAM,CAACM,SAAS,KAAK,QAAQ,GAAGL,KAAK,CAACM,OAAO,CAAC,CAAC,GAAGN,KAAK;EAEvE,OAAOI,OAAO,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAKD,KAAK,GAAG,GAAG,GAAGC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAC9BC,KAAsB,IACtBhB,GAAa,IAAc;EAC1B,IAAIA,GAAG,CAACI,MAAM,GAAGY,KAAK,CAACC,cAAc,EAAE;IACrC,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAM,IAAI,EAAE;EAEjC,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,MAAM,CAACd,MAAM,EAAEE,CAAC,EAAE,EAAE;IACtC,IAAI,CAACN,GAAG,CAACM,CAAC,CAAC,IAAI,EAAE,EAAEa,WAAW,CAAC,CAAC,KAAKD,MAAM,CAACZ,CAAC,CAAC,EAAE;MAC9C,OAAO,KAAK;IACd;EACF;EAEA,IAAI,CAACU,KAAK,CAACZ,MAAM,EAAE;IACjB,OAAO,IAAI;EACb;EAEA,OACEJ,GAAG,CAACI,MAAM,IACVY,KAAK,CAACZ,MAAM,CAACgB,aAAa,GAAGjB,eAAe,CAACH,GAAG,EAAEgB,KAAK,CAACZ,MAAM,CAAC;AAEnE,CAAC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * IEEE-11073 personal-health float decoding, shared by SFLOAT (16 bit) and FLOAT (32 bit).
5
+ *
6
+ * Both encodings reserve five mantissa values for NaN, NRes, the two infinities and one
7
+ * reserved code. They are returned as undefined rather than as a number: a device that
8
+ * reports "no result" must not turn into a plausible reading.
9
+ */
10
+ export const decodeMedicalFloat = (raw, exponentBits, mantissaBits) => {
11
+ const mantissaMask = 2 ** mantissaBits - 1;
12
+ const mantissaSign = 2 ** (mantissaBits - 1);
13
+ const exponentSign = 2 ** (exponentBits - 1);
14
+ const rawMantissa = raw & mantissaMask;
15
+ const reserved = [mantissaSign - 1,
16
+ // NaN
17
+ mantissaSign,
18
+ // NRes
19
+ mantissaSign - 2,
20
+ // +INFINITY
21
+ mantissaSign + 2,
22
+ // -INFINITY
23
+ mantissaSign + 1 // reserved for future use
24
+ ];
25
+ if (reserved.includes(rawMantissa)) {
26
+ return undefined;
27
+ }
28
+ const mantissa = rawMantissa >= mantissaSign ? rawMantissa - mantissaSign * 2 : rawMantissa;
29
+ const rawExponent = Math.floor(raw / 2 ** mantissaBits);
30
+ const exponent = rawExponent >= exponentSign ? rawExponent - exponentSign * 2 : rawExponent;
31
+ return mantissa * 10 ** exponent;
32
+ };
33
+ //# sourceMappingURL=decode-medical-float.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["decodeMedicalFloat","raw","exponentBits","mantissaBits","mantissaMask","mantissaSign","exponentSign","rawMantissa","reserved","includes","undefined","mantissa","rawExponent","Math","floor","exponent"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/decode-medical-float.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,kBAAkB,GAAGA,CAChCC,GAAW,EACXC,YAAoB,EACpBC,YAAoB,KACG;EACvB,MAAMC,YAAY,GAAG,CAAC,IAAID,YAAY,GAAG,CAAC;EAC1C,MAAME,YAAY,GAAG,CAAC,KAAKF,YAAY,GAAG,CAAC,CAAC;EAC5C,MAAMG,YAAY,GAAG,CAAC,KAAKJ,YAAY,GAAG,CAAC,CAAC;EAE5C,MAAMK,WAAW,GAAGN,GAAG,GAAGG,YAAY;EAEtC,MAAMI,QAAQ,GAAG,CACfH,YAAY,GAAG,CAAC;EAAE;EAClBA,YAAY;EAAE;EACdA,YAAY,GAAG,CAAC;EAAE;EAClBA,YAAY,GAAG,CAAC;EAAE;EAClBA,YAAY,GAAG,CAAC,CAAE;EAAA,CACnB;EAED,IAAIG,QAAQ,CAACC,QAAQ,CAACF,WAAW,CAAC,EAAE;IAClC,OAAOG,SAAS;EAClB;EAEA,MAAMC,QAAQ,GACZJ,WAAW,IAAIF,YAAY,GAAGE,WAAW,GAAGF,YAAY,GAAG,CAAC,GAAGE,WAAW;EAE5E,MAAMK,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACb,GAAG,GAAG,CAAC,IAAIE,YAAY,CAAC;EAEvD,MAAMY,QAAQ,GACZH,WAAW,IAAIN,YAAY,GAAGM,WAAW,GAAGN,YAAY,GAAG,CAAC,GAAGM,WAAW;EAE5E,OAAOD,QAAQ,GAAG,EAAE,IAAII,QAAQ;AAClC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { CUSTOM_DEVICE_BRAND } from "../constants/custom-device-brand.js";
4
+ /**
5
+ * True only for the output of defineCustomDevice. A hand-assembled object that never went
6
+ * through registration validation is not accepted, so no declaration can reach the decoder
7
+ * without having been checked.
8
+ */
9
+ export const isCustomDeviceDefinition = entry => typeof entry === "object" && entry !== null && entry[CUSTOM_DEVICE_BRAND] === true;
10
+ //# sourceMappingURL=is-custom-device-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CUSTOM_DEVICE_BRAND","isCustomDeviceDefinition","entry"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/is-custom-device-definition.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,qCAAkC;AAItE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GACnCC,KAAiC,IAEjC,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACbA,KAAK,CAA4BF,mBAAmB,CAAC,KAAK,IAAI","ignoreList":[]}
@@ -58,7 +58,17 @@ export const AndroidHealthSync = /*#__PURE__*/React.memo(({
58
58
  }, [onError, onProgress]);
59
59
  React.useEffect(() => {
60
60
  return () => {
61
- serviceRef.current?.stopSync();
61
+ /*
62
+ * A teardown that throws takes the unmount with it, and React has no
63
+ * boundary for a cleanup function — so a sync that fails to stop
64
+ * became a crash on the way out of a screen. The error goes to the
65
+ * app's own handler, which is what `onError` is for.
66
+ */
67
+ try {
68
+ serviceRef.current?.stopSync();
69
+ } catch (error) {
70
+ onErrorRef.current?.(error);
71
+ }
62
72
  serviceRef.current = null;
63
73
  };
64
74
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","AndroidHealthSyncService","AndroidHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","AndroidHealthSyncService","AndroidHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}
@@ -40,6 +40,28 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
40
40
  onErrorRef.current?.(error);
41
41
  }
42
42
  }, [client, dataToSync, chunkSize, patient?.id, updateProgress]);
43
+
44
+ /**
45
+ * The first sync, which nothing used to start.
46
+ *
47
+ * `useListenChanges` subscribes to HealthKit observer queries, and the
48
+ * native side scopes those to samples that start from NOW —
49
+ * `HKQuery.predicateForSamples(withStart: Date.init(), …)` in
50
+ * `@kingstinct/react-native-healthkit`. So the subscription can never fire
51
+ * for data that already exists, and the only other caller, the network
52
+ * effect below, returns early while `serviceRef.current` is null — which
53
+ * only this path assigns. A patient installed the app, granted HealthKit
54
+ * and saw nothing: their existing history was never read, and nothing new
55
+ * arrived unless they moved with the app open.
56
+ *
57
+ * `startSync` reads the per-code watermark off the server and pages
58
+ * forward from it, so it IS the initial sync; it just had no caller here.
59
+ * `AndroidHealthSync` has had this effect all along — this is the platform
60
+ * catching up with its sibling, not a new mechanism.
61
+ */
62
+ React.useEffect(() => {
63
+ syncData();
64
+ }, [syncData]);
43
65
  useListenChanges(dataToSync, () => {
44
66
  syncData();
45
67
  });
@@ -59,7 +81,17 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
59
81
  }, [onError, onProgress]);
60
82
  React.useEffect(() => {
61
83
  return () => {
62
- serviceRef.current?.stopSync();
84
+ /*
85
+ * A teardown that throws takes the unmount with it, and React has no
86
+ * boundary for a cleanup function — so a sync that fails to stop
87
+ * became a crash on the way out of a screen. The error goes to the
88
+ * app's own handler, which is what `onError` is for.
89
+ */
90
+ try {
91
+ serviceRef.current?.stopSync();
92
+ } catch (error) {
93
+ onErrorRef.current?.(error);
94
+ }
63
95
  serviceRef.current = null;
64
96
  };
65
97
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","useListenChanges","AppleHealthSyncService","AppleHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","useListenChanges","AppleHealthSyncService","AppleHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":"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","ignoreList":[]}