@ovok/native 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/android/build.gradle +43 -0
  2. package/android/src/main/AndroidManifest.xml +23 -0
  3. package/android/src/main/java/com/ovok/sdk/backgroundsync/BackgroundSyncNotification.java +78 -0
  4. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +109 -0
  5. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncPackage.java +26 -0
  6. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBluetoothForegroundService.java +28 -0
  7. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectTaskService.java +45 -0
  8. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +28 -0
  9. package/lib/commonjs/index.js +11 -0
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/modules/background-sync/android-background-sync.js +69 -0
  12. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -0
  13. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +49 -0
  14. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  15. package/lib/commonjs/modules/background-sync/index.js +28 -0
  16. package/lib/commonjs/modules/background-sync/index.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +7 -1
  18. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  20. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  22. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  24. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  26. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  27. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +5 -3
  28. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  29. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  30. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  31. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js +27 -11
  32. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  33. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -3
  34. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  35. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  36. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  38. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  39. package/lib/module/index.js +1 -0
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/module/modules/background-sync/android-background-sync.js +61 -0
  42. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -0
  43. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +44 -0
  44. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  45. package/lib/module/modules/background-sync/index.js +5 -0
  46. package/lib/module/modules/background-sync/index.js.map +1 -0
  47. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +7 -2
  48. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  49. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  50. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  51. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  52. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  53. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  54. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  55. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  56. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  57. package/lib/module/modules/data-sync/components/android/android-health-sync.js +5 -3
  58. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  59. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  60. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  61. package/lib/module/modules/data-sync/hooks/use-listen-changes.js +27 -10
  62. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  63. package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -3
  64. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  65. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  66. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  67. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  68. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  69. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  70. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +39 -0
  72. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  74. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +3 -0
  76. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  79. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  81. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  83. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
  85. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  87. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  89. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  91. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +3 -3
  93. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  94. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  96. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  98. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  100. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  102. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  104. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  106. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  108. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  109. package/lib/typescript/module/src/index.d.ts +1 -0
  110. package/lib/typescript/module/src/index.d.ts.map +1 -1
  111. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +39 -0
  112. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  113. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  114. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  115. package/lib/typescript/module/src/modules/background-sync/index.d.ts +3 -0
  116. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -0
  117. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  118. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  119. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  120. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  121. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  122. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  123. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  124. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
  125. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  126. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  127. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  129. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  130. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  131. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +3 -3
  133. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  134. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  135. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  136. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  138. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  139. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  140. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  141. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  142. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  144. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  145. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  146. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  147. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  148. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  149. package/package.json +6 -3
  150. package/react-native.config.js +11 -0
@@ -1,3 +1,4 @@
1
+ import type { AndroidBluetoothForegroundServiceOptions } from "../../background-sync";
1
2
  import { DeviceKey } from "./device-key";
2
3
  import { ResultCallback } from "./result-callback";
3
4
  interface BackgroundSyncStorage {
@@ -23,6 +24,13 @@ interface BackgroundSyncOptions<T extends DeviceKey = DeviceKey> {
23
24
  serviceUUIDs?: readonly string[];
24
25
  /** iOS restoration identifier. Keep this stable for the lifetime of the app. */
25
26
  restoreStateIdentifier?: string;
27
+ /**
28
+ * Optional Android foreground-service configuration. When present, the
29
+ * service keeps the JS BLE scan process alive while the app is backgrounded.
30
+ */
31
+ android?: {
32
+ foregroundService?: AndroidBluetoothForegroundServiceOptions;
33
+ };
26
34
  /** Number of delivery attempts before an item is retained as exhausted. */
27
35
  maxRetries?: number;
28
36
  /** 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,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,UAAU,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAC5D,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAE7D,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,OAAO,EAAE,qBAAqB,CAAC;IAE/B,qFAAqF;IACrF,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
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,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AndroidHealthConnectAuthorizationProviderProps } from "../../types/android-health-connect-authorization-provider-props";
3
- export declare const AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
3
+ export declare const AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, backgroundAccess, }: React.PropsWithChildren<AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
4
4
  //# sourceMappingURL=android-health-connect-authorization-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-health-connect-authorization-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,8CAA8C,EAAE,MAAM,iEAAiE,CAAC;AA2DjI,eAAO,MAAM,yCAAyC,6HAQjD,KAAK,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,qSAwC3E,CAAC"}
1
+ {"version":3,"file":"android-health-connect-authorization-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,8CAA8C,EAAE,MAAM,iEAAiE,CAAC;AA0EjI,eAAO,MAAM,yCAAyC,+IASjD,KAAK,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,qSA4C3E,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AndroidHealthSyncProps } from "../../types/android-health-sync-props";
3
- export declare const AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: AndroidHealthSyncProps) => null>;
3
+ export declare const AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, onError, onProgress, }: AndroidHealthSyncProps) => null>;
4
4
  //# sourceMappingURL=android-health-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,eAAO,MAAM,iBAAiB,6EACqB,sBAAsB,UA+ExE,CAAC"}
1
+ {"version":3,"file":"android-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,eAAO,MAAM,iBAAiB,wFAOzB,sBAAsB,UAqF1B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AppleHealthSyncProps } from "../../types/apple-health-sync-props";
3
- export declare const AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: AppleHealthSyncProps) => null>;
3
+ export declare const AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, backgroundDelivery, onError, onProgress, }: AppleHealthSyncProps) => null>;
4
4
  //# sourceMappingURL=apple-health-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apple-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/apple/apple-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,eAAe,6EACuB,oBAAoB,UAqGtE,CAAC"}
1
+ {"version":3,"file":"apple-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/apple/apple-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,eAAe,4GAQvB,oBAAoB,UA2GxB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  export declare const DataSync: {
3
3
  ({ children }: React.PropsWithChildren): React.JSX.Element;
4
- AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<import("../types/android-health-connect-authorization-provider-props").AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
5
- AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: import("..").AndroidHealthSyncProps) => null>;
4
+ AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, backgroundAccess, }: React.PropsWithChildren<import("../types/android-health-connect-authorization-provider-props").AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
5
+ AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, onError, onProgress, }: import("..").AndroidHealthSyncProps) => null>;
6
6
  AppleHealthAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<import("../types/apple-health-authorization-provider-props").AppleHealthAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
7
- AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: import("..").AppleHealthSyncProps) => null>;
7
+ AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, backgroundDelivery, onError, onProgress, }: import("..").AppleHealthSyncProps) => null>;
8
8
  ManuallyRequestSheet: React.NamedExoticComponent<import("@gorhom/bottom-sheet").BottomSheetModalProps<any> & React.RefAttributes<import("@gorhom/bottom-sheet").BottomSheetModal>> & {
9
9
  Container: (props: import("@gorhom/bottom-sheet/lib/typescript/components/bottomSheetView/types").BottomSheetViewProps) => React.JSX.Element;
10
10
  Title: <T extends import("react-native-paper").MD3TypescaleKey>(props: import("react-native-paper").TextProps<T>) => React.JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import { HKSampleTypeIdentifier } from "@kingstinct/react-native-healthkit";
2
2
  import { AppleHealthSyncProps } from "../types/apple-health-sync-props";
3
- export declare const useListenChanges: (dataToSync: AppleHealthSyncProps["dataToSync"], onChange: (sample: HKSampleTypeIdentifier) => void) => void;
3
+ export declare const useListenChanges: (dataToSync: AppleHealthSyncProps["dataToSync"], onChange: (sample: HKSampleTypeIdentifier) => void, backgroundDelivery?: AppleHealthSyncProps["backgroundDelivery"], onError?: (error: Error) => void) => void;
4
4
  //# sourceMappingURL=use-listen-changes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-listen-changes.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/hooks/use-listen-changes.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,CAAC,YAAY,CAAC,EAC9C,UAAU,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,SAkEnD,CAAC"}
1
+ {"version":3,"file":"use-listen-changes.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/hooks/use-listen-changes.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,sBAAsB,EAEvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,CAAC,YAAY,CAAC,EAC9C,UAAU,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,EAClD,qBAAqB,oBAAoB,CAAC,oBAAoB,CAAC,EAC/D,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,SAsGjC,CAAC"}
@@ -9,6 +9,7 @@ import { DataFromProviderResult } from "../types/data-from-provider-result";
9
9
  import { GetDataFromProviderProps } from "../types/get-data-from-provider-props";
10
10
  import { GetTotalCountProps } from "../types/get-total-count-props";
11
11
  import { HealthProvider } from "../types/health-provider";
12
+ import { SyncPauseReason } from "../types/sync-progress";
12
13
  export declare abstract class BaseHealthSyncService<TDataToSync extends AndroidHealthSyncProps["dataToSync"] | AppleHealthSyncProps["dataToSync"], TTypeIdentifier extends HKQuantityTypeIdentifier | RecordType, TDataFromProvider = TTypeIdentifier extends RecordType ? RecordResult<TTypeIdentifier> : TTypeIdentifier extends HKQuantityTypeIdentifier ? HKQuantitySample<TTypeIdentifier> : never> {
13
14
  private readonly client;
14
15
  private readonly patientId;
@@ -27,7 +28,7 @@ export declare abstract class BaseHealthSyncService<TDataToSync extends AndroidH
27
28
  startSync(): Promise<void>;
28
29
  private runSync;
29
30
  stopSync(): Promise<void>;
30
- pauseSync(): Promise<void>;
31
+ pauseSync(reason?: SyncPauseReason): Promise<void>;
31
32
  private initializeSync;
32
33
  private calculateTotalCounts;
33
34
  private processAllDataTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAQ1D,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,wBAAwB,GAAG,UAAU,EAC7D,iBAAiB,GAAG,eAAe,SAAS,UAAU,GAClD,YAAY,CAAC,eAAe,CAAC,GAC7B,eAAe,SAAS,wBAAwB,GAC9C,gBAAgB,CAAC,eAAe,CAAC,GACjC,KAAK;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAIzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAIzB,cAAc;YAUd,oBAAoB;YAuBpB,mBAAmB;YAqBnB,cAAc;IAoD5B,OAAO,CAAC,yBAAyB;CAGlC"}
1
+ {"version":3,"file":"base-health-sync-service.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/services/base-health-sync-service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD,8BAAsB,qBAAqB,CACzC,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC,EACtC,eAAe,SAAS,wBAAwB,GAAG,UAAU,EAC7D,iBAAiB,GAAG,eAAe,SAAS,UAAU,GAClD,YAAY,CAAC,eAAe,CAAC,GAC7B,eAAe,SAAS,wBAAwB,GAC9C,gBAAgB,CAAC,eAAe,CAAC,GACjC,KAAK;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IAErD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;gBAEU,KAAK,EAAE,gBAAgB,CAAC,WAAW,CAAC;IA2BhD,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,cAAc;IAEpD,SAAS,CAAC,QAAQ,CAAC,sBAAsB,IAAI,CAC3C,KAAK,EAAE,kBAAkB,CAAC,eAAe,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC;IAEpB,SAAS,CAAC,QAAQ,CAAC,2BAA2B,IAAI,CAChD,KAAK,EAAE,wBAAwB,CAAC,eAAe,CAAC,KAC7C,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAExE,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,CACzC,KAAK,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,KACvC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE3B,2EAA2E;IAC9D,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAIzB,OAAO;IA6BR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAKjD,cAAc;YAUd,oBAAoB;YAuBpB,mBAAmB;YAqBnB,cAAc;IAoD5B,OAAO,CAAC,yBAAyB;CAGlC"}
@@ -1,12 +1,12 @@
1
1
  import { AndroidHealthSyncProps } from "../../types/android-health-sync-props";
2
2
  import { AppleHealthSyncProps } from "../../types/apple-health-sync-props";
3
3
  import { HealthSyncKeys } from "../../types/health-sync-keys";
4
- import { SyncProgress } from "../../types/sync-progress";
4
+ import { SyncPauseReason, SyncProgress } from "../../types/sync-progress";
5
5
  export declare class SyncProgressManager<TDataToSync extends AndroidHealthSyncProps["dataToSync"] | AppleHealthSyncProps["dataToSync"]> {
6
6
  private updateProgress;
7
7
  private syncData;
8
8
  constructor(updateProgress: (progress: SyncProgress) => void, dataToSync: TDataToSync);
9
- setPauseStatuses(): void;
9
+ setPauseStatuses(reason?: SyncPauseReason): void;
10
10
  setNotStartedStatuses(): void;
11
11
  getProgress(measurementTypeKey: HealthSyncKeys): {
12
12
  done: number;
@@ -14,7 +14,7 @@ export declare class SyncProgressManager<TDataToSync extends AndroidHealthSyncPr
14
14
  };
15
15
  setTotalObservations(measurementTypeKey: HealthSyncKeys, total: number): void;
16
16
  incrementSyncedObservations(measurementTypeKey: HealthSyncKeys, count: number): void;
17
- setStatus(measurementTypeKey: HealthSyncKeys, status: SyncProgress["status"]): void;
17
+ setStatus(measurementTypeKey: HealthSyncKeys, status: SyncProgress["status"], reason?: SyncPauseReason): void;
18
18
  getStatus(measurementTypeKey: HealthSyncKeys): "idle" | "paused" | "completed" | "started" | "syncing";
19
19
  resetAll(): void;
20
20
  private notifyProgress;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAczD,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAiD;gBAGvD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB;IAWhB,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,cAAc;;;;IAO9C,oBAAoB,CAAC,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAKtE,2BAA2B,CACzB,kBAAkB,EAAE,cAAc,EAClC,KAAK,EAAE,MAAM;IAOf,SAAS,CACP,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;IAMhC,SAAS,CAAC,kBAAkB,EAAE,cAAc;IAI5C,QAAQ;IASR,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"sync-progress-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-progress-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EACL,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAC;AAenC,qBAAa,mBAAmB,CAC9B,WAAW,SACP,sBAAsB,CAAC,YAAY,CAAC,GACpC,oBAAoB,CAAC,YAAY,CAAC;IAKpC,OAAO,CAAC,cAAc;IAHxB,OAAO,CAAC,QAAQ,CAAiD;gBAGvD,cAAc,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,EACxD,UAAU,EAAE,WAAW;IASzB,gBAAgB,CAAC,MAAM,CAAC,EAAE,eAAe;IAWzC,qBAAqB;IAWrB,WAAW,CAAC,kBAAkB,EAAE,cAAc;;;;IAO9C,oBAAoB,CAAC,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM;IAKtE,2BAA2B,CACzB,kBAAkB,EAAE,cAAc,EAClC,KAAK,EAAE,MAAM;IAOf,SAAS,CACP,kBAAkB,EAAE,cAAc,EAClC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC9B,MAAM,CAAC,EAAE,eAAe;IAQ1B,SAAS,CAAC,kBAAkB,EAAE,cAAc;IAI5C,QAAQ;IASR,OAAO,CAAC,cAAc;CAYvB"}
@@ -1,4 +1,5 @@
1
1
  import { Bundle, Observation } from "@medplum/fhirtypes";
2
+ import { SyncPauseReason } from "../../types/sync-progress";
2
3
  export declare class SyncStateManager {
3
4
  /**
4
5
  * A sync in flight, so a second caller joins it rather than starting another.
@@ -12,6 +13,7 @@ export declare class SyncStateManager {
12
13
  */
13
14
  private inFlight;
14
15
  shouldStopSync: boolean;
16
+ pauseReason: SyncPauseReason | undefined;
15
17
  initialDataFetched: boolean;
16
18
  latestObservationDates: Array<{
17
19
  code: string | undefined;
@@ -22,7 +24,7 @@ export declare class SyncStateManager {
22
24
  /** Runs `sync`, or joins the run already under way. */
23
25
  once(sync: () => Promise<void>): Promise<void>;
24
26
  reset(): void;
25
- pause(): void;
27
+ pause(reason?: SyncPauseReason): void;
26
28
  resume(): void;
27
29
  }
28
30
  //# sourceMappingURL=sync-state-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-state-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzD,qBAAa,gBAAgB;IAC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAA4B;IAErC,cAAc,UAAS;IACvB,kBAAkB,UAAS;IAC3B,sBAAsB,EAAE,KAAK,CAAC;QACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1B,CAAC,CAAM;IACD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAM;IAE3C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;IAI5C,uDAAuD;IACjD,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,KAAK,IAAI,IAAI;IAOb,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"sync-state-manager.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/services/managers/sync-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,qBAAa,gBAAgB;IAC3B;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAA4B;IAErC,cAAc,UAAS;IACvB,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;IACzC,kBAAkB,UAAS;IAC3B,sBAAsB,EAAE,KAAK,CAAC;QACnC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1B,CAAC,CAAM;IACD,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAM;IAE3C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI;IAI5C,uDAAuD;IACjD,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,KAAK,IAAI,IAAI;IAQb,KAAK,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI;IAKrC,MAAM,IAAI,IAAI;CAIf"}
@@ -1,4 +1,7 @@
1
1
  import type { RecordType } from "react-native-health-connect";
2
2
  import { HealthAuthorizationProviderProps } from "./health-authorization-provider-props";
3
- export type AndroidHealthConnectAuthorizationProviderProps = HealthAuthorizationProviderProps<RecordType>;
3
+ export type AndroidHealthConnectAuthorizationProviderProps = HealthAuthorizationProviderProps<RecordType> & {
4
+ /** Request Health Connect's special background-read permission as well. */
5
+ backgroundAccess?: boolean;
6
+ };
4
7
  //# sourceMappingURL=android-health-connect-authorization-provider-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-health-connect-authorization-provider-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/android-health-connect-authorization-provider-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,MAAM,MAAM,8CAA8C,GACxD,gCAAgC,CAAC,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"android-health-connect-authorization-provider-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/android-health-connect-authorization-provider-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AAEzF,MAAM,MAAM,8CAA8C,GACxD,gCAAgC,CAAC,UAAU,CAAC,GAAG;IAE7C,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC"}
@@ -1,4 +1,9 @@
1
- import { HKQuantityTypeIdentifier } from "@kingstinct/react-native-healthkit";
1
+ import { HKQuantityTypeIdentifier, HKUpdateFrequency } from "@kingstinct/react-native-healthkit";
2
2
  import { HealthSyncProps } from "./health-sync-props";
3
- export type AppleHealthSyncProps = HealthSyncProps<HKQuantityTypeIdentifier>;
3
+ export type AppleHealthSyncProps = HealthSyncProps<HKQuantityTypeIdentifier> & {
4
+ /** Enables HealthKit observer delivery while the app is in the background. */
5
+ backgroundDelivery?: {
6
+ frequency?: HKUpdateFrequency;
7
+ };
8
+ };
4
9
  //# sourceMappingURL=apple-health-sync-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apple-health-sync-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/apple-health-sync-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"apple-health-sync-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/apple-health-sync-props.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC,wBAAwB,CAAC,GAAG;IAE7E,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE;QACnB,SAAS,CAAC,EAAE,iBAAiB,CAAC;KAC/B,CAAC;CACH,CAAC"}
@@ -18,6 +18,12 @@ export type HealthSyncProps<T> = {
18
18
  * @default 5000
19
19
  */
20
20
  chunkSize?: number;
21
+ /**
22
+ * Restrict health reads to Wi-Fi. By default any connected network is accepted.
23
+ * When the device is offline, the progress reason is always `offline`; when this option
24
+ * pauses cellular data, it is `wifi-only`.
25
+ */
26
+ wifiOnly?: boolean;
21
27
  onError?: (error: Bundle<Resource> | Error | null) => void;
22
28
  onProgress?: (progress: {
23
29
  [key in MeasurementTypeKey]?: SyncProgress;
@@ -1 +1 @@
1
- {"version":3,"file":"health-sync-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/health-sync-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,UAAU,EAAE;SACT,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE;YACxB,eAAe,EAAE;gBACf,cAAc,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,eAAe,CAAC;aACvB,EAAE,CAAC;YACJ,OAAO,CAAC,EAAE,IAAI,CAAC;SAChB;KACF,CAAC;IAEF;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;SACrB,GAAG,IAAI,kBAAkB,CAAC,CAAC,EAAE,YAAY;KAC3C,KAAK,IAAI,CAAC;CACZ,CAAC"}
1
+ {"version":3,"file":"health-sync-props.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/health-sync-props.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,UAAU,EAAE;SACT,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE;YACxB,eAAe,EAAE;gBACf,cAAc,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,eAAe,CAAC;aACvB,EAAE,CAAC;YACJ,OAAO,CAAC,EAAE,IAAI,CAAC;SAChB;KACF,CAAC;IAEF;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;SACrB,GAAG,IAAI,kBAAkB,CAAC,CAAC,EAAE,YAAY;KAC3C,KAAK,IAAI,CAAC;CACZ,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import { MeasurementTypeKey } from "@ovok/core";
2
- export type SyncProgress = {
2
+ type SyncPauseReason = "offline" | "wifi-only";
3
+ type SyncProgress = {
3
4
  measurementTypeKey: MeasurementTypeKey;
4
5
  status: "started" | "completed" | "idle" | "syncing" | "paused";
6
+ reason?: SyncPauseReason;
5
7
  progress?: {
6
8
  done: number;
7
9
  total: number;
8
10
  };
9
11
  };
12
+ export type { SyncPauseReason, SyncProgress };
10
13
  //# sourceMappingURL=sync-progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChE,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"sync-progress.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/types/sync-progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChE,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC"}
@@ -23,4 +23,5 @@ export * from "./modules/socket";
23
23
  export * from "./modules/questionnaire-response-form";
24
24
  export * from "./modules/image";
25
25
  export * from "./modules/data-sync";
26
+ export * from "./modules/background-sync";
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kBAAkB,CAAC;AACjC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,39 @@
1
+ declare const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
2
+ interface AndroidBluetoothForegroundServiceOptions {
3
+ /** Text shown while the service keeps the BLE scan alive. */
4
+ notificationTitle?: string;
5
+ notificationBody?: string;
6
+ }
7
+ interface AndroidHealthConnectBackgroundSyncOptions {
8
+ /** WorkManager's minimum supported interval is 15 minutes. */
9
+ intervalMinutes?: number;
10
+ /** Must match the task name registered with `register...Task`. */
11
+ taskName?: string;
12
+ notificationTitle?: string;
13
+ notificationBody?: string;
14
+ }
15
+ type AndroidHealthConnectBackgroundTask = (input: {
16
+ reason?: string;
17
+ }) => Promise<void>;
18
+ /**
19
+ * Starts the Android connected-device foreground service. Mount this alongside
20
+ * the BTProvider that owns the scan; the service keeps that app process alive
21
+ * while Android has the app in the background.
22
+ */
23
+ declare const startAndroidBluetoothForegroundService: (options?: AndroidBluetoothForegroundServiceOptions) => Promise<void>;
24
+ declare const stopAndroidBluetoothForegroundService: () => Promise<void>;
25
+ /**
26
+ * Schedules a WorkManager wake-up that starts the registered headless JS task.
27
+ * The task must create the host app's authenticated client and run the desired
28
+ * AndroidHealthSync service; the SDK cannot serialize a client or auth token.
29
+ */
30
+ declare const scheduleAndroidHealthConnectSync: (options?: AndroidHealthConnectBackgroundSyncOptions) => Promise<void>;
31
+ declare const cancelAndroidHealthConnectSync: () => Promise<void>;
32
+ /**
33
+ * Registers the JS entry point WorkManager invokes after process death. Call
34
+ * this once from the app entry point, not from a screen component, so it is
35
+ * registered before Android wakes the headless runtime.
36
+ */
37
+ declare const registerAndroidHealthConnectBackgroundTask: (task: AndroidHealthConnectBackgroundTask, taskName?: string) => void;
38
+ export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, AndroidBluetoothForegroundServiceOptions, AndroidHealthConnectBackgroundSyncOptions, AndroidHealthConnectBackgroundTask, cancelAndroidHealthConnectSync, registerAndroidHealthConnectBackgroundTask, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService, };
39
+ //# sourceMappingURL=android-background-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-background-sync.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-background-sync.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,sCAAsC,oCACT,CAAC;AAapC,UAAU,wCAAwC;IAEhD,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,yCAAyC;IAEjD,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,KAAK,kCAAkC,GAAG,CAAC,KAAK,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAgBpB;;;;GAIG;AACH,QAAA,MAAM,sCAAsC,GAC1C,UAAS,wCAA6C,KACrD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,qCAAqC,QAAa,OAAO,CAAC,IAAI,CAMnE,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,gCAAgC,GACpC,UAAS,yCAA8C,KACtD,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAa,OAAO,CAAC,IAAI,CAM5D,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,0CAA0C,GAC9C,MAAM,kCAAkC,EACxC,iBAAiD,KAChD,IAMF,CAAC;AAEF,OAAO,EACL,sCAAsC,EACtC,wCAAwC,EACxC,yCAAyC,EACzC,kCAAkC,EAClC,8BAA8B,EAC9B,0CAA0C,EAC1C,gCAAgC,EAChC,sCAAsC,EACtC,qCAAqC,GACtC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import type { ErrorCallback } from "../bt-management/types/error-callback";
3
+ import { type AndroidBluetoothForegroundServiceOptions } from "./android-background-sync";
4
+ interface AndroidBluetoothForegroundServiceProps {
5
+ enabled: boolean;
6
+ children?: React.ReactNode;
7
+ options?: AndroidBluetoothForegroundServiceOptions;
8
+ onError?: (data: ErrorCallback) => void;
9
+ }
10
+ declare const AndroidBluetoothForegroundService: ({ enabled, children, options, onError, }: AndroidBluetoothForegroundServiceProps) => React.JSX.Element;
11
+ export { AndroidBluetoothForegroundService };
12
+ //# sourceMappingURL=android-bluetooth-foreground-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-bluetooth-foreground-service.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/android-bluetooth-foreground-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAGL,KAAK,wCAAwC,EAC9C,MAAM,2BAA2B,CAAC;AAEnC,UAAU,sCAAsC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,wCAAwC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACzC;AAED,QAAA,MAAM,iCAAiC,GAAI,0CAKxC,sCAAsC,sBA4BxC,CAAC;AAEF,OAAO,EAAE,iCAAiC,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./android-background-sync";
2
+ export * from "./android-bluetooth-foreground-service";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/background-sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wCAAwC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EA0O9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"bt-provider-child-wrapper.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/bt-management/components/bt-provider-child-wrapper.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,eAAO,MAAM,sBAAsB,EAkP9B,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACvC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,KAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -14,6 +14,14 @@ declare const BC01_LAST_OF_SET_BIT = 64;
14
14
  * field the vendor's own catalog calls "vc" and no other name is documented.
15
15
  */
16
16
  declare const BC01_ANALYTE_ORDER: readonly ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc"];
17
+ type Bc01Analyte = (typeof BC01_ANALYTE_ORDER)[number];
18
+ /**
19
+ * BC401's packed values are colour-chart indexes, not measurements. These
20
+ * values mirror the tables in Contec's BC401 integration (PHMS M1/a.java):
21
+ * the index is zero-based and `7` remains the device's unmeasured sentinel.
22
+ * The pH table is the URS-7 strip scale, which includes half-point readings.
23
+ */
24
+ declare const BC01_ANALYTE_VALUES: Record<Bc01Analyte, readonly number[]>;
17
25
  /** The result of decoding one 16-byte record. `lastOfSet` is what the sequencer keys on. */
18
26
  interface Bc01ParsedRecord {
19
27
  /** Local wall-clock time the device recorded, with millisecond precision unavailable. */
@@ -23,9 +31,8 @@ interface Bc01ParsedRecord {
23
31
  /** Low nibble of the flags byte; the page counter the firmware writes. */
24
32
  pageIndex: number;
25
33
  /**
26
- * Analyte level indices, absent for any pad the strip did not measure.
27
- * A pad the strip did measure carries a value in [0, 6]; the vendor's own
28
- * lookup tables translate that to a categorical result per analyte.
34
+ * Chart values, absent for any pad the strip did not measure or for a
35
+ * reserved level that is not valid for that analyte.
29
36
  */
30
37
  values: Partial<Record<(typeof BC01_ANALYTE_ORDER)[number], number>>;
31
38
  }
@@ -49,5 +56,5 @@ declare const parseBc01Record: (frame: readonly string[]) => Bc01ParsedRecord |
49
56
  * the notification carries a whole 16-byte frame.
50
57
  */
51
58
  declare const isBc01Record: (frame: readonly string[]) => boolean;
52
- export { BC01_ANALYTE_ORDER, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, Bc01ParsedRecord, isBc01Record, parseBc01Record, };
59
+ export { BC01_ANALYTE_ORDER, BC01_ANALYTE_VALUES, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, Bc01ParsedRecord, isBc01Record, parseBc01Record, };
53
60
  //# sourceMappingURL=bc01-frame-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bc01-frame-parser.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,QAAA,MAAM,kBAAkB,KAAK,CAAC;AAE9B,mEAAmE;AACnE,QAAA,MAAM,eAAe,MAAO,CAAC;AAC7B,QAAA,MAAM,qBAAqB,MAAO,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAelC;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,qFAYuC,CAAC;AAKhE,4FAA4F;AAC5F,UAAU,gBAAgB;IAExB,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC;IAEhB,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IAEnB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACtE;AAUD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,GACnB,OAAO,SAAS,MAAM,EAAE,KACvB,gBAAgB,GAAG,SA0CrB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,OAQhD,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"bc01-frame-parser.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"names":[],"mappings":"AAIA,gGAAgG;AAChG,QAAA,MAAM,kBAAkB,KAAK,CAAC;AAE9B,mEAAmE;AACnE,QAAA,MAAM,eAAe,MAAO,CAAC;AAC7B,QAAA,MAAM,qBAAqB,MAAO,CAAC;AAEnC;;;GAGG;AACH,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAelC;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,qFAYuC,CAAC;AAEhE,KAAK,WAAW,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,QAAA,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAY/D,CAAC;AAKF,4FAA4F;AAC5F,UAAU,gBAAgB;IAExB,yFAAyF;IACzF,SAAS,EAAE,IAAI,CAAC;IAEhB,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IAEnB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACtE;AAUD;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,eAAe,GACnB,OAAO,SAAS,MAAM,EAAE,KACvB,gBAAgB,GAAG,SA8CrB,CAAC;AAEF;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAAI,OAAO,SAAS,MAAM,EAAE,KAAG,OAQhD,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,CAAC"}
@@ -4,9 +4,11 @@ import { CustomDeviceDefinition } from "../../../types/custom-device-definition"
4
4
  import { CustomDeviceId } from "../../../types/custom-device-id";
5
5
  import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
6
6
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
7
+ import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
7
8
  import { IService } from "../../../types/service.type";
8
9
  import { BTManagedDevice } from "../bt-managed-device";
9
10
  type CustomMeasurementOf = MeasurementTypeForDevices<[CustomDeviceId]>;
11
+ type CustomResult = MeasurementWithCaseType<CustomMeasurementOf>;
10
12
  /**
11
13
  * Runs a device registered with defineCustomDevice.
12
14
  *
@@ -49,6 +51,8 @@ export declare class CustomDevice extends BTManagedDevice<CustomDeviceId> {
49
51
  * readings themselves are reported from handleDependentResult, so there is nothing to do.
50
52
  */
51
53
  protected handleSuccessResult(): void | boolean;
54
+ /** Adds protocol-specific metadata to a validated reading before it is emitted. */
55
+ protected decorateReading: (reading: CustomResult, _frame?: readonly string[], _recordOffset?: number) => CustomResult;
52
56
  /**
53
57
  * Reports what the frame carried, which may be more than one reading.
54
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAIlF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD,KAAK,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAGvE;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiD;gBAG1E,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAwBpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CAalD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAyBnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;CAiC1B"}
1
+ {"version":3,"file":"custom.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/custom/custom.device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAevD,KAAK,mBAAmB,GAAG,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACvE,KAAK,YAAY,GAAG,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAC/D,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;IACnC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiD;gBAG1E,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAC1C,UAAU,EAAE,sBAAsB;IAwBpC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,mBAAmB,CAiBzB;IAEF,OAAO,CAAC,YAAY,CACwB;IAE5C,OAAO,CAAC,iBAAiB,CAMvB;IAEF,SAAS,CAAC,eAAe,GAAI,KAAK,MAAM,EAAE,EAAE,MAAM,MAAM,KAAG,OAAO,CAQhE;IAEF;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,GAC7B,MAAM,4BAA4B,CAAC,mBAAmB,CAAC,KACtD,4BAA4B,CAAC,mBAAmB,CAAC,CAalD;IAEF,4FAA4F;IAC5F,SAAS,CAAC,2BAA2B,GACnC,OAAO,4BAA4B,CAAC,mBAAmB,CAAC,KACvD,OAAO,CAAS;IAEnB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI,GAAG,OAAO;IAI/C,mFAAmF;IACnF,SAAS,CAAC,eAAe,GACvB,SAAS,YAAY,EACrB,SAAS,SAAS,MAAM,EAAE,EAC1B,gBAAgB,MAAM,KACrB,YAAY,CAAY;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA2BnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;CAmC1B"}
@@ -4,12 +4,15 @@ import { CustomDeviceId } from "../../../types/custom-device-id";
4
4
  import { DependentResultHandlerParams } from "../../../types/dependent-result-handler-params";
5
5
  import { MeasurementTypeForDevices } from "../../../types/device-measurement-map";
6
6
  import { IntegratedDevices } from "../../../types/integrated-devices";
7
+ import { MeasurementWithCaseType } from "../../../types/measurement-with-case-type";
7
8
  import { CustomDevice } from "../custom/custom.device";
8
9
  type MySenseResult = DependentResultHandlerParams<MeasurementTypeForDevices<[CustomDeviceId]>>;
10
+ type MySenseReading = MeasurementWithCaseType<MeasurementTypeForDevices<[CustomDeviceId]>>;
9
11
  export declare class MySenseDevice extends CustomDevice {
10
12
  private reportedHistory;
11
13
  constructor(device: Device, params: CreateDeviceParams<IntegratedDevices.MYSENSE>);
12
14
  protected shouldReportDependentResult: (data: MySenseResult) => boolean;
15
+ protected decorateReading: (reading: MySenseReading, frame?: readonly string[], recordOffset?: number) => MySenseReading;
13
16
  }
14
17
  export {};
15
18
  //# sourceMappingURL=mysense.device.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysense.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/mysense.device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,KAAK,aAAa,GAAG,4BAA4B,CAC/C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AA6CF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAS;gBAG9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAoBvD,SAAS,CAAC,2BAA2B,GAAI,MAAM,aAAa,KAAG,OAAO,CAYpE;CACH"}
1
+ {"version":3,"file":"mysense.device.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/modules/bt-management/services/devices/uebe/mysense.device.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,KAAK,aAAa,GAAG,4BAA4B,CAC/C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AACF,KAAK,cAAc,GAAG,uBAAuB,CAC3C,yBAAyB,CAAC,CAAC,cAAc,CAAC,CAAC,CAC5C,CAAC;AA+EF,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,eAAe,CAAS;gBAG9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAoBvD,SAAS,CAAC,2BAA2B,GAAI,MAAM,aAAa,KAAG,OAAO,CAYpE;IAEF,UAAmB,eAAe,GAChC,SAAS,cAAc,EACvB,QAAQ,SAAS,MAAM,EAAE,EACzB,qBAAgB,KACf,cAAc,CAUf;CACH"}
@@ -1,3 +1,4 @@
1
+ import type { AndroidBluetoothForegroundServiceOptions } from "../../background-sync";
1
2
  import { DeviceKey } from "./device-key";
2
3
  import { ResultCallback } from "./result-callback";
3
4
  interface BackgroundSyncStorage {
@@ -23,6 +24,13 @@ interface BackgroundSyncOptions<T extends DeviceKey = DeviceKey> {
23
24
  serviceUUIDs?: readonly string[];
24
25
  /** iOS restoration identifier. Keep this stable for the lifetime of the app. */
25
26
  restoreStateIdentifier?: string;
27
+ /**
28
+ * Optional Android foreground-service configuration. When present, the
29
+ * service keeps the JS BLE scan process alive while the app is backgrounded.
30
+ */
31
+ android?: {
32
+ foregroundService?: AndroidBluetoothForegroundServiceOptions;
33
+ };
26
34
  /** Number of delivery attempts before an item is retained as exhausted. */
27
35
  maxRetries?: number;
28
36
  /** 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,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD;AAED,UAAU,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAC5D,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEzB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAE7D,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,OAAO,EAAE,qBAAqB,CAAC;IAE/B,qFAAqF;IACrF,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEjC,gFAAgF;IAChF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
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,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AndroidHealthConnectAuthorizationProviderProps } from "../../types/android-health-connect-authorization-provider-props";
3
- export declare const AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
3
+ export declare const AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, backgroundAccess, }: React.PropsWithChildren<AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
4
4
  //# sourceMappingURL=android-health-connect-authorization-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-health-connect-authorization-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,8CAA8C,EAAE,MAAM,iEAAiE,CAAC;AA2DjI,eAAO,MAAM,yCAAyC,6HAQjD,KAAK,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,qSAwC3E,CAAC"}
1
+ {"version":3,"file":"android-health-connect-authorization-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-connect-authorization-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAE,8CAA8C,EAAE,MAAM,iEAAiE,CAAC;AA0EjI,eAAO,MAAM,yCAAyC,+IASjD,KAAK,CAAC,iBAAiB,CAAC,8CAA8C,CAAC,qSA4C3E,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AndroidHealthSyncProps } from "../../types/android-health-sync-props";
3
- export declare const AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: AndroidHealthSyncProps) => null>;
3
+ export declare const AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, onError, onProgress, }: AndroidHealthSyncProps) => null>;
4
4
  //# sourceMappingURL=android-health-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,eAAO,MAAM,iBAAiB,6EACqB,sBAAsB,UA+ExE,CAAC"}
1
+ {"version":3,"file":"android-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/android/android-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAG/E,eAAO,MAAM,iBAAiB,wFAOzB,sBAAsB,UAqF1B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as React from "react";
2
2
  import { AppleHealthSyncProps } from "../../types/apple-health-sync-props";
3
- export declare const AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: AppleHealthSyncProps) => null>;
3
+ export declare const AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, backgroundDelivery, onError, onProgress, }: AppleHealthSyncProps) => null>;
4
4
  //# sourceMappingURL=apple-health-sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apple-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/apple/apple-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,eAAe,6EACuB,oBAAoB,UAqGtE,CAAC"}
1
+ {"version":3,"file":"apple-health-sync.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/data-sync/components/apple/apple-health-sync.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,eAAO,MAAM,eAAe,4GAQvB,oBAAoB,UA2GxB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
2
  export declare const DataSync: {
3
3
  ({ children }: React.PropsWithChildren): React.JSX.Element;
4
- AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<import("../types/android-health-connect-authorization-provider-props").AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
5
- AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: import("..").AndroidHealthSyncProps) => null>;
4
+ AndroidHealthConnectAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, backgroundAccess, }: React.PropsWithChildren<import("../types/android-health-connect-authorization-provider-props").AndroidHealthConnectAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
5
+ AndroidHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, onError, onProgress, }: import("..").AndroidHealthSyncProps) => null>;
6
6
  AppleHealthAuthorizationProvider: React.MemoExoticComponent<({ readIdentifiers, writeIdentifiers, fallback, children, skipRequest, renderManualRequestUI, }: React.PropsWithChildren<import("../types/apple-health-authorization-provider-props").AppleHealthAuthorizationProviderProps>) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined>;
7
- AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, onError, onProgress }: import("..").AppleHealthSyncProps) => null>;
7
+ AppleHealthSync: React.MemoExoticComponent<({ dataToSync, chunkSize, wifiOnly, backgroundDelivery, onError, onProgress, }: import("..").AppleHealthSyncProps) => null>;
8
8
  ManuallyRequestSheet: React.NamedExoticComponent<import("@gorhom/bottom-sheet").BottomSheetModalProps<any> & React.RefAttributes<import("@gorhom/bottom-sheet").BottomSheetModal>> & {
9
9
  Container: (props: import("@gorhom/bottom-sheet/lib/typescript/components/bottomSheetView/types").BottomSheetViewProps) => React.JSX.Element;
10
10
  Title: <T extends import("react-native-paper").MD3TypescaleKey>(props: import("react-native-paper").TextProps<T>) => React.JSX.Element;
@@ -1,4 +1,4 @@
1
1
  import { HKSampleTypeIdentifier } from "@kingstinct/react-native-healthkit";
2
2
  import { AppleHealthSyncProps } from "../types/apple-health-sync-props";
3
- export declare const useListenChanges: (dataToSync: AppleHealthSyncProps["dataToSync"], onChange: (sample: HKSampleTypeIdentifier) => void) => void;
3
+ export declare const useListenChanges: (dataToSync: AppleHealthSyncProps["dataToSync"], onChange: (sample: HKSampleTypeIdentifier) => void, backgroundDelivery?: AppleHealthSyncProps["backgroundDelivery"], onError?: (error: Error) => void) => void;
4
4
  //# sourceMappingURL=use-listen-changes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-listen-changes.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/hooks/use-listen-changes.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,CAAC,YAAY,CAAC,EAC9C,UAAU,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,SAkEnD,CAAC"}
1
+ {"version":3,"file":"use-listen-changes.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/data-sync/hooks/use-listen-changes.ts"],"names":[],"mappings":"AAAA,OAAkB,EAChB,sBAAsB,EAEvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAO,MAAM,gBAAgB,GAC3B,YAAY,oBAAoB,CAAC,YAAY,CAAC,EAC9C,UAAU,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,EAClD,qBAAqB,oBAAoB,CAAC,oBAAoB,CAAC,EAC/D,UAAU,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,SAsGjC,CAAC"}