react-native-rook-sdk 4.0.0-beta.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +3 -35
- package/android/build.gradle +45 -20
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +2 -1
- package/android/src/main/AndroidManifestNew.xml +36 -0
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +263 -11
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +42 -26
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +65 -0
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +70 -0
- package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +52 -0
- package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +99 -0
- package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +182 -0
- package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +301 -0
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +359 -0
- package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +102 -0
- package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +119 -0
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +551 -0
- package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +34 -0
- package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +145 -0
- package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
- package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +17 -0
- package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
- package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +19 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
- package/android/src/main/res/drawable/ic_health_connect.xml +19 -0
- package/android/src/main/res/values/themes.xml +3 -0
- package/ios/DateHelper.swift +4 -4
- package/ios/EncodableDataSource.swift +3 -2
- package/ios/EncodableDataSourceAuthorizer.swift +3 -2
- package/ios/{HearRateMapper.swift → EncodableHeartRate.swift} +3 -3
- package/ios/EncodableRookDataSource.swift +36 -0
- package/ios/EncodableSDKState.swift +94 -0
- package/ios/EncodableStatusDataSources.swift +47 -0
- package/ios/NutritionMapper.swift +114 -0
- package/ios/RookBackground.swift +8 -5
- package/ios/RookBackgroundModule.h +5 -0
- package/ios/RookBackgroundModule.mm +15 -0
- package/ios/RookConfiguration.swift +34 -24
- package/ios/RookConfigurationModule.h +5 -0
- package/ios/RookConfigurationModule.mm +22 -0
- package/ios/RookExternalModule.h +5 -0
- package/ios/RookExternalModule.m +31 -0
- package/ios/{RookData.swift → RookLocalData.swift} +70 -48
- package/ios/RookPermissions.swift +33 -5
- package/ios/RookPermissionsModule.h +5 -0
- package/ios/RookPermissionsModule.mm +20 -0
- package/ios/RookSdk.h +2 -14
- package/ios/RookSdk.mm +97 -546
- package/ios/RookSources.swift +54 -60
- package/ios/RookSourcesModule.h +5 -0
- package/ios/RookSourcesModule.mm +18 -0
- package/ios/RookSync.h +5 -0
- package/ios/RookSync.m +35 -0
- package/ios/RookSync.swift +78 -48
- package/ios/SwiftTest.swift +18 -0
- package/ios/react-native-rook-sdk-Bridging-Header.h +12 -0
- package/{src/context/RookSyncGateContext.ts → lib/commonjs/context/RookSyncGateContext.js} +13 -10
- package/lib/commonjs/context/RookSyncGateContext.js.map +1 -0
- package/lib/commonjs/context/RookSyncGateProvider.js +108 -0
- package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -0
- package/{src/context/RookSyncGateReducer.ts → lib/commonjs/context/RookSyncGateReducer.js} +44 -13
- package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -0
- package/lib/commonjs/context/RookSyncGateTypes.js +6 -0
- package/lib/commonjs/context/RookSyncGateTypes.js.map +1 -0
- package/lib/commonjs/context/index.js +14 -0
- package/lib/commonjs/context/index.js.map +1 -0
- package/lib/commonjs/hooks/index.js +76 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/{src/hooks/useRookAPISources.ts → lib/commonjs/hooks/useRookAPISources.js} +36 -40
- package/lib/commonjs/hooks/useRookAPISources.js.map +1 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +88 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
- package/lib/commonjs/hooks/useRookAppleHealth.js +63 -0
- package/lib/commonjs/hooks/useRookAppleHealth.js.map +1 -0
- package/lib/commonjs/hooks/useRookConfiguration.js +113 -0
- package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -0
- package/lib/commonjs/hooks/useRookData.js +116 -0
- package/lib/commonjs/hooks/useRookData.js.map +1 -0
- package/lib/commonjs/hooks/useRookHealthConnect.js +70 -0
- package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
- package/lib/commonjs/hooks/useRookPermissions.js +211 -0
- package/lib/commonjs/hooks/useRookPermissions.js.map +1 -0
- package/lib/commonjs/hooks/useRookSamsungHealth.js +54 -0
- package/lib/commonjs/hooks/useRookSamsungHealth.js.map +1 -0
- package/lib/commonjs/hooks/useRookSync.js +148 -0
- package/lib/commonjs/hooks/useRookSync.js.map +1 -0
- package/lib/commonjs/hooks/useRookVariables.js +93 -0
- package/lib/commonjs/hooks/useRookVariables.js.map +1 -0
- package/lib/commonjs/index.js +121 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js +261 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -0
- package/lib/commonjs/modules/types/sendMessageBroadcast.js +2 -0
- package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +1 -0
- package/lib/commonjs/modules/utils/errors.js +12 -0
- package/lib/commonjs/modules/utils/errors.js.map +1 -0
- package/lib/commonjs/types/ActivityEvent.js +6 -0
- package/lib/commonjs/types/ActivityEvent.js.map +1 -0
- package/lib/commonjs/types/AppleHealthNutritionEvent.js +77 -0
- package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +1 -0
- package/lib/{module/NativeRookSdk.js → commonjs/types/AppleHealthPermissions.js} +7 -45
- package/lib/commonjs/types/AppleHealthPermissions.js.map +1 -0
- package/lib/commonjs/types/AuthorizedSources.js +6 -0
- package/lib/commonjs/types/AuthorizedSources.js.map +1 -0
- package/lib/commonjs/types/BodySummary.js +6 -0
- package/lib/{module/types/Rook.js.map → commonjs/types/BodySummary.js.map} +1 -1
- package/lib/commonjs/types/DataSource.js +16 -0
- package/lib/commonjs/types/DataSource.js.map +1 -0
- package/lib/commonjs/types/DiagnosticState.js +2 -0
- package/lib/commonjs/types/DiagnosticState.js.map +1 -0
- package/lib/commonjs/types/HCMealData.js +65 -0
- package/lib/commonjs/types/HCMealData.js.map +1 -0
- package/lib/commonjs/types/HeartRateEvent.js +2 -0
- package/lib/commonjs/types/HeartRateEvent.js.map +1 -0
- package/lib/commonjs/types/PermissionsType.js +2 -0
- package/lib/commonjs/types/PermissionsType.js.map +1 -0
- package/lib/commonjs/types/PhysicalSummary.js +6 -0
- package/lib/commonjs/types/PhysicalSummary.js.map +1 -0
- package/lib/commonjs/types/SDKSources.js +13 -0
- package/lib/commonjs/types/SDKSources.js.map +1 -0
- package/lib/commonjs/types/SamsungHealthPermissions.js +23 -0
- package/lib/commonjs/types/SamsungHealthPermissions.js.map +1 -0
- package/lib/commonjs/types/SleepSummary.js +6 -0
- package/lib/commonjs/types/SleepSummary.js.map +1 -0
- package/lib/commonjs/types/SummaryTypes.js +2 -0
- package/lib/commonjs/types/SummaryTypes.js.map +1 -0
- package/lib/commonjs/types/SyncTypes.js +33 -0
- package/lib/commonjs/types/SyncTypes.js.map +1 -0
- package/lib/commonjs/types/WriteNutrition.js +18 -0
- package/lib/commonjs/types/WriteNutrition.js.map +1 -0
- package/lib/commonjs/utils/getNativeModule.js +29 -0
- package/lib/commonjs/utils/getNativeModule.js.map +1 -0
- package/lib/commonjs/utils/getRookModule.js +28 -0
- package/lib/commonjs/utils/getRookModule.js.map +1 -0
- package/{src/utils/isModuleReady.ts → lib/commonjs/utils/isModuleReady.js} +10 -4
- package/lib/commonjs/utils/isModuleReady.js.map +1 -0
- package/lib/commonjs/utils/isRunningOnAndroid.js +15 -0
- package/lib/commonjs/utils/isRunningOnAndroid.js.map +1 -0
- package/lib/commonjs/utils/isRunningOniOS.js +15 -0
- package/lib/commonjs/utils/isRunningOniOS.js.map +1 -0
- package/lib/commonjs/utils/isValidDate.js +41 -0
- package/lib/commonjs/utils/isValidDate.js.map +1 -0
- package/lib/commonjs/utils/nativeModules.js +29 -0
- package/lib/commonjs/utils/nativeModules.js.map +1 -0
- package/lib/commonjs/utils/packageInfo.js +13 -0
- package/lib/commonjs/utils/packageInfo.js.map +1 -0
- package/lib/module/context/RookSyncGateContext.js +0 -2
- package/lib/module/context/RookSyncGateContext.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +31 -22
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +12 -4
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/context/RookSyncGateTypes.js +0 -2
- package/lib/module/context/index.js +2 -0
- package/lib/module/context/index.js.map +1 -0
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useRookAPISources.js +16 -10
- package/lib/module/hooks/useRookAPISources.js.map +1 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -11
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealth.js +10 -9
- package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +34 -10
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookData.js +45 -31
- package/lib/module/hooks/useRookData.js.map +1 -1
- package/lib/module/hooks/useRookHealthConnect.js +10 -9
- package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
- package/lib/module/hooks/useRookPermissions.js +49 -26
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSamsungHealth.js +20 -8
- package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
- package/lib/module/hooks/useRookSync.js +32 -23
- package/lib/module/hooks/useRookSync.js.map +1 -1
- package/lib/module/hooks/useRookVariables.js +37 -19
- package/lib/module/hooks/useRookVariables.js.map +1 -1
- package/lib/module/index.js +10 -18
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/hook/useRookAutoSync.js +40 -27
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
- package/lib/module/modules/utils/errors.js +0 -2
- package/lib/module/modules/utils/errors.js.map +1 -1
- package/lib/module/types/ActivityEvent.js +0 -2
- package/lib/module/types/AppleHealthNutritionEvent.js +70 -0
- package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
- package/lib/module/types/AppleHealthPermissions.js +0 -2
- package/lib/module/types/AppleHealthPermissions.js.map +1 -1
- package/lib/module/types/AuthorizedSources.js +0 -2
- package/lib/module/types/BodySummary.js +0 -2
- package/lib/module/types/DataSource.js +0 -2
- package/lib/module/types/DataSource.js.map +1 -1
- package/lib/module/types/DiagnosticState.js +2 -0
- package/lib/module/types/DiagnosticState.js.map +1 -0
- package/lib/module/types/HCMealData.js +59 -0
- package/lib/module/types/HCMealData.js.map +1 -0
- package/lib/module/types/HeartRateEvent.js +1 -1
- package/lib/module/types/PermissionsType.js +1 -1
- package/lib/module/types/PhysicalSummary.js +0 -2
- package/lib/module/types/SDKSources.js +0 -2
- package/lib/module/types/SDKSources.js.map +1 -1
- package/lib/module/types/SamsungHealthPermissions.js +0 -3
- package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
- package/lib/module/types/SleepSummary.js +0 -2
- package/lib/module/types/SummaryTypes.js +1 -1
- package/lib/module/types/SyncTypes.js +0 -2
- package/lib/module/types/SyncTypes.js.map +1 -1
- package/lib/module/types/WriteNutrition.js +12 -0
- package/lib/module/types/WriteNutrition.js.map +1 -0
- package/lib/module/utils/getNativeModule.js +23 -0
- package/lib/module/utils/getNativeModule.js.map +1 -0
- package/lib/module/utils/getRookModule.js +22 -0
- package/lib/module/utils/getRookModule.js.map +1 -0
- package/lib/module/utils/isModuleReady.js +0 -2
- package/lib/module/utils/isModuleReady.js.map +1 -1
- package/lib/module/utils/isRunningOnAndroid.js +0 -2
- package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
- package/lib/module/utils/isRunningOniOS.js +0 -2
- package/lib/module/utils/isRunningOniOS.js.map +1 -1
- package/lib/module/utils/isValidDate.js +20 -2
- package/lib/module/utils/isValidDate.js.map +1 -1
- package/lib/module/utils/nativeModules.js +23 -0
- package/lib/module/utils/nativeModules.js.map +1 -0
- package/lib/module/utils/packageInfo.js +7 -0
- package/lib/module/utils/packageInfo.js.map +1 -0
- package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
- package/lib/typescript/src/context/index.d.ts +2 -0
- package/lib/typescript/src/context/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +11 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
- package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +6 -0
- package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +8 -17
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AuthorizedSources.d.ts +0 -11
- package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
- package/lib/typescript/src/types/DiagnosticState.d.ts +13 -0
- package/lib/typescript/src/types/DiagnosticState.d.ts.map +1 -0
- package/lib/typescript/src/types/HCMealData.d.ts +60 -0
- package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
- package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
- package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +0 -1
- package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
- package/lib/typescript/src/types/SyncTypes.d.ts +1 -5
- package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
- package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
- package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts +10 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts.map +1 -0
- package/lib/typescript/src/utils/getRookModule.d.ts +9 -0
- package/lib/typescript/src/utils/getRookModule.d.ts.map +1 -0
- package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
- package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
- package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
- package/lib/typescript/src/utils/nativeModules.d.ts +24 -0
- package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -0
- package/lib/typescript/src/utils/packageInfo.d.ts +6 -0
- package/lib/typescript/src/utils/packageInfo.d.ts.map +1 -0
- package/package.json +98 -94
- package/react-native-rook-sdk.podspec +45 -0
- package/RNRookSdk.podspec +0 -22
- package/ios/Encodable.swift +0 -25
- package/ios/RookEntry.swift +0 -61
- package/ios/RookSdk-Bridging-Header.h +0 -12
- package/ios/boost-boost_privacy-Bridging-Header.h +0 -4
- package/lib/module/NativeRookSdk.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/module/types/Rook.js +0 -2
- package/lib/typescript/package.json +0 -1
- package/lib/typescript/src/NativeRookSdk.d.ts +0 -190
- package/lib/typescript/src/NativeRookSdk.d.ts.map +0 -1
- package/lib/typescript/src/types/Rook.d.ts +0 -9
- package/lib/typescript/src/types/Rook.d.ts.map +0 -1
- package/src/NativeRookSdk.ts +0 -281
- package/src/context/RookSyncGateProvider.tsx +0 -78
- package/src/context/RookSyncGateTypes.ts +0 -34
- package/src/hooks/useRookAndroidBackgroundSteps.ts +0 -81
- package/src/hooks/useRookAppleHealth.ts +0 -55
- package/src/hooks/useRookConfiguration.ts +0 -82
- package/src/hooks/useRookData.ts +0 -122
- package/src/hooks/useRookHealthConnect.ts +0 -59
- package/src/hooks/useRookPermissions.ts +0 -224
- package/src/hooks/useRookSamsungHealth.ts +0 -37
- package/src/hooks/useRookSync.ts +0 -157
- package/src/hooks/useRookVariables.ts +0 -77
- package/src/index.tsx +0 -28
- package/src/modules/hook/useRookAutoSync.ts +0 -305
- package/src/modules/types/sendMessageBroadcast.ts +0 -5
- package/src/modules/utils/errors.ts +0 -9
- package/src/types/ActivityEvent.ts +0 -159
- package/src/types/AppleHealthPermissions.ts +0 -49
- package/src/types/AuthorizedSources.ts +0 -33
- package/src/types/BodySummary.ts +0 -116
- package/src/types/DataSource.ts +0 -16
- package/src/types/HeartRateEvent.ts +0 -26
- package/src/types/PermissionsType.ts +0 -9
- package/src/types/PhysicalSummary.ts +0 -84
- package/src/types/Rook.ts +0 -8
- package/src/types/SDKSources.ts +0 -5
- package/src/types/SamsungHealthPermissions.ts +0 -16
- package/src/types/SleepSummary.ts +0 -66
- package/src/types/SummaryTypes.ts +0 -70
- package/src/types/SyncTypes.ts +0 -63
- package/src/utils/isRunningOnAndroid.ts +0 -10
- package/src/utils/isRunningOniOS.ts +0 -10
- package/src/utils/isValidDate.ts +0 -15
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRookSync = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _getNativeModule = _interopRequireDefault(require("../utils/getNativeModule"));
|
|
10
|
+
var _isModuleReady = require("../utils/isModuleReady");
|
|
11
|
+
var _isValidDate = require("../utils/isValidDate");
|
|
12
|
+
var _nativeModules = _interopRequireDefault(require("../utils/nativeModules"));
|
|
13
|
+
var _SDKSources = require("../types/SDKSources");
|
|
14
|
+
var _RookSyncGateContext = require("../context/RookSyncGateContext");
|
|
15
|
+
var _packageInfo = require("../utils/packageInfo");
|
|
16
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
const useRookSync = () => {
|
|
18
|
+
const rookSync = (0, _react.useRef)((0, _getNativeModule.default)(_reactNative.Platform.select({
|
|
19
|
+
android: () => _nativeModules.default.android.SYNC,
|
|
20
|
+
default: () => _nativeModules.default.ios.MANUAL_SYNC
|
|
21
|
+
})()));
|
|
22
|
+
const {
|
|
23
|
+
state: {
|
|
24
|
+
ready,
|
|
25
|
+
enableLogs
|
|
26
|
+
}
|
|
27
|
+
} = (0, _RookSyncGateContext.useRookSyncGateContext)();
|
|
28
|
+
const createResultPayload = result => {
|
|
29
|
+
if (!result) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
status: result.result,
|
|
34
|
+
error: result.error
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
const convertToPromise = (params, toPromise) => {
|
|
38
|
+
return new Promise(resolve => {
|
|
39
|
+
toPromise(...params, (error, result) => {
|
|
40
|
+
resolve({
|
|
41
|
+
error,
|
|
42
|
+
result
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
const syncWithOutParams = async callback => {
|
|
48
|
+
if (_packageInfo.packageInfo.isAndroid) {
|
|
49
|
+
const hcResult = await convertToPromise([enableLogs], rookSync.current.sync);
|
|
50
|
+
rookSync.current.shSync(enableLogs, (err, result) => {
|
|
51
|
+
callback({
|
|
52
|
+
healthConnect: {
|
|
53
|
+
status: hcResult.result,
|
|
54
|
+
error: hcResult.error
|
|
55
|
+
},
|
|
56
|
+
samsungHealth: {
|
|
57
|
+
status: result,
|
|
58
|
+
error: err
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
rookSync.current.sync((error, result) => {
|
|
65
|
+
callback({
|
|
66
|
+
appleHealth: {
|
|
67
|
+
status: result,
|
|
68
|
+
error
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
const syncWithParams = async (params, callback) => {
|
|
74
|
+
(0, _isValidDate.isValidDate)(params.date);
|
|
75
|
+
const promisesToRun = [];
|
|
76
|
+
const {
|
|
77
|
+
sources,
|
|
78
|
+
summary,
|
|
79
|
+
date
|
|
80
|
+
} = params;
|
|
81
|
+
const {
|
|
82
|
+
isAndroid
|
|
83
|
+
} = _packageInfo.packageInfo;
|
|
84
|
+
const args = [date];
|
|
85
|
+
let bridgeMethod = 'syncByDate';
|
|
86
|
+
let shBridgeMethod = 'shSyncByDate';
|
|
87
|
+
if (summary) {
|
|
88
|
+
args.unshift(summary);
|
|
89
|
+
bridgeMethod = 'syncByDefinition';
|
|
90
|
+
shBridgeMethod = 'shSyncByDefinition';
|
|
91
|
+
}
|
|
92
|
+
const shouldSyncSO = sources.includes(_SDKSources.SDKDataSource.APPLE_HEALTH) || sources.includes(_SDKSources.SDKDataSource.HEALTH_CONNECT);
|
|
93
|
+
const shouldSyncSH = sources.includes(_SDKSources.SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
|
|
94
|
+
if (shouldSyncSO) {
|
|
95
|
+
promisesToRun.push(convertToPromise(args, rookSync.current[bridgeMethod]));
|
|
96
|
+
}
|
|
97
|
+
if (shouldSyncSH) {
|
|
98
|
+
promisesToRun.push(convertToPromise(args, rookSync.current[shBridgeMethod]));
|
|
99
|
+
}
|
|
100
|
+
const results = await Promise.all(promisesToRun);
|
|
101
|
+
const SOResult = shouldSyncSO ? results.shift() : null;
|
|
102
|
+
const shResult = shouldSyncSH ? results.shift() : null;
|
|
103
|
+
callback({
|
|
104
|
+
appleHealth: !isAndroid ? createResultPayload(SOResult) : undefined,
|
|
105
|
+
healthConnect: isAndroid ? createResultPayload(SOResult) : undefined,
|
|
106
|
+
samsungHealth: createResultPayload(shResult)
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const sync = (callback, params) => {
|
|
110
|
+
(0, _isModuleReady.isModuleReady)(ready);
|
|
111
|
+
if (!params) {
|
|
112
|
+
syncWithOutParams(callback);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (params && params.summary && !params.date) {
|
|
116
|
+
throw new Error('Date is missing');
|
|
117
|
+
}
|
|
118
|
+
syncWithParams(params, callback);
|
|
119
|
+
};
|
|
120
|
+
const syncEvents = async params => {
|
|
121
|
+
(0, _isModuleReady.isModuleReady)(ready);
|
|
122
|
+
const {
|
|
123
|
+
date,
|
|
124
|
+
event,
|
|
125
|
+
sources
|
|
126
|
+
} = params;
|
|
127
|
+
const {
|
|
128
|
+
isAndroid
|
|
129
|
+
} = _packageInfo.packageInfo;
|
|
130
|
+
const promisesToRun = [];
|
|
131
|
+
const parsedEvent = _packageInfo.packageInfo.isAndroid ? event : event.toLowerCase();
|
|
132
|
+
const shouldSyncSO = sources.includes(_SDKSources.SDKDataSource.APPLE_HEALTH) || sources.includes(_SDKSources.SDKDataSource.HEALTH_CONNECT);
|
|
133
|
+
const shouldSyncSH = sources.includes(_SDKSources.SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
|
|
134
|
+
if (shouldSyncSO) {
|
|
135
|
+
if (['hydration', 'nutrition'].includes(params.event) && !_packageInfo.packageInfo.isAndroid) throw new Error(`${params.event} is not available on iOS`);
|
|
136
|
+
promisesToRun.push(rookSync.current.syncEvent(date, parsedEvent));
|
|
137
|
+
}
|
|
138
|
+
if (shouldSyncSH) promisesToRun.push(rookSync.current.shSyncEvent(date, event));
|
|
139
|
+
await Promise.all(promisesToRun);
|
|
140
|
+
return true;
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
sync,
|
|
144
|
+
syncEvents
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
exports.useRookSync = useRookSync;
|
|
148
|
+
//# sourceMappingURL=useRookSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_getNativeModule","_interopRequireDefault","_isModuleReady","_isValidDate","_nativeModules","_SDKSources","_RookSyncGateContext","_packageInfo","e","__esModule","default","useRookSync","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","MANUAL_SYNC","state","ready","enableLogs","useRookSyncGateContext","createResultPayload","result","undefined","status","error","convertToPromise","params","toPromise","Promise","resolve","syncWithOutParams","callback","packageInfo","isAndroid","hcResult","current","sync","shSync","err","healthConnect","samsungHealth","appleHealth","syncWithParams","isValidDate","date","promisesToRun","sources","summary","args","bridgeMethod","shBridgeMethod","unshift","shouldSyncSO","includes","SDKDataSource","APPLE_HEALTH","HEALTH_CONNECT","shouldSyncSH","SAMSUNG_HEALTH","push","results","all","SOResult","shift","shResult","isModuleReady","Error","syncEvents","event","parsedEvent","toLowerCase","syncEvent","shSyncEvent","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookSync.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRookVariables = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _RookSyncGateContext = require("../context/RookSyncGateContext");
|
|
10
|
+
var _getNativeModule = _interopRequireDefault(require("../utils/getNativeModule"));
|
|
11
|
+
var _isModuleReady = require("../utils/isModuleReady");
|
|
12
|
+
var _nativeModules = _interopRequireDefault(require("../utils/nativeModules"));
|
|
13
|
+
var _packageInfo = require("../utils/packageInfo");
|
|
14
|
+
var _SDKSources = require("../types/SDKSources");
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
/**
|
|
17
|
+
* The `useRookVariables` hook returns an object with a `ready` boolean and an
|
|
18
|
+
* asynchronous function `getTodaySteps` that retrieves the number of steps taken today.
|
|
19
|
+
* @returns The `useRookVariable` hook is returning an object with two properties:
|
|
20
|
+
* 1. `ready`: This property is coming from the `useRookSyncGateContext` hook and represents the state
|
|
21
|
+
* of readiness.
|
|
22
|
+
* 2. `getTodaySteps`: This property is a function that retrieves the number of steps taken today
|
|
23
|
+
* asynchronously and returns a Promise<string> representing the number of steps taken today.
|
|
24
|
+
* 3. `getTodayCalories`: This property is a function that retrieves the number of calories burned today
|
|
25
|
+
* asynchronously and returns a Promise<string> representing the number of calories burned today.
|
|
26
|
+
*/
|
|
27
|
+
const useRookVariables = () => {
|
|
28
|
+
const rookSync = (0, _react.useRef)((0, _getNativeModule.default)(_reactNative.Platform.select({
|
|
29
|
+
android: () => _nativeModules.default.android.SYNC,
|
|
30
|
+
default: () => _nativeModules.default.ios.SYNC
|
|
31
|
+
})()));
|
|
32
|
+
const {
|
|
33
|
+
state: {
|
|
34
|
+
ready
|
|
35
|
+
}
|
|
36
|
+
} = (0, _RookSyncGateContext.useRookSyncGateContext)();
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The function `getTodaySteps` retrieves the number of steps taken today asynchronously.
|
|
40
|
+
* @returns The function `getTodaySteps` is returning a string representing the number of steps taken today.
|
|
41
|
+
*/
|
|
42
|
+
const getTodaySteps = async source => {
|
|
43
|
+
(0, _isModuleReady.isModuleReady)(ready);
|
|
44
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
|
|
45
|
+
return rookSync.current.syncTodayHealthConnectStepsCount();
|
|
46
|
+
}
|
|
47
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
|
|
48
|
+
return rookSync.current.syncTodaySamsungHealthStepsCount();
|
|
49
|
+
}
|
|
50
|
+
if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
|
|
51
|
+
return rookSync.current.getTodayAppleHealthSteps();
|
|
52
|
+
}
|
|
53
|
+
throw new Error('Invalid SDK datasource');
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The function `syncTodayCaloriesCount` retrieves the number of calories burned today asynchronously as string
|
|
58
|
+
* @returns The function `syncTodayCaloriesCount` is returning the result of calling
|
|
59
|
+
*/
|
|
60
|
+
const getTodayCalories = async source => {
|
|
61
|
+
(0, _isModuleReady.isModuleReady)(ready);
|
|
62
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
|
|
63
|
+
return rookSync.current.syncTodayCaloriesCount();
|
|
64
|
+
}
|
|
65
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
|
|
66
|
+
return rookSync.current.syncSHTodayCaloriesCount();
|
|
67
|
+
}
|
|
68
|
+
if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
|
|
69
|
+
return rookSync.current.syncTodayCaloriesCount();
|
|
70
|
+
}
|
|
71
|
+
throw new Error('Invalid SDK datasource');
|
|
72
|
+
};
|
|
73
|
+
const getTodayHeartRate = async source => {
|
|
74
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
|
|
75
|
+
return rookSync.current.getTodayHeartRate();
|
|
76
|
+
}
|
|
77
|
+
if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
|
|
78
|
+
return rookSync.current.getSHTodayHeartRate();
|
|
79
|
+
}
|
|
80
|
+
if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
|
|
81
|
+
return rookSync.current.getTodayHeartRate();
|
|
82
|
+
}
|
|
83
|
+
throw new Error('Please check the data source');
|
|
84
|
+
};
|
|
85
|
+
return {
|
|
86
|
+
ready,
|
|
87
|
+
getTodaySteps,
|
|
88
|
+
getTodayCalories,
|
|
89
|
+
getTodayHeartRate
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
exports.useRookVariables = useRookVariables;
|
|
93
|
+
//# sourceMappingURL=useRookVariables.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_RookSyncGateContext","_getNativeModule","_interopRequireDefault","_isModuleReady","_nativeModules","_packageInfo","_SDKSources","e","__esModule","default","useRookVariables","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","state","ready","useRookSyncGateContext","getTodaySteps","source","isModuleReady","packageInfo","isAndroid","SDKDataSource","HEALTH_CONNECT","current","syncTodayHealthConnectStepsCount","SAMSUNG_HEALTH","syncTodaySamsungHealthStepsCount","APPLE_HEALTH","getTodayAppleHealthSteps","Error","getTodayCalories","syncTodayCaloriesCount","syncSHTodayCaloriesCount","getTodayHeartRate","getSHTodayHeartRate","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookVariables.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AAAoD,SAAAI,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EACrB,IAAAC,wBAAe,EACbC,qBAAQ,CAACC,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMC,sBAAa,CAACD,OAAO,CAACE,IAAI;IACzCT,OAAO,EAAEA,CAAA,KAAMQ,sBAAa,CAACE,GAAG,CAACD;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EAED,MAAM;IACJE,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAG,IAAAC,2CAAsB,EAAC,CAAC;;EAE5B;AACF;AACA;AACA;EACE,MAAMC,aAAa,GAAG,MAAOC,MAAqB,IAAsB;IACtE,IAAAC,4BAAa,EAACJ,KAAK,CAAC;IAEpB,IAAIK,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACC,cAAc,EAAE;MACpE,OAAOlB,QAAQ,CAACmB,OAAO,CAACC,gCAAgC,CAAC,CAAC;IAC5D;IAEA,IAAIL,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACI,cAAc,EAAE;MACpE,OAAOrB,QAAQ,CAACmB,OAAO,CAACG,gCAAgC,CAAC,CAAC;IAC5D;IAEA,IAAI,CAACP,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACM,YAAY,EAAE;MACnE,OAAOvB,QAAQ,CAACmB,OAAO,CAACK,wBAAwB,CAAC,CAAC;IACpD;IAEA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAOb,MAAqB,IAAwB;IAC3E,IAAAC,4BAAa,EAACJ,KAAK,CAAC;IAEpB,IAAIK,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACC,cAAc,EAAE;MACpE,OAAOlB,QAAQ,CAACmB,OAAO,CAACQ,sBAAsB,CAAC,CAAC;IAClD;IAEA,IAAIZ,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACI,cAAc,EAAE;MACpE,OAAOrB,QAAQ,CAACmB,OAAO,CAACS,wBAAwB,CAAC,CAAC;IACpD;IAEA,IAAI,CAACb,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACM,YAAY,EAAE;MACnE,OAAOvB,QAAQ,CAACmB,OAAO,CAACQ,sBAAsB,CAAC,CAAC;IAClD;IAEA,MAAM,IAAIF,KAAK,CAAC,wBAAwB,CAAC;EAC3C,CAAC;EAED,MAAMI,iBAAiB,GAAG,MACxBhB,MAAqB,IACM;IAC3B,IAAIE,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACC,cAAc,EAAE;MACpE,OAAOlB,QAAQ,CAACmB,OAAO,CAACU,iBAAiB,CAAC,CAAC;IAC7C;IAEA,IAAId,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACI,cAAc,EAAE;MACpE,OAAOrB,QAAQ,CAACmB,OAAO,CAACW,mBAAmB,CAAC,CAAC;IAC/C;IAEA,IAAI,CAACf,wBAAW,CAACC,SAAS,IAAIH,MAAM,KAAKI,yBAAa,CAACM,YAAY,EAAE;MACnE,OAAOvB,QAAQ,CAACmB,OAAO,CAACU,iBAAiB,CAAC,CAAC;IAC7C;IAEA,MAAM,IAAIJ,KAAK,CAAC,8BAA8B,CAAC;EACjD,CAAC;EAED,OAAO;IACLf,KAAK;IACLE,aAAa;IACbc,gBAAgB;IAChBG;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAhC,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
getRookModule: true,
|
|
8
|
+
SDKDataSource: true,
|
|
9
|
+
APIDataSource: true,
|
|
10
|
+
SamsungHealthPermission: true,
|
|
11
|
+
AppleHealthPermission: true,
|
|
12
|
+
MealDataType: true,
|
|
13
|
+
SharedHealthEvents: true,
|
|
14
|
+
UniqueAppleHealthEvents: true,
|
|
15
|
+
UniqueSamsungHealthEvents: true,
|
|
16
|
+
UniqueHealthConnectEvents: true
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "APIDataSource", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _DataSource.APIDataSource;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "AppleHealthPermission", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _AppleHealthPermissions.AppleHealthPermission;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "MealDataType", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _WriteNutrition.MealDataType;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "SDKDataSource", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _SDKSources.SDKDataSource;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "SamsungHealthPermission", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function () {
|
|
45
|
+
return _SamsungHealthPermissions.SamsungHealthPermission;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "SharedHealthEvents", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _SyncTypes.SharedHealthEvents;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "UniqueAppleHealthEvents", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _SyncTypes.UniqueAppleHealthEvents;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "UniqueHealthConnectEvents", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _SyncTypes.UniqueHealthConnectEvents;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "UniqueSamsungHealthEvents", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _SyncTypes.UniqueSamsungHealthEvents;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "getRookModule", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _getRookModule.getRookModule;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
var _getRookModule = require("./utils/getRookModule");
|
|
79
|
+
var _context = require("./context");
|
|
80
|
+
Object.keys(_context).forEach(function (key) {
|
|
81
|
+
if (key === "default" || key === "__esModule") return;
|
|
82
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
83
|
+
if (key in exports && exports[key] === _context[key]) return;
|
|
84
|
+
Object.defineProperty(exports, key, {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return _context[key];
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
var _hooks = require("./hooks");
|
|
92
|
+
Object.keys(_hooks).forEach(function (key) {
|
|
93
|
+
if (key === "default" || key === "__esModule") return;
|
|
94
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
95
|
+
if (key in exports && exports[key] === _hooks[key]) return;
|
|
96
|
+
Object.defineProperty(exports, key, {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function () {
|
|
99
|
+
return _hooks[key];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
var _SDKSources = require("./types/SDKSources");
|
|
104
|
+
var _DataSource = require("./types/DataSource");
|
|
105
|
+
var _SamsungHealthPermissions = require("./types/SamsungHealthPermissions");
|
|
106
|
+
var _AppleHealthPermissions = require("./types/AppleHealthPermissions");
|
|
107
|
+
var _WriteNutrition = require("./types/WriteNutrition");
|
|
108
|
+
var _DiagnosticState = require("./types/DiagnosticState");
|
|
109
|
+
Object.keys(_DiagnosticState).forEach(function (key) {
|
|
110
|
+
if (key === "default" || key === "__esModule") return;
|
|
111
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
112
|
+
if (key in exports && exports[key] === _DiagnosticState[key]) return;
|
|
113
|
+
Object.defineProperty(exports, key, {
|
|
114
|
+
enumerable: true,
|
|
115
|
+
get: function () {
|
|
116
|
+
return _DiagnosticState[key];
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
var _SyncTypes = require("./types/SyncTypes");
|
|
121
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getRookModule","require","_context","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_SDKSources","_DataSource","_SamsungHealthPermissions","_AppleHealthPermissions","_WriteNutrition","_DiagnosticState","_SyncTypes"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAf,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,yBAAA,GAAAjB,OAAA;AACA,IAAAkB,uBAAA,GAAAlB,OAAA;AAEA,IAAAmB,eAAA,GAAAnB,OAAA;AACA,IAAAoB,gBAAA,GAAApB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAiB,gBAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,gBAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,gBAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AACA,IAAAgB,UAAA,GAAArB,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRookAutoSync = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _errors = require("../utils/errors");
|
|
10
|
+
var _getNativeModule = _interopRequireDefault(require("../../utils/getNativeModule"));
|
|
11
|
+
var _nativeModules = _interopRequireDefault(require("../../utils/nativeModules"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
14
|
+
|
|
15
|
+
const MESSAGE_TYPE = 'ROOK_BACKGROUND_ENABLED';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The above TypeScript code defines a function `useRookAutoSync` that handles background
|
|
19
|
+
* synchronization, including user ID validation and error messaging.
|
|
20
|
+
* @property {boolean} enableBackground - The `enableBackground` property in the `useRookAutoSync`
|
|
21
|
+
* function determines whether background synchronization should be enabled. If `enableBackground` is
|
|
22
|
+
* set to `true`, the function will listen for changes in the app state and trigger the
|
|
23
|
+
* `startBackgroundSync` function when the app transitions from
|
|
24
|
+
* @property {boolean} enableLogs - The `enableLogs` property in the `useRookAutoSync` function is a
|
|
25
|
+
* boolean value that determines whether logging should be enabled or not. If `enableLogs` is set to
|
|
26
|
+
* `true`, logging messages will be displayed in the console to provide information about the
|
|
27
|
+
* background synchronization process. If `
|
|
28
|
+
* @property {RookSyncGateState} state - The `state` property in the `useRookAutoSync` function
|
|
29
|
+
* represents the current state of the RookSyncGate. It includes information such as whether the state
|
|
30
|
+
* is ready, the permissions status, and the user ID associated with the state. This state is used to
|
|
31
|
+
* determine when to start the
|
|
32
|
+
*/
|
|
33
|
+
const useRookAutoSync = ({
|
|
34
|
+
enableBackground,
|
|
35
|
+
enableLogs,
|
|
36
|
+
state
|
|
37
|
+
}) => {
|
|
38
|
+
const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
|
|
39
|
+
const [changeAppState, setChangeState] = (0, _react.useState)(0);
|
|
40
|
+
(0, _react.useEffect)(() => {
|
|
41
|
+
if (!enableBackground) return;
|
|
42
|
+
const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
43
|
+
if (
|
|
44
|
+
// Check previous state to check if he app was inactive or in background
|
|
45
|
+
// and then pass to be active
|
|
46
|
+
appState.current.match(/inactive|background/) && nextAppState === 'active') {
|
|
47
|
+
setChangeState(prev => prev + 1);
|
|
48
|
+
}
|
|
49
|
+
appState.current = nextAppState;
|
|
50
|
+
});
|
|
51
|
+
return () => {
|
|
52
|
+
subscription.remove();
|
|
53
|
+
};
|
|
54
|
+
}, []);
|
|
55
|
+
(0, _react.useEffect)(() => {
|
|
56
|
+
if (!state.ready || !enableBackground) return;
|
|
57
|
+
startBackgroundServices();
|
|
58
|
+
}, [state, changeAppState]);
|
|
59
|
+
const startBackgroundServices = () => {
|
|
60
|
+
const {
|
|
61
|
+
clientUUID,
|
|
62
|
+
secret,
|
|
63
|
+
ready
|
|
64
|
+
} = state;
|
|
65
|
+
if (!ready || !clientUUID || !secret) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
69
|
+
startAndroidBackgroundSync();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
startIOSBackgroundSync();
|
|
73
|
+
};
|
|
74
|
+
const isValidUser = async () => {
|
|
75
|
+
try {
|
|
76
|
+
const rookModule = (0, _getNativeModule.default)(_nativeModules.default.android.CONFIGURATION);
|
|
77
|
+
const userID = await rookModule.getUserID();
|
|
78
|
+
if (userID) return true;
|
|
79
|
+
if (enableLogs) console.error(_errors.errors.noUserIDAndroidBackground);
|
|
80
|
+
throw new Error(_errors.errors.noUserIDAndroidBackground);
|
|
81
|
+
} catch (error) {
|
|
82
|
+
sendMessageToBroadcast({
|
|
83
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
84
|
+
message: 'There is not a user id',
|
|
85
|
+
value: false
|
|
86
|
+
});
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const tryToStartBackgroundSync = async () => {
|
|
91
|
+
try {
|
|
92
|
+
const rookPermissions = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
|
|
93
|
+
const backgroundStatus = await rookPermissions.checkHealthConnectPermissionsPartially();
|
|
94
|
+
if (!backgroundStatus) throw new Error('No permission granted or not available');
|
|
95
|
+
const rookBackground = (0, _getNativeModule.default)(_nativeModules.default.android.BACKGROUND);
|
|
96
|
+
const result = await rookBackground.scheduleBackgroundSync(enableLogs);
|
|
97
|
+
return result;
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.log(error);
|
|
100
|
+
sendMessageToBroadcast({
|
|
101
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
102
|
+
message: 'Health Connect background is not available on the device or the user does not grants permission',
|
|
103
|
+
value: false
|
|
104
|
+
});
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const tryToStartForegroundSync = async () => {
|
|
109
|
+
try {
|
|
110
|
+
const rookPermissionsModule = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
|
|
111
|
+
const hasHCPermissions = await rookPermissionsModule.checkHealthConnectPermissions();
|
|
112
|
+
const hasAndroidPermissions = await rookPermissionsModule.hasAndroidBackgroundPermissions();
|
|
113
|
+
if (!hasHCPermissions || !hasAndroidPermissions) {
|
|
114
|
+
if (enableLogs) console.error(_errors.errors.autoStartAndroidBackgroundSync);
|
|
115
|
+
throw new Error(_errors.errors.autoStartAndroidBackgroundSync);
|
|
116
|
+
}
|
|
117
|
+
const rookStepsModule = (0, _getNativeModule.default)(_nativeModules.default.android.STEPS);
|
|
118
|
+
if (_reactNative.AppState.currentState === 'active' && appState.current === 'active') {
|
|
119
|
+
await rookStepsModule.enableBackgroundAndroidSteps();
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
} catch (error) {
|
|
124
|
+
sendMessageToBroadcast({
|
|
125
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
126
|
+
value: false,
|
|
127
|
+
message: error.message
|
|
128
|
+
});
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
const tryToStartSamsungHealthSync = async () => {
|
|
133
|
+
try {
|
|
134
|
+
const rookPermissionsModule = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
|
|
135
|
+
const isAvailable = await rookPermissionsModule.checkSamsungAvailability();
|
|
136
|
+
if (isAvailable !== 'INSTALLED') return false;
|
|
137
|
+
const rookSyncModule = (0, _getNativeModule.default)(_nativeModules.default.android.SYNC);
|
|
138
|
+
await rookSyncModule.enableSamsungSync();
|
|
139
|
+
return true;
|
|
140
|
+
} catch (error) {
|
|
141
|
+
sendMessageToBroadcast({
|
|
142
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
143
|
+
value: false,
|
|
144
|
+
message: error.message
|
|
145
|
+
});
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The function `startAndroidBackgroundSync` in TypeScript initiates background synchronization for an
|
|
152
|
+
* Android app, handling user ID validation and error messaging.
|
|
153
|
+
* @returns If the `userID` is not available, an error message is logged and a message is sent to
|
|
154
|
+
* broadcast with `value` set to `false`. If an error occurs during the process, a message is sent to
|
|
155
|
+
* broadcast with `value` set to `false` and an error message is logged.
|
|
156
|
+
*/
|
|
157
|
+
const startAndroidBackgroundSync = async () => {
|
|
158
|
+
const {
|
|
159
|
+
clientUUID,
|
|
160
|
+
secret,
|
|
161
|
+
ready
|
|
162
|
+
} = state;
|
|
163
|
+
if (!ready || !clientUUID || !secret) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
const enabledSources = [];
|
|
168
|
+
const isValid = await isValidUser();
|
|
169
|
+
if (!isValid) return;
|
|
170
|
+
const isSamsungEnabled = await tryToStartSamsungHealthSync();
|
|
171
|
+
const isEnabled = await tryToStartBackgroundSync();
|
|
172
|
+
if (isSamsungEnabled) enabledSources.push('Samsung Health');
|
|
173
|
+
if (isEnabled) enabledSources.push('Health Connect');
|
|
174
|
+
if (!isEnabled) {
|
|
175
|
+
const isForegroundEnabled = await tryToStartForegroundSync();
|
|
176
|
+
if (!isForegroundEnabled && !isSamsungEnabled) throw new Error("We couldn't start background sync");
|
|
177
|
+
if (isForegroundEnabled) enabledSources.push('Foreground Service');
|
|
178
|
+
}
|
|
179
|
+
sendMessageToBroadcast({
|
|
180
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
181
|
+
value: true,
|
|
182
|
+
message: `via: ${enabledSources.join(', ')}`
|
|
183
|
+
});
|
|
184
|
+
if (enableLogs) console.log('ROOK - Background enabled successfully');
|
|
185
|
+
} catch (error) {
|
|
186
|
+
sendMessageToBroadcast({
|
|
187
|
+
type: 'ROOK_BACKGROUND_ENABLED',
|
|
188
|
+
value: false
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* The function `startIOSBackgroundSync` in TypeScript initiates background synchronization for an
|
|
195
|
+
* iOS app, handling user ID validation and error messaging.
|
|
196
|
+
* @returns If the `userID` is not available, an error message is logged and a message is sent to
|
|
197
|
+
* broadcast with `value` set to `false`. If an error occurs during the process, a message is sent to
|
|
198
|
+
* broadcast with `value` set to `false` and an error message is logged.
|
|
199
|
+
*/
|
|
200
|
+
const startIOSBackgroundSync = async () => {
|
|
201
|
+
try {
|
|
202
|
+
const rookPermissions = (0, _getNativeModule.default)(_nativeModules.default.ios.PERMISSIONS);
|
|
203
|
+
const rookBackground = (0, _getNativeModule.default)(_nativeModules.default.ios.BACKGROUND);
|
|
204
|
+
const rookConfigModule = (0, _getNativeModule.default)(_nativeModules.default.ios.CONFIGURATION);
|
|
205
|
+
const rookSync = (0, _getNativeModule.default)(_nativeModules.default.ios.SYNC);
|
|
206
|
+
const userID = await rookConfigModule.getUserID();
|
|
207
|
+
if (!userID) {
|
|
208
|
+
if (enableLogs) console.error(_errors.errors.noUserIDAndroidBackground);
|
|
209
|
+
sendMessageToBroadcast({
|
|
210
|
+
type: MESSAGE_TYPE,
|
|
211
|
+
value: false,
|
|
212
|
+
message: _errors.errors.noUserIDAndroidBackground
|
|
213
|
+
});
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const status = await rookPermissions.checkPermissionsStatus(null);
|
|
217
|
+
if (status === 'PERMISSION_NOT_REQUESTED') throw new Error('Permissions required');
|
|
218
|
+
await rookBackground.enableBackGroundUpdates();
|
|
219
|
+
rookSync.sync(() => {
|
|
220
|
+
sendMessageToBroadcast({
|
|
221
|
+
type: MESSAGE_TYPE,
|
|
222
|
+
value: true,
|
|
223
|
+
message: 'Some data has already uploaded'
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
sendMessageToBroadcast({
|
|
227
|
+
type: MESSAGE_TYPE,
|
|
228
|
+
value: true
|
|
229
|
+
});
|
|
230
|
+
if (enableLogs) console.log('ROOK - Background enabled successfully');
|
|
231
|
+
} catch (err) {
|
|
232
|
+
const error = err;
|
|
233
|
+
sendMessageToBroadcast({
|
|
234
|
+
type: MESSAGE_TYPE,
|
|
235
|
+
value: false,
|
|
236
|
+
message: _errors.errors.autoStartIOSBackgroundSync
|
|
237
|
+
});
|
|
238
|
+
if (enableLogs) {
|
|
239
|
+
if (error.message && error.message.includes('emptyUserId')) console.error(_errors.errors.noUserIDAndroidBackground);else console.error(_errors.errors.autoStartIOSBackgroundSync);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* The function `sendMessageToBroadcast` sends a message to be broadcasted using a Rook module.
|
|
246
|
+
* @param {Message} message - The `message` parameter is of type `Message`, which is likely an object
|
|
247
|
+
* containing information to be sent as a broadcast message.
|
|
248
|
+
*/
|
|
249
|
+
const sendMessageToBroadcast = message => {
|
|
250
|
+
const rookSyncModule = (0, _getNativeModule.default)(_reactNative.Platform.select({
|
|
251
|
+
android: () => _nativeModules.default.android.MAIN,
|
|
252
|
+
default: () => _nativeModules.default.ios.MAIN
|
|
253
|
+
})());
|
|
254
|
+
rookSyncModule.sendMessageToBroadcast(message).then().catch();
|
|
255
|
+
};
|
|
256
|
+
return {
|
|
257
|
+
startBackgroundServices
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
exports.useRookAutoSync = useRookAutoSync;
|
|
261
|
+
//# sourceMappingURL=useRookAutoSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_errors","_getNativeModule","_interopRequireDefault","_nativeModules","e","__esModule","default","MESSAGE_TYPE","useRookAutoSync","enableBackground","enableLogs","state","appState","useRef","AppState","currentState","changeAppState","setChangeState","useState","useEffect","subscription","addEventListener","nextAppState","current","match","prev","remove","ready","startBackgroundServices","clientUUID","secret","Platform","OS","startAndroidBackgroundSync","startIOSBackgroundSync","isValidUser","rookModule","getNativeModule","nativeModules","android","CONFIGURATION","userID","getUserID","console","error","errors","noUserIDAndroidBackground","Error","sendMessageToBroadcast","type","message","value","tryToStartBackgroundSync","rookPermissions","PERMISSIONS","backgroundStatus","checkHealthConnectPermissionsPartially","rookBackground","BACKGROUND","result","scheduleBackgroundSync","log","tryToStartForegroundSync","rookPermissionsModule","hasHCPermissions","checkHealthConnectPermissions","hasAndroidPermissions","hasAndroidBackgroundPermissions","autoStartAndroidBackgroundSync","rookStepsModule","STEPS","enableBackgroundAndroidSteps","tryToStartSamsungHealthSync","isAvailable","checkSamsungAvailability","rookSyncModule","SYNC","enableSamsungSync","enabledSources","isValid","isSamsungEnabled","isEnabled","push","isForegroundEnabled","join","ios","rookConfigModule","rookSync","status","checkPermissionsStatus","enableBackGroundUpdates","sync","err","autoStartIOSBackgroundSync","includes","select","MAIN","then","catch","exports"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookAutoSync.ts"],"mappings":"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","ignoreList":[]}
|