@ovok/native 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +9 -0
  2. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  3. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +67 -7
  4. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  5. package/lib/commonjs/modules/bt-management/index.js +33 -0
  6. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  7. package/lib/commonjs/modules/bt-management/services/background-sync/background-ble-manager.js +27 -0
  8. package/lib/commonjs/modules/bt-management/services/background-sync/background-ble-manager.js.map +1 -0
  9. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js +31 -0
  10. package/lib/commonjs/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -0
  11. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js +98 -0
  12. package/lib/commonjs/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -0
  13. package/lib/commonjs/modules/bt-management/services/bt-manager.js +19 -4
  14. package/lib/commonjs/modules/bt-management/services/bt-manager.js.map +1 -1
  15. package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +25 -0
  16. package/lib/commonjs/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/types/background-sync.js +6 -0
  18. package/lib/commonjs/modules/bt-management/types/background-sync.js.map +1 -0
  19. package/lib/module/modules/bt-device/constants/supported-devices.js +9 -0
  20. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  21. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +67 -7
  22. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  23. package/lib/module/modules/bt-management/index.js +3 -0
  24. package/lib/module/modules/bt-management/index.js.map +1 -1
  25. package/lib/module/modules/bt-management/services/background-sync/background-ble-manager.js +22 -0
  26. package/lib/module/modules/bt-management/services/background-sync/background-ble-manager.js.map +1 -0
  27. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js +26 -0
  28. package/lib/module/modules/bt-management/services/background-sync/background-service-uuids.js.map +1 -0
  29. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js +94 -0
  30. package/lib/module/modules/bt-management/services/background-sync/background-sync-coordinator.js.map +1 -0
  31. package/lib/module/modules/bt-management/services/bt-manager.js +19 -4
  32. package/lib/module/modules/bt-management/services/bt-manager.js.map +1 -1
  33. package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js +22 -0
  34. package/lib/module/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.js.map +1 -0
  35. package/lib/module/modules/bt-management/types/background-sync.js +4 -0
  36. package/lib/module/modules/bt-management/types/background-sync.js.map +1 -0
  37. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  38. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  39. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +3 -0
  41. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts +13 -0
  43. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts.map +1 -0
  44. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +3 -0
  45. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -0
  46. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +25 -0
  47. package/lib/typescript/commonjs/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -0
  48. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts +8 -2
  49. package/lib/typescript/commonjs/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts +22 -0
  51. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -0
  52. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +32 -0
  53. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -0
  54. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  55. package/lib/typescript/commonjs/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  56. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  57. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  58. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  59. package/lib/typescript/module/src/modules/bt-management/index.d.ts +3 -0
  60. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  61. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts +13 -0
  62. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-ble-manager.d.ts.map +1 -0
  63. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts +3 -0
  64. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-service-uuids.d.ts.map +1 -0
  65. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts +25 -0
  66. package/lib/typescript/module/src/modules/bt-management/services/background-sync/background-sync-coordinator.d.ts.map +1 -0
  67. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts +8 -2
  68. package/lib/typescript/module/src/modules/bt-management/services/bt-manager.d.ts.map +1 -1
  69. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts +22 -0
  70. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.d.ts.map +1 -0
  71. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +32 -0
  72. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -0
  73. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts +2 -0
  74. package/lib/typescript/module/src/modules/bt-management/types/btprovider-children-props.d.ts.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import { standardBloodPressureDevice } from "../standard-gatt/standard-gatt.devices.js";
4
+
5
+ /** The product name used by the visomat comfort soft BT monitor while advertising. */
6
+ const VISOMAT_COMFORT_SOFT_BT_NAME_MATCH = /^visomat\s+comfort\s+soft\s+bt$/i;
7
+ /**
8
+ * Declares the visomat comfort soft BT upper-arm monitor.
9
+ *
10
+ * The monitor uses the Bluetooth SIG Blood Pressure Service and Measurement characteristic,
11
+ * so the shared profile handles the 0x2A35 measurement without a vendor-specific command or
12
+ * pairing flow.
13
+ */
14
+ const visomatComfortSoftBtMonitor = params => standardBloodPressureDevice({
15
+ id: params.id,
16
+ nameMatch: params.nameMatch ?? VISOMAT_COMFORT_SOFT_BT_NAME_MATCH,
17
+ ...(params.stuckDataTimeoutMs === undefined ? {} : {
18
+ stuckDataTimeoutMs: params.stuckDataTimeoutMs
19
+ })
20
+ });
21
+ export { VISOMAT_COMFORT_SOFT_BT_NAME_MATCH, visomatComfortSoftBtMonitor };
22
+ //# sourceMappingURL=visomat.comfort-soft-bt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["standardBloodPressureDevice","VISOMAT_COMFORT_SOFT_BT_NAME_MATCH","visomatComfortSoftBtMonitor","params","id","nameMatch","stuckDataTimeoutMs","undefined"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.ts"],"mappings":";;AACA,SAASA,2BAA2B,QAAQ,2CAAwC;;AAEpF;AACA,MAAMC,kCAAkC,GAAG,kCAAkC;AAc7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,2BAA2B,GAC/BC,MAAkC,IAElCH,2BAA2B,CAAC;EAC1BI,EAAE,EAAED,MAAM,CAACC,EAAE;EACbC,SAAS,EAAEF,MAAM,CAACE,SAAS,IAAIJ,kCAAkC;EACjE,IAAIE,MAAM,CAACG,kBAAkB,KAAKC,SAAS,GACvC,CAAC,CAAC,GACF;IAAED,kBAAkB,EAAEH,MAAM,CAACG;EAAmB,CAAC;AACvD,CAAC,CAAC;AAEJ,SACEL,kCAAkC,EAClCC,2BAA2B","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=background-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/background-sync.ts"],"mappings":"","ignoreList":[]}
@@ -77,6 +77,13 @@ export declare const Devices: readonly [{
77
77
  readonly manufacturerKey: "devices.catalog.manufacturers.boso";
78
78
  readonly logo: "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
79
79
  readonly creditsForImage: "boso official product image: https://www.boso.de/en/products-for-home-users/blood-pressure-instruments/boso-medicus-system";
80
+ }, {
81
+ readonly name: "visomat comfort soft BT";
82
+ readonly nameKey: "devices.catalog.visomat-comfort-soft-bt.name";
83
+ readonly manufacturer: "UEBE Medical GmbH";
84
+ readonly manufacturerKey: "devices.catalog.manufacturers.uebe";
85
+ readonly logo: "https://www.visomat.de/wp-content/uploads/2023/10/prd_slider_comfort-soft-BT.jpg";
86
+ readonly creditsForImage: "visomat official product image: https://www.visomat.de/produkte/comfort-soft-bt/";
80
87
  }, {
81
88
  readonly name: "AOJ-20A";
82
89
  readonly nameKey: "devices.catalog.aoj-20a.name";
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAwCF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiK2B,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AA8CF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyK2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,eAAO,MAAM,sBAAsB,EA+G9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EAsN9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -26,15 +26,18 @@ export * from "./types/service.type";
26
26
  export * from "./types/device-status";
27
27
  export * from "./types/btprovider-props";
28
28
  export * from "./types/btprovider-children-props";
29
+ export * from "./types/background-sync";
29
30
  export * from "./types/result-callback";
30
31
  export * from "./types/error-callback";
31
32
  export * from "./types/device-status-change-callback";
32
33
  export * from "./services/devices/bt-managed-device";
33
34
  export * from "./services/devices/custom/custom.device";
34
35
  export * from "./services/bt-manager";
36
+ export * from "./services/background-sync/background-ble-manager";
35
37
  export * from "./services/custom/define-custom-device";
36
38
  export * from "./services/devices/standard-gatt/standard-gatt.devices";
37
39
  export * from "./services/devices/boso/boso.medicus";
40
+ export * from "./services/devices/uebe/visomat.comfort-soft-bt";
38
41
  export * from "./services/devices/veroval/veroval.bp-monitors";
39
42
  export * from "./services/devices/veroval/veroval.duo-control-device";
40
43
  export * from "./services/devices/veroval/veroval.ecg-device";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BleManager, BleManagerOptions, BleRestoredState } from "react-native-ble-plx";
2
+ declare const DEFAULT_RESTORE_STATE_IDENTIFIER = "com.ovok.native.background-sync";
3
+ interface BackgroundBleManagerOptions extends Pick<BleManagerOptions, "restoreStateIdentifier"> {
4
+ onRestoreState?: (state: BleRestoredState | null) => void;
5
+ }
6
+ /**
7
+ * Creates a BLE manager configured for iOS CoreBluetooth state restoration. The returned
8
+ * manager must be created once at module scope, not inside a React render.
9
+ */
10
+ declare const createBackgroundBleManager: ({ restoreStateIdentifier, onRestoreState, }?: BackgroundBleManagerOptions) => BleManager;
11
+ declare const getRestoredBleState: (restoreStateIdentifier?: string) => BleRestoredState | null | undefined;
12
+ export { BackgroundBleManagerOptions, DEFAULT_RESTORE_STATE_IDENTIFIER, createBackgroundBleManager, getRestoredBleState, };
13
+ //# sourceMappingURL=background-ble-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-ble-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-ble-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,QAAA,MAAM,gCAAgC,oCACH,CAAC;AAIpC,UAAU,2BACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACzD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3D;AAED;;;GAGG;AACH,QAAA,MAAM,0BAA0B,GAAI,8CAGjC,2BAAgC,KAAG,UAOlC,CAAC;AAEL,QAAA,MAAM,mBAAmB,GACvB,+BAAyD,KACxD,gBAAgB,GAAG,IAAI,GAAG,SACe,CAAC;AAE7C,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AcceptedDevice } from "../../types/accepted-device";
2
+ export declare const getBackgroundServiceUUIDs: (acceptedDevices: readonly AcceptedDevice[], additionalServiceUUIDs?: readonly string[]) => string[];
3
+ //# sourceMappingURL=background-service-uuids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-service-uuids.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-service-uuids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA2B7D,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,SAAS,cAAc,EAAE,EAC1C,yBAAwB,SAAS,MAAM,EAAO,KAC7C,MAAM,EAaR,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { BackgroundSyncOptions } from "../../types/background-sync";
2
+ import { DeviceKey } from "../../types/device-key";
3
+ import { ResultCallback } from "../../types/result-callback";
4
+ declare const DEFAULT_QUEUE_KEY = "@ovok/native/background-sync/results";
5
+ /**
6
+ * A small durable, at-least-once queue. The result is written before delivery and removed only
7
+ * after the consumer resolves. A process death between those two operations can deliver a
8
+ * result twice, so consumers should de-duplicate by `id`.
9
+ */
10
+ declare class BackgroundSyncCoordinator<T extends DeviceKey> {
11
+ private readonly options;
12
+ private readonly storageKey;
13
+ private readonly maxRetries;
14
+ private readonly retryBackoffMs;
15
+ private operation;
16
+ constructor(options: BackgroundSyncOptions<T>);
17
+ enqueue: (result: ResultCallback<T>) => Promise<void>;
18
+ flush: () => Promise<void>;
19
+ private runExclusive;
20
+ private readQueue;
21
+ private writeQueue;
22
+ private flushQueue;
23
+ }
24
+ export { BackgroundSyncCoordinator, DEFAULT_QUEUE_KEY };
25
+ //# sourceMappingURL=background-sync-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-sync-coordinator.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAW7D,QAAA,MAAM,iBAAiB,yCAAyC,CAAC;AAYjE;;;;GAIG;AACH,cAAM,yBAAyB,CAAC,CAAC,SAAS,SAAS;IAM9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,SAAS,CAAoC;gBAEjB,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAS9D,OAAO,GAAI,QAAQ,cAAc,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEE,KAAK,QAAO,OAAO,CAAC,IAAI,CAAC,CAG3B;IAEL,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,SAAS,CAuBf;IAEF,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,UAAU,CAoChB;CACH;AAED,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,22 +1,28 @@
1
- import { BleManager } from "react-native-ble-plx";
1
+ import { BleManager, Device } from "react-native-ble-plx";
2
2
  import { AcceptedDevice } from "../types/accepted-device";
3
3
  import { DeviceKeyOf } from "../types/device-key-of";
4
4
  import { DeviceStatusChangeCallback } from "../types/device-status-change-callback";
5
5
  import { ErrorCallback } from "../types/error-callback";
6
6
  import { ResultCallback } from "../types/result-callback";
7
7
  import { BTManagedDevice } from "./devices/bt-managed-device";
8
+ export interface BTManagerOptions {
9
+ backgroundEnabled?: boolean;
10
+ serviceUUIDs?: readonly string[];
11
+ }
8
12
  export declare class BTManager<T extends readonly AcceptedDevice[]> {
9
13
  private readonly bleManager;
10
14
  private readonly acceptedDevices;
15
+ private readonly options;
11
16
  private static readonly MAX_DEVICES;
12
17
  private devices;
13
18
  private stateChangeListener;
14
19
  private eventSubscriptions;
15
20
  private deviceCreator;
16
- constructor(bleManager: BleManager, acceptedDevices: T);
21
+ constructor(bleManager: BleManager, acceptedDevices: T, options?: BTManagerOptions);
17
22
  destroy: () => void;
18
23
  startScan: () => void;
19
24
  stopScan: () => void;
25
+ restoreDevices: (devices: readonly Device[]) => void;
20
26
  onDeviceFound: (callback?: (device: BTManagedDevice<DeviceKeyOf<T>>, manager: BTManager<T>) => Promise<void>) => void;
21
27
  onError: (callback?: (data: ErrorCallback) => void) => void;
22
28
  onDeviceStatusChanged: (callback?: (data: DeviceStatusChangeCallback) => void) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAUtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;gBAGrB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAuBZ;IAEK,SAAS,aAuDd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAIzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CA+ElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
1
+ {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,MAAM,EAIP,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAUtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;gBAGrB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,EAClB,OAAO,GAAE,gBAAqB;IAK1C,OAAO,aAuBZ;IAEK,SAAS,aA8Ed;IAEK,QAAQ,aAmBb;IAEK,cAAc,GAAI,SAAS,SAAS,MAAM,EAAE,UAEjD;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAIzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CA+ElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
@@ -0,0 +1,22 @@
1
+ import { CustomDeviceDefinition } from "../../../types/custom-device-definition";
2
+ /** The product name used by the visomat comfort soft BT monitor while advertising. */
3
+ declare const VISOMAT_COMFORT_SOFT_BT_NAME_MATCH: RegExp;
4
+ interface VisomatComfortSoftBtParams {
5
+ /** Reported back as deviceData.name for the registered declaration. */
6
+ id: string;
7
+ /** Overrides the product-name matcher for firmware variants or test fixtures. */
8
+ nameMatch?: string | RegExp;
9
+ /** Overrides the default settle time for a slower monitor. */
10
+ stuckDataTimeoutMs?: number;
11
+ }
12
+ /**
13
+ * Declares the visomat comfort soft BT upper-arm monitor.
14
+ *
15
+ * The monitor uses the Bluetooth SIG Blood Pressure Service and Measurement characteristic,
16
+ * so the shared profile handles the 0x2A35 measurement without a vendor-specific command or
17
+ * pairing flow.
18
+ */
19
+ declare const visomatComfortSoftBtMonitor: (params: VisomatComfortSoftBtParams) => CustomDeviceDefinition;
20
+ export { VISOMAT_COMFORT_SOFT_BT_NAME_MATCH, visomatComfortSoftBtMonitor, };
21
+ export type { VisomatComfortSoftBtParams };
22
+ //# sourceMappingURL=visomat.comfort-soft-bt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visomat.comfort-soft-bt.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,sFAAsF;AACtF,QAAA,MAAM,kCAAkC,QAAqC,CAAC;AAE9E,UAAU,0BAA0B;IAElC,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IAEX,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,0BAA0B,KACjC,sBAOC,CAAC;AAEL,OAAO,EACL,kCAAkC,EAClC,2BAA2B,GAC5B,CAAC;AACF,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { DeviceKey } from "./device-key";
2
+ import { ResultCallback } from "./result-callback";
3
+ interface BackgroundSyncStorage {
4
+ getItem: (key: string) => Promise<string | null>;
5
+ setItem: (key: string, value: string) => Promise<void>;
6
+ }
7
+ interface BackgroundSyncResult<T extends DeviceKey = DeviceKey> extends ResultCallback<T> {
8
+ /** Stable identifier for idempotent delivery by the application backend. */
9
+ id: string;
10
+ queuedAt: string;
11
+ attempt: number;
12
+ }
13
+ interface BackgroundSyncOptions<T extends DeviceKey = DeviceKey> {
14
+ /** Background delivery is opt-in. */
15
+ enabled?: boolean;
16
+ /** A durable key-value store, such as expo-sqlite/kv-store. */
17
+ storage: BackgroundSyncStorage;
18
+ /** Called after a result is persisted. Resolve only after the result is accepted. */
19
+ onResult: (result: BackgroundSyncResult<T>) => Promise<void>;
20
+ /** Storage key used by the queue. */
21
+ storageKey?: string;
22
+ /** Additional service UUIDs to scan, useful for custom/native device declarations. */
23
+ serviceUUIDs?: readonly string[];
24
+ /** iOS restoration identifier. Keep this stable for the lifetime of the app. */
25
+ restoreStateIdentifier?: string;
26
+ /** Number of delivery attempts before an item is retained as exhausted. */
27
+ maxRetries?: number;
28
+ /** Base delay for retries. Delays grow exponentially up to the third attempt. */
29
+ retryBackoffMs?: number;
30
+ }
31
+ export { BackgroundSyncOptions, BackgroundSyncResult, BackgroundSyncStorage };
32
+ //# sourceMappingURL=background-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-sync.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,UAAU,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAC5D,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAE7D,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,OAAO,EAAE,qBAAqB,CAAC;IAE/B,qFAAqF;IACrF,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -2,6 +2,7 @@ import { BleManager } from "react-native-ble-plx";
2
2
  import { BTManager } from "../services/bt-manager";
3
3
  import { BTManagedDevice } from "../services/devices/bt-managed-device";
4
4
  import { AcceptedDevice } from "./accepted-device";
5
+ import { BackgroundSyncOptions } from "./background-sync";
5
6
  import { DeviceKeyOf } from "./device-key-of";
6
7
  import { DeviceStatusChangeCallback } from "./device-status-change-callback";
7
8
  import { ErrorCallback } from "./error-callback";
@@ -9,6 +10,7 @@ import { ResultCallback } from "./result-callback";
9
10
  export interface BTProviderChildWrapperProps<T extends readonly AcceptedDevice[]> {
10
11
  bleManager: BleManager;
11
12
  acceptedDevices: T;
13
+ backgroundSync?: BackgroundSyncOptions<DeviceKeyOf<T>>;
12
14
  onDeviceFound?: (device: BTManagedDevice<DeviceKeyOf<T>>, manager: BTManager<T>) => Promise<void>;
13
15
  onError?: (data: ErrorCallback) => void;
14
16
  onDeviceStatusChanged?: (data: DeviceStatusChangeCallback) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"btprovider-children-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/btprovider-children-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,SAAS,cAAc,EAAE;IAEnC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3D"}
1
+ {"version":3,"file":"btprovider-children-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/btprovider-children-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,SAAS,cAAc,EAAE;IAEnC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,cAAc,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3D"}
@@ -77,6 +77,13 @@ export declare const Devices: readonly [{
77
77
  readonly manufacturerKey: "devices.catalog.manufacturers.boso";
78
78
  readonly logo: "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
79
79
  readonly creditsForImage: "boso official product image: https://www.boso.de/en/products-for-home-users/blood-pressure-instruments/boso-medicus-system";
80
+ }, {
81
+ readonly name: "visomat comfort soft BT";
82
+ readonly nameKey: "devices.catalog.visomat-comfort-soft-bt.name";
83
+ readonly manufacturer: "UEBE Medical GmbH";
84
+ readonly manufacturerKey: "devices.catalog.manufacturers.uebe";
85
+ readonly logo: "https://www.visomat.de/wp-content/uploads/2023/10/prd_slider_comfort-soft-BT.jpg";
86
+ readonly creditsForImage: "visomat official product image: https://www.visomat.de/produkte/comfort-soft-bt/";
80
87
  }, {
81
88
  readonly name: "AOJ-20A";
82
89
  readonly nameKey: "devices.catalog.aoj-20a.name";
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAwCF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiK2B,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AA8CF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyK2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,eAAO,MAAM,sBAAsB,EA+G9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EAsN9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -26,15 +26,18 @@ export * from "./types/service.type";
26
26
  export * from "./types/device-status";
27
27
  export * from "./types/btprovider-props";
28
28
  export * from "./types/btprovider-children-props";
29
+ export * from "./types/background-sync";
29
30
  export * from "./types/result-callback";
30
31
  export * from "./types/error-callback";
31
32
  export * from "./types/device-status-change-callback";
32
33
  export * from "./services/devices/bt-managed-device";
33
34
  export * from "./services/devices/custom/custom.device";
34
35
  export * from "./services/bt-manager";
36
+ export * from "./services/background-sync/background-ble-manager";
35
37
  export * from "./services/custom/define-custom-device";
36
38
  export * from "./services/devices/standard-gatt/standard-gatt.devices";
37
39
  export * from "./services/devices/boso/boso.medicus";
40
+ export * from "./services/devices/uebe/visomat.comfort-soft-bt";
38
41
  export * from "./services/devices/veroval/veroval.bp-monitors";
39
42
  export * from "./services/devices/veroval/veroval.duo-control-device";
40
43
  export * from "./services/devices/veroval/veroval.ecg-device";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/bt-management/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAE3D,cAAc,uCAAuC,CAAC;AAEtD,cAAc,0BAA0B,CAAC;AACzC,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { BleManager, BleManagerOptions, BleRestoredState } from "react-native-ble-plx";
2
+ declare const DEFAULT_RESTORE_STATE_IDENTIFIER = "com.ovok.native.background-sync";
3
+ interface BackgroundBleManagerOptions extends Pick<BleManagerOptions, "restoreStateIdentifier"> {
4
+ onRestoreState?: (state: BleRestoredState | null) => void;
5
+ }
6
+ /**
7
+ * Creates a BLE manager configured for iOS CoreBluetooth state restoration. The returned
8
+ * manager must be created once at module scope, not inside a React render.
9
+ */
10
+ declare const createBackgroundBleManager: ({ restoreStateIdentifier, onRestoreState, }?: BackgroundBleManagerOptions) => BleManager;
11
+ declare const getRestoredBleState: (restoreStateIdentifier?: string) => BleRestoredState | null | undefined;
12
+ export { BackgroundBleManagerOptions, DEFAULT_RESTORE_STATE_IDENTIFIER, createBackgroundBleManager, getRestoredBleState, };
13
+ //# sourceMappingURL=background-ble-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-ble-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-ble-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B,QAAA,MAAM,gCAAgC,oCACH,CAAC;AAIpC,UAAU,2BACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACzD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3D;AAED;;;GAGG;AACH,QAAA,MAAM,0BAA0B,GAAI,8CAGjC,2BAAgC,KAAG,UAOlC,CAAC;AAEL,QAAA,MAAM,mBAAmB,GACvB,+BAAyD,KACxD,gBAAgB,GAAG,IAAI,GAAG,SACe,CAAC;AAE7C,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,0BAA0B,EAC1B,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AcceptedDevice } from "../../types/accepted-device";
2
+ export declare const getBackgroundServiceUUIDs: (acceptedDevices: readonly AcceptedDevice[], additionalServiceUUIDs?: readonly string[]) => string[];
3
+ //# sourceMappingURL=background-service-uuids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-service-uuids.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-service-uuids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA2B7D,eAAO,MAAM,yBAAyB,GACpC,iBAAiB,SAAS,cAAc,EAAE,EAC1C,yBAAwB,SAAS,MAAM,EAAO,KAC7C,MAAM,EAaR,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { BackgroundSyncOptions } from "../../types/background-sync";
2
+ import { DeviceKey } from "../../types/device-key";
3
+ import { ResultCallback } from "../../types/result-callback";
4
+ declare const DEFAULT_QUEUE_KEY = "@ovok/native/background-sync/results";
5
+ /**
6
+ * A small durable, at-least-once queue. The result is written before delivery and removed only
7
+ * after the consumer resolves. A process death between those two operations can deliver a
8
+ * result twice, so consumers should de-duplicate by `id`.
9
+ */
10
+ declare class BackgroundSyncCoordinator<T extends DeviceKey> {
11
+ private readonly options;
12
+ private readonly storageKey;
13
+ private readonly maxRetries;
14
+ private readonly retryBackoffMs;
15
+ private operation;
16
+ constructor(options: BackgroundSyncOptions<T>);
17
+ enqueue: (result: ResultCallback<T>) => Promise<void>;
18
+ flush: () => Promise<void>;
19
+ private runExclusive;
20
+ private readQueue;
21
+ private writeQueue;
22
+ private flushQueue;
23
+ }
24
+ export { BackgroundSyncCoordinator, DEFAULT_QUEUE_KEY };
25
+ //# sourceMappingURL=background-sync-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-sync-coordinator.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/background-sync/background-sync-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAwB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAW7D,QAAA,MAAM,iBAAiB,yCAAyC,CAAC;AAYjE;;;;GAIG;AACH,cAAM,yBAAyB,CAAC,CAAC,SAAS,SAAS;IAM9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,SAAS,CAAoC;gBAEjB,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAS9D,OAAO,GAAI,QAAQ,cAAc,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEE,KAAK,QAAO,OAAO,CAAC,IAAI,CAAC,CAG3B;IAEL,OAAO,CAAC,YAAY,CAMlB;IAEF,OAAO,CAAC,SAAS,CAuBf;IAEF,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,UAAU,CAoChB;CACH;AAED,OAAO,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,22 +1,28 @@
1
- import { BleManager } from "react-native-ble-plx";
1
+ import { BleManager, Device } from "react-native-ble-plx";
2
2
  import { AcceptedDevice } from "../types/accepted-device";
3
3
  import { DeviceKeyOf } from "../types/device-key-of";
4
4
  import { DeviceStatusChangeCallback } from "../types/device-status-change-callback";
5
5
  import { ErrorCallback } from "../types/error-callback";
6
6
  import { ResultCallback } from "../types/result-callback";
7
7
  import { BTManagedDevice } from "./devices/bt-managed-device";
8
+ export interface BTManagerOptions {
9
+ backgroundEnabled?: boolean;
10
+ serviceUUIDs?: readonly string[];
11
+ }
8
12
  export declare class BTManager<T extends readonly AcceptedDevice[]> {
9
13
  private readonly bleManager;
10
14
  private readonly acceptedDevices;
15
+ private readonly options;
11
16
  private static readonly MAX_DEVICES;
12
17
  private devices;
13
18
  private stateChangeListener;
14
19
  private eventSubscriptions;
15
20
  private deviceCreator;
16
- constructor(bleManager: BleManager, acceptedDevices: T);
21
+ constructor(bleManager: BleManager, acceptedDevices: T, options?: BTManagerOptions);
17
22
  destroy: () => void;
18
23
  startScan: () => void;
19
24
  stopScan: () => void;
25
+ restoreDevices: (devices: readonly Device[]) => void;
20
26
  onDeviceFound: (callback?: (device: BTManagedDevice<DeviceKeyOf<T>>, manager: BTManager<T>) => Promise<void>) => void;
21
27
  onError: (callback?: (data: ErrorCallback) => void) => void;
22
28
  onDeviceStatusChanged: (callback?: (data: DeviceStatusChangeCallback) => void) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EAKX,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAUtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVlC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;gBAGrB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC;IAK9B,OAAO,aAuBZ;IAEK,SAAS,aAuDd;IAEK,QAAQ,aAmBb;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAIzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CA+ElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
1
+ {"version":3,"file":"bt-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/bt-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,UAAU,EACV,MAAM,EAIP,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAUtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAX1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAM;IACzC,OAAO,CAAC,OAAO,CAAsD;IAErE,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,kBAAkB,CAAsB;IAEhD,OAAO,CAAC,aAAa,CAAmB;gBAGrB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,CAAC,EAClB,OAAO,GAAE,gBAAqB;IAK1C,OAAO,aAuBZ;IAEK,SAAS,aA8Ed;IAEK,QAAQ,aAmBb;IAEK,cAAc,GAAI,SAAS,SAAS,MAAM,EAAE,UAEjD;IAEK,aAAa,GAClB,WAAW,CACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,UAIlB;IAEK,OAAO,GAAI,WAAW,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,UAGxD;IAEK,qBAAqB,GAC1B,WAAW,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,UAIrD;IAEK,QAAQ,GACb,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,UAIzD;IAGF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,eAAe,CAAC,CAAgC;IACxD,OAAO,CAAC,qBAAqB,CAAC,CAGX;IACnB,OAAO,CAAC,6BAA6B,CAAC,CAE5B;IAEV,OAAO,CAAC,YAAY,CA+ElB;IAEF,OAAO,CAAC,8BAA8B,CAUpC;CACH"}
@@ -0,0 +1,22 @@
1
+ import { CustomDeviceDefinition } from "../../../types/custom-device-definition";
2
+ /** The product name used by the visomat comfort soft BT monitor while advertising. */
3
+ declare const VISOMAT_COMFORT_SOFT_BT_NAME_MATCH: RegExp;
4
+ interface VisomatComfortSoftBtParams {
5
+ /** Reported back as deviceData.name for the registered declaration. */
6
+ id: string;
7
+ /** Overrides the product-name matcher for firmware variants or test fixtures. */
8
+ nameMatch?: string | RegExp;
9
+ /** Overrides the default settle time for a slower monitor. */
10
+ stuckDataTimeoutMs?: number;
11
+ }
12
+ /**
13
+ * Declares the visomat comfort soft BT upper-arm monitor.
14
+ *
15
+ * The monitor uses the Bluetooth SIG Blood Pressure Service and Measurement characteristic,
16
+ * so the shared profile handles the 0x2A35 measurement without a vendor-specific command or
17
+ * pairing flow.
18
+ */
19
+ declare const visomatComfortSoftBtMonitor: (params: VisomatComfortSoftBtParams) => CustomDeviceDefinition;
20
+ export { VISOMAT_COMFORT_SOFT_BT_NAME_MATCH, visomatComfortSoftBtMonitor, };
21
+ export type { VisomatComfortSoftBtParams };
22
+ //# sourceMappingURL=visomat.comfort-soft-bt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visomat.comfort-soft-bt.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/visomat.comfort-soft-bt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,sFAAsF;AACtF,QAAA,MAAM,kCAAkC,QAAqC,CAAC;AAE9E,UAAU,0BAA0B;IAElC,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IAEX,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,QAAA,MAAM,2BAA2B,GAC/B,QAAQ,0BAA0B,KACjC,sBAOC,CAAC;AAEL,OAAO,EACL,kCAAkC,EAClC,2BAA2B,GAC5B,CAAC;AACF,YAAY,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { DeviceKey } from "./device-key";
2
+ import { ResultCallback } from "./result-callback";
3
+ interface BackgroundSyncStorage {
4
+ getItem: (key: string) => Promise<string | null>;
5
+ setItem: (key: string, value: string) => Promise<void>;
6
+ }
7
+ interface BackgroundSyncResult<T extends DeviceKey = DeviceKey> extends ResultCallback<T> {
8
+ /** Stable identifier for idempotent delivery by the application backend. */
9
+ id: string;
10
+ queuedAt: string;
11
+ attempt: number;
12
+ }
13
+ interface BackgroundSyncOptions<T extends DeviceKey = DeviceKey> {
14
+ /** Background delivery is opt-in. */
15
+ enabled?: boolean;
16
+ /** A durable key-value store, such as expo-sqlite/kv-store. */
17
+ storage: BackgroundSyncStorage;
18
+ /** Called after a result is persisted. Resolve only after the result is accepted. */
19
+ onResult: (result: BackgroundSyncResult<T>) => Promise<void>;
20
+ /** Storage key used by the queue. */
21
+ storageKey?: string;
22
+ /** Additional service UUIDs to scan, useful for custom/native device declarations. */
23
+ serviceUUIDs?: readonly string[];
24
+ /** iOS restoration identifier. Keep this stable for the lifetime of the app. */
25
+ restoreStateIdentifier?: string;
26
+ /** Number of delivery attempts before an item is retained as exhausted. */
27
+ maxRetries?: number;
28
+ /** Base delay for retries. Delays grow exponentially up to the third attempt. */
29
+ retryBackoffMs?: number;
30
+ }
31
+ export { BackgroundSyncOptions, BackgroundSyncResult, BackgroundSyncStorage };
32
+ //# sourceMappingURL=background-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-sync.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,UAAU,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAC5D,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAE7D,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,OAAO,EAAE,qBAAqB,CAAC;IAE/B,qFAAqF;IACrF,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -2,6 +2,7 @@ import { BleManager } from "react-native-ble-plx";
2
2
  import { BTManager } from "../services/bt-manager";
3
3
  import { BTManagedDevice } from "../services/devices/bt-managed-device";
4
4
  import { AcceptedDevice } from "./accepted-device";
5
+ import { BackgroundSyncOptions } from "./background-sync";
5
6
  import { DeviceKeyOf } from "./device-key-of";
6
7
  import { DeviceStatusChangeCallback } from "./device-status-change-callback";
7
8
  import { ErrorCallback } from "./error-callback";
@@ -9,6 +10,7 @@ import { ResultCallback } from "./result-callback";
9
10
  export interface BTProviderChildWrapperProps<T extends readonly AcceptedDevice[]> {
10
11
  bleManager: BleManager;
11
12
  acceptedDevices: T;
13
+ backgroundSync?: BackgroundSyncOptions<DeviceKeyOf<T>>;
12
14
  onDeviceFound?: (device: BTManagedDevice<DeviceKeyOf<T>>, manager: BTManager<T>) => Promise<void>;
13
15
  onError?: (data: ErrorCallback) => void;
14
16
  onDeviceStatusChanged?: (data: DeviceStatusChangeCallback) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"btprovider-children-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/btprovider-children-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,SAAS,cAAc,EAAE;IAEnC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3D"}
1
+ {"version":3,"file":"btprovider-children-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/btprovider-children-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,2BAA2B,CAC1C,CAAC,SAAS,SAAS,cAAc,EAAE;IAEnC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,CAAC;IACnB,cAAc,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC3D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ovok/native",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "React native component sdk for OVOK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",