@ovok/native 1.16.1-rc.3 → 1.16.1-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js +3 -1
- package/lib/commonjs/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
- package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js +9 -141
- package/lib/commonjs/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
- package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/commonjs/modules/bt-management/components/device-picker-sheet.js +160 -0
- package/lib/commonjs/modules/bt-management/components/device-picker-sheet.js.map +1 -0
- package/lib/commonjs/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js +2 -1
- package/lib/commonjs/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-measurements.js +1 -1
- package/lib/commonjs/modules/bt-management/hooks/use-measurements.js.map +1 -1
- package/lib/commonjs/modules/bt-management/index.js +12 -0
- package/lib/commonjs/modules/bt-management/index.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/bt-manager.js +50 -0
- package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js +3 -0
- package/lib/commonjs/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +4 -2
- 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 +97 -28
- package/lib/commonjs/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js +59 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-device-information.js +18 -37
- 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 +31 -3
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js +68 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js +70 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +14 -0
- package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +4 -7
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +106 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +41 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +77 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +49 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +89 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +35 -42
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +22 -24
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/record-cursor.js +70 -0
- package/lib/commonjs/modules/bt-management/services/record-cursor.js.map +1 -0
- package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js +8 -0
- package/lib/commonjs/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/glucose-record-details.js +2 -0
- package/lib/commonjs/modules/bt-management/types/glucose-record-details.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/bluetooth-permission-list.js +19 -0
- package/lib/commonjs/modules/bt-management/utils/bluetooth-permission-list.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/device-user.js +22 -0
- package/lib/commonjs/modules/bt-management/utils/device-user.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js +9 -0
- package/lib/commonjs/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/result-identity.js +26 -35
- package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/rr-interval.js +16 -0
- package/lib/commonjs/modules/bt-management/utils/rr-interval.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/temperature-type.js +15 -0
- package/lib/commonjs/modules/bt-management/utils/temperature-type.js.map +1 -0
- package/lib/commonjs/modules/bt-management/utils/wait.js +10 -0
- package/lib/commonjs/modules/bt-management/utils/wait.js.map +1 -0
- package/lib/commonjs/modules/next/background-sync/index.js +28 -0
- package/lib/commonjs/modules/next/background-sync/index.js.map +1 -0
- package/lib/commonjs/modules/next/background-sync/offline-measurement-background-sync.js +63 -0
- package/lib/commonjs/modules/next/background-sync/offline-measurement-background-sync.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/auto-connect.js +32 -0
- package/lib/commonjs/modules/next/bluetooth/auto-connect.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-errors.js +33 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-errors.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js +162 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-scanner.js +75 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-scanner.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/built-in-devices.js +34 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/built-in-devices.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js +67 -0
- package/lib/commonjs/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/connections.js +114 -0
- package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/daily-total-day.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/devices.js +41 -0
- package/lib/commonjs/modules/next/bluetooth/devices.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/driver.js +30 -20
- package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/errors.js +26 -0
- package/lib/commonjs/modules/next/bluetooth/errors.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/index.js +122 -11
- package/lib/commonjs/modules/next/bluetooth/index.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/link.js +0 -103
- package/lib/commonjs/modules/next/bluetooth/link.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/paired.js +50 -0
- package/lib/commonjs/modules/next/bluetooth/paired.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/permissions.js +2 -0
- package/lib/commonjs/modules/next/bluetooth/permissions.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react/bluetooth-device-picker.js +44 -0
- package/lib/commonjs/modules/next/bluetooth/react/bluetooth-device-picker.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react/context.js +54 -0
- package/lib/commonjs/modules/next/bluetooth/react/context.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react/hooks.js +86 -0
- package/lib/commonjs/modules/next/bluetooth/react/hooks.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/create-bluetooth-runtime.js +28 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/create-bluetooth-runtime.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/os-permissions.js +32 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/os-permissions.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js +43 -0
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/readings.js +93 -0
- package/lib/commonjs/modules/next/bluetooth/readings.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/result-policy.js +15 -2
- package/lib/commonjs/modules/next/bluetooth/result-policy.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/runtime.js +223 -0
- package/lib/commonjs/modules/next/bluetooth/runtime.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/scan-loop.js +82 -0
- package/lib/commonjs/modules/next/bluetooth/scan-loop.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/sig-profiles.js +46 -13
- package/lib/commonjs/modules/next/bluetooth/sig-profiles.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/sink.js +6 -0
- package/lib/commonjs/modules/next/bluetooth/sink.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/snapshot.js +6 -0
- package/lib/commonjs/modules/next/bluetooth/snapshot.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/stable-hash.js +42 -0
- package/lib/commonjs/modules/next/bluetooth/stable-hash.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/store.js +61 -0
- package/lib/commonjs/modules/next/bluetooth/store.js.map +1 -0
- package/lib/commonjs/modules/next/bluetooth/transport.js +6 -0
- package/lib/commonjs/modules/next/bluetooth/transport.js.map +1 -0
- package/lib/commonjs/modules/next/data-sync/index.js +17 -0
- package/lib/commonjs/modules/next/data-sync/index.js.map +1 -0
- package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js +3 -1
- package/lib/module/modules/bt-management/components/android-bluetooth-foreground-service.js.map +1 -1
- package/lib/module/modules/bt-management/components/bluetooth-device-picker.js +9 -141
- package/lib/module/modules/bt-management/components/bluetooth-device-picker.js.map +1 -1
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +1 -0
- package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
- package/lib/module/modules/bt-management/components/device-picker-sheet.js +154 -0
- package/lib/module/modules/bt-management/components/device-picker-sheet.js.map +1 -0
- package/lib/module/modules/bt-management/hooks/runtime-context.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js +4 -3
- package/lib/module/modules/bt-management/hooks/use-bluetooth-permission.js.map +1 -1
- package/lib/module/modules/bt-management/hooks/use-measurements.js +1 -1
- package/lib/module/modules/bt-management/hooks/use-measurements.js.map +1 -1
- package/lib/module/modules/bt-management/index.js +1 -0
- package/lib/module/modules/bt-management/index.js.map +1 -1
- package/lib/module/modules/bt-management/services/bt-manager.js +50 -0
- package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js +3 -0
- package/lib/module/modules/bt-management/services/custom/define-custom-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +4 -2
- 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 +97 -28
- package/lib/module/modules/bt-management/services/devices/bt-connection-handler.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-current-time.js +55 -0
- package/lib/module/modules/bt-management/services/devices/bt-current-time.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bt-device-information.js +18 -37
- 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 +33 -5
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js +65 -0
- package/lib/module/modules/bt-management/services/devices/bt-notification-readiness.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js +65 -0
- package/lib/module/modules/bt-management/services/devices/bt-pairing-retry.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +14 -0
- package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +1 -4
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js +99 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +38 -31
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js +35 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js +72 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js +40 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js +85 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js +25 -32
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +18 -20
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
- package/lib/module/modules/bt-management/services/record-cursor.js +66 -0
- package/lib/module/modules/bt-management/services/record-cursor.js.map +1 -0
- package/lib/module/modules/bt-management/testing/fake-ble-manager.js +8 -0
- package/lib/module/modules/bt-management/testing/fake-ble-manager.js.map +1 -1
- package/lib/module/modules/bt-management/types/custom-device-definition.js +4 -0
- package/lib/module/modules/bt-management/types/custom-device-definition.js.map +1 -1
- package/lib/module/modules/bt-management/types/glucose-record-details.js +2 -0
- package/lib/module/modules/bt-management/types/glucose-record-details.js.map +1 -0
- package/lib/module/modules/bt-management/utils/bluetooth-permission-list.js +14 -0
- package/lib/module/modules/bt-management/utils/bluetooth-permission-list.js.map +1 -0
- package/lib/module/modules/bt-management/utils/device-user.js +17 -0
- package/lib/module/modules/bt-management/utils/device-user.js.map +1 -0
- package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js +6 -0
- package/lib/module/modules/bt-management/utils/kpa-to-mmhg.js.map +1 -0
- package/lib/module/modules/bt-management/utils/result-identity.js +23 -33
- package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -1
- package/lib/module/modules/bt-management/utils/rr-interval.js +12 -0
- package/lib/module/modules/bt-management/utils/rr-interval.js.map +1 -0
- package/lib/module/modules/bt-management/utils/temperature-type.js +11 -0
- package/lib/module/modules/bt-management/utils/temperature-type.js.map +1 -0
- package/lib/module/modules/bt-management/utils/wait.js +5 -0
- package/lib/module/modules/bt-management/utils/wait.js.map +1 -0
- package/lib/module/modules/next/background-sync/index.js +12 -0
- package/lib/module/modules/next/background-sync/index.js.map +1 -0
- package/lib/module/modules/next/background-sync/offline-measurement-background-sync.js +55 -0
- package/lib/module/modules/next/background-sync/offline-measurement-background-sync.js.map +1 -0
- package/lib/module/modules/next/bluetooth/auto-connect.js +28 -0
- package/lib/module/modules/next/bluetooth/auto-connect.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-errors.js +28 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-errors.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js +159 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-scanner.js +69 -0
- package/lib/module/modules/next/bluetooth/ble-plx/ble-scanner.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/built-in-devices.js +31 -0
- package/lib/module/modules/next/bluetooth/ble-plx/built-in-devices.js.map +1 -0
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js +63 -0
- package/lib/module/modules/next/bluetooth/ble-plx/legacy-driver.js.map +1 -0
- package/lib/module/modules/next/bluetooth/connections.js +110 -0
- package/lib/module/modules/next/bluetooth/connections.js.map +1 -0
- package/lib/module/modules/next/bluetooth/daily-total-day.js.map +1 -0
- package/lib/module/modules/next/bluetooth/devices.js +37 -0
- package/lib/module/modules/next/bluetooth/devices.js.map +1 -0
- package/lib/module/modules/next/bluetooth/driver.js +29 -20
- package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/errors.js +21 -0
- package/lib/module/modules/next/bluetooth/errors.js.map +1 -0
- package/lib/module/modules/next/bluetooth/index.js +22 -4
- package/lib/module/modules/next/bluetooth/index.js.map +1 -1
- package/lib/module/modules/next/bluetooth/link.js +0 -101
- package/lib/module/modules/next/bluetooth/link.js.map +1 -1
- package/lib/module/modules/next/bluetooth/paired.js +46 -0
- package/lib/module/modules/next/bluetooth/paired.js.map +1 -0
- package/lib/module/modules/next/bluetooth/permissions.js +2 -0
- package/lib/module/modules/next/bluetooth/permissions.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react/bluetooth-device-picker.js +39 -0
- package/lib/module/modules/next/bluetooth/react/bluetooth-device-picker.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react/context.js +48 -0
- package/lib/module/modules/next/bluetooth/react/context.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react/hooks.js +76 -0
- package/lib/module/modules/next/bluetooth/react/hooks.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react-native/create-bluetooth-runtime.js +25 -0
- package/lib/module/modules/next/bluetooth/react-native/create-bluetooth-runtime.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react-native/os-permissions.js +28 -0
- package/lib/module/modules/next/bluetooth/react-native/os-permissions.js.map +1 -0
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js +39 -0
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -0
- package/lib/module/modules/next/bluetooth/readings.js +89 -0
- package/lib/module/modules/next/bluetooth/readings.js.map +1 -0
- package/lib/module/modules/next/bluetooth/result-policy.js +14 -2
- package/lib/module/modules/next/bluetooth/result-policy.js.map +1 -1
- package/lib/module/modules/next/bluetooth/runtime.js +220 -0
- package/lib/module/modules/next/bluetooth/runtime.js.map +1 -0
- package/lib/module/modules/next/bluetooth/scan-loop.js +78 -0
- package/lib/module/modules/next/bluetooth/scan-loop.js.map +1 -0
- package/lib/module/modules/next/bluetooth/sig-profiles.js +44 -11
- package/lib/module/modules/next/bluetooth/sig-profiles.js.map +1 -1
- package/lib/module/modules/next/bluetooth/sink.js +4 -0
- package/lib/module/modules/next/bluetooth/sink.js.map +1 -0
- package/lib/module/modules/next/bluetooth/snapshot.js +4 -0
- package/lib/module/modules/next/bluetooth/snapshot.js.map +1 -0
- package/lib/module/modules/next/bluetooth/stable-hash.js +37 -0
- package/lib/module/modules/next/bluetooth/stable-hash.js.map +1 -0
- package/lib/module/modules/next/bluetooth/store.js +57 -0
- package/lib/module/modules/next/bluetooth/store.js.map +1 -0
- package/lib/module/modules/next/bluetooth/transport.js +4 -0
- package/lib/module/modules/next/bluetooth/transport.js.map +1 -0
- package/lib/module/modules/next/data-sync/index.js +11 -0
- package/lib/module/modules/next/data-sync/index.js.map +1 -0
- package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
- 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/components/device-picker-sheet.d.ts +25 -0
- package/lib/typescript/commonjs/src/modules/bt-management/components/device-picker-sheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +1 -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 +20 -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/custom/define-custom-device.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -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 +14 -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-current-time.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -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 +11 -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/bt-notification-readiness.d.ts +15 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
- 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/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/create-device-params.d.ts +3 -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/custom-device-definition.d.ts +14 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-callback.d.ts +2 -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 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/bluetooth-permission-list.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/bluetooth-permission-list.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts +5 -4
- package/lib/typescript/commonjs/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/utils/wait.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/background-sync/index.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/next/background-sync/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/background-sync/offline-measurement-background-sync.d.ts +22 -0
- package/lib/typescript/commonjs/src/modules/next/background-sync/offline-measurement-background-sync.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/auto-connect.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/auto-connect.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts +4 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts +25 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/daily-total-day.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/devices.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/devices.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +27 -20
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts +17 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +34 -5
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts +14 -5
- package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/paired.d.ts +18 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/paired.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/permissions.d.ts +13 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/permissions.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts +35 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/context.d.ts +30 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/hooks.d.ts +47 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react/hooks.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/os-permissions.d.ts +5 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/os-permissions.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/readings.d.ts +21 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/readings.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts +9 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts +87 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/runtime.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/scan-loop.d.ts +23 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/scan-loop.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/sink.d.ts +20 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/sink.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +72 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts +6 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/store.d.ts +16 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/store.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/transport.d.ts +31 -0
- package/lib/typescript/commonjs/src/modules/next/bluetooth/transport.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/next/data-sync/index.d.ts +9 -0
- package/lib/typescript/commonjs/src/modules/next/data-sync/index.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/components/android-bluetooth-foreground-service.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/components/bluetooth-device-picker.d.ts.map +1 -1
- 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/components/device-picker-sheet.d.ts +25 -0
- package/lib/typescript/module/src/modules/bt-management/components/device-picker-sheet.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/runtime-context.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/use-bluetooth-permission.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/hooks/use-measurements.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/index.d.ts +1 -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 +20 -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/custom/define-custom-device.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/custom/define-custom-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +3 -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 +14 -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-current-time.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-current-time.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-device-information.d.ts +2 -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 +11 -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/bt-notification-readiness.d.ts +15 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-notification-readiness.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-pairing-retry.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +2 -0
- 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/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.decorators.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts +5 -2
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts +16 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts +21 -0
- package/lib/typescript/module/src/modules/bt-management/services/record-cursor.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/testing/fake-ble-manager.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +6 -2
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/create-device-params.d.ts +3 -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/custom-device-definition.d.ts +14 -1
- package/lib/typescript/module/src/modules/bt-management/types/custom-device-definition.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts +33 -0
- package/lib/typescript/module/src/modules/bt-management/types/glucose-record-details.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/types/result-callback.d.ts +2 -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 -0
- package/lib/typescript/module/src/modules/bt-management/types/result-policy.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/bluetooth-permission-list.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-management/utils/bluetooth-permission-list.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts +6 -0
- package/lib/typescript/module/src/modules/bt-management/utils/device-user.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-management/utils/kpa-to-mmhg.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts +5 -4
- package/lib/typescript/module/src/modules/bt-management/utils/result-identity.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts +4 -0
- package/lib/typescript/module/src/modules/bt-management/utils/rr-interval.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts +7 -0
- package/lib/typescript/module/src/modules/bt-management/utils/temperature-type.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/utils/wait.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/background-sync/index.d.ts +10 -0
- package/lib/typescript/module/src/modules/next/background-sync/index.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/background-sync/offline-measurement-background-sync.d.ts +22 -0
- package/lib/typescript/module/src/modules/next/background-sync/offline-measurement-background-sync.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/auto-connect.d.ts +10 -0
- package/lib/typescript/module/src/modules/next/bluetooth/auto-connect.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts +4 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-errors.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts +6 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts +10 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-scanner.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts +6 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/built-in-devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts +8 -0
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/legacy-driver.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts +25 -0
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/daily-total-day.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/devices.d.ts +30 -0
- package/lib/typescript/module/src/modules/next/bluetooth/devices.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +27 -20
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts +17 -0
- package/lib/typescript/module/src/modules/next/bluetooth/errors.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +34 -5
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts +14 -5
- package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/paired.d.ts +18 -0
- package/lib/typescript/module/src/modules/next/bluetooth/paired.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/permissions.d.ts +13 -0
- package/lib/typescript/module/src/modules/next/bluetooth/permissions.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts +35 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/bluetooth-device-picker.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/context.d.ts +30 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/context.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/hooks.d.ts +47 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react/hooks.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts +21 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/create-bluetooth-runtime.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/os-permissions.d.ts +5 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/os-permissions.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts +6 -0
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/readings.d.ts +21 -0
- package/lib/typescript/module/src/modules/next/bluetooth/readings.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts +9 -1
- package/lib/typescript/module/src/modules/next/bluetooth/result-policy.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts +87 -0
- package/lib/typescript/module/src/modules/next/bluetooth/runtime.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/scan-loop.d.ts +23 -0
- package/lib/typescript/module/src/modules/next/bluetooth/scan-loop.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/sig-profiles.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/sink.d.ts +20 -0
- package/lib/typescript/module/src/modules/next/bluetooth/sink.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +72 -0
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts +6 -0
- package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/store.d.ts +16 -0
- package/lib/typescript/module/src/modules/next/bluetooth/store.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/bluetooth/transport.d.ts +31 -0
- package/lib/typescript/module/src/modules/next/bluetooth/transport.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/next/data-sync/index.d.ts +9 -0
- package/lib/typescript/module/src/modules/next/data-sync/index.d.ts.map +1 -0
- package/package.json +12 -2
- package/lib/commonjs/modules/bt-management/utils/daily-total-day.js.map +0 -1
- package/lib/commonjs/modules/next/bluetooth/drivers.js +0 -20
- package/lib/commonjs/modules/next/bluetooth/drivers.js.map +0 -1
- package/lib/commonjs/modules/next/bluetooth/legacy-driver.js +0 -55
- package/lib/commonjs/modules/next/bluetooth/legacy-driver.js.map +0 -1
- package/lib/module/modules/bt-management/utils/daily-total-day.js.map +0 -1
- package/lib/module/modules/next/bluetooth/drivers.js +0 -17
- package/lib/module/modules/next/bluetooth/drivers.js.map +0 -1
- package/lib/module/modules/next/bluetooth/legacy-driver.js +0 -51
- package/lib/module/modules/next/bluetooth/legacy-driver.js.map +0 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/daily-total-day.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/drivers.d.ts +0 -7
- package/lib/typescript/commonjs/src/modules/next/bluetooth/drivers.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/legacy-driver.d.ts +0 -8
- package/lib/typescript/commonjs/src/modules/next/bluetooth/legacy-driver.d.ts.map +0 -1
- package/lib/typescript/module/src/modules/bt-management/utils/daily-total-day.d.ts.map +0 -1
- package/lib/typescript/module/src/modules/next/bluetooth/drivers.d.ts +0 -7
- package/lib/typescript/module/src/modules/next/bluetooth/drivers.d.ts.map +0 -1
- package/lib/typescript/module/src/modules/next/bluetooth/legacy-driver.d.ts +0 -8
- package/lib/typescript/module/src/modules/next/bluetooth/legacy-driver.d.ts.map +0 -1
- /package/lib/commonjs/modules/{bt-management/utils → next/bluetooth}/daily-total-day.js +0 -0
- /package/lib/module/modules/{bt-management/utils → next/bluetooth}/daily-total-day.js +0 -0
- /package/lib/typescript/commonjs/src/modules/{bt-management/utils → next/bluetooth}/daily-total-day.d.ts +0 -0
- /package/lib/typescript/module/src/modules/{bt-management/utils → next/bluetooth}/daily-total-day.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_next","require","_bytesToHex","_standardGattGlucose","_standardGattProfile","pulseAfterMeanPressure","fields","littleEndian","minLengthBytes","pulseAfterTimestamp","
|
|
1
|
+
{"version":3,"names":["_next","require","_bytesToHex","_kpaToMmhg","_standardGattDecorators","_standardGattGlucose","_standardGattProfile","BLOOD_PRESSURE_KPA","BLOOD_PRESSURE_TIMESTAMP","BLOOD_PRESSURE_PULSE","BLOOD_PRESSURE_FLAGS","Array","from","length","_","flags","pulseAfterMeanPressure","fields","littleEndian","minLengthBytes","pulseAfterTimestamp","pressureInKpa","name","byteIndexes","scale","KPA_TO_MMHG","decimals","pressuresInKpa","standardBloodPressureDevice","params","declareProfile","service","characteristic","measurementTypeKey","MeasurementTypeKey","bloodPressure","decorateReading","decorateBloodPressureReading","selectors","map","byteToHex","fieldsBySelector","Object","fromEntries","filter","optionalFields","exports","standardThermometerDevice","temperature","decorateThermometerReading","offset","WEIGHT_KG_PER_COUNT","standardWeightScaleDevice","bodyWeight","decorateWeightReading","selector","standardPulseOximeterDevice","bloodOxygenPulseRate","decoratePulseOximeterReading","HEART_RATE_FLAGS","UINT16_HEART_RATE_FLAGS","standardHeartRateDevice","heartRate","decorateHeartRateReading","encoding","unit","byteOrder"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.withDefinedMetadata = exports.dateTimeAt = exports.byteAt = exports.DATE_TIME_BYTES = void 0;
|
|
7
|
+
/** The Bluetooth SIG Date Time characteristic is seven bytes long. */
|
|
8
|
+
const DATE_TIME_BYTES = exports.DATE_TIME_BYTES = 7;
|
|
9
|
+
|
|
10
|
+
/** The byte at `index` of a record that starts at `offset`; undefined when the frame ends first. */
|
|
11
|
+
const byteAt = (frame, index, offset) => {
|
|
12
|
+
const value = Number.parseInt(frame[index + offset] ?? "", 16);
|
|
13
|
+
return Number.isInteger(value) && value >= 0 && value <= 0xff ? value : undefined;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/** Reads a SIG Date Time at `index` as a phone-local date; undefined for missing or impossible fields. */
|
|
17
|
+
exports.byteAt = byteAt;
|
|
18
|
+
const dateTimeAt = (frame, index, offset = 0) => {
|
|
19
|
+
const yearLow = byteAt(frame, index, offset);
|
|
20
|
+
const yearHigh = byteAt(frame, index + 1, offset);
|
|
21
|
+
const month = byteAt(frame, index + 2, offset);
|
|
22
|
+
const day = byteAt(frame, index + 3, offset);
|
|
23
|
+
const hour = byteAt(frame, index + 4, offset);
|
|
24
|
+
const minute = byteAt(frame, index + 5, offset);
|
|
25
|
+
const second = byteAt(frame, index + 6, offset);
|
|
26
|
+
if (yearLow === undefined || yearHigh === undefined || month === undefined || day === undefined || hour === undefined || minute === undefined || second === undefined) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
const year = yearLow | yearHigh << 8;
|
|
30
|
+
const date = new Date(year, month - 1, day, hour, minute, second);
|
|
31
|
+
return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day && date.getHours() === hour && date.getMinutes() === minute && date.getSeconds() === second ? date : undefined;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** `reading` plus each of `metadata` that has a value. */
|
|
35
|
+
exports.dateTimeAt = dateTimeAt;
|
|
36
|
+
const withDefinedMetadata = (reading, metadata) => ({
|
|
37
|
+
...reading,
|
|
38
|
+
...Object.fromEntries(Object.entries(metadata).filter(([, value]) => value !== undefined))
|
|
39
|
+
});
|
|
40
|
+
exports.withDefinedMetadata = withDefinedMetadata;
|
|
41
|
+
//# sourceMappingURL=standard-gatt.frame.js.map
|
package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DATE_TIME_BYTES","exports","byteAt","frame","index","offset","value","Number","parseInt","isInteger","undefined","dateTimeAt","yearLow","yearHigh","month","day","hour","minute","second","year","date","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","withDefinedMetadata","reading","metadata","Object","fromEntries","entries","filter"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.frame.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,CAAC;;AAEzB;AACA,MAAME,MAAM,GAAGA,CACbC,KAAwB,EACxBC,KAAa,EACbC,MAAc,KACS;EACvB,MAAMC,KAAK,GAAGC,MAAM,CAACC,QAAQ,CAACL,KAAK,CAACC,KAAK,GAAGC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EAE9D,OAAOE,MAAM,CAACE,SAAS,CAACH,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,IAAIA,KAAK,IAAI,IAAI,GACzDA,KAAK,GACLI,SAAS;AACf,CAAC;;AAED;AAAAT,OAAA,CAAAC,MAAA,GAAAA,MAAA;AACA,MAAMS,UAAU,GAAGA,CACjBR,KAAwB,EACxBC,KAAa,EACbC,MAAM,GAAG,CAAC,KACW;EACrB,MAAMO,OAAO,GAAGV,MAAM,CAACC,KAAK,EAAEC,KAAK,EAAEC,MAAM,CAAC;EAC5C,MAAMQ,QAAQ,GAAGX,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EACjD,MAAMS,KAAK,GAAGZ,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EAC9C,MAAMU,GAAG,GAAGb,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EAC5C,MAAMW,IAAI,GAAGd,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EAC7C,MAAMY,MAAM,GAAGf,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EAC/C,MAAMa,MAAM,GAAGhB,MAAM,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,EAAEC,MAAM,CAAC;EAE/C,IACEO,OAAO,KAAKF,SAAS,IACrBG,QAAQ,KAAKH,SAAS,IACtBI,KAAK,KAAKJ,SAAS,IACnBK,GAAG,KAAKL,SAAS,IACjBM,IAAI,KAAKN,SAAS,IAClBO,MAAM,KAAKP,SAAS,IACpBQ,MAAM,KAAKR,SAAS,EACpB;IACA,OAAOA,SAAS;EAClB;EAEA,MAAMS,IAAI,GAAGP,OAAO,GAAIC,QAAQ,IAAI,CAAE;EACtC,MAAMO,IAAI,GAAG,IAAIC,IAAI,CAACF,IAAI,EAAEL,KAAK,GAAG,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC;EAEjE,OAAOE,IAAI,CAACE,WAAW,CAAC,CAAC,KAAKH,IAAI,IAChCC,IAAI,CAACG,QAAQ,CAAC,CAAC,KAAKT,KAAK,GAAG,CAAC,IAC7BM,IAAI,CAACI,OAAO,CAAC,CAAC,KAAKT,GAAG,IACtBK,IAAI,CAACK,QAAQ,CAAC,CAAC,KAAKT,IAAI,IACxBI,IAAI,CAACM,UAAU,CAAC,CAAC,KAAKT,MAAM,IAC5BG,IAAI,CAACO,UAAU,CAAC,CAAC,KAAKT,MAAM,GAC1BE,IAAI,GACJV,SAAS;AACf,CAAC;;AAED;AAAAT,OAAA,CAAAU,UAAA,GAAAA,UAAA;AACA,MAAMiB,mBAAmB,GAAGA,CAC1BC,OAAU,EACVC,QAA2C,MACpC;EACP,GAAGD,OAAO;EACV,GAAGE,MAAM,CAACC,WAAW,CACnBD,MAAM,CAACE,OAAO,CAACH,QAAQ,CAAC,CAACI,MAAM,CAAC,CAAC,GAAG5B,KAAK,CAAC,KAAKA,KAAK,KAAKI,SAAS,CACpE;AACF,CAAC,CAAC;AAACT,OAAA,CAAA2B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hasUnusableSensorStatus = exports.glucoseRecordDetails = void 0;
|
|
7
|
+
var _standardGattGlucoseFrame = require("./standard-gatt.glucose-frame.js");
|
|
8
|
+
const NIBBLE_BITS = 4;
|
|
9
|
+
const NIBBLE_MASK = 0x0f;
|
|
10
|
+
|
|
11
|
+
/** Indexed by the specimen type code; 0, 10 (control solution) and 11-15 are not a patient sample. */
|
|
12
|
+
const SPECIMEN_TYPES = [undefined, "capillaryWholeBlood", "capillaryPlasma", "venousWholeBlood", "venousPlasma", "arterialWholeBlood", "arterialPlasma", "undeterminedWholeBlood", "undeterminedPlasma", "interstitialFluid"];
|
|
13
|
+
|
|
14
|
+
/** Indexed by the sample location code; 0, 4 (control solution), 5-14 and 15 (not available) say nothing. */
|
|
15
|
+
const SAMPLE_LOCATIONS = [undefined, "finger", "alternateSite", "earlobe"];
|
|
16
|
+
const STATUS_BATTERY_LOW = 0x0001;
|
|
17
|
+
const STATUS_SENSOR_MALFUNCTION = 0x0002;
|
|
18
|
+
const STATUS_SAMPLE_TOO_SMALL = 0x0004;
|
|
19
|
+
const STATUS_STRIP_INSERTION_ERROR = 0x0008;
|
|
20
|
+
const STATUS_STRIP_TYPE_INCORRECT = 0x0010;
|
|
21
|
+
const STATUS_RESULT_TOO_HIGH = 0x0020;
|
|
22
|
+
const STATUS_RESULT_TOO_LOW = 0x0040;
|
|
23
|
+
const STATUS_TEMPERATURE_TOO_HIGH = 0x0080;
|
|
24
|
+
const STATUS_TEMPERATURE_TOO_LOW = 0x0100;
|
|
25
|
+
const STATUS_READ_INTERRUPTED = 0x0200;
|
|
26
|
+
const STATUS_DEVICE_FAULT = 0x0400;
|
|
27
|
+
const STATUS_TIME_FAULT = 0x0800;
|
|
28
|
+
|
|
29
|
+
/** The test did not take place properly, so the concentration is not a patient's result. */
|
|
30
|
+
const UNUSABLE_STATUS = STATUS_SENSOR_MALFUNCTION | STATUS_SAMPLE_TOO_SMALL | STATUS_STRIP_INSERTION_ERROR | STATUS_STRIP_TYPE_INCORRECT | STATUS_READ_INTERRUPTED | STATUS_DEVICE_FAULT;
|
|
31
|
+
const SENSOR_WARNINGS = [[STATUS_BATTERY_LOW, "batteryLow"], [STATUS_TEMPERATURE_TOO_HIGH, "temperatureTooHigh"], [STATUS_TEMPERATURE_TOO_LOW, "temperatureTooLow"], [STATUS_TIME_FAULT, "timeFault"]];
|
|
32
|
+
const reportedUnit = frame => (0, _standardGattGlucoseFrame.hasFlag)((0, _standardGattGlucoseFrame.byte)(frame, 0) ?? 0, _standardGattGlucoseFrame.FLAG_MOL_PER_L) ? "mmol/L" : "mg/dL";
|
|
33
|
+
const outOfRange = status => {
|
|
34
|
+
if ((0, _standardGattGlucoseFrame.hasFlag)(status, STATUS_RESULT_TOO_HIGH)) {
|
|
35
|
+
return "high";
|
|
36
|
+
}
|
|
37
|
+
return (0, _standardGattGlucoseFrame.hasFlag)(status, STATUS_RESULT_TOO_LOW) ? "low" : undefined;
|
|
38
|
+
};
|
|
39
|
+
const sensorWarnings = status => SENSOR_WARNINGS.filter(([flag]) => (0, _standardGattGlucoseFrame.hasFlag)(status, flag)).map(([, warning]) => warning);
|
|
40
|
+
|
|
41
|
+
/** Whether the meter flagged the record as a test that failed rather than a result. */
|
|
42
|
+
const hasUnusableSensorStatus = frame => {
|
|
43
|
+
const status = (0, _standardGattGlucoseFrame.sensorStatusFromGlucoseFrame)(frame);
|
|
44
|
+
return status !== undefined && (0, _standardGattGlucoseFrame.hasFlag)(status, UNUSABLE_STATUS);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/** What the record says about itself, beside its concentration. */
|
|
48
|
+
exports.hasUnusableSensorStatus = hasUnusableSensorStatus;
|
|
49
|
+
const glucoseRecordDetails = frame => {
|
|
50
|
+
const sequenceNumber = (0, _standardGattGlucoseFrame.sequenceNumberFromGlucoseFrame)(frame);
|
|
51
|
+
const typeAndLocation = (0, _standardGattGlucoseFrame.typeAndLocationFromGlucoseFrame)(frame);
|
|
52
|
+
const status = (0, _standardGattGlucoseFrame.sensorStatusFromGlucoseFrame)(frame);
|
|
53
|
+
const specimen = typeAndLocation === undefined ? undefined : SPECIMEN_TYPES[typeAndLocation & NIBBLE_MASK];
|
|
54
|
+
const sampleLocation = typeAndLocation === undefined ? undefined : SAMPLE_LOCATIONS[typeAndLocation >> NIBBLE_BITS];
|
|
55
|
+
const range = status === undefined ? undefined : outOfRange(status);
|
|
56
|
+
const warnings = status === undefined ? [] : sensorWarnings(status);
|
|
57
|
+
return {
|
|
58
|
+
reportedUnit: reportedUnit(frame),
|
|
59
|
+
...(sequenceNumber !== undefined && {
|
|
60
|
+
sequenceNumber
|
|
61
|
+
}),
|
|
62
|
+
...(specimen && {
|
|
63
|
+
specimen
|
|
64
|
+
}),
|
|
65
|
+
...(sampleLocation && {
|
|
66
|
+
sampleLocation
|
|
67
|
+
}),
|
|
68
|
+
...(range && {
|
|
69
|
+
outOfRange: range
|
|
70
|
+
}),
|
|
71
|
+
...(warnings.length > 0 && {
|
|
72
|
+
sensorStatus: warnings
|
|
73
|
+
})
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
exports.glucoseRecordDetails = glucoseRecordDetails;
|
|
77
|
+
//# sourceMappingURL=standard-gatt.glucose-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_standardGattGlucoseFrame","require","NIBBLE_BITS","NIBBLE_MASK","SPECIMEN_TYPES","undefined","SAMPLE_LOCATIONS","STATUS_BATTERY_LOW","STATUS_SENSOR_MALFUNCTION","STATUS_SAMPLE_TOO_SMALL","STATUS_STRIP_INSERTION_ERROR","STATUS_STRIP_TYPE_INCORRECT","STATUS_RESULT_TOO_HIGH","STATUS_RESULT_TOO_LOW","STATUS_TEMPERATURE_TOO_HIGH","STATUS_TEMPERATURE_TOO_LOW","STATUS_READ_INTERRUPTED","STATUS_DEVICE_FAULT","STATUS_TIME_FAULT","UNUSABLE_STATUS","SENSOR_WARNINGS","reportedUnit","frame","hasFlag","byte","FLAG_MOL_PER_L","outOfRange","status","sensorWarnings","filter","flag","map","warning","hasUnusableSensorStatus","sensorStatusFromGlucoseFrame","exports","glucoseRecordDetails","sequenceNumber","sequenceNumberFromGlucoseFrame","typeAndLocation","typeAndLocationFromGlucoseFrame","specimen","sampleLocation","range","warnings","length","sensorStatus"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-details.ts"],"mappings":";;;;;;AAQA,IAAAA,yBAAA,GAAAC,OAAA;AASA,MAAMC,WAAW,GAAG,CAAC;AACrB,MAAMC,WAAW,GAAG,IAAI;;AAExB;AACA,MAAMC,cAA4D,GAAG,CACnEC,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,CACpB;;AAED;AACA,MAAMC,gBAAgE,GAAG,CACvED,SAAS,EACT,QAAQ,EACR,eAAe,EACf,SAAS,CACV;AAED,MAAME,kBAAkB,GAAG,MAAM;AACjC,MAAMC,yBAAyB,GAAG,MAAM;AACxC,MAAMC,uBAAuB,GAAG,MAAM;AACtC,MAAMC,4BAA4B,GAAG,MAAM;AAC3C,MAAMC,2BAA2B,GAAG,MAAM;AAC1C,MAAMC,sBAAsB,GAAG,MAAM;AACrC,MAAMC,qBAAqB,GAAG,MAAM;AACpC,MAAMC,2BAA2B,GAAG,MAAM;AAC1C,MAAMC,0BAA0B,GAAG,MAAM;AACzC,MAAMC,uBAAuB,GAAG,MAAM;AACtC,MAAMC,mBAAmB,GAAG,MAAM;AAClC,MAAMC,iBAAiB,GAAG,MAAM;;AAEhC;AACA,MAAMC,eAAe,GACnBX,yBAAyB,GACzBC,uBAAuB,GACvBC,4BAA4B,GAC5BC,2BAA2B,GAC3BK,uBAAuB,GACvBC,mBAAmB;AAErB,MAAMG,eAAqE,GAAG,CAC5E,CAACb,kBAAkB,EAAE,YAAY,CAAC,EAClC,CAACO,2BAA2B,EAAE,oBAAoB,CAAC,EACnD,CAACC,0BAA0B,EAAE,mBAAmB,CAAC,EACjD,CAACG,iBAAiB,EAAE,WAAW,CAAC,CACjC;AAED,MAAMG,YAAY,GAAIC,KAAwB,IAC5C,IAAAC,iCAAO,EAAC,IAAAC,8BAAI,EAACF,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAEG,wCAAc,CAAC,GAAG,QAAQ,GAAG,OAAO;AAEnE,MAAMC,UAAU,GAAIC,MAAc,IAAyC;EACzE,IAAI,IAAAJ,iCAAO,EAACI,MAAM,EAAEf,sBAAsB,CAAC,EAAE;IAC3C,OAAO,MAAM;EACf;EAEA,OAAO,IAAAW,iCAAO,EAACI,MAAM,EAAEd,qBAAqB,CAAC,GAAG,KAAK,GAAGR,SAAS;AACnE,CAAC;AAED,MAAMuB,cAAc,GAAID,MAAc,IACpCP,eAAe,CAACS,MAAM,CAAC,CAAC,CAACC,IAAI,CAAC,KAAK,IAAAP,iCAAO,EAACI,MAAM,EAAEG,IAAI,CAAC,CAAC,CAACC,GAAG,CAC3D,CAAC,GAAGC,OAAO,CAAC,KAAKA,OACnB,CAAC;;AAEH;AACA,MAAMC,uBAAuB,GAAIX,KAAwB,IAAc;EACrE,MAAMK,MAAM,GAAG,IAAAO,sDAA4B,EAACZ,KAAK,CAAC;EAElD,OAAOK,MAAM,KAAKtB,SAAS,IAAI,IAAAkB,iCAAO,EAACI,MAAM,EAAER,eAAe,CAAC;AACjE,CAAC;;AAED;AAAAgB,OAAA,CAAAF,uBAAA,GAAAA,uBAAA;AACA,MAAMG,oBAAoB,GAAId,KAAwB,IAA2B;EAC/E,MAAMe,cAAc,GAAG,IAAAC,wDAA8B,EAAChB,KAAK,CAAC;EAC5D,MAAMiB,eAAe,GAAG,IAAAC,yDAA+B,EAAClB,KAAK,CAAC;EAC9D,MAAMK,MAAM,GAAG,IAAAO,sDAA4B,EAACZ,KAAK,CAAC;EAElD,MAAMmB,QAAQ,GACZF,eAAe,KAAKlC,SAAS,GACzBA,SAAS,GACTD,cAAc,CAACmC,eAAe,GAAGpC,WAAW,CAAC;EAEnD,MAAMuC,cAAc,GAClBH,eAAe,KAAKlC,SAAS,GACzBA,SAAS,GACTC,gBAAgB,CAACiC,eAAe,IAAIrC,WAAW,CAAC;EAEtD,MAAMyC,KAAK,GAAGhB,MAAM,KAAKtB,SAAS,GAAGA,SAAS,GAAGqB,UAAU,CAACC,MAAM,CAAC;EACnE,MAAMiB,QAAQ,GAAGjB,MAAM,KAAKtB,SAAS,GAAG,EAAE,GAAGuB,cAAc,CAACD,MAAM,CAAC;EAEnE,OAAO;IACLN,YAAY,EAAEA,YAAY,CAACC,KAAK,CAAC;IACjC,IAAIe,cAAc,KAAKhC,SAAS,IAAI;MAAEgC;IAAe,CAAC,CAAC;IACvD,IAAII,QAAQ,IAAI;MAAEA;IAAS,CAAC,CAAC;IAC7B,IAAIC,cAAc,IAAI;MAAEA;IAAe,CAAC,CAAC;IACzC,IAAIC,KAAK,IAAI;MAAEjB,UAAU,EAAEiB;IAAM,CAAC,CAAC;IACnC,IAAIC,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAI;MAAEC,YAAY,EAAEF;IAAS,CAAC;EACvD,CAAC;AACH,CAAC;AAACT,OAAA,CAAAC,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.typeAndLocationFromGlucoseFrame = exports.sequenceNumberFromGlucoseFrame = exports.sensorStatusFromGlucoseFrame = exports.hasFlag = exports.concentrationIndex = exports.byte = exports.TIME_OFFSET_INDEX = exports.FLAG_TIME_OFFSET = exports.FLAG_MOL_PER_L = exports.FLAG_CONCENTRATION = exports.BASE_TIME_INDEX = void 0;
|
|
7
|
+
const FLAG_TIME_OFFSET = exports.FLAG_TIME_OFFSET = 0x01;
|
|
8
|
+
const FLAG_CONCENTRATION = exports.FLAG_CONCENTRATION = 0x02;
|
|
9
|
+
const FLAG_MOL_PER_L = exports.FLAG_MOL_PER_L = 0x04;
|
|
10
|
+
const FLAG_SENSOR_STATUS = 0x08;
|
|
11
|
+
const SEQUENCE_NUMBER_INDEX = 1;
|
|
12
|
+
const BASE_TIME_INDEX = exports.BASE_TIME_INDEX = 3;
|
|
13
|
+
const TIME_OFFSET_INDEX = exports.TIME_OFFSET_INDEX = 10;
|
|
14
|
+
const BYTE_BITS = 8;
|
|
15
|
+
const TYPE_AND_LOCATION_OFFSET = 2;
|
|
16
|
+
const SENSOR_STATUS_OFFSET = 3;
|
|
17
|
+
const hasFlag = (flags, flag) => (flags & flag) !== 0;
|
|
18
|
+
exports.hasFlag = hasFlag;
|
|
19
|
+
const concentrationIndex = flags => hasFlag(flags, FLAG_TIME_OFFSET) ? TIME_OFFSET_INDEX + 2 : TIME_OFFSET_INDEX;
|
|
20
|
+
exports.concentrationIndex = concentrationIndex;
|
|
21
|
+
const byte = (frame, index) => {
|
|
22
|
+
const value = Number.parseInt(frame[index] ?? "", 16);
|
|
23
|
+
return Number.isInteger(value) ? value : undefined;
|
|
24
|
+
};
|
|
25
|
+
exports.byte = byte;
|
|
26
|
+
const uint16 = (frame, index) => {
|
|
27
|
+
const low = byte(frame, index);
|
|
28
|
+
const high = byte(frame, index + 1);
|
|
29
|
+
return low === undefined || high === undefined ? undefined : low | high << BYTE_BITS;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** The meter's number for the record, in bytes 1-2 of every Glucose Measurement. */
|
|
33
|
+
const sequenceNumberFromGlucoseFrame = frame => uint16(frame, SEQUENCE_NUMBER_INDEX);
|
|
34
|
+
|
|
35
|
+
/** Specimen type in the low nibble and sample location in the high one; only a record with a concentration has it. */
|
|
36
|
+
exports.sequenceNumberFromGlucoseFrame = sequenceNumberFromGlucoseFrame;
|
|
37
|
+
const typeAndLocationFromGlucoseFrame = frame => {
|
|
38
|
+
const flags = byte(frame, 0) ?? 0;
|
|
39
|
+
return hasFlag(flags, FLAG_CONCENTRATION) ? byte(frame, concentrationIndex(flags) + TYPE_AND_LOCATION_OFFSET) : undefined;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/** The Sensor Status Annunciation bits, which only a record that sets flag bit 3 carries. */
|
|
43
|
+
exports.typeAndLocationFromGlucoseFrame = typeAndLocationFromGlucoseFrame;
|
|
44
|
+
const sensorStatusFromGlucoseFrame = frame => {
|
|
45
|
+
const flags = byte(frame, 0) ?? 0;
|
|
46
|
+
return hasFlag(flags, FLAG_SENSOR_STATUS) && hasFlag(flags, FLAG_CONCENTRATION) ? uint16(frame, concentrationIndex(flags) + SENSOR_STATUS_OFFSET) : undefined;
|
|
47
|
+
};
|
|
48
|
+
exports.sensorStatusFromGlucoseFrame = sensorStatusFromGlucoseFrame;
|
|
49
|
+
//# sourceMappingURL=standard-gatt.glucose-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FLAG_TIME_OFFSET","exports","FLAG_CONCENTRATION","FLAG_MOL_PER_L","FLAG_SENSOR_STATUS","SEQUENCE_NUMBER_INDEX","BASE_TIME_INDEX","TIME_OFFSET_INDEX","BYTE_BITS","TYPE_AND_LOCATION_OFFSET","SENSOR_STATUS_OFFSET","hasFlag","flags","flag","concentrationIndex","byte","frame","index","value","Number","parseInt","isInteger","undefined","uint16","low","high","sequenceNumberFromGlucoseFrame","typeAndLocationFromGlucoseFrame","sensorStatusFromGlucoseFrame"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-frame.ts"],"mappings":";;;;;;AAAA,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,IAAI;AAC7B,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,IAAI;AAC/B,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG,IAAI;AAC3B,MAAMC,kBAAkB,GAAG,IAAI;AAE/B,MAAMC,qBAAqB,GAAG,CAAC;AAC/B,MAAMC,eAAe,GAAAL,OAAA,CAAAK,eAAA,GAAG,CAAC;AACzB,MAAMC,iBAAiB,GAAAN,OAAA,CAAAM,iBAAA,GAAG,EAAE;AAE5B,MAAMC,SAAS,GAAG,CAAC;AACnB,MAAMC,wBAAwB,GAAG,CAAC;AAClC,MAAMC,oBAAoB,GAAG,CAAC;AAE9B,MAAMC,OAAO,GAAGA,CAACC,KAAa,EAAEC,IAAY,KAAc,CAACD,KAAK,GAAGC,IAAI,MAAM,CAAC;AAACZ,OAAA,CAAAU,OAAA,GAAAA,OAAA;AAE/E,MAAMG,kBAAkB,GAAIF,KAAa,IACvCD,OAAO,CAACC,KAAK,EAAEZ,gBAAgB,CAAC,GAAGO,iBAAiB,GAAG,CAAC,GAAGA,iBAAiB;AAACN,OAAA,CAAAa,kBAAA,GAAAA,kBAAA;AAE/E,MAAMC,IAAI,GAAGA,CAACC,KAAwB,EAAEC,KAAa,KAAyB;EAC5E,MAAMC,KAAK,GAAGC,MAAM,CAACC,QAAQ,CAACJ,KAAK,CAACC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;EAErD,OAAOE,MAAM,CAACE,SAAS,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAGI,SAAS;AACpD,CAAC;AAACrB,OAAA,CAAAc,IAAA,GAAAA,IAAA;AAEF,MAAMQ,MAAM,GAAGA,CAACP,KAAwB,EAAEC,KAAa,KAAyB;EAC9E,MAAMO,GAAG,GAAGT,IAAI,CAACC,KAAK,EAAEC,KAAK,CAAC;EAC9B,MAAMQ,IAAI,GAAGV,IAAI,CAACC,KAAK,EAAEC,KAAK,GAAG,CAAC,CAAC;EAEnC,OAAOO,GAAG,KAAKF,SAAS,IAAIG,IAAI,KAAKH,SAAS,GAC1CA,SAAS,GACTE,GAAG,GAAIC,IAAI,IAAIjB,SAAU;AAC/B,CAAC;;AAED;AACA,MAAMkB,8BAA8B,GAClCV,KAAwB,IACDO,MAAM,CAACP,KAAK,EAAEX,qBAAqB,CAAC;;AAE7D;AAAAJ,OAAA,CAAAyB,8BAAA,GAAAA,8BAAA;AACA,MAAMC,+BAA+B,GACnCX,KAAwB,IACD;EACvB,MAAMJ,KAAK,GAAGG,IAAI,CAACC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;EAEjC,OAAOL,OAAO,CAACC,KAAK,EAAEV,kBAAkB,CAAC,GACrCa,IAAI,CAACC,KAAK,EAAEF,kBAAkB,CAACF,KAAK,CAAC,GAAGH,wBAAwB,CAAC,GACjEa,SAAS;AACf,CAAC;;AAED;AAAArB,OAAA,CAAA0B,+BAAA,GAAAA,+BAAA;AACA,MAAMC,4BAA4B,GAChCZ,KAAwB,IACD;EACvB,MAAMJ,KAAK,GAAGG,IAAI,CAACC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;EAEjC,OAAOL,OAAO,CAACC,KAAK,EAAER,kBAAkB,CAAC,IAAIO,OAAO,CAACC,KAAK,EAAEV,kBAAkB,CAAC,GAC3EqB,MAAM,CAACP,KAAK,EAAEF,kBAAkB,CAACF,KAAK,CAAC,GAAGF,oBAAoB,CAAC,GAC/DY,SAAS;AACf,CAAC;AAACrB,OAAA,CAAA2B,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createGlucoseSequencer = exports.RECORD_ACCESS_CONTROL_POINT_UUID = exports.GLUCOSE_SERVICE_UUID = exports.GLUCOSE_MEASUREMENT_UUID = void 0;
|
|
7
|
+
var _bytesToHex = require("../../../utils/bytes-to-hex.js");
|
|
8
|
+
var _sigUuid = require("../../../utils/sig-uuid.js");
|
|
9
|
+
var _recordCursor = require("../../record-cursor.js");
|
|
10
|
+
var _standardGattGlucoseFrame = require("./standard-gatt.glucose-frame.js");
|
|
11
|
+
const GLUCOSE_SERVICE_UUID = exports.GLUCOSE_SERVICE_UUID = (0, _sigUuid.sigUuid)("1808");
|
|
12
|
+
const GLUCOSE_MEASUREMENT_UUID = exports.GLUCOSE_MEASUREMENT_UUID = (0, _sigUuid.sigUuid)("2a18");
|
|
13
|
+
const RECORD_ACCESS_CONTROL_POINT_UUID = exports.RECORD_ACCESS_CONTROL_POINT_UUID = (0, _sigUuid.sigUuid)("2a52");
|
|
14
|
+
const RACP_REPORT_STORED_RECORDS = 0x01;
|
|
15
|
+
const RACP_RESPONSE_CODE = 0x06;
|
|
16
|
+
const RACP_OPERATOR_ALL_RECORDS = 0x01;
|
|
17
|
+
const RACP_OPERATOR_GREATER_OR_EQUAL = 0x03;
|
|
18
|
+
const RACP_FILTER_SEQUENCE_NUMBER = 0x01;
|
|
19
|
+
const RESPONSE_OPCODE_INDEX = 0;
|
|
20
|
+
const RESPONSE_REQUEST_INDEX = 2;
|
|
21
|
+
const RESPONSE_RESULT_INDEX = 3;
|
|
22
|
+
|
|
23
|
+
/** Invalid operator, operator not supported, invalid operand and operand not supported. */
|
|
24
|
+
const FILTER_REFUSALS = new Set([0x03, 0x04, 0x05, 0x09]);
|
|
25
|
+
const BYTE_BITS = 8;
|
|
26
|
+
const MAX_SEQUENCE_NUMBER = 0xffff;
|
|
27
|
+
const CURSOR_KEY_PREFIX = "@ovok/native/glucose-sequence";
|
|
28
|
+
const reportAllRecords = () => (0, _bytesToHex.bytesToHex)([RACP_REPORT_STORED_RECORDS, RACP_OPERATOR_ALL_RECORDS]);
|
|
29
|
+
const reportRecordsFrom = sequenceNumber => (0, _bytesToHex.bytesToHex)([RACP_REPORT_STORED_RECORDS, RACP_OPERATOR_GREATER_OR_EQUAL, RACP_FILTER_SEQUENCE_NUMBER, sequenceNumber, sequenceNumber >> BYTE_BITS]);
|
|
30
|
+
|
|
31
|
+
/** The first number worth asking for, or nothing when none is known or the one after it cannot be written. */
|
|
32
|
+
const sequenceToAskFrom = newestStored => newestStored === undefined || newestStored >= MAX_SEQUENCE_NUMBER ? undefined : newestStored + 1;
|
|
33
|
+
|
|
34
|
+
/** Whether the meter answered "report stored records" by refusing the filter it was given. */
|
|
35
|
+
const refusesFilter = frame => {
|
|
36
|
+
const result = (0, _standardGattGlucoseFrame.byte)(frame, RESPONSE_RESULT_INDEX);
|
|
37
|
+
return (0, _standardGattGlucoseFrame.byte)(frame, RESPONSE_OPCODE_INDEX) === RACP_RESPONSE_CODE && (0, _standardGattGlucoseFrame.byte)(frame, RESPONSE_REQUEST_INDEX) === RACP_REPORT_STORED_RECORDS && result !== undefined && FILTER_REFUSALS.has(result);
|
|
38
|
+
};
|
|
39
|
+
const racpCommand = frame => ({
|
|
40
|
+
serviceUuid: GLUCOSE_SERVICE_UUID,
|
|
41
|
+
characteristicUuid: RECORD_ACCESS_CONTROL_POINT_UUID,
|
|
42
|
+
frame
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Asks a glucose meter for the records stored after the newest one already read, and keeps
|
|
47
|
+
* count of the sequence numbers it sends. A meter that refuses the sequence-number filter is
|
|
48
|
+
* asked for every record instead, once.
|
|
49
|
+
*
|
|
50
|
+
* Every Glucose Measurement counts, usable or not: a record the SDK withholds is no reason to
|
|
51
|
+
* download it again.
|
|
52
|
+
*/
|
|
53
|
+
class GlucoseRecordSequencer {
|
|
54
|
+
filtered = false;
|
|
55
|
+
constructor(cursor) {
|
|
56
|
+
this.cursor = cursor;
|
|
57
|
+
}
|
|
58
|
+
initialCommands = async () => {
|
|
59
|
+
const from = sequenceToAskFrom(await this.cursor.load());
|
|
60
|
+
this.filtered = from !== undefined;
|
|
61
|
+
return [racpCommand(from === undefined ? reportAllRecords() : reportRecordsFrom(from))];
|
|
62
|
+
};
|
|
63
|
+
nextCommand = (frame, characteristicUuid) => {
|
|
64
|
+
const uuid = characteristicUuid?.toLowerCase();
|
|
65
|
+
if (uuid === GLUCOSE_MEASUREMENT_UUID) {
|
|
66
|
+
this.countRecord(frame);
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
if (uuid === RECORD_ACCESS_CONTROL_POINT_UUID && this.filtered && refusesFilter(frame)) {
|
|
70
|
+
this.filtered = false;
|
|
71
|
+
return [racpCommand(reportAllRecords())];
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
};
|
|
75
|
+
countRecord(frame) {
|
|
76
|
+
const sequenceNumber = (0, _standardGattGlucoseFrame.sequenceNumberFromGlucoseFrame)(frame);
|
|
77
|
+
if (sequenceNumber !== undefined) {
|
|
78
|
+
this.cursor.advance(sequenceNumber);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Gives each connection to a glucose meter its own sequencer over that meter's stored cursor. */
|
|
84
|
+
const createGlucoseSequencer = ({
|
|
85
|
+
deviceId,
|
|
86
|
+
recordCursorStorage
|
|
87
|
+
}) => new GlucoseRecordSequencer(new _recordCursor.RecordCursor(recordCursorStorage, `${CURSOR_KEY_PREFIX}/${deviceId}`));
|
|
88
|
+
exports.createGlucoseSequencer = createGlucoseSequencer;
|
|
89
|
+
//# sourceMappingURL=standard-gatt.glucose-racp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_bytesToHex","require","_sigUuid","_recordCursor","_standardGattGlucoseFrame","GLUCOSE_SERVICE_UUID","exports","sigUuid","GLUCOSE_MEASUREMENT_UUID","RECORD_ACCESS_CONTROL_POINT_UUID","RACP_REPORT_STORED_RECORDS","RACP_RESPONSE_CODE","RACP_OPERATOR_ALL_RECORDS","RACP_OPERATOR_GREATER_OR_EQUAL","RACP_FILTER_SEQUENCE_NUMBER","RESPONSE_OPCODE_INDEX","RESPONSE_REQUEST_INDEX","RESPONSE_RESULT_INDEX","FILTER_REFUSALS","Set","BYTE_BITS","MAX_SEQUENCE_NUMBER","CURSOR_KEY_PREFIX","reportAllRecords","bytesToHex","reportRecordsFrom","sequenceNumber","sequenceToAskFrom","newestStored","undefined","refusesFilter","frame","result","byte","has","racpCommand","serviceUuid","characteristicUuid","GlucoseRecordSequencer","filtered","constructor","cursor","initialCommands","from","load","nextCommand","uuid","toLowerCase","countRecord","sequenceNumberFromGlucoseFrame","advance","createGlucoseSequencer","deviceId","recordCursorStorage","RecordCursor"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose-racp.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.js
CHANGED
|
@@ -6,18 +6,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.standardGlucoseDevice = exports.recordedAtFromGlucoseFrame = void 0;
|
|
7
7
|
var _next = require("@ovok/core/next");
|
|
8
8
|
var _bytesToHex = require("../../../utils/bytes-to-hex.js");
|
|
9
|
-
var _sigUuid = require("../../../utils/sig-uuid.js");
|
|
10
9
|
var _defineCustomDevice = require("../../custom/define-custom-device.js");
|
|
10
|
+
var _standardGattGlucoseDetails = require("./standard-gatt.glucose-details.js");
|
|
11
|
+
var _standardGattGlucoseFrame = require("./standard-gatt.glucose-frame.js");
|
|
12
|
+
var _standardGattGlucoseRacp = require("./standard-gatt.glucose-racp.js");
|
|
11
13
|
var _standardGattProfile = require("./standard-gatt.profile.js");
|
|
12
14
|
/**
|
|
13
15
|
* Glucose Service 0x1808: Glucose Measurement 0x2A18 and the Record Access Control Point
|
|
14
16
|
* 0x2A52.
|
|
15
17
|
*
|
|
16
18
|
* A glucose meter does not push its readings. The collector enables indications on the
|
|
17
|
-
* control point
|
|
18
|
-
*
|
|
19
|
-
* (`
|
|
20
|
-
*
|
|
19
|
+
* control point and writes a request for the stored records: those after the newest one it
|
|
20
|
+
* has read (`01 03 01 nn nn`) when the manager has a `recordCursorStorage`, otherwise all of
|
|
21
|
+
* them (`01 01`). The meter answers with one Glucose Measurement per record followed by a
|
|
22
|
+
* control-point response (`06 00 01 xx`). The SDK's stable result identity, which covers the
|
|
23
|
+
* record's sequence number, keeps a record seen twice from becoming a second reading.
|
|
21
24
|
*
|
|
22
25
|
* Glucose Measurement layout: flags, sequence number (2), base time (7), time offset (2,
|
|
23
26
|
* flag bit 0), concentration SFLOAT (2) and type/sample-location (1) (bit 1), sensor status
|
|
@@ -27,41 +30,33 @@ const MG_PER_DL_PER_KG_PER_L = 100_000;
|
|
|
27
30
|
|
|
28
31
|
/** One mol/L of glucose (180.16 g/mol) is 18,016 mg/dL. */
|
|
29
32
|
const MG_PER_DL_PER_MOL_PER_L = 18_016;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const BASE_TIME_INDEX = 3;
|
|
34
|
-
const TIME_OFFSET_INDEX = 10;
|
|
33
|
+
|
|
34
|
+
/** One decimal reads a mmol/L result (0.1 mmol/L is 1.8 mg/dL) back as the meter showed it. */
|
|
35
|
+
const MG_PER_DL_DECIMALS = 1;
|
|
35
36
|
|
|
36
37
|
/** Type 0xA and sample location 0x4 both mean a control-solution test, not a patient sample. */
|
|
37
38
|
const CONTROL_SOLUTION_TYPE = 0x0a;
|
|
38
39
|
const CONTROL_SOLUTION_LOCATION = 0x04;
|
|
39
|
-
const REPORT_ALL_STORED_RECORDS = "0101";
|
|
40
|
-
const concentrationIndex = flags => flags & FLAG_TIME_OFFSET ? TIME_OFFSET_INDEX + 2 : TIME_OFFSET_INDEX;
|
|
41
40
|
|
|
42
41
|
/** Bits 5-7 are reserved; a meter that sets one still sends a readable record. */
|
|
43
42
|
const ALL_FLAGS = Array.from({
|
|
44
43
|
length: 256
|
|
45
44
|
}, (_, flags) => flags);
|
|
46
45
|
const glucoseField = flags => {
|
|
47
|
-
const index = concentrationIndex(flags);
|
|
46
|
+
const index = (0, _standardGattGlucoseFrame.concentrationIndex)(flags);
|
|
48
47
|
return {
|
|
49
48
|
...(0, _standardGattProfile.littleEndian)("bloodGlucose", [index, index + 1], "mg/dL", "sfloat"),
|
|
50
|
-
scale: flags & FLAG_MOL_PER_L ? MG_PER_DL_PER_MOL_PER_L : MG_PER_DL_PER_KG_PER_L,
|
|
51
|
-
decimals:
|
|
49
|
+
scale: flags & _standardGattGlucoseFrame.FLAG_MOL_PER_L ? MG_PER_DL_PER_MOL_PER_L : MG_PER_DL_PER_KG_PER_L,
|
|
50
|
+
decimals: MG_PER_DL_DECIMALS
|
|
52
51
|
};
|
|
53
52
|
};
|
|
54
|
-
const byte = (frame, index) => {
|
|
55
|
-
const value = Number.parseInt(frame[index] ?? "", 16);
|
|
56
|
-
return Number.isInteger(value) ? value : undefined;
|
|
57
|
-
};
|
|
58
53
|
|
|
59
54
|
/** The record's own time: the base time plus its offset in minutes, read as phone-local. */
|
|
60
55
|
const recordedAtFromGlucoseFrame = frame => {
|
|
61
56
|
const parts = Array.from({
|
|
62
57
|
length: 7
|
|
63
|
-
}, (_, i) => byte(frame, BASE_TIME_INDEX + i));
|
|
64
|
-
const flags = byte(frame, 0);
|
|
58
|
+
}, (_, i) => (0, _standardGattGlucoseFrame.byte)(frame, _standardGattGlucoseFrame.BASE_TIME_INDEX + i));
|
|
59
|
+
const flags = (0, _standardGattGlucoseFrame.byte)(frame, 0);
|
|
65
60
|
if (flags === undefined || parts.some(part => part === undefined)) {
|
|
66
61
|
return undefined;
|
|
67
62
|
}
|
|
@@ -73,9 +68,9 @@ const recordedAtFromGlucoseFrame = frame => {
|
|
|
73
68
|
if (recordedAt.getFullYear() !== year || recordedAt.getMonth() !== month - 1 || recordedAt.getDate() !== day || recordedAt.getHours() !== hour || recordedAt.getMinutes() !== minute || recordedAt.getSeconds() !== second) {
|
|
74
69
|
return undefined;
|
|
75
70
|
}
|
|
76
|
-
if (flags & FLAG_TIME_OFFSET) {
|
|
77
|
-
const low = byte(frame, TIME_OFFSET_INDEX);
|
|
78
|
-
const high = byte(frame, TIME_OFFSET_INDEX + 1);
|
|
71
|
+
if (flags & _standardGattGlucoseFrame.FLAG_TIME_OFFSET) {
|
|
72
|
+
const low = (0, _standardGattGlucoseFrame.byte)(frame, _standardGattGlucoseFrame.TIME_OFFSET_INDEX);
|
|
73
|
+
const high = (0, _standardGattGlucoseFrame.byte)(frame, _standardGattGlucoseFrame.TIME_OFFSET_INDEX + 1);
|
|
79
74
|
if (low === undefined || high === undefined) {
|
|
80
75
|
return undefined;
|
|
81
76
|
}
|
|
@@ -86,8 +81,7 @@ const recordedAtFromGlucoseFrame = frame => {
|
|
|
86
81
|
};
|
|
87
82
|
exports.recordedAtFromGlucoseFrame = recordedAtFromGlucoseFrame;
|
|
88
83
|
const isControlSolution = frame => {
|
|
89
|
-
const
|
|
90
|
-
const typeAndLocation = byte(frame, concentrationIndex(flags) + 2);
|
|
84
|
+
const typeAndLocation = (0, _standardGattGlucoseFrame.typeAndLocationFromGlucoseFrame)(frame);
|
|
91
85
|
return typeAndLocation !== undefined && ((typeAndLocation & 0x0f) === CONTROL_SOLUTION_TYPE || typeAndLocation >> 4 === CONTROL_SOLUTION_LOCATION);
|
|
92
86
|
};
|
|
93
87
|
|
|
@@ -99,26 +93,26 @@ const standardGlucoseDevice = params => (0, _defineCustomDevice.defineCustomDevi
|
|
|
99
93
|
oneReadingPerConnection: params.oneReadingPerConnection,
|
|
100
94
|
stuckDataTimeoutMs: params.stuckDataTimeoutMs ?? 60_000,
|
|
101
95
|
services: [{
|
|
102
|
-
uuid:
|
|
96
|
+
uuid: _standardGattGlucoseRacp.GLUCOSE_SERVICE_UUID,
|
|
103
97
|
monitor: [{
|
|
104
|
-
uuid:
|
|
98
|
+
uuid: _standardGattGlucoseRacp.GLUCOSE_MEASUREMENT_UUID,
|
|
105
99
|
frame: {
|
|
106
|
-
minLengthBytes: TIME_OFFSET_INDEX
|
|
100
|
+
minLengthBytes: _standardGattGlucoseFrame.TIME_OFFSET_INDEX
|
|
107
101
|
},
|
|
108
102
|
caseSelectorBytes: [0],
|
|
109
|
-
cases: ALL_FLAGS.map(flags => flags & FLAG_CONCENTRATION ? {
|
|
103
|
+
cases: ALL_FLAGS.map(flags => flags & _standardGattGlucoseFrame.FLAG_CONCENTRATION ? {
|
|
110
104
|
selector: (0, _bytesToHex.byteToHex)(flags),
|
|
111
105
|
kind: "result",
|
|
112
106
|
measurementTypeKey: _next.MeasurementTypeKey.bloodGlucose,
|
|
113
107
|
fields: [glucoseField(flags)],
|
|
114
|
-
minLengthBytes: concentrationIndex(flags) + 3
|
|
108
|
+
minLengthBytes: (0, _standardGattGlucoseFrame.concentrationIndex)(flags) + 3
|
|
115
109
|
} : {
|
|
116
110
|
selector: (0, _bytesToHex.byteToHex)(flags),
|
|
117
111
|
kind: "idle",
|
|
118
112
|
description: "A record without a concentration"
|
|
119
113
|
})
|
|
120
114
|
}, {
|
|
121
|
-
uuid:
|
|
115
|
+
uuid: _standardGattGlucoseRacp.RECORD_ACCESS_CONTROL_POINT_UUID,
|
|
122
116
|
frame: {
|
|
123
117
|
minLengthBytes: 2
|
|
124
118
|
},
|
|
@@ -132,23 +126,22 @@ const standardGlucoseDevice = params => (0, _defineCustomDevice.defineCustomDevi
|
|
|
132
126
|
kind: "idle",
|
|
133
127
|
description: "Record access response"
|
|
134
128
|
}]
|
|
135
|
-
}]
|
|
136
|
-
write: {
|
|
137
|
-
uuid: (0, _sigUuid.sigUuid)("2a52"),
|
|
138
|
-
commandHex: REPORT_ALL_STORED_RECORDS,
|
|
139
|
-
when: "connect"
|
|
140
|
-
}
|
|
129
|
+
}]
|
|
141
130
|
}]
|
|
142
131
|
}, {
|
|
132
|
+
createCommandSequencer: _standardGattGlucoseRacp.createGlucoseSequencer,
|
|
143
133
|
decorateReading: (reading, frame, recordOffset) => {
|
|
144
|
-
if (frame && isControlSolution(frame)) {
|
|
134
|
+
if (frame && (isControlSolution(frame) || (0, _standardGattGlucoseDetails.hasUnusableSensorStatus)(frame))) {
|
|
145
135
|
return null;
|
|
146
136
|
}
|
|
147
137
|
const recordedAt = frame ? recordedAtFromGlucoseFrame(frame) : undefined;
|
|
148
|
-
const decorated =
|
|
138
|
+
const decorated = {
|
|
149
139
|
...reading,
|
|
150
|
-
|
|
151
|
-
|
|
140
|
+
...(frame && (0, _standardGattGlucoseDetails.glucoseRecordDetails)(frame)),
|
|
141
|
+
...(recordedAt && {
|
|
142
|
+
recordedAt
|
|
143
|
+
})
|
|
144
|
+
};
|
|
152
145
|
return params.decorateReading ? params.decorateReading(decorated, frame, recordOffset) : decorated;
|
|
153
146
|
}
|
|
154
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_next","require","_bytesToHex","
|
|
1
|
+
{"version":3,"names":["_next","require","_bytesToHex","_defineCustomDevice","_standardGattGlucoseDetails","_standardGattGlucoseFrame","_standardGattGlucoseRacp","_standardGattProfile","MG_PER_DL_PER_KG_PER_L","MG_PER_DL_PER_MOL_PER_L","MG_PER_DL_DECIMALS","CONTROL_SOLUTION_TYPE","CONTROL_SOLUTION_LOCATION","ALL_FLAGS","Array","from","length","_","flags","glucoseField","index","concentrationIndex","littleEndian","scale","FLAG_MOL_PER_L","decimals","recordedAtFromGlucoseFrame","frame","parts","i","byte","BASE_TIME_INDEX","undefined","some","part","yearLow","yearHigh","month","day","hour","minute","second","year","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","FLAG_TIME_OFFSET","low","TIME_OFFSET_INDEX","high","offsetMinutes","setMinutes","exports","isControlSolution","typeAndLocation","typeAndLocationFromGlucoseFrame","standardGlucoseDevice","params","defineCustomDevice","id","MeasurementTypeKey","bloodGlucose","nameMatch","matchByService","oneReadingPerConnection","stuckDataTimeoutMs","services","uuid","GLUCOSE_SERVICE_UUID","monitor","GLUCOSE_MEASUREMENT_UUID","minLengthBytes","caseSelectorBytes","cases","map","FLAG_CONCENTRATION","selector","byteToHex","kind","measurementTypeKey","fields","description","RECORD_ACCESS_CONTROL_POINT_UUID","createCommandSequencer","createGlucoseSequencer","decorateReading","reading","recordOffset","hasUnusableSensorStatus","decorated","glucoseRecordDetails"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/standard-gatt/standard-gatt.glucose.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAEA,IAAAG,2BAAA,GAAAH,OAAA;AAIA,IAAAI,yBAAA,GAAAJ,OAAA;AAUA,IAAAK,wBAAA,GAAAL,OAAA;AAMA,IAAAM,oBAAA,GAAAN,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,sBAAsB,GAAG,OAAO;;AAEtC;AACA,MAAMC,uBAAuB,GAAG,MAAM;;AAEtC;AACA,MAAMC,kBAAkB,GAAG,CAAC;;AAE5B;AACA,MAAMC,qBAAqB,GAAG,IAAI;AAClC,MAAMC,yBAAyB,GAAG,IAAI;;AAEtC;AACA,MAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAI,CAAC,EAAE,CAACC,CAAC,EAAEC,KAAK,KAAKA,KAAK,CAAC;AAElE,MAAMC,YAAY,GAAID,KAAa,IAAsB;EACvD,MAAME,KAAK,GAAG,IAAAC,4CAAkB,EAACH,KAAK,CAAC;EAEvC,OAAO;IACL,GAAG,IAAAI,iCAAY,EAAC,cAAc,EAAE,CAACF,KAAK,EAAEA,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC;IACtEG,KAAK,EACHL,KAAK,GAAGM,wCAAc,GAAGf,uBAAuB,GAAGD,sBAAsB;IAC3EiB,QAAQ,EAAEf;EACZ,CAAC;AACH,CAAC;;AAED;AACA,MAAMgB,0BAA0B,GAAIC,KAAwB,IAAuB;EACjF,MAAMC,KAAK,GAAGd,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC,EAAE,CAACC,CAAC,EAAEY,CAAC,KAAK,IAAAC,8BAAI,EAACH,KAAK,EAAEI,yCAAe,GAAGF,CAAC,CAAC,CAAC;EACnF,MAAMX,KAAK,GAAG,IAAAY,8BAAI,EAACH,KAAK,EAAE,CAAC,CAAC;EAE5B,IAAIT,KAAK,KAAKc,SAAS,IAAIJ,KAAK,CAACK,IAAI,CAAEC,IAAI,IAAKA,IAAI,KAAKF,SAAS,CAAC,EAAE;IACnE,OAAOA,SAAS;EAClB;EAEA,MAAM,CAACG,OAAO,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC,GAAGb,KAQ7D;EAED,MAAMc,IAAI,GAAGP,OAAO,GAAIC,QAAQ,IAAI,CAAE;EACtC,MAAMO,UAAU,GAAG,IAAIC,IAAI,CAACF,IAAI,EAAEL,KAAK,GAAG,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC;;EAEvE;EACA,IACEE,UAAU,CAACE,WAAW,CAAC,CAAC,KAAKH,IAAI,IACjCC,UAAU,CAACG,QAAQ,CAAC,CAAC,KAAKT,KAAK,GAAG,CAAC,IACnCM,UAAU,CAACI,OAAO,CAAC,CAAC,KAAKT,GAAG,IAC5BK,UAAU,CAACK,QAAQ,CAAC,CAAC,KAAKT,IAAI,IAC9BI,UAAU,CAACM,UAAU,CAAC,CAAC,KAAKT,MAAM,IAClCG,UAAU,CAACO,UAAU,CAAC,CAAC,KAAKT,MAAM,EAClC;IACA,OAAOT,SAAS;EAClB;EAEA,IAAId,KAAK,GAAGiC,0CAAgB,EAAE;IAC5B,MAAMC,GAAG,GAAG,IAAAtB,8BAAI,EAACH,KAAK,EAAE0B,2CAAiB,CAAC;IAC1C,MAAMC,IAAI,GAAG,IAAAxB,8BAAI,EAACH,KAAK,EAAE0B,2CAAiB,GAAG,CAAC,CAAC;IAE/C,IAAID,GAAG,KAAKpB,SAAS,IAAIsB,IAAI,KAAKtB,SAAS,EAAE;MAC3C,OAAOA,SAAS;IAClB;IAEA,MAAMuB,aAAa,GAAG,CAAED,IAAI,IAAI,CAAC,GAAIF,GAAG,KAAK,EAAE,IAAI,EAAE;IAErDT,UAAU,CAACa,UAAU,CAACb,UAAU,CAACM,UAAU,CAAC,CAAC,GAAGM,aAAa,CAAC;EAChE;EAEA,OAAOZ,UAAU;AACnB,CAAC;AAACc,OAAA,CAAA/B,0BAAA,GAAAA,0BAAA;AAEF,MAAMgC,iBAAiB,GAAI/B,KAAwB,IAAc;EAC/D,MAAMgC,eAAe,GAAG,IAAAC,yDAA+B,EAACjC,KAAK,CAAC;EAE9D,OACEgC,eAAe,KAAK3B,SAAS,KAC5B,CAAC2B,eAAe,GAAG,IAAI,MAAMhD,qBAAqB,IACjDgD,eAAe,IAAI,CAAC,KAAK/C,yBAAyB,CAAC;AAEzD,CAAC;;AAED;AACA,MAAMiD,qBAAqB,GACzBC,MAA4B,IAE5B,IAAAC,sCAAkB,EAChB;EACEC,EAAE,EAAEF,MAAM,CAACE,EAAE,IAAI,YAAYC,wBAAkB,CAACC,YAAY,EAAE;EAC9DC,SAAS,EAAEL,MAAM,CAACK,SAAS;EAC3BC,cAAc,EAAEN,MAAM,CAACK,SAAS,KAAKnC,SAAS;EAC9CqC,uBAAuB,EAAEP,MAAM,CAACO,uBAAuB;EACvDC,kBAAkB,EAAER,MAAM,CAACQ,kBAAkB,IAAI,MAAM;EACvDC,QAAQ,EAAE,CACR;IACEC,IAAI,EAAEC,6CAAoB;IAC1BC,OAAO,EAAE,CACP;MACEF,IAAI,EAAEG,iDAAwB;MAC9BhD,KAAK,EAAE;QAAEiD,cAAc,EAAEvB;MAAkB,CAAC;MAC5CwB,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAEjE,SAAS,CAACkE,GAAG,CAAE7D,KAAK,IACzBA,KAAK,GAAG8D,4CAAkB,GACtB;QACEC,QAAQ,EAAE,IAAAC,qBAAS,EAAChE,KAAK,CAAC;QAC1BiE,IAAI,EAAE,QAAiB;QACvBC,kBAAkB,EAAEnB,wBAAkB,CAACC,YAAY;QACnDmB,MAAM,EAAE,CAAClE,YAAY,CAACD,KAAK,CAAC,CAAC;QAC7B0D,cAAc,EAAE,IAAAvD,4CAAkB,EAACH,KAAK,CAAC,GAAG;MAC9C,CAAC,GACD;QACE+D,QAAQ,EAAE,IAAAC,qBAAS,EAAChE,KAAK,CAAC;QAC1BiE,IAAI,EAAE,MAAe;QACrBG,WAAW,EAAE;MACf,CACN;IACF,CAAC,EACD;MACEd,IAAI,EAAEe,yDAAgC;MACtC5D,KAAK,EAAE;QAAEiD,cAAc,EAAE;MAAE,CAAC;MAC5BC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QAAEG,QAAQ,EAAE,IAAI;QAAEE,IAAI,EAAE,MAAe;QAAEG,WAAW,EAAE;MAA2B,CAAC,EAClF;QAAEL,QAAQ,EAAE,IAAI;QAAEE,IAAI,EAAE,MAAe;QAAEG,WAAW,EAAE;MAAyB,CAAC;IAEpF,CAAC;EAEL,CAAC;AAEL,CAAC,EACD;EACEE,sBAAsB,EAAEC,+CAAsB;EAC9CC,eAAe,EAAEA,CAACC,OAAO,EAAEhE,KAAK,EAAEiE,YAAY,KAAK;IACjD,IAAIjE,KAAK,KAAK+B,iBAAiB,CAAC/B,KAAK,CAAC,IAAI,IAAAkE,mDAAuB,EAAClE,KAAK,CAAC,CAAC,EAAE;MACzE,OAAO,IAAI;IACb;IAEA,MAAMgB,UAAU,GAAGhB,KAAK,GAAGD,0BAA0B,CAACC,KAAK,CAAC,GAAGK,SAAS;IAExE,MAAM8D,SAAS,GAAG;MAChB,GAAGH,OAAO;MACV,IAAIhE,KAAK,IAAI,IAAAoE,gDAAoB,EAACpE,KAAK,CAAC,CAAC;MACzC,IAAIgB,UAAU,IAAI;QAAEA;MAAW,CAAC;IAClC,CAAC;IAED,OAAOmB,MAAM,CAAC4B,eAAe,GACzB5B,MAAM,CAAC4B,eAAe,CAACI,SAAS,EAAEnE,KAAK,EAAEiE,YAAY,CAAC,GACtDE,SAAS;EACf;AACF,CACF,CAAC;AAACrC,OAAA,CAAAI,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|