@ovok/native 1.11.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-device/constants/device-model.js +82 -0
- package/lib/commonjs/modules/bt-device/constants/device-model.js.map +1 -0
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +21 -1
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-device/hooks/use-supported-devices.js +16 -0
- package/lib/commonjs/modules/bt-device/hooks/use-supported-devices.js.map +1 -0
- package/lib/commonjs/modules/bt-device/index.js +117 -0
- package/lib/commonjs/modules/bt-device/index.js.map +1 -1
- package/lib/commonjs/modules/bt-device/types/device-kind.js +2 -0
- package/lib/commonjs/modules/bt-device/types/device-kind.js.map +1 -0
- package/lib/commonjs/modules/bt-device/utils/device-query.js +57 -0
- package/lib/commonjs/modules/bt-device/utils/device-query.js.map +1 -0
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +3 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/blood-pressure-translated-exception-map.js +2 -1
- package/lib/commonjs/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map +1 -1
- package/lib/commonjs/modules/bt-management/constants/measurement-feedback.js +25 -0
- package/lib/commonjs/modules/bt-management/constants/measurement-feedback.js.map +1 -0
- package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js +8 -7
- package/lib/commonjs/modules/bt-management/hooks/use-bt-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-bt-devices.js +41 -0
- package/lib/commonjs/modules/bt-management/hooks/use-bt-devices.js.map +1 -0
- package/lib/commonjs/modules/bt-management/hooks/use-open-series.js +18 -0
- package/lib/commonjs/modules/bt-management/hooks/use-open-series.js.map +1 -0
- package/lib/commonjs/modules/bt-management/hooks/use-queued-results.js +15 -0
- package/lib/commonjs/modules/bt-management/hooks/use-queued-results.js.map +1 -0
- package/lib/commonjs/modules/bt-management/index.js +60 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +9 -7
- package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +45 -3
- package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +30 -3
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
- package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +3 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +4 -3
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +10 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +6 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js +4 -3
- package/lib/commonjs/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
- package/lib/commonjs/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/series-recorder.js +176 -0
- package/lib/commonjs/modules/bt-management/services/series-recorder.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/series-slots.js +93 -0
- package/lib/commonjs/modules/bt-management/services/series-slots.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/measurement-series.js +6 -0
- package/lib/commonjs/modules/bt-management/types/measurement-series.js.map +1 -0
- package/lib/commonjs/modules/data-sync/constants.js +14 -1
- package/lib/commonjs/modules/data-sync/constants.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +6 -5
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js +10 -7
- package/lib/commonjs/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js +10 -4
- package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/types/health-data.js +5 -1
- package/lib/commonjs/modules/data-sync/types/health-data.js.map +1 -1
- package/lib/commonjs/modules/data-sync/types/health-sync-keys.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +19 -5
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/fhir-systems.js +4 -1
- package/lib/commonjs/modules/data-sync/utils/fhir-systems.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js +10 -5
- package/lib/commonjs/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +18 -12
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js +6 -1
- package/lib/commonjs/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js +3 -2
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/health-connect-series.js +101 -0
- package/lib/commonjs/modules/data-sync/utils/health-connect-series.js.map +1 -0
- package/lib/commonjs/modules/data-sync/utils/healthkit-series.js +44 -0
- package/lib/commonjs/modules/data-sync/utils/healthkit-series.js.map +1 -0
- package/lib/commonjs/modules/data-sync/utils/hourly-series.js +57 -0
- package/lib/commonjs/modules/data-sync/utils/hourly-series.js.map +1 -0
- package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js +13 -0
- package/lib/commonjs/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
- package/lib/module/modules/bt-device/constants/device-model.js +74 -0
- package/lib/module/modules/bt-device/constants/device-model.js.map +1 -0
- package/lib/module/modules/bt-device/constants/supported-devices.js +21 -1
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-device/hooks/use-supported-devices.js +12 -0
- package/lib/module/modules/bt-device/hooks/use-supported-devices.js.map +1 -0
- package/lib/module/modules/bt-device/index.js +4 -0
- package/lib/module/modules/bt-device/index.js.map +1 -1
- package/lib/module/modules/bt-device/types/device-kind.js +2 -0
- package/lib/module/modules/bt-device/types/device-kind.js.map +1 -0
- package/lib/module/modules/bt-device/utils/device-query.js +50 -0
- package/lib/module/modules/bt-device/utils/device-query.js.map +1 -0
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +3 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js +2 -1
- package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map +1 -1
- package/lib/module/modules/bt-management/constants/measurement-feedback.js +22 -0
- package/lib/module/modules/bt-management/constants/measurement-feedback.js.map +1 -0
- package/lib/module/modules/bt-management/hooks/use-bt-device.js +9 -8
- package/lib/module/modules/bt-management/hooks/use-bt-device.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/use-bt-devices.js +37 -0
- package/lib/module/modules/bt-management/hooks/use-bt-devices.js.map +1 -0
- package/lib/module/modules/bt-management/hooks/use-open-series.js +13 -0
- package/lib/module/modules/bt-management/hooks/use-open-series.js.map +1 -0
- package/lib/module/modules/bt-management/hooks/use-queued-results.js +10 -0
- package/lib/module/modules/bt-management/hooks/use-queued-results.js.map +1 -0
- package/lib/module/modules/bt-management/index.js +5 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +9 -7
- package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -1
- package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +46 -3
- package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +30 -3
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js +2 -1
- package/lib/module/modules/bt-management/services/devices/bc01/bc01.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +13 -12
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js +3 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.history-sequencer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +4 -3
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +10 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +6 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/f4/f4.device.js +4 -3
- package/lib/module/modules/bt-management/services/devices/f4/f4.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js +2 -1
- package/lib/module/modules/bt-management/services/devices/spo/spo2.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/series-recorder.js +173 -0
- package/lib/module/modules/bt-management/services/series-recorder.js.map +1 -0
- package/lib/module/modules/bt-management/services/series-slots.js +85 -0
- package/lib/module/modules/bt-management/services/series-slots.js.map +1 -0
- package/lib/module/modules/bt-management/types/measurement-series.js +4 -0
- package/lib/module/modules/bt-management/types/measurement-series.js.map +1 -0
- package/lib/module/modules/data-sync/constants.js +14 -1
- package/lib/module/modules/data-sync/constants.js.map +1 -1
- package/lib/module/modules/data-sync/services/base-health-sync-service.js +6 -5
- package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/data-processor.js +11 -8
- package/lib/module/modules/data-sync/services/managers/data-processor.js.map +1 -1
- package/lib/module/modules/data-sync/services/managers/storage-manager.js +10 -4
- package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/module/modules/data-sync/types/health-data.js +6 -1
- package/lib/module/modules/data-sync/types/health-data.js.map +1 -1
- package/lib/module/modules/data-sync/types/health-sync-keys.js.map +1 -1
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +19 -6
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/module/modules/data-sync/utils/fhir-systems.js +4 -1
- package/lib/module/modules/data-sync/utils/fhir-systems.js.map +1 -1
- package/lib/module/modules/data-sync/utils/generate-observation-entry.js +10 -5
- package/lib/module/modules/data-sync/utils/generate-observation-entry.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +16 -11
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js +7 -2
- package/lib/module/modules/data-sync/utils/get-latest-valid-start-date.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +4 -0
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js +3 -2
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/module/modules/data-sync/utils/health-connect-series.js +97 -0
- package/lib/module/modules/data-sync/utils/health-connect-series.js.map +1 -0
- package/lib/module/modules/data-sync/utils/healthkit-series.js +40 -0
- package/lib/module/modules/data-sync/utils/healthkit-series.js.map +1 -0
- package/lib/module/modules/data-sync/utils/hourly-series.js +52 -0
- package/lib/module/modules/data-sync/utils/hourly-series.js.map +1 -0
- package/lib/module/modules/data-sync/utils/replaces-saved-observation.js +8 -0
- package/lib/module/modules/data-sync/utils/replaces-saved-observation.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts +32 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-device/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts +49 -0
- package/lib/typescript/commonjs/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +7 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +17 -3
- package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +17 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts +56 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts +36 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts +26 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts +11 -1
- package/lib/typescript/commonjs/src/modules/data-sync/constants.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts +15 -2
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-data.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts +32 -0
- package/lib/typescript/module/src/modules/bt-device/constants/device-model.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +18 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts +9 -0
- package/lib/typescript/module/src/modules/bt-device/hooks/use-supported-devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/index.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-device/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-device/types/device-kind.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts +49 -0
- package/lib/typescript/module/src/modules/bt-device/utils/device-query.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/constants/blood-pressure-translated-exception-map.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/constants/measurement-feedback.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts +5 -4
- package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts +24 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-bt-devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts +12 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-open-series.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/use-queued-results.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +5 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +7 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +17 -3
- package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +17 -0
- package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.history-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts +4 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/f4/f4.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/spo/spo2.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts +56 -0
- package/lib/typescript/module/src/modules/bt-management/services/series-recorder.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts +36 -0
- package/lib/typescript/module/src/modules/bt-management/services/series-slots.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts +26 -0
- package/lib/typescript/module/src/modules/bt-management/types/measurement-series.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +6 -0
- package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts +6 -1
- package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/constants.d.ts +11 -1
- package/lib/typescript/module/src/modules/data-sync/constants.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts +3 -2
- package/lib/typescript/module/src/modules/data-sync/services/managers/data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts +2 -1
- package/lib/typescript/module/src/modules/data-sync/services/managers/storage-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts +15 -2
- package/lib/typescript/module/src/modules/data-sync/types/health-data.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts +3 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-keys.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +5 -1
- package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts +3 -1
- package/lib/typescript/module/src/modules/data-sync/utils/fhir-systems.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts +3 -1
- package/lib/typescript/module/src/modules/data-sync/utils/generate-observation-entry.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts +9 -6
- package/lib/typescript/module/src/modules/data-sync/utils/get-health-record-sync-id.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-latest-valid-start-date.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts +2 -2
- package/lib/typescript/module/src/modules/data-sync/utils/get-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +5 -2
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts +9 -0
- package/lib/typescript/module/src/modules/data-sync/utils/health-connect-series.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts +12 -0
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-series.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts +22 -0
- package/lib/typescript/module/src/modules/data-sync/utils/hourly-series.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts +7 -0
- package/lib/typescript/module/src/modules/data-sync/utils/replaces-saved-observation.d.ts.map +1 -0
- package/package.json +1 -1
package/lib/module/modules/bt-management/constants/blood-pressure-translated-exception-map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BloodPressureStates","bloodPressureTranslatedExceptionMap","Map","LOOSE_SLEEVE","DISTURB_DETECTED","WEAK_SIGNAL","DEVICE_ERROR"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/blood-pressure-translated-exception-map.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,mCAAgC;AAEpE,OAAO,MAAMC,mCAAmC,GAAG,IAAIC,GAAG,CAGxD,CACA,
|
|
1
|
+
{"version":3,"names":["BloodPressureStates","MeasurementFeedbackKey","bloodPressureTranslatedExceptionMap","Map","LOOSE_SLEEVE","DISTURB_DETECTED","WEAK_SIGNAL","DEVICE_ERROR"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/blood-pressure-translated-exception-map.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAAQ,mCAAgC;AAEpE,SAASC,sBAAsB,QAAQ,2BAAwB;AAE/D,OAAO,MAAMC,mCAAmC,GAAG,IAAIC,GAAG,CAGxD,CACA,CACEH,mBAAmB,CAACI,YAAY,EAChCH,sBAAsB,CAACG,YAAY,CACpC,EACD,CACEJ,mBAAmB,CAACK,gBAAgB,EACpCJ,sBAAsB,CAACI,gBAAgB,CACxC,EACD,CACEL,mBAAmB,CAACM,WAAW,EAC/BL,sBAAsB,CAACK,WAAW,CACnC,EACD,CACEN,mBAAmB,CAACO,YAAY,EAChCN,sBAAsB,CAACM,YAAY,CACpC,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The translation keys a failed measurement reports, as `BluetoothError.translationKey` (and its
|
|
5
|
+
* message): compare against these rather than the strings, and translate them in the app.
|
|
6
|
+
*/
|
|
7
|
+
const MeasurementFeedbackKey = {
|
|
8
|
+
DEVICE_ERROR: "feedback-messages.measurement.device-error",
|
|
9
|
+
DEVICE_INTERRUPTED: "feedback-messages.measurement.device-interrupted",
|
|
10
|
+
COMMAND_TIMEOUT: "feedback-messages.measurement.command-timeout",
|
|
11
|
+
/** The device stopped sending mid-measurement (or mid-transfer, after a reading already arrived). */
|
|
12
|
+
STUCK: "feedback-messages.measurement.stuck-error",
|
|
13
|
+
CORRUPT_FRAME: "feedback-messages.measurement.corrupt-frame-error",
|
|
14
|
+
INSUFFICIENT_DATA_LENGTH: "feedback-messages.measurement.insufficient-data-length",
|
|
15
|
+
DISTURB_DETECTED: "feedback-messages.measurement.disturb-detected-error",
|
|
16
|
+
WEAK_SIGNAL: "feedback-messages.measurement.weak-signal-error",
|
|
17
|
+
POOR_WAVEFORM: "feedback-messages.measurement.poor-waveform-error",
|
|
18
|
+
LOOSE_SLEEVE: "feedback-messages.measurement.loose-sleeve-error",
|
|
19
|
+
LEAD_OFF: "feedback-messages.measurement.lead-off-error"
|
|
20
|
+
};
|
|
21
|
+
export { MeasurementFeedbackKey };
|
|
22
|
+
//# sourceMappingURL=measurement-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MeasurementFeedbackKey","DEVICE_ERROR","DEVICE_INTERRUPTED","COMMAND_TIMEOUT","STUCK","CORRUPT_FRAME","INSUFFICIENT_DATA_LENGTH","DISTURB_DETECTED","WEAK_SIGNAL","POOR_WAVEFORM","LOOSE_SLEEVE","LEAD_OFF"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/constants/measurement-feedback.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,MAAMA,sBAAsB,GAAG;EAC7BC,YAAY,EAAE,4CAA4C;EAC1DC,kBAAkB,EAAE,kDAAkD;EACtEC,eAAe,EAAE,+CAA+C;EAEhE;EACAC,KAAK,EAAE,2CAA2C;EAClDC,aAAa,EAAE,mDAAmD;EAClEC,wBAAwB,EAAE,wDAAwD;EAClFC,gBAAgB,EAAE,sDAAsD;EACxEC,WAAW,EAAE,iDAAiD;EAC9DC,aAAa,EAAE,mDAAmD;EAClEC,YAAY,EAAE,kDAAkD;EAChEC,QAAQ,EAAE;AACZ,CAAU;AAIV,SAASX,sBAAsB","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
|
-
import { useBluetoothRuntime
|
|
4
|
+
import { useBluetoothRuntime } from "./runtime-context.js";
|
|
5
|
+
import { useBTDevices } from "./use-bt-devices.js";
|
|
5
6
|
class DeviceSelectionRequiredError extends Error {
|
|
6
7
|
constructor(model, ids) {
|
|
7
8
|
super(`Choose a device ID for ${model}; found ${ids.join(", ")}.`);
|
|
@@ -28,25 +29,25 @@ const serializeForDevice = (runtime, deviceId, operation) => {
|
|
|
28
29
|
return current;
|
|
29
30
|
};
|
|
30
31
|
const getRawDevice = device => device.device.device;
|
|
31
|
-
const useBTDevice = (
|
|
32
|
+
const useBTDevice = (filter, {
|
|
32
33
|
id,
|
|
33
34
|
autoConnect = false,
|
|
34
35
|
allowRawAccess = false
|
|
35
36
|
} = {}) => {
|
|
36
37
|
const runtime = useBluetoothRuntime();
|
|
37
38
|
const [selectedId, setSelectedId] = React.useState(id);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
|
|
40
|
+
/** The model key asked for; a filter has none. */
|
|
41
|
+
const model = typeof filter === "string" ? filter : undefined;
|
|
42
|
+
const matches = useBTDevices(filter);
|
|
42
43
|
const selected = selectedId ? matches.find(device => device.id === selectedId) : matches.length === 1 ? matches[0] : undefined;
|
|
43
44
|
const selectedIdRef = React.useRef(selectedId);
|
|
44
45
|
const matchesRef = React.useRef(matches);
|
|
45
|
-
const modelRef = React.useRef(model);
|
|
46
|
+
const modelRef = React.useRef(model ?? "the filtered device");
|
|
46
47
|
const autoConnectedRef = React.useRef(new WeakSet());
|
|
47
48
|
selectedIdRef.current = selectedId;
|
|
48
49
|
matchesRef.current = matches;
|
|
49
|
-
modelRef.current = model;
|
|
50
|
+
modelRef.current = model ?? "the filtered device";
|
|
50
51
|
React.useEffect(() => {
|
|
51
52
|
if (id !== undefined) {
|
|
52
53
|
setSelectedId(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useBluetoothRuntime","
|
|
1
|
+
{"version":3,"names":["React","useBluetoothRuntime","useBTDevices","DeviceSelectionRequiredError","Error","constructor","model","ids","join","name","EMPTY_RESULTS","EMPTY_EVENTS","deviceQueues","WeakMap","serializeForDevice","runtime","deviceId","operation","queues","get","Map","set","previous","Promise","resolve","current","catch","undefined","then","finally","delete","getRawDevice","device","useBTDevice","filter","id","autoConnect","allowRawAccess","selectedId","setSelectedId","useState","matches","selected","find","length","selectedIdRef","useRef","matchesRef","modelRef","autoConnectedRef","WeakSet","useEffect","has","add","connect","select","useCallback","some","currentMatches","candidate","map","disconnect","raw","useMemo","resolveDevice","rawDevice","read","serviceUUID","characteristicUUID","readCharacteristicForService","write","base64Value","withResponse","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService","devices","requiresSelection","status","latestResult","results","events"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-device.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { deviceMatches, findSupportedDevice, listOf } from "../../bt-device/utils/device-query.js";
|
|
4
|
+
import { useBluetoothSelector } from "./runtime-context.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Which connected or nearby devices to follow: a model key (`deviceData.name` or `.model`), or a
|
|
8
|
+
* filter over what the device is (any `DeviceFilter` field, matched against its catalog product)
|
|
9
|
+
* and its state. `{ kind: "weight-scale" }`, `{ manufacturer: "HARTMANN", status: DeviceStatus.CONNECTED }`.
|
|
10
|
+
* A device whose parser serves several products counts as the one its advertised name identifies,
|
|
11
|
+
* else as its parser's product.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** Whether a runtime device is one `filter` asks for. */
|
|
15
|
+
const btDeviceMatches = (device, filter) => {
|
|
16
|
+
if (typeof filter === "string") {
|
|
17
|
+
return device.deviceData.name === filter || device.deviceData.model === filter;
|
|
18
|
+
}
|
|
19
|
+
const {
|
|
20
|
+
status,
|
|
21
|
+
where,
|
|
22
|
+
...catalog
|
|
23
|
+
} = filter;
|
|
24
|
+
const product = findSupportedDevice(device.deviceData);
|
|
25
|
+
return (status === undefined || device.status !== undefined && listOf(status).includes(device.status)) && (Object.keys(catalog).length === 0 || product !== undefined && deviceMatches(product, catalog)) && (where === undefined || where(device, product));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/** The same devices, in the same order, as the same objects. */
|
|
29
|
+
const sameDevices = (previous, next) => previous.length === next.length && previous.every((item, index) => {
|
|
30
|
+
const candidate = next[index];
|
|
31
|
+
return candidate?.id === item.id && candidate === item;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
/** Every connected or nearby device `filter` asks for, in the order Bluetooth found them. */
|
|
35
|
+
const useBTDevices = filter => useBluetoothSelector(snapshot => snapshot.devices.filter(device => btDeviceMatches(device, filter)), sameDevices);
|
|
36
|
+
export { btDeviceMatches, useBTDevices };
|
|
37
|
+
//# sourceMappingURL=use-bt-devices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["deviceMatches","findSupportedDevice","listOf","useBluetoothSelector","btDeviceMatches","device","filter","deviceData","name","model","status","where","catalog","product","undefined","includes","Object","keys","length","sameDevices","previous","next","every","item","index","candidate","id","useBTDevices","snapshot","devices"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-bt-devices.ts"],"mappings":";;AAEA,SACEA,aAAa,EACbC,mBAAmB,EACnBC,MAAM,QAGD,uCAAoC;AAI3C,SAAwBC,oBAAoB,QAAQ,sBAAmB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA,MAAMC,eAAe,GAAGA,CAACC,MAAqB,EAAEC,MAAsB,KAAc;EAClF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOD,MAAM,CAACE,UAAU,CAACC,IAAI,KAAKF,MAAM,IAAID,MAAM,CAACE,UAAU,CAACE,KAAK,KAAKH,MAAM;EAChF;EAEA,MAAM;IAAEI,MAAM;IAAEC,KAAK;IAAE,GAAGC;EAAQ,CAAC,GAAGN,MAAM;EAE5C,MAAMO,OAAO,GAAGZ,mBAAmB,CAACI,MAAM,CAACE,UAAU,CAAC;EAEtD,OACE,CAACG,MAAM,KAAKI,SAAS,IAAKT,MAAM,CAACK,MAAM,KAAKI,SAAS,IAAIZ,MAAM,CAACQ,MAAM,CAAC,CAACK,QAAQ,CAACV,MAAM,CAACK,MAAM,CAAE,MAC/FM,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,MAAM,KAAK,CAAC,IAAKL,OAAO,KAAKC,SAAS,IAAId,aAAa,CAACa,OAAO,EAAED,OAAO,CAAE,CAAC,KAChGD,KAAK,KAAKG,SAAS,IAAIH,KAAK,CAACN,MAAM,EAAEQ,OAAO,CAAC,CAAC;AAEnD,CAAC;;AAED;AACA,MAAMM,WAAW,GAAGA,CAACC,QAAkC,EAAEC,IAA8B,KACrFD,QAAQ,CAACF,MAAM,KAAKG,IAAI,CAACH,MAAM,IAC/BE,QAAQ,CAACE,KAAK,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,MAAMC,SAAS,GAAGJ,IAAI,CAACG,KAAK,CAAC;EAE7B,OAAOC,SAAS,EAAEC,EAAE,KAAKH,IAAI,CAACG,EAAE,IAAID,SAAS,KAAKF,IAAI;AACxD,CAAC,CAAC;;AAEJ;AACA,MAAMI,YAAY,GAAIrB,MAAsB,IAC1CH,oBAAoB,CACjByB,QAAQ,IAAKA,QAAQ,CAACC,OAAO,CAACvB,MAAM,CAAED,MAAM,IAAKD,eAAe,CAACC,MAAM,EAAEC,MAAM,CAAC,CAAC,EAClFa,WACF,CAAC;AAEH,SAASf,eAAe,EAAEuB,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
const NO_SERIES = [];
|
|
5
|
+
const NO_SUBSCRIPTION = () => () => undefined;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The series a `BTManager` is recording, updated as each value arrives: the live values to show while a device
|
|
9
|
+
* streams (`latest`), before the series is stored.
|
|
10
|
+
*/
|
|
11
|
+
const useOpenSeries = manager => React.useSyncExternalStore(manager?.subscribeOpenSeries ?? NO_SUBSCRIPTION, () => manager?.getOpenSeries() ?? NO_SERIES);
|
|
12
|
+
export { useOpenSeries };
|
|
13
|
+
//# sourceMappingURL=use-open-series.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","NO_SERIES","NO_SUBSCRIPTION","undefined","useOpenSeries","manager","useSyncExternalStore","subscribeOpenSeries","getOpenSeries"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-open-series.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAS9B,MAAMC,SAAgC,GAAG,EAAE;AAC3C,MAAMC,eAAe,GAAGA,CAAA,KAAM,MAAMC,SAAS;;AAE7C;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAIC,OAAiC,IACtDL,KAAK,CAACM,oBAAoB,CACxBD,OAAO,EAAEE,mBAAmB,IAAIL,eAAe,EAC/C,MAAMG,OAAO,EAAEG,aAAa,CAAC,CAAC,IAAIP,SACpC,CAAC;AAEH,SAASG,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
const NO_RESULTS = [];
|
|
5
|
+
const NO_SUBSCRIPTION = () => () => undefined;
|
|
6
|
+
|
|
7
|
+
/** The results a `BackgroundSyncCoordinator` still holds for the current account: readings not saved yet. */
|
|
8
|
+
const useQueuedResults = coordinator => React.useSyncExternalStore(coordinator?.subscribe ?? NO_SUBSCRIPTION, () => coordinator?.getQueued() ?? NO_RESULTS);
|
|
9
|
+
export { useQueuedResults };
|
|
10
|
+
//# sourceMappingURL=use-queued-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","NO_RESULTS","NO_SUBSCRIPTION","undefined","useQueuedResults","coordinator","useSyncExternalStore","subscribe","getQueued"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/hooks/use-queued-results.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAU9B,MAAMC,UAA4B,GAAG,EAAE;AACvC,MAAMC,eAAe,GAAGA,CAAA,KAAM,MAAMC,SAAS;;AAE7C;AACA,MAAMC,gBAAgB,GACpBC,WAAuC,IAEvCL,KAAK,CAACM,oBAAoB,CACxBD,WAAW,EAAEE,SAAS,IAAIL,eAAe,EACzC,MAAMG,WAAW,EAAEG,SAAS,CAAC,CAAC,IAAIP,UACpC,CAAC;AAEH,SAASG,gBAAgB","ignoreList":[]}
|
|
@@ -35,6 +35,7 @@ export * from "./types/bluetooth-permission-status.js";
|
|
|
35
35
|
export * from "./types/device-status-change-callback.js";
|
|
36
36
|
export * from "./types/device-connection-event.js";
|
|
37
37
|
export * from "./types/result-policy.js";
|
|
38
|
+
export * from "./types/measurement-series.js";
|
|
38
39
|
export * from "./types/clock-sync.js";
|
|
39
40
|
export * from "./services/devices/bt-managed-device.js";
|
|
40
41
|
export * from "./services/devices/blood-glucose/blood-glucose.device.js";
|
|
@@ -106,8 +107,12 @@ export * from "./hooks/use-nearby-device-offer.js";
|
|
|
106
107
|
export * from "./hooks/use-paired-devices.js";
|
|
107
108
|
export * from "./hooks/use-device-connection.js";
|
|
108
109
|
export * from "./hooks/use-bt-device.js";
|
|
110
|
+
export * from "./hooks/use-bt-devices.js";
|
|
111
|
+
export * from "./constants/measurement-feedback.js";
|
|
109
112
|
export * from "./hooks/use-measurements.js";
|
|
110
113
|
export * from "./hooks/use-background-sync.js";
|
|
114
|
+
export * from "./hooks/use-open-series.js";
|
|
115
|
+
export * from "./hooks/use-queued-results.js";
|
|
111
116
|
|
|
112
117
|
/** @deprecated Import useHealthImport from @ovok/native/data-sync instead. */
|
|
113
118
|
export { useHealthImport } from "../data-sync/hooks/use-health-import.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["setDeviceSecretStorage","useHealthImport"],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":";;AAAA,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,6BAA0B;AACxC,cAAc,qCAAkC;AAChD,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,8BAA2B;AACzC,cAAc,8BAA2B;AACzC,cAAc,6BAA0B;AACxC,cAAc,+BAA4B;AAC1C,cAAc,gCAA6B;AAC3C,cAAc,gCAA6B;AAC3C,cAAc,8BAA2B;AACzC,cAAc,2BAAwB;AACtC,cAAc,uBAAoB;AAClC,cAAc,0BAAuB;AAMrC,cAAc,wBAAqB;AACnC,cAAc,0BAAuB;AACrC,cAAc,+BAA4B;AAC1C,cAAc,6BAA0B;AACxC,cAAc,yBAAsB;AACpC,cAAc,6BAA0B;AACxC,cAAc,sCAAmC;AACjD,cAAc,4BAAyB;AACvC,cAAc,4BAAyB;AACvC,cAAc,2BAAwB;AACtC,cAAc,4BAAyB;AACvC,cAAc,wCAAqC;AACnD,cAAc,0CAAuC;AACrD,cAAc,oCAAiC;AAC/C,cAAc,0BAAuB;AACrC,cAAc,uBAAoB;AAElC,cAAc,yCAAsC;AACpD,cAAc,0DAAuD;AACrE,cAAc,4CAAyC;AACvD,cAAc,0BAAuB;AACrC,cAAc,sDAAmD;AACjE,cAAc,2DAAwD;AACtE,cAAc,kDAA+C;AAC7D,cAAc,wDAAqD;AACnE,cAAc,gCAA6B;AAC3C,SAASA,sBAAsB,QAAQ,8BAA2B;AAElE,cAAc,4BAAyB;AACvC,cAAc,yBAAsB;AACpC,cAAc,oBAAW;AACzB,cAAc,2CAAwC;AACtD,cAAc,2DAAwD;AACtE,cAAc,yCAAsC;AACpD,cAAc,oDAAiD;AAC/D,cAAc,mDAAgD;AAC9D,cAAc,8CAA2C;AACzD,cAAc,0DAAuD;AACrE,cAAc,kDAA+C;AAC7D,cAAc,uDAAoD;AAClE,cAAc,iDAA8C;AAC5D,cAAc,gDAA6C;AAC3D,cAAc,qDAAkD;AAChE,cAAc,0CAAuC;AACrD,cAAc,0DAAuD;AACrE,cAAc,mDAAgD;AAC9D,cAAc,4CAAyC;AACvD,cAAc,4CAAyC;AACvD,cAAc,sCAAmC;AACjD,cAAc,iDAA8C;AAC5D,cAAc,4CAAyC;AACvD,cAAc,oDAAiD;AAC/D,cAAc,+DAA4D;AAC1E,cAAc,0DAAuD;AACrE,cAAc,wCAAqC;AACnD,cAAc,mDAAgD;AAC9D,cAAc,8CAA2C;AACzD,cAAc,8CAA2C;AACzD,cAAc,8CAA2C;AACzD,cAAc,gDAA6C;AAC3D,cAAc,iDAA8C;AAC5D,cAAc,kDAA+C;AAC7D,cAAc,oDAAiD;AAC/D,cAAc,qDAAkD;AAChE,cAAc,iDAA8C;AAC5D,cAAc,+CAA4C;AAC1D,cAAc,mDAAgD;AAC9D,cAAc,+CAA4C;AAC1D,cAAc,2CAAwC;AACtD,cAAc,8CAA2C;AACzD,cAAc,4CAAyC;AACvD,cAAc,0CAAuC;AACrD,cAAc,6CAA0C;AACxD,cAAc,+CAA4C;AAC1D,cAAc,+CAA4C;AAE1D,cAAc,0CAAuC;AAErD,cAAc,6BAA0B;AACxC,cAAc,yCAAsC;AACpD,cAAc,6CAA0C;AACxD,cAAc,oCAAiC;AAC/C,cAAc,qCAAkC;AAChD,cAAc,4BAAyB;AACvC,cAAc,gCAA6B;AAC3C,cAAc,+BAA4B;AAC1C,cAAc,oCAAiC;AAC/C,cAAc,+BAA4B;AAC1C,cAAc,kCAA+B;AAC7C,cAAc,0BAAuB;AACrC,cAAc,6BAA0B;AACxC,cAAc,gCAA6B;;
|
|
1
|
+
{"version":3,"names":["setDeviceSecretStorage","useHealthImport"],"sourceRoot":"../../../../src","sources":["modules/bt-management/index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js
CHANGED
|
@@ -57,17 +57,19 @@ const BUILT_IN_SERVICE_UUIDS = {
|
|
|
57
57
|
[IntegratedDevices.VEROVAL_DUO_CONTROL]: ["5d4b8aa6-a26a-4a1b-99f5-cd4473c786e3"],
|
|
58
58
|
[IntegratedDevices.VEROVAL_ECG]: ["0000a000-0000-1000-8000-00805f9b34fb"]
|
|
59
59
|
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The services a background scan asks for: those of every accepted device whose services are known, and
|
|
63
|
+
* `additionalServiceUUIDs`. In the background iOS (and Android with the screen off) reports only devices advertising a
|
|
64
|
+
* listed service, so an accepted device whose services aren't known is found by a foreground scan only. One such
|
|
65
|
+
* device must not empty the list: iOS can't scan in the background without one.
|
|
66
|
+
*/
|
|
60
67
|
export const getBackgroundServiceUUIDs = (acceptedDevices, additionalServiceUUIDs = []) => {
|
|
61
68
|
const uuids = new Set(additionalServiceUUIDs.map(normalize));
|
|
62
|
-
let hasUnfilterableDevice = false;
|
|
63
69
|
acceptedDevices.forEach(acceptedDevice => {
|
|
64
70
|
const deviceUUIDs = typeof acceptedDevice === "string" ? BUILT_IN_SERVICE_UUIDS[acceptedDevice] : serviceUUIDs(acceptedDevice.mainServices);
|
|
65
|
-
|
|
66
|
-
hasUnfilterableDevice = true;
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
deviceUUIDs.forEach(uuid => uuids.add(normalize(uuid)));
|
|
71
|
+
deviceUUIDs?.forEach(uuid => uuids.add(normalize(uuid)));
|
|
70
72
|
});
|
|
71
|
-
return
|
|
73
|
+
return [...uuids];
|
|
72
74
|
};
|
|
73
75
|
//# sourceMappingURL=background-service-uuids.js.map
|
package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","FAMIDOC_BPM","FAMIDOC_IR_THERMOMETER","FAMIDOC_CONTACT_THERMOMETER","AOJ_BPM","AOJ_BPM_FFF0","AOJ_70B","JUMPER_OXIMETER","JUMPER_BPM","JUMPER_THERMOMETER","JOYTECH_BPM","JOYTECH_THERMOMETER","AND_BPM","AND_BPM_CTS","AND_SCALE","YONKER_OXIMETER","YONKER_BPM","YONKER_THERMOMETER","YONKER_SCALE","YONKER_80B","COFOE_BPM","COFOE_BPM_HISTORY","COFOE_GLUCOMETER","COFOE_GLUCOMETER_CGH25","COFOE_THERMOMETER","TAIDOC_MULTI","TAIDOC_BPM","TAIDOC_THERMOMETER","TAIDOC_OXIMETER","TAIDOC_SCALE","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","a606MainServices","bc01MainServices","bp2MainServices","bpw1MainServices","f4MainServices","spo2MainServices","normalize","uuid","toLowerCase","serviceUUIDs","services","map","service","BUILT_IN_SERVICE_UUIDS","BP2","F4","S5","LEPU_F4_SCALE","LEPU_F5_SCALE","PC60WF","BC01","ZH_SG_A606","BPW1","WBP_02","TRANSTEK_BPM","TRANSTEK_SCALE","TRANSTEK_SCALE_1525","TRANSTEK_TRACKER","FAMIDOC_BPM","FAMIDOC_IR_THERMOMETER","FAMIDOC_CONTACT_THERMOMETER","AOJ_BPM","AOJ_BPM_FFF0","AOJ_70B","JUMPER_OXIMETER","JUMPER_BPM","JUMPER_THERMOMETER","JOYTECH_BPM","JOYTECH_THERMOMETER","AND_BPM","AND_BPM_CTS","AND_SCALE","YONKER_OXIMETER","YONKER_BPM","YONKER_THERMOMETER","YONKER_SCALE","YONKER_80B","COFOE_BPM","COFOE_BPM_HISTORY","COFOE_GLUCOMETER","COFOE_GLUCOMETER_CGH25","COFOE_THERMOMETER","TAIDOC_MULTI","TAIDOC_BPM","TAIDOC_THERMOMETER","TAIDOC_OXIMETER","TAIDOC_SCALE","PM10","VEROVAL_DUO_CONTROL","VEROVAL_ECG","getBackgroundServiceUUIDs","acceptedDevices","additionalServiceUUIDs","uuids","Set","forEach","acceptedDevice","deviceUUIDs","mainServices","add"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-service-uuids.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js
CHANGED
|
@@ -3,13 +3,25 @@
|
|
|
3
3
|
import { recordOvokMetric } from "../../../helpers/utils/telemetry.js";
|
|
4
4
|
import { BluetoothError, BluetoothErrorCode } from "../../types/bluetooth-error.js";
|
|
5
5
|
import { createQueueId, createResultId, DEFAULT_MAX_RETRIES, DEFAULT_QUEUE_KEY, DEFAULT_RETRY_BACKOFF_MS, readBackgroundSyncQueue, writeBackgroundSyncQueue } from "./background-sync-queue.js";
|
|
6
|
+
|
|
7
|
+
/** A result is queued only for the account `getOwnerKey` returns, so the coordinator can't work without it. */
|
|
8
|
+
|
|
9
|
+
// Without it every result would be refused as it arrives, and lost; say so once, here, instead.
|
|
10
|
+
const withOwnerKey = options => {
|
|
11
|
+
if (typeof options.getOwnerKey !== "function") {
|
|
12
|
+
throw new TypeError("BackgroundSyncCoordinator needs getOwnerKey: results are queued for the account it returns.");
|
|
13
|
+
}
|
|
14
|
+
return options;
|
|
15
|
+
};
|
|
6
16
|
class BackgroundSyncCoordinator {
|
|
7
17
|
operation = Promise.resolve();
|
|
18
|
+
queued = [];
|
|
19
|
+
listeners = new Set();
|
|
8
20
|
constructor(options) {
|
|
9
|
-
this.options = options;
|
|
21
|
+
this.options = withOwnerKey(options);
|
|
10
22
|
}
|
|
11
23
|
updateOptions(options) {
|
|
12
|
-
this.options = options;
|
|
24
|
+
this.options = withOwnerKey(options);
|
|
13
25
|
}
|
|
14
26
|
enqueue = result => {
|
|
15
27
|
const ownerKey = this.options.getOwnerKey?.();
|
|
@@ -34,12 +46,43 @@ class BackgroundSyncCoordinator {
|
|
|
34
46
|
await writeBackgroundSyncQueue(queue, options);
|
|
35
47
|
recordOvokMetric("ovok.queue.depth", queue.length);
|
|
36
48
|
await this.flushQueue(queue, {}, options);
|
|
49
|
+
this.publish(queue);
|
|
37
50
|
});
|
|
38
51
|
};
|
|
39
52
|
flush = (options = {}) => this.runExclusive(async () => {
|
|
40
53
|
const syncOptions = this.options;
|
|
41
|
-
|
|
54
|
+
const queue = await readBackgroundSyncQueue(syncOptions);
|
|
55
|
+
await this.flushQueue(queue, options, syncOptions);
|
|
56
|
+
this.publish(queue);
|
|
42
57
|
});
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* The current account's results still waiting to be accepted, oldest first: readings to show as not saved yet.
|
|
61
|
+
* Kept up to date by every enqueue and flush; `subscribe` reads the stored queue in first.
|
|
62
|
+
*/
|
|
63
|
+
getQueued = () => this.queued;
|
|
64
|
+
|
|
65
|
+
/** Calls `listener` whenever the waiting results change; the first subscriber reads the stored queue in. */
|
|
66
|
+
subscribe = listener => {
|
|
67
|
+
this.listeners.add(listener);
|
|
68
|
+
if (this.listeners.size === 1) {
|
|
69
|
+
void this.runExclusive(async () => this.publish(await readBackgroundSyncQueue(this.options)));
|
|
70
|
+
}
|
|
71
|
+
return () => {
|
|
72
|
+
this.listeners.delete(listener);
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
publish = queue => {
|
|
76
|
+
const ownerKey = this.options.getOwnerKey?.();
|
|
77
|
+
this.queued = queue.flatMap(item => item.ownerKey && item.ownerKey === ownerKey ? [{
|
|
78
|
+
...item.result,
|
|
79
|
+
ownerKey: item.ownerKey,
|
|
80
|
+
queueId: item.queueId,
|
|
81
|
+
queuedAt: item.queuedAt,
|
|
82
|
+
attempt: item.attempt
|
|
83
|
+
}] : []);
|
|
84
|
+
this.listeners.forEach(listener => listener());
|
|
85
|
+
};
|
|
43
86
|
runExclusive = operation => {
|
|
44
87
|
const next = this.operation.then(operation, operation);
|
|
45
88
|
this.operation = next.catch(() => undefined);
|
package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["recordOvokMetric","BluetoothError","BluetoothErrorCode","createQueueId","createResultId","DEFAULT_MAX_RETRIES","DEFAULT_QUEUE_KEY","DEFAULT_RETRY_BACKOFF_MS","readBackgroundSyncQueue","writeBackgroundSyncQueue","BackgroundSyncCoordinator","operation","Promise","resolve","
|
|
1
|
+
{"version":3,"names":["recordOvokMetric","BluetoothError","BluetoothErrorCode","createQueueId","createResultId","DEFAULT_MAX_RETRIES","DEFAULT_QUEUE_KEY","DEFAULT_RETRY_BACKOFF_MS","readBackgroundSyncQueue","writeBackgroundSyncQueue","withOwnerKey","options","getOwnerKey","TypeError","BackgroundSyncCoordinator","operation","Promise","resolve","queued","listeners","Set","constructor","updateOptions","enqueue","result","ownerKey","runExclusive","queue","stableId","id","trim","BACKGROUND_SYNC","push","queueId","queuedAt","Date","toISOString","attempt","nextAttemptAt","length","flushQueue","publish","flush","syncOptions","getQueued","subscribe","listener","add","size","delete","flatMap","item","forEach","next","then","catch","undefined","changed","now","droppedLegacy","splice","indexOf","exhausted","resetExhausted","resetRetryBackoff","includeExhausted","maxRetries","Math","max","retryBackoffMs","onResult","measurementTypeKey","data","error","Number","MAX_SAFE_INTEGER","errorCode","code","willRetry","onError"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,8 +9,12 @@ import { toBluetoothError } from "../types/bluetooth-error.js";
|
|
|
9
9
|
import { IntegratedDevices } from "../types/integrated-devices.js";
|
|
10
10
|
import { errorCallbackPayload } from "../utils/error-callback-payload.js";
|
|
11
11
|
import { DeviceCreator } from "./device-creator.js";
|
|
12
|
+
import { SeriesRecorder } from "./series-recorder.js";
|
|
12
13
|
const bluetoothErrorCallback = error => errorCallbackPayload(toBluetoothError(error));
|
|
13
14
|
const SCAN_RETRY_DELAY_MS = 1_000;
|
|
15
|
+
|
|
16
|
+
/** How often series that went quiet are looked for, while scanning. */
|
|
17
|
+
const SERIES_IDLE_CHECK_MS = 60_000;
|
|
14
18
|
class BTManager {
|
|
15
19
|
static MAX_DEVICES = 15; // Safety limit to prevent unbounded growth
|
|
16
20
|
devices = new Map();
|
|
@@ -28,6 +32,9 @@ class BTManager {
|
|
|
28
32
|
this.options = options;
|
|
29
33
|
this.deviceCreator = new DeviceCreator(this.acceptedDevices);
|
|
30
34
|
this.backgroundScanEnabled = options.backgroundEnabled === true;
|
|
35
|
+
this.series = new SeriesRecorder({
|
|
36
|
+
storage: options.seriesStorage
|
|
37
|
+
});
|
|
31
38
|
}
|
|
32
39
|
setAutoConnect = (enabledOrOptions, delayMs, onDeviceSelectionRequired) => {
|
|
33
40
|
const enabled = typeof enabledOrOptions === "boolean" ? enabledOrOptions : enabledOrOptions.enabled;
|
|
@@ -56,11 +63,19 @@ class BTManager {
|
|
|
56
63
|
// stopScan already cleared the callbacks and disconnected the devices.
|
|
57
64
|
this.forgottenDeviceIds.clear();
|
|
58
65
|
this.deviceCreator.destroy();
|
|
66
|
+
void this.series.destroy();
|
|
59
67
|
};
|
|
68
|
+
|
|
69
|
+
/** The series being recorded, each with its latest values: what to show while a device streams. */
|
|
70
|
+
getOpenSeries = () => this.series.getOpen();
|
|
71
|
+
|
|
72
|
+
/** Calls `listener` whenever a series gets a value or closes; returns the unsubscribe. */
|
|
73
|
+
subscribeOpenSeries = listener => this.series.subscribe(listener);
|
|
60
74
|
startScan = () => {
|
|
61
75
|
if (this.destroyed || this.scanActive || this.scanStarting || this.stateChangeListener) {
|
|
62
76
|
return;
|
|
63
77
|
}
|
|
78
|
+
this.seriesTimer ??= setInterval(this.series.closeIdle, SERIES_IDLE_CHECK_MS);
|
|
64
79
|
const generation = ++this.scanGeneration;
|
|
65
80
|
let subscription;
|
|
66
81
|
const onStateChange = state => {
|
|
@@ -119,7 +134,10 @@ class BTManager {
|
|
|
119
134
|
this.eventSubscriptions.forEach(sub => sub.remove());
|
|
120
135
|
this.eventSubscriptions = [];
|
|
121
136
|
|
|
122
|
-
// Clear all callbacks
|
|
137
|
+
// Clear all callbacks; closed series wait, stored, for the next receiver.
|
|
138
|
+
clearInterval(this.seriesTimer);
|
|
139
|
+
this.seriesTimer = undefined;
|
|
140
|
+
this.series.deliverTo(undefined);
|
|
123
141
|
this.onErrorCallback = undefined;
|
|
124
142
|
this.onDeviceFoundCallback = undefined;
|
|
125
143
|
this.onResultCallback = undefined;
|
|
@@ -212,7 +230,9 @@ class BTManager {
|
|
|
212
230
|
return;
|
|
213
231
|
}
|
|
214
232
|
const serviceUUIDs = this.options.serviceUUIDs;
|
|
215
|
-
|
|
233
|
+
|
|
234
|
+
// Filtered only in the background, which needs it; on screen every accepted device can be found.
|
|
235
|
+
const scanServiceUUIDs = this.backgroundScanEnabled && serviceUUIDs?.length ? [...serviceUUIDs] : null;
|
|
216
236
|
if (Platform.OS === "ios" && this.backgroundScanEnabled && !serviceUUIDs?.length) {
|
|
217
237
|
this.onErrorCallback?.(bluetoothErrorCallback("Background Bluetooth sync on iOS requires at least one service UUID. Add serviceUUIDs for custom devices."));
|
|
218
238
|
return;
|
|
@@ -288,6 +308,9 @@ class BTManager {
|
|
|
288
308
|
onResult = callback => {
|
|
289
309
|
sentryLogger("info", "BT_MANAGER: Setting onResult callback");
|
|
290
310
|
this.onResultCallback = callback;
|
|
311
|
+
|
|
312
|
+
// Series that closed while nobody listened are handed over now.
|
|
313
|
+
this.series.deliverTo(callback);
|
|
291
314
|
};
|
|
292
315
|
|
|
293
316
|
// Callbacks
|
|
@@ -337,6 +360,7 @@ class BTManager {
|
|
|
337
360
|
onDeviceStatusChanged: this.onDeviceStatusChangedCallback?.bind(this),
|
|
338
361
|
onConnectionEvent: this.onConnectionEventCallback?.bind(this),
|
|
339
362
|
onResult: this.onResultCallback?.bind(this),
|
|
363
|
+
onSeriesValue: (deviceData, reading) => this.series.add(deviceData, reading),
|
|
340
364
|
hasResultReceiver: () => this.onResultCallback !== undefined,
|
|
341
365
|
oneReadingPerConnection: this.options.oneReadingPerConnection,
|
|
342
366
|
deliveredEcgFileNames: this.options.deliveredEcgFileNames,
|
|
@@ -396,7 +420,10 @@ class BTManager {
|
|
|
396
420
|
removeDeviceFromFoundedDevices = deviceId => {
|
|
397
421
|
sentryLogger("info", "BT_MANAGER: Removing device from founded devices now its accessible again");
|
|
398
422
|
this.devices.delete(deviceId);
|
|
399
|
-
|
|
423
|
+
|
|
424
|
+
// A running scan reports each device once, on iOS (without allowDuplicates) as on Android, so a monitor that
|
|
425
|
+
// disconnected is only found again by a fresh scan.
|
|
426
|
+
if (this.scanActive) {
|
|
400
427
|
this.resumeScan();
|
|
401
428
|
}
|
|
402
429
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Linking","Platform","ScanMode","State","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","IntegratedDevices","errorCallbackPayload","DeviceCreator","bluetoothErrorCallback","error","SCAN_RETRY_DELAY_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","startScan","stateChangeListener","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","onErrorCallback","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","haltScan","forEach","sub","remove","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","device","disconnect","pauseScan","resumeScan","clearScanTimers","removeStateChangeListener","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","disconnectDevice","deviceId","get","forget","add","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","errorCode","code","advertisedName","name","trim","localName","has","deviceName","getDeviceName","manufacturerData","size","currentSize","deviceClass","createDevice","bind","hasResultReceiver","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","queueAutoConnect","deviceData","TRASENSE_S9","values","candidate","connect","select","selected","Error","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Linking","Platform","ScanMode","State","sentryLogger","addOvokSpanEvent","recordOvokMetric","toBluetoothError","IntegratedDevices","errorCallbackPayload","DeviceCreator","SeriesRecorder","bluetoothErrorCallback","error","SCAN_RETRY_DELAY_MS","SERIES_IDLE_CHECK_MS","BTManager","MAX_DEVICES","devices","Map","forgottenDeviceIds","Set","eventSubscriptions","scanGeneration","scanActive","scanStarting","destroyed","autoConnectCandidates","bluetoothEnablePrompted","constructor","bleManager","acceptedDevices","options","deviceCreator","backgroundScanEnabled","backgroundEnabled","series","storage","seriesStorage","setAutoConnect","enabledOrOptions","delayMs","onDeviceSelectionRequired","enabled","nextDelayMs","nextSelectionHandler","autoConnect","autoConnectDelayMs","clear","autoConnectTimer","clearTimeout","undefined","destroy","stopScan","getOpenSeries","getOpen","subscribeOpenSeries","listener","subscribe","startScan","stateChangeListener","seriesTimer","setInterval","closeIdle","generation","subscription","onStateChange","state","PoweredOn","startDeviceScan","stopDeviceScan","PoweredOff","onErrorCallback","OS","sendIntent","push","setBackgroundScanEnabled","restartScan","haltScan","forEach","sub","remove","clearInterval","deliverTo","onDeviceFoundCallback","onResultCallback","onDeviceStatusChangedCallback","onConnectionEventCallback","device","disconnect","pauseScan","resumeScan","clearScanTimers","removeStateChangeListener","scanRetryTimer","scanRestartTimer","scheduleScanRetry","setTimeout","index","indexOf","splice","serviceUUIDs","scanServiceUUIDs","length","scanFailed","scanMode","LowPower","Balanced","onScanResult","platform","background","restoreDevices","delete","id","disconnectDevice","deviceId","get","forget","add","onDeviceFound","callback","onError","onDeviceStatusChanged","onConnectionEvent","onResult","errorCode","code","advertisedName","name","trim","localName","has","deviceName","getDeviceName","manufacturerData","size","currentSize","deviceClass","createDevice","bind","onSeriesValue","deviceData","reading","hasResultReceiver","oneReadingPerConnection","deliveredEcgFileNames","deliveredFileNames","clearDeviceHistory","resultPolicy","resultPolicies","clockSync","onDeviceDisconnected","removeDeviceFromFoundedDevices","set","queueAutoConnect","TRASENSE_S9","values","candidate","connect","select","selected","Error","Math","max"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/services/bt-manager.ts"],"mappings":";;AAAA;AACA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAChD,SAIEC,QAAQ,EACRC,KAAK,QAEA,sBAAsB;AAE7B,SAASC,YAAY,QAAQ,sCAAmC;AAChE,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ,kCAA+B;AAGlF,SAASC,gBAAgB,QAAQ,6BAA0B;AAO3D,SAASC,iBAAiB,QAAQ,gCAA6B;AAI/D,SAASC,oBAAoB,QAAQ,oCAAiC;AAEtE,SAASC,aAAa,QAAQ,qBAAkB;AAEhD,SAASC,cAAc,QAAQ,sBAAmB;AAuClD,MAAMC,sBAAsB,GAAIC,KAAc,IAC5CJ,oBAAoB,CAACF,gBAAgB,CAACM,KAAK,CAAC,CAAC;AAE/C,MAAMC,mBAAmB,GAAG,KAAK;;AAEjC;AACA,MAAMC,oBAAoB,GAAG,MAAM;AAEnC,MAAMC,SAAS,CAAsC;EACnD,OAAwBC,WAAW,GAAG,EAAE,CAAC,CAAC;EAClCC,OAAO,GAAG,IAAIC,GAAG,CAA0C,CAAC;EAC5DC,kBAAkB,GAAG,IAAIC,GAAG,CAAS,CAAC;EAGtCC,kBAAkB,GAAmB,EAAE;EACvCC,cAAc,GAAG,CAAC;EAClBC,UAAU,GAAG,KAAK;EAClBC,YAAY,GAAG,KAAK;EACpBC,SAAS,GAAG,KAAK;EAIjBC,qBAAqB,GAAG,IAAIR,GAAG,CAA0C,CAAC;EAI1ES,uBAAuB,GAAG,KAAK;EAIvCC,WAAWA,CACQC,UAAsB,EACtBC,eAAkB,EAClBC,OAAyB,GAAG,CAAC,CAAC,EAC/C;IAAA,KAHiBF,UAAsB,GAAtBA,UAAsB;IAAA,KACtBC,eAAkB,GAAlBA,eAAkB;IAAA,KAClBC,OAAyB,GAAzBA,OAAyB;IAE1C,IAAI,CAACC,aAAa,GAAG,IAAIvB,aAAa,CAAC,IAAI,CAACqB,eAAe,CAAC;IAC5D,IAAI,CAACG,qBAAqB,GAAGF,OAAO,CAACG,iBAAiB,KAAK,IAAI;IAC/D,IAAI,CAACC,MAAM,GAAG,IAAIzB,cAAc,CAAC;MAAE0B,OAAO,EAAEL,OAAO,CAACM;IAAc,CAAC,CAAC;EACtE;EAEOC,cAAc,GAAGA,CACtBC,gBAIC,EACDC,OAAgB,EAChBC,yBAAyE,KAChE;IACT,MAAMC,OAAO,GAAG,OAAOH,gBAAgB,KAAK,SAAS,GACjDA,gBAAgB,GAChBA,gBAAgB,CAACG,OAAO;IAE5B,MAAMC,WAAW,GAAG,OAAOJ,gBAAgB,KAAK,SAAS,GACrDC,OAAO,GACPD,gBAAgB,CAACC,OAAO;IAE5B,MAAMI,oBAAoB,GAAG,OAAOL,gBAAgB,KAAK,SAAS,GAC9DE,yBAAyB,GACzBF,gBAAgB,CAACE,yBAAyB;IAE9C,IAAI,CAACV,OAAO,CAACc,WAAW,GAAGH,OAAO;IAClC,IAAI,CAACX,OAAO,CAACe,kBAAkB,GAAGH,WAAW,IAAI,IAAI,CAACZ,OAAO,CAACe,kBAAkB;IAChF,IAAI,CAACf,OAAO,CAACU,yBAAyB,GAAGG,oBAAoB;IAE7D,IAAI,CAACF,OAAO,EAAE;MACZ,IAAI,CAAChB,qBAAqB,CAACqB,KAAK,CAAC,CAAC;MAClC,IAAI,IAAI,CAACC,gBAAgB,EAAE;QACzBC,YAAY,CAAC,IAAI,CAACD,gBAAgB,CAAC;QACnC,IAAI,CAACA,gBAAgB,GAAGE,SAAS;MACnC;IACF;EACF,CAAC;EAEMC,OAAO,GAAGA,CAAA,KAAM;IACrBhD,YAAY,CAAC,MAAM,EAAE,kCAAkC,CAAC;IAExD,IAAI,CAACsB,SAAS,GAAG,IAAI;IACrB,IAAI,CAAC2B,QAAQ,CAAC,CAAC;IACf,IAAI,IAAI,CAACJ,gBAAgB,EAAE;MACzBC,YAAY,CAAC,IAAI,CAACD,gBAAgB,CAAC;MACnC,IAAI,CAACA,gBAAgB,GAAGE,SAAS;IACnC;;IAEA;IACA,IAAI,CAAC/B,kBAAkB,CAAC4B,KAAK,CAAC,CAAC;IAE/B,IAAI,CAACf,aAAa,CAACmB,OAAO,CAAC,CAAC;IAC5B,KAAK,IAAI,CAAChB,MAAM,CAACgB,OAAO,CAAC,CAAC;EAC5B,CAAC;;EAED;EACOE,aAAa,GAAGA,CAAA,KAA6B,IAAI,CAAClB,MAAM,CAACmB,OAAO,CAAC,CAAC;;EAEzE;EACOC,mBAAmB,GAAIC,QAAoB,IAAmB,IAAI,CAACrB,MAAM,CAACsB,SAAS,CAACD,QAAQ,CAAC;EAE7FE,SAAS,GAAGA,CAAA,KAAM;IACvB,IACE,IAAI,CAACjC,SAAS,IACd,IAAI,CAACF,UAAU,IACf,IAAI,CAACC,YAAY,IACjB,IAAI,CAACmC,mBAAmB,EACxB;MACA;IACF;IAEA,IAAI,CAACC,WAAW,KAAKC,WAAW,CAAC,IAAI,CAAC1B,MAAM,CAAC2B,SAAS,EAAEhD,oBAAoB,CAAC;IAE7E,MAAMiD,UAAU,GAAG,EAAE,IAAI,CAACzC,cAAc;IACxC,IAAI0C,YAAsC;IAE1C,MAAMC,aAAa,GAAIC,KAAY,IAAK;MACtC,IAAI,IAAI,CAACzC,SAAS,IAAIsC,UAAU,KAAK,IAAI,CAACzC,cAAc,EAAE;QACxD;MACF;MAEA,IAAI4C,KAAK,KAAKhE,KAAK,CAACiE,SAAS,EAAE;QAC7B,IAAI,CAACxC,uBAAuB,GAAG,KAAK;QACpC,IAAI,CAACyC,eAAe,CAACL,UAAU,CAAC;QAEhC;MACF;MAEA,IAAI,CAACxC,UAAU,GAAG,KAAK;MACvB,IAAI,CAACC,YAAY,GAAG,KAAK;MACzB,IAAI,CAACK,UAAU,CAACwC,cAAc,CAAC,CAAC;MAChC,IAAIH,KAAK,KAAKhE,KAAK,CAACoE,UAAU,IAAI,IAAI,CAAC3C,uBAAuB,EAAE;QAC9D;MACF;MAEA,IAAI,CAACA,uBAAuB,GAAG,IAAI;MACnC,IAAI,CAAC4C,eAAe,GAAG5D,sBAAsB,CAAC,0BAA0B,CAAC,CAAC;MAE1ER,YAAY,CACV,SAAS,EACT,wEACF,CAAC;;MAED;MACA;MACA;MACA,IAAIH,QAAQ,CAACwE,EAAE,KAAK,SAAS,EAAE;QAC7BzE,OAAO,CAAC0E,UAAU,CAAC,iDAAiD,CAAC;QAErE;MACF;MAEAtE,YAAY,CACV,SAAS,EACT,4EACF,CAAC;IACH,CAAC;IAED,IAAI;MACF6D,YAAY,GAAG,IAAI,CAACnC,UAAU,CAACoC,aAAa,CAACA,aAAa,EAAE,IAAI,CAAC;IACnE,CAAC,CAAC,OAAOrD,KAAK,EAAE;MACd,IAAI,CAAC2D,eAAe,GAAG5D,sBAAsB,CAACC,KAAK,CAAC,CAAC;MAErD;IACF;IAEA,IAAI,CAAC+C,mBAAmB,GAAGK,YAAY;IACvC,IAAI,CAAC3C,kBAAkB,CAACqD,IAAI,CAACV,YAAY,CAAC;EAC5C,CAAC;;EAED;EACOW,wBAAwB,GAAIjC,OAAgB,IAAW;IAC5D,IAAI,IAAI,CAACT,qBAAqB,KAAKS,OAAO,EAAE;MAC1C;IACF;IAEA,IAAI,CAACT,qBAAqB,GAAGS,OAAO;IAEpC,IAAI,IAAI,CAACnB,UAAU,IAAI,IAAI,CAACoC,mBAAmB,EAAE;MAC/C,IAAI,CAACiB,WAAW,CAAC,CAAC;IACpB;EACF,CAAC;EAEMxB,QAAQ,GAAGA,CAAA,KAAM;IACtBjD,YAAY,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAEjD,IAAI,CAAC0E,QAAQ,CAAC,CAAC;;IAEf;IACA,IAAI,CAACxD,kBAAkB,CAACyD,OAAO,CAAEC,GAAG,IAAKA,GAAG,CAACC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC3D,kBAAkB,GAAG,EAAE;;IAE5B;IACA4D,aAAa,CAAC,IAAI,CAACrB,WAAW,CAAC;IAC/B,IAAI,CAACA,WAAW,GAAGV,SAAS;IAC5B,IAAI,CAACf,MAAM,CAAC+C,SAAS,CAAChC,SAAS,CAAC;IAChC,IAAI,CAACqB,eAAe,GAAGrB,SAAS;IAChC,IAAI,CAACiC,qBAAqB,GAAGjC,SAAS;IACtC,IAAI,CAACkC,gBAAgB,GAAGlC,SAAS;IACjC,IAAI,CAACmC,6BAA6B,GAAGnC,SAAS;IAC9C,IAAI,CAACoC,yBAAyB,GAAGpC,SAAS;IAE1C,IAAI,CAACjC,OAAO,CAAC6D,OAAO,CAAES,MAAM,IAAK;MAC/B,KAAKA,MAAM,CAACC,UAAU,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,IAAI,CAACvE,OAAO,CAAC8B,KAAK,CAAC,CAAC;EACtB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACS0C,SAAS,GAAGA,CAAA,KAAM;IACvB,IAAI,IAAI,CAAChE,SAAS,EAAE;MAClB;IACF;IAEAtB,YAAY,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAEhD,IAAI,CAAC0E,QAAQ,CAAC,CAAC;EACjB,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACSa,UAAU,GAAGA,CAAA,KAAM;IACxB,IAAI,IAAI,CAACjE,SAAS,EAAE;MAClB;IACF;IAEAtB,YAAY,CAAC,MAAM,EAAE,2BAA2B,CAAC;IACjD,IAAI,CAACyE,WAAW,CAAC,CAAC;EACpB,CAAC;EAEOA,WAAW,GAAGA,CAAA,KAAM;IAC1B,IAAI,IAAI,CAACnD,SAAS,EAAE;MAClB;IACF;IAEA,IAAI,CAACoD,QAAQ,CAAC,CAAC;IAEf,IAAI,CAACnB,SAAS,CAAC,CAAC;EAClB,CAAC;;EAED;EACQmB,QAAQ,GAAGA,CAAA,KAAM;IACvB,IAAI,CAACvD,cAAc,IAAI,CAAC;IACxB,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACmE,eAAe,CAAC,CAAC;IACtB,IAAI,CAACC,yBAAyB,CAAC,CAAC;IAChC,IAAI,CAAC/D,UAAU,CAACwC,cAAc,CAAC,CAAC;EAClC,CAAC;EAEOsB,eAAe,GAAGA,CAAA,KAAM;IAC9B,IAAI,IAAI,CAACE,cAAc,EAAE;MACvB5C,YAAY,CAAC,IAAI,CAAC4C,cAAc,CAAC;MACjC,IAAI,CAACA,cAAc,GAAG3C,SAAS;IACjC;IAEA,IAAI,IAAI,CAAC4C,gBAAgB,EAAE;MACzB7C,YAAY,CAAC,IAAI,CAAC6C,gBAAgB,CAAC;MACnC,IAAI,CAACA,gBAAgB,GAAG5C,SAAS;IACnC;EACF,CAAC;EAEO6C,iBAAiB,GAAIhC,UAAkB,IAAK;IAClD,IAAI,IAAI,CAACtC,SAAS,IAAIsC,UAAU,KAAK,IAAI,CAACzC,cAAc,IAAI,IAAI,CAACuE,cAAc,EAAE;MAC/E;IACF;IAEA,IAAI,CAACA,cAAc,GAAGG,UAAU,CAAC,MAAM;MACrC,IAAI,CAACH,cAAc,GAAG3C,SAAS;MAC/B,IAAI,CAACkB,eAAe,CAACL,UAAU,CAAC;IAClC,CAAC,EAAElD,mBAAmB,CAAC;EACzB,CAAC;EAEO+E,yBAAyB,GAAGA,CAAC5B,YAAY,GAAG,IAAI,CAACL,mBAAmB,KAAK;IAC/E,IAAI,CAACK,YAAY,EAAE;MACjB;IACF;IAEAA,YAAY,CAACgB,MAAM,CAAC,CAAC;IAErB,IAAI,IAAI,CAACrB,mBAAmB,KAAKK,YAAY,EAAE;MAC7C,IAAI,CAACL,mBAAmB,GAAGT,SAAS;IACtC;IAEA,MAAM+C,KAAK,GAAG,IAAI,CAAC5E,kBAAkB,CAAC6E,OAAO,CAAClC,YAAY,CAAC;IAE3D,IAAIiC,KAAK,GAAG,CAAC,CAAC,EAAE;MACd,IAAI,CAAC5E,kBAAkB,CAAC8E,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;IAC1C;EACF,CAAC;EAEO7B,eAAe,GAAIL,UAAkB,IAAK;IAChD,IACE,IAAI,CAACtC,SAAS,IACdsC,UAAU,KAAK,IAAI,CAACzC,cAAc,IAClC,IAAI,CAACC,UAAU,IACf,IAAI,CAACC,YAAY,EACjB;MACA;IACF;IAEA,MAAM4E,YAAY,GAAG,IAAI,CAACrE,OAAO,CAACqE,YAAY;;IAE9C;IACA,MAAMC,gBAAgB,GACpB,IAAI,CAACpE,qBAAqB,IAAImE,YAAY,EAAEE,MAAM,GAAG,CAAC,GAAGF,YAAY,CAAC,GAAG,IAAI;IAE/E,IAAIpG,QAAQ,CAACwE,EAAE,KAAK,KAAK,IAAI,IAAI,CAACvC,qBAAqB,IAAI,CAACmE,YAAY,EAAEE,MAAM,EAAE;MAChF,IAAI,CAAC/B,eAAe,GAClB5D,sBAAsB,CACpB,2GACF,CACF,CAAC;MAED;IACF;IAEA,IAAI,CAACa,YAAY,GAAG,IAAI;IAExB,IAAI+E,UAAU,GAAG,KAAK;IAEtB,IAAI;MACF,IAAI,CAAC1E,UAAU,CAACuC,eAAe,CAC7BiC,gBAAgB,EAChB;QACEG,QAAQ,EAAE,IAAI,CAACvE,qBAAqB,GAChChC,QAAQ,CAACwG,QAAQ,GACjBxG,QAAQ,CAACyG;MACf,CAAC,EACD,CAAC9F,KAAK,EAAE2E,MAAM,KAAK;QACjB,IAAIxB,UAAU,KAAK,IAAI,CAACzC,cAAc,EAAE;UACtC;QACF;QAEA,IAAIV,KAAK,EAAE;UACT2F,UAAU,GAAG,IAAI;UACjB,IAAI,CAAChF,UAAU,GAAG,KAAK;UACvB,IAAI,CAACwE,iBAAiB,CAAChC,UAAU,CAAC;QACpC;QAEA,IAAI,CAAC4C,YAAY,CAAC/F,KAAK,EAAE2E,MAAM,CAAC;MAClC,CACF,CAAC;MACD,IAAI,CAAChE,UAAU,GAAG,CAACgF,UAAU;MAC7BpG,YAAY,CAAC,MAAM,EAAE,4CAA4C,CAAC;MAClEC,gBAAgB,CAAC,wBAAwB,EAAE;QACzCwG,QAAQ,EAAE5G,QAAQ,CAACwE,EAAE;QACrBqC,UAAU,EAAE,IAAI,CAAC5E;MACnB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOrB,KAAK,EAAE;MACd,IAAI,CAACmF,iBAAiB,CAAChC,UAAU,CAAC;MAClC,IAAI,CAACQ,eAAe,GAAG5D,sBAAsB,CAACC,KAAK,CAAC,CAAC;IACvD,CAAC,SAAS;MACR,IAAI,CAACY,YAAY,GAAG,KAAK;IAC3B;EACF,CAAC;EAEMsF,cAAc,GAAI7F,OAA0B,IAAK;IACtDA,OAAO,CAAC6D,OAAO,CAAES,MAAM,IAAK;MAC1B,IAAI,CAACpE,kBAAkB,CAAC4F,MAAM,CAACxB,MAAM,CAACyB,EAAE,CAAC;MACzC,IAAI,CAACL,YAAY,CAAC,IAAI,EAAEpB,MAAM,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC;;EAED;EACO0B,gBAAgB,GAAG,MAAOC,QAAgB,IAAoB;IACnE,IAAI,CAACxF,qBAAqB,CAACqF,MAAM,CAACG,QAAQ,CAAC;IAE3C,MAAM3B,MAAM,GAAG,IAAI,CAACtE,OAAO,CAACkG,GAAG,CAACD,QAAQ,CAAC;IAEzC,IAAI,CAAC3B,MAAM,EAAE;MACX;IACF;IAEA,IAAI,CAACtE,OAAO,CAAC8F,MAAM,CAACG,QAAQ,CAAC;IAC7B,MAAM3B,MAAM,CAACC,UAAU,CAAC,CAAC;EAC3B,CAAC;;EAED;EACO4B,MAAM,GAAG,MAAOF,QAAgB,IAAoB;IACzD,IAAI,CAAC/F,kBAAkB,CAACkG,GAAG,CAACH,QAAQ,CAAC;IACrC,MAAM,IAAI,CAACD,gBAAgB,CAACC,QAAQ,CAAC;EACvC,CAAC;EAEMI,aAAa,GAClBC,QAGkB,IACf;IACHpH,YAAY,CAAC,MAAM,EAAE,4CAA4C,CAAC;IAClE,IAAI,CAACgF,qBAAqB,GAAGoC,QAAQ;EACvC,CAAC;EAEMC,OAAO,GAAID,QAAwC,IAAK;IAC7DpH,YAAY,CAAC,MAAM,EAAE,sCAAsC,CAAC;IAC5D,IAAI,CAACoE,eAAe,GAAGgD,QAAQ;EACjC,CAAC;EAEME,qBAAqB,GAC1BF,QAAqD,IAClD;IACHpH,YAAY,CAAC,MAAM,EAAE,oDAAoD,CAAC;IAC1E,IAAI,CAACkF,6BAA6B,GAAGkC,QAAQ;EAC/C,CAAC;EAEMG,iBAAiB,GACtBH,QAAgD,IAC7C;IACHpH,YAAY,CAAC,MAAM,EAAE,gDAAgD,CAAC;IACtE,IAAI,CAACmF,yBAAyB,GAAGiC,QAAQ;EAC3C,CAAC;EAEMI,QAAQ,GACbJ,QAAyD,IACtD;IACHpH,YAAY,CAAC,MAAM,EAAE,uCAAuC,CAAC;IAC7D,IAAI,CAACiF,gBAAgB,GAAGmC,QAAQ;;IAEhC;IACA,IAAI,CAACpF,MAAM,CAAC+C,SAAS,CAACqC,QAAmE,CAAC;EAC5F,CAAC;;EAED;;EAYQZ,YAAY,GAAGA,CAAC/F,KAAsB,EAAE2E,MAAqB,KAAK;IACxE,IAAI;MACF,IAAI3E,KAAK,EAAE;QACT,IAAI,CAAC2D,eAAe,GAAG5D,sBAAsB,CAACC,KAAK,CAAC,CAAC;QACrDT,YAAY,CAAC,SAAS,EAAE,+BAA+B,EAAE;UACvDyH,SAAS,EAAEtH,gBAAgB,CAACM,KAAK,CAAC,CAACiH;QACrC,CAAC,CAAC;QAEF;MACF;;MAEA;AACN;AACA;AACA;AACA;AACA;MACM,MAAMC,cAAc,GAClBvC,MAAM,EAAEwC,IAAI,EAAEC,IAAI,CAAC,CAAC,IAAIzC,MAAM,EAAE0C,SAAS,EAAED,IAAI,CAAC,CAAC,IAAI,EAAE;MAEzD,IAAI,CAACzC,MAAM,EAAE;QACX;MACF;MAEA,IAAI,IAAI,CAACpE,kBAAkB,CAAC+G,GAAG,CAAC3C,MAAM,CAACyB,EAAE,CAAC,EAAE;QAC1C;MACF;MAEA,IAAI,IAAI,CAAC/F,OAAO,CAACiH,GAAG,CAAC3C,MAAM,CAACyB,EAAE,CAAC,EAAE;QAC/B;MACF;MAEA,MAAMmB,UAAU,GAAG,IAAI,CAACnG,aAAa,CAACoG,aAAa,CACjDN,cAAc,EACdvC,MAAM,CAACa,YAAY,IAAI,EAAE,EACzBb,MAAM,CAAC8C,gBAAgB,IAAInF,SAC7B,CAAC;MAED,IAAI,CAACiF,UAAU,EAAE;QACf;MACF;;MAEA;MACA,IAAI,IAAI,CAAClH,OAAO,CAACqH,IAAI,IAAIvH,SAAS,CAACC,WAAW,EAAE;QAC9Cb,YAAY,CACV,SAAS,EACT,4DAA4D,EAC5D;UACEoI,WAAW,EAAE,IAAI,CAACtH,OAAO,CAACqH;QAC5B,CACF,CAAC;QAED;MACF;MAEA,MAAME,WAAW,GAAG,IAAI,CAACxG,aAAa,CAACyG,YAAY,CAAC;QAClDlD,MAAM;QACN4C,UAAU;QACVX,OAAO,EAAE,IAAI,CAACjD,eAAe,EAAEmE,IAAI,CAAC,IAAI,CAAC;QACzCjB,qBAAqB,EAAE,IAAI,CAACpC,6BAA6B,EAAEqD,IAAI,CAAC,IAAI,CAAC;QACrEhB,iBAAiB,EAAE,IAAI,CAACpC,yBAAyB,EAAEoD,IAAI,CAAC,IAAI,CAAC;QAC7Df,QAAQ,EAAE,IAAI,CAACvC,gBAAgB,EAAEsD,IAAI,CAAC,IAAI,CAAC;QAC3CC,aAAa,EAAEA,CAACC,UAAU,EAAEC,OAAO,KAAK,IAAI,CAAC1G,MAAM,CAACkF,GAAG,CAACuB,UAAU,EAAEC,OAAO,CAAC;QAC5EC,iBAAiB,EAAEA,CAAA,KAAM,IAAI,CAAC1D,gBAAgB,KAAKlC,SAAS;QAC5D6F,uBAAuB,EAAE,IAAI,CAAChH,OAAO,CAACgH,uBAAuB;QAC7DC,qBAAqB,EAAE,IAAI,CAACjH,OAAO,CAACiH,qBAAqB;QACzDC,kBAAkB,EAAE,IAAI,CAAClH,OAAO,CAACkH,kBAAkB;QACnDC,kBAAkB,EAAE,IAAI,CAACnH,OAAO,CAACmH,kBAAkB;QACnDC,YAAY,EAAE,IAAI,CAACpH,OAAO,CAACqH,cAAc,GAAGjB,UAAU,CAAC;QACvDkB,SAAS,EAAE,IAAI,CAACtH,OAAO,CAACsH,SAAS;QACjCC,oBAAoB,EAAEA,CAAA,KAAM;UAC1B,IAAI,CAACC,8BAA8B,EAAEb,IAAI,CAAC,IAAI,CAAC,CAACnD,MAAM,CAACyB,EAAE,CAAC;QAC5D;MACF,CAAC,CAAC;MAEF,IAAI,CAAC/F,OAAO,CAACuI,GAAG,CAACjE,MAAM,CAACyB,EAAE,EAAEwB,WAAW,CAAC;MACxCnI,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,EAAE;QACxCuG,QAAQ,EAAE5G,QAAQ,CAACwE;MACrB,CAAC,CAAC;MAEF,IAAI,CAACW,qBAAqB,GAAGqD,WAAW,EAAE,IAAI,CAAC;MAC/C,IAAI,CAACiB,gBAAgB,CAACjB,WAAW,CAAC;IACpC,CAAC,CAAC,OAAO5H,KAAK,EAAE;MACdT,YAAY,CAAC,OAAO,EAAE,mCAAmC,EAAE;QACzDyH,SAAS,EAAEtH,gBAAgB,CAACM,KAAK,CAAC,CAACiH;MACrC,CAAC,CAAC;IACJ;EACF,CAAC;EAEO4B,gBAAgB,GAAIlE,MAAuC,IAAW;IAC5E;IACA,IACE,CAAC,IAAI,CAACxD,OAAO,CAACc,WAAW,IACzB0C,MAAM,CAACqD,UAAU,CAACb,IAAI,KAAKxH,iBAAiB,CAACmJ,WAAW,EACxD;MACA;IACF;IAEA,IAAI,CAAChI,qBAAqB,CAAC8H,GAAG,CAACjE,MAAM,CAACyB,EAAE,EAAEzB,MAAM,CAAC;IAEjD,IAAI,IAAI,CAACvC,gBAAgB,EAAE;MACzBC,YAAY,CAAC,IAAI,CAACD,gBAAgB,CAAC;IACrC;IAEA,IAAI,CAACA,gBAAgB,GAAGgD,UAAU,CAAC,MAAM;MACvC,IAAI,CAAChD,gBAAgB,GAAGE,SAAS;MACjC,MAAMjC,OAAO,GAAG,CAAC,GAAG,IAAI,CAACS,qBAAqB,CAACiI,MAAM,CAAC,CAAC,CAAC;MAExD,IAAI,CAACjI,qBAAqB,CAACqB,KAAK,CAAC,CAAC;MAElC,IAAI9B,OAAO,CAACqF,MAAM,KAAK,CAAC,EAAE;QACxB,MAAMsD,SAAS,GAAG3I,OAAO,CAAC,CAAC,CAAC;QAE5B,IACE2I,SAAS,IACT,CAAC,IAAI,CAACzI,kBAAkB,CAAC+G,GAAG,CAAC0B,SAAS,CAAC5C,EAAE,CAAC,IAC1C,IAAI,CAAC/F,OAAO,CAACkG,GAAG,CAACyC,SAAS,CAAC5C,EAAE,CAAC,KAAK4C,SAAS,EAC5C;UACA,KAAKA,SAAS,CAACC,OAAO,CAAC,CAAC;QAC1B;QAEA;MACF;MAEA,IAAI5I,OAAO,CAACqF,MAAM,GAAG,CAAC,EAAE;QACtB,IAAI,CAACvE,OAAO,CAACU,yBAAyB,GAAG;UACvCxB,OAAO,EAAEA,OAAuC;UAChD6I,MAAM,EAAE,MAAOC,QAAQ,IAAK;YAC1B,IACE,IAAI,CAAC5I,kBAAkB,CAAC+G,GAAG,CAAC6B,QAAQ,CAAC/C,EAAE,CAAC,IACxC,IAAI,CAAC/F,OAAO,CAACkG,GAAG,CAAC4C,QAAQ,CAAC/C,EAAE,CAAC,KAAK+C,QAAQ,EAC1C;cACA,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;YACjE;YAEA,MAAMD,QAAQ,CAACF,OAAO,CAAC,CAAC;UAC1B;QACF,CAAC,CAAC;MACJ;IACF,CAAC,EAAEI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAACnI,OAAO,CAACe,kBAAkB,IAAI,GAAG,CAAC,CAAC;EACzD,CAAC;EAEOyG,8BAA8B,GAAIrC,QAAgB,IAAK;IAC7D/G,YAAY,CACV,MAAM,EACN,2EACF,CAAC;IACD,IAAI,CAACc,OAAO,CAAC8F,MAAM,CAACG,QAAQ,CAAC;;IAE7B;IACA;IACA,IAAI,IAAI,CAAC3F,UAAU,EAAE;MACnB,IAAI,CAACmE,UAAU,CAAC,CAAC;IACnB;EACF,CAAC;AACH;AAEA,SAAS3E,SAAS","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { MeasurementTypeKey } from "@ovok/core";
|
|
4
|
+
import { MeasurementFeedbackKey } from "../../../constants/measurement-feedback.js";
|
|
4
5
|
import { CaseType } from "../../../types/case-type.js";
|
|
5
6
|
import { hexToByte } from "../../../utils/hex-to-byte.js";
|
|
6
7
|
import { BTManagedDevice } from "../bt-managed-device.js";
|
|
@@ -118,7 +119,7 @@ export class BC01Device extends BTManagedDevice {
|
|
|
118
119
|
return acc;
|
|
119
120
|
}, {});
|
|
120
121
|
if (Object.keys(measuredValues).length === 0) {
|
|
121
|
-
this.onError?.(
|
|
122
|
+
this.onError?.(MeasurementFeedbackKey.DISTURB_DETECTED);
|
|
122
123
|
return;
|
|
123
124
|
}
|
|
124
125
|
const timestamp = parsed.timestamp.getTime();
|