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.
Files changed (524) hide show
  1. package/README.md +333 -0
  2. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/results.bin +1 -0
  3. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/AssetModel.dex +0 -0
  4. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/BuildConfig.dex +0 -0
  5. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/BundleModel.dex +0 -0
  6. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/CheckResult.dex +0 -0
  7. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/FetchResult.dex +0 -0
  8. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/ManifestModel$Companion.dex +0 -0
  9. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/ManifestModel.dex +0 -0
  10. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$Companion.dex +0 -0
  11. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$Delegate.dex +0 -0
  12. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController$errorRecoveryDelegate$1.dex +0 -0
  13. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseController.dex +0 -0
  14. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseControllerKt.dex +0 -0
  15. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseIntegrityCheck.dex +0 -0
  16. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReactHostDelegate.dex +0 -0
  17. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReactHostFactory.dex +0 -0
  18. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseReaper.dex +0 -0
  19. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseRemoteLoader.dex +0 -0
  20. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesConfig.dex +0 -0
  21. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesException.dex +0 -0
  22. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesModule$Companion.dex +0 -0
  23. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesModule.dex +0 -0
  24. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/PulseUpdatesPackage.dex +0 -0
  25. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/SignatureModel.dex +0 -0
  26. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/UiThreadUtil.dex +0 -0
  27. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseAsset.dex +0 -0
  28. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseDatabase.dex +0 -0
  29. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseDatabaseSchema.dex +0 -0
  30. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdate.dex +0 -0
  31. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdateStatus$Companion.dex +0 -0
  32. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/database/PulseUpdateStatus.dex +0 -0
  33. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.dex +0 -0
  34. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecovery.dex +0 -0
  35. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.dex +0 -0
  36. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.dex +0 -0
  37. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.dex +0 -0
  38. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.dex +0 -0
  39. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.dex +0 -0
  40. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.dex +0 -0
  41. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.dex +0 -0
  42. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.dex +0 -0
  43. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.dex +0 -0
  44. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedAsset$Companion.dex +0 -0
  45. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedAsset.dex +0 -0
  46. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedManifest$Companion.dex +0 -0
  47. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/EmbeddedManifest.dex +0 -0
  48. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/LauncherException.dex +0 -0
  49. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseAppLauncher$Companion.dex +0 -0
  50. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseAppLauncher.dex +0 -0
  51. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.dex +0 -0
  52. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseSelectionPolicy.dex +0 -0
  53. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/bundleLibRuntimeToDirRelease_dex/app/pulse/updates/launcher/PulseUpdateInfo.dex +0 -0
  54. package/android/build/.transforms/051997ae5715069c07acae848c6dd9c5/transformed/bundleLibRuntimeToDirRelease/desugar_graph.bin +0 -0
  55. package/android/build/.transforms/1a2af57545c1657f87f3de30891a3470/results.bin +1 -0
  56. package/android/build/.transforms/1a2af57545c1657f87f3de30891a3470/transformed/classes/classes_dex/classes.dex +0 -0
  57. package/android/build/generated/source/buildConfig/debug/app/pulse/updates/BuildConfig.java +10 -0
  58. package/android/build/generated/source/buildConfig/release/app/pulse/updates/BuildConfig.java +10 -0
  59. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +9 -0
  60. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  61. package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml +9 -0
  62. package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json +18 -0
  63. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  64. package/android/build/intermediates/aar_metadata/release/writeReleaseAarMetadata/aar-metadata.properties +6 -0
  65. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  66. package/android/build/intermediates/annotation_processor_list/release/javaPreCompileRelease/annotationProcessors.json +1 -0
  67. package/android/build/intermediates/compile_library_classes_jar/release/bundleLibCompileToJarRelease/classes.jar +0 -0
  68. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  69. package/android/build/intermediates/compile_r_class_jar/release/generateReleaseRFile/R.jar +0 -0
  70. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  71. package/android/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt +0 -0
  72. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  73. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  74. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  75. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  76. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  77. package/android/build/intermediates/incremental/mergeReleaseAssets/merger.xml +2 -0
  78. package/android/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +2 -0
  79. package/android/build/intermediates/incremental/mergeReleaseShaders/merger.xml +2 -0
  80. package/android/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties +1 -0
  81. package/android/build/intermediates/incremental/release/packageReleaseResources/merger.xml +2 -0
  82. package/android/build/intermediates/java_res/release/processReleaseJavaRes/out/META-INF/pulse-updates_release.kotlin_module +0 -0
  83. package/android/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/app/pulse/updates/BuildConfig.class +0 -0
  84. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  85. package/android/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt +2 -0
  86. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +11 -0
  87. package/android/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt +11 -0
  88. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +9 -0
  89. package/android/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml +9 -0
  90. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  91. package/android/build/intermediates/navigation_json/release/extractDeepLinksRelease/navigation.json +1 -0
  92. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  93. package/android/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt +1 -0
  94. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/META-INF/pulse-updates_release.kotlin_module +0 -0
  95. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/AssetModel.class +0 -0
  96. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/BuildConfig.class +0 -0
  97. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/BundleModel.class +0 -0
  98. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/CheckResult.class +0 -0
  99. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/FetchResult.class +0 -0
  100. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/ManifestModel$Companion.class +0 -0
  101. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/ManifestModel.class +0 -0
  102. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$Companion.class +0 -0
  103. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$Delegate.class +0 -0
  104. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
  105. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseController.class +0 -0
  106. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseControllerKt.class +0 -0
  107. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseIntegrityCheck.class +0 -0
  108. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReactHostDelegate.class +0 -0
  109. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReactHostFactory.class +0 -0
  110. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseReaper.class +0 -0
  111. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseRemoteLoader.class +0 -0
  112. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesConfig.class +0 -0
  113. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesException.class +0 -0
  114. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
  115. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesModule.class +0 -0
  116. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/PulseUpdatesPackage.class +0 -0
  117. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/SignatureModel.class +0 -0
  118. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/UiThreadUtil.class +0 -0
  119. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseAsset.class +0 -0
  120. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseDatabase.class +0 -0
  121. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
  122. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdate.class +0 -0
  123. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
  124. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
  125. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
  126. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
  127. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
  128. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
  129. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
  130. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
  131. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
  132. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
  133. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
  134. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
  135. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
  136. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
  137. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
  138. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
  139. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
  140. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/LauncherException.class +0 -0
  141. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
  142. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
  143. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
  144. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
  145. package/android/build/intermediates/runtime_library_classes_dir/release/bundleLibRuntimeToDirRelease/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
  146. package/android/build/intermediates/runtime_library_classes_jar/release/bundleLibRuntimeToJarRelease/classes.jar +0 -0
  147. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  148. package/android/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt +1 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  175. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  176. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  177. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  178. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  179. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  180. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  181. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  182. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  183. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  184. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  185. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  186. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  187. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  188. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  189. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  190. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  191. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  192. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  193. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  194. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  195. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
  196. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  197. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
  198. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  199. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  200. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  201. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  202. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  203. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  204. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  205. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  206. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  207. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  208. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  209. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  210. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  211. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  212. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  213. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  214. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  215. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  216. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  217. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  218. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  219. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  220. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  221. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  222. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  223. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  224. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  225. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  226. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  227. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  228. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  229. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  230. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  231. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  232. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  233. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  234. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  235. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  236. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  237. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  238. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  239. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  240. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  241. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  242. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  243. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  244. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  245. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  246. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  247. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  248. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  249. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  250. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
  251. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  252. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -0
  253. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  254. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  255. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  256. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  257. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  258. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  259. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  260. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  261. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  262. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  263. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  264. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  265. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  266. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values +0 -0
  267. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  268. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.s +4 -0
  269. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  270. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  271. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  272. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  273. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  274. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  275. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  276. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  277. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  278. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  279. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  280. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  281. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  282. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
  283. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  284. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +3 -0
  285. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  286. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  287. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  288. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  289. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  290. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  291. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  292. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  293. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  294. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  295. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  296. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  297. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  298. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
  299. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  300. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
  301. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  302. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  303. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  304. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  305. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  306. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  307. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  308. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  309. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  310. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  311. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  312. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  313. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  314. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  315. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  316. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  317. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  318. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  319. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  320. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  321. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  322. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  323. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  324. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  325. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  326. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  327. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  328. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  329. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  330. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  331. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  332. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  333. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  334. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  335. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  336. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  337. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  338. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  339. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  340. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  341. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  342. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  343. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
  344. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  345. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +1 -0
  346. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  347. package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  348. package/android/build/kotlin/compileReleaseKotlin/cacheable/last-build.bin +0 -0
  349. package/android/build/kotlin/compileReleaseKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  350. package/android/build/kotlin/compileReleaseKotlin/local-state/build-history.bin +0 -0
  351. package/android/build/outputs/logs/manifest-merger-debug-report.txt +20 -0
  352. package/android/build/outputs/logs/manifest-merger-release-report.txt +20 -0
  353. package/android/build/tmp/compileReleaseJavaWithJavac/previous-compilation-data.bin +0 -0
  354. package/android/build/tmp/kotlin-classes/debug/META-INF/pulse-updates_debug.kotlin_module +0 -0
  355. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/AssetModel.class +0 -0
  356. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/BundleModel.class +0 -0
  357. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/CheckResult.class +0 -0
  358. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/FetchResult.class +0 -0
  359. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/ManifestModel$Companion.class +0 -0
  360. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/ManifestModel.class +0 -0
  361. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$Companion.class +0 -0
  362. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$Delegate.class +0 -0
  363. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
  364. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseController.class +0 -0
  365. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseControllerKt.class +0 -0
  366. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseIntegrityCheck.class +0 -0
  367. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseReaper.class +0 -0
  368. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseRemoteLoader.class +0 -0
  369. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesConfig.class +0 -0
  370. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesException.class +0 -0
  371. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
  372. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesModule.class +0 -0
  373. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/PulseUpdatesPackage.class +0 -0
  374. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/SignatureModel.class +0 -0
  375. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/UiThreadUtil.class +0 -0
  376. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseAsset.class +0 -0
  377. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseDatabase.class +0 -0
  378. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
  379. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdate.class +0 -0
  380. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
  381. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
  382. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
  383. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
  384. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
  385. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
  386. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
  387. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
  388. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
  389. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
  390. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
  391. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
  392. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
  393. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
  394. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
  395. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
  396. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
  397. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/LauncherException.class +0 -0
  398. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
  399. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
  400. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
  401. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
  402. package/android/build/tmp/kotlin-classes/debug/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
  403. package/android/build/tmp/kotlin-classes/release/META-INF/pulse-updates_release.kotlin_module +0 -0
  404. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/AssetModel.class +0 -0
  405. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/BundleModel.class +0 -0
  406. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/CheckResult.class +0 -0
  407. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/FetchResult.class +0 -0
  408. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/ManifestModel$Companion.class +0 -0
  409. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/ManifestModel.class +0 -0
  410. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$Companion.class +0 -0
  411. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$Delegate.class +0 -0
  412. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController$errorRecoveryDelegate$1.class +0 -0
  413. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseController.class +0 -0
  414. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseControllerKt.class +0 -0
  415. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseIntegrityCheck.class +0 -0
  416. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReactHostDelegate.class +0 -0
  417. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReactHostFactory.class +0 -0
  418. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseReaper.class +0 -0
  419. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseRemoteLoader.class +0 -0
  420. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesConfig.class +0 -0
  421. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesException.class +0 -0
  422. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesModule$Companion.class +0 -0
  423. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesModule.class +0 -0
  424. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/PulseUpdatesPackage.class +0 -0
  425. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/SignatureModel.class +0 -0
  426. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/UiThreadUtil.class +0 -0
  427. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseAsset.class +0 -0
  428. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseDatabase.class +0 -0
  429. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseDatabaseSchema.class +0 -0
  430. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdate.class +0 -0
  431. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdateStatus$Companion.class +0 -0
  432. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/database/PulseUpdateStatus.class +0 -0
  433. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecovery$Companion.class +0 -0
  434. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecovery.class +0 -0
  435. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$LauncherCallback.class +0 -0
  436. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate$RemoteLoadStatus.class +0 -0
  437. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.class +0 -0
  438. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Companion.class +0 -0
  439. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$MessageType.class +0 -0
  440. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$Task.class +0 -0
  441. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$WhenMappings.class +0 -0
  442. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler$tryRelaunchFromCache$1.class +0 -0
  443. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.class +0 -0
  444. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedAsset$Companion.class +0 -0
  445. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedAsset.class +0 -0
  446. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedManifest$Companion.class +0 -0
  447. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/EmbeddedManifest.class +0 -0
  448. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/LauncherException.class +0 -0
  449. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseAppLauncher$Companion.class +0 -0
  450. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseAppLauncher.class +0 -0
  451. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseDefaultSelectionPolicy.class +0 -0
  452. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseSelectionPolicy.class +0 -0
  453. package/android/build/tmp/kotlin-classes/release/app/pulse/updates/launcher/PulseUpdateInfo.class +0 -0
  454. package/android/build.gradle +53 -0
  455. package/android/src/main/AndroidManifest.xml +3 -0
  456. package/android/src/main/java/app/pulse/updates/PulseController.kt +1419 -0
  457. package/android/src/main/java/app/pulse/updates/PulseReactHostFactory.kt +116 -0
  458. package/android/src/main/java/app/pulse/updates/PulseUpdatesModule.kt +314 -0
  459. package/android/src/main/java/app/pulse/updates/PulseUpdatesPackage.kt +16 -0
  460. package/android/src/main/java/app/pulse/updates/database/PulseDatabase.kt +400 -0
  461. package/android/src/main/java/app/pulse/updates/database/PulseDatabaseSchema.kt +90 -0
  462. package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecovery.kt +89 -0
  463. package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecoveryDelegate.kt +30 -0
  464. package/android/src/main/java/app/pulse/updates/errorrecovery/PulseErrorRecoveryHandler.kt +159 -0
  465. package/android/src/main/java/app/pulse/updates/launcher/PulseAppLauncher.kt +472 -0
  466. package/ios/PulseUpdates/AppLauncher/PulseAppLauncher.swift +551 -0
  467. package/ios/PulseUpdates/Database/PulseDatabase.swift +557 -0
  468. package/ios/PulseUpdates/Database/PulseDatabaseSchema.swift +229 -0
  469. package/ios/PulseUpdates/Database/PulseDatabaseUtils.swift +247 -0
  470. package/ios/PulseUpdates/ErrorRecovery/PulseErrorRecovery.swift +415 -0
  471. package/ios/PulseUpdates/PulseController.swift +1359 -0
  472. package/ios/PulseUpdates/PulseTypes.swift +289 -0
  473. package/ios/PulseUpdates/PulseUpdates.m +37 -0
  474. package/ios/PulseUpdates/PulseUpdates.swift +236 -0
  475. package/lib/commonjs/NativePulseUpdates.js +9 -0
  476. package/lib/commonjs/NativePulseUpdates.js.map +1 -0
  477. package/lib/commonjs/PulseUpdates.js +315 -0
  478. package/lib/commonjs/PulseUpdates.js.map +1 -0
  479. package/lib/commonjs/assetResolver.js +201 -0
  480. package/lib/commonjs/assetResolver.js.map +1 -0
  481. package/lib/commonjs/index.js +55 -0
  482. package/lib/commonjs/index.js.map +1 -0
  483. package/lib/commonjs/types.js +2 -0
  484. package/lib/commonjs/types.js.map +1 -0
  485. package/lib/commonjs/usePulseUpdates.js +115 -0
  486. package/lib/commonjs/usePulseUpdates.js.map +1 -0
  487. package/lib/module/NativePulseUpdates.js +3 -0
  488. package/lib/module/NativePulseUpdates.js.map +1 -0
  489. package/lib/module/PulseUpdates.js +291 -0
  490. package/lib/module/PulseUpdates.js.map +1 -0
  491. package/lib/module/assetResolver.js +193 -0
  492. package/lib/module/assetResolver.js.map +1 -0
  493. package/lib/module/index.js +5 -0
  494. package/lib/module/index.js.map +1 -0
  495. package/lib/module/types.js +2 -0
  496. package/lib/module/types.js.map +1 -0
  497. package/lib/module/usePulseUpdates.js +108 -0
  498. package/lib/module/usePulseUpdates.js.map +1 -0
  499. package/lib/typescript/NativePulseUpdates.d.ts +34 -0
  500. package/lib/typescript/NativePulseUpdates.d.ts.map +1 -0
  501. package/lib/typescript/PulseUpdates.d.ts +93 -0
  502. package/lib/typescript/PulseUpdates.d.ts.map +1 -0
  503. package/lib/typescript/assetResolver.d.ts +30 -0
  504. package/lib/typescript/assetResolver.d.ts.map +1 -0
  505. package/lib/typescript/index.d.ts +5 -0
  506. package/lib/typescript/index.d.ts.map +1 -0
  507. package/lib/typescript/types.d.ts +70 -0
  508. package/lib/typescript/types.d.ts.map +1 -0
  509. package/lib/typescript/usePulseUpdates.d.ts +21 -0
  510. package/lib/typescript/usePulseUpdates.d.ts.map +1 -0
  511. package/package.json +63 -0
  512. package/pulse-updates.podspec +23 -0
  513. package/react-native.config.js +18 -0
  514. package/scripts/create-pulse-resources-android.sh +93 -0
  515. package/scripts/create-pulse-resources-ios.sh +114 -0
  516. package/scripts/generate-embedded-manifest.mjs +307 -0
  517. package/scripts/manifest-check.js +67 -0
  518. package/scripts/publish.mjs +902 -0
  519. package/src/NativePulseUpdates.ts +52 -0
  520. package/src/PulseUpdates.ts +332 -0
  521. package/src/assetResolver.ts +193 -0
  522. package/src/index.ts +4 -0
  523. package/src/types.ts +78 -0
  524. package/src/usePulseUpdates.ts +135 -0
@@ -0,0 +1,400 @@
1
+ package app.pulse.updates.database
2
+
3
+ import android.content.ContentValues
4
+ import android.content.Context
5
+ import android.database.Cursor
6
+ import android.database.sqlite.SQLiteDatabase
7
+ import android.database.sqlite.SQLiteOpenHelper
8
+ import org.json.JSONObject
9
+ import java.io.File
10
+ import java.util.Date
11
+
12
+ /**
13
+ * PulseUpdates Database
14
+ * Based on expo-updates UpdatesDatabase
15
+ */
16
+ class PulseDatabase(context: Context, directory: File) : SQLiteOpenHelper(
17
+ context,
18
+ File(directory, PulseDatabaseSchema.DATABASE_NAME).absolutePath,
19
+ null,
20
+ PulseDatabaseSchema.VERSION
21
+ ) {
22
+
23
+ override fun onCreate(db: SQLiteDatabase) {
24
+ // Create tables
25
+ PulseDatabaseSchema.CREATE_TABLES.split(";")
26
+ .filter { it.isNotBlank() }
27
+ .forEach { sql ->
28
+ db.execSQL(sql.trim() + ";")
29
+ }
30
+
31
+ // Create indexes
32
+ PulseDatabaseSchema.CREATE_INDEXES.split(";")
33
+ .filter { it.isNotBlank() }
34
+ .forEach { sql ->
35
+ db.execSQL(sql.trim() + ";")
36
+ }
37
+
38
+ // Enable foreign keys
39
+ db.execSQL("PRAGMA foreign_keys=ON;")
40
+ }
41
+
42
+ override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
43
+ // Handle migrations here
44
+ }
45
+
46
+ override fun onOpen(db: SQLiteDatabase) {
47
+ super.onOpen(db)
48
+ db.execSQL("PRAGMA foreign_keys=ON;")
49
+ }
50
+
51
+ // MARK: - Updates Operations
52
+
53
+ fun addUpdate(update: PulseUpdate) {
54
+ val values = ContentValues().apply {
55
+ put("update_id", update.updateId)
56
+ put("scope_key", update.scopeKey)
57
+ put("runtime_version", update.runtimeVersion)
58
+ put("commit_time", update.commitTime.time)
59
+ put("status", update.status.value)
60
+ put("manifest", update.manifest?.toString())
61
+ put("bundle_hash", update.bundleHash)
62
+ put("last_accessed", update.lastAccessed?.time)
63
+ put("successful_launch_count", update.successfulLaunchCount)
64
+ put("failed_launch_count", update.failedLaunchCount)
65
+ }
66
+ writableDatabase.insertWithOnConflict("updates", null, values, SQLiteDatabase.CONFLICT_REPLACE)
67
+ }
68
+
69
+ fun allUpdates(): List<PulseUpdate> {
70
+ val sql = """
71
+ SELECT u.*,
72
+ COALESCE(h.successful_launch_count, u.successful_launch_count) as health_success,
73
+ COALESCE(h.failed_launch_count, u.failed_launch_count) as health_fail
74
+ FROM updates u
75
+ LEFT JOIN health h ON u.update_id = h.update_id
76
+ ORDER BY u.commit_time DESC
77
+ """.trimIndent()
78
+
79
+ return readableDatabase.rawQuery(sql, null).use { cursor ->
80
+ generateSequence { if (cursor.moveToNext()) cursorToUpdate(cursor) else null }.toList()
81
+ }
82
+ }
83
+
84
+ fun updatesForRuntimeVersion(runtimeVersion: String): List<PulseUpdate> {
85
+ val sql = """
86
+ SELECT u.*,
87
+ COALESCE(h.successful_launch_count, u.successful_launch_count) as health_success,
88
+ COALESCE(h.failed_launch_count, u.failed_launch_count) as health_fail
89
+ FROM updates u
90
+ LEFT JOIN health h ON u.update_id = h.update_id
91
+ WHERE u.runtime_version = ?
92
+ ORDER BY u.commit_time DESC
93
+ """.trimIndent()
94
+
95
+ return readableDatabase.rawQuery(sql, arrayOf(runtimeVersion)).use { cursor ->
96
+ generateSequence { if (cursor.moveToNext()) cursorToUpdate(cursor) else null }.toList()
97
+ }
98
+ }
99
+
100
+ fun launchableUpdates(runtimeVersion: String): List<PulseUpdate> {
101
+ val sql = """
102
+ SELECT u.*,
103
+ COALESCE(h.successful_launch_count, u.successful_launch_count) as health_success,
104
+ COALESCE(h.failed_launch_count, u.failed_launch_count) as health_fail
105
+ FROM updates u
106
+ LEFT JOIN health h ON u.update_id = h.update_id
107
+ WHERE u.runtime_version = ? AND u.status IN ('ready', 'embedded')
108
+ ORDER BY u.commit_time DESC
109
+ """.trimIndent()
110
+
111
+ return readableDatabase.rawQuery(sql, arrayOf(runtimeVersion)).use { cursor ->
112
+ generateSequence { if (cursor.moveToNext()) cursorToUpdate(cursor) else null }.toList()
113
+ }
114
+ }
115
+
116
+ fun embeddedUpdates(): List<PulseUpdate> {
117
+ val sql = "SELECT * FROM updates WHERE update_id LIKE 'embedded:%'"
118
+ return readableDatabase.rawQuery(sql, null).use { cursor ->
119
+ generateSequence { if (cursor.moveToNext()) cursorToUpdate(cursor) else null }.toList()
120
+ }
121
+ }
122
+
123
+ fun getUpdate(updateId: String): PulseUpdate? {
124
+ val sql = "SELECT * FROM updates WHERE update_id = ?"
125
+ return readableDatabase.rawQuery(sql, arrayOf(updateId)).use { cursor ->
126
+ if (cursor.moveToFirst()) cursorToUpdate(cursor) else null
127
+ }
128
+ }
129
+
130
+ fun setStatus(updateId: String, status: PulseUpdateStatus) {
131
+ val values = ContentValues().apply {
132
+ put("status", status.value)
133
+ }
134
+ writableDatabase.update("updates", values, "update_id = ?", arrayOf(updateId))
135
+ }
136
+
137
+ fun markUpdateAccessed(updateId: String) {
138
+ val values = ContentValues().apply {
139
+ put("last_accessed", System.currentTimeMillis())
140
+ }
141
+ writableDatabase.update("updates", values, "update_id = ?", arrayOf(updateId))
142
+ }
143
+
144
+ fun deleteUpdates(updateIds: List<String>) {
145
+ if (updateIds.isEmpty()) return
146
+
147
+ val placeholders = updateIds.joinToString(",") { "?" }
148
+ writableDatabase.delete("updates", "update_id IN ($placeholders)", updateIds.toTypedArray())
149
+ }
150
+
151
+ // MARK: - Assets Operations
152
+
153
+ fun addAsset(asset: PulseAsset): Long {
154
+ val values = ContentValues().apply {
155
+ put("asset_key", asset.key)
156
+ put("asset_hash", asset.hash)
157
+ put("url", asset.url)
158
+ put("type", asset.type)
159
+ put("metadata", asset.metadata?.toString())
160
+ put("download_time", asset.downloadTime?.time)
161
+ put("relative_path", asset.relativePath)
162
+ put("expected_hash", asset.expectedHash)
163
+ put("extra_request_headers", asset.extraRequestHeaders?.let { JSONObject(it).toString() })
164
+ put("marked_for_deletion", if (asset.markedForDeletion) 1 else 0)
165
+ put("main_bundle_dir", asset.mainBundleDir)
166
+ put("main_bundle_filename", asset.mainBundleFilename)
167
+ }
168
+ return writableDatabase.insert("assets", null, values)
169
+ }
170
+
171
+ fun linkAsset(assetId: Long, updateId: String, assetKey: String?, assetHash: String, isLaunchAsset: Boolean) {
172
+ val values = ContentValues().apply {
173
+ put("update_id", updateId)
174
+ put("asset_id", assetId)
175
+ put("asset_key", assetKey)
176
+ put("asset_hash", assetHash)
177
+ put("is_launch_asset", if (isLaunchAsset) 1 else 0)
178
+ }
179
+ writableDatabase.insertWithOnConflict("update_assets", null, values, SQLiteDatabase.CONFLICT_REPLACE)
180
+ }
181
+
182
+ fun assetsForUpdate(updateId: String): List<PulseAsset> {
183
+ val sql = """
184
+ SELECT a.*, ua.asset_key as link_key, ua.is_launch_asset
185
+ FROM assets a
186
+ JOIN update_assets ua ON a.id = ua.asset_id
187
+ WHERE ua.update_id = ?
188
+ """.trimIndent()
189
+
190
+ return readableDatabase.rawQuery(sql, arrayOf(updateId)).use { cursor ->
191
+ generateSequence { if (cursor.moveToNext()) cursorToAsset(cursor) else null }.toList()
192
+ }
193
+ }
194
+
195
+ fun getAssetByHash(hash: String): PulseAsset? {
196
+ val sql = "SELECT * FROM assets WHERE asset_hash = ? LIMIT 1"
197
+ return readableDatabase.rawQuery(sql, arrayOf(hash)).use { cursor ->
198
+ if (cursor.moveToFirst()) cursorToAsset(cursor) else null
199
+ }
200
+ }
201
+
202
+ fun deleteUnusedAssets(): List<PulseAsset> {
203
+ // Find orphaned assets
204
+ val findSql = """
205
+ SELECT * FROM assets
206
+ WHERE id NOT IN (SELECT DISTINCT asset_id FROM update_assets)
207
+ """.trimIndent()
208
+
209
+ val orphanedAssets = readableDatabase.rawQuery(findSql, null).use { cursor ->
210
+ generateSequence { if (cursor.moveToNext()) cursorToAsset(cursor) else null }.toList()
211
+ }
212
+
213
+ // Delete them
214
+ writableDatabase.execSQL("""
215
+ DELETE FROM assets
216
+ WHERE id NOT IN (SELECT DISTINCT asset_id FROM update_assets)
217
+ """.trimIndent())
218
+
219
+ // Clean up orphaned links
220
+ writableDatabase.execSQL("""
221
+ DELETE FROM update_assets
222
+ WHERE update_id NOT IN (SELECT update_id FROM updates)
223
+ """.trimIndent())
224
+
225
+ return orphanedAssets
226
+ }
227
+
228
+ // MARK: - Health Operations
229
+
230
+ fun recordLaunchStart(updateId: String) {
231
+ val values = ContentValues().apply {
232
+ put("update_id", updateId)
233
+ put("launch_in_progress_at", System.currentTimeMillis())
234
+ put("consecutive_failures", 0)
235
+ }
236
+ writableDatabase.insertWithOnConflict("health", null, values, SQLiteDatabase.CONFLICT_REPLACE)
237
+ }
238
+
239
+ fun recordSuccessfulLaunch(updateId: String) {
240
+ val now = System.currentTimeMillis()
241
+ writableDatabase.execSQL("""
242
+ UPDATE health SET
243
+ app_ready_at = ?,
244
+ last_launch_at = ?,
245
+ successful_launch_count = successful_launch_count + 1,
246
+ consecutive_failures = 0
247
+ WHERE update_id = ?
248
+ """.trimIndent(), arrayOf(now, now, updateId))
249
+ }
250
+
251
+ fun recordFailedLaunch(updateId: String) {
252
+ writableDatabase.execSQL("""
253
+ UPDATE health SET
254
+ failed_launch_count = failed_launch_count + 1,
255
+ consecutive_failures = consecutive_failures + 1,
256
+ launch_in_progress_at = NULL
257
+ WHERE update_id = ?
258
+ """.trimIndent(), arrayOf(updateId))
259
+ }
260
+
261
+ fun getHealthInfo(updateId: String): Pair<Int, Boolean>? {
262
+ val sql = "SELECT consecutive_failures, launch_in_progress_at FROM health WHERE update_id = ?"
263
+ return readableDatabase.rawQuery(sql, arrayOf(updateId)).use { cursor ->
264
+ if (cursor.moveToFirst()) {
265
+ val failures = cursor.getInt(cursor.getColumnIndexOrThrow("consecutive_failures"))
266
+ val isLaunching = !cursor.isNull(cursor.getColumnIndexOrThrow("launch_in_progress_at"))
267
+ Pair(failures, isLaunching)
268
+ } else null
269
+ }
270
+ }
271
+
272
+ // MARK: - JSON Data Operations
273
+
274
+ fun setJsonData(key: String, value: JSONObject, scopeKey: String) {
275
+ val values = ContentValues().apply {
276
+ put("scope_key", scopeKey)
277
+ put("key", key)
278
+ put("value", value.toString())
279
+ put("last_updated", System.currentTimeMillis())
280
+ }
281
+ writableDatabase.insertWithOnConflict("json_data", null, values, SQLiteDatabase.CONFLICT_REPLACE)
282
+ }
283
+
284
+ fun getJsonData(key: String, scopeKey: String): JSONObject? {
285
+ val sql = "SELECT value FROM json_data WHERE scope_key = ? AND key = ?"
286
+ return readableDatabase.rawQuery(sql, arrayOf(scopeKey, key)).use { cursor ->
287
+ if (cursor.moveToFirst()) {
288
+ val jsonStr = cursor.getString(0)
289
+ try { JSONObject(jsonStr) } catch (e: Exception) { null }
290
+ } else null
291
+ }
292
+ }
293
+
294
+ // MARK: - Cursor Conversion
295
+
296
+ private fun cursorToUpdate(cursor: Cursor): PulseUpdate {
297
+ return PulseUpdate(
298
+ updateId = cursor.getString(cursor.getColumnIndexOrThrow("update_id")),
299
+ scopeKey = cursor.getString(cursor.getColumnIndexOrThrow("scope_key")),
300
+ runtimeVersion = cursor.getString(cursor.getColumnIndexOrThrow("runtime_version")),
301
+ commitTime = Date(cursor.getLong(cursor.getColumnIndexOrThrow("commit_time"))),
302
+ status = PulseUpdateStatus.fromValue(cursor.getString(cursor.getColumnIndexOrThrow("status"))),
303
+ manifest = cursor.getStringOrNull("manifest")?.let { try { JSONObject(it) } catch (e: Exception) { null } },
304
+ bundleHash = cursor.getStringOrNull("bundle_hash"),
305
+ lastAccessed = cursor.getLongOrNull("last_accessed")?.let { Date(it) },
306
+ successfulLaunchCount = cursor.getIntOrDefault("health_success", cursor.getIntOrDefault("successful_launch_count", 0)),
307
+ failedLaunchCount = cursor.getIntOrDefault("health_fail", cursor.getIntOrDefault("failed_launch_count", 0))
308
+ )
309
+ }
310
+
311
+ private fun cursorToAsset(cursor: Cursor): PulseAsset {
312
+ return PulseAsset(
313
+ id = cursor.getLongOrNull("id"),
314
+ key = cursor.getStringOrNull("asset_key") ?: cursor.getStringOrNull("link_key"),
315
+ hash = cursor.getString(cursor.getColumnIndexOrThrow("asset_hash")),
316
+ url = cursor.getStringOrNull("url"),
317
+ type = cursor.getStringOrNull("type"),
318
+ metadata = cursor.getStringOrNull("metadata")?.let { try { JSONObject(it) } catch (e: Exception) { null } },
319
+ downloadTime = cursor.getLongOrNull("download_time")?.let { Date(it) },
320
+ relativePath = cursor.getStringOrNull("relative_path"),
321
+ expectedHash = cursor.getStringOrNull("expected_hash"),
322
+ extraRequestHeaders = cursor.getStringOrNull("extra_request_headers")?.let {
323
+ try {
324
+ val json = JSONObject(it)
325
+ json.keys().asSequence().associateWith { key -> json.getString(key) }
326
+ } catch (e: Exception) { null }
327
+ },
328
+ markedForDeletion = cursor.getIntOrDefault("marked_for_deletion", 0) == 1,
329
+ mainBundleDir = cursor.getStringOrNull("main_bundle_dir"),
330
+ mainBundleFilename = cursor.getStringOrNull("main_bundle_filename"),
331
+ isLaunchAsset = cursor.getIntOrDefault("is_launch_asset", 0) == 1
332
+ )
333
+ }
334
+
335
+ // Extension functions for nullable cursor columns
336
+ private fun Cursor.getStringOrNull(column: String): String? {
337
+ val idx = getColumnIndex(column)
338
+ return if (idx >= 0 && !isNull(idx)) getString(idx) else null
339
+ }
340
+
341
+ private fun Cursor.getLongOrNull(column: String): Long? {
342
+ val idx = getColumnIndex(column)
343
+ return if (idx >= 0 && !isNull(idx)) getLong(idx) else null
344
+ }
345
+
346
+ private fun Cursor.getIntOrDefault(column: String, default: Int): Int {
347
+ val idx = getColumnIndex(column)
348
+ return if (idx >= 0 && !isNull(idx)) getInt(idx) else default
349
+ }
350
+ }
351
+
352
+ // MARK: - Data Models
353
+
354
+ enum class PulseUpdateStatus(val value: String) {
355
+ PENDING("pending"),
356
+ DOWNLOADING("downloading"),
357
+ READY("ready"),
358
+ EMBEDDED("embedded"),
359
+ DEVELOPMENT("development"),
360
+ FAILED("failed");
361
+
362
+ companion object {
363
+ fun fromValue(value: String): PulseUpdateStatus {
364
+ return entries.find { it.value == value } ?: PENDING
365
+ }
366
+ }
367
+ }
368
+
369
+ data class PulseUpdate(
370
+ val updateId: String,
371
+ val scopeKey: String,
372
+ val runtimeVersion: String,
373
+ val commitTime: Date,
374
+ val status: PulseUpdateStatus,
375
+ val manifest: JSONObject? = null,
376
+ val bundleHash: String? = null,
377
+ val lastAccessed: Date? = null,
378
+ val successfulLaunchCount: Int = 0,
379
+ val failedLaunchCount: Int = 0
380
+ ) {
381
+ val isEmbedded: Boolean
382
+ get() = status == PulseUpdateStatus.EMBEDDED || updateId.startsWith("embedded:")
383
+ }
384
+
385
+ data class PulseAsset(
386
+ val id: Long? = null,
387
+ val key: String?,
388
+ val hash: String,
389
+ val url: String? = null,
390
+ val type: String? = null,
391
+ val metadata: JSONObject? = null,
392
+ val downloadTime: Date? = null,
393
+ val relativePath: String? = null,
394
+ val expectedHash: String? = null,
395
+ val extraRequestHeaders: Map<String, String>? = null,
396
+ val markedForDeletion: Boolean = false,
397
+ val mainBundleDir: String? = null,
398
+ val mainBundleFilename: String? = null,
399
+ val isLaunchAsset: Boolean = false
400
+ )
@@ -0,0 +1,90 @@
1
+ package app.pulse.updates.database
2
+
3
+ /**
4
+ * PulseUpdates Database Schema
5
+ * Based on expo-updates UpdatesDatabaseInitialization
6
+ */
7
+ object PulseDatabaseSchema {
8
+ const val VERSION = 1
9
+ const val DATABASE_NAME = "pulse-v$VERSION.db"
10
+
11
+ // SQL to create all tables
12
+ val CREATE_TABLES = """
13
+ -- Updates table: stores update metadata
14
+ CREATE TABLE IF NOT EXISTS updates (
15
+ update_id TEXT PRIMARY KEY NOT NULL,
16
+ scope_key TEXT NOT NULL,
17
+ runtime_version TEXT NOT NULL,
18
+ commit_time INTEGER NOT NULL,
19
+ status TEXT NOT NULL DEFAULT 'pending',
20
+ keep INTEGER NOT NULL DEFAULT 1,
21
+ manifest TEXT,
22
+ bundle_hash TEXT,
23
+ last_accessed INTEGER,
24
+ successful_launch_count INTEGER NOT NULL DEFAULT 0,
25
+ failed_launch_count INTEGER NOT NULL DEFAULT 0
26
+ );
27
+
28
+ -- Assets table: stores asset metadata
29
+ CREATE TABLE IF NOT EXISTS assets (
30
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
31
+ asset_key TEXT,
32
+ asset_hash TEXT NOT NULL,
33
+ url TEXT,
34
+ type TEXT,
35
+ metadata TEXT,
36
+ download_time INTEGER,
37
+ relative_path TEXT,
38
+ expected_hash TEXT,
39
+ extra_request_headers TEXT,
40
+ marked_for_deletion INTEGER NOT NULL DEFAULT 0,
41
+ -- Embedded asset info (for fallback)
42
+ main_bundle_dir TEXT,
43
+ main_bundle_filename TEXT
44
+ );
45
+
46
+ -- Junction table: links updates to assets
47
+ CREATE TABLE IF NOT EXISTS update_assets (
48
+ update_id TEXT NOT NULL,
49
+ asset_id INTEGER NOT NULL,
50
+ asset_key TEXT,
51
+ asset_hash TEXT NOT NULL,
52
+ is_launch_asset INTEGER NOT NULL DEFAULT 0,
53
+ FOREIGN KEY (update_id) REFERENCES updates(update_id) ON DELETE CASCADE,
54
+ FOREIGN KEY (asset_id) REFERENCES assets(id) ON DELETE CASCADE,
55
+ PRIMARY KEY (update_id, asset_id)
56
+ );
57
+
58
+ -- Health table: tracks update launch health
59
+ CREATE TABLE IF NOT EXISTS health (
60
+ update_id TEXT PRIMARY KEY NOT NULL,
61
+ launch_in_progress_at INTEGER,
62
+ app_ready_at INTEGER,
63
+ last_launch_at INTEGER,
64
+ successful_launch_count INTEGER NOT NULL DEFAULT 0,
65
+ failed_launch_count INTEGER NOT NULL DEFAULT 0,
66
+ consecutive_failures INTEGER NOT NULL DEFAULT 0,
67
+ FOREIGN KEY (update_id) REFERENCES updates(update_id) ON DELETE CASCADE
68
+ );
69
+
70
+ -- JSON data table: stores manifest filters and other metadata
71
+ CREATE TABLE IF NOT EXISTS json_data (
72
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
73
+ scope_key TEXT NOT NULL,
74
+ key TEXT NOT NULL,
75
+ value TEXT NOT NULL,
76
+ last_updated INTEGER NOT NULL,
77
+ UNIQUE(scope_key, key)
78
+ );
79
+ """.trimIndent()
80
+
81
+ // Indexes for performance
82
+ val CREATE_INDEXES = """
83
+ CREATE INDEX IF NOT EXISTS idx_updates_scope_runtime ON updates(scope_key, runtime_version);
84
+ CREATE INDEX IF NOT EXISTS idx_updates_commit_time ON updates(commit_time DESC);
85
+ CREATE INDEX IF NOT EXISTS idx_assets_hash ON assets(asset_hash);
86
+ CREATE INDEX IF NOT EXISTS idx_update_assets_update ON update_assets(update_id);
87
+ CREATE INDEX IF NOT EXISTS idx_update_assets_hash ON update_assets(asset_hash);
88
+ CREATE INDEX IF NOT EXISTS idx_json_data_scope ON json_data(scope_key);
89
+ """.trimIndent()
90
+ }
@@ -0,0 +1,89 @@
1
+ package app.pulse.updates.errorrecovery
2
+
3
+ import android.os.Handler
4
+ import android.os.HandlerThread
5
+ import com.facebook.react.bridge.ReactMarker
6
+ import com.facebook.react.bridge.ReactMarker.MarkerListener
7
+ import com.facebook.react.bridge.ReactMarkerConstants
8
+ import app.pulse.updates.pulseLog
9
+ import app.pulse.updates.pulseLogError
10
+
11
+ /**
12
+ * Entry point for the error recovery flow. Responsible for initializing the error recovery handler
13
+ * and handler thread, and for registering (and unregistering) listeners to lifecycle events so that
14
+ * the appropriate error recovery flows will be triggered.
15
+ *
16
+ * The error recovery flow is intended to be lightweight and is *not* a full safety net whose
17
+ * purpose is to avoid crashes at all costs. Rather, its primary purpose is to prevent bad updates
18
+ * from "bricking" an app by causing crashes before there is ever a chance to download a fix.
19
+ *
20
+ * Notably, the error listener will be unregistered 10 seconds after content has appeared; we assume
21
+ * that by this point, pulse-updates has had enough time to download a new update if there is one,
22
+ * and so there is no more need to trigger the error recovery pipeline.
23
+ */
24
+ class PulseErrorRecovery {
25
+
26
+ internal val handlerThread = HandlerThread("pulse-updates-error-recovery")
27
+ internal lateinit var handler: Handler
28
+
29
+ private var delegate: PulseErrorRecoveryDelegate? = null
30
+ private var shouldHandleException = false
31
+
32
+ fun initialize(delegate: PulseErrorRecoveryDelegate) {
33
+ this.delegate = delegate
34
+ if (!::handler.isInitialized) {
35
+ handlerThread.start()
36
+ handler = PulseErrorRecoveryHandler(handlerThread.looper, delegate)
37
+ }
38
+ }
39
+
40
+ fun startMonitoring() {
41
+ registerContentAppearedListener()
42
+ shouldHandleException = true
43
+ }
44
+
45
+ /**
46
+ * Handle an exception that occurred during app execution
47
+ */
48
+ fun handleException(exception: Exception) {
49
+ if (shouldHandleException) {
50
+ pulseLogError(TAG, "ErrorRecovery: exception encountered: ${exception.localizedMessage}")
51
+ handler.sendMessage(handler.obtainMessage(PulseErrorRecoveryHandler.MessageType.EXCEPTION_ENCOUNTERED, exception))
52
+ }
53
+ }
54
+
55
+ fun notifyNewRemoteLoadStatus(newStatus: PulseErrorRecoveryDelegate.RemoteLoadStatus) {
56
+ pulseLog(TAG, "ErrorRecovery: remote load status changed: $newStatus")
57
+ handler.sendMessage(handler.obtainMessage(PulseErrorRecoveryHandler.MessageType.REMOTE_LOAD_STATUS_CHANGED, newStatus))
58
+ }
59
+
60
+ internal fun handleContentAppeared() {
61
+ handler.sendMessage(handler.obtainMessage(PulseErrorRecoveryHandler.MessageType.CONTENT_APPEARED))
62
+
63
+ unregisterContentAppearedListener()
64
+
65
+ // wait 10s before unsetting error handlers
66
+ handler.postDelayed({
67
+ shouldHandleException = false
68
+ handler.postDelayed({ handlerThread.quitSafely() }, 10000)
69
+ }, 10000)
70
+ }
71
+
72
+ private val contentAppearedListener = MarkerListener { name, _, _ ->
73
+ if (name == ReactMarkerConstants.CONTENT_APPEARED) {
74
+ handleContentAppeared()
75
+ }
76
+ }
77
+
78
+ private fun registerContentAppearedListener() {
79
+ ReactMarker.addListener(contentAppearedListener)
80
+ }
81
+
82
+ private fun unregisterContentAppearedListener() {
83
+ ReactMarker.removeListener(contentAppearedListener)
84
+ }
85
+
86
+ companion object {
87
+ private const val TAG = "PulseErrorRecovery"
88
+ }
89
+ }
@@ -0,0 +1,30 @@
1
+ package app.pulse.updates.errorrecovery
2
+
3
+ /**
4
+ * Interface for a delegate that will execute the actions prescribed by the error recovery
5
+ * pipeline. Implemented by PulseController.
6
+ */
7
+ interface PulseErrorRecoveryDelegate {
8
+
9
+ enum class RemoteLoadStatus {
10
+ IDLE,
11
+ NEW_UPDATE_LOADING,
12
+ NEW_UPDATE_LOADED
13
+ }
14
+
15
+ interface LauncherCallback {
16
+ fun onSuccess()
17
+ fun onFailure(e: Exception)
18
+ }
19
+
20
+ fun loadRemoteUpdate()
21
+ fun relaunch(callback: LauncherCallback)
22
+ fun throwException(exception: Exception)
23
+
24
+ fun markFailedLaunchForLaunchedUpdate()
25
+ fun markSuccessfulLaunchForLaunchedUpdate()
26
+
27
+ fun getRemoteLoadStatus(): RemoteLoadStatus
28
+ fun getCheckOnLaunchConfiguration(): String
29
+ fun getLaunchedUpdateSuccessfulLaunchCount(): Int
30
+ }