@ovok/native 1.6.55 → 1.8.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-instruction-pdfs.js +2 -1
- package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/device-list-items.js +7 -0
- package/lib/commonjs/modules/bt-device/constants/device-list-items.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +11 -2
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/core/resolve-device-key.js +6 -1
- package/lib/commonjs/modules/bt-management/core/resolve-device-key.js.map +1 -1
- package/lib/commonjs/modules/bt-management/index.js +48 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +9 -17
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-classes.js +3 -1
- package/lib/commonjs/modules/bt-management/services/device-classes.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/device-creator.js +9 -7
- package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +1 -7
- 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 +1 -5
- 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-command-writer.js +2 -8
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js +17 -31
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +2 -3
- package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +8 -24
- 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-lepu-sequencer.js +0 -3
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-advertisement.js +31 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-advertisement.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-frame-reader.js +27 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9-frame-reader.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.command-sequencer.js +340 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.command-sequencer.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.device.js +74 -0
- package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.device.js.map +1 -0
- package/lib/commonjs/modules/bt-management/types/clock-sync.js +1 -0
- package/lib/commonjs/modules/bt-management/types/clock-sync.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js +1 -0
- package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/commonjs/modules/data-sync/index.js +15 -0
- package/lib/commonjs/modules/data-sync/index.js.map +1 -1
- package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +25 -19
- 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 +73 -17
- 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 +14 -0
- package/lib/commonjs/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js +45 -7
- package/lib/commonjs/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
- package/lib/commonjs/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
- 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 +66 -23
- package/lib/commonjs/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js +4 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-records-count.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js +3 -3
- package/lib/commonjs/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js +364 -0
- package/lib/commonjs/modules/data-sync/utils/health-data-catalog.js.map +1 -0
- package/lib/commonjs/modules/data-sync/utils/health-units.js +13 -11
- package/lib/commonjs/modules/data-sync/utils/health-units.js.map +1 -1
- package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js +34 -0
- package/lib/commonjs/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +2 -1
- package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
- package/lib/module/modules/bt-device/constants/device-list-items.js +7 -0
- package/lib/module/modules/bt-device/constants/device-list-items.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-devices.js +12 -3
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-management/core/resolve-device-key.js +6 -1
- package/lib/module/modules/bt-management/core/resolve-device-key.js.map +1 -1
- package/lib/module/modules/bt-management/index.js +4 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +9 -17
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-classes.js +3 -1
- package/lib/module/modules/bt-management/services/device-classes.js.map +1 -1
- package/lib/module/modules/bt-management/services/device-creator.js +9 -7
- package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +1 -7
- 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 +1 -5
- 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-command-writer.js +2 -8
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js +17 -31
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-device-information.js +2 -3
- package/lib/module/modules/bt-management/services/devices/bt-device-information.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +8 -24
- 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-lepu-sequencer.js +0 -3
- package/lib/module/modules/bt-management/services/devices/custom/custom-lepu-sequencer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/trasense/s9-advertisement.js +26 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9-advertisement.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9-frame-reader.js +22 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9-frame-reader.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9.command-sequencer.js +336 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9.command-sequencer.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9.device.js +69 -0
- package/lib/module/modules/bt-management/services/devices/trasense/s9.device.js.map +1 -0
- package/lib/module/modules/bt-management/types/clock-sync.js +1 -0
- package/lib/module/modules/bt-management/types/clock-sync.js.map +1 -1
- package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
- package/lib/module/modules/bt-management/types/integrated-devices.js +1 -0
- package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
- package/lib/module/modules/data-sync/index.js +1 -0
- package/lib/module/modules/data-sync/index.js.map +1 -1
- package/lib/module/modules/data-sync/services/base-health-sync-service.js +25 -19
- 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 +74 -18
- 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 +14 -0
- package/lib/module/modules/data-sync/services/managers/storage-manager.js.map +1 -1
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js +45 -7
- package/lib/module/modules/data-sync/utils/convert-generic-health-data.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js +15 -2
- package/lib/module/modules/data-sync/utils/get-health-record-sync-id.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-records-from-health-connect.js +103 -8
- 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 +66 -22
- package/lib/module/modules/data-sync/utils/get-samples-from-health.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-total-records-count.js +4 -1
- package/lib/module/modules/data-sync/utils/get-total-records-count.js.map +1 -1
- package/lib/module/modules/data-sync/utils/get-total-samples-count.js +2 -2
- package/lib/module/modules/data-sync/utils/get-total-samples-count.js.map +1 -1
- package/lib/module/modules/data-sync/utils/health-data-catalog.js +360 -0
- package/lib/module/modules/data-sync/utils/health-data-catalog.js.map +1 -0
- package/lib/module/modules/data-sync/utils/health-units.js +13 -11
- package/lib/module/modules/data-sync/utils/health-units.js.map +1 -1
- package/lib/module/modules/data-sync/utils/healthkit-data-types.js +26 -0
- package/lib/module/modules/data-sync/utils/healthkit-data-types.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/core/resolve-device-key.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/core/resolve-device-key.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
- 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/device-classes.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.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-command-writer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -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-lepu-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts +63 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.device.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/trasense/s9.device.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts +5 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-data.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/index.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 +2 -1
- 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 -0
- 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/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -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/get-health-record-sync-id.d.ts +9 -1
- 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-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
- 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/get-total-records-count.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/core/resolve-device-key.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/core/resolve-device-key.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
- 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/device-classes.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/device-classes.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/device-creator.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-command-writer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-connection-handler.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts.map +1 -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-lepu-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-advertisement.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9-frame-reader.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts +63 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.command-sequencer.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.device.d.ts +18 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/trasense/s9.device.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts +5 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-connection-event.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-data.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
- package/lib/typescript/module/src/modules/data-sync/index.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 +2 -1
- 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 -0
- 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/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts +2 -0
- package/lib/typescript/module/src/modules/data-sync/types/convert-data-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts +4 -0
- package/lib/typescript/module/src/modules/data-sync/types/data-from-provider-result.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -1
- package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/convert-generic-health-data.d.ts +1 -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/get-health-record-sync-id.d.ts +9 -1
- 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-records-from-health-connect.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-samples-from-health.d.ts +49 -4
- 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/get-total-records-count.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/get-total-samples-count.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts +30 -0
- package/lib/typescript/module/src/modules/data-sync/utils/health-data-catalog.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/health-units.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts +11 -0
- package/lib/typescript/module/src/modules/data-sync/utils/healthkit-data-types.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TRASENSE_S9_WRITE = exports.TRASENSE_S9_SERVICE = exports.TRASENSE_S9_NOTIFY = exports.S9CommandSequencer = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _caseType = require("../../../types/case-type.js");
|
|
9
|
+
var _clockSync = require("../../../types/clock-sync.js");
|
|
10
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
11
|
+
/* eslint-disable max-lines */
|
|
12
|
+
|
|
13
|
+
const TRASENSE_S9_SERVICE = exports.TRASENSE_S9_SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
|
|
14
|
+
const TRASENSE_S9_WRITE = exports.TRASENSE_S9_WRITE = "0000fff1-0000-1000-8000-00805f9b34fb";
|
|
15
|
+
const TRASENSE_S9_NOTIFY = exports.TRASENSE_S9_NOTIFY = "0000fff2-0000-1000-8000-00805f9b34fb";
|
|
16
|
+
const RESPONSE = {
|
|
17
|
+
identity: 0xf0,
|
|
18
|
+
address: 0x88,
|
|
19
|
+
clock: 0x81,
|
|
20
|
+
historyIndex: 0x90,
|
|
21
|
+
steps: 0x93,
|
|
22
|
+
heartRate: 0xd6,
|
|
23
|
+
battery: 0xb0
|
|
24
|
+
};
|
|
25
|
+
const HISTORY_HOURS = [0x00, 0x06, 0x0c, 0x12];
|
|
26
|
+
const HISTORY_SLOTS = 7;
|
|
27
|
+
const RESPONSE_TIMEOUT_MS = 3_000;
|
|
28
|
+
const MAX_RESPONSE_RETRIES = 1;
|
|
29
|
+
const MAX_HEART_RATE_POLLS = 12;
|
|
30
|
+
const HEART_RATE_POLL_INTERVAL_MS = 1_000;
|
|
31
|
+
const byte = value => (value & 0xff).toString(16).padStart(2, "0");
|
|
32
|
+
const values = frame => frame.map(_hexToByte.hexToByte);
|
|
33
|
+
const command = (write, request, delayBeforeWriteMs) => ({
|
|
34
|
+
...write,
|
|
35
|
+
frame: [...request, ...new Array(20 - request.length).fill(0)].map(byte),
|
|
36
|
+
...(delayBeforeWriteMs === undefined ? {} : {
|
|
37
|
+
delayBeforeWriteMs
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
const decodeFirmware = frame => values(frame).slice(1).filter(value => value !== 0).map(value => String.fromCharCode(value)).join("").trim();
|
|
41
|
+
const buildDateFromFirmware = firmware => {
|
|
42
|
+
const match = /^(\d{4})(\d{2})(\d{2})\.SH09(?:\.|$)/.exec(firmware);
|
|
43
|
+
if (!match) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
const date = {
|
|
47
|
+
year: Number(match[1]),
|
|
48
|
+
month: Number(match[2]),
|
|
49
|
+
day: Number(match[3])
|
|
50
|
+
};
|
|
51
|
+
return isValidDate(date) ? date : undefined;
|
|
52
|
+
};
|
|
53
|
+
const isValidDate = ({
|
|
54
|
+
year,
|
|
55
|
+
month,
|
|
56
|
+
day
|
|
57
|
+
}) => {
|
|
58
|
+
const date = new Date(0);
|
|
59
|
+
date.setFullYear(year, month - 1, day);
|
|
60
|
+
return Number.isInteger(year) && Number.isInteger(month) && Number.isInteger(day) && month >= 1 && month <= 12 && day >= 1 && date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;
|
|
61
|
+
};
|
|
62
|
+
const dateFromReply = frame => {
|
|
63
|
+
if (frame.length < 5) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const date = {
|
|
67
|
+
year: (frame[1] ?? 0) * 100 + (frame[2] ?? 0),
|
|
68
|
+
month: frame[3] ?? 0,
|
|
69
|
+
day: frame[4] ?? 0
|
|
70
|
+
};
|
|
71
|
+
return isValidDate(date) ? date : undefined;
|
|
72
|
+
};
|
|
73
|
+
const isBefore = (left, right) => left.year < right.year || left.year === right.year && left.month < right.month || left.year === right.year && left.month === right.month && left.day < right.day;
|
|
74
|
+
const dateAtHour = (date, hour, timezone) => {
|
|
75
|
+
const result = new Date(0);
|
|
76
|
+
if (timezone === "utc") {
|
|
77
|
+
result.setUTCFullYear(date.year, date.month - 1, date.day);
|
|
78
|
+
result.setUTCHours(hour, 0, 0, 0);
|
|
79
|
+
} else {
|
|
80
|
+
result.setFullYear(date.year, date.month - 1, date.day);
|
|
81
|
+
result.setHours(hour, 0, 0, 0);
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
};
|
|
85
|
+
const isResponseFor = (phase, frame) => {
|
|
86
|
+
const response = (0, _hexToByte.hexToByte)(frame[0] ?? "00");
|
|
87
|
+
if (phase === "heart-rate") {
|
|
88
|
+
return response === RESPONSE.heartRate && (0, _hexToByte.hexToByte)(frame[1] ?? "00") === 0x02;
|
|
89
|
+
}
|
|
90
|
+
switch (phase) {
|
|
91
|
+
case "identity":
|
|
92
|
+
return response === RESPONSE.identity;
|
|
93
|
+
case "address":
|
|
94
|
+
return response === RESPONSE.address;
|
|
95
|
+
case "clock":
|
|
96
|
+
return response === RESPONSE.clock;
|
|
97
|
+
case "history-index":
|
|
98
|
+
return response === RESPONSE.historyIndex;
|
|
99
|
+
case "steps":
|
|
100
|
+
return response === RESPONSE.steps;
|
|
101
|
+
case "battery":
|
|
102
|
+
return response === RESPONSE.battery;
|
|
103
|
+
case "done":
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/** Runs only the SH09 commands verified on firmware image 1. */
|
|
109
|
+
class S9CommandSequencer {
|
|
110
|
+
phase = "identity";
|
|
111
|
+
retries = 0;
|
|
112
|
+
firmware = "";
|
|
113
|
+
historyCount = 0;
|
|
114
|
+
historySlot = 0;
|
|
115
|
+
historyHourIndex = 0;
|
|
116
|
+
heartRatePolls = 0;
|
|
117
|
+
constructor(params) {
|
|
118
|
+
this.params = params;
|
|
119
|
+
}
|
|
120
|
+
initialCommands = () => [this.queue([0x70])];
|
|
121
|
+
isHistoryTransfer = () => true;
|
|
122
|
+
commandTimeoutMs = () => RESPONSE_TIMEOUT_MS;
|
|
123
|
+
commandProgress = frame => isResponseFor(this.phase, frame) ? "complete" : "ignored";
|
|
124
|
+
onCommandTimeout = () => {
|
|
125
|
+
if (this.pendingCommand && this.retries < MAX_RESPONSE_RETRIES) {
|
|
126
|
+
this.retries += 1;
|
|
127
|
+
return {
|
|
128
|
+
commands: [this.pendingCommand]
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
terminal: true
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
nextCommand = frame => {
|
|
136
|
+
if (!isResponseFor(this.phase, frame)) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
this.pendingCommand = undefined;
|
|
140
|
+
this.retries = 0;
|
|
141
|
+
const response = values(frame);
|
|
142
|
+
switch (this.phase) {
|
|
143
|
+
case "identity":
|
|
144
|
+
return this.handleIdentity(frame);
|
|
145
|
+
case "address":
|
|
146
|
+
return this.handleAddress(response);
|
|
147
|
+
case "clock":
|
|
148
|
+
this.reportClockWrite();
|
|
149
|
+
return this.queueHistoryIndex();
|
|
150
|
+
case "history-index":
|
|
151
|
+
return this.handleHistoryIndex(response);
|
|
152
|
+
case "steps":
|
|
153
|
+
if (!this.handleSteps(response)) {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
return this.queueNextStepsOrHeartRate();
|
|
157
|
+
case "heart-rate":
|
|
158
|
+
return this.handleHeartRate(response);
|
|
159
|
+
case "battery":
|
|
160
|
+
this.handleBattery(response);
|
|
161
|
+
this.finish();
|
|
162
|
+
return undefined;
|
|
163
|
+
case "done":
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
handleIdentity = frame => {
|
|
168
|
+
const firmware = decodeFirmware(frame);
|
|
169
|
+
if (!/(?:^|\.)SH09(?:\.|$)/.test(firmware)) {
|
|
170
|
+
this.params.onError(new Error("Trasense S9 identity check failed."));
|
|
171
|
+
this.finish();
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
this.firmware = firmware;
|
|
175
|
+
this.firmwareBuildDate = buildDateFromFirmware(firmware);
|
|
176
|
+
this.phase = "address";
|
|
177
|
+
return [this.queue([0x08])];
|
|
178
|
+
};
|
|
179
|
+
handleAddress = response => {
|
|
180
|
+
if (response.length < 7) {
|
|
181
|
+
this.params.onError(new Error("Trasense S9 address reply was incomplete."));
|
|
182
|
+
this.finish();
|
|
183
|
+
return undefined;
|
|
184
|
+
}
|
|
185
|
+
const addressBytes = response.slice(1, 7).reverse();
|
|
186
|
+
if (addressBytes.every(value => value === 0 || value === 0xff)) {
|
|
187
|
+
this.params.onError(new Error("Trasense S9 address reply was invalid."));
|
|
188
|
+
this.finish();
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
const hardwareAddress = addressBytes.map(byte).join(":").toUpperCase();
|
|
192
|
+
this.params.onIdentity(this.firmware, hardwareAddress);
|
|
193
|
+
this.params.onConnectionEvent({
|
|
194
|
+
kind: "device-identified"
|
|
195
|
+
});
|
|
196
|
+
return [this.queueClockOrHistoryIndex()];
|
|
197
|
+
};
|
|
198
|
+
queueClockOrHistoryIndex = () => {
|
|
199
|
+
const options = this.params.clockSync;
|
|
200
|
+
if (options?.enabled === false) {
|
|
201
|
+
return this.queueHistoryIndex()[0];
|
|
202
|
+
}
|
|
203
|
+
this.phase = "clock";
|
|
204
|
+
const now = options?.now?.() ?? new Date();
|
|
205
|
+
|
|
206
|
+
// SH09 has no time-zone setting; its clock and history are local wall time.
|
|
207
|
+
const parts = (0, _clockSync.getClockParts)(now, "local");
|
|
208
|
+
return this.queue([0x01, Math.floor(parts.year / 100), parts.year % 100, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, 0x00, 0x18], undefined, now);
|
|
209
|
+
};
|
|
210
|
+
reportClockWrite = () => {
|
|
211
|
+
const clockAt = this.clockAt ?? new Date();
|
|
212
|
+
this.params.onConnectionEvent({
|
|
213
|
+
kind: "clock-synchronized",
|
|
214
|
+
clockAt,
|
|
215
|
+
phoneUtcOffsetMinutes: -clockAt.getTimezoneOffset()
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
queueHistoryIndex = () => {
|
|
219
|
+
this.phase = "history-index";
|
|
220
|
+
return [this.queue([0x10])];
|
|
221
|
+
};
|
|
222
|
+
handleHistoryIndex = response => {
|
|
223
|
+
if (response.length < 7) {
|
|
224
|
+
this.params.onError(new Error("Trasense S9 history index was incomplete."));
|
|
225
|
+
this.finish();
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
const todaySlot = response[1] ?? 0;
|
|
229
|
+
const count = response[2] ?? 0;
|
|
230
|
+
if (count > HISTORY_SLOTS || todaySlot >= Math.max(count, 1)) {
|
|
231
|
+
this.params.onError(new Error("Trasense S9 history index was invalid."));
|
|
232
|
+
this.finish();
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
this.historyCount = count;
|
|
236
|
+
this.historySlot = 0;
|
|
237
|
+
this.historyHourIndex = 0;
|
|
238
|
+
if (count === 0 || !this.firmwareBuildDate) {
|
|
239
|
+
return this.queueHeartRate();
|
|
240
|
+
}
|
|
241
|
+
return this.queueSteps();
|
|
242
|
+
};
|
|
243
|
+
queueSteps = () => {
|
|
244
|
+
this.phase = "steps";
|
|
245
|
+
return [this.queue([0x13, this.historySlot, HISTORY_HOURS[this.historyHourIndex] ?? 0])];
|
|
246
|
+
};
|
|
247
|
+
handleSteps = response => {
|
|
248
|
+
const date = dateFromReply(response);
|
|
249
|
+
const hour = response[5] ?? -1;
|
|
250
|
+
const expectedHour = HISTORY_HOURS[this.historyHourIndex];
|
|
251
|
+
if (response.length < 18 || !date || hour !== expectedHour) {
|
|
252
|
+
this.params.onError(new Error("Trasense S9 steps reply was invalid."));
|
|
253
|
+
this.finish();
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
if (this.firmwareBuildDate && !isBefore(date, this.firmwareBuildDate)) {
|
|
257
|
+
for (let index = 0; index < 6; index += 1) {
|
|
258
|
+
const high = response[6 + index * 2] ?? 0;
|
|
259
|
+
const low = response[7 + index * 2] ?? 0;
|
|
260
|
+
const stepCount = high * 256 + low;
|
|
261
|
+
if (stepCount === 0xffff) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
const start = dateAtHour(date, hour + index, "local");
|
|
265
|
+
this.params.onResult({
|
|
266
|
+
caseType: _caseType.CaseType.RESULT,
|
|
267
|
+
measurementTypeKey: _core.MeasurementTypeKey.stepCount,
|
|
268
|
+
stepCount,
|
|
269
|
+
start,
|
|
270
|
+
end: new Date(start.getTime() + 60 * 60 * 1000)
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return true;
|
|
275
|
+
};
|
|
276
|
+
queueNextStepsOrHeartRate = () => {
|
|
277
|
+
this.historyHourIndex += 1;
|
|
278
|
+
if (this.historyHourIndex >= HISTORY_HOURS.length) {
|
|
279
|
+
this.historyHourIndex = 0;
|
|
280
|
+
this.historySlot += 1;
|
|
281
|
+
}
|
|
282
|
+
if (this.historySlot < this.historyCount) {
|
|
283
|
+
return this.queueSteps();
|
|
284
|
+
}
|
|
285
|
+
return this.queueHeartRate();
|
|
286
|
+
};
|
|
287
|
+
queueHeartRate = () => {
|
|
288
|
+
this.phase = "heart-rate";
|
|
289
|
+
this.heartRatePolls = 0;
|
|
290
|
+
return [this.queue([0x56, 0x02])];
|
|
291
|
+
};
|
|
292
|
+
handleHeartRate = response => {
|
|
293
|
+
const heartRate = response[2] ?? 0;
|
|
294
|
+
if (heartRate >= 40 && heartRate <= 200) {
|
|
295
|
+
const recordedAt = this.params.clockSync?.now?.() ?? new Date();
|
|
296
|
+
this.params.onResult({
|
|
297
|
+
caseType: _caseType.CaseType.RESULT,
|
|
298
|
+
measurementTypeKey: _core.MeasurementTypeKey.heartRate,
|
|
299
|
+
heartRate,
|
|
300
|
+
start: recordedAt,
|
|
301
|
+
end: recordedAt
|
|
302
|
+
});
|
|
303
|
+
return this.queueBattery();
|
|
304
|
+
}
|
|
305
|
+
this.heartRatePolls += 1;
|
|
306
|
+
if (this.heartRatePolls < MAX_HEART_RATE_POLLS) {
|
|
307
|
+
return [this.queue([0x56, 0x02], HEART_RATE_POLL_INTERVAL_MS)];
|
|
308
|
+
}
|
|
309
|
+
return this.queueBattery();
|
|
310
|
+
};
|
|
311
|
+
queueBattery = () => {
|
|
312
|
+
this.phase = "battery";
|
|
313
|
+
return [this.queue([0x30])];
|
|
314
|
+
};
|
|
315
|
+
handleBattery = response => {
|
|
316
|
+
const level = response[1] ?? -1;
|
|
317
|
+
if (level < 0 || level > 5) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
this.params.onConnectionEvent({
|
|
321
|
+
kind: "battery",
|
|
322
|
+
batteryLevel: level === 0 ? 5 : level * 20
|
|
323
|
+
});
|
|
324
|
+
};
|
|
325
|
+
queue = (request, delayBeforeWriteMs, clockAt) => {
|
|
326
|
+
this.pendingCommand = command(this.params.write, request, delayBeforeWriteMs);
|
|
327
|
+
this.retries = 0;
|
|
328
|
+
if (clockAt) {
|
|
329
|
+
this.clockAt = clockAt;
|
|
330
|
+
}
|
|
331
|
+
return this.pendingCommand;
|
|
332
|
+
};
|
|
333
|
+
finish = () => {
|
|
334
|
+
this.phase = "done";
|
|
335
|
+
this.pendingCommand = undefined;
|
|
336
|
+
this.params.onComplete();
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
exports.S9CommandSequencer = S9CommandSequencer;
|
|
340
|
+
//# sourceMappingURL=s9.command-sequencer.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/trasense/s9.command-sequencer.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_caseType","_clockSync","_hexToByte","TRASENSE_S9_SERVICE","exports","TRASENSE_S9_WRITE","TRASENSE_S9_NOTIFY","RESPONSE","identity","address","clock","historyIndex","steps","heartRate","battery","HISTORY_HOURS","HISTORY_SLOTS","RESPONSE_TIMEOUT_MS","MAX_RESPONSE_RETRIES","MAX_HEART_RATE_POLLS","HEART_RATE_POLL_INTERVAL_MS","byte","value","toString","padStart","values","frame","map","hexToByte","command","write","request","delayBeforeWriteMs","Array","length","fill","undefined","decodeFirmware","slice","filter","String","fromCharCode","join","trim","buildDateFromFirmware","firmware","match","exec","date","year","Number","month","day","isValidDate","Date","setFullYear","isInteger","getFullYear","getMonth","getDate","dateFromReply","isBefore","left","right","dateAtHour","hour","timezone","result","setUTCFullYear","setUTCHours","setHours","isResponseFor","phase","response","S9CommandSequencer","retries","historyCount","historySlot","historyHourIndex","heartRatePolls","constructor","params","initialCommands","queue","isHistoryTransfer","commandTimeoutMs","commandProgress","onCommandTimeout","pendingCommand","commands","terminal","nextCommand","handleIdentity","handleAddress","reportClockWrite","queueHistoryIndex","handleHistoryIndex","handleSteps","queueNextStepsOrHeartRate","handleHeartRate","handleBattery","finish","test","onError","Error","firmwareBuildDate","addressBytes","reverse","every","hardwareAddress","toUpperCase","onIdentity","onConnectionEvent","kind","queueClockOrHistoryIndex","options","clockSync","enabled","now","parts","getClockParts","Math","floor","hours","minutes","seconds","clockAt","phoneUtcOffsetMinutes","getTimezoneOffset","todaySlot","count","max","queueHeartRate","queueSteps","expectedHour","index","high","low","stepCount","start","onResult","caseType","CaseType","RESULT","measurementTypeKey","MeasurementTypeKey","end","getTime","recordedAt","queueBattery","level","batteryLevel","onComplete"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/trasense/s9.command-sequencer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TrasenseS9Device = void 0;
|
|
7
|
+
var _core = require("@ovok/core");
|
|
8
|
+
var _caseType = require("../../../types/case-type.js");
|
|
9
|
+
var _btManagedDevice = require("../bt-managed-device.js");
|
|
10
|
+
var _s9FrameReader = require("./s9-frame-reader.js");
|
|
11
|
+
var _s9CommandSequencer = require("./s9.command-sequencer.js");
|
|
12
|
+
const acceptProtocolFrames = {
|
|
13
|
+
caseValuePosition: [],
|
|
14
|
+
cases: [{
|
|
15
|
+
caseValue: "",
|
|
16
|
+
caseType: _caseType.CaseType.OTHER,
|
|
17
|
+
parseDefinitions: [],
|
|
18
|
+
description: "SH09 protocol frame handled by its command sequencer"
|
|
19
|
+
}]
|
|
20
|
+
};
|
|
21
|
+
const s9Services = [{
|
|
22
|
+
uuid: _s9CommandSequencer.TRASENSE_S9_SERVICE,
|
|
23
|
+
writeUuid: {
|
|
24
|
+
uuid: _s9CommandSequencer.TRASENSE_S9_SERVICE,
|
|
25
|
+
mainCommandUuid: _s9CommandSequencer.TRASENSE_S9_WRITE
|
|
26
|
+
},
|
|
27
|
+
monitorUuids: [{
|
|
28
|
+
uuid: _s9CommandSequencer.TRASENSE_S9_NOTIFY,
|
|
29
|
+
parsingModel: acceptProtocolFrames
|
|
30
|
+
}]
|
|
31
|
+
}];
|
|
32
|
+
const S9_SUPPORTED_MEASUREMENTS = [_core.MeasurementTypeKey.stepCount, _core.MeasurementTypeKey.heartRate];
|
|
33
|
+
|
|
34
|
+
/** Trasense SH09. Its address and advertisement data are sensitive and never logged. */
|
|
35
|
+
class TrasenseS9Device extends _btManagedDevice.BTManagedDevice {
|
|
36
|
+
mainServices = s9Services;
|
|
37
|
+
stuckDataTimeout = 120_000;
|
|
38
|
+
onStreamStart = undefined;
|
|
39
|
+
frameReader = new _s9FrameReader.S9FrameReader();
|
|
40
|
+
constructor(device, params) {
|
|
41
|
+
super(device, params);
|
|
42
|
+
|
|
43
|
+
// Manufacturer data contains device health information; do not expose it in callbacks.
|
|
44
|
+
this.deviceData.manufacturerData = "";
|
|
45
|
+
this.createCommandSequencer = () => new _s9CommandSequencer.S9CommandSequencer({
|
|
46
|
+
clockSync: params.clockSync,
|
|
47
|
+
write: {
|
|
48
|
+
serviceUuid: _s9CommandSequencer.TRASENSE_S9_SERVICE,
|
|
49
|
+
characteristicUuid: _s9CommandSequencer.TRASENSE_S9_WRITE
|
|
50
|
+
},
|
|
51
|
+
onResult: result => this.onResult?.(result),
|
|
52
|
+
onConnectionEvent: event => this.onConnectionEvent?.({
|
|
53
|
+
deviceData: this.deviceData,
|
|
54
|
+
...event
|
|
55
|
+
}),
|
|
56
|
+
onIdentity: (_firmware, hardwareAddress) => {
|
|
57
|
+
this.deviceData.model = "SH09";
|
|
58
|
+
this.deviceData.hardwareAddress = hardwareAddress;
|
|
59
|
+
},
|
|
60
|
+
onError: error => this.onError?.(error),
|
|
61
|
+
onComplete: () => {
|
|
62
|
+
setTimeout(() => void this.disconnect(), 0);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
getSupportedMeasurementTypeKeys() {
|
|
67
|
+
return [...S9_SUPPORTED_MEASUREMENTS];
|
|
68
|
+
}
|
|
69
|
+
handleSuccessResult() {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.TrasenseS9Device = TrasenseS9Device;
|
|
74
|
+
//# sourceMappingURL=s9.device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_caseType","_btManagedDevice","_s9FrameReader","_s9CommandSequencer","acceptProtocolFrames","caseValuePosition","cases","caseValue","caseType","CaseType","OTHER","parseDefinitions","description","s9Services","uuid","TRASENSE_S9_SERVICE","writeUuid","mainCommandUuid","TRASENSE_S9_WRITE","monitorUuids","TRASENSE_S9_NOTIFY","parsingModel","S9_SUPPORTED_MEASUREMENTS","MeasurementTypeKey","stepCount","heartRate","TrasenseS9Device","BTManagedDevice","mainServices","stuckDataTimeout","onStreamStart","undefined","frameReader","S9FrameReader","constructor","device","params","deviceData","manufacturerData","createCommandSequencer","S9CommandSequencer","clockSync","write","serviceUuid","characteristicUuid","onResult","result","onConnectionEvent","event","onIdentity","_firmware","hardwareAddress","model","onError","error","onComplete","setTimeout","disconnect","getSupportedMeasurementTypeKeys","handleSuccessResult","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/trasense/s9.device.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,gBAAA,GAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAOA,MAAMK,oBAAoB,GAAG;EAC3BC,iBAAiB,EAAE,EAAE;EACrBC,KAAK,EAAE,CACL;IACEC,SAAS,EAAE,EAAE;IACbC,QAAQ,EAAEC,kBAAQ,CAACC,KAAK;IACxBC,gBAAgB,EAAE,EAAE;IACpBC,WAAW,EAAE;EACf,CAAC;AAEL,CAAC;AAED,MAAMC,UAAsB,GAAG,CAC7B;EACEC,IAAI,EAAEC,uCAAmB;EACzBC,SAAS,EAAE;IACTF,IAAI,EAAEC,uCAAmB;IACzBE,eAAe,EAAEC;EACnB,CAAC;EACDC,YAAY,EAAE,CACZ;IAAEL,IAAI,EAAEM,sCAAkB;IAAEC,YAAY,EAAEjB;EAAqB,CAAC;AAEpE,CAAC,CACF;AAED,MAAMkB,yBAAyB,GAAG,CAChCC,wBAAkB,CAACC,SAAS,EAC5BD,wBAAkB,CAACE,SAAS,CAC7B;;AAED;AACO,MAAMC,gBAAgB,SAASC,gCAAe,CAAgC;EACzEC,YAAY,GAAGf,UAAU;EACzBgB,gBAAgB,GAAG,OAAO;EAC1BC,aAAa,GAAGC,SAAS;EACzBC,WAAW,GAAG,IAAIC,4BAAa,CAAC,CAAC;EAEpCC,WAAWA,CAChBC,MAAc,EACdC,MAAyD,EACzD;IACA,KAAK,CAACD,MAAM,EAAEC,MAAM,CAAC;;IAErB;IACA,IAAI,CAACC,UAAU,CAACC,gBAAgB,GAAG,EAAE;IAErC,IAAI,CAACC,sBAAsB,GAAG,MAC5B,IAAIC,sCAAkB,CAAC;MACrBC,SAAS,EAAEL,MAAM,CAACK,SAAS;MAC3BC,KAAK,EAAE;QACLC,WAAW,EAAE5B,uCAAmB;QAChC6B,kBAAkB,EAAE1B;MACtB,CAAC;MACD2B,QAAQ,EAAGC,MAAM,IAAK,IAAI,CAACD,QAAQ,GAAGC,MAAM,CAAC;MAC7CC,iBAAiB,EAAGC,KAAK,IACvB,IAAI,CAACD,iBAAiB,GAAG;QAAEV,UAAU,EAAE,IAAI,CAACA,UAAU;QAAE,GAAGW;MAAM,CAAC,CAAC;MACrEC,UAAU,EAAEA,CAACC,SAAS,EAAEC,eAAe,KAAK;QAC1C,IAAI,CAACd,UAAU,CAACe,KAAK,GAAG,MAAM;QAC9B,IAAI,CAACf,UAAU,CAACc,eAAe,GAAGA,eAAe;MACnD,CAAC;MACDE,OAAO,EAAGC,KAAK,IAAK,IAAI,CAACD,OAAO,GAAGC,KAAK,CAAC;MACzCC,UAAU,EAAEA,CAAA,KAAM;QAChBC,UAAU,CAAC,MAAM,KAAK,IAAI,CAACC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;MAC7C;IACF,CAAC,CAAC;EACN;EAEmBC,+BAA+BA,CAAA,EAAyB;IACzE,OAAO,CAAC,GAAGpC,yBAAyB,CAAC;EACvC;EAEUqC,mBAAmBA,CAAA,EAAmB;IAC9C;EACF;AACF;AAACC,OAAA,CAAAlC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -44,6 +44,7 @@ const clockSyncCapabilityForDevice = deviceName => {
|
|
|
44
44
|
return "unsupported";
|
|
45
45
|
case _integratedDevices.IntegratedDevices.GENIAL_T31:
|
|
46
46
|
case _integratedDevices.IntegratedDevices.ZH_SG_A606:
|
|
47
|
+
case _integratedDevices.IntegratedDevices.TRASENSE_S9:
|
|
47
48
|
return "supported";
|
|
48
49
|
default:
|
|
49
50
|
return "unknown";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_integratedDevices","require","isClockSyncEnabled","options","enabled","exports","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","IntegratedDevices","BC01","MYSENSE","VEROVAL_ECG","AOJ20A","BP2","VIATOM_R20","VIATOM_R200","VIATOM_BBSM_BS1","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAFA;;AAoBO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAACC,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAEtB,MAAMI,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AAAAxB,OAAA,CAAAC,aAAA,GAAAA,aAAA;AACO,MAAMwB,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAKC,oCAAiB,CAACC,IAAI;IAC3B,KAAKD,oCAAiB,CAACE,OAAO;IAC9B,KAAKF,oCAAiB,CAACG,WAAW;IAClC,KAAKH,oCAAiB,CAACI,MAAM;IAC7B,KAAKJ,oCAAiB,CAACK,GAAG;IAC1B,KAAKL,oCAAiB,CAACM,UAAU;IACjC,KAAKN,oCAAiB,CAACO,WAAW;IAClC,KAAKP,oCAAiB,CAACQ,eAAe;MACpC,OAAO,WAAW;IACpB,KAAKR,oCAAiB,CAACS,gBAAgB;MACrC,OAAO,aAAa;IACtB,KAAKT,oCAAiB,CAACU,UAAU;IACjC,KAAKV,oCAAiB,CAACW,UAAU;
|
|
1
|
+
{"version":3,"names":["_integratedDevices","require","isClockSyncEnabled","options","enabled","exports","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","IntegratedDevices","BC01","MYSENSE","VEROVAL_ECG","AOJ20A","BP2","VIATOM_R20","VIATOM_R200","VIATOM_BBSM_BS1","VEROVAL_ACTIVITY","GENIAL_T31","ZH_SG_A606","TRASENSE_S9"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAFA;;AAoBO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAACC,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAEtB,MAAMI,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AAAAxB,OAAA,CAAAC,aAAA,GAAAA,aAAA;AACO,MAAMwB,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAKC,oCAAiB,CAACC,IAAI;IAC3B,KAAKD,oCAAiB,CAACE,OAAO;IAC9B,KAAKF,oCAAiB,CAACG,WAAW;IAClC,KAAKH,oCAAiB,CAACI,MAAM;IAC7B,KAAKJ,oCAAiB,CAACK,GAAG;IAC1B,KAAKL,oCAAiB,CAACM,UAAU;IACjC,KAAKN,oCAAiB,CAACO,WAAW;IAClC,KAAKP,oCAAiB,CAACQ,eAAe;MACpC,OAAO,WAAW;IACpB,KAAKR,oCAAiB,CAACS,gBAAgB;MACrC,OAAO,aAAa;IACtB,KAAKT,oCAAiB,CAACU,UAAU;IACjC,KAAKV,oCAAiB,CAACW,UAAU;IACjC,KAAKX,oCAAiB,CAACY,WAAW;MAChC,OAAO,WAAW;IACpB;MACE,OAAO,SAAS;EACpB;AACF,CAAC;AAACvC,OAAA,CAAAyB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -61,6 +61,7 @@ let IntegratedDevices = exports.IntegratedDevices = /*#__PURE__*/function (Integ
|
|
|
61
61
|
IntegratedDevices["PF10AW_ME"] = "PF10AW-ME";
|
|
62
62
|
IntegratedDevices["SA10AW_PU"] = "SA10AW-PU";
|
|
63
63
|
IntegratedDevices["PF10BW_VE"] = "PF10BW-VE";
|
|
64
|
+
IntegratedDevices["TRASENSE_S9"] = "Trasense S9";
|
|
64
65
|
return IntegratedDevices;
|
|
65
66
|
}({});
|
|
66
67
|
//# sourceMappingURL=integrated-devices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["IntegratedDevices","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;;;;;IAAYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["IntegratedDevices","exports"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/integrated-devices.ts"],"mappings":";;;;;;IAAYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA","ignoreList":[]}
|
|
@@ -4,15 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
|
+
HEALTH_DATA_CATALOG: true,
|
|
8
|
+
getHealthDataCoding: true,
|
|
7
9
|
HealthAuthorizationContext: true,
|
|
8
10
|
useHealthAuthorization: true
|
|
9
11
|
};
|
|
12
|
+
Object.defineProperty(exports, "HEALTH_DATA_CATALOG", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _healthDataCatalog.HEALTH_DATA_CATALOG;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
10
18
|
Object.defineProperty(exports, "HealthAuthorizationContext", {
|
|
11
19
|
enumerable: true,
|
|
12
20
|
get: function () {
|
|
13
21
|
return _healthAuthorizationContext.HealthAuthorizationContext;
|
|
14
22
|
}
|
|
15
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "getHealthDataCoding", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _healthDataCatalog.getHealthDataCoding;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
16
30
|
Object.defineProperty(exports, "useHealthAuthorization", {
|
|
17
31
|
enumerable: true,
|
|
18
32
|
get: function () {
|
|
@@ -127,5 +141,6 @@ Object.keys(_useHealthImport).forEach(function (key) {
|
|
|
127
141
|
}
|
|
128
142
|
});
|
|
129
143
|
});
|
|
144
|
+
var _healthDataCatalog = require("./utils/health-data-catalog.js");
|
|
130
145
|
var _healthAuthorizationContext = require("./contexts/health-authorization-context.js");
|
|
131
146
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_dataSync","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps","_healthAuthorizationStatus","_healthSyncKeys","_healthSyncBatchError","_useHealthImport","_healthAuthorizationContext"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_dataSync","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps","_healthAuthorizationStatus","_healthSyncKeys","_healthSyncBatchError","_useHealthImport","_healthDataCatalog","_healthAuthorizationContext"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -75,7 +75,7 @@ class BaseHealthSyncService {
|
|
|
75
75
|
if (!data) {
|
|
76
76
|
continue;
|
|
77
77
|
}
|
|
78
|
-
const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
78
|
+
const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, measurementTypeKey, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
79
79
|
const totalCount = await this.dataProcessor.getTotalRecordsCountForType(measurementTypeKey, data, latestValidStartDate);
|
|
80
80
|
this.progressManager.setTotalObservations(measurementTypeKey, totalCount);
|
|
81
81
|
}
|
|
@@ -96,12 +96,13 @@ class BaseHealthSyncService {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
async syncDataByType(measurementTypeKey, data) {
|
|
99
|
-
const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
99
|
+
const latestValidStartDate = this.dataProcessor.getLatestValidStartDate(this.stateManager.latestObservationDates, data, measurementTypeKey, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
100
100
|
let hasMore = true;
|
|
101
101
|
while (hasMore && !this.stateManager.shouldStopSync) {
|
|
102
102
|
const {
|
|
103
103
|
observationBodies,
|
|
104
104
|
observationSyncIds,
|
|
105
|
+
deletedObservationSyncIds,
|
|
105
106
|
hasMore: currentHasMore,
|
|
106
107
|
anchors
|
|
107
108
|
} = await this.dataProcessor.getObservationBodiesForType(measurementTypeKey, data, latestValidStartDate);
|
|
@@ -110,25 +111,30 @@ class BaseHealthSyncService {
|
|
|
110
111
|
break;
|
|
111
112
|
}
|
|
112
113
|
const entries = this.dataProcessor.generateObservationEntries(observationBodies, observationSyncIds, (0, _healthSyncKeys.getHealthDataMode)(measurementTypeKey, data.mode));
|
|
113
|
-
if (entries.length !== 0 && !this.stateManager.shouldStopSync) {
|
|
114
|
+
if ((entries.length !== 0 || deletedObservationSyncIds.length !== 0) && !this.stateManager.shouldStopSync) {
|
|
114
115
|
try {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
if (entries.length !== 0) {
|
|
117
|
+
const startedAt = Date.now();
|
|
118
|
+
const result = await (0, _retrySave.withSyncRetries)(() => this.storageManager.saveObservations(entries), () => this.stateManager.shouldStopSync);
|
|
119
|
+
if (this.stateManager.shouldStopSync) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const responseEntries = result.entry ?? [];
|
|
123
|
+
const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
|
|
124
|
+
const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
|
|
125
|
+
(0, _telemetry.recordOvokMetric)("ovok.health.samples.imported", createdCount, {
|
|
126
|
+
provider: this.getProviderName(),
|
|
127
|
+
measurementTypeKey
|
|
128
|
+
});
|
|
129
|
+
(0, _telemetry.recordOvokDuration)("ovok.measurement.save.duration", Date.now() - startedAt, {
|
|
130
|
+
provider: this.getProviderName()
|
|
131
|
+
});
|
|
132
|
+
this.stateManager.addResult(result);
|
|
133
|
+
this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
|
|
134
|
+
}
|
|
135
|
+
if (deletedObservationSyncIds.length !== 0) {
|
|
136
|
+
await this.storageManager.deleteObservations(deletedObservationSyncIds, this.patientId);
|
|
119
137
|
}
|
|
120
|
-
const responseEntries = result.entry ?? [];
|
|
121
|
-
const savedCount = responseEntries.length ? responseEntries.filter(entry => entry.response?.status.startsWith("2")).length : entries.length;
|
|
122
|
-
const createdCount = responseEntries.filter(entry => entry.response?.status.startsWith("201")).length;
|
|
123
|
-
(0, _telemetry.recordOvokMetric)("ovok.health.samples.imported", createdCount, {
|
|
124
|
-
provider: this.getProviderName(),
|
|
125
|
-
measurementTypeKey
|
|
126
|
-
});
|
|
127
|
-
(0, _telemetry.recordOvokDuration)("ovok.measurement.save.duration", Date.now() - startedAt, {
|
|
128
|
-
provider: this.getProviderName()
|
|
129
|
-
});
|
|
130
|
-
this.stateManager.addResult(result);
|
|
131
|
-
this.progressManager.incrementSyncedObservations(measurementTypeKey, savedCount, createdCount);
|
|
132
138
|
this.storageManager.saveAnchors(anchors);
|
|
133
139
|
} catch (error) {
|
|
134
140
|
if ((0, _retrySave.isSyncRetryCancelled)(error) || this.stateManager.shouldStopSync) {
|