@ovok/native 1.16.1-dev.2133 → 1.16.1-dev.2139
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/hooks/runtime-context.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 +17 -1
- 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.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/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/result-identity.js +26 -13
- package/lib/commonjs/modules/bt-management/utils/result-identity.js.map +1 -1
- 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/bluetooth/ble-plx/ble-link.js +41 -4
- package/lib/commonjs/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/connections.js +4 -0
- package/lib/commonjs/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/driver.js +6 -0
- package/lib/commonjs/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
- package/lib/commonjs/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/readings.js +2 -1
- package/lib/commonjs/modules/next/bluetooth/readings.js.map +1 -1
- package/lib/commonjs/modules/next/bluetooth/stable-hash.js +16 -7
- package/lib/commonjs/modules/next/bluetooth/stable-hash.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/hooks/runtime-context.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 +19 -3
- 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.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/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/result-identity.js +24 -12
- package/lib/module/modules/bt-management/utils/result-identity.js.map +1 -1
- 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/bluetooth/ble-plx/ble-link.js +41 -4
- package/lib/module/modules/next/bluetooth/ble-plx/ble-link.js.map +1 -1
- package/lib/module/modules/next/bluetooth/connections.js +4 -0
- package/lib/module/modules/next/bluetooth/connections.js.map +1 -1
- package/lib/module/modules/next/bluetooth/driver.js +6 -0
- package/lib/module/modules/next/bluetooth/driver.js.map +1 -1
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js +12 -1
- package/lib/module/modules/next/bluetooth/react-native/ovok-sink.js.map +1 -1
- package/lib/module/modules/next/bluetooth/readings.js +2 -1
- package/lib/module/modules/next/bluetooth/readings.js.map +1 -1
- package/lib/module/modules/next/bluetooth/stable-hash.js +15 -6
- package/lib/module/modules/next/bluetooth/stable-hash.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/auth/hooks/use-sign-in.d.ts +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/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/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 +9 -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.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/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/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/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/bluetooth/ble-plx/ble-link.d.ts +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/index.d.ts +1 -1
- 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 +12 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts +5 -2
- package/lib/typescript/commonjs/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/auth/hooks/use-sign-in.d.ts +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/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/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 +9 -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.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/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/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/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/bluetooth/ble-plx/ble-link.d.ts +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/ble-plx/ble-link.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/connections.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts +6 -1
- package/lib/typescript/module/src/modules/next/bluetooth/driver.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/index.d.ts +1 -1
- 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 +12 -1
- package/lib/typescript/module/src/modules/next/bluetooth/link.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/react-native/ovok-sink.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts +4 -1
- package/lib/typescript/module/src/modules/next/bluetooth/snapshot.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts +5 -2
- package/lib/typescript/module/src/modules/next/bluetooth/stable-hash.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CUSTOM_DEVICE_BRAND","IntegratedDevices","assertIntegerInRange","compileCustomLepu","compileCustomMonitor","compileCustomTmb","customDeviceError","normalizeBleUuid","MIN_STUCK_TIMEOUT_MS","MIN_MTU","MAX_MTU","MAX_STUCK_TIMEOUT_MS","HEX_BYTES","assertIdentity","spec","id","trim","String","builtIn","Object","values","find","name","toLowerCase","compileNameMatch","nameMatch","RegExp","global","sticky","exact","matchByService","replace","assertStuckTimeout","stuckDataTimeoutMs","assertPreferredMtu","mtu","preferredMtu","undefined","assertSessionPolicy","policy","Number","isInteger","minSamples","emit","compileWrite","path","write","commandHex","test","when","uuid","mainCommandUuid","onConnectOnly","defineCustomDevice","options","stuckDataTimeout","sessionPolicy","Array","isArray","services","length","fields","Map","frames","seenCharacteristics","Set","mainServices","map","service","serviceIndex","monitor","monitorUuids","monitorIndex","monitorPath","characteristic","frame","has","add","set","writeUuid","lepu","tmb","oneReadingPerConnection","clockSync","setClockBeforeInfo","frameReader","decorateReading","createFrameHandler"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/define-custom-device.ts"],"mappings":";;AAAA;;AAEA,SAASA,mBAAmB,QAAQ,wCAAqC;
|
|
1
|
+
{"version":3,"names":["CUSTOM_DEVICE_BRAND","IntegratedDevices","assertIntegerInRange","compileCustomLepu","compileCustomMonitor","compileCustomTmb","customDeviceError","normalizeBleUuid","MIN_STUCK_TIMEOUT_MS","MIN_MTU","MAX_MTU","MAX_STUCK_TIMEOUT_MS","HEX_BYTES","assertIdentity","spec","id","trim","String","builtIn","Object","values","find","name","toLowerCase","compileNameMatch","nameMatch","RegExp","global","sticky","exact","matchByService","replace","assertStuckTimeout","stuckDataTimeoutMs","assertPreferredMtu","mtu","preferredMtu","undefined","assertSessionPolicy","policy","Number","isInteger","minSamples","emit","compileWrite","path","write","commandHex","test","when","uuid","mainCommandUuid","onConnectOnly","defineCustomDevice","options","stuckDataTimeout","sessionPolicy","Array","isArray","services","length","fields","Map","frames","seenCharacteristics","Set","mainServices","map","service","serviceIndex","monitor","monitorUuids","monitorIndex","monitorPath","characteristic","frame","has","add","set","writeUuid","lepu","tmb","oneReadingPerConnection","clockSync","setClockBeforeInfo","frameReader","decorateReading","createFrameHandler","createCommandSequencer"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/custom/define-custom-device.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { sentryLogger } from "../../../helpers/utils/sentry-logger.js";
|
|
4
4
|
import { toBluetoothError } from "../../types/bluetooth-error.js";
|
|
5
5
|
import { hexToBase64 } from "../../utils/hex-to-base-64.js";
|
|
6
|
+
import { runOnce } from "./bt-pairing-retry.js";
|
|
6
7
|
const MAX_WRITE_ATTEMPTS = 3;
|
|
7
8
|
|
|
8
9
|
/** The MTU every BLE link starts at, before either side asks for more. */
|
|
@@ -23,10 +24,11 @@ const ATT_WRITE_HEADER_BYTES = 3;
|
|
|
23
24
|
export class BTCommandWriter {
|
|
24
25
|
pendingWrites = Promise.resolve();
|
|
25
26
|
mtu = DEFAULT_ATT_MTU;
|
|
26
|
-
constructor(device, onError, isNormalDisconnect) {
|
|
27
|
+
constructor(device, onError, isNormalDisconnect, retryAfterPairing = runOnce) {
|
|
27
28
|
this.device = device;
|
|
28
29
|
this.onError = onError;
|
|
29
30
|
this.isNormalDisconnect = isNormalDisconnect;
|
|
31
|
+
this.retryAfterPairing = retryAfterPairing;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
/**
|
|
@@ -135,7 +137,7 @@ export class BTCommandWriter {
|
|
|
135
137
|
sentryLogger("info", "DEVICE: Skipping write after disconnect");
|
|
136
138
|
return false;
|
|
137
139
|
}
|
|
138
|
-
await this.writeTo(command, hexToBase64(chunk.join("")));
|
|
140
|
+
await this.retryAfterPairing(() => this.writeTo(command, hexToBase64(chunk.join(""))));
|
|
139
141
|
return true;
|
|
140
142
|
} catch (error) {
|
|
141
143
|
const message = toBluetoothError(error).message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,yCAAsC;AACnE,SAASC,gBAAgB,QAAQ,gCAA6B;AAE9D,SAASC,WAAW,QAAQ,+BAA4B;AAExD,MAAMC,kBAAkB,GAAG,CAAC;;AAE5B;AACA,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA,MAAMC,sBAAsB,GAAG,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,CAAC;EACnBC,aAAa,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;EAChDC,GAAG,GAAGN,eAAe;EAEtBO,WAAWA,CACCC,MAAc,EACdC,OAA2C,EAC3CC,kBAAkC,
|
|
1
|
+
{"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","runOnce","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,27 +8,34 @@ import { BluetoothErrorCode, toBluetoothError } from "../../types/bluetooth-erro
|
|
|
8
8
|
import { DeviceStatus } from "../../types/device-status.js";
|
|
9
9
|
import { base64ToHex } from "../../utils/base-64-to-hex.js";
|
|
10
10
|
import { BTCommandWriter } from "./bt-command-writer.js";
|
|
11
|
+
import { writeCurrentTime } from "./bt-current-time.js";
|
|
11
12
|
import { readDeviceInformation } from "./bt-device-information.js";
|
|
13
|
+
import { awaitNotificationsEnabled } from "./bt-notification-readiness.js";
|
|
14
|
+
import { BTPairingRetry, isPairingRequired } from "./bt-pairing-retry.js";
|
|
12
15
|
export class BTConnectionHandler {
|
|
13
16
|
characteristicSubscriptions = [];
|
|
14
17
|
disconnectObserved = false;
|
|
18
|
+
pairingReported = false;
|
|
15
19
|
constructor(device, mainServices, callbacks, preferredMtu) {
|
|
16
20
|
this.device = device;
|
|
17
21
|
this.mainServices = mainServices;
|
|
18
22
|
this.callbacks = callbacks;
|
|
19
23
|
this.preferredMtu = preferredMtu;
|
|
20
|
-
this.
|
|
24
|
+
this.pairing = new BTPairingRetry(device, this.reportPairingRequired);
|
|
25
|
+
this.writer = new BTCommandWriter(device, callbacks.onError, callbacks.isNormalDisconnect, this.pairing.run);
|
|
21
26
|
}
|
|
22
27
|
connect = async () => {
|
|
23
28
|
const startedAt = Date.now();
|
|
24
29
|
this.disconnectObserved = false;
|
|
30
|
+
this.pairingReported = false;
|
|
25
31
|
const span = startOvokSpan("bluetooth.connect");
|
|
26
32
|
try {
|
|
27
33
|
await this.connectWithRetries();
|
|
28
34
|
await this.requestPreferredMtu();
|
|
29
35
|
await this.device.discoverAllServicesAndCharacteristics();
|
|
30
|
-
await readDeviceInformation(this.device, this.callbacks.onDeviceInfo);
|
|
36
|
+
await readDeviceInformation(this.device, this.callbacks.onDeviceInfo, this.pairing.run);
|
|
31
37
|
await this.readBatteryLevel();
|
|
38
|
+
await this.syncCurrentTime();
|
|
32
39
|
if (this.disconnectObserved || !(await this.device.isConnected())) {
|
|
33
40
|
throw new Error("Device disconnected during connection setup");
|
|
34
41
|
}
|
|
@@ -50,10 +57,7 @@ export class BTConnectionHandler {
|
|
|
50
57
|
addOvokSpanEvent("pairing.failed", {
|
|
51
58
|
errorCode
|
|
52
59
|
}, span);
|
|
53
|
-
this.
|
|
54
|
-
kind: "pairing",
|
|
55
|
-
pairingCodeRequired: true
|
|
56
|
-
});
|
|
60
|
+
this.reportPairingRequired();
|
|
57
61
|
}
|
|
58
62
|
if (!this.disconnectObserved) {
|
|
59
63
|
this.callbacks.onStatusChanged?.(DeviceStatus.DISCONNECTED);
|
|
@@ -69,8 +73,7 @@ export class BTConnectionHandler {
|
|
|
69
73
|
}
|
|
70
74
|
};
|
|
71
75
|
destroy = () => {
|
|
72
|
-
this.
|
|
73
|
-
this.characteristicSubscriptions = [];
|
|
76
|
+
this.removeSubscriptions();
|
|
74
77
|
this.writer.reset();
|
|
75
78
|
this.onDisconnectSubscription?.remove();
|
|
76
79
|
this.onDisconnectSubscription = undefined;
|
|
@@ -206,26 +209,8 @@ export class BTConnectionHandler {
|
|
|
206
209
|
this.callbacks.onServicesDiscovered?.(services.map(({
|
|
207
210
|
uuid
|
|
208
211
|
}) => uuid));
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
const subscription = this.device.monitorCharacteristicForService(mainService.uuid, monitorUuid.uuid, (error, result) => {
|
|
212
|
-
if (error) {
|
|
213
|
-
this.callbacks.onError?.(error);
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
if (!result || !result.value) {
|
|
217
|
-
this.callbacks.onError?.(new Error("Received empty data from device"));
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
if (monitorUuid.processData !== false) {
|
|
221
|
-
const hexValue = base64ToHex(result.value);
|
|
222
|
-
this.callbacks.onDataReceived?.(result.uuid, hexValue);
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
this.characteristicSubscriptions.push(subscription);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
const initialCommands = this.callbacks.initialCommands?.() ?? [];
|
|
212
|
+
await this.pairing.run(() => this.startMonitors(services));
|
|
213
|
+
const initialCommands = (await this.callbacks.initialCommands?.()) ?? [];
|
|
229
214
|
if (initialCommands.length > 0) {
|
|
230
215
|
await this.sendCommands(initialCommands);
|
|
231
216
|
this.callbacks.onCommandSent?.();
|
|
@@ -238,5 +223,89 @@ export class BTConnectionHandler {
|
|
|
238
223
|
this.callbacks.onError?.(error);
|
|
239
224
|
}
|
|
240
225
|
};
|
|
226
|
+
|
|
227
|
+
/** A monitor failing for pairing while starting is thrown here, for the pairing retry, not reported. */
|
|
228
|
+
startMonitors = async services => {
|
|
229
|
+
this.removeSubscriptions();
|
|
230
|
+
let starting = true;
|
|
231
|
+
let pairingError;
|
|
232
|
+
const onMonitorError = error => {
|
|
233
|
+
if (starting && isPairingRequired(error)) {
|
|
234
|
+
pairingError ??= error;
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
this.callbacks.onError?.(error);
|
|
238
|
+
};
|
|
239
|
+
try {
|
|
240
|
+
const monitored = [];
|
|
241
|
+
for (const service of services) {
|
|
242
|
+
for (const monitorUuid of service.monitorUuids) {
|
|
243
|
+
this.characteristicSubscriptions.push(this.monitor(service.uuid, monitorUuid, onMonitorError));
|
|
244
|
+
monitored.push({
|
|
245
|
+
serviceUuid: service.uuid,
|
|
246
|
+
characteristicUuid: monitorUuid.uuid
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
await awaitNotificationsEnabled(this.device, monitored);
|
|
251
|
+
if (pairingError) {
|
|
252
|
+
throw pairingError;
|
|
253
|
+
}
|
|
254
|
+
} finally {
|
|
255
|
+
starting = false;
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
monitor = (serviceUuid, monitorUuid, onMonitorError) => this.device.monitorCharacteristicForService(serviceUuid, monitorUuid.uuid, (error, result) => {
|
|
259
|
+
if (error) {
|
|
260
|
+
onMonitorError(error);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
if (!result || !result.value) {
|
|
264
|
+
this.callbacks.onError?.(new Error("Received empty data from device"));
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
if (monitorUuid.processData !== false) {
|
|
268
|
+
const hexValue = base64ToHex(result.value);
|
|
269
|
+
this.callbacks.onDataReceived?.(result.uuid, hexValue);
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
removeSubscriptions = () => {
|
|
273
|
+
this.characteristicSubscriptions.forEach(sub => sub?.remove());
|
|
274
|
+
this.characteristicSubscriptions = [];
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/** Tells the app once per connection that the platform is asking the user to pair. */
|
|
278
|
+
reportPairingRequired = () => {
|
|
279
|
+
if (this.pairingReported) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
this.pairingReported = true;
|
|
283
|
+
this.callbacks.onConnectionEvent?.({
|
|
284
|
+
kind: "pairing",
|
|
285
|
+
pairingCodeRequired: true
|
|
286
|
+
});
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
/** Sets the device clock when the declaration asked for it; a device that refuses keeps its own time. */
|
|
290
|
+
syncCurrentTime = async () => {
|
|
291
|
+
const clock = this.callbacks.currentTimeSync;
|
|
292
|
+
if (!clock) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
try {
|
|
296
|
+
const clockAt = await writeCurrentTime(this.device, clock);
|
|
297
|
+
if (clockAt) {
|
|
298
|
+
this.callbacks.onConnectionEvent?.({
|
|
299
|
+
kind: "clock-synchronized",
|
|
300
|
+
clockAt,
|
|
301
|
+
phoneUtcOffsetMinutes: -clockAt.getTimezoneOffset()
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
} catch (error) {
|
|
305
|
+
sentryLogger("info", "DEVICE: Current Time was not written", {
|
|
306
|
+
errorCode: toBluetoothError(error).code
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
};
|
|
241
310
|
}
|
|
242
311
|
//# sourceMappingURL=bt-connection-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokDuration","recordOvokMetric","startOvokSpan","BluetoothErrorCode","toBluetoothError","DeviceStatus","base64ToHex","BTCommandWriter","readDeviceInformation","BTConnectionHandler","characteristicSubscriptions","disconnectObserved","constructor","device","mainServices","callbacks","preferredMtu","writer","onError","isNormalDisconnect","connect","startedAt","Date","now","span","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","onDeviceInfo","readBatteryLevel","isConnected","Error","onStatusChanged","CONNECTED","subscribeToAllCharacteristics","setStatus","code","error","errorCode","PAIRING_REQUIRED","onConnectionEvent","kind","pairingCodeRequired","DISCONNECTED","message","end","destroy","forEach","sub","remove","reset","onDisconnectSubscription","undefined","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","requestedMtu","characteristic","readCharacteristicForService","value","Number","parseInt","isFinite","batteryLevel","maxRetries","retryDelay","maxDelay","connected","retryCount","listenForDisconnect","willRetry","Promise","resolve","setTimeout","Math","min","pow","onDisconnected","onDeviceDisconnected","servicesPresent","some","optional","services","discovered","Set","map","uuid","toLowerCase","filter","has","onServicesDiscovered","mainService","monitorUuid","monitorUuids","subscription","monitorCharacteristicForService","result","processData","hexValue","onDataReceived","push","initialCommands","length","onCommandSent"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":";;AAAA;;AAIA,SAASA,YAAY,QAAQ,yCAAsC;AACnE,SACEC,gBAAgB,EAChBC,kBAAkB,EAClBC,gBAAgB,EAChBC,aAAa,QACR,qCAAkC;AACzC,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,gCAA6B;AAGlF,SAASC,YAAY,QAAQ,8BAA2B;AAGxD,SAASC,WAAW,QAAQ,+BAA4B;AAExD,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,qBAAqB,QAAQ,4BAAyB;AAsB/D,OAAO,MAAMC,mBAAmB,CAAC;EAEvBC,2BAA2B,GAAmB,EAAE;EAChDC,kBAAkB,GAAG,KAAK;EAGlCC,WAAWA,CACQC,MAAc,EACdC,YAA2C,EAC3CC,SAAqC,EACrCC,YAAqB,EACtC;IAAA,KAJiBH,MAAc,GAAdA,MAAc;IAAA,KACdC,YAA2C,GAA3CA,YAA2C;IAAA,KAC3CC,SAAqC,GAArCA,SAAqC;IAAA,KACrCC,YAAqB,GAArBA,YAAqB;IAEtC,IAAI,CAACC,MAAM,GAAG,IAAIV,eAAe,CAC/BM,MAAM,EACNE,SAAS,CAACG,OAAO,EACjBH,SAAS,CAACI,kBACZ,CAAC;EACH;EAEOC,OAAO,GAAG,MAAAA,CAAA,KAAY;IAC3B,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAE5B,IAAI,CAACZ,kBAAkB,GAAG,KAAK;IAE/B,MAAMa,IAAI,GAAGtB,aAAa,CAAC,mBAAmB,CAAC;IAE/C,IAAI;MACF,MAAM,IAAI,CAACuB,kBAAkB,CAAC,CAAC;MAE/B,MAAM,IAAI,CAACC,mBAAmB,CAAC,CAAC;MAEhC,MAAM,IAAI,CAACb,MAAM,CAACc,qCAAqC,CAAC,CAAC;MACzD,MAAMnB,qBAAqB,CAAC,IAAI,CAACK,MAAM,EAAE,IAAI,CAACE,SAAS,CAACa,YAAY,CAAC;MACrE,MAAM,IAAI,CAACC,gBAAgB,CAAC,CAAC;MAE7B,IAAI,IAAI,CAAClB,kBAAkB,IAAI,EAAE,MAAM,IAAI,CAACE,MAAM,CAACiB,WAAW,CAAC,CAAC,CAAC,EAAE;QACjE,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;MAChE;MAEA,IAAI,CAAChB,SAAS,CAACiB,eAAe,GAAG3B,YAAY,CAAC4B,SAAS,CAAC;MAExD,MAAM,IAAI,CAACC,6BAA6B,CAAC,CAAC;MAC1CV,IAAI,EAAEW,SAAS,GAAG;QAAEC,IAAI,EAAE;MAAE,CAAC,CAAC;IAChC,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd,MAAMC,SAAS,GAAGlC,gBAAgB,CAACiC,KAAK,CAAC,CAACD,IAAI;MAE9CtC,YAAY,CAAC,OAAO,EAAE,wCAAwC,EAAE;QAC9DwC;MACF,CAAC,CAAC;MACF,IAAI,CAACvB,SAAS,CAACG,OAAO,GAAGmB,KAAyB,CAAC;MACnD,IAAIjC,gBAAgB,CAACiC,KAAK,CAAC,CAACD,IAAI,KAAKjC,kBAAkB,CAACoC,gBAAgB,EAAE;QACxEtC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,EAAE;UAC3CqC;QACF,CAAC,CAAC;QACFvC,gBAAgB,CAAC,gBAAgB,EAAE;UAAEuC;QAAU,CAAC,EAAEd,IAAI,CAAC;QACvD,IAAI,CAACT,SAAS,CAACyB,iBAAiB,GAAG;UACjCC,IAAI,EAAE,SAAS;UACfC,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ;MACA,IAAI,CAAC,IAAI,CAAC/B,kBAAkB,EAAE;QAC5B,IAAI,CAACI,SAAS,CAACiB,eAAe,GAAG3B,YAAY,CAACsC,YAAY,CAAC;MAC7D;MACAnB,IAAI,EAAEW,SAAS,GAAG;QAChBC,IAAI,EAAE,CAAC;QACPQ,OAAO,EAAEN;MACX,CAAC,CAAC;MACF,MAAMD,KAAK;IACb,CAAC,SAAS;MACRrC,kBAAkB,CAAC,iCAAiC,EAAEsB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,CAAC;MAC7EG,IAAI,EAAEqB,GAAG,CAAC,CAAC;IACb;EACF,CAAC;EAEMC,OAAO,GAAGA,CAAA,KAAM;IACrB,IAAI,CAACpC,2BAA2B,CAACqC,OAAO,CAAEC,GAAG,IAAKA,GAAG,EAAEC,MAAM,CAAC,CAAC,CAAC;IAChE,IAAI,CAACvC,2BAA2B,GAAG,EAAE;IACrC,IAAI,CAACO,MAAM,CAACiC,KAAK,CAAC,CAAC;IAEnB,IAAI,CAACC,wBAAwB,EAAEF,MAAM,CAAC,CAAC;IACvC,IAAI,CAACE,wBAAwB,GAAGC,SAAS;EAC3C,CAAC;;EAED;EACOC,YAAY,GAAIC,QAAkC,IACvD,IAAI,CAACrC,MAAM,CAACsC,IAAI,CAACD,QAAQ,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;EACU5B,mBAAmB,GAAG,MAAAA,CAAA,KAA2B;IACvD,IAAI,CAAC,IAAI,CAACV,YAAY,EAAE;MACtB;IACF;IAEA,IAAI;MACF,MAAMwC,UAAU,GAAG,MAAM,IAAI,CAAC3C,MAAM,CAAC4C,UAAU,CAAC,IAAI,CAACzC,YAAY,CAAC;MAElE,IAAI,CAACC,MAAM,CAACyC,gBAAgB,CAACF,UAAU,EAAEG,GAAG,IAAI,IAAI,CAAC9C,MAAM,CAAC8C,GAAG,CAAC;IAClE,CAAC,CAAC,OAAOtB,KAAK,EAAE;MACd,MAAMC,SAAS,GAAGlC,gBAAgB,CAACiC,KAAK,CAAC,CAACD,IAAI;MAE9CtC,YAAY,CAAC,MAAM,EAAE,qCAAqC,EAAE;QAC1D8D,YAAY,EAAE,IAAI,CAAC5C,YAAY;QAC/BsB;MACF,CAAC,CAAC;IACJ;EACF,CAAC;;EAED;EACQT,gBAAgB,GAAG,MAAAA,CAAA,KAA2B;IACpD,IAAI;MACF,MAAMgC,cAAc,GAAG,MAAM,IAAI,CAAChD,MAAM,CAACiD,4BAA4B,CACnE,MAAM,EACN,MACF,CAAC;MAED,IAAI,CAACD,cAAc,CAACE,KAAK,EAAE;QACzB;MACF;MAEA,MAAMA,KAAK,GAAGC,MAAM,CAACC,QAAQ,CAAC3D,WAAW,CAACuD,cAAc,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;MAE7E,IAAI,CAACC,MAAM,CAACE,QAAQ,CAACH,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,GAAG,EAAE;QACvD;MACF;MAEA,IAAI,CAAChD,SAAS,CAACyB,iBAAiB,GAAG;QACjCC,IAAI,EAAE,SAAS;QACf0B,YAAY,EAAEJ;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAEOtC,kBAAkB,GAAG,MAAAA,CAAA,KAAY;IACvC,MAAM2C,UAAU,GAAG,CAAC;IACpB,MAAMC,UAAU,GAAG,IAAI;IACvB,MAAMC,QAAQ,GAAG,KAAK;IACtB,IAAIC,SAAS,GAAG,KAAK;IACrB,IAAIC,UAAU,GAAG,CAAC;IAElB,OAAO,CAACD,SAAS,IAAIC,UAAU,GAAGJ,UAAU,EAAE;MAC5CG,SAAS,GAAG,MAAM,IAAI,CAAC1D,MAAM,CAACiB,WAAW,CAAC,CAAC;MAC3C,IAAIyC,SAAS,EAAE;QACb,IAAI,CAACE,mBAAmB,CAAC,CAAC;QAE1B;MACF;MACA,IAAI;QACF,MAAM,IAAI,CAAC5D,MAAM,CAACO,OAAO,CAAC,CAAC;QAC3B,IAAI,CAACqD,mBAAmB,CAAC,CAAC;QAC1BF,SAAS,GAAG,IAAI;MAClB,CAAC,CAAC,OAAOlC,KAAK,EAAE;QACdmC,UAAU,EAAE;QACZ,MAAMlC,SAAS,GAAGlC,gBAAgB,CAACiC,KAAK,CAAC,CAACD,IAAI;QAE9CtC,YAAY,CAAC,OAAO,EAAE,2BAA2B,EAAE;UACjDwC,SAAS;UACTkC;QACF,CAAC,CAAC;QACF,IAAIA,UAAU,IAAIJ,UAAU,EAAE;UAC5BtE,YAAY,CAAC,OAAO,EAAE,6CAA6C,EAAE;YACnEwC,SAAS;YACToC,SAAS,EAAEF,UAAU,GAAGJ;UAC1B,CAAC,CAAC;UACF,MAAM/B,KAAK;QACb;QAEA,MAAM,IAAIsC,OAAO,CAAEC,OAAO,IACxBC,UAAU,CACRD,OAAO,EACPE,IAAI,CAACC,GAAG,CAACV,UAAU,GAAGS,IAAI,CAACE,GAAG,CAAC,CAAC,EAAER,UAAU,GAAG,CAAC,CAAC,EAAEF,QAAQ,CAC7D,CACF,CAAC;MACH;IACF;EACF,CAAC;EAEOG,mBAAmB,GAAGA,CAAA,KAAM;IAClC,IAAI,CAACtB,wBAAwB,EAAEF,MAAM,CAAC,CAAC;IACvC,IAAI,CAACE,wBAAwB,GAAG,IAAI,CAACtC,MAAM,CAACoE,cAAc,CACxD,IAAI,CAACC,oBACP,CAAC;EACH,CAAC;EAEOA,oBAAoB,GAAI7C,KAAsB,IAAK;IACzD,IAAI,CAAC1B,kBAAkB,GAAG,IAAI;IAC9Bb,YAAY,CAAC,MAAM,EAAE,oCAAoC,EAAE;MACzD,IAAIuC,KAAK,GAAG;QAAEC,SAAS,EAAElC,gBAAgB,CAACiC,KAAK,CAAC,CAACD;MAAK,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,IAAIC,KAAK,IAAI,CAAC,IAAI,CAACtB,SAAS,CAACI,kBAAkB,GAAG,CAAC,EAAE;MACnD,IAAI,CAACJ,SAAS,CAACG,OAAO,GAAGmB,KAAK,CAAC;IACjC;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACI,IAAI,CAACtB,SAAS,CAACiB,eAAe,GAAG3B,YAAY,CAACsC,YAAY,CAAC;IAC3D,IAAI,CAACG,OAAO,CAAC,CAAC;EAChB,CAAC;;EAED;EACQqC,eAAe,GAAG,MAAAA,CAAA,KAA0C;IAClE,IACE,CAAC,IAAI,CAACrE,YAAY,CAACsE,IAAI,CAAC,CAAC;MAAEC;IAAS,CAAC,KAAKA,QAAQ,CAAC,IACnD,OAAO,IAAI,CAACxE,MAAM,CAACyE,QAAQ,KAAK,UAAU,EAC1C;MACA,OAAO,IAAI,CAACxE,YAAY;IAC1B;IAEA,IAAIyE,UAAuB;IAE3B,IAAI;MACFA,UAAU,GAAG,IAAIC,GAAG,CAClB,CAAC,MAAM,IAAI,CAAC3E,MAAM,CAACyE,QAAQ,CAAC,CAAC,EAAEG,GAAG,CAAC,CAAC;QAAEC;MAAK,CAAC,KAAKA,IAAI,CAACC,WAAW,CAAC,CAAC,CACrE,CAAC;IACH,CAAC,CAAC,MAAM;MACN;MACA,OAAO,IAAI,CAAC7E,YAAY;IAC1B;IAEA,OAAO,IAAI,CAACA,YAAY,CAAC8E,MAAM,CAC7B,CAAC;MAAEF,IAAI;MAAEL;IAAS,CAAC,KAAK,CAACA,QAAQ,IAAIE,UAAU,CAACM,GAAG,CAACH,IAAI,CAACC,WAAW,CAAC,CAAC,CACxE,CAAC;EACH,CAAC;EAEOzD,6BAA6B,GAAG,MAAAA,CAAA,KAAY;IAClD,IAAI;MACF,MAAMoD,QAAQ,GAAG,MAAM,IAAI,CAACH,eAAe,CAAC,CAAC;MAE7C,IAAI,CAACpE,SAAS,CAAC+E,oBAAoB,GAAGR,QAAQ,CAACG,GAAG,CAAC,CAAC;QAAEC;MAAK,CAAC,KAAKA,IAAI,CAAC,CAAC;MAEvE,KAAK,MAAMK,WAAW,IAAIT,QAAQ,EAAE;QAClC,KAAK,MAAMU,WAAW,IAAID,WAAW,CAACE,YAAY,EAAE;UAClD,MAAMC,YAAY,GAAG,IAAI,CAACrF,MAAM,CAACsF,+BAA+B,CAC9DJ,WAAW,CAACL,IAAI,EAChBM,WAAW,CAACN,IAAI,EAChB,CAACrD,KAAK,EAAE+D,MAAM,KAAK;YACjB,IAAI/D,KAAK,EAAE;cACT,IAAI,CAACtB,SAAS,CAACG,OAAO,GAAGmB,KAAK,CAAC;cAE/B;YACF;YAEA,IAAI,CAAC+D,MAAM,IAAI,CAACA,MAAM,CAACrC,KAAK,EAAE;cAC5B,IAAI,CAAChD,SAAS,CAACG,OAAO,GACpB,IAAIa,KAAK,CAAC,iCAAiC,CAC7C,CAAC;cAED;YACF;YAEA,IAAIiE,WAAW,CAACK,WAAW,KAAK,KAAK,EAAE;cACrC,MAAMC,QAAQ,GAAGhG,WAAW,CAAC8F,MAAM,CAACrC,KAAK,CAAC;cAE1C,IAAI,CAAChD,SAAS,CAACwF,cAAc,GAAGH,MAAM,CAACV,IAAI,EAAEY,QAAQ,CAAC;YACxD;UACF,CACF,CAAC;UAED,IAAI,CAAC5F,2BAA2B,CAAC8F,IAAI,CAACN,YAAY,CAAC;QACrD;MACF;MAEA,MAAMO,eAAe,GAAG,IAAI,CAAC1F,SAAS,CAAC0F,eAAe,GAAG,CAAC,IAAI,EAAE;MAEhE,IAAIA,eAAe,CAACC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,IAAI,CAACrD,YAAY,CAACoD,eAAe,CAAC;QACxC,IAAI,CAAC1F,SAAS,CAAC4F,aAAa,GAAG,CAAC;MAClC;IACF,CAAC,CAAC,OAAOtE,KAAK,EAAE;MACd,MAAMC,SAAS,GAAGlC,gBAAgB,CAACiC,KAAK,CAAC,CAACD,IAAI;MAE9CtC,YAAY,CACV,OAAO,EACP,kDAAkD,EAClD;QACEwC;MACF,CACF,CAAC;MACD,IAAI,CAACvB,SAAS,CAACG,OAAO,GAAGmB,KAAyB,CAAC;IACrD;EACF,CAAC;AACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokDuration","recordOvokMetric","startOvokSpan","BluetoothErrorCode","toBluetoothError","DeviceStatus","base64ToHex","BTCommandWriter","writeCurrentTime","readDeviceInformation","awaitNotificationsEnabled","BTPairingRetry","isPairingRequired","BTConnectionHandler","characteristicSubscriptions","disconnectObserved","pairingReported","constructor","device","mainServices","callbacks","preferredMtu","pairing","reportPairingRequired","writer","onError","isNormalDisconnect","run","connect","startedAt","Date","now","span","connectWithRetries","requestPreferredMtu","discoverAllServicesAndCharacteristics","onDeviceInfo","readBatteryLevel","syncCurrentTime","isConnected","Error","onStatusChanged","CONNECTED","subscribeToAllCharacteristics","setStatus","code","error","errorCode","PAIRING_REQUIRED","DISCONNECTED","message","end","destroy","removeSubscriptions","reset","onDisconnectSubscription","remove","undefined","sendCommands","commands","send","negotiated","requestMTU","useNegotiatedMtu","mtu","requestedMtu","characteristic","readCharacteristicForService","value","Number","parseInt","isFinite","onConnectionEvent","kind","batteryLevel","maxRetries","retryDelay","maxDelay","connected","retryCount","listenForDisconnect","willRetry","Promise","resolve","setTimeout","Math","min","pow","onDisconnected","onDeviceDisconnected","servicesPresent","some","optional","services","discovered","Set","map","uuid","toLowerCase","filter","has","onServicesDiscovered","startMonitors","initialCommands","length","onCommandSent","starting","pairingError","onMonitorError","monitored","service","monitorUuid","monitorUuids","push","monitor","serviceUuid","characteristicUuid","monitorCharacteristicForService","result","processData","hexValue","onDataReceived","forEach","sub","pairingCodeRequired","clock","currentTimeSync","clockAt","phoneUtcOffsetMinutes","getTimezoneOffset"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-connection-handler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Buffer } from "buffer";
|
|
4
|
+
import { getClockParts } from "../../types/clock-sync.js";
|
|
5
|
+
import { sigUuid } from "../../utils/sig-uuid.js";
|
|
6
|
+
const CURRENT_TIME_SERVICE = sigUuid("1805");
|
|
7
|
+
const CURRENT_TIME = sigUuid("2a2b");
|
|
8
|
+
const SUNDAY = 7;
|
|
9
|
+
const BYTE_MASK = 0xff;
|
|
10
|
+
const BITS_PER_BYTE = 8;
|
|
11
|
+
const NO_FRACTION = 0;
|
|
12
|
+
|
|
13
|
+
/** Adjust Reason bit 0: the time was set by hand, which is what a phone writing it is. */
|
|
14
|
+
const MANUAL_TIME_UPDATE = 0x01;
|
|
15
|
+
/** 1 for Monday to 7 for Sunday, as Day of Week is encoded. */
|
|
16
|
+
const dayOfWeek = ({
|
|
17
|
+
year,
|
|
18
|
+
month,
|
|
19
|
+
day
|
|
20
|
+
}) => new Date(Date.UTC(year, month - 1, day)).getUTCDay() || SUNDAY;
|
|
21
|
+
|
|
22
|
+
/** Current Time 0x2A2B: Date Time, Day of Week, Fractions256 and Adjust Reason. */
|
|
23
|
+
const currentTimeBytes = parts => [parts.year & BYTE_MASK, parts.year >> BITS_PER_BYTE, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, dayOfWeek(parts), NO_FRACTION, MANUAL_TIME_UPDATE];
|
|
24
|
+
const isWritableCurrentTime = ({
|
|
25
|
+
uuid,
|
|
26
|
+
isWritableWithResponse,
|
|
27
|
+
isWritableWithoutResponse
|
|
28
|
+
}) => uuid.toLowerCase() === CURRENT_TIME && (isWritableWithResponse || isWritableWithoutResponse);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Sets the device clock through the Current Time Service.
|
|
32
|
+
*
|
|
33
|
+
* Resolves to the time written, or `undefined` when the device has no writable Current Time
|
|
34
|
+
* characteristic. A device that refuses the write rejects.
|
|
35
|
+
*/
|
|
36
|
+
const writeCurrentTime = async (device, {
|
|
37
|
+
now,
|
|
38
|
+
timezone
|
|
39
|
+
}) => {
|
|
40
|
+
const characteristics = await device.characteristicsForService(CURRENT_TIME_SERVICE).catch(() => []);
|
|
41
|
+
const characteristic = characteristics.find(isWritableCurrentTime);
|
|
42
|
+
if (!characteristic) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const time = now?.() ?? new Date();
|
|
46
|
+
const value = Buffer.from(currentTimeBytes(getClockParts(time, timezone))).toString("base64");
|
|
47
|
+
if (characteristic.isWritableWithResponse) {
|
|
48
|
+
await device.writeCharacteristicWithResponseForService(CURRENT_TIME_SERVICE, CURRENT_TIME, value);
|
|
49
|
+
} else {
|
|
50
|
+
await device.writeCharacteristicWithoutResponseForService(CURRENT_TIME_SERVICE, CURRENT_TIME, value);
|
|
51
|
+
}
|
|
52
|
+
return time;
|
|
53
|
+
};
|
|
54
|
+
export { writeCurrentTime };
|
|
55
|
+
//# sourceMappingURL=bt-current-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","getClockParts","sigUuid","CURRENT_TIME_SERVICE","CURRENT_TIME","SUNDAY","BYTE_MASK","BITS_PER_BYTE","NO_FRACTION","MANUAL_TIME_UPDATE","dayOfWeek","year","month","day","Date","UTC","getUTCDay","currentTimeBytes","parts","hours","minutes","seconds","isWritableCurrentTime","uuid","isWritableWithResponse","isWritableWithoutResponse","toLowerCase","writeCurrentTime","device","now","timezone","characteristics","characteristicsForService","catch","characteristic","find","undefined","time","value","from","toString","writeCharacteristicWithResponseForService","writeCharacteristicWithoutResponseForService"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-current-time.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,QAAQ;AAI/B,SAA2BC,aAAa,QAAQ,2BAAwB;AACxE,SAASC,OAAO,QAAQ,yBAAsB;AAE9C,MAAMC,oBAAoB,GAAGD,OAAO,CAAC,MAAM,CAAC;AAC5C,MAAME,YAAY,GAAGF,OAAO,CAAC,MAAM,CAAC;AAEpC,MAAMG,MAAM,GAAG,CAAC;AAChB,MAAMC,SAAS,GAAG,IAAI;AACtB,MAAMC,aAAa,GAAG,CAAC;AACvB,MAAMC,WAAW,GAAG,CAAC;;AAErB;AACA,MAAMC,kBAAkB,GAAG,IAAI;AAI/B;AACA,MAAMC,SAAS,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAmB,CAAC,KACpD,IAAIC,IAAI,CAACA,IAAI,CAACC,GAAG,CAACJ,IAAI,EAAEC,KAAK,GAAG,CAAC,EAAEC,GAAG,CAAC,CAAC,CAACG,SAAS,CAAC,CAAC,IAAIX,MAAM;;AAEhE;AACA,MAAMY,gBAAgB,GAAIC,KAAoB,IAAe,CAC3DA,KAAK,CAACP,IAAI,GAAGL,SAAS,EACtBY,KAAK,CAACP,IAAI,IAAIJ,aAAa,EAC3BW,KAAK,CAACN,KAAK,EACXM,KAAK,CAACL,GAAG,EACTK,KAAK,CAACC,KAAK,EACXD,KAAK,CAACE,OAAO,EACbF,KAAK,CAACG,OAAO,EACbX,SAAS,CAACQ,KAAK,CAAC,EAChBV,WAAW,EACXC,kBAAkB,CACnB;AAED,MAAMa,qBAAqB,GAAGA,CAAC;EAC7BC,IAAI;EACJC,sBAAsB;EACtBC;AACc,CAAC,KACfF,IAAI,CAACG,WAAW,CAAC,CAAC,KAAKtB,YAAY,KAAKoB,sBAAsB,IAAIC,yBAAyB,CAAC;;AAE9F;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAgB,GAAG,MAAAA,CACvBC,MAAc,EACd;EAAEC,GAAG;EAAEC;AAA2B,CAAC,KACL;EAC9B,MAAMC,eAAe,GAAG,MAAMH,MAAM,CAACI,yBAAyB,CAAC7B,oBAAoB,CAAC,CAAC8B,KAAK,CAAC,MAAM,EAAE,CAAC;EACpG,MAAMC,cAAc,GAAGH,eAAe,CAACI,IAAI,CAACb,qBAAqB,CAAC;EAElE,IAAI,CAACY,cAAc,EAAE;IACnB,OAAOE,SAAS;EAClB;EAEA,MAAMC,IAAI,GAAGR,GAAG,GAAG,CAAC,IAAI,IAAIf,IAAI,CAAC,CAAC;EAClC,MAAMwB,KAAK,GAAGtC,MAAM,CAACuC,IAAI,CAACtB,gBAAgB,CAAChB,aAAa,CAACoC,IAAI,EAAEP,QAAQ,CAAC,CAAC,CAAC,CAACU,QAAQ,CAAC,QAAQ,CAAC;EAE7F,IAAIN,cAAc,CAACV,sBAAsB,EAAE;IACzC,MAAMI,MAAM,CAACa,yCAAyC,CAACtC,oBAAoB,EAAEC,YAAY,EAAEkC,KAAK,CAAC;EACnG,CAAC,MAAM;IACL,MAAMV,MAAM,CAACc,4CAA4C,CAACvC,oBAAoB,EAAEC,YAAY,EAAEkC,KAAK,CAAC;EACtG;EAEA,OAAOD,IAAI;AACb,CAAC;AAED,SAASV,gBAAgB","ignoreList":[]}
|
|
@@ -3,50 +3,31 @@
|
|
|
3
3
|
import { Buffer } from "buffer";
|
|
4
4
|
import { sentryLogger } from "../../../helpers/utils/sentry-logger.js";
|
|
5
5
|
import { toBluetoothError } from "../../types/bluetooth-error.js";
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const wait = milliseconds => new Promise(resolve => setTimeout(resolve, milliseconds));
|
|
13
|
-
const readDeviceInformation = async (device, onDeviceInfo) => {
|
|
6
|
+
import { runOnce } from "./bt-pairing-retry.js";
|
|
7
|
+
const GENERIC_ACCESS_SERVICE = "00001800-0000-1000-8000-00805f9b34fb";
|
|
8
|
+
const DEVICE_INFORMATION_SERVICE = "0000180a-0000-1000-8000-00805f9b34fb";
|
|
9
|
+
const INFORMATION_CHARACTERISTICS = [["name", GENERIC_ACCESS_SERVICE, "00002a00-0000-1000-8000-00805f9b34fb"], ["manufacturerName", DEVICE_INFORMATION_SERVICE, "00002a29-0000-1000-8000-00805f9b34fb"], ["model", DEVICE_INFORMATION_SERVICE, "00002a24-0000-1000-8000-00805f9b34fb"], ["serialNumber", DEVICE_INFORMATION_SERVICE, "00002a25-0000-1000-8000-00805f9b34fb"]];
|
|
10
|
+
const textOf = base64 => Buffer.from(base64, "base64").toString("utf8").replace(/\0+$/, "").trim();
|
|
11
|
+
const readDeviceInformation = async (device, onDeviceInfo, retryAfterPairing = runOnce) => {
|
|
14
12
|
const read = device.readCharacteristicForService;
|
|
15
13
|
if (typeof read !== "function") {
|
|
16
14
|
return;
|
|
17
15
|
}
|
|
18
16
|
const info = {};
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const characteristic = await read.call(device, serviceUuid, characteristicUuid);
|
|
26
|
-
const value = characteristic?.value;
|
|
27
|
-
if (!value) {
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
const text = Buffer.from(value, "base64").toString("utf8").replace(/\0+$/, "").trim();
|
|
31
|
-
if (text) {
|
|
32
|
-
info[key] = text;
|
|
33
|
-
}
|
|
34
|
-
} catch (error) {
|
|
35
|
-
// Optional GAP/Device Information characteristics are not present on every device.
|
|
36
|
-
sentryLogger("info", "DEVICE: Optional device information unavailable", {
|
|
37
|
-
characteristicUuid,
|
|
38
|
-
errorCode: toBluetoothError(error).code
|
|
39
|
-
});
|
|
40
|
-
if (attempt < MAX_PAIRING_RETRIES && isPairingAuthenticationError(error)) {
|
|
41
|
-
retry.push([key, serviceUuid, characteristicUuid]);
|
|
42
|
-
}
|
|
17
|
+
for (const [key, serviceUuid, characteristicUuid] of INFORMATION_CHARACTERISTICS) {
|
|
18
|
+
try {
|
|
19
|
+
const characteristic = await retryAfterPairing(() => read.call(device, serviceUuid, characteristicUuid));
|
|
20
|
+
const text = characteristic?.value ? textOf(characteristic.value) : "";
|
|
21
|
+
if (text) {
|
|
22
|
+
info[key] = text;
|
|
43
23
|
}
|
|
24
|
+
} catch (error) {
|
|
25
|
+
// Optional GAP/Device Information characteristics are not present on every device.
|
|
26
|
+
sentryLogger("info", "DEVICE: Optional device information unavailable", {
|
|
27
|
+
characteristicUuid,
|
|
28
|
+
errorCode: toBluetoothError(error).code
|
|
29
|
+
});
|
|
44
30
|
}
|
|
45
|
-
if (!retry.length) {
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
await wait(PAIRING_RETRY_DELAY_MS * (attempt + 1));
|
|
49
|
-
pending = retry;
|
|
50
31
|
}
|
|
51
32
|
if (Object.keys(info).length > 0) {
|
|
52
33
|
onDeviceInfo?.(info);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Buffer","sentryLogger","toBluetoothError","
|
|
1
|
+
{"version":3,"names":["Buffer","sentryLogger","toBluetoothError","runOnce","GENERIC_ACCESS_SERVICE","DEVICE_INFORMATION_SERVICE","INFORMATION_CHARACTERISTICS","textOf","base64","from","toString","replace","trim","readDeviceInformation","device","onDeviceInfo","retryAfterPairing","read","readCharacteristicForService","info","key","serviceUuid","characteristicUuid","characteristic","call","text","value","error","errorCode","code","Object","keys","length"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-device-information.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,QAAQ;AAI/B,SAASC,YAAY,QAAQ,yCAAsC;AACnE,SAASC,gBAAgB,QAAQ,gCAA6B;AAE9D,SAAuBC,OAAO,QAAQ,uBAAoB;AAS1D,MAAMC,sBAAsB,GAAG,sCAAsC;AACrE,MAAMC,0BAA0B,GAAG,sCAAsC;AAEzE,MAAMC,2BAAmF,GAAG,CAC1F,CAAC,MAAM,EAAEF,sBAAsB,EAAE,sCAAsC,CAAC,EACxE,CAAC,kBAAkB,EAAEC,0BAA0B,EAAE,sCAAsC,CAAC,EACxF,CAAC,OAAO,EAAEA,0BAA0B,EAAE,sCAAsC,CAAC,EAC7E,CAAC,cAAc,EAAEA,0BAA0B,EAAE,sCAAsC,CAAC,CACrF;AAED,MAAME,MAAM,GAAIC,MAAc,IAC5BR,MAAM,CAACS,IAAI,CAACD,MAAM,EAAE,QAAQ,CAAC,CAACE,QAAQ,CAAC,MAAM,CAAC,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;AAE3E,MAAMC,qBAAqB,GAAG,MAAAA,CAC5BC,MAAc,EACdC,YAAkD,EAClDC,iBAA+B,GAAGb,OAAO,KACvB;EAClB,MAAMc,IAAI,GAAGH,MAAM,CAACI,4BAA4B;EAEhD,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9B;EACF;EAEA,MAAME,IAAyB,GAAG,CAAC,CAAC;EAEpC,KAAK,MAAM,CAACC,GAAG,EAAEC,WAAW,EAAEC,kBAAkB,CAAC,IAAIhB,2BAA2B,EAAE;IAChF,IAAI;MACF,MAAMiB,cAAc,GAAG,MAAMP,iBAAiB,CAAC,MAC7CC,IAAI,CAACO,IAAI,CAACV,MAAM,EAAEO,WAAW,EAAEC,kBAAkB,CACnD,CAAC;MAED,MAAMG,IAAI,GAAGF,cAAc,EAAEG,KAAK,GAAGnB,MAAM,CAACgB,cAAc,CAACG,KAAK,CAAC,GAAG,EAAE;MAEtE,IAAID,IAAI,EAAE;QACRN,IAAI,CAACC,GAAG,CAAC,GAAGK,IAAI;MAClB;IACF,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd;MACA1B,YAAY,CAAC,MAAM,EAAE,iDAAiD,EAAE;QACtEqB,kBAAkB;QAClBM,SAAS,EAAE1B,gBAAgB,CAACyB,KAAK,CAAC,CAACE;MACrC,CAAC,CAAC;IACJ;EACF;EAEA,IAAIC,MAAM,CAACC,IAAI,CAACZ,IAAI,CAAC,CAACa,MAAM,GAAG,CAAC,EAAE;IAChCjB,YAAY,GAAGI,IAAI,CAAC;EACtB;AACF,CAAC;AAED,SAASN,qBAAqB","ignoreList":[]}
|
|
@@ -8,11 +8,11 @@ import { dailyTotalDay } from "../../../next/bluetooth/daily-total-day.js";
|
|
|
8
8
|
import { BUILT_IN_MEASUREMENT_TYPES } from "../../constants/built-in-measurement-types.js";
|
|
9
9
|
import { findDeviceVariant } from "../../constants/device-variants.js";
|
|
10
10
|
import { toBluetoothError } from "../../types/bluetooth-error.js";
|
|
11
|
-
import { clockSyncCapabilityForDevice } from "../../types/clock-sync.js";
|
|
11
|
+
import { clockSyncCapabilityForDevice, isClockSyncEnabled } from "../../types/clock-sync.js";
|
|
12
12
|
import { DeviceStatus } from "../../types/device-status.js";
|
|
13
13
|
import { isFromAcceptedMemorySlot } from "../../utils/device-user.js";
|
|
14
14
|
import { errorCallbackPayload } from "../../utils/error-callback-payload.js";
|
|
15
|
-
import { createStableResultId } from "../../utils/result-identity.js";
|
|
15
|
+
import { createLegacyResultId, createStableResultId } from "../../utils/result-identity.js";
|
|
16
16
|
import { supportedMeasurementTypeKeys } from "../../utils/supported-measurement-type-keys.js";
|
|
17
17
|
import { BTConnectionHandler } from "./bt-connection-handler.js";
|
|
18
18
|
import { BTDataProcessor } from "./bt-data-processor.js";
|
|
@@ -90,6 +90,13 @@ export class BTManagedDevice {
|
|
|
90
90
|
/** Only declarations with an actual bonding flow should report this event. */
|
|
91
91
|
reportsBondedEvent = false;
|
|
92
92
|
|
|
93
|
+
/**
|
|
94
|
+
* Writes the phone's time to the device's Current Time characteristic on connect, when it
|
|
95
|
+
* has a writable one. Only for a device whose clock has no protocol of its own, and never
|
|
96
|
+
* once the app turned clock synchronisation off.
|
|
97
|
+
*/
|
|
98
|
+
syncsCurrentTime = false;
|
|
99
|
+
|
|
93
100
|
/**
|
|
94
101
|
* Decides whether the buffer holds a parseable frame.
|
|
95
102
|
*
|
|
@@ -130,12 +137,14 @@ export class BTManagedDevice {
|
|
|
130
137
|
onConnectionEvent: onConnectionEventCallback,
|
|
131
138
|
onDeviceDisconnected: onDeviceDisconnectedCallback,
|
|
132
139
|
oneReadingPerConnection,
|
|
133
|
-
resultPolicy
|
|
140
|
+
resultPolicy,
|
|
141
|
+
clockSync
|
|
134
142
|
}) {
|
|
135
143
|
this.device = device;
|
|
136
144
|
this.oneReadingPerConnection = oneReadingPerConnection === true;
|
|
137
145
|
this.resultPolicy = resultPolicy;
|
|
138
146
|
this.policyPicksDelivery = resultPolicy?.default !== undefined || resultPolicy?.byMeasurement !== undefined;
|
|
147
|
+
this.clockSyncOptions = clockSync;
|
|
139
148
|
sentryLogger("info", "BT_MANAGER: Creating BTManagedDevice");
|
|
140
149
|
this.deviceData = {
|
|
141
150
|
id: device.id,
|
|
@@ -256,6 +265,11 @@ export class BTManagedDevice {
|
|
|
256
265
|
enumerable: true,
|
|
257
266
|
writable: false
|
|
258
267
|
});
|
|
268
|
+
Object.defineProperty(result, "legacyId", {
|
|
269
|
+
value: createLegacyResultId(this.deviceData, data),
|
|
270
|
+
enumerable: true,
|
|
271
|
+
writable: false
|
|
272
|
+
});
|
|
259
273
|
onResultCallback?.(result);
|
|
260
274
|
};
|
|
261
275
|
this.onDeviceDisconnected = onDeviceDisconnectedCallback;
|
|
@@ -288,6 +302,7 @@ export class BTManagedDevice {
|
|
|
288
302
|
});
|
|
289
303
|
}
|
|
290
304
|
};
|
|
305
|
+
currentTimeSync = () => this.syncsCurrentTime && isClockSyncEnabled(this.clockSyncOptions) ? this.clockSyncOptions ?? {} : undefined;
|
|
291
306
|
connectInternal = async () => {
|
|
292
307
|
this.resultReportedThisConnection = false;
|
|
293
308
|
this.reportedMeasurementKinds.clear();
|
|
@@ -344,6 +359,7 @@ export class BTManagedDevice {
|
|
|
344
359
|
},
|
|
345
360
|
onServicesDiscovered: uuids => sequencer.onServicesDiscovered?.(uuids),
|
|
346
361
|
initialCommands: () => sequencer.initialCommands(),
|
|
362
|
+
currentTimeSync: this.currentTimeSync(),
|
|
347
363
|
onCommandSent: () => {
|
|
348
364
|
this.dataProcessor?.armStuckTimeout();
|
|
349
365
|
this.dataProcessor?.armCommandTimeout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokMetric","dailyTotalDay","BUILT_IN_MEASUREMENT_TYPES","findDeviceVariant","toBluetoothError","clockSyncCapabilityForDevice","DeviceStatus","isFromAcceptedMemorySlot","errorCallbackPayload","createStableResultId","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","connected","destroyed","resultReportedThisConnection","historyTransferActive","bondedEventReported","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","getSupportedMeasurementTypeKeys","declared","mainServices","length","deviceData","name","reportsBondedEvent","handleSuccessResult","_successResult","_collectedValues","handleMeasurementEnd","policyFor","measurementTypeKey","resultPolicy","byMeasurement","default","reportResult","result","onResult","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResultCallback","onSeriesValue","onSeriesValueCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","policyPicksDelivery","undefined","id","localName","manufacturerData","sn","measurementTypes","clockSync","variant","String","manufacturer","model","status","error","normalized","errorCode","code","caseType","_","data","acceptedMemorySlots","policy","has","add","day","Date","now","key","kind","progress","current","Object","defineProperty","value","enumerable","writable","destroy","connectionHandler","dataProcessor","disconnect","cancelConnection","connectInternal","clear","sequencer","createCommandSequencer","isHistoryTransfer","onStatusChanged","CONNECTED","bind","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","onServicesDiscovered","uuids","initialCommands","onCommandSent","armStuckTimeout","armCommandTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","onMeasurementEnd","validatePackage","parsedData","collectedValues","nextCommand","frame","sendCommands","commands","commandTimeoutMs","onCommandTimeout","commandProgress","handleDependentResult","frameReader","connect","Promise","reject","Error","connectionPromise","resolve","finally"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["sentryLogger","addOvokSpanEvent","recordOvokMetric","dailyTotalDay","BUILT_IN_MEASUREMENT_TYPES","findDeviceVariant","toBluetoothError","clockSyncCapabilityForDevice","isClockSyncEnabled","DeviceStatus","isFromAcceptedMemorySlot","errorCallbackPayload","createLegacyResultId","createStableResultId","supportedMeasurementTypeKeys","BTConnectionHandler","BTDataProcessor","pollingSequencerFor","BTManagedDevice","connected","destroyed","resultReportedThisConnection","historyTransferActive","bondedEventReported","reportedMeasurementKinds","Set","reportedDailyTotals","historyResultCount","getSupportedMeasurementTypeKeys","declared","mainServices","length","deviceData","name","reportsBondedEvent","syncsCurrentTime","handleSuccessResult","_successResult","_collectedValues","handleMeasurementEnd","policyFor","measurementTypeKey","resultPolicy","byMeasurement","default","reportResult","result","onResult","constructor","device","deviceName","onError","onErrorCallback","onDeviceStatusChanged","onDeviceStatusChangedCallback","onResultCallback","onSeriesValue","onSeriesValueCallback","onConnectionEvent","onConnectionEventCallback","onDeviceDisconnected","onDeviceDisconnectedCallback","oneReadingPerConnection","clockSync","policyPicksDelivery","undefined","clockSyncOptions","id","localName","manufacturerData","sn","measurementTypes","variant","String","manufacturer","model","status","error","normalized","errorCode","code","caseType","_","data","acceptedMemorySlots","policy","has","add","day","Date","now","key","kind","progress","current","Object","defineProperty","value","enumerable","writable","destroy","connectionHandler","dataProcessor","disconnect","cancelConnection","currentTimeSync","connectInternal","clear","sequencer","createCommandSequencer","isHistoryTransfer","onStatusChanged","CONNECTED","bind","DISCONNECTED","event","onDataReceived","uuid","hexValue","processData","onDeviceInfo","info","manufacturerName","serialNumber","onServicesDiscovered","uuids","initialCommands","onCommandSent","armStuckTimeout","armCommandTimeout","isNormalDisconnect","preferredMtu","stuckDataTimeout","onStreamStart","onMeasurementEnd","validatePackage","parsedData","collectedValues","nextCommand","frame","sendCommands","commands","commandTimeoutMs","onCommandTimeout","commandProgress","handleDependentResult","frameReader","connect","Promise","reject","Error","connectionPromise","resolve","finally"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-managed-device.ts"],"mappings":"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","ignoreList":[]}
|