@ovok/native 1.5.1 → 1.5.2

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 (150) hide show
  1. package/android/build.gradle +43 -0
  2. package/android/src/main/AndroidManifest.xml +23 -0
  3. package/android/src/main/java/com/ovok/sdk/backgroundsync/BackgroundSyncNotification.java +78 -0
  4. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +109 -0
  5. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncPackage.java +26 -0
  6. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBluetoothForegroundService.java +28 -0
  7. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectTaskService.java +45 -0
  8. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +28 -0
  9. package/lib/commonjs/index.js +11 -0
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/modules/background-sync/android-background-sync.js +69 -0
  12. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -0
  13. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +49 -0
  14. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  15. package/lib/commonjs/modules/background-sync/index.js +28 -0
  16. package/lib/commonjs/modules/background-sync/index.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +7 -1
  18. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  20. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  22. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  24. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  26. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  27. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +5 -3
  28. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  29. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  30. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  31. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js +27 -11
  32. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  33. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -3
  34. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  35. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  36. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  38. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  39. package/lib/module/index.js +1 -0
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/module/modules/background-sync/android-background-sync.js +61 -0
  42. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -0
  43. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +44 -0
  44. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  45. package/lib/module/modules/background-sync/index.js +5 -0
  46. package/lib/module/modules/background-sync/index.js.map +1 -0
  47. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +7 -2
  48. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  49. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  50. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  51. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  52. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  53. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  54. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  55. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  56. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  57. package/lib/module/modules/data-sync/components/android/android-health-sync.js +5 -3
  58. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  59. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  60. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  61. package/lib/module/modules/data-sync/hooks/use-listen-changes.js +27 -10
  62. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  63. package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -3
  64. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  65. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  66. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  67. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  68. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  69. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  70. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +39 -0
  72. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  74. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +3 -0
  76. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  79. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  81. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  83. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
  85. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  87. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  89. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  91. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +3 -3
  93. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  94. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  96. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  98. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  100. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  102. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  104. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  106. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  108. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  109. package/lib/typescript/module/src/index.d.ts +1 -0
  110. package/lib/typescript/module/src/index.d.ts.map +1 -1
  111. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +39 -0
  112. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  113. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  114. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  115. package/lib/typescript/module/src/modules/background-sync/index.d.ts +3 -0
  116. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -0
  117. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  118. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  119. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  120. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  121. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  122. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  123. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  124. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
  125. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  126. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  127. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  129. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  130. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  131. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +3 -3
  133. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  134. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  135. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  136. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  138. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  139. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  140. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  141. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  142. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  144. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  145. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  146. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  147. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  148. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  149. package/package.json +6 -3
  150. package/react-native.config.js +11 -0
@@ -3,7 +3,7 @@
3
3
  import * as React from "react";
4
4
  import { getGrantedPermissions, initialize, requestPermission } from "react-native-health-connect";
5
5
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
6
- const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers) => {
6
+ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgroundAccess = false) => {
7
7
  const [status, setStatus] = React.useState("shouldRequest");
8
8
  const requestAuthorization = React.useCallback(async () => {
9
9
  try {
@@ -20,7 +20,11 @@ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers) => {
20
20
  accessType: "write",
21
21
  recordType
22
22
  }));
23
- const permissions = [...readPermissions, ...writePermissions];
23
+ const backgroundPermissions = backgroundAccess ? [{
24
+ accessType: "read",
25
+ recordType: "BackgroundAccessPermission"
26
+ }] : [];
27
+ const permissions = [...readPermissions, ...writePermissions, ...backgroundPermissions];
24
28
  await requestPermission(permissions);
25
29
  const grantedPermissions = await getGrantedPermissions();
26
30
  const allGranted = permissions.every(permission => grantedPermissions.some(granted => granted.accessType === permission.accessType && granted.recordType === permission.recordType));
@@ -28,7 +32,7 @@ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers) => {
28
32
  } catch {
29
33
  setStatus("error");
30
34
  }
31
- }, [readIdentifiers, writeIdentifiers]);
35
+ }, [backgroundAccess, readIdentifiers, writeIdentifiers]);
32
36
  return [status, requestAuthorization];
33
37
  };
34
38
 
@@ -39,9 +43,10 @@ export const AndroidHealthConnectAuthorizationProvider = /*#__PURE__*/React.memo
39
43
  fallback,
40
44
  children,
41
45
  skipRequest,
42
- renderManualRequestUI
46
+ renderManualRequestUI,
47
+ backgroundAccess
43
48
  }) => {
44
- const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers);
49
+ const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers, backgroundAccess);
45
50
  const shouldRenderManualRequestUI = renderManualRequestUI && authorizationStatus === "shouldRequest" && !skipRequest;
46
51
  const shouldRenderFallback = fallback && authorizationStatus === "shouldRequest" && !skipRequest;
47
52
  React.useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","getGrantedPermissions","initialize","requestPermission","Fragment","_Fragment","jsx","_jsx","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","status","setStatus","useState","requestAuthorization","useCallback","isInitialized","readPermissions","map","recordType","accessType","writePermissions","permissions","grantedPermissions","allGranted","every","permission","some","granted","AndroidHealthConnectAuthorizationProvider","memo","fallback","children","skipRequest","renderManualRequestUI","authorizationStatus","shouldRenderManualRequestUI","shouldRenderFallback","useEffect"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","getGrantedPermissions","initialize","requestPermission","Fragment","_Fragment","jsx","_jsx","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","status","setStatus","useState","requestAuthorization","useCallback","isInitialized","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","permissions","grantedPermissions","allGranted","every","permission","some","granted","AndroidHealthConnectAuthorizationProvider","memo","fallback","children","skipRequest","renderManualRequestUI","authorizationStatus","shouldRenderManualRequestUI","shouldRenderFallback","useEffect"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ import { AndroidHealthSyncService } from "../../services/android-health-sync-ser
7
7
  export const AndroidHealthSync = /*#__PURE__*/React.memo(({
8
8
  dataToSync,
9
9
  chunkSize,
10
+ wifiOnly = false,
10
11
  onError,
11
12
  onProgress
12
13
  }) => {
@@ -46,12 +47,13 @@ export const AndroidHealthSync = /*#__PURE__*/React.memo(({
46
47
  if (!serviceRef.current) {
47
48
  return;
48
49
  }
49
- if (!isConnected || type !== "wifi") {
50
- serviceRef.current.pauseSync();
50
+ const pauseReason = !isConnected ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
51
+ if (pauseReason) {
52
+ serviceRef.current.pauseSync(pauseReason);
51
53
  return;
52
54
  }
53
55
  serviceRef.current.startSync();
54
- }, [isConnected, type]);
56
+ }, [isConnected, type, wifiOnly]);
55
57
  React.useEffect(() => {
56
58
  onErrorRef.current = onError;
57
59
  onProgressRef.current = onProgress;
@@ -1 +1 @@
1
- {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","AndroidHealthSyncService","AndroidHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","AndroidHealthSyncService","AndroidHealthSync","memo","dataToSync","chunkSize","wifiOnly","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,8 @@ import { AppleHealthSyncService } from "../../services/apple-health-sync-service
8
8
  export const AppleHealthSync = /*#__PURE__*/React.memo(({
9
9
  dataToSync,
10
10
  chunkSize,
11
+ wifiOnly = false,
12
+ backgroundDelivery,
11
13
  onError,
12
14
  onProgress
13
15
  }) => {
@@ -64,17 +66,18 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
64
66
  }, [syncData]);
65
67
  useListenChanges(dataToSync, () => {
66
68
  syncData();
67
- });
69
+ }, backgroundDelivery, error => onErrorRef.current?.(error));
68
70
  React.useEffect(() => {
69
71
  if (!serviceRef.current) {
70
72
  return;
71
73
  }
72
- if (!isConnected || type !== "wifi") {
73
- serviceRef.current.pauseSync();
74
+ const pauseReason = !isConnected ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
75
+ if (pauseReason) {
76
+ serviceRef.current.pauseSync(pauseReason);
74
77
  return;
75
78
  }
76
79
  serviceRef.current.startSync();
77
- }, [isConnected, type]);
80
+ }, [isConnected, type, wifiOnly]);
78
81
  React.useEffect(() => {
79
82
  onErrorRef.current = onError;
80
83
  onProgressRef.current = onProgress;
@@ -1 +1 @@
1
- {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","useListenChanges","AppleHealthSyncService","AppleHealthSync","memo","dataToSync","chunkSize","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","useListenChanges","AppleHealthSyncService","AppleHealthSync","memo","dataToSync","chunkSize","wifiOnly","backgroundDelivery","onError","onProgress","client","patient","serviceRef","useRef","isConnected","type","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
 
3
- import Healthkit from "@kingstinct/react-native-healthkit";
3
+ import Healthkit, { HKUpdateFrequency } from "@kingstinct/react-native-healthkit";
4
4
  import * as React from "react";
5
- export const useListenChanges = (dataToSync, onChange) => {
5
+ export const useListenChanges = (dataToSync, onChange, backgroundDelivery, onError) => {
6
6
  const timeoutRef = React.useRef(undefined);
7
7
  const onChangeRef = React.useRef(onChange);
8
+ const onErrorRef = React.useRef(onError);
8
9
  const identifiers = React.useMemo(() => {
9
10
  return Object.values(dataToSync).flatMap(data => data?.typeIdentifiers.map(identifier => identifier.typeIdentifier));
10
11
  }, [dataToSync]);
12
+ const backgroundDeliveryEnabled = backgroundDelivery !== undefined;
13
+ const backgroundDeliveryFrequency = backgroundDelivery?.frequency ?? HKUpdateFrequency.hourly;
11
14
  const debouncedOnChange = React.useCallback(identifier => {
12
15
  if (timeoutRef.current) {
13
16
  clearTimeout(timeoutRef.current);
@@ -20,6 +23,9 @@ export const useListenChanges = (dataToSync, onChange) => {
20
23
  React.useEffect(() => {
21
24
  onChangeRef.current = onChange;
22
25
  }, [onChange]);
26
+ React.useEffect(() => {
27
+ onErrorRef.current = onError;
28
+ }, [onError]);
23
29
  React.useEffect(() => {
24
30
  return () => {
25
31
  if (timeoutRef.current) {
@@ -30,20 +36,31 @@ export const useListenChanges = (dataToSync, onChange) => {
30
36
  React.useEffect(() => {
31
37
  const subscriptions = [];
32
38
  const initSubscriptions = async () => {
33
- return Promise.all(identifiers.map(async identifier => {
34
- const subscription = await Healthkit.subscribeToChanges(identifier, () => {
35
- debouncedOnChange(identifier);
36
- });
37
- subscriptions.push(subscription);
38
- return subscription;
39
- }));
39
+ try {
40
+ return await Promise.all(identifiers.map(async identifier => {
41
+ if (backgroundDeliveryEnabled) {
42
+ await Healthkit.enableBackgroundDelivery(identifier, backgroundDeliveryFrequency);
43
+ }
44
+ const subscription = await Healthkit.subscribeToChanges(identifier, () => {
45
+ debouncedOnChange(identifier);
46
+ });
47
+ subscriptions.push(subscription);
48
+ return subscription;
49
+ }));
50
+ } catch (error) {
51
+ onErrorRef.current?.(error);
52
+ return undefined;
53
+ }
40
54
  };
41
55
  initSubscriptions();
42
56
  return () => {
43
57
  subscriptions.forEach(subscription => {
44
58
  subscription?.();
45
59
  });
60
+ if (backgroundDeliveryEnabled) {
61
+ void Promise.all(identifiers.map(identifier => Healthkit.disableBackgroundDelivery(identifier))).catch(error => onErrorRef.current?.(error));
62
+ }
46
63
  };
47
- }, [identifiers, debouncedOnChange]);
64
+ }, [identifiers, debouncedOnChange, backgroundDeliveryEnabled, backgroundDeliveryFrequency]);
48
65
  };
49
66
  //# sourceMappingURL=use-listen-changes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Healthkit","React","useListenChanges","dataToSync","onChange","timeoutRef","useRef","undefined","onChangeRef","identifiers","useMemo","Object","values","flatMap","data","typeIdentifiers","map","identifier","typeIdentifier","debouncedOnChange","useCallback","current","clearTimeout","setTimeout","useEffect","subscriptions","initSubscriptions","Promise","all","subscription","subscribeToChanges","push","forEach"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/hooks/use-listen-changes.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAET,oCAAoC;AAC3C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAI9B,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,UAA8C,EAC9CC,QAAkD,KAC/C;EACH,MAAMC,UAAU,GAAGJ,KAAK,CAACK,MAAM,CAA6BC,SAAS,CAAC;EAEtE,MAAMC,WAAW,GAAGP,KAAK,CAACK,MAAM,CAACF,QAAQ,CAAC;EAE1C,MAAMK,WAAW,GAAGR,KAAK,CAACS,OAAO,CAAC,MAAM;IACtC,OAAOC,MAAM,CAACC,MAAM,CAACT,UAAU,CAAC,CAACU,OAAO,CAAEC,IAAI,IAC5CA,IAAI,EAAEC,eAAe,CAACC,GAAG,CAAEC,UAAU,IAAKA,UAAU,CAACC,cAAc,CACrE,CAAC;EACH,CAAC,EAAE,CAACf,UAAU,CAAC,CAAC;EAEhB,MAAMgB,iBAAiB,GAAGlB,KAAK,CAACmB,WAAW,CACxCH,UAAkC,IAAK;IACtC,IAAIZ,UAAU,CAACgB,OAAO,EAAE;MACtBC,YAAY,CAACjB,UAAU,CAACgB,OAAO,CAAC;IAClC;IAEAhB,UAAU,CAACgB,OAAO,GAAGE,UAAU,CAAC,MAAM;MACpCf,WAAW,CAACa,OAAO,CAACJ,UAAU,CAAC;MAC/BZ,UAAU,CAACgB,OAAO,GAAGd,SAAS;IAChC,CAAC,EAAE,GAAG,CAAC;EACT,CAAC,EACD,EACF,CAAC;EAEDN,KAAK,CAACuB,SAAS,CAAC,MAAM;IACpBhB,WAAW,CAACa,OAAO,GAAGjB,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdH,KAAK,CAACuB,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,IAAInB,UAAU,CAACgB,OAAO,EAAE;QACtBC,YAAY,CAACjB,UAAU,CAACgB,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAENpB,KAAK,CAACuB,SAAS,CAAC,MAAM;IACpB,MAAMC,aAAuD,GAAG,EAAE;IAElE,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;MACpC,OAAOC,OAAO,CAACC,GAAG,CAChBnB,WAAW,CAACO,GAAG,CAAC,MAAOC,UAAU,IAAK;QACpC,MAAMY,YAAY,GAAG,MAAM7B,SAAS,CAAC8B,kBAAkB,CACrDb,UAAU,EACV,MAAM;UACJE,iBAAiB,CAACF,UAAU,CAAC;QAC/B,CACF,CAAC;QAEDQ,aAAa,CAACM,IAAI,CAACF,YAAY,CAAC;QAEhC,OAAOA,YAAY;MACrB,CAAC,CACH,CAAC;IACH,CAAC;IAEDH,iBAAiB,CAAC,CAAC;IAEnB,OAAO,MAAM;MACXD,aAAa,CAACO,OAAO,CAAEH,YAAY,IAAK;QACtCA,YAAY,GAAG,CAAC;MAClB,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACpB,WAAW,EAAEU,iBAAiB,CAAC,CAAC;AACtC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Healthkit","HKUpdateFrequency","React","useListenChanges","dataToSync","onChange","backgroundDelivery","onError","timeoutRef","useRef","undefined","onChangeRef","onErrorRef","identifiers","useMemo","Object","values","flatMap","data","typeIdentifiers","map","identifier","typeIdentifier","backgroundDeliveryEnabled","backgroundDeliveryFrequency","frequency","hourly","debouncedOnChange","useCallback","current","clearTimeout","setTimeout","useEffect","subscriptions","initSubscriptions","Promise","all","enableBackgroundDelivery","subscription","subscribeToChanges","push","error","forEach","disableBackgroundDelivery","catch"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/hooks/use-listen-changes.ts"],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,7 @@ export class BaseHealthSyncService {
35
35
  await this.initializeSync();
36
36
  }
37
37
  await this.processAllDataTypes();
38
- this.progressManager.setPauseStatuses();
38
+ this.progressManager.setPauseStatuses(this.stateManager.pauseReason);
39
39
  } catch (error) {
40
40
  this.onSyncError(error);
41
41
  }
@@ -45,8 +45,9 @@ export class BaseHealthSyncService {
45
45
  this.stateManager.reset();
46
46
  this.stateManager.shouldStopSync = true;
47
47
  }
48
- async pauseSync() {
49
- this.stateManager.pause();
48
+ async pauseSync(reason) {
49
+ this.stateManager.pause(reason);
50
+ this.progressManager.setPauseStatuses(reason);
50
51
  }
51
52
  async initializeSync() {
52
53
  const latestObservationDates = await this.dataProcessor.getLatestObservationDates(this.dataToSync);
@@ -1 +1 @@
1
- {"version":3,"names":["DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DataProcessor","StorageManager","SyncProgressManager","SyncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","updateProgress","stateManager","storageManager","getProviderName","dataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -16,12 +16,12 @@ export class SyncProgressManager {
16
16
  };
17
17
  }
18
18
  }
19
- setPauseStatuses() {
19
+ setPauseStatuses(reason) {
20
20
  for (const key of Object.keys(this.syncData)) {
21
21
  const measurementTypeKey = key;
22
22
  const currentStatus = this.getStatus(measurementTypeKey);
23
23
  if (currentStatus !== "completed") {
24
- this.setStatus(measurementTypeKey, "paused");
24
+ this.setStatus(measurementTypeKey, "paused", reason);
25
25
  }
26
26
  }
27
27
  }
@@ -49,9 +49,10 @@ export class SyncProgressManager {
49
49
  this.syncData[measurementTypeKey].syncedObservations += count;
50
50
  this.notifyProgress(measurementTypeKey, "syncing");
51
51
  }
52
- setStatus(measurementTypeKey, status) {
52
+ setStatus(measurementTypeKey, status, reason) {
53
53
  this.syncData[measurementTypeKey].status = status;
54
- this.notifyProgress(measurementTypeKey, status);
54
+ this.syncData[measurementTypeKey].reason = status === "paused" ? reason : undefined;
55
+ this.notifyProgress(measurementTypeKey, status, reason);
55
56
  }
56
57
  getStatus(measurementTypeKey) {
57
58
  return this.syncData[measurementTypeKey].status;
@@ -65,10 +66,13 @@ export class SyncProgressManager {
65
66
  this.notifyProgress(measurementTypeKey, "idle");
66
67
  });
67
68
  }
68
- notifyProgress(measurementTypeKey, status) {
69
+ notifyProgress(measurementTypeKey, status, reason) {
69
70
  this.updateProgress({
70
71
  measurementTypeKey,
71
72
  status,
73
+ ...(status === "paused" && reason ? {
74
+ reason
75
+ } : {}),
72
76
  progress: this.getProgress(measurementTypeKey)
73
77
  });
74
78
  }
@@ -1 +1 @@
1
- {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -29,15 +29,18 @@ export class SyncStateManager {
29
29
  }
30
30
  reset() {
31
31
  this.shouldStopSync = false;
32
+ this.pauseReason = undefined;
32
33
  this.initialDataFetched = false;
33
34
  this.latestObservationDates = [];
34
35
  this.results = [];
35
36
  }
36
- pause() {
37
+ pause(reason) {
37
38
  this.shouldStopSync = true;
39
+ this.pauseReason = reason;
38
40
  }
39
41
  resume() {
40
42
  this.shouldStopSync = false;
43
+ this.pauseReason = undefined;
41
44
  }
42
45
  }
43
46
  //# sourceMappingURL=sync-state-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SyncStateManager","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pause","resume"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;AAEA,OAAO,MAAMA,gBAAgB,CAAC;EAC5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGSC,cAAc,GAAG,KAAK;EACtBC,kBAAkB,GAAG,KAAK;EAC1BC,sBAAsB,GAGxB,EAAE;EACAC,OAAO,GAA0B,EAAE;EAE1CC,SAASA,CAACC,MAA2B,EAAQ;IAC3C,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;;EAEA;EACA,MAAME,IAAIA,CAACC,IAAyB,EAAiB;IACnD,IAAI,CAACC,QAAQ,KAAKD,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;MACrC,IAAI,CAACD,QAAQ,GAAGE,SAAS;IAC3B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACF,QAAQ;EACtB;EAEAG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACZ,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACC,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,sBAAsB,GAAG,EAAE;IAChC,IAAI,CAACC,OAAO,GAAG,EAAE;EACnB;EAEAU,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACb,cAAc,GAAG,IAAI;EAC5B;EAEAc,MAAMA,CAAA,EAAS;IACb,IAAI,CAACd,cAAc,GAAG,KAAK;EAC7B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["SyncStateManager","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pauseReason","pause","reason","resume"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;AAIA,OAAO,MAAMA,gBAAgB,CAAC;EAC5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGSC,cAAc,GAAG,KAAK;EAEtBC,kBAAkB,GAAG,KAAK;EAC1BC,sBAAsB,GAGxB,EAAE;EACAC,OAAO,GAA0B,EAAE;EAE1CC,SAASA,CAACC,MAA2B,EAAQ;IAC3C,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;;EAEA;EACA,MAAME,IAAIA,CAACC,IAAyB,EAAiB;IACnD,IAAI,CAACC,QAAQ,KAAKD,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;MACrC,IAAI,CAACD,QAAQ,GAAGE,SAAS;IAC3B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACF,QAAQ;EACtB;EAEAG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACZ,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;IAC5B,IAAI,CAACV,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,sBAAsB,GAAG,EAAE;IAChC,IAAI,CAACC,OAAO,GAAG,EAAE;EACnB;EAEAW,KAAKA,CAACC,MAAwB,EAAQ;IACpC,IAAI,CAACf,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACa,WAAW,GAAGE,MAAM;EAC3B;EAEAC,MAAMA,CAAA,EAAS;IACb,IAAI,CAAChB,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;EAC9B;AACF","ignoreList":[]}
@@ -23,4 +23,5 @@ export * from "./modules/socket";
23
23
  export * from "./modules/questionnaire-response-form";
24
24
  export * from "./modules/image";
25
25
  export * from "./modules/data-sync";
26
+ export * from "./modules/background-sync";
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,39 @@
1
+ declare const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
2
+ interface AndroidBluetoothForegroundServiceOptions {
3
+ /** Text shown while the service keeps the BLE scan alive. */
4
+ notificationTitle?: string;
5
+ notificationBody?: string;
6
+ }
7
+ interface AndroidHealthConnectBackgroundSyncOptions {
8
+ /** WorkManager's minimum supported interval is 15 minutes. */
9
+ intervalMinutes?: number;
10
+ /** Must match the task name registered with `register...Task`. */
11
+ taskName?: string;
12
+ notificationTitle?: string;
13
+ notificationBody?: string;
14
+ }
15
+ type AndroidHealthConnectBackgroundTask = (input: {
16
+ reason?: string;
17
+ }) => Promise<void>;
18
+ /**
19
+ * Starts the Android connected-device foreground service. Mount this alongside
20
+ * the BTProvider that owns the scan; the service keeps that app process alive
21
+ * while Android has the app in the background.
22
+ */
23
+ declare const startAndroidBluetoothForegroundService: (options?: AndroidBluetoothForegroundServiceOptions) => Promise<void>;
24
+ declare const stopAndroidBluetoothForegroundService: () => Promise<void>;
25
+ /**
26
+ * Schedules a WorkManager wake-up that starts the registered headless JS task.
27
+ * The task must create the host app's authenticated client and run the desired
28
+ * AndroidHealthSync service; the SDK cannot serialize a client or auth token.
29
+ */
30
+ declare const scheduleAndroidHealthConnectSync: (options?: AndroidHealthConnectBackgroundSyncOptions) => Promise<void>;
31
+ declare const cancelAndroidHealthConnectSync: () => Promise<void>;
32
+ /**
33
+ * Registers the JS entry point WorkManager invokes after process death. Call
34
+ * this once from the app entry point, not from a screen component, so it is
35
+ * registered before Android wakes the headless runtime.
36
+ */
37
+ declare const registerAndroidHealthConnectBackgroundTask: (task: AndroidHealthConnectBackgroundTask, taskName?: string) => void;
38
+ export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, AndroidBluetoothForegroundServiceOptions, AndroidHealthConnectBackgroundSyncOptions, AndroidHealthConnectBackgroundTask, cancelAndroidHealthConnectSync, registerAndroidHealthConnectBackgroundTask, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService, };
39
+ //# sourceMappingURL=android-background-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAapC,UAAU,wCAAwC;IAEhD,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,yCAAyC;IAEjD,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAgBpB;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,EAC1C,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import type { ErrorCallback } from "../bt-management/types/error-callback";
3
+ import { type AndroidBluetoothForegroundServiceOptions } from "./android-background-sync";
4
+ interface AndroidBluetoothForegroundServiceProps {
5
+ enabled: boolean;
6
+ children?: React.ReactNode;
7
+ options?: AndroidBluetoothForegroundServiceOptions;
8
+ onError?: (data: ErrorCallback) => void;
9
+ }
10
+ declare const AndroidBluetoothForegroundService: ({ enabled, children, options, onError, }: AndroidBluetoothForegroundServiceProps) => React.JSX.Element;
11
+ export { AndroidBluetoothForegroundService };
12
+ //# sourceMappingURL=android-bluetooth-foreground-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAGL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBA4BxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./android-background-sync";
2
+ export * from "./android-bluetooth-foreground-service";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,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;AAS/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EA0O9B,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":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EAkP9B,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"}
@@ -14,6 +14,14 @@ declare const BC01_LAST_OF_SET_BIT = 64;
14
14
  * field the vendor's own catalog calls "vc" and no other name is documented.
15
15
  */
16
16
  declare const BC01_ANALYTE_ORDER: readonly ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc"];
17
+ type Bc01Analyte = (typeof BC01_ANALYTE_ORDER)[number];
18
+ /**
19
+ * BC401's packed values are colour-chart indexes, not measurements. These
20
+ * values mirror the tables in Contec's BC401 integration (PHMS M1/a.java):
21
+ * the index is zero-based and `7` remains the device's unmeasured sentinel.
22
+ * The pH table is the URS-7 strip scale, which includes half-point readings.
23
+ */
24
+ declare const BC01_ANALYTE_VALUES: Record<Bc01Analyte, readonly number[]>;
17
25
  /** The result of decoding one 16-byte record. `lastOfSet` is what the sequencer keys on. */
18
26
  interface Bc01ParsedRecord {
19
27
  /** Local wall-clock time the device recorded, with millisecond precision unavailable. */
@@ -23,9 +31,8 @@ interface Bc01ParsedRecord {
23
31
  /** Low nibble of the flags byte; the page counter the firmware writes. */
24
32
  pageIndex: number;
25
33
  /**
26
- * Analyte level indices, absent for any pad the strip did not measure.
27
- * A pad the strip did measure carries a value in [0, 6]; the vendor's own
28
- * lookup tables translate that to a categorical result per analyte.
34
+ * Chart values, absent for any pad the strip did not measure or for a
35
+ * reserved level that is not valid for that analyte.
29
36
  */
30
37
  values: Partial<Record<(typeof BC01_ANALYTE_ORDER)[number], number>>;
31
38
  }
@@ -49,5 +56,5 @@ declare const parseBc01Record: (frame: readonly string[]) => Bc01ParsedRecord |
49
56
  * the notification carries a whole 16-byte frame.
50
57
  */
51
58
  declare const isBc01Record: (frame: readonly string[]) => boolean;
52
- export { BC01_ANALYTE_ORDER, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, Bc01ParsedRecord, isBc01Record, parseBc01Record, };
59
+ export { BC01_ANALYTE_ORDER, BC01_ANALYTE_VALUES, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, Bc01ParsedRecord, isBc01Record, parseBc01Record, };
53
60
  //# sourceMappingURL=bc01-frame-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bc01-frame-parser.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,QAAA,MAAM,kBAAkB,KAAK,CAAC;AAE9B,mEAAmE;AACnE,QAAA,MAAM,eAAe,MAAO,CAAC;AAC7B,QAAA,MAAM,qBAAqB,MAAO,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAelC;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,qFAYuC,CAAC;AAKhE,4FAA4F;AAC5F,UAAU,gBAAgB;IAExB,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC;IAEhB,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IAEnB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACtE;AAUD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,GACnB,OAAO,SAAS,MAAM,EAAE,KACvB,gBAAgB,GAAG,SA0CrB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,OAQhD,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"bc01-frame-parser.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,QAAA,MAAM,kBAAkB,KAAK,CAAC;AAE9B,mEAAmE;AACnE,QAAA,MAAM,eAAe,MAAO,CAAC;AAC7B,QAAA,MAAM,qBAAqB,MAAO,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAelC;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,qFAYuC,CAAC;AAEhE,KAAK,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAY/D,CAAC;AAKF,4FAA4F;AAC5F,UAAU,gBAAgB;IAExB,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC;IAEhB,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IAEnB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACtE;AAUD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,GACnB,OAAO,SAAS,MAAM,EAAE,KACvB,gBAAgB,GAAG,SA8CrB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,OAQhD,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,CAAC"}
@@ -4,9 +4,11 @@ import { CustomDeviceDefinition } from "../../../types/custom-device-definition"
4
4
  import { CustomDeviceId } from "../../../types/custom-device-id";
5
5
  import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
6
6
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
7
+ import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
7
8
  import { IService } from "../../../types/service.type";
8
9
  import { BTManagedDevice } from "../bt-managed-device";
9
10
  type CustomMeasurementOf = MeasurementTypeForDevices<[CustomDeviceId]>;
11
+ type CustomResult = MeasurementWithCaseType<CustomMeasurementOf>;
10
12
  /**
11
13
  * Runs a device registered with defineCustomDevice.
12
14
  *
@@ -49,6 +51,8 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
49
51
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
50
52
  */
51
53
  protected handleSuccessResult(): void | boolean;
54
+ /** Adds protocol-specific metadata to a validated reading before it is emitted. */
55
+ protected decorateReading: (reading: CustomResult, _frame?: readonly string[], _recordOffset?: number) => CustomResult;
52
56
  /**
53
57
  * Reports what the frame carried, which may be more than one reading.
54
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAIlF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD,KAAK,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAGvE;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiD;gBAG1E,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAwBpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CAalD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;CAiC1B"}
1
+ {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD,KAAK,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACvE,KAAK,YAAY,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiD;gBAG1E,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAwBpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CAalD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C,mFAAmF;IACnF,SAAS,CAAC,eAAe,GACvB,SAAS,YAAY,EACrB,SAAS,SAAS,MAAM,EAAE,EAC1B,gBAAgB,MAAM,KACrB,YAAY,CAAY;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;CAmC1B"}
@@ -4,12 +4,15 @@ import { CustomDeviceId } from "../../../types/custom-device-id";
4
4
  import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
5
5
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
6
6
  import { IntegratedDevices } from "../../../types/integrated-devices";
7
+ import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
7
8
  import { CustomDevice } from "../custom/custom.device";
8
9
  type MySenseResult = DependentResultHandlerParams<MeasurementTypeForDevices<[CustomDeviceId]>>;
10
+ type MySenseReading = MeasurementWithCaseType<MeasurementTypeForDevices<[CustomDeviceId]>>;
9
11
  export declare class MySenseDevice extends CustomDevice {
10
12
  private reportedHistory;
11
13
  constructor(device: Device, params: CreateDeviceParams<IntegratedDevices.MYSENSE>);
12
14
  protected shouldReportDependentResult: (data: MySenseResult) => boolean;
15
+ protected decorateReading: (reading: MySenseReading, frame?: readonly string[], recordOffset?: number) => MySenseReading;
13
16
  }
14
17
  export {};
15
18
  //# sourceMappingURL=mysense.device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysense.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/mysense.device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,KAAK,aAAa,GAAG,4BAA4B,CAC/C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AA6CF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAS;gBAG9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAoBvD,SAAS,CAAC,2BAA2B,GAAI,MAAM,aAAa,KAAG,OAAO,CAYpE;CACH"}
1
+ {"version":3,"file":"mysense.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/mysense.device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,KAAK,aAAa,GAAG,4BAA4B,CAC/C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AACF,KAAK,cAAc,GAAG,uBAAuB,CAC3C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AA+EF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAS;gBAG9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAoBvD,SAAS,CAAC,2BAA2B,GAAI,MAAM,aAAa,KAAG,OAAO,CAYpE;IAEF,UAAmB,eAAe,GAChC,SAAS,cAAc,EACvB,QAAQ,SAAS,MAAM,EAAE,EACzB,qBAAgB,KACf,cAAc,CAUf;CACH"}