@ovok/native 1.5.3 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/android/src/main/AndroidManifest.xml +1 -0
  2. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +54 -0
  3. package/lib/commonjs/modules/background-sync/android-background-sync.js +20 -2
  4. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -1
  5. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +16 -9
  6. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  7. package/lib/commonjs/modules/background-sync/index.js +11 -0
  8. package/lib/commonjs/modules/background-sync/index.js.map +1 -1
  9. package/lib/commonjs/modules/background-sync/notifications.js +56 -0
  10. package/lib/commonjs/modules/background-sync/notifications.js.map +1 -0
  11. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js +1 -0
  12. package/lib/commonjs/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  13. package/lib/commonjs/modules/bt-device/constants/device-list-items.js +6 -0
  14. package/lib/commonjs/modules/bt-device/constants/device-list-items.js.map +1 -1
  15. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  16. package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  17. package/lib/commonjs/modules/bt-device/constants/supported-devices.js +16 -1
  18. package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +19 -1
  20. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js +1 -1
  22. package/lib/commonjs/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/index.js +22 -0
  24. package/lib/commonjs/modules/bt-management/index.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/device-creator.js +3 -1
  26. package/lib/commonjs/modules/bt-management/services/device-creator.js.map +1 -1
  27. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.js +55 -0
  28. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.js.map +1 -0
  29. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +202 -0
  30. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -0
  31. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.activity-device.js +54 -0
  32. package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.activity-device.js.map +1 -0
  33. package/lib/commonjs/modules/bt-management/types/integrated-devices.js +1 -0
  34. package/lib/commonjs/modules/bt-management/types/integrated-devices.js.map +1 -1
  35. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-context.js +13 -0
  36. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-context.js.map +1 -0
  37. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js +22 -15
  38. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  39. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +35 -4
  40. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  41. package/lib/module/modules/background-sync/android-background-sync.js +17 -1
  42. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -1
  43. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +17 -10
  44. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -1
  45. package/lib/module/modules/background-sync/index.js +1 -0
  46. package/lib/module/modules/background-sync/index.js.map +1 -1
  47. package/lib/module/modules/background-sync/notifications.js +50 -0
  48. package/lib/module/modules/background-sync/notifications.js.map +1 -0
  49. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js +1 -0
  50. package/lib/module/modules/bt-device/constants/device-instruction-pdfs.js.map +1 -1
  51. package/lib/module/modules/bt-device/constants/device-list-items.js +6 -0
  52. package/lib/module/modules/bt-device/constants/device-list-items.js.map +1 -1
  53. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js +3 -1
  54. package/lib/module/modules/bt-device/constants/supported-device-catalog-assets.js.map +1 -1
  55. package/lib/module/modules/bt-device/constants/supported-devices.js +17 -2
  56. package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
  57. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +20 -2
  58. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  59. package/lib/module/modules/bt-management/constants/integrated-devices-map.js +1 -1
  60. package/lib/module/modules/bt-management/constants/integrated-devices-map.js.map +1 -1
  61. package/lib/module/modules/bt-management/index.js +2 -0
  62. package/lib/module/modules/bt-management/index.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/device-creator.js +3 -1
  64. package/lib/module/modules/bt-management/services/device-creator.js.map +1 -1
  65. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.js +50 -0
  66. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.js.map +1 -0
  67. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js +198 -0
  68. package/lib/module/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.js.map +1 -0
  69. package/lib/module/modules/bt-management/services/devices/veroval/veroval.activity-device.js +49 -0
  70. package/lib/module/modules/bt-management/services/devices/veroval/veroval.activity-device.js.map +1 -0
  71. package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
  72. package/lib/module/modules/bt-management/types/integrated-devices.js +1 -0
  73. package/lib/module/modules/bt-management/types/integrated-devices.js.map +1 -1
  74. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-context.js +8 -0
  75. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-context.js.map +1 -0
  76. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js +22 -15
  77. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  78. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +35 -4
  79. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  80. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +7 -1
  81. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +1 -0
  84. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/src/modules/background-sync/notifications.d.ts +14 -0
  86. package/lib/typescript/commonjs/src/modules/background-sync/notifications.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  89. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  90. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  91. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  92. package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  93. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts +2 -0
  96. package/lib/typescript/commonjs/src/modules/bt-management/index.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  98. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.d.ts +12 -0
  99. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +47 -0
  101. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.activity-device.d.ts +18 -0
  103. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.activity-device.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
  105. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +12 -1
  107. package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
  109. package/lib/typescript/commonjs/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-context.d.ts +7 -0
  111. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-context.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  113. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +3 -1
  115. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +1 -1
  117. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +7 -1
  118. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -1
  119. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -1
  120. package/lib/typescript/module/src/modules/background-sync/index.d.ts +1 -0
  121. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -1
  122. package/lib/typescript/module/src/modules/background-sync/notifications.d.ts +14 -0
  123. package/lib/typescript/module/src/modules/background-sync/notifications.d.ts.map +1 -0
  124. package/lib/typescript/module/src/modules/bt-device/constants/device-instruction-pdfs.d.ts.map +1 -1
  125. package/lib/typescript/module/src/modules/bt-device/constants/device-list-items.d.ts.map +1 -1
  126. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts +3 -1
  127. package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-assets.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts +7 -0
  129. package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
  130. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  131. package/lib/typescript/module/src/modules/bt-management/constants/integrated-devices-map.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/bt-management/index.d.ts +2 -0
  133. package/lib/typescript/module/src/modules/bt-management/index.d.ts.map +1 -1
  134. package/lib/typescript/module/src/modules/bt-management/services/device-creator.d.ts.map +1 -1
  135. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.d.ts +12 -0
  136. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.d.ts.map +1 -0
  137. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts +47 -0
  138. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.d.ts.map +1 -0
  139. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.activity-device.d.ts +18 -0
  140. package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.activity-device.d.ts.map +1 -0
  141. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
  142. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +12 -1
  144. package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
  145. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts +2 -1
  146. package/lib/typescript/module/src/modules/bt-management/types/integrated-devices.d.ts.map +1 -1
  147. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-context.d.ts +7 -0
  148. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-context.d.ts.map +1 -0
  149. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  150. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  151. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +3 -1
  152. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  153. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +1 -1
  154. package/package.json +3 -1
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ /** The resolved HealthKit request state for the nearest authorization provider. */
5
+ const AppleHealthAuthorizationContext = /*#__PURE__*/React.createContext(null);
6
+ const useAppleHealthAuthorizationStatus = () => React.useContext(AppleHealthAuthorizationContext);
7
+ export { AppleHealthAuthorizationContext, useAppleHealthAuthorizationStatus };
8
+ //# sourceMappingURL=apple-health-authorization-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AppleHealthAuthorizationContext","createContext","useAppleHealthAuthorizationStatus","useContext"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-authorization-context.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAI9B;AACA,MAAMC,+BAA+B,gBACnCD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC;AAElE,MAAMC,iCAAiC,GAAGA,CAAA,KACxCH,KAAK,CAACI,UAAU,CAACH,+BAA+B,CAAC;AAEnD,SACEA,+BAA+B,EAC/BE,iCAAiC","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { getRequestStatusForAuthorization, HKAuthorizationRequestStatus, useHealthkitAuthorization } from "@kingstinct/react-native-healthkit";
4
4
  import * as React from "react";
5
+ import { AppleHealthAuthorizationContext } from "./apple-health-authorization-context.js";
5
6
  import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
6
7
  const getNotRequestedIdentifiers = async (identifiers, getStatus) => {
7
8
  const statuses = await Promise.all(identifiers.map(async identifier => ({
@@ -75,7 +76,7 @@ export const AppleHealthAuthorizationProvider = /*#__PURE__*/React.memo(({
75
76
  }
76
77
  previousRequestKey.current = requestKey;
77
78
  setRequestError(undefined);
78
- setRequestState(authorizationStatus === null ? "unknown" : authorizationStatus === HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : "ready");
79
+ setRequestState(authorizationStatus === null ? "unknown" : authorizationStatus === HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : "unknown");
79
80
  setNotRequestedReadIdentifiers(readIdentifiers);
80
81
  setNotRequestedWriteIdentifiers(writeIdentifiers || []);
81
82
  }, [authorizationStatus, readIdentifiers, requestKey, writeIdentifiers]);
@@ -83,12 +84,16 @@ export const AppleHealthAuthorizationProvider = /*#__PURE__*/React.memo(({
83
84
  if (authorizationStatus === null) {
84
85
  return;
85
86
  }
86
- void inspectAuthorization().catch(error => {
87
+ if (authorizationStatus === HKAuthorizationRequestStatus.shouldRequest) {
88
+ setRequestState(currentState => currentState === "unknown" ? "shouldRequest" : currentState);
89
+ }
90
+ void inspectAuthorization().then(() => {
91
+ setRequestState(currentState => currentState === "unknown" && authorizationStatus === HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : currentState === "unknown" ? "ready" : currentState);
92
+ }).catch(error => {
87
93
  const normalizedError = error instanceof Error ? error : new Error(String(error));
88
94
  setRequestError(normalizedError);
89
95
  setRequestState("error");
90
96
  });
91
- setRequestState(currentState => currentState === "unknown" ? authorizationStatus === HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : "ready" : currentState);
92
97
  }, [authorizationStatus, inspectAuthorization]);
93
98
  React.useEffect(() => {
94
99
  if (renderManualRequestUI || skipRequest || authorizationStatus !== HKAuthorizationRequestStatus.shouldRequest || requestState !== "shouldRequest") {
@@ -99,22 +104,24 @@ export const AppleHealthAuthorizationProvider = /*#__PURE__*/React.memo(({
99
104
  const needsAuthorization = requestState === "shouldRequest" || requestState === "requesting" || requestState === "unknown" && authorizationStatus === HKAuthorizationRequestStatus.shouldRequest;
100
105
  const shouldRenderManualRequestUI = renderManualRequestUI && needsAuthorization && requestState !== "requesting" && !skipRequest;
101
106
  const shouldRenderFallback = fallback && needsAuthorization && !skipRequest;
102
- if (skipRequest || requestState === "ready" || requestState === "unknown" && authorizationStatus === HKAuthorizationRequestStatus.unnecessary) {
103
- return /*#__PURE__*/_jsx(_Fragment, {
107
+ let content = null;
108
+ if (skipRequest || requestState === "ready" || requestState === "unknown" && (authorizationStatus === HKAuthorizationRequestStatus.unknown || authorizationStatus === HKAuthorizationRequestStatus.unnecessary)) {
109
+ content = /*#__PURE__*/_jsx(_Fragment, {
104
110
  children: children
105
111
  });
106
- }
107
- if (shouldRenderManualRequestUI) {
108
- return renderManualRequestUI?.(requestAccess);
109
- }
110
- if (shouldRenderFallback) {
111
- return /*#__PURE__*/_jsx(_Fragment, {
112
+ } else if (shouldRenderManualRequestUI) {
113
+ content = renderManualRequestUI?.(requestAccess);
114
+ } else if (shouldRenderFallback) {
115
+ content = /*#__PURE__*/_jsx(_Fragment, {
112
116
  children: fallback || null
113
117
  });
114
118
  }
115
- if (requestState === "error" || requestState === "unknown") {
116
- return null;
117
- }
118
- return null;
119
+ return /*#__PURE__*/_jsx(AppleHealthAuthorizationContext.Provider, {
120
+ value: skipRequest && status.state === "unknown" ? {
121
+ ...status,
122
+ state: "ready"
123
+ } : status,
124
+ children: content
125
+ });
119
126
  });
120
127
  //# sourceMappingURL=apple-health-authorization-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getRequestStatusForAuthorization","HKAuthorizationRequestStatus","useHealthkitAuthorization","React","Fragment","_Fragment","jsx","_jsx","getNotRequestedIdentifiers","identifiers","getStatus","statuses","Promise","all","map","identifier","status","filter","shouldRequest","AppleHealthAuthorizationProvider","memo","readIdentifiers","writeIdentifiers","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","requestAuthorization","requestState","setRequestState","useState","notRequestedReadIdentifiers","setNotRequestedReadIdentifiers","notRequestedWriteIdentifiers","setNotRequestedWriteIdentifiers","requestError","setRequestError","requestKey","join","identifiersRef","useRef","current","previousRequestKey","useMemo","error","state","useEffect","inspectAuthorization","useCallback","currentRead","currentWrite","notRequestedRead","notRequestedWrite","requestAccess","undefined","normalizedError","Error","String","catch","currentState","needsAuthorization","shouldRenderManualRequestUI","shouldRenderFallback","unnecessary"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getRequestStatusForAuthorization","HKAuthorizationRequestStatus","useHealthkitAuthorization","React","AppleHealthAuthorizationContext","Fragment","_Fragment","jsx","_jsx","getNotRequestedIdentifiers","identifiers","getStatus","statuses","Promise","all","map","identifier","status","filter","shouldRequest","AppleHealthAuthorizationProvider","memo","readIdentifiers","writeIdentifiers","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","requestAuthorization","requestState","setRequestState","useState","notRequestedReadIdentifiers","setNotRequestedReadIdentifiers","notRequestedWriteIdentifiers","setNotRequestedWriteIdentifiers","requestError","setRequestError","requestKey","join","identifiersRef","useRef","current","previousRequestKey","useMemo","error","state","useEffect","inspectAuthorization","useCallback","currentRead","currentWrite","notRequestedRead","notRequestedWrite","requestAccess","undefined","normalizedError","Error","String","currentState","then","catch","needsAuthorization","shouldRenderManualRequestUI","shouldRenderFallback","content","unknown","unnecessary","Provider","value"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,30 @@ import { useNetInfo } from "@react-native-community/netinfo";
5
5
  import * as React from "react";
6
6
  import { useListenChanges } from "../../hooks/use-listen-changes.js";
7
7
  import { AppleHealthSyncService } from "../../services/apple-health-sync-service.js";
8
- export const AppleHealthSync = /*#__PURE__*/React.memo(({
8
+ import { useAppleHealthAuthorizationStatus } from "./apple-health-authorization-context.js";
9
+ const filterNotRequestedIdentifiers = (dataToSync, notRequestedIdentifiers) => {
10
+ if (notRequestedIdentifiers.length === 0) {
11
+ return dataToSync;
12
+ }
13
+ const excluded = new Set(notRequestedIdentifiers);
14
+ const filtered = {};
15
+ Object.entries(dataToSync).forEach(([key, data]) => {
16
+ if (!data) {
17
+ return;
18
+ }
19
+ const typeIdentifiers = data.typeIdentifiers.filter(({
20
+ typeIdentifier
21
+ }) => !excluded.has(typeIdentifier));
22
+ if (typeIdentifiers.length > 0) {
23
+ filtered[key] = {
24
+ ...data,
25
+ typeIdentifiers
26
+ };
27
+ }
28
+ });
29
+ return filtered;
30
+ };
31
+ const AppleHealthSync = /*#__PURE__*/React.memo(({
9
32
  dataToSync,
10
33
  chunkSize,
11
34
  wifiOnly = false,
@@ -13,6 +36,10 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
13
36
  onError,
14
37
  onProgress
15
38
  }) => {
39
+ const authorizationStatus = useAppleHealthAuthorizationStatus();
40
+ const filteredDataToSync = React.useMemo(() => authorizationStatus?.state === "ready" ? filterNotRequestedIdentifiers(dataToSync, authorizationStatus.notRequestedReadIdentifiers) : dataToSync, [authorizationStatus, dataToSync]);
41
+ const authorizationPending = authorizationStatus?.state === "unknown";
42
+ const effectiveDataToSync = React.useMemo(() => authorizationPending ? {} : filteredDataToSync, [authorizationPending, filteredDataToSync]);
16
43
  const client = useClient();
17
44
  const patient = useMedplumProfile();
18
45
  const serviceRef = React.useRef(null);
@@ -28,11 +55,14 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
28
55
  onProgressRef.current?.(progressRef.current);
29
56
  }, []);
30
57
  const syncData = React.useCallback(async () => {
58
+ if (authorizationPending) {
59
+ return;
60
+ }
31
61
  try {
32
62
  serviceRef.current = AppleHealthSyncService.getInstance({
33
63
  client,
34
64
  patientId: patient?.id ?? "",
35
- dataToSync,
65
+ dataToSync: effectiveDataToSync,
36
66
  chunkSize,
37
67
  onSyncError: error => onErrorRef.current?.(error),
38
68
  updateProgress
@@ -41,7 +71,7 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
41
71
  } catch (error) {
42
72
  onErrorRef.current?.(error);
43
73
  }
44
- }, [client, dataToSync, chunkSize, patient?.id, updateProgress]);
74
+ }, [authorizationPending, client, effectiveDataToSync, chunkSize, patient?.id, updateProgress]);
45
75
 
46
76
  /**
47
77
  * The first sync, which nothing used to start.
@@ -64,7 +94,7 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
64
94
  React.useEffect(() => {
65
95
  syncData();
66
96
  }, [syncData]);
67
- useListenChanges(dataToSync, () => {
97
+ useListenChanges(effectiveDataToSync, () => {
68
98
  syncData();
69
99
  }, backgroundDelivery, error => onErrorRef.current?.(error));
70
100
  React.useEffect(() => {
@@ -100,4 +130,5 @@ export const AppleHealthSync = /*#__PURE__*/React.memo(({
100
130
  }, []);
101
131
  return null;
102
132
  });
133
+ export { AppleHealthSync, filterNotRequestedIdentifiers };
103
134
  //# sourceMappingURL=apple-health-sync.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":["useClient","useMedplumProfile","useNetInfo","React","useListenChanges","AppleHealthSyncService","useAppleHealthAuthorizationStatus","filterNotRequestedIdentifiers","dataToSync","notRequestedIdentifiers","length","excluded","Set","filtered","Object","entries","forEach","key","data","typeIdentifiers","filter","typeIdentifier","has","AppleHealthSync","memo","chunkSize","wifiOnly","backgroundDelivery","onError","onProgress","authorizationStatus","filteredDataToSync","useMemo","state","notRequestedReadIdentifiers","authorizationPending","effectiveDataToSync","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":[]}
@@ -6,6 +6,8 @@ interface AndroidBluetoothForegroundServiceOptions {
6
6
  /** Text shown while the service keeps the BLE scan alive. */
7
7
  notificationTitle?: string;
8
8
  notificationBody?: string;
9
+ /** Ask Android to exempt this app from Doze when the service starts. Defaults to false. */
10
+ requestBatteryOptimizationExemption?: boolean;
9
11
  }
10
12
  interface AndroidHealthConnectBackgroundSyncOptions {
11
13
  /** WorkManager's minimum supported interval is 15 minutes. */
@@ -36,6 +38,10 @@ type AndroidHealthConnectSyncRunOptions = {
36
38
  */
37
39
  declare const startAndroidBluetoothForegroundService: (options?: AndroidBluetoothForegroundServiceOptions) => Promise<void>;
38
40
  declare const stopAndroidBluetoothForegroundService: () => Promise<void>;
41
+ /** Returns whether Android currently exempts the app from Doze battery optimizations. */
42
+ declare const isAndroidBatteryOptimizationIgnored: () => Promise<boolean>;
43
+ /** Opens Android's consent screen for a Doze exemption. This is always explicit opt-in. */
44
+ declare const requestAndroidBatteryOptimizationExemption: () => Promise<boolean>;
39
45
  /**
40
46
  * Schedules a WorkManager wake-up that starts the registered headless JS task.
41
47
  * The task must create the host app's authenticated client and run the desired
@@ -58,5 +64,5 @@ declare const runAndroidHealthConnectSync: ({ client, patientId, dataToSync, chu
58
64
  * registered before Android wakes the headless runtime.
59
65
  */
60
66
  declare const registerAndroidHealthConnectBackgroundTask: (task: AndroidHealthConnectBackgroundTask, taskName?: string) => void;
61
- export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, AndroidBluetoothForegroundServiceOptions, AndroidHealthConnectBackgroundSyncOptions, AndroidHealthConnectBackgroundTask, AndroidHealthConnectSyncRunOptions, cancelAndroidHealthConnectSync, registerAndroidHealthConnectBackgroundTask, runAndroidHealthConnectSync, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService, };
67
+ export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, AndroidBluetoothForegroundServiceOptions, AndroidHealthConnectBackgroundSyncOptions, AndroidHealthConnectBackgroundTask, AndroidHealthConnectSyncRunOptions, cancelAndroidHealthConnectSync, isAndroidBatteryOptimizationIgnored, registerAndroidHealthConnectBackgroundTask, requestAndroidBatteryOptimizationExemption, runAndroidHealthConnectSync, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService, };
62
68
  //# sourceMappingURL=android-background-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,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;AAEpB,KAAK,kCAAkC,GAAG;IAExC,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IAEnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,KACxD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;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;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,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,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
1
+ {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAepC,UAAU,wCAAwC;IAEhD,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,2FAA2F;IAC3F,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;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;AAEpB,KAAK,kCAAkC,GAAG;IAExC,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IAEnB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAElB,wEAAwE;IACxE,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,KACxD,IAAI,CAAC;CACX,CAAC;AAgBF;;;;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,yFAAyF;AACzF,QAAA,MAAM,mCAAmC,QAAa,OAAO,CAAC,OAAO,CAMpE,CAAC;AAEF,2FAA2F;AAC3F,QAAA,MAAM,0CAA0C,QAAa,OAAO,CAAC,OAAO,CAM3E,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;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,GAAU,oEAOxC,kCAAkC,KAAG,OAAO,CAAC,IAAI,CAgBnD,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,kCAAkC,EAClC,8BAA8B,EAC9B,mCAAmC,EACnC,0CAA0C,EAC1C,0CAA0C,EAC1C,2BAA2B,EAC3B,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
@@ -1 +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"}
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,EAIL,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,sBA6CxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./android-background-sync";
2
2
  export * from "./android-bluetooth-foreground-service";
3
+ export * from "./notifications";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC;AACvD,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ type PushNotificationPermissionStatus = "granted" | "denied" | "undetermined";
2
+ interface PushNotificationContent {
3
+ title: string;
4
+ body?: string;
5
+ data?: Record<string, string | number | boolean | null>;
6
+ }
7
+ /** Reads the current notification permission without showing a prompt. */
8
+ declare const getPushNotificationPermission: () => Promise<PushNotificationPermissionStatus>;
9
+ /** Requests notification permission. Call this while the app is in the foreground. */
10
+ declare const requestPushNotificationPermission: () => Promise<PushNotificationPermissionStatus>;
11
+ /** Shows a local notification for a measurement delivered by the background queue. */
12
+ declare const showPushNotification: ({ title, body, data, }: PushNotificationContent) => Promise<void>;
13
+ export { getPushNotificationPermission, PushNotificationContent, PushNotificationPermissionStatus, requestPushNotificationPermission, showPushNotification, };
14
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/notifications.ts"],"names":[],"mappings":"AAEA,KAAK,gCAAgC,GACjC,SAAS,GACT,QAAQ,GACR,cAAc,CAAC;AAEnB,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;CACzD;AAgCD,0EAA0E;AAC1E,QAAA,MAAM,6BAA6B,QAAa,OAAO,CAAC,gCAAgC,CACzB,CAAC;AAEhE,sFAAsF;AACtF,QAAA,MAAM,iCAAiC,QAAa,OAAO,CAAC,gCAAgC,CACzB,CAAC;AAEpE,sFAAsF;AACtF,QAAA,MAAM,oBAAoB,GAAU,wBAIjC,uBAAuB,KAAG,OAAO,CAAC,IAAI,CASxC,CAAC;AAEF,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,EACjC,oBAAoB,GACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAuBrE,CAAC"}
1
+ {"version":3,"file":"device-instruction-pdfs.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-instruction-pdfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAOjF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAwBrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-list-items.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-list-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,eAAO,MAAM,eAAe,EAAE,cAAc,EAsJ3C,CAAC"}
1
+ {"version":3,"file":"device-list-items.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/device-list-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAI3D,eAAO,MAAM,eAAe,EAAE,cAAc,EA8J3C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  declare const verovalBpu26Image = "https://cdn.hartmann.info/product/40938_43.jpg";
2
2
  declare const verovalBpw26Image = "https://cdn.hartmann.info/product/40385_43.jpg";
3
+ declare const verovalActivityImage = "https://image-eo.winudf.com/v2/image/aW5mby52ZXJvdmFsLm1lZGkuY29ubmVjdF9pY29uXzE1MzUwMTcwMDVfMDYx/icon.png?w=360&fakeurl=1";
3
4
  declare const bosoMedicusSystemImage = "https://www.boso.de/fileadmin/_processed_/0/b/csm_medicus_system_1019_9ce057ffcc.png";
4
5
  declare const visomatComfortSoftBtImage = "https://www.visomat.de/wp-content/uploads/2023/10/prd_slider_comfort-soft-BT.jpg";
5
6
  declare const cyclotestMySenseImage = "https://www.cyclotest.de/wp-content/uploads/cyclotest-mysense-basalthermometer-app-unfruchtbar-flex.png";
@@ -14,6 +15,7 @@ declare const hartmannDuoControlCredit = "HARTMANN official product image: https
14
15
  declare const hartmannEcgCredit = "HARTMANN official product image: https://www.hartmann.info/es-es/productos/monitorizaci%C3%B3n/electrocardiograma/veroval%C2%AE-ecg";
15
16
  declare const hartmannBpu26Credit = "HARTMANN official product image: https://www.hartmann.info/en/products/diagnostics/blood-pressure-monitors/upper-arm-products/veroval%C2%AE-compact-%2C-pl-%2C-upper-arm-blood-pressure-monitor";
16
17
  declare const hartmannBpw26Credit = "HARTMANN official product image: https://www.hartmann.info/en/products/diagnostics/blood-pressure-monitors/wrist-products/veroval%C2%AE-compact-%2C-pl-%2C-wrist-blood-pressure-monitor";
18
+ declare const hartmannActivityCredit = "Veroval Medi.Connect app artwork from APKPure: https://apkpure.net/veroval%C2%AE-medi-connect/info.veroval.medi.connect; device and protocol supplied by HARTMANN's Veroval Activity integration materials";
17
19
  declare const bosoMedicusSystemCredit = "boso official product image: https://www.boso.de/en/products-for-home-users/blood-pressure-instruments/boso-medicus-system";
18
20
  declare const visomatComfortSoftBtCredit = "visomat official product image: https://www.visomat.de/produkte/comfort-soft-bt/";
19
21
  declare const cyclotestMySenseCredit = "cyclotest official product image: https://www.cyclotest.de/produkt/cyclotest-mysense-basalthermometer/";
@@ -29,5 +31,5 @@ declare const cosinussCredit = "cosinuss\u00B0 official product page: https://ww
29
31
  declare const alivecorCredit = "AliveCor official KardiaMobile product page: https://www.alivecor.com/kardiamobile";
30
32
  declare const contecCredit = "Contec official BC401 product page: https://contechealth.com/collections/hot-sales/products/contec-bc401-handheld-urine-analyzer-11-parameter-600pcs-test-strip-bluetooth";
31
33
  declare const transtekCredit = "Transtek official product page: https://www.transtekmed.com/product/transtek-body-scale-gbs-2012-b1";
32
- export { alivecorCredit, aojCredit, bosoMedicusSystemCredit, bosoMedicusSystemImage, bundledAssetCredit, contecCredit, cosinussCredit, cyclotestMySenseCredit, cyclotestMySenseImage, foraCredit, hartmannBpu26Credit, hartmannBpw26Credit, hartmannDuoControlCredit, hartmannEcgCredit, taidocCredit, transtekCredit, viatomAojImage, viatomBodyScaleCredit, viatomBp2Image, viatomBp3Credit, viatomBp3Image, viatomBloodPressureCredit, viatomEcgCredit, viatomEr1Image, viatomF4Image, viatomO2RingImage, viatomOximeterCredit, verovalBpu26Image, verovalBpw26Image, visomatComfortSoftBtCredit, visomatComfortSoftBtImage, };
34
+ export { alivecorCredit, aojCredit, bosoMedicusSystemCredit, bosoMedicusSystemImage, bundledAssetCredit, contecCredit, cosinussCredit, cyclotestMySenseCredit, cyclotestMySenseImage, foraCredit, hartmannBpu26Credit, hartmannBpw26Credit, hartmannActivityCredit, hartmannDuoControlCredit, hartmannEcgCredit, taidocCredit, transtekCredit, viatomAojImage, viatomBodyScaleCredit, viatomBp2Image, viatomBp3Credit, viatomBp3Image, viatomBloodPressureCredit, viatomEcgCredit, viatomEr1Image, viatomF4Image, viatomO2RingImage, viatomOximeterCredit, verovalBpu26Image, verovalBpw26Image, verovalActivityImage, visomatComfortSoftBtCredit, visomatComfortSoftBtImage, };
33
35
  //# sourceMappingURL=supported-device-catalog-assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supported-device-catalog-assets.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-device-catalog-assets.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,sBAAsB,yFAC4D,CAAC;AAEzF,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,qBAAqB,4GACgF,CAAC;AAE5G,QAAA,MAAM,cAAc,oMAC+K,CAAC;AAEpM,QAAA,MAAM,cAAc,kKAC6I,CAAC;AAElK,QAAA,MAAM,aAAa,oLACgK,CAAC;AAEpL,QAAA,MAAM,iBAAiB,8LACsK,CAAC;AAE9L,QAAA,MAAM,cAAc,yKACoJ,CAAC;AAEzK,QAAA,MAAM,cAAc,2KACsJ,CAAC;AAE3K,QAAA,MAAM,kBAAkB,0FACiE,CAAC;AAE1F,QAAA,MAAM,wBAAwB,+JACgI,CAAC;AAE/J,QAAA,MAAM,iBAAiB,wIACgH,CAAC;AAExI,QAAA,MAAM,mBAAmB,oMAC0K,CAAC;AAEpM,QAAA,MAAM,mBAAmB,4LACkK,CAAC;AAE5L,QAAA,MAAM,uBAAuB,+HACiG,CAAC;AAE/H,QAAA,MAAM,0BAA0B,qFACoD,CAAC;AAErF,QAAA,MAAM,sBAAsB,2GAC8E,CAAC;AAE3G,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,eAAe,oGAC8E,CAAC;AAEpG,QAAA,MAAM,qBAAqB,wEAC4C,CAAC;AAExE,QAAA,MAAM,oBAAoB,6EACkD,CAAC;AAE7E,QAAA,MAAM,eAAe,8EACwD,CAAC;AAE9E,QAAA,MAAM,SAAS,0EAC0D,CAAC;AAE1E,QAAA,MAAM,YAAY,qEACkD,CAAC;AAErE,QAAA,MAAM,UAAU,mEAAmE,CAAC;AAEpF,QAAA,MAAM,cAAc,mGACyE,CAAC;AAE9F,QAAA,MAAM,cAAc,uFACkE,CAAC;AAEvF,QAAA,MAAM,YAAY,8KAC2J,CAAC;AAE9K,QAAA,MAAM,cAAc,wGACmF,CAAC;AAExG,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"supported-device-catalog-assets.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-device-catalog-assets.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAE3E,QAAA,MAAM,oBAAoB,+HACoG,CAAC;AAE/H,QAAA,MAAM,sBAAsB,yFAC4D,CAAC;AAEzF,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,qBAAqB,4GACgF,CAAC;AAE5G,QAAA,MAAM,cAAc,oMAC+K,CAAC;AAEpM,QAAA,MAAM,cAAc,kKAC6I,CAAC;AAElK,QAAA,MAAM,aAAa,oLACgK,CAAC;AAEpL,QAAA,MAAM,iBAAiB,8LACsK,CAAC;AAE9L,QAAA,MAAM,cAAc,yKACoJ,CAAC;AAEzK,QAAA,MAAM,cAAc,2KACsJ,CAAC;AAE3K,QAAA,MAAM,kBAAkB,0FACiE,CAAC;AAE1F,QAAA,MAAM,wBAAwB,+JACgI,CAAC;AAE/J,QAAA,MAAM,iBAAiB,wIACgH,CAAC;AAExI,QAAA,MAAM,mBAAmB,oMAC0K,CAAC;AAEpM,QAAA,MAAM,mBAAmB,4LACkK,CAAC;AAE5L,QAAA,MAAM,sBAAsB,+MACkL,CAAC;AAE/M,QAAA,MAAM,uBAAuB,+HACiG,CAAC;AAE/H,QAAA,MAAM,0BAA0B,qFACoD,CAAC;AAErF,QAAA,MAAM,sBAAsB,2GAC8E,CAAC;AAE3G,QAAA,MAAM,yBAAyB,qFACqD,CAAC;AAErF,QAAA,MAAM,eAAe,oGAC8E,CAAC;AAEpG,QAAA,MAAM,qBAAqB,wEAC4C,CAAC;AAExE,QAAA,MAAM,oBAAoB,6EACkD,CAAC;AAE7E,QAAA,MAAM,eAAe,8EACwD,CAAC;AAE9E,QAAA,MAAM,SAAS,0EAC0D,CAAC;AAE1E,QAAA,MAAM,YAAY,qEACkD,CAAC;AAErE,QAAA,MAAM,UAAU,mEAAmE,CAAC;AAEpF,QAAA,MAAM,cAAc,mGACyE,CAAC;AAE9F,QAAA,MAAM,cAAc,uFACkE,CAAC;AAEvF,QAAA,MAAM,YAAY,8KAC2J,CAAC;AAE9K,QAAA,MAAM,cAAc,wGACmF,CAAC;AAExG,OAAO,EACL,cAAc,EACd,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
@@ -79,6 +79,13 @@ declare const Devices: readonly [{
79
79
  readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
80
80
  readonly logo: "https://cdn.hartmann.info/product/40385_43.jpg";
81
81
  readonly creditsForImage: "HARTMANN official product image: https://www.hartmann.info/en/products/diagnostics/blood-pressure-monitors/wrist-products/veroval%C2%AE-compact-%2C-pl-%2C-wrist-blood-pressure-monitor";
82
+ }, {
83
+ readonly name: "Veroval Activity tracker";
84
+ readonly nameKey: "devices.catalog.veroval-activity.name";
85
+ readonly manufacturer: "HARTMANN";
86
+ readonly manufacturerKey: "devices.catalog.manufacturers.hartmann";
87
+ readonly logo: "https://image-eo.winudf.com/v2/image/aW5mby52ZXJvdmFsLm1lZGkuY29ubmVjdF9pY29uXzE1MzUwMTcwMDVfMDYx/icon.png?w=360&fakeurl=1";
88
+ readonly creditsForImage: "Veroval Medi.Connect app artwork from APKPure: https://apkpure.net/veroval%C2%AE-medi-connect/info.veroval.medi.connect; device and protocol supplied by HARTMANN's Veroval Activity integration materials";
82
89
  }, {
83
90
  readonly name: "boso medicus system";
84
91
  readonly nameKey: "devices.catalog.boso-medicus-system.name";
@@ -1 +1 @@
1
- {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AA4ChF,KAAK,eAAe,GAAG;IACrB,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;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPAkLkC,CAAC;AAyKhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAQxD,CAAC;AAEH,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"supported-devices.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-device/constants/supported-devices.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AA8ChF,KAAK,eAAe,GAAG;IACrB,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;AAEF,KAAK,yBAAyB,GAAG,eAAe,GAAG;IAEjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF;;;;;;;GAOG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qPA0LkC,CAAC;AAuLhD,+FAA+F;AAC/F,QAAA,MAAM,gBAAgB,EAAE,SAAS,yBAAyB,EAQxD,CAAC;AAEH,QAAA,MAAM,iBAAiB,sCAAmB,CAAC;AAK3C,iFAAiF;AACjF,QAAA,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAMxD,CAAC;AAEF,OAAO,EACL,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AACF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,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":"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"}
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;AAa/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EAoR9B,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 +1 @@
1
- {"version":3,"file":"integrated-devices-map.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/integrated-devices-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,gCAsB/B,CAAC"}
1
+ {"version":3,"file":"integrated-devices-map.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/constants/integrated-devices-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,eAAO,MAAM,oBAAoB,gCAuB/B,CAAC"}
@@ -44,6 +44,8 @@ export * from "./services/devices/uebe/visomat.comfort-soft-bt";
44
44
  export * from "./services/devices/veroval/veroval.bp-monitors";
45
45
  export * from "./services/devices/veroval/veroval.duo-control-device";
46
46
  export * from "./services/devices/veroval/veroval.ecg-device";
47
+ export * from "./services/devices/veroval/veroval.activity-device";
48
+ export * from "./services/devices/veroval/veroval-activity-sequencer";
47
49
  export * from "./services/devices/veroval/veroval.ecg-samples";
48
50
  export * from "./services/devices/lepu/lepu.transports";
49
51
  export * from "./services/devices/aoj/aoj.thermometers";
@@ -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,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mDAAmD,CAAC;AAClE,cAAc,wDAAwD,CAAC;AACvE,cAAc,qDAAqD,CAAC;AACpE,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,4CAA4C,CAAC;AAC3D,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,sCAAsC,CAAC;AACrD,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,uDAAuD,CAAC;AACtE,cAAc,yCAAyC,CAAC;AACxD,cAAc,uBAAuB,CAAC;AACtC,cAAc,mDAAmD,CAAC;AAClE,cAAc,wDAAwD,CAAC;AACvE,cAAc,qDAAqD,CAAC;AACpE,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,oDAAoD,CAAC;AACnE,cAAc,uDAAuD,CAAC;AACtE,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,4CAA4C,CAAC;AAC3D,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,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAOrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAsE9D,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAKhD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEvC,mBAAmB,EAAE,CAAC;IAI5C,aAAa,GAClB,WAAW,MAAM,EACjB,eAAc,SAAS,MAAM,EAAO,KACnC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAwB3B;IAEK,YAAY,CAAC,CAAC,SAAS,SAAS,EACrC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC;IA4Cd,OAAO,aAEZ;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CA+BrB;IAEF,OAAO,CAAC,eAAe;CAexB"}
1
+ {"version":3,"file":"device-creator.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/services/device-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAOrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAwE9D,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE;IAKhD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJhD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEvC,mBAAmB,EAAE,CAAC;IAI5C,aAAa,GAClB,WAAW,MAAM,EACjB,eAAc,SAAS,MAAM,EAAO,KACnC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAwB3B;IAEK,YAAY,CAAC,CAAC,SAAS,SAAS,EACrC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,eAAe,CAAC,CAAC,CAAC;IA4Cd,OAAO,aAEZ;IAEF;;;OAGG;IACH,OAAO,CAAC,eAAe,CA+BrB;IAEF,OAAO,CAAC,eAAe;CAexB"}
@@ -0,0 +1,12 @@
1
+ import { FrameReadResult } from "../../../types/frame-read-result";
2
+ import { FrameReader } from "../../../types/frame-reader";
3
+ /**
4
+ * The activity wristband sends one encrypted chunk per notification and ends a reply with
5
+ * `ff ff`. Keeping notification boundaries is important: the first four and subsequent two
6
+ * bytes of every chunk are transport headers used by the vendor cipher.
7
+ */
8
+ export declare class VerovalActivityFrameReader implements FrameReader {
9
+ private firstFrame;
10
+ readFrame(buffer: readonly string[]): FrameReadResult;
11
+ }
12
+ //# sourceMappingURL=veroval-activity-frame-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"veroval-activity-frame-reader.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval-activity-frame-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI1D;;;;GAIG;AACH,qBAAa,0BAA2B,YAAW,WAAW;IAC5D,OAAO,CAAC,UAAU,CAAQ;IAEnB,SAAS,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe;CA2C7D"}
@@ -0,0 +1,47 @@
1
+ import { MeasurementTypeKey } from "@ovok/core";
2
+ import { CaseType } from "../../../types/case-type";
3
+ import { CommandSequencer } from "../../../types/command-sequencer";
4
+ import { DeviceCommand } from "../../../types/device-command";
5
+ declare const SERVICE = "2610fc00-494d-494c-4544-55544954414c";
6
+ declare const WRITE = "2610fc02-494d-494c-4544-55544954414c";
7
+ type ActivityResult = {
8
+ measurementTypeKey: MeasurementTypeKey.stepCount;
9
+ caseType: CaseType.RESULT;
10
+ stepCount?: number;
11
+ start?: Date;
12
+ end?: Date;
13
+ } | {
14
+ measurementTypeKey: MeasurementTypeKey.heartRate;
15
+ caseType: CaseType.RESULT;
16
+ heartRate?: number;
17
+ };
18
+ interface VerovalActivitySequencerParams {
19
+ write: Omit<DeviceCommand, "frame">;
20
+ onResult: (result: ActivityResult) => void;
21
+ onError: (reason: string) => void;
22
+ }
23
+ /** Drives the private history protocol used by the Veroval Activity wristband. */
24
+ declare class VerovalActivitySequencer implements CommandSequencer {
25
+ private readonly params;
26
+ private phase;
27
+ private key;
28
+ private summary;
29
+ private daily;
30
+ private minute;
31
+ private dailyCount;
32
+ private minuteCount;
33
+ private latestAt;
34
+ private chunkCount;
35
+ constructor(params: VerovalActivitySequencerParams);
36
+ initialCommands: () => readonly DeviceCommand[];
37
+ nextCommand: (frame: readonly string[]) => readonly DeviceCommand[] | undefined;
38
+ private appendChunk;
39
+ private finishReply;
40
+ private startMinuteReply;
41
+ private parseSummary;
42
+ private parseDaily;
43
+ private parseMinute;
44
+ private stop;
45
+ }
46
+ export { SERVICE as VEROVAL_ACTIVITY_SERVICE, WRITE as VEROVAL_ACTIVITY_WRITE, VerovalActivitySequencer, };
47
+ //# sourceMappingURL=veroval-activity-sequencer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"veroval-activity-sequencer.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval-activity-sequencer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,QAAA,MAAM,OAAO,yCAAyC,CAAC;AACvD,QAAA,MAAM,KAAK,yCAAyC,CAAC;AASrD,KAAK,cAAc,GACf;IACE,kBAAkB,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GACD;IACE,kBAAkB,EAAE,kBAAkB,CAAC,SAAS,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIN,UAAU,8BAA8B;IACtC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAgDD,kFAAkF;AAClF,cAAM,wBAAyB,YAAW,gBAAgB;IAWrC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV1C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,UAAU,CAAK;gBAEa,MAAM,EAAE,8BAA8B;IAEnE,eAAe,QAAO,SAAS,aAAa,EAAE,CAcnD;IAEK,WAAW,GAChB,OAAO,SAAS,MAAM,EAAE,KACvB,SAAS,aAAa,EAAE,GAAG,SAAS,CAoCrC;IAEF,OAAO,CAAC,WAAW,CAiBjB;IAEF,OAAO,CAAC,WAAW,CA6BjB;IAEF,OAAO,CAAC,gBAAgB,CAgBtB;IAEF,OAAO,CAAC,YAAY,CA0BlB;IAEF,OAAO,CAAC,UAAU,CAuBhB;IAEF,OAAO,CAAC,WAAW,CA0CjB;IAEF,OAAO,CAAC,IAAI,CAKV;CACH;AAED,OAAO,EACL,OAAO,IAAI,wBAAwB,EACnC,KAAK,IAAI,sBAAsB,EAC/B,wBAAwB,GACzB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Device } from "react-native-ble-plx";
2
+ import { CreateDeviceParams } from "../../../types/create-device-params";
3
+ import { IntegratedDevices } from "../../../types/integrated-devices";
4
+ import { IService } from "../../../types/service.type";
5
+ import { BTManagedDevice } from "../bt-managed-device";
6
+ import { VerovalActivitySequencer } from "./veroval-activity-sequencer";
7
+ /** HARTMANN's Veroval Activity wristband, including stored step and heart-rate history. */
8
+ export declare class VerovalActivityDevice extends BTManagedDevice<IntegratedDevices.VEROVAL_ACTIVITY> {
9
+ protected stuckDataTimeout: number;
10
+ protected preferredMtu: number;
11
+ protected onStreamStart: undefined;
12
+ protected mainServices: IService[];
13
+ protected validatePackage: () => boolean;
14
+ protected createCommandSequencer: () => VerovalActivitySequencer;
15
+ constructor(device: Device, params: CreateDeviceParams<IntegratedDevices.VEROVAL_ACTIVITY>);
16
+ protected handleSuccessResult(): void;
17
+ }
18
+ //# sourceMappingURL=veroval.activity-device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"veroval.activity-device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/veroval/veroval.activity-device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAGL,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAkBtC,2FAA2F;AAC3F,qBAAa,qBAAsB,SAAQ,eAAe,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAC5F,SAAS,CAAC,gBAAgB,SAAoB;IAC9C,UAAmB,YAAY,SAAiB;IAChD,SAAS,CAAC,aAAa,YAAa;IAEpC,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAKhC;IAEF,UAAmB,eAAe,QAAO,OAAO,CAAS;IAEzD,UAAmB,sBAAsB,iCAQpC;gBAGH,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAMhE,SAAS,CAAC,mBAAmB,IAAI,IAAI;CAGtC"}
@@ -1,4 +1,5 @@
1
1
  import type { AndroidBluetoothForegroundServiceOptions } from "../../background-sync";
2
+ import type { PushNotificationContent } from "../../background-sync/notifications";
2
3
  import { DeviceKey } from "./device-key";
3
4
  import { ResultCallback } from "./result-callback";
4
5
  interface BackgroundSyncStorage {
@@ -31,6 +32,13 @@ interface BackgroundSyncOptions<T extends DeviceKey = DeviceKey> {
31
32
  android?: {
32
33
  foregroundService?: AndroidBluetoothForegroundServiceOptions;
33
34
  };
35
+ /** Optional local notification after a queued reading is accepted by onResult. */
36
+ notifications?: {
37
+ enabled?: boolean;
38
+ title?: string;
39
+ body?: string | ((result: BackgroundSyncResult<T>) => string);
40
+ data?: PushNotificationContent["data"] | ((result: BackgroundSyncResult<T>) => PushNotificationContent["data"]);
41
+ };
34
42
  /** Number of delivery attempts before an item is retained as exhausted. */
35
43
  maxRetries?: number;
36
44
  /** Base delay for retries. Delays grow exponentially up to the third attempt. */
@@ -1 +1 @@
1
- {"version":3,"file":"background-sync.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;AAEtF,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;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR,iBAAiB,CAAC,EAAE,wCAAwC,CAAC;KAC9D,CAAC;IAEF,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"}
1
+ {"version":3,"file":"background-sync.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/types/background-sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAEnF,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;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR,iBAAiB,CAAC,EAAE,wCAAwC,CAAC;KAC9D,CAAC;IAEF,kFAAkF;IAClF,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,EACD,uBAAuB,CAAC,MAAM,CAAC,GAC/B,CAAC,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;KAC5E,CAAC;IAEF,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"}
@@ -1,8 +1,18 @@
1
- import { BloodPressureMeasurement, BloodGlucoseMeasurement, BodyWeightMeasurement, EcgMeasurement, PulseOximeterMeasurement, UrineAnalyzeMeasurement } from "@ovok/core";
1
+ import { BloodPressureMeasurement, BloodGlucoseMeasurement, BodyWeightMeasurement, EcgMeasurement, PulseOximeterMeasurement, UrineAnalyzeMeasurement, MeasurementTypeKey } from "@ovok/core";
2
2
  import { CaseType } from "./case-type";
3
3
  import { CustomMeasurement } from "./custom-measurement";
4
4
  import { DeviceKey } from "./device-key";
5
5
  import { IntegratedDevices } from "./integrated-devices";
6
+ type ActivityHeartRateMeasurement = {
7
+ measurementTypeKey: MeasurementTypeKey.heartRate;
8
+ heartRate?: number;
9
+ };
10
+ type ActivityStepCountMeasurement = {
11
+ measurementTypeKey: MeasurementTypeKey.stepCount;
12
+ stepCount?: number;
13
+ start?: Date;
14
+ end?: Date;
15
+ };
6
16
  interface DeviceMeasurementMap {
7
17
  [IntegratedDevices.F4]: BodyWeightMeasurement;
8
18
  [IntegratedDevices.BP2]: BloodPressureMeasurement | EcgMeasurement;
@@ -18,6 +28,7 @@ interface DeviceMeasurementMap {
18
28
  [IntegratedDevices.BC01]: UrineAnalyzeMeasurement;
19
29
  [IntegratedDevices.VEROVAL_DUO_CONTROL]: BloodPressureMeasurement;
20
30
  [IntegratedDevices.VEROVAL_ECG]: EcgMeasurement;
31
+ [IntegratedDevices.VEROVAL_ACTIVITY]: ActivityHeartRateMeasurement | ActivityStepCountMeasurement;
21
32
  [IntegratedDevices.FORA_SCALE]: never;
22
33
  [IntegratedDevices.RPM_SCALE]: never;
23
34
  [IntegratedDevices.CLEVERTEMP]: never;