@ovok/native 1.5.1 → 1.5.3

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 (184) 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 +102 -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/constants/measurement-field-catalog.js +80 -88
  20. package/lib/commonjs/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  22. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  24. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  25. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  26. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  27. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +96 -36
  28. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  29. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +5 -3
  30. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  31. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js +94 -12
  32. package/lib/commonjs/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  33. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  34. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  35. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js +27 -11
  36. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/index.js +11 -0
  38. package/lib/commonjs/modules/data-sync/index.js.map +1 -1
  39. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -3
  40. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  41. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  42. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  43. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +19 -2
  44. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  45. package/lib/commonjs/modules/data-sync/types/health-authorization-status.js +6 -0
  46. package/lib/commonjs/modules/data-sync/types/health-authorization-status.js.map +1 -0
  47. package/lib/module/index.js +1 -0
  48. package/lib/module/index.js.map +1 -1
  49. package/lib/module/modules/background-sync/android-background-sync.js +93 -0
  50. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -0
  51. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +44 -0
  52. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  53. package/lib/module/modules/background-sync/index.js +5 -0
  54. package/lib/module/modules/background-sync/index.js.map +1 -0
  55. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +7 -2
  56. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  57. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js +81 -89
  58. package/lib/module/modules/bt-management/constants/measurement-field-catalog.js.map +1 -1
  59. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  60. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  61. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  62. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  63. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  64. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  65. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +96 -36
  66. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  67. package/lib/module/modules/data-sync/components/android/android-health-sync.js +5 -3
  68. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  69. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js +95 -13
  70. package/lib/module/modules/data-sync/components/apple/apple-health-authorization-provider.js.map +1 -1
  71. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  72. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  73. package/lib/module/modules/data-sync/hooks/use-listen-changes.js +27 -10
  74. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  75. package/lib/module/modules/data-sync/index.js +1 -0
  76. package/lib/module/modules/data-sync/index.js.map +1 -1
  77. package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -3
  78. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  79. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  80. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  81. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +19 -2
  82. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  83. package/lib/module/modules/data-sync/types/health-authorization-status.js +4 -0
  84. package/lib/module/modules/data-sync/types/health-authorization-status.js.map +1 -0
  85. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  86. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  87. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +62 -0
  88. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  90. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +3 -0
  92. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -0
  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/measurement-field-catalog.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  96. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  98. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  100. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
  102. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  104. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  106. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  108. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  110. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +4 -4
  112. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  113. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts +1 -0
  115. package/lib/typescript/commonjs/src/modules/data-sync/index.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  117. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +4 -4
  119. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +4 -1
  121. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +7 -1
  123. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
  125. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  127. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
  129. package/lib/typescript/commonjs/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
  130. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  131. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  133. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  134. package/lib/typescript/module/src/index.d.ts +1 -0
  135. package/lib/typescript/module/src/index.d.ts.map +1 -1
  136. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +62 -0
  137. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  138. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  139. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  140. package/lib/typescript/module/src/modules/background-sync/index.d.ts +3 -0
  141. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -0
  142. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/bt-management/constants/measurement-field-catalog.d.ts.map +1 -1
  144. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  145. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  146. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  147. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  148. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  149. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  150. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
  151. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  152. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  153. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  154. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  155. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  156. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts +1 -1
  157. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-authorization-provider.d.ts.map +1 -1
  158. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  159. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  160. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +4 -4
  161. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  162. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  163. package/lib/typescript/module/src/modules/data-sync/index.d.ts +1 -0
  164. package/lib/typescript/module/src/modules/data-sync/index.d.ts.map +1 -1
  165. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  166. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  167. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +4 -4
  168. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  169. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +4 -1
  170. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  171. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +7 -1
  172. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  173. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts +5 -1
  174. package/lib/typescript/module/src/modules/data-sync/types/apple-health-authorization-provider-props.d.ts.map +1 -1
  175. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  176. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  177. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts +15 -0
  178. package/lib/typescript/module/src/modules/data-sync/types/health-authorization-status.d.ts.map +1 -0
  179. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  180. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  181. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  182. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  183. package/package.json +6 -3
  184. package/react-native.config.js +11 -0
@@ -5,60 +5,122 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.AndroidHealthConnectAuthorizationProvider = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
8
9
  var _reactNativeHealthConnect = require("react-native-health-connect");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
- const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers) => {
12
- const [status, setStatus] = React.useState("shouldRequest");
13
- const requestAuthorization = React.useCallback(async () => {
12
+ const toError = error => error instanceof Error ? error : new Error(String(error));
13
+ const useHealthConnectAuthorization = (readIdentifiers, writeIdentifiers, backgroundAccess = false, onStatusChange) => {
14
+ const [status, setStatus] = React.useState({
15
+ state: "unknown"
16
+ });
17
+ const hasRequestedRef = React.useRef(false);
18
+ const identifiersRef = React.useRef({
19
+ readIdentifiers,
20
+ writeIdentifiers
21
+ });
22
+ const permissionsRef = React.useRef([]);
23
+ identifiersRef.current = {
24
+ readIdentifiers,
25
+ writeIdentifiers
26
+ };
27
+ permissionsRef.current = (() => {
28
+ const readPermissions = identifiersRef.current.readIdentifiers.map(recordType => ({
29
+ accessType: "read",
30
+ recordType
31
+ }));
32
+ const writePermissions = (identifiersRef.current.writeIdentifiers || []).map(recordType => ({
33
+ accessType: "write",
34
+ recordType
35
+ }));
36
+ const backgroundPermissions = backgroundAccess ? [{
37
+ accessType: "read",
38
+ recordType: "BackgroundAccessPermission"
39
+ }] : [];
40
+ return [...readPermissions, ...writePermissions, ...backgroundPermissions];
41
+ })();
42
+ const updateStatus = React.useCallback(nextStatus => {
43
+ setStatus(nextStatus);
44
+ onStatusChange?.(nextStatus);
45
+ }, [onStatusChange]);
46
+ const checkAuthorization = React.useCallback(async () => {
14
47
  try {
15
48
  const isInitialized = await (0, _reactNativeHealthConnect.initialize)();
16
49
  if (!isInitialized) {
17
- setStatus("error");
50
+ const error = new Error("Health Connect is not available");
51
+ updateStatus({
52
+ state: "error",
53
+ error
54
+ });
18
55
  return;
19
56
  }
20
- const readPermissions = readIdentifiers.map(recordType => ({
21
- accessType: "read",
22
- recordType
23
- }));
24
- const writePermissions = (writeIdentifiers || []).map(recordType => ({
25
- accessType: "write",
26
- recordType
27
- }));
28
- const permissions = [...readPermissions, ...writePermissions];
29
- await (0, _reactNativeHealthConnect.requestPermission)(permissions);
30
57
  const grantedPermissions = await (0, _reactNativeHealthConnect.getGrantedPermissions)();
31
- const allGranted = permissions.every(permission => grantedPermissions.some(granted => granted.accessType === permission.accessType && granted.recordType === permission.recordType));
32
- setStatus(allGranted ? "authorized" : "shouldRequest");
33
- } catch {
34
- setStatus("error");
58
+ const allGranted = permissionsRef.current.every(permission => grantedPermissions.some(granted => granted.accessType === permission.accessType && granted.recordType === permission.recordType));
59
+ updateStatus({
60
+ state: allGranted ? "authorized" : hasRequestedRef.current ? "refused" : "shouldRequest"
61
+ });
62
+ } catch (error) {
63
+ updateStatus({
64
+ state: "error",
65
+ error: toError(error)
66
+ });
35
67
  }
36
- }, [readIdentifiers, writeIdentifiers]);
68
+ }, [updateStatus]);
69
+ const requestAuthorization = React.useCallback(async () => {
70
+ hasRequestedRef.current = true;
71
+ updateStatus({
72
+ state: "requesting"
73
+ });
74
+ try {
75
+ const isInitialized = await (0, _reactNativeHealthConnect.initialize)();
76
+ if (!isInitialized) {
77
+ throw new Error("Health Connect is not available");
78
+ }
79
+ await (0, _reactNativeHealthConnect.requestPermission)(permissionsRef.current);
80
+ await checkAuthorization();
81
+ } catch (error) {
82
+ updateStatus({
83
+ state: "error",
84
+ error: toError(error)
85
+ });
86
+ }
87
+ }, [checkAuthorization, updateStatus]);
88
+ React.useEffect(() => {
89
+ void checkAuthorization();
90
+ }, [checkAuthorization]);
91
+ React.useEffect(() => {
92
+ const subscription = _reactNative.AppState.addEventListener("change", state => {
93
+ if (state === "active") {
94
+ void checkAuthorization();
95
+ }
96
+ });
97
+ return () => subscription.remove();
98
+ }, [checkAuthorization]);
37
99
  return [status, requestAuthorization];
38
100
  };
39
-
40
- // TODO: add error handling
41
101
  const AndroidHealthConnectAuthorizationProvider = exports.AndroidHealthConnectAuthorizationProvider = /*#__PURE__*/React.memo(({
42
102
  readIdentifiers,
43
103
  writeIdentifiers,
44
104
  fallback,
45
105
  children,
46
106
  skipRequest,
47
- renderManualRequestUI
107
+ renderManualRequestUI,
108
+ backgroundAccess,
109
+ onAuthorizationStatusChange
48
110
  }) => {
49
- const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers);
50
- const shouldRenderManualRequestUI = renderManualRequestUI && authorizationStatus === "shouldRequest" && !skipRequest;
51
- const shouldRenderFallback = fallback && authorizationStatus === "shouldRequest" && !skipRequest;
111
+ const [authorizationStatus, requestAuthorization] = useHealthConnectAuthorization(readIdentifiers, writeIdentifiers, backgroundAccess, onAuthorizationStatusChange);
112
+ const shouldRenderManualRequestUI = renderManualRequestUI && ["unknown", "shouldRequest", "refused"].includes(authorizationStatus.state) && !skipRequest;
113
+ const shouldRenderFallback = fallback && ["shouldRequest", "refused", "requesting", "error"].includes(authorizationStatus.state) && !skipRequest;
52
114
  React.useEffect(() => {
53
- if (renderManualRequestUI) {
115
+ if (renderManualRequestUI || skipRequest || authorizationStatus.state !== "shouldRequest") {
54
116
  return;
55
117
  }
56
- if (authorizationStatus === "shouldRequest") {
57
- requestAuthorization();
58
- }
59
- }, [authorizationStatus, requestAuthorization, renderManualRequestUI]);
60
- if (authorizationStatus === "unknown") {
61
- return null;
118
+ void requestAuthorization();
119
+ }, [authorizationStatus.state, renderManualRequestUI, requestAuthorization, skipRequest]);
120
+ if (skipRequest || authorizationStatus.state === "authorized") {
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
122
+ children: children
123
+ });
62
124
  }
63
125
  if (shouldRenderManualRequestUI) {
64
126
  return renderManualRequestUI?.(requestAuthorization);
@@ -68,10 +130,8 @@ const AndroidHealthConnectAuthorizationProvider = exports.AndroidHealthConnectAu
68
130
  children: fallback || null
69
131
  });
70
132
  }
71
- if (authorizationStatus === "authorized") {
72
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
73
- children: children
74
- });
133
+ if (authorizationStatus.state === "unknown") {
134
+ return null;
75
135
  }
76
136
  return null;
77
137
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNativeHealthConnect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","status","setStatus","useState","requestAuthorization","useCallback","isInitialized","initialize","readPermissions","map","recordType","accessType","writePermissions","permissions","requestPermission","grantedPermissions","getGrantedPermissions","allGranted","every","permission","some","granted","AndroidHealthConnectAuthorizationProvider","exports","memo","fallback","children","skipRequest","renderManualRequestUI","authorizationStatus","shouldRenderManualRequestUI","shouldRenderFallback","useEffect","jsx","Fragment"],"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","_interopRequireWildcard","require","_reactNative","_reactNativeHealthConnect","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toError","error","Error","String","useHealthConnectAuthorization","readIdentifiers","writeIdentifiers","backgroundAccess","onStatusChange","status","setStatus","useState","state","hasRequestedRef","useRef","identifiersRef","permissionsRef","current","readPermissions","map","recordType","accessType","writePermissions","backgroundPermissions","updateStatus","useCallback","nextStatus","checkAuthorization","isInitialized","initialize","grantedPermissions","getGrantedPermissions","allGranted","every","permission","some","granted","requestAuthorization","requestPermission","useEffect","subscription","AppState","addEventListener","remove","AndroidHealthConnectAuthorizationProvider","exports","memo","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","shouldRenderManualRequestUI","includes","shouldRenderFallback","jsx","Fragment"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
12
12
  const AndroidHealthSync = exports.AndroidHealthSync = /*#__PURE__*/React.memo(({
13
13
  dataToSync,
14
14
  chunkSize,
15
+ wifiOnly = false,
15
16
  onError,
16
17
  onProgress
17
18
  }) => {
@@ -51,12 +52,13 @@ const AndroidHealthSync = exports.AndroidHealthSync = /*#__PURE__*/React.memo(({
51
52
  if (!serviceRef.current) {
52
53
  return;
53
54
  }
54
- if (!isConnected || type !== "wifi") {
55
- serviceRef.current.pauseSync();
55
+ const pauseReason = isConnected === false ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
56
+ if (pauseReason) {
57
+ serviceRef.current.pauseSync(pauseReason);
56
58
  return;
57
59
  }
58
60
  serviceRef.current.startSync();
59
- }, [isConnected, type]);
61
+ }, [isConnected, type, wifiOnly]);
60
62
  React.useEffect(() => {
61
63
  onErrorRef.current = onError;
62
64
  onProgressRef.current = onProgress;
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_netinfo","React","_interopRequireWildcard","_androidHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidHealthSync","exports","memo","dataToSync","chunkSize","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AndroidHealthSyncService","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":["_core","require","_netinfo","React","_interopRequireWildcard","_androidHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AndroidHealthSync","exports","memo","dataToSync","chunkSize","wifiOnly","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AndroidHealthSyncService","getInstance","patientId","id","onSyncError","error","startSync","useEffect","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/android/android-health-sync.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,uBAAA,CAAAH,OAAA;AAEA,IAAAI,yBAAA,GAAAJ,OAAA;AAAsF,SAAAG,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAI/E,MAAMkB,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,gBAAGtB,KAAK,CAACwB,IAAI,CACzC,CAAC;EACCC,UAAU;EACVC,SAAS;EACTC,QAAQ,GAAG,KAAK;EAChBC,OAAO;EACPC;AACsB,CAAC,KAAK;EAC5B,MAAMC,MAAM,GAAG,IAAAC,eAAS,EAAC,CAAC;EAC1B,MAAMC,OAAO,GAAG,IAAAC,uBAAiB,EAAC,CAAC;EACnC,MAAMC,UAAU,GAAGlC,KAAK,CAACmC,MAAM,CAAkC,IAAI,CAAC;EACtE,MAAM;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAU,EAAC,CAAC;EAE1C,MAAMC,UAAU,GAAGvC,KAAK,CAACmC,MAAM,CAACP,OAAO,CAAC;EACxC,MAAMY,aAAa,GAAGxC,KAAK,CAACmC,MAAM,CAACN,UAAU,CAAC;EAE9C,MAAMY,WAAW,GAAGzC,KAAK,CAACmC,MAAM,CAE9B,CAAC,CAAC,CAAC;EAEL,MAAMO,cAAc,GAAG1C,KAAK,CAAC2C,WAAW,CAAEC,QAAsB,IAAK;IACnEH,WAAW,CAACI,OAAO,CAACD,QAAQ,CAACE,kBAAkB,CAAC,GAAGF,QAAQ;IAE3DJ,aAAa,CAACK,OAAO,GAAGJ,WAAW,CAACI,OAAO,CAAC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,QAAQ,GAAG/C,KAAK,CAAC2C,WAAW,CAAC,YAAY;IAC7C,IAAI;MACFT,UAAU,CAACW,OAAO,GAAGG,kDAAwB,CAACC,WAAW,CAAC;QACxDnB,MAAM;QACNoB,SAAS,EAAElB,OAAO,EAAEmB,EAAE,IAAI,EAAE;QAC5B1B,UAAU;QACVC,SAAS;QACT0B,WAAW,EAAGC,KAAY,IAAKd,UAAU,CAACM,OAAO,GAAGQ,KAAK,CAAC;QAC1DX;MACF,CAAC,CAAC;MAEF,MAAMR,UAAU,CAACW,OAAO,CAACS,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,OAAOD,KAAK,EAAE;MACdd,UAAU,CAACM,OAAO,GAAGQ,KAAc,CAAC;IACtC;EACF,CAAC,EAAE,CAACvB,MAAM,EAAEL,UAAU,EAAEC,SAAS,EAAEM,OAAO,EAAEmB,EAAE,EAAET,cAAc,CAAC,CAAC;EAEhE1C,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpBR,QAAQ,CAAC,CAAC;EACZ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd/C,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpB,IAAI,CAACrB,UAAU,CAACW,OAAO,EAAE;MACvB;IACF;IAEA,MAAMW,WAAW,GACfpB,WAAW,KAAK,KAAK,GACjB,SAAS,GACTT,QAAQ,IAAIU,IAAI,KAAK,MAAM,GACzB,WAAW,GACXoB,SAAS;IAEjB,IAAID,WAAW,EAAE;MACftB,UAAU,CAACW,OAAO,CAACa,SAAS,CAACF,WAAW,CAAC;MAEzC;IACF;IAEAtB,UAAU,CAACW,OAAO,CAACS,SAAS,CAAC,CAAC;EAChC,CAAC,EAAE,CAAClB,WAAW,EAAEC,IAAI,EAAEV,QAAQ,CAAC,CAAC;EAEjC3B,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpBhB,UAAU,CAACM,OAAO,GAAGjB,OAAO;IAC5BY,aAAa,CAACK,OAAO,GAAGhB,UAAU;EACpC,CAAC,EAAE,CAACD,OAAO,EAAEC,UAAU,CAAC,CAAC;EAEzB7B,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX;AACR;AACA;AACA;AACA;AACA;MACQ,IAAI;QACFrB,UAAU,CAACW,OAAO,EAAEc,QAAQ,CAAC,CAAC;MAChC,CAAC,CAAC,OAAON,KAAK,EAAE;QACdd,UAAU,CAACM,OAAO,GAAGQ,KAAc,CAAC;MACtC;MAEAnB,UAAU,CAACW,OAAO,GAAG,IAAI;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACb,CACF,CAAC","ignoreList":[]}
@@ -8,36 +8,118 @@ var _reactNativeHealthkit = require("@kingstinct/react-native-healthkit");
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ const getNotRequestedIdentifiers = async (identifiers, getStatus) => {
12
+ const statuses = await Promise.all(identifiers.map(async identifier => ({
13
+ identifier,
14
+ status: await getStatus(identifier)
15
+ })));
16
+ return statuses.filter(({
17
+ status
18
+ }) => status === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest).map(({
19
+ identifier
20
+ }) => identifier);
21
+ };
11
22
  const AppleHealthAuthorizationProvider = exports.AppleHealthAuthorizationProvider = /*#__PURE__*/React.memo(({
12
23
  readIdentifiers,
13
24
  writeIdentifiers,
14
25
  fallback,
15
26
  children,
16
27
  skipRequest,
17
- renderManualRequestUI
28
+ renderManualRequestUI,
29
+ onAuthorizationStatusChange
18
30
  }) => {
19
31
  const [authorizationStatus, requestAuthorization] = (0, _reactNativeHealthkit.useHealthkitAuthorization)(readIdentifiers, writeIdentifiers);
20
- const shouldRenderManualRequestUI = renderManualRequestUI && authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest && !skipRequest;
21
- const shouldRenderFallback = fallback && authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest && !skipRequest;
32
+ const [requestState, setRequestState] = React.useState("unknown");
33
+ const [notRequestedReadIdentifiers, setNotRequestedReadIdentifiers] = React.useState(readIdentifiers);
34
+ const [notRequestedWriteIdentifiers, setNotRequestedWriteIdentifiers] = React.useState(writeIdentifiers || []);
35
+ const [requestError, setRequestError] = React.useState();
36
+ const requestKey = `${readIdentifiers.join(",")}::${(writeIdentifiers || []).join(",")}`;
37
+ const identifiersRef = React.useRef({
38
+ readIdentifiers,
39
+ writeIdentifiers
40
+ });
41
+ identifiersRef.current = {
42
+ readIdentifiers,
43
+ writeIdentifiers
44
+ };
45
+ const previousRequestKey = React.useRef(requestKey);
46
+ const status = React.useMemo(() => ({
47
+ error: requestError,
48
+ state: requestState,
49
+ notRequestedReadIdentifiers,
50
+ notRequestedWriteIdentifiers
51
+ }), [notRequestedReadIdentifiers, notRequestedWriteIdentifiers, requestError, requestState]);
52
+ React.useEffect(() => {
53
+ onAuthorizationStatusChange?.(status);
54
+ }, [onAuthorizationStatusChange, status]);
55
+ const inspectAuthorization = React.useCallback(async () => {
56
+ const {
57
+ readIdentifiers: currentRead,
58
+ writeIdentifiers: currentWrite
59
+ } = identifiersRef.current;
60
+ const [notRequestedRead, notRequestedWrite] = await Promise.all([getNotRequestedIdentifiers(currentRead, identifier => (0, _reactNativeHealthkit.getRequestStatusForAuthorization)([identifier])), getNotRequestedIdentifiers(currentWrite || [], identifier => (0, _reactNativeHealthkit.getRequestStatusForAuthorization)([], [identifier]))]);
61
+ setNotRequestedReadIdentifiers(notRequestedRead);
62
+ setNotRequestedWriteIdentifiers(notRequestedWrite);
63
+ }, []);
64
+ const requestAccess = React.useCallback(async () => {
65
+ setRequestState("requesting");
66
+ try {
67
+ await requestAuthorization();
68
+ await inspectAuthorization();
69
+ setRequestError(undefined);
70
+ setRequestState("ready");
71
+ } catch (error) {
72
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
73
+ setRequestError(normalizedError);
74
+ setRequestState("error");
75
+ }
76
+ }, [inspectAuthorization, requestAuthorization]);
22
77
  React.useEffect(() => {
23
- if (renderManualRequestUI) {
78
+ if (previousRequestKey.current === requestKey) {
24
79
  return;
25
80
  }
26
- requestAuthorization();
27
- }, [readIdentifiers, writeIdentifiers, requestAuthorization, renderManualRequestUI]);
28
- if (!authorizationStatus) {
29
- return null;
81
+ previousRequestKey.current = requestKey;
82
+ setRequestError(undefined);
83
+ setRequestState(authorizationStatus === null ? "unknown" : authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : "ready");
84
+ setNotRequestedReadIdentifiers(readIdentifiers);
85
+ setNotRequestedWriteIdentifiers(writeIdentifiers || []);
86
+ }, [authorizationStatus, readIdentifiers, requestKey, writeIdentifiers]);
87
+ React.useEffect(() => {
88
+ if (authorizationStatus === null) {
89
+ return;
90
+ }
91
+ void inspectAuthorization().catch(error => {
92
+ const normalizedError = error instanceof Error ? error : new Error(String(error));
93
+ setRequestError(normalizedError);
94
+ setRequestState("error");
95
+ });
96
+ setRequestState(currentState => currentState === "unknown" ? authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest ? "shouldRequest" : "ready" : currentState);
97
+ }, [authorizationStatus, inspectAuthorization]);
98
+ React.useEffect(() => {
99
+ if (renderManualRequestUI || skipRequest || authorizationStatus !== _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest || requestState !== "shouldRequest") {
100
+ return;
101
+ }
102
+ void requestAccess();
103
+ }, [authorizationStatus, requestAccess, renderManualRequestUI, requestState, skipRequest]);
104
+ const needsAuthorization = requestState === "shouldRequest" || requestState === "requesting" || requestState === "unknown" && authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.shouldRequest;
105
+ const shouldRenderManualRequestUI = renderManualRequestUI && needsAuthorization && requestState !== "requesting" && !skipRequest;
106
+ const shouldRenderFallback = fallback && needsAuthorization && !skipRequest;
107
+ if (skipRequest || requestState === "ready" || requestState === "unknown" && authorizationStatus === _reactNativeHealthkit.HKAuthorizationRequestStatus.unnecessary) {
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
109
+ children: children
110
+ });
30
111
  }
31
112
  if (shouldRenderManualRequestUI) {
32
- return renderManualRequestUI?.(requestAuthorization);
113
+ return renderManualRequestUI?.(requestAccess);
33
114
  }
34
115
  if (shouldRenderFallback) {
35
116
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
36
117
  children: fallback || null
37
118
  });
38
119
  }
39
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
40
- children: children
41
- });
120
+ if (requestState === "error" || requestState === "unknown") {
121
+ return null;
122
+ }
123
+ return null;
42
124
  });
43
125
  //# sourceMappingURL=apple-health-authorization-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeHealthkit","require","React","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AppleHealthAuthorizationProvider","exports","memo","readIdentifiers","writeIdentifiers","fallback","children","skipRequest","renderManualRequestUI","authorizationStatus","requestAuthorization","useHealthkitAuthorization","shouldRenderManualRequestUI","HKAuthorizationRequestStatus","shouldRequest","shouldRenderFallback","useEffect","jsx","Fragment"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-authorization-provider.tsx"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAIxB,MAAMkB,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,gBAAGtB,KAAK,CAACwB,IAAI,CACxD,CAAC;EACCC,eAAe;EACfC,gBAAgB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,WAAW;EACXC;AAC8D,CAAC,KAAK;EACpE,MAAM,CAACC,mBAAmB,EAAEC,oBAAoB,CAAC,GAC/C,IAAAC,+CAAyB,EAACR,eAAe,EAAEC,gBAAgB,CAAC;EAE9D,MAAMQ,2BAA2B,GAC/BJ,qBAAqB,IACrBC,mBAAmB,KAAKI,kDAA4B,CAACC,aAAa,IAClE,CAACP,WAAW;EAEd,MAAMQ,oBAAoB,GACxBV,QAAQ,IACRI,mBAAmB,KAAKI,kDAA4B,CAACC,aAAa,IAClE,CAACP,WAAW;EAEd7B,KAAK,CAACsC,SAAS,CAAC,MAAM;IACpB,IAAIR,qBAAqB,EAAE;MACzB;IACF;IAEAE,oBAAoB,CAAC,CAAC;EACxB,CAAC,EAAE,CACDP,eAAe,EACfC,gBAAgB,EAChBM,oBAAoB,EACpBF,qBAAqB,CACtB,CAAC;EAEF,IAAI,CAACC,mBAAmB,EAAE;IACxB,OAAO,IAAI;EACb;EAEA,IAAIG,2BAA2B,EAAE;IAC/B,OAAOJ,qBAAqB,GAAGE,oBAAoB,CAAC;EACtD;EAEA,IAAIK,oBAAoB,EAAE;IACxB,oBAAO,IAAAnC,WAAA,CAAAqC,GAAA,EAAArC,WAAA,CAAAsC,QAAA;MAAAZ,QAAA,EAAGD,QAAQ,IAAI;IAAI,CAAG,CAAC;EAChC;EAEA,oBAAO,IAAAzB,WAAA,CAAAqC,GAAA,EAAArC,WAAA,CAAAsC,QAAA;IAAAZ,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeHealthkit","require","React","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getNotRequestedIdentifiers","identifiers","getStatus","statuses","Promise","all","map","identifier","status","filter","HKAuthorizationRequestStatus","shouldRequest","AppleHealthAuthorizationProvider","exports","memo","readIdentifiers","writeIdentifiers","fallback","children","skipRequest","renderManualRequestUI","onAuthorizationStatusChange","authorizationStatus","requestAuthorization","useHealthkitAuthorization","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","getRequestStatusForAuthorization","requestAccess","undefined","normalizedError","Error","String","catch","currentState","needsAuthorization","shouldRenderManualRequestUI","shouldRenderFallback","unnecessary","jsx","Fragment"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-authorization-provider.tsx"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAK/B,MAAMkB,0BAA0B,GAAG,MAAAA,CACjCC,WAAgB,EAChBC,SAAmE,KAClD;EACjB,MAAMC,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAG,CAChCJ,WAAW,CAACK,GAAG,CAAC,MAAOC,UAAU,KAAM;IACrCA,UAAU;IACVC,MAAM,EAAE,MAAMN,SAAS,CAACK,UAAU;EACpC,CAAC,CAAC,CACJ,CAAC;EAED,OAAOJ,QAAQ,CACZM,MAAM,CACL,CAAC;IAAED;EAAO,CAAC,KAAKA,MAAM,KAAKE,kDAA4B,CAACC,aAC1D,CAAC,CACAL,GAAG,CAAC,CAAC;IAAEC;EAAW,CAAC,KAAKA,UAAU,CAAC;AACxC,CAAC;AAEM,MAAMK,gCAAgC,GAAAC,OAAA,CAAAD,gCAAA,gBAAGlC,KAAK,CAACoC,IAAI,CACxD,CAAC;EACCC,eAAe;EACfC,gBAAgB;EAChBC,QAAQ;EACRC,QAAQ;EACRC,WAAW;EACXC,qBAAqB;EACrBC;AAC8D,CAAC,KAAK;EACpE,MAAM,CAACC,mBAAmB,EAAEC,oBAAoB,CAAC,GAC/C,IAAAC,+CAAyB,EAACT,eAAe,EAAEC,gBAAgB,CAAC;EAE9D,MAAM,CAACS,YAAY,EAAEC,eAAe,CAAC,GACnChD,KAAK,CAACiD,QAAQ,CAA0C,SAAS,CAAC;EAEpE,MAAM,CAACC,2BAA2B,EAAEC,8BAA8B,CAAC,GACjEnD,KAAK,CAACiD,QAAQ,CAACZ,eAAe,CAAC;EAEjC,MAAM,CAACe,4BAA4B,EAAEC,+BAA+B,CAAC,GACnErD,KAAK,CAACiD,QAAQ,CAACX,gBAAgB,IAAI,EAAE,CAAC;EAExC,MAAM,CAACgB,YAAY,EAAEC,eAAe,CAAC,GAAGvD,KAAK,CAACiD,QAAQ,CAAQ,CAAC;EAE/D,MAAMO,UAAU,GAAG,GAAGnB,eAAe,CAACoB,IAAI,CAAC,GAAG,CAAC,KAAK,CAClDnB,gBAAgB,IAAI,EAAE,EACtBmB,IAAI,CAAC,GAAG,CAAC,EAAE;EAEb,MAAMC,cAAc,GAAG1D,KAAK,CAAC2D,MAAM,CAAC;IAAEtB,eAAe;IAAEC;EAAiB,CAAC,CAAC;EAE1EoB,cAAc,CAACE,OAAO,GAAG;IAAEvB,eAAe;IAAEC;EAAiB,CAAC;EAE9D,MAAMuB,kBAAkB,GAAG7D,KAAK,CAAC2D,MAAM,CAACH,UAAU,CAAC;EAEnD,MAAM1B,MAAsC,GAAG9B,KAAK,CAAC8D,OAAO,CAC1D,OAAO;IACLC,KAAK,EAAET,YAAY;IACnBU,KAAK,EAAEjB,YAAY;IACnBG,2BAA2B;IAC3BE;EACF,CAAC,CAAC,EACF,CACEF,2BAA2B,EAC3BE,4BAA4B,EAC5BE,YAAY,EACZP,YAAY,CAEhB,CAAC;EAED/C,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpBtB,2BAA2B,GAAGb,MAAM,CAAC;EACvC,CAAC,EAAE,CAACa,2BAA2B,EAAEb,MAAM,CAAC,CAAC;EAEzC,MAAMoC,oBAAoB,GAAGlE,KAAK,CAACmE,WAAW,CAAC,YAAY;IACzD,MAAM;MAAE9B,eAAe,EAAE+B,WAAW;MAAE9B,gBAAgB,EAAE+B;IAAa,CAAC,GACpEX,cAAc,CAACE,OAAO;IAExB,MAAM,CAACU,gBAAgB,EAAEC,iBAAiB,CAAC,GAAG,MAAM7C,OAAO,CAACC,GAAG,CAAC,CAC9DL,0BAA0B,CAAC8C,WAAW,EAAGvC,UAAU,IACjD,IAAA2C,sDAAgC,EAAC,CAAC3C,UAAU,CAAC,CAC/C,CAAC,EACDP,0BAA0B,CAAC+C,YAAY,IAAI,EAAE,EAAGxC,UAAU,IACxD,IAAA2C,sDAAgC,EAAC,EAAE,EAAE,CAAC3C,UAAU,CAAC,CACnD,CAAC,CACF,CAAC;IAEFsB,8BAA8B,CAACmB,gBAAgB,CAAC;IAChDjB,+BAA+B,CAACkB,iBAAiB,CAAC;EACpD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,aAAa,GAAGzE,KAAK,CAACmE,WAAW,CAAC,YAAY;IAClDnB,eAAe,CAAC,YAAY,CAAC;IAE7B,IAAI;MACF,MAAMH,oBAAoB,CAAC,CAAC;MAC5B,MAAMqB,oBAAoB,CAAC,CAAC;MAC5BX,eAAe,CAACmB,SAAS,CAAC;MAC1B1B,eAAe,CAAC,OAAO,CAAC;IAC1B,CAAC,CAAC,OAAOe,KAAK,EAAE;MACd,MAAMY,eAAe,GACnBZ,KAAK,YAAYa,KAAK,GAAGb,KAAK,GAAG,IAAIa,KAAK,CAACC,MAAM,CAACd,KAAK,CAAC,CAAC;MAE3DR,eAAe,CAACoB,eAAe,CAAC;MAChC3B,eAAe,CAAC,OAAO,CAAC;IAC1B;EACF,CAAC,EAAE,CAACkB,oBAAoB,EAAErB,oBAAoB,CAAC,CAAC;EAEhD7C,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,IAAIJ,kBAAkB,CAACD,OAAO,KAAKJ,UAAU,EAAE;MAC7C;IACF;IAEAK,kBAAkB,CAACD,OAAO,GAAGJ,UAAU;IACvCD,eAAe,CAACmB,SAAS,CAAC;IAC1B1B,eAAe,CACbJ,mBAAmB,KAAK,IAAI,GACxB,SAAS,GACTA,mBAAmB,KAAKZ,kDAA4B,CAACC,aAAa,GAChE,eAAe,GACf,OACR,CAAC;IACDkB,8BAA8B,CAACd,eAAe,CAAC;IAC/CgB,+BAA+B,CAACf,gBAAgB,IAAI,EAAE,CAAC;EACzD,CAAC,EAAE,CAACM,mBAAmB,EAAEP,eAAe,EAAEmB,UAAU,EAAElB,gBAAgB,CAAC,CAAC;EAExEtC,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,IAAIrB,mBAAmB,KAAK,IAAI,EAAE;MAChC;IACF;IAEA,KAAKsB,oBAAoB,CAAC,CAAC,CAACY,KAAK,CAAEf,KAAc,IAAK;MACpD,MAAMY,eAAe,GACnBZ,KAAK,YAAYa,KAAK,GAAGb,KAAK,GAAG,IAAIa,KAAK,CAACC,MAAM,CAACd,KAAK,CAAC,CAAC;MAE3DR,eAAe,CAACoB,eAAe,CAAC;MAChC3B,eAAe,CAAC,OAAO,CAAC;IAC1B,CAAC,CAAC;IAEFA,eAAe,CAAE+B,YAAY,IAC3BA,YAAY,KAAK,SAAS,GACtBnC,mBAAmB,KAAKZ,kDAA4B,CAACC,aAAa,GAChE,eAAe,GACf,OAAO,GACT8C,YACN,CAAC;EACH,CAAC,EAAE,CAACnC,mBAAmB,EAAEsB,oBAAoB,CAAC,CAAC;EAE/ClE,KAAK,CAACiE,SAAS,CAAC,MAAM;IACpB,IACEvB,qBAAqB,IACrBD,WAAW,IACXG,mBAAmB,KAAKZ,kDAA4B,CAACC,aAAa,IAClEc,YAAY,KAAK,eAAe,EAChC;MACA;IACF;IAEA,KAAK0B,aAAa,CAAC,CAAC;EACtB,CAAC,EAAE,CACD7B,mBAAmB,EACnB6B,aAAa,EACb/B,qBAAqB,EACrBK,YAAY,EACZN,WAAW,CACZ,CAAC;EAEF,MAAMuC,kBAAkB,GACtBjC,YAAY,KAAK,eAAe,IAChCA,YAAY,KAAK,YAAY,IAC5BA,YAAY,KAAK,SAAS,IACzBH,mBAAmB,KAAKZ,kDAA4B,CAACC,aAAc;EAEvE,MAAMgD,2BAA2B,GAC/BvC,qBAAqB,IACrBsC,kBAAkB,IAClBjC,YAAY,KAAK,YAAY,IAC7B,CAACN,WAAW;EAEd,MAAMyC,oBAAoB,GAAG3C,QAAQ,IAAIyC,kBAAkB,IAAI,CAACvC,WAAW;EAE3E,IACEA,WAAW,IACXM,YAAY,KAAK,OAAO,IACvBA,YAAY,KAAK,SAAS,IACzBH,mBAAmB,KAAKZ,kDAA4B,CAACmD,WAAY,EACnE;IACA,oBAAO,IAAAjF,WAAA,CAAAkF,GAAA,EAAAlF,WAAA,CAAAmF,QAAA;MAAA7C,QAAA,EAAGA;IAAQ,CAAG,CAAC;EACxB;EAEA,IAAIyC,2BAA2B,EAAE;IAC/B,OAAOvC,qBAAqB,GAAG+B,aAAa,CAAC;EAC/C;EAEA,IAAIS,oBAAoB,EAAE;IACxB,oBAAO,IAAAhF,WAAA,CAAAkF,GAAA,EAAAlF,WAAA,CAAAmF,QAAA;MAAA7C,QAAA,EAAGD,QAAQ,IAAI;IAAI,CAAG,CAAC;EAChC;EAEA,IAAIQ,YAAY,KAAK,OAAO,IAAIA,YAAY,KAAK,SAAS,EAAE;IAC1D,OAAO,IAAI;EACb;EAEA,OAAO,IAAI;AACb,CACF,CAAC","ignoreList":[]}
@@ -13,6 +13,8 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
13
13
  const AppleHealthSync = exports.AppleHealthSync = /*#__PURE__*/React.memo(({
14
14
  dataToSync,
15
15
  chunkSize,
16
+ wifiOnly = false,
17
+ backgroundDelivery,
16
18
  onError,
17
19
  onProgress
18
20
  }) => {
@@ -69,17 +71,18 @@ const AppleHealthSync = exports.AppleHealthSync = /*#__PURE__*/React.memo(({
69
71
  }, [syncData]);
70
72
  (0, _useListenChanges.useListenChanges)(dataToSync, () => {
71
73
  syncData();
72
- });
74
+ }, backgroundDelivery, error => onErrorRef.current?.(error));
73
75
  React.useEffect(() => {
74
76
  if (!serviceRef.current) {
75
77
  return;
76
78
  }
77
- if (!isConnected || type !== "wifi") {
78
- serviceRef.current.pauseSync();
79
+ const pauseReason = isConnected === false ? "offline" : wifiOnly && type !== "wifi" ? "wifi-only" : undefined;
80
+ if (pauseReason) {
81
+ serviceRef.current.pauseSync(pauseReason);
79
82
  return;
80
83
  }
81
84
  serviceRef.current.startSync();
82
- }, [isConnected, type]);
85
+ }, [isConnected, type, wifiOnly]);
83
86
  React.useEffect(() => {
84
87
  onErrorRef.current = onError;
85
88
  onProgressRef.current = onProgress;
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_netinfo","React","_interopRequireWildcard","_useListenChanges","_appleHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AppleHealthSync","exports","memo","dataToSync","chunkSize","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AppleHealthSyncService","getInstance","patientId","id","onSyncError","error","startSync","useEffect","useListenChanges","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,uBAAA,CAAAH,OAAA;AAEA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,uBAAA,GAAAL,OAAA;AAAkF,SAAAG,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAI3E,MAAMkB,eAAe,GAAAC,OAAA,CAAAD,eAAA,gBAAGvB,KAAK,CAACyB,IAAI,CACvC,CAAC;EAAEC,UAAU;EAAEC,SAAS;EAAEC,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACxE,MAAMC,MAAM,GAAG,IAAAC,eAAS,EAAC,CAAC;EAC1B,MAAMC,OAAO,GAAG,IAAAC,uBAAiB,EAAC,CAAC;EACnC,MAAMC,UAAU,GAAGlC,KAAK,CAACmC,MAAM,CAAgC,IAAI,CAAC;EACpE,MAAM;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAG,IAAAC,mBAAU,EAAC,CAAC;EAE1C,MAAMC,UAAU,GAAGvC,KAAK,CAACmC,MAAM,CAACP,OAAO,CAAC;EACxC,MAAMY,aAAa,GAAGxC,KAAK,CAACmC,MAAM,CAACN,UAAU,CAAC;EAE9C,MAAMY,WAAW,GAAGzC,KAAK,CAACmC,MAAM,CAE9B,CAAC,CAAC,CAAC;EAEL,MAAMO,cAAc,GAAG1C,KAAK,CAAC2C,WAAW,CAAEC,QAAsB,IAAK;IACnEH,WAAW,CAACI,OAAO,CAACD,QAAQ,CAACE,kBAAkB,CAAC,GAAGF,QAAQ;IAE3DJ,aAAa,CAACK,OAAO,GAAGJ,WAAW,CAACI,OAAO,CAAC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,QAAQ,GAAG/C,KAAK,CAAC2C,WAAW,CAAC,YAAY;IAC7C,IAAI;MACFT,UAAU,CAACW,OAAO,GAAGG,8CAAsB,CAACC,WAAW,CAAC;QACtDnB,MAAM;QACNoB,SAAS,EAAElB,OAAO,EAAEmB,EAAE,IAAI,EAAE;QAC5BzB,UAAU;QACVC,SAAS;QACTyB,WAAW,EAAGC,KAAK,IAAKd,UAAU,CAACM,OAAO,GAAGQ,KAAc,CAAC;QAC5DX;MACF,CAAC,CAAC;MAEF,MAAMR,UAAU,CAACW,OAAO,CAACS,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,OAAOD,KAAK,EAAE;MACdd,UAAU,CAACM,OAAO,GAAGQ,KAAc,CAAC;IACtC;EACF,CAAC,EAAE,CAACvB,MAAM,EAAEJ,UAAU,EAAEC,SAAS,EAAEK,OAAO,EAAEmB,EAAE,EAAET,cAAc,CAAC,CAAC;;EAEhE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI1C,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpBR,QAAQ,CAAC,CAAC;EACZ,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAAS,kCAAgB,EAAC9B,UAAU,EAAE,MAAM;IACjCqB,QAAQ,CAAC,CAAC;EACZ,CAAC,CAAC;EAEF/C,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpB,IAAI,CAACrB,UAAU,CAACW,OAAO,EAAE;MACvB;IACF;IAEA,IAAI,CAACT,WAAW,IAAIC,IAAI,KAAK,MAAM,EAAE;MACnCH,UAAU,CAACW,OAAO,CAACY,SAAS,CAAC,CAAC;MAE9B;IACF;IAEAvB,UAAU,CAACW,OAAO,CAACS,SAAS,CAAC,CAAC;EAChC,CAAC,EAAE,CAAClB,WAAW,EAAEC,IAAI,CAAC,CAAC;EAEvBrC,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpBhB,UAAU,CAACM,OAAO,GAAGjB,OAAO;IAC5BY,aAAa,CAACK,OAAO,GAAGhB,UAAU;EACpC,CAAC,EAAE,CAACD,OAAO,EAAEC,UAAU,CAAC,CAAC;EAEzB7B,KAAK,CAACuD,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX;AACR;AACA;AACA;AACA;AACA;MACQ,IAAI;QACFrB,UAAU,CAACW,OAAO,EAAEa,QAAQ,CAAC,CAAC;MAChC,CAAC,CAAC,OAAOL,KAAK,EAAE;QACdd,UAAU,CAACM,OAAO,GAAGQ,KAAc,CAAC;MACtC;MAEAnB,UAAU,CAACW,OAAO,GAAG,IAAI;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACb,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_netinfo","React","_interopRequireWildcard","_useListenChanges","_appleHealthSyncService","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AppleHealthSync","exports","memo","dataToSync","chunkSize","wifiOnly","backgroundDelivery","onError","onProgress","client","useClient","patient","useMedplumProfile","serviceRef","useRef","isConnected","type","useNetInfo","onErrorRef","onProgressRef","progressRef","updateProgress","useCallback","progress","current","measurementTypeKey","syncData","AppleHealthSyncService","getInstance","patientId","id","onSyncError","error","startSync","useEffect","useListenChanges","pauseReason","undefined","pauseSync","stopSync"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/components/apple/apple-health-sync.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,16 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useListenChanges = void 0;
7
- var _reactNativeHealthkit = _interopRequireDefault(require("@kingstinct/react-native-healthkit"));
7
+ var _reactNativeHealthkit = _interopRequireWildcard(require("@kingstinct/react-native-healthkit"));
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- const useListenChanges = (dataToSync, onChange) => {
10
+ const useListenChanges = (dataToSync, onChange, backgroundDelivery, onError) => {
12
11
  const timeoutRef = React.useRef(undefined);
13
12
  const onChangeRef = React.useRef(onChange);
13
+ const onErrorRef = React.useRef(onError);
14
14
  const identifiers = React.useMemo(() => {
15
15
  return Object.values(dataToSync).flatMap(data => data?.typeIdentifiers.map(identifier => identifier.typeIdentifier));
16
16
  }, [dataToSync]);
17
+ const backgroundDeliveryEnabled = backgroundDelivery !== undefined;
18
+ const backgroundDeliveryFrequency = backgroundDelivery?.frequency ?? _reactNativeHealthkit.HKUpdateFrequency.hourly;
17
19
  const debouncedOnChange = React.useCallback(identifier => {
18
20
  if (timeoutRef.current) {
19
21
  clearTimeout(timeoutRef.current);
@@ -26,6 +28,9 @@ const useListenChanges = (dataToSync, onChange) => {
26
28
  React.useEffect(() => {
27
29
  onChangeRef.current = onChange;
28
30
  }, [onChange]);
31
+ React.useEffect(() => {
32
+ onErrorRef.current = onError;
33
+ }, [onError]);
29
34
  React.useEffect(() => {
30
35
  return () => {
31
36
  if (timeoutRef.current) {
@@ -36,21 +41,32 @@ const useListenChanges = (dataToSync, onChange) => {
36
41
  React.useEffect(() => {
37
42
  const subscriptions = [];
38
43
  const initSubscriptions = async () => {
39
- return Promise.all(identifiers.map(async identifier => {
40
- const subscription = await _reactNativeHealthkit.default.subscribeToChanges(identifier, () => {
41
- debouncedOnChange(identifier);
42
- });
43
- subscriptions.push(subscription);
44
- return subscription;
45
- }));
44
+ try {
45
+ return await Promise.all(identifiers.map(async identifier => {
46
+ if (backgroundDeliveryEnabled) {
47
+ await _reactNativeHealthkit.default.enableBackgroundDelivery(identifier, backgroundDeliveryFrequency);
48
+ }
49
+ const subscription = await _reactNativeHealthkit.default.subscribeToChanges(identifier, () => {
50
+ debouncedOnChange(identifier);
51
+ });
52
+ subscriptions.push(subscription);
53
+ return subscription;
54
+ }));
55
+ } catch (error) {
56
+ onErrorRef.current?.(error);
57
+ return undefined;
58
+ }
46
59
  };
47
60
  initSubscriptions();
48
61
  return () => {
49
62
  subscriptions.forEach(subscription => {
50
63
  subscription?.();
51
64
  });
65
+ if (backgroundDeliveryEnabled) {
66
+ void Promise.all(identifiers.map(identifier => _reactNativeHealthkit.default.disableBackgroundDelivery(identifier))).catch(error => onErrorRef.current?.(error));
67
+ }
52
68
  };
53
- }, [identifiers, debouncedOnChange]);
69
+ }, [identifiers, debouncedOnChange, backgroundDeliveryEnabled, backgroundDeliveryFrequency]);
54
70
  };
55
71
  exports.useListenChanges = useListenChanges;
56
72
  //# sourceMappingURL=use-listen-changes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeHealthkit","_interopRequireDefault","require","React","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useListenChanges","dataToSync","onChange","timeoutRef","useRef","undefined","onChangeRef","identifiers","useMemo","values","flatMap","data","typeIdentifiers","map","identifier","typeIdentifier","debouncedOnChange","useCallback","current","clearTimeout","setTimeout","useEffect","subscriptions","initSubscriptions","Promise","all","subscription","Healthkit","subscribeToChanges","push","forEach","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/hooks/use-listen-changes.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeHealthkit","_interopRequireWildcard","require","React","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useListenChanges","dataToSync","onChange","backgroundDelivery","onError","timeoutRef","useRef","undefined","onChangeRef","onErrorRef","identifiers","useMemo","values","flatMap","data","typeIdentifiers","map","identifier","typeIdentifier","backgroundDeliveryEnabled","backgroundDeliveryFrequency","frequency","HKUpdateFrequency","hourly","debouncedOnChange","useCallback","current","clearTimeout","setTimeout","useEffect","subscriptions","initSubscriptions","Promise","all","Healthkit","enableBackgroundDelivery","subscription","subscribeToChanges","push","error","forEach","disableBackgroundDelivery","catch","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/hooks/use-listen-changes.ts"],"mappings":";;;;;;AAAA,IAAAA,qBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAF,uBAAA,CAAAC,OAAA;AAA+B,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAIxB,MAAMkB,gBAAgB,GAAGA,CAC9BC,UAA8C,EAC9CC,QAAkD,EAClDC,kBAA+D,EAC/DC,OAAgC,KAC7B;EACH,MAAMC,UAAU,GAAGzB,KAAK,CAAC0B,MAAM,CAA6BC,SAAS,CAAC;EAEtE,MAAMC,WAAW,GAAG5B,KAAK,CAAC0B,MAAM,CAACJ,QAAQ,CAAC;EAC1C,MAAMO,UAAU,GAAG7B,KAAK,CAAC0B,MAAM,CAACF,OAAO,CAAC;EAExC,MAAMM,WAAW,GAAG9B,KAAK,CAAC+B,OAAO,CAAC,MAAM;IACtC,OAAOd,MAAM,CAACe,MAAM,CAACX,UAAU,CAAC,CAACY,OAAO,CAAEC,IAAI,IAC5CA,IAAI,EAAEC,eAAe,CAACC,GAAG,CAAEC,UAAU,IAAKA,UAAU,CAACC,cAAc,CACrE,CAAC;EACH,CAAC,EAAE,CAACjB,UAAU,CAAC,CAAC;EAEhB,MAAMkB,yBAAyB,GAAGhB,kBAAkB,KAAKI,SAAS;EAElE,MAAMa,2BAA2B,GAC/BjB,kBAAkB,EAAEkB,SAAS,IAAIC,uCAAiB,CAACC,MAAM;EAE3D,MAAMC,iBAAiB,GAAG5C,KAAK,CAAC6C,WAAW,CACxCR,UAAkC,IAAK;IACtC,IAAIZ,UAAU,CAACqB,OAAO,EAAE;MACtBC,YAAY,CAACtB,UAAU,CAACqB,OAAO,CAAC;IAClC;IAEArB,UAAU,CAACqB,OAAO,GAAGE,UAAU,CAAC,MAAM;MACpCpB,WAAW,CAACkB,OAAO,CAACT,UAAU,CAAC;MAC/BZ,UAAU,CAACqB,OAAO,GAAGnB,SAAS;IAChC,CAAC,EAAE,GAAG,CAAC;EACT,CAAC,EACD,EACF,CAAC;EAED3B,KAAK,CAACiD,SAAS,CAAC,MAAM;IACpBrB,WAAW,CAACkB,OAAO,GAAGxB,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdtB,KAAK,CAACiD,SAAS,CAAC,MAAM;IACpBpB,UAAU,CAACiB,OAAO,GAAGtB,OAAO;EAC9B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEbxB,KAAK,CAACiD,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,IAAIxB,UAAU,CAACqB,OAAO,EAAE;QACtBC,YAAY,CAACtB,UAAU,CAACqB,OAAO,CAAC;MAClC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN9C,KAAK,CAACiD,SAAS,CAAC,MAAM;IACpB,MAAMC,aAAuD,GAAG,EAAE;IAElE,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;MACpC,IAAI;QACF,OAAO,MAAMC,OAAO,CAACC,GAAG,CACtBvB,WAAW,CAACM,GAAG,CAAC,MAAOC,UAAU,IAAK;UACpC,IAAIE,yBAAyB,EAAE;YAC7B,MAAMe,6BAAS,CAACC,wBAAwB,CACtClB,UAAU,EACVG,2BACF,CAAC;UACH;UAEA,MAAMgB,YAAY,GAAG,MAAMF,6BAAS,CAACG,kBAAkB,CACrDpB,UAAU,EACV,MAAM;YACJO,iBAAiB,CAACP,UAAU,CAAC;UAC/B,CACF,CAAC;UAEDa,aAAa,CAACQ,IAAI,CAACF,YAAY,CAAC;UAEhC,OAAOA,YAAY;QACrB,CAAC,CACH,CAAC;MACH,CAAC,CAAC,OAAOG,KAAK,EAAE;QACd9B,UAAU,CAACiB,OAAO,GAAGa,KAAc,CAAC;QAEpC,OAAOhC,SAAS;MAClB;IACF,CAAC;IAEDwB,iBAAiB,CAAC,CAAC;IAEnB,OAAO,MAAM;MACXD,aAAa,CAACU,OAAO,CAAEJ,YAAY,IAAK;QACtCA,YAAY,GAAG,CAAC;MAClB,CAAC,CAAC;MAEF,IAAIjB,yBAAyB,EAAE;QAC7B,KAAKa,OAAO,CAACC,GAAG,CACdvB,WAAW,CAACM,GAAG,CAAEC,UAAU,IACzBiB,6BAAS,CAACO,yBAAyB,CAACxB,UAAU,CAChD,CACF,CAAC,CAACyB,KAAK,CAAEH,KAAc,IAAK9B,UAAU,CAACiB,OAAO,GAAGa,KAAc,CAAC,CAAC;MACnE;IACF,CAAC;EACH,CAAC,EAAE,CACD7B,WAAW,EACXc,iBAAiB,EACjBL,yBAAyB,EACzBC,2BAA2B,CAC5B,CAAC;AACJ,CAAC;AAACuB,OAAA,CAAA3C,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -58,4 +58,15 @@ Object.keys(_androidHealthSyncProps).forEach(function (key) {
58
58
  }
59
59
  });
60
60
  });
61
+ var _healthAuthorizationStatus = require("./types/health-authorization-status.js");
62
+ Object.keys(_healthAuthorizationStatus).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _healthAuthorizationStatus[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _healthAuthorizationStatus[key];
69
+ }
70
+ });
71
+ });
61
72
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_dataSync","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,iBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,iBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,iBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,iBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,aAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,aAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,aAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,aAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,uBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,uBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,uBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,uBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_dataSync","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_appleHealthSyncProps","_syncProgressList","_syncProgress","_androidHealthSyncProps","_healthAuthorizationStatus"],"sourceRoot":"../../../../src","sources":["modules/data-sync/index.ts"],"mappings":";;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,SAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,SAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,SAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,qBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,qBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,qBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,qBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,iBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,iBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,iBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,iBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,aAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,aAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,aAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,aAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,uBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,uBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,uBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAI,uBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,0BAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,0BAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,0BAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAK,0BAAA,CAAAT,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}