pulse-updates 1.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/README.md +333 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/results.bin +1 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/AssetModel.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/BuildConfig.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/BundleModel.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/CheckResult.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/FetchResult.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/ManifestModel$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/ManifestModel.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$Delegate.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$errorRecoveryDelegate$1.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseControllerKt.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseIntegrityCheck.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReactHostDelegate.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReactHostFactory.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReaper.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseRemoteLoader.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesConfig.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesException.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesModule$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesModule.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesPackage.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/SignatureModel.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/UiThreadUtil.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseAsset.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseDatabase.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseDatabaseSchema.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdate.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdateStatus$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdateStatus.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecovery.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedAsset$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedAsset.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedManifest$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedManifest.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/LauncherException.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseAppLauncher$Companion.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseAppLauncher.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseSelectionPolicy.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseUpdateInfo.dex +0 -0
- package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/desugar_graph.bin +0 -0
- package/android/build/.transforms/1a2af57545c1657f87f3de30891a3470/results.bin +1 -0
- package/android/build/.transforms/1a2af57545c1657f87f3de30891a3470/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/generated/source/buildConfig/debug/app/pulse/updates/BuildConfig.java +10 -0
- package/android/build/generated/source/buildConfig/release/app/pulse/updates/BuildConfig.java +10 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +9 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml +9 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/aar_metadata/release/writeReleaseAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotation_processor_list/release/javaPreCompileRelease/annotationProcessors.json +1 -0
- package/android/build/intermediates/compile_library_classes_jar/release/bundleLibCompileToJarRelease/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/release/generateReleaseRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
- package/android/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/merger.xml +2 -0
- package/android/build/intermediates/java_res/release/processReleaseJavaRes/out/META-INF/pulse-updates_release.kotlin_module +0 -0
- package/android/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/app/pulse/updates/BuildConfig.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +11 -0
- package/android/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt +11 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +9 -0
- package/android/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml +9 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/META-INF/pulse-updates_release.kotlin_module +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/AssetModel.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/BundleModel.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/CheckResult.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/FetchResult.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/ManifestModel$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/ManifestModel.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$Delegate.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseControllerKt.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseIntegrityCheck.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReactHostDelegate.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReactHostFactory.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReaper.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseRemoteLoader.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesException.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesPackage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/SignatureModel.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/UiThreadUtil.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseAsset.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseDatabase.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdate.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/LauncherException.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
- package/android/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.s +4 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +3 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileReleaseKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileReleaseKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +20 -0
- package/android/build/outputs/logs/manifest-merger-release-report.txt +20 -0
- package/android/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/pulse-updates_debug.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/AssetModel.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/BundleModel.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/CheckResult.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/FetchResult.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/ManifestModel$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/ManifestModel.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$Delegate.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseControllerKt.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseIntegrityCheck.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseReaper.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseRemoteLoader.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesConfig.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesException.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesPackage.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/SignatureModel.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/UiThreadUtil.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseAsset.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseDatabase.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdate.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/LauncherException.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
- package/android/build/tmp/kotlin-classes/release/META-INF/pulse-updates_release.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/AssetModel.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/BundleModel.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/CheckResult.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/FetchResult.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/ManifestModel$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/ManifestModel.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$Delegate.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseControllerKt.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseIntegrityCheck.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReactHostDelegate.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReactHostFactory.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReaper.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseRemoteLoader.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesConfig.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesException.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesModule.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesPackage.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/SignatureModel.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/UiThreadUtil.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseAsset.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseDatabase.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdate.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/LauncherException.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
- package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
- package/android/build.gradle +53 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/app/pulse/updates/PulseController.kt +1419 -0
- package/android/src/main/java/app/pulse/updates/PulseReactHostFactory.kt +116 -0
- package/android/src/main/java/app/pulse/updates/PulseUpdatesModule.kt +314 -0
- package/android/src/main/java/app/pulse/updates/PulseUpdatesPackage.kt +16 -0
- package/android/src/main/java/app/pulse/updates/database/PulseDatabase.kt +400 -0
- package/android/src/main/java/app/pulse/updates/database/PulseDatabaseSchema.kt +90 -0
- package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecovery.kt +89 -0
- package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.kt +30 -0
- package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.kt +159 -0
- package/android/src/main/java/app/pulse/updates/launcher/PulseAppLauncher.kt +472 -0
- package/ios/PulseUpdates/AppLauncher/PulseAppLauncher.swift +551 -0
- package/ios/PulseUpdates/Database/PulseDatabase.swift +557 -0
- package/ios/PulseUpdates/Database/PulseDatabaseSchema.swift +229 -0
- package/ios/PulseUpdates/Database/PulseDatabaseUtils.swift +247 -0
- package/ios/PulseUpdates/ErrorRecovery/PulseErrorRecovery.swift +415 -0
- package/ios/PulseUpdates/PulseController.swift +1359 -0
- package/ios/PulseUpdates/PulseTypes.swift +289 -0
- package/ios/PulseUpdates/PulseUpdates.m +37 -0
- package/ios/PulseUpdates/PulseUpdates.swift +236 -0
- package/lib/commonjs/NativePulseUpdates.js +9 -0
- package/lib/commonjs/NativePulseUpdates.js.map +1 -0
- package/lib/commonjs/PulseUpdates.js +315 -0
- package/lib/commonjs/PulseUpdates.js.map +1 -0
- package/lib/commonjs/assetResolver.js +201 -0
- package/lib/commonjs/assetResolver.js.map +1 -0
- package/lib/commonjs/index.js +55 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/usePulseUpdates.js +115 -0
- package/lib/commonjs/usePulseUpdates.js.map +1 -0
- package/lib/module/NativePulseUpdates.js +3 -0
- package/lib/module/NativePulseUpdates.js.map +1 -0
- package/lib/module/PulseUpdates.js +291 -0
- package/lib/module/PulseUpdates.js.map +1 -0
- package/lib/module/assetResolver.js +193 -0
- package/lib/module/assetResolver.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/usePulseUpdates.js +108 -0
- package/lib/module/usePulseUpdates.js.map +1 -0
- package/lib/typescript/NativePulseUpdates.d.ts +34 -0
- package/lib/typescript/NativePulseUpdates.d.ts.map +1 -0
- package/lib/typescript/PulseUpdates.d.ts +93 -0
- package/lib/typescript/PulseUpdates.d.ts.map +1 -0
- package/lib/typescript/assetResolver.d.ts +30 -0
- package/lib/typescript/assetResolver.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +70 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/usePulseUpdates.d.ts +21 -0
- package/lib/typescript/usePulseUpdates.d.ts.map +1 -0
- package/package.json +63 -0
- package/pulse-updates.podspec +23 -0
- package/react-native.config.js +18 -0
- package/scripts/create-pulse-resources-android.sh +93 -0
- package/scripts/create-pulse-resources-ios.sh +114 -0
- package/scripts/generate-embedded-manifest.mjs +307 -0
- package/scripts/manifest-check.js +67 -0
- package/scripts/publish.mjs +902 -0
- package/src/NativePulseUpdates.ts +52 -0
- package/src/PulseUpdates.ts +332 -0
- package/src/assetResolver.ts +193 -0
- package/src/index.ts +4 -0
- package/src/types.ts +78 -0
- package/src/usePulseUpdates.ts +135 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
+
|
|
4
|
+
export interface Spec extends TurboModule {
|
|
5
|
+
// Configuration
|
|
6
|
+
configure(
|
|
7
|
+
enabled: boolean,
|
|
8
|
+
updateUrl: string,
|
|
9
|
+
runtimeVersion: string,
|
|
10
|
+
checkOnLaunch: string,
|
|
11
|
+
launchWaitMs: number,
|
|
12
|
+
channel: string | null,
|
|
13
|
+
signingKeyId: string | null,
|
|
14
|
+
signingPublicKey: string | null
|
|
15
|
+
): void;
|
|
16
|
+
|
|
17
|
+
// Get current state (since constants are captured at init)
|
|
18
|
+
getStateAsync(): Promise<{
|
|
19
|
+
isEnabled: boolean;
|
|
20
|
+
updateId: string | null;
|
|
21
|
+
runtimeVersion: string | null;
|
|
22
|
+
channel: string | null;
|
|
23
|
+
manifestString: string | null;
|
|
24
|
+
isEmbeddedLaunch: boolean;
|
|
25
|
+
commitTime: number | null;
|
|
26
|
+
localAssets?: { [key: string]: string };
|
|
27
|
+
}>;
|
|
28
|
+
|
|
29
|
+
// Methods
|
|
30
|
+
checkForUpdateAsync(): Promise<{
|
|
31
|
+
isAvailable: boolean;
|
|
32
|
+
manifestString?: string;
|
|
33
|
+
isRollback?: boolean;
|
|
34
|
+
failedReason?: string;
|
|
35
|
+
}>;
|
|
36
|
+
|
|
37
|
+
fetchUpdateAsync(): Promise<{
|
|
38
|
+
isNew: boolean;
|
|
39
|
+
manifestString?: string;
|
|
40
|
+
}>;
|
|
41
|
+
|
|
42
|
+
reloadAsync(): Promise<void>;
|
|
43
|
+
|
|
44
|
+
markAppReady(): Promise<void>;
|
|
45
|
+
reportLaunchFailure(reason: string): Promise<void>;
|
|
46
|
+
|
|
47
|
+
// Event emitter
|
|
48
|
+
addListener(eventName: string): void;
|
|
49
|
+
removeListeners(count: number): void;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default TurboModuleRegistry.get<Spec>('PulseUpdates');
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { NativeEventEmitter } from 'react-native';
|
|
2
|
+
import NativePulseUpdates from './NativePulseUpdates';
|
|
3
|
+
import type { PulseManifest, PulseUpdatesConfig, UpdateCheckResult, UpdateFetchResult } from './types';
|
|
4
|
+
|
|
5
|
+
const PulseUpdatesModule = NativePulseUpdates;
|
|
6
|
+
|
|
7
|
+
// Track configuration and state
|
|
8
|
+
let _isConfigured = false;
|
|
9
|
+
|
|
10
|
+
// Cached state values
|
|
11
|
+
let _isEnabled = false;
|
|
12
|
+
let _updateId: string | null = null;
|
|
13
|
+
let _runtimeVersion: string | null = null;
|
|
14
|
+
let _channel: string | null = null;
|
|
15
|
+
let _isEmbeddedLaunch = true;
|
|
16
|
+
let _manifest: PulseManifest | null = null;
|
|
17
|
+
let _createdAt: Date | null = null;
|
|
18
|
+
let _localAssets: Record<string, string> | null = null;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Configure pulse-updates with the given options.
|
|
22
|
+
*
|
|
23
|
+
* NOTE: This is now OPTIONAL. Configuration is automatically loaded from:
|
|
24
|
+
* - iOS: Info.plist (keys: PulseUpdatesURL, PulseUpdatesEnabled, etc.)
|
|
25
|
+
* - Android: AndroidManifest.xml metadata
|
|
26
|
+
*
|
|
27
|
+
* Only call this if you need to override the native configuration.
|
|
28
|
+
*/
|
|
29
|
+
export function configure(config: PulseUpdatesConfig): void {
|
|
30
|
+
if (!PulseUpdatesModule) {
|
|
31
|
+
console.warn('PulseUpdates native module not found');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (_isConfigured) {
|
|
36
|
+
console.warn('PulseUpdates.configure() has already been called');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
PulseUpdatesModule.configure(
|
|
41
|
+
config.enabled,
|
|
42
|
+
config.updateUrl,
|
|
43
|
+
config.runtimeVersion,
|
|
44
|
+
config.checkOnLaunch,
|
|
45
|
+
config.launchWaitMs,
|
|
46
|
+
config.channel ?? null,
|
|
47
|
+
config.signingKeyId ?? null,
|
|
48
|
+
config.signingPublicKey ?? null
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
_isConfigured = true;
|
|
52
|
+
_isEnabled = config.enabled;
|
|
53
|
+
_runtimeVersion = config.runtimeVersion;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Whether configure() has been called from JS.
|
|
58
|
+
* Note: Even if false, native config may be loaded from Info.plist/AndroidManifest.xml
|
|
59
|
+
*/
|
|
60
|
+
export function isConfigured(): boolean {
|
|
61
|
+
return _isConfigured;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Whether pulse-updates is enabled.
|
|
66
|
+
*/
|
|
67
|
+
export function getIsEnabled(): boolean {
|
|
68
|
+
return _isEnabled;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// For backwards compatibility, export as mutable (will be updated by refreshStateAsync)
|
|
72
|
+
export let isEnabled = false;
|
|
73
|
+
export let updateId: string | null = null;
|
|
74
|
+
export let runtimeVersion: string | null = null;
|
|
75
|
+
export let channel: string | null = null;
|
|
76
|
+
export let isEmbeddedLaunch = true;
|
|
77
|
+
// expo-updates compatibility: same as isEmbeddedLaunch
|
|
78
|
+
export let isUsingEmbeddedAssets = true;
|
|
79
|
+
export let manifest: PulseManifest | null = null;
|
|
80
|
+
export let createdAt: Date | null = null;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* A dictionary of locally available assets for the current update.
|
|
84
|
+
* Keys are the asset keys from the manifest, values are local file:// URLs.
|
|
85
|
+
* This can be used by asset resolvers to use locally downloaded or embedded
|
|
86
|
+
* assets instead of fetching from remote URLs.
|
|
87
|
+
*/
|
|
88
|
+
export let localAssets: Record<string, string> | null = null;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Refresh exported values from native module.
|
|
92
|
+
* Call this at app startup to get the current state from native.
|
|
93
|
+
* Configuration is loaded automatically from Info.plist/AndroidManifest.xml.
|
|
94
|
+
*/
|
|
95
|
+
export async function refreshStateAsync(): Promise<void> {
|
|
96
|
+
if (!PulseUpdatesModule) return;
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
const state = await PulseUpdatesModule.getStateAsync();
|
|
100
|
+
|
|
101
|
+
// Native module returns state based on native config (Info.plist/AndroidManifest.xml)
|
|
102
|
+
_isEnabled = state.isEnabled ?? false;
|
|
103
|
+
_updateId = state.updateId ?? null;
|
|
104
|
+
_runtimeVersion = state.runtimeVersion ?? null;
|
|
105
|
+
_channel = state.channel ?? null;
|
|
106
|
+
_isEmbeddedLaunch = state.isEmbeddedLaunch ?? true;
|
|
107
|
+
|
|
108
|
+
// Update exported values
|
|
109
|
+
isEnabled = _isEnabled;
|
|
110
|
+
updateId = _updateId;
|
|
111
|
+
runtimeVersion = _runtimeVersion;
|
|
112
|
+
channel = _channel;
|
|
113
|
+
isEmbeddedLaunch = _isEmbeddedLaunch;
|
|
114
|
+
// expo-updates compatibility: same as isEmbeddedLaunch
|
|
115
|
+
isUsingEmbeddedAssets = _isEmbeddedLaunch;
|
|
116
|
+
|
|
117
|
+
if (state.manifestString) {
|
|
118
|
+
try {
|
|
119
|
+
_manifest = JSON.parse(state.manifestString);
|
|
120
|
+
manifest = _manifest;
|
|
121
|
+
} catch {
|
|
122
|
+
_manifest = null;
|
|
123
|
+
manifest = null;
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
_manifest = null;
|
|
127
|
+
manifest = null;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
_createdAt = state.commitTime ? new Date(state.commitTime) : null;
|
|
131
|
+
createdAt = _createdAt;
|
|
132
|
+
|
|
133
|
+
// Read localAssets map for asset resolution
|
|
134
|
+
_localAssets = state.localAssets ?? null;
|
|
135
|
+
localAssets = _localAssets;
|
|
136
|
+
} catch (error) {
|
|
137
|
+
console.warn('[PulseUpdates] Failed to refresh state:', error);
|
|
138
|
+
// Keep current values on error
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Check the server for available updates.
|
|
144
|
+
*/
|
|
145
|
+
export async function checkForUpdateAsync(): Promise<UpdateCheckResult> {
|
|
146
|
+
// if (!_isEnabled) {
|
|
147
|
+
// throw new Error('Pulse Updates is not enabled');
|
|
148
|
+
// }
|
|
149
|
+
|
|
150
|
+
// TODO: uncomment after testing
|
|
151
|
+
// if (__DEV__) {
|
|
152
|
+
// throw new Error('Cannot check for updates in development mode');
|
|
153
|
+
// }
|
|
154
|
+
|
|
155
|
+
if (!PulseUpdatesModule) {
|
|
156
|
+
throw new Error('PulseUpdates native module not found');
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const result = await PulseUpdatesModule.checkForUpdateAsync();
|
|
160
|
+
|
|
161
|
+
if (result.manifestString) {
|
|
162
|
+
return {
|
|
163
|
+
isAvailable: result.isAvailable,
|
|
164
|
+
manifest: JSON.parse(result.manifestString),
|
|
165
|
+
isRollback: result.isRollback,
|
|
166
|
+
failedReason: result.failedReason,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
isAvailable: result.isAvailable,
|
|
172
|
+
isRollback: result.isRollback,
|
|
173
|
+
failedReason: result.failedReason,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Download the most recent update from the server.
|
|
179
|
+
*/
|
|
180
|
+
export async function fetchUpdateAsync(): Promise<UpdateFetchResult> {
|
|
181
|
+
// if (!_isEnabled) {
|
|
182
|
+
// throw new Error('Pulse Updates is not enabled');
|
|
183
|
+
// }
|
|
184
|
+
|
|
185
|
+
// TODO: uncomment after testing
|
|
186
|
+
// if (__DEV__) {
|
|
187
|
+
// throw new Error('Cannot fetch updates in development mode');
|
|
188
|
+
// }
|
|
189
|
+
|
|
190
|
+
if (!PulseUpdatesModule) {
|
|
191
|
+
throw new Error('PulseUpdates native module not found');
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const result = await PulseUpdatesModule.fetchUpdateAsync();
|
|
195
|
+
|
|
196
|
+
if (result.manifestString) {
|
|
197
|
+
return {
|
|
198
|
+
isNew: result.isNew,
|
|
199
|
+
manifest: JSON.parse(result.manifestString),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return {
|
|
204
|
+
isNew: result.isNew,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Reload the app using the most recently downloaded update.
|
|
210
|
+
*/
|
|
211
|
+
export async function reloadAsync(): Promise<void> {
|
|
212
|
+
// if (!_isEnabled) {
|
|
213
|
+
// throw new Error('Pulse Updates is not enabled');
|
|
214
|
+
// }
|
|
215
|
+
|
|
216
|
+
// TODO: uncomment after testing
|
|
217
|
+
// if (__DEV__) {
|
|
218
|
+
// throw new Error('Cannot reload in development mode');
|
|
219
|
+
// }
|
|
220
|
+
|
|
221
|
+
if (!PulseUpdatesModule) {
|
|
222
|
+
throw new Error('PulseUpdates native module not found');
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
await PulseUpdatesModule.reloadAsync();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Mark the current update as successfully launched.
|
|
230
|
+
*/
|
|
231
|
+
export async function markAppReady(): Promise<void> {
|
|
232
|
+
if (!_isEnabled) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (!PulseUpdatesModule) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
await PulseUpdatesModule.markAppReady();
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Report a launch failure to trigger rollback on next start.
|
|
245
|
+
*/
|
|
246
|
+
export async function reportLaunchFailure(reason: string): Promise<void> {
|
|
247
|
+
if (!_isEnabled) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (!PulseUpdatesModule) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
await PulseUpdatesModule.reportLaunchFailure(reason);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Get the build number from the current update's metadata.
|
|
260
|
+
*/
|
|
261
|
+
export function getUpdateBuild(): string | null {
|
|
262
|
+
if (!_isEnabled || _isEmbeddedLaunch || !_manifest) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
return (_manifest.metadata?.build as string) ?? null;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Get display version string (e.g., "1.0.0" or "1.0.0.42").
|
|
270
|
+
*/
|
|
271
|
+
export function getDisplayVersion(appVersion: string): string {
|
|
272
|
+
const build = getUpdateBuild();
|
|
273
|
+
if (build) {
|
|
274
|
+
return `${appVersion}.${build}`;
|
|
275
|
+
}
|
|
276
|
+
return appVersion;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Get the local file path for an asset by its key.
|
|
281
|
+
* Returns the local file:// URL if the asset is available locally,
|
|
282
|
+
* or null if it needs to be fetched from the remote URL.
|
|
283
|
+
*/
|
|
284
|
+
export function getLocalAssetPath(assetKey: string): string | null {
|
|
285
|
+
if (!_localAssets) {
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
288
|
+
return _localAssets[assetKey] ?? null;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get all locally available assets.
|
|
293
|
+
* Returns a copy of the localAssets map.
|
|
294
|
+
*/
|
|
295
|
+
export function getLocalAssets(): Record<string, string> {
|
|
296
|
+
return _localAssets ? { ..._localAssets } : {};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Event emitter for update events
|
|
300
|
+
let eventEmitter: NativeEventEmitter | null = null;
|
|
301
|
+
|
|
302
|
+
function getEventEmitter(): NativeEventEmitter {
|
|
303
|
+
if (!eventEmitter && PulseUpdatesModule) {
|
|
304
|
+
eventEmitter = new NativeEventEmitter(PulseUpdatesModule as any);
|
|
305
|
+
}
|
|
306
|
+
return eventEmitter!;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export type UpdateEventType =
|
|
310
|
+
| 'updateAvailable'
|
|
311
|
+
| 'updateDownloaded'
|
|
312
|
+
| 'updateError'
|
|
313
|
+
| 'noUpdateAvailable';
|
|
314
|
+
|
|
315
|
+
export interface UpdateEvent {
|
|
316
|
+
type: UpdateEventType;
|
|
317
|
+
manifest?: PulseManifest;
|
|
318
|
+
error?: string;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Add a listener for update events.
|
|
323
|
+
*/
|
|
324
|
+
export function addUpdateListener(
|
|
325
|
+
listener: (event: UpdateEvent) => void
|
|
326
|
+
): { remove: () => void } {
|
|
327
|
+
const emitter = getEventEmitter();
|
|
328
|
+
const subscription = emitter.addListener('PulseUpdatesEvent', listener);
|
|
329
|
+
return {
|
|
330
|
+
remove: () => subscription.remove(),
|
|
331
|
+
};
|
|
332
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pulse Updates Asset Resolver
|
|
3
|
+
*
|
|
4
|
+
* Patches React Native's AssetSourceResolver to intercept asset resolution
|
|
5
|
+
* and serve locally downloaded/embedded assets from OTA updates.
|
|
6
|
+
*
|
|
7
|
+
* This approach is based on expo-asset's implementation which patches
|
|
8
|
+
* AssetSourceResolver.prototype.defaultAsset directly - more reliable than
|
|
9
|
+
* using setCustomSourceTransformer.
|
|
10
|
+
*
|
|
11
|
+
* The patch is applied at module load time to ensure it's in place before
|
|
12
|
+
* any images start loading.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
// Map of asset key -> local file URL
|
|
16
|
+
let localAssets: Record<string, string> | null = null;
|
|
17
|
+
let isPatched = false;
|
|
18
|
+
|
|
19
|
+
// Store original method
|
|
20
|
+
let originalDefaultAsset: (() => any) | null = null;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Apply the AssetSourceResolver patch immediately at module load time.
|
|
24
|
+
* This ensures the patch is in place before any images start loading.
|
|
25
|
+
*/
|
|
26
|
+
function applyPatch(): void {
|
|
27
|
+
if (isPatched) return;
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
const AssetSourceResolver = require('react-native/Libraries/Image/AssetSourceResolver').default;
|
|
31
|
+
|
|
32
|
+
if (!AssetSourceResolver || !AssetSourceResolver.prototype.defaultAsset) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Save original method
|
|
37
|
+
originalDefaultAsset = AssetSourceResolver.prototype.defaultAsset;
|
|
38
|
+
|
|
39
|
+
// Patch the prototype
|
|
40
|
+
AssetSourceResolver.prototype.defaultAsset = function(): any {
|
|
41
|
+
try {
|
|
42
|
+
// Only try to resolve from local assets if we have any
|
|
43
|
+
if (localAssets && Object.keys(localAssets).length > 0) {
|
|
44
|
+
const localUri = resolveLocalAsset(this.asset);
|
|
45
|
+
if (localUri) {
|
|
46
|
+
return this.fromSource(localUri);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
} catch (e) {
|
|
50
|
+
// If local asset resolution fails, fall back to original behavior
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Fall back to original behavior
|
|
54
|
+
try {
|
|
55
|
+
return originalDefaultAsset!.call(this);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
// If original method fails, try calling it as a regular function
|
|
58
|
+
// This handles edge cases where 'this' context might be lost
|
|
59
|
+
return originalDefaultAsset!.apply(this, []);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
isPatched = true;
|
|
64
|
+
} catch (e) {
|
|
65
|
+
// Silently fail - will use default asset resolution
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Apply patch immediately when module is imported
|
|
70
|
+
applyPatch();
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Initialize the asset resolver with the localAssets map.
|
|
74
|
+
* Call this after PulseUpdates.refreshStateAsync()
|
|
75
|
+
*
|
|
76
|
+
* @param assets Map of asset KEY (like "assets/images/icon.png") to local file:// URL
|
|
77
|
+
*/
|
|
78
|
+
export function initializeAssetResolver(assets: Record<string, string> | null): void {
|
|
79
|
+
localAssets = assets;
|
|
80
|
+
// Patch is already applied at module load time, just updating the assets map
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Update the local assets map (call when a new update is applied)
|
|
85
|
+
*/
|
|
86
|
+
export function updateLocalAssets(assets: Record<string, string> | null): void {
|
|
87
|
+
localAssets = assets;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Try to resolve an asset from localAssets map
|
|
92
|
+
* Returns the local file:// URI if found, null otherwise
|
|
93
|
+
*/
|
|
94
|
+
function resolveLocalAsset(asset: any): string | null {
|
|
95
|
+
if (!localAssets || !asset) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Construct possible keys to look up
|
|
100
|
+
const keysToTry = buildAssetKeys(asset);
|
|
101
|
+
|
|
102
|
+
for (const key of keysToTry) {
|
|
103
|
+
if (localAssets[key]) {
|
|
104
|
+
// Debug: log successful resolution
|
|
105
|
+
if (__DEV__) {
|
|
106
|
+
console.log(`[PulseAssetResolver] Resolved ${asset.name}.${asset.type} with key=${key.substring(0, 16)}...`);
|
|
107
|
+
}
|
|
108
|
+
return localAssets[key];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Debug: log failed resolution
|
|
113
|
+
if (__DEV__) {
|
|
114
|
+
console.log(`[PulseAssetResolver] MISS for ${asset.name}.${asset.type}`, {
|
|
115
|
+
triedKeys: keysToTry.map(k => k.substring(0, 16) + '...'),
|
|
116
|
+
localAssetsCount: Object.keys(localAssets).length,
|
|
117
|
+
localAssetsSample: Object.keys(localAssets).slice(0, 3).map(k => k.substring(0, 16) + '...')
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Build possible asset keys from Metro asset metadata
|
|
126
|
+
* Metro assets have: name, type, httpServerLocation, hash, scales
|
|
127
|
+
*
|
|
128
|
+
* Key format in localAssets:
|
|
129
|
+
* - MD5 hash (key field from manifest) - what expo-asset/Metro uses
|
|
130
|
+
* - SHA256 hash (hash field from manifest) - for integrity verification
|
|
131
|
+
* - Path-based key for legacy compatibility
|
|
132
|
+
*/
|
|
133
|
+
function buildAssetKeys(asset: any): string[] {
|
|
134
|
+
const keys: string[] = [];
|
|
135
|
+
const { name, type, httpServerLocation, hash, fileHashes } = asset;
|
|
136
|
+
|
|
137
|
+
// 1. Try Metro's hash directly (MD5 hash of file contents)
|
|
138
|
+
// This is the primary lookup method matching expo-asset
|
|
139
|
+
if (hash) {
|
|
140
|
+
keys.push(hash);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// 2. Try fileHashes if available (Metro may provide multiple hash types)
|
|
144
|
+
if (fileHashes) {
|
|
145
|
+
Object.values(fileHashes).forEach((h: any) => {
|
|
146
|
+
if (typeof h === 'string' && h !== hash) {
|
|
147
|
+
keys.push(h);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Build path-based keys
|
|
153
|
+
let location = httpServerLocation || '';
|
|
154
|
+
|
|
155
|
+
// Remove leading slash
|
|
156
|
+
if (location.startsWith('/')) {
|
|
157
|
+
location = location.slice(1);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// 2. Standard key: assets/path/name.type
|
|
161
|
+
if (location) {
|
|
162
|
+
keys.push(`${location}/${name}.${type}`);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// 3. With assets/ prefix if not present
|
|
166
|
+
if (location && !location.startsWith('assets')) {
|
|
167
|
+
keys.push(`assets/${location}/${name}.${type}`);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// 4. Without any prefix
|
|
171
|
+
keys.push(`${name}.${type}`);
|
|
172
|
+
|
|
173
|
+
// 5. Try with scale suffixes for retina assets
|
|
174
|
+
const scales = asset.scales || [1];
|
|
175
|
+
for (const scale of scales) {
|
|
176
|
+
if (scale !== 1) {
|
|
177
|
+
const scaleSuffix = `@${scale}x`;
|
|
178
|
+
if (location) {
|
|
179
|
+
keys.push(`${location}/${name}${scaleSuffix}.${type}`);
|
|
180
|
+
if (!location.startsWith('assets')) {
|
|
181
|
+
keys.push(`assets/${location}/${name}${scaleSuffix}.${type}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return keys;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export default {
|
|
191
|
+
initializeAssetResolver,
|
|
192
|
+
updateLocalAssets,
|
|
193
|
+
};
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
export interface PulseManifest {
|
|
2
|
+
updateId: string;
|
|
3
|
+
runtimeVersion: string;
|
|
4
|
+
createdAt: string;
|
|
5
|
+
bundle?: PulseBundle;
|
|
6
|
+
assets: PulseAsset[];
|
|
7
|
+
metadata?: Record<string, unknown>;
|
|
8
|
+
signature?: PulseSignature;
|
|
9
|
+
|
|
10
|
+
// Legacy fields
|
|
11
|
+
id?: string;
|
|
12
|
+
launchAsset?: PulseAsset;
|
|
13
|
+
extra?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface PulseAsset {
|
|
17
|
+
key?: string;
|
|
18
|
+
hash: string;
|
|
19
|
+
url: string;
|
|
20
|
+
contentType: string;
|
|
21
|
+
fileExtension?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface PulseBundle {
|
|
25
|
+
hash: string;
|
|
26
|
+
url: string;
|
|
27
|
+
contentType: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface PulseSignature {
|
|
31
|
+
alg: string;
|
|
32
|
+
keyId: string;
|
|
33
|
+
sig: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface UpdateCheckResult {
|
|
37
|
+
isAvailable: boolean;
|
|
38
|
+
manifest?: PulseManifest;
|
|
39
|
+
isRollback?: boolean;
|
|
40
|
+
failedReason?: string;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface UpdateFetchResult {
|
|
44
|
+
isNew: boolean;
|
|
45
|
+
manifest?: PulseManifest;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface PulseUpdatesConfig {
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
updateUrl: string;
|
|
51
|
+
runtimeVersion: string;
|
|
52
|
+
checkOnLaunch: 'ALWAYS' | 'WIFI_ONLY' | 'NEVER';
|
|
53
|
+
launchWaitMs: number;
|
|
54
|
+
channel?: string;
|
|
55
|
+
signingKeyId?: string;
|
|
56
|
+
signingPublicKey?: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface PulseUpdatesState {
|
|
60
|
+
isEnabled: boolean;
|
|
61
|
+
isChecking: boolean;
|
|
62
|
+
isDownloading: boolean;
|
|
63
|
+
updateId: string | null;
|
|
64
|
+
runtimeVersion: string | null;
|
|
65
|
+
channel: string | null;
|
|
66
|
+
manifest: PulseManifest | null;
|
|
67
|
+
isEmbeddedLaunch: boolean;
|
|
68
|
+
createdAt: Date | null;
|
|
69
|
+
lastCheckTime: Date | null;
|
|
70
|
+
availableUpdate: PulseManifest | null;
|
|
71
|
+
downloadedUpdate: PulseManifest | null;
|
|
72
|
+
error: Error | null;
|
|
73
|
+
/**
|
|
74
|
+
* A dictionary of locally available assets for the current update.
|
|
75
|
+
* Keys are the asset keys from the manifest, values are local file:// URLs.
|
|
76
|
+
*/
|
|
77
|
+
localAssets: Record<string, string> | null;
|
|
78
|
+
}
|