react-native-inapp-inspector 2.5.10 → 2.5.11
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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +1 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
- package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +1 -0
- package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
- package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +160 -0
- package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
- package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +212 -0
- package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +300 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
- package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
- package/android/build/generated/source/codegen/schema.json +1 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/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/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/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/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.at +0 -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/outputs/logs/manifest-merger-debug-report.txt +17 -0
- package/android/build/reports/problems/problems-report.html +659 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$57$$inlined$sortedByDescending$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
- package/dist/commonjs/a11y.d.ts +2 -0
- package/dist/commonjs/a11y.js +1 -0
- package/dist/commonjs/components/ErrorBoundary.js +1 -1
- package/dist/commonjs/components/Inspector/A11yTab.d.ts +2 -0
- package/dist/commonjs/components/Inspector/A11yTab.js +268 -0
- package/dist/commonjs/components/Inspector/AboutModal.js +4 -1
- package/dist/commonjs/components/Inspector/DeveloperSponsorCard.d.ts +9 -0
- package/dist/commonjs/components/Inspector/DeveloperSponsorCard.js +52 -0
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +4 -4
- package/dist/commonjs/components/Inspector/InspectorHeader.js +74 -66
- package/dist/commonjs/components/Inspector/NetworkTab.js +10 -7
- package/dist/commonjs/components/Inspector/SettingsPanel.js +242 -148
- package/dist/commonjs/components/ModuleErrorBoundary.js +1 -1
- package/dist/commonjs/components/NetworkIcons.d.ts +3 -0
- package/dist/commonjs/components/NetworkIcons.js +18 -5
- package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
- package/dist/commonjs/constants/telemetryConfig.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/a11yAdapter.d.ts +11 -0
- package/dist/commonjs/customHooks/a11yAdapter.js +1 -0
- package/dist/commonjs/customHooks/crashHandler.d.ts +9 -1
- package/dist/commonjs/customHooks/crashHandler.js +4 -4
- package/dist/commonjs/helpers/remoteConfig.d.ts +8 -0
- package/dist/commonjs/helpers/remoteConfig.js +1 -1
- package/dist/commonjs/helpers/sponsorService.d.ts +20 -0
- package/dist/commonjs/helpers/sponsorService.js +1 -0
- package/dist/commonjs/helpers/telemetry.js +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/types/interfaces.d.ts +20 -0
- package/dist/esm/a11y.d.ts +2 -0
- package/dist/esm/a11y.js +1 -0
- package/dist/esm/components/ErrorBoundary.js +10 -10
- package/dist/esm/components/Inspector/A11yTab.d.ts +2 -0
- package/dist/esm/components/Inspector/A11yTab.js +268 -0
- package/dist/esm/components/Inspector/AboutModal.js +17 -14
- package/dist/esm/components/Inspector/DeveloperSponsorCard.d.ts +9 -0
- package/dist/esm/components/Inspector/DeveloperSponsorCard.js +52 -0
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +22 -22
- package/dist/esm/components/Inspector/InspectorHeader.js +195 -187
- package/dist/esm/components/Inspector/NetworkTab.js +86 -83
- package/dist/esm/components/Inspector/SettingsPanel.js +329 -235
- package/dist/esm/components/ModuleErrorBoundary.js +1 -1
- package/dist/esm/components/NetworkIcons.d.ts +3 -0
- package/dist/esm/components/NetworkIcons.js +16 -3
- package/dist/esm/constants/telemetryConfig.d.ts +3 -3
- package/dist/esm/constants/telemetryConfig.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/a11yAdapter.d.ts +11 -0
- package/dist/esm/customHooks/a11yAdapter.js +1 -0
- package/dist/esm/customHooks/crashHandler.d.ts +9 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/helpers/remoteConfig.d.ts +8 -0
- package/dist/esm/helpers/remoteConfig.js +1 -1
- package/dist/esm/helpers/sponsorService.d.ts +20 -0
- package/dist/esm/helpers/sponsorService.js +1 -0
- package/dist/esm/helpers/telemetry.js +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/types/interfaces.d.ts +20 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,e,t,r){r===void 0&&(r=t);var o=Object.getOwnPropertyDescriptor(e,t);(!o||("get"in o?!e.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(n,r,o)}):(function(n,e,t,r){r===void 0&&(r=t),n[r]=e[t]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(t){var r=[];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[r.length]=o);return r},n(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r=n(e),o=0;o<r.length;o++)r[o]!=="default"&&__createBinding(t,e,r[o]);return __setModuleDefault(t,e),t}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.ModuleErrorBoundary=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppFonts_1=require("../styles/AppFonts"),AppColors_1=require("../styles/AppColors"),helpers_1=require("../helpers"),NetworkIcons_1=require("./NetworkIcons"),crashHandler_1=require("../customHooks/crashHandler"),enums_1=require("../types/enums"),i18n_1=require("../i18n");class ModuleErrorBoundary extends react_1.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null,copied:!1},this.handleRetry=()=>{this.setState({hasError:!1,error:null,copied:!1}),this.props.onRetry&&this.props.onRetry()},this.handleCopy=()=>{if(!this.state.error)return;const e=`[Module Error: ${this.props.moduleName||"Micro-Feature"}]
|
|
2
2
|
Message: ${this.state.error.message}
|
|
3
|
-
Stack: ${this.state.error.stack||"N/A"}`;(0,helpers_1.copyToClipboard)(e),this.setState({copied:!0}),setTimeout(()=>{this.setState({copied:!1})},2e3)}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){try{(0,crashHandler_1.handleInterceptedCrash)(e,e?.stack,!1,enums_1.CrashType.
|
|
3
|
+
Stack: ${this.state.error.stack||"N/A"}`;(0,helpers_1.copyToClipboard)(e),this.setState({copied:!0}),setTimeout(()=>{this.setState({copied:!1})},2e3)}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){try{(0,crashHandler_1.handleInterceptedCrash)(e,e?.stack,!1,enums_1.CrashType.Render,t.componentStack||void 0)}catch{}this.props.onError&&this.props.onError(e,t)}render(){if(this.state.hasError&&this.state.error){const{fallback:e,moduleName:t="UI Module",containerStyle:r}=this.props;return typeof e=="function"?e(this.state.error,this.handleRetry):e||<react_native_1.View style={[styles.card,r]}>
|
|
4
4
|
<react_native_1.View style={styles.headerRow}>
|
|
5
5
|
<react_native_1.View style={styles.titleRow}>
|
|
6
6
|
<NetworkIcons_1.WarningTriangleIcon color={AppColors_1.AppColors.red600}size={16}/>
|
|
@@ -229,3 +229,6 @@ export declare const WarmthIcon: ({ color, size }: IconProps) => React.JSX.Eleme
|
|
|
229
229
|
export declare const ExposureIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
230
230
|
export declare const VignetteIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
231
231
|
export declare const ArrowForwardIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
232
|
+
export declare const ScaleBalanceIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
233
|
+
export declare const VolumeMuteIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
234
|
+
export declare const ShieldBanIcon: ({ color, size }: IconProps) => React.JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[r.length]=n);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(t!=null)for(var r=e(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(o,t,r[n]);return __setModuleDefault(o,t),o}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoCircleIcon=exports.UserIcon=exports.LayersIcon=exports.WipeIcon=exports.FolderIcon=exports.SettingsIcon=exports.EyeIcon=exports.JsIcon=exports.CssIcon=exports.HtmlIcon=exports.BrandSquareIcon=exports.BrandCircleIcon=exports.MoonIcon=exports.SunIcon=exports.DebugIcon=exports.InsightsIcon=exports.AnalyticsIcon=exports.WhiteBackNavigation=exports.CloseWhite=exports.DownloadIcon=exports.FilterIcon=exports.ChevronIcon=exports.SortArrowIcon=exports.GlobeIcon=exports.DiffIcon=exports.SignalIcon=exports.ShareIcon=exports.ExportIcon=exports.TrashIcon=exports.FailIcon=exports.CircleAlertIcon=exports.CircleXIcon=exports.CircleCheckIcon=exports.CheckIcon=exports.TerminalIcon=exports.FetchIcon=exports.CopyIcon=exports.HeadersIcon=exports.ResponseIcon=exports.RequestIcon=exports.SizeIcon=exports.StatusIcon=exports.CalendarIcon=exports.ClockIcon=exports.ClearIcon=exports.SearchIcon=exports.ExpandCollapseIcon=exports.ScreenIcon=exports.MapPinIcon=exports.EmptyRadarIcon=void 0,exports.StackTraceIcon=exports.LayoutIcon=exports.ChipIcon=exports.SkullIcon=exports.ShieldAlertIcon=exports.CrashIcon=exports.UserCheckIcon=exports.TargetGoalIcon=exports.RepeatIcon=exports.PinIcon=exports.HourglassIcon=exports.FlameIcon=exports.CodeBracketsIcon=exports.AndroidIcon=exports.AppleIcon=exports.LinkChainIcon=exports.GitHubIcon=exports.StarIcon=exports.PackageBoxIcon=exports.ExternalLinkIcon=exports.MoneyIcon=exports.CartIcon=exports.TextAaIcon=exports.BrainIcon=exports.AtomIcon=exports.MapIcon=exports.SparkleIcon=exports.LightbulbIcon=exports.DocIcon=exports.FolderOpenIcon=exports.BanIcon=exports.BoltIcon=exports.PerformanceIcon=exports.ReduxIcon=exports.MetadataIcon=exports.StorageIcon=exports.RefreshCcwIcon=exports.TimelineIcon=exports.LiveStateIcon=exports.BundleIcon=exports.ForwardChevronIcon=exports.PackageIcon=exports.TableIcon=exports.RawIcon=exports.PrettyIcon=exports.SortIcon=exports.MotionIcon=exports.TrendingUpIcon=exports.ErrorCircleIcon=exports.WarningTriangleIcon=void 0,exports.GridIcon=exports.ListIcon=exports.ScreencastIcon=exports.FilmIcon=exports.ImageIcon=exports.PauseIcon=exports.PlayIcon=exports.GifIcon=exports.MicrophoneIcon=exports.VideoCameraIcon=exports.ScreenRecordIcon=exports.CameraLensIcon=exports.ScreenshotCaptureIcon=exports.CameraIcon=exports.LifeBuoyIcon=exports.SendIcon=exports.HelpCircleIcon=exports.HeadphonesIcon=exports.TurtleIcon=exports.RocketIcon=exports.UnlockIcon=exports.QrCodeIcon=exports.LockIcon=exports.PlusIcon=exports.PencilIcon=exports.DatabaseIcon=exports.ShieldCheckIcon=exports.WifiIcon=exports.CpuIcon=exports.MinimizeIcon=exports.MaximizeIcon=exports.ChevronDownIcon=exports.ResetIcon=exports.NpmIcon=exports.TagIcon=exports.BugIcon=exports.AlertTriangleIcon=exports.SmartphoneIcon=exports.KeyIcon=exports.BarChartIcon=exports.DiceIcon=exports.ZapIcon=exports.FlaskIcon=exports.LoadingSpinnerIcon=exports.ListenerIcon=exports.AllFramesIcon=exports.AppFramesIcon=exports.RawJsonIcon=exports.TrailIcon=exports.DiagnosticsIcon=void 0,exports.ResizeIcon=exports.UndoIcon=exports.ZoomOutIcon=exports.ZoomInIcon=exports.BlurIcon=exports.TypeIcon=exports.EllipseIconOutline=exports.CircleIconOutline=exports.RectangleIcon=exports.ShapesIcon=exports.PenIcon=exports.BatteryFullIcon=exports.BatteryChargingIcon=exports.SpeedIcon=exports.ActivityIcon=exports.MailIcon=exports.VolumeXIcon=exports.ScissorsIcon=exports.AnnotateIcon=exports.RedactIcon=exports.RotateIcon=exports.CropIcon=exports.HeartIcon=exports.SupportIcon=exports.ArrowDownIcon=exports.ArrowUpIcon=exports.BuildingIcon=exports.VolumeIcon=exports.BroadcastIcon=exports.PingIcon=exports.ReceiveFrameIcon=exports.SendFrameIcon=exports.WebsocketIcon=exports.SocketIcon=exports.CloudPushIcon=exports.NotificationIcon=exports.BellIcon=exports.HeartFaceIcon=exports.StarFaceIcon=exports.SmileFaceIcon=exports.NeutralFaceIcon=exports.AngryFaceIcon=exports.SparklesIcon=exports.MessageSquareIcon=exports.ChevronUpIcon=exports.WrenchIcon=exports.BookOpenIcon=exports.MinimizeWindowIcon=exports.CameraRollIcon=exports.GridlinesIcon=void 0,exports.ArrowForwardIcon=exports.VignetteIcon=exports.ExposureIcon=exports.WarmthIcon=exports.SaturationIcon=exports.ContrastIcon=exports.BrightnessIcon=exports.EyeCompareIcon=exports.ArrowRightIcon=exports.HighlighterIcon=exports.PixelateIcon=exports.DownloadExportIcon=exports.FlaskAiIcon=exports.SunAdjustIcon=exports.MoreDotsIcon=exports.RedoIcon=exports.SaveIcon=exports.GripVerticalIcon=exports.AspectRatioIcon=void 0;const react_1=__importDefault(require("react")),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),EmptyRadarIcon=({color:e=AppColors_1.AppColors.purple,size:t=32})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,o,r){r===void 0&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}):(function(e,t,o,r){r===void 0&&(r=o),e[r]=t[o]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(o){var r=[];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[r.length]=n);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var o={};if(t!=null)for(var r=e(t),n=0;n<r.length;n++)r[n]!=="default"&&__createBinding(o,t,r[n]);return __setModuleDefault(o,t),o}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.InfoCircleIcon=exports.UserIcon=exports.LayersIcon=exports.WipeIcon=exports.FolderIcon=exports.SettingsIcon=exports.EyeIcon=exports.JsIcon=exports.CssIcon=exports.HtmlIcon=exports.BrandSquareIcon=exports.BrandCircleIcon=exports.MoonIcon=exports.SunIcon=exports.DebugIcon=exports.InsightsIcon=exports.AnalyticsIcon=exports.WhiteBackNavigation=exports.CloseWhite=exports.DownloadIcon=exports.FilterIcon=exports.ChevronIcon=exports.SortArrowIcon=exports.GlobeIcon=exports.DiffIcon=exports.SignalIcon=exports.ShareIcon=exports.ExportIcon=exports.TrashIcon=exports.FailIcon=exports.CircleAlertIcon=exports.CircleXIcon=exports.CircleCheckIcon=exports.CheckIcon=exports.TerminalIcon=exports.FetchIcon=exports.CopyIcon=exports.HeadersIcon=exports.ResponseIcon=exports.RequestIcon=exports.SizeIcon=exports.StatusIcon=exports.CalendarIcon=exports.ClockIcon=exports.ClearIcon=exports.SearchIcon=exports.ExpandCollapseIcon=exports.ScreenIcon=exports.MapPinIcon=exports.EmptyRadarIcon=void 0,exports.StackTraceIcon=exports.LayoutIcon=exports.ChipIcon=exports.SkullIcon=exports.ShieldAlertIcon=exports.CrashIcon=exports.UserCheckIcon=exports.TargetGoalIcon=exports.RepeatIcon=exports.PinIcon=exports.HourglassIcon=exports.FlameIcon=exports.CodeBracketsIcon=exports.AndroidIcon=exports.AppleIcon=exports.LinkChainIcon=exports.GitHubIcon=exports.StarIcon=exports.PackageBoxIcon=exports.ExternalLinkIcon=exports.MoneyIcon=exports.CartIcon=exports.TextAaIcon=exports.BrainIcon=exports.AtomIcon=exports.MapIcon=exports.SparkleIcon=exports.LightbulbIcon=exports.DocIcon=exports.FolderOpenIcon=exports.BanIcon=exports.BoltIcon=exports.PerformanceIcon=exports.ReduxIcon=exports.MetadataIcon=exports.StorageIcon=exports.RefreshCcwIcon=exports.TimelineIcon=exports.LiveStateIcon=exports.BundleIcon=exports.ForwardChevronIcon=exports.PackageIcon=exports.TableIcon=exports.RawIcon=exports.PrettyIcon=exports.SortIcon=exports.MotionIcon=exports.TrendingUpIcon=exports.ErrorCircleIcon=exports.WarningTriangleIcon=void 0,exports.GridIcon=exports.ListIcon=exports.ScreencastIcon=exports.FilmIcon=exports.ImageIcon=exports.PauseIcon=exports.PlayIcon=exports.GifIcon=exports.MicrophoneIcon=exports.VideoCameraIcon=exports.ScreenRecordIcon=exports.CameraLensIcon=exports.ScreenshotCaptureIcon=exports.CameraIcon=exports.LifeBuoyIcon=exports.SendIcon=exports.HelpCircleIcon=exports.HeadphonesIcon=exports.TurtleIcon=exports.RocketIcon=exports.UnlockIcon=exports.QrCodeIcon=exports.LockIcon=exports.PlusIcon=exports.PencilIcon=exports.DatabaseIcon=exports.ShieldCheckIcon=exports.WifiIcon=exports.CpuIcon=exports.MinimizeIcon=exports.MaximizeIcon=exports.ChevronDownIcon=exports.ResetIcon=exports.NpmIcon=exports.TagIcon=exports.BugIcon=exports.AlertTriangleIcon=exports.SmartphoneIcon=exports.KeyIcon=exports.BarChartIcon=exports.DiceIcon=exports.ZapIcon=exports.FlaskIcon=exports.LoadingSpinnerIcon=exports.ListenerIcon=exports.AllFramesIcon=exports.AppFramesIcon=exports.RawJsonIcon=exports.TrailIcon=exports.DiagnosticsIcon=void 0,exports.ResizeIcon=exports.UndoIcon=exports.ZoomOutIcon=exports.ZoomInIcon=exports.BlurIcon=exports.TypeIcon=exports.EllipseIconOutline=exports.CircleIconOutline=exports.RectangleIcon=exports.ShapesIcon=exports.PenIcon=exports.BatteryFullIcon=exports.BatteryChargingIcon=exports.SpeedIcon=exports.ActivityIcon=exports.MailIcon=exports.VolumeXIcon=exports.ScissorsIcon=exports.AnnotateIcon=exports.RedactIcon=exports.RotateIcon=exports.CropIcon=exports.HeartIcon=exports.SupportIcon=exports.ArrowDownIcon=exports.ArrowUpIcon=exports.BuildingIcon=exports.VolumeIcon=exports.BroadcastIcon=exports.PingIcon=exports.ReceiveFrameIcon=exports.SendFrameIcon=exports.WebsocketIcon=exports.SocketIcon=exports.CloudPushIcon=exports.NotificationIcon=exports.BellIcon=exports.HeartFaceIcon=exports.StarFaceIcon=exports.SmileFaceIcon=exports.NeutralFaceIcon=exports.AngryFaceIcon=exports.SparklesIcon=exports.MessageSquareIcon=exports.ChevronUpIcon=exports.WrenchIcon=exports.BookOpenIcon=exports.MinimizeWindowIcon=exports.CameraRollIcon=exports.GridlinesIcon=void 0,exports.ShieldBanIcon=exports.VolumeMuteIcon=exports.ScaleBalanceIcon=exports.ArrowForwardIcon=exports.VignetteIcon=exports.ExposureIcon=exports.WarmthIcon=exports.SaturationIcon=exports.ContrastIcon=exports.BrightnessIcon=exports.EyeCompareIcon=exports.ArrowRightIcon=exports.HighlighterIcon=exports.PixelateIcon=exports.DownloadExportIcon=exports.FlaskAiIcon=exports.SunAdjustIcon=exports.MoreDotsIcon=exports.RedoIcon=exports.SaveIcon=exports.GripVerticalIcon=exports.AspectRatioIcon=void 0;const react_1=__importDefault(require("react")),react_native_svg_1=__importStar(require("react-native-svg")),AppColors_1=require("../styles/AppColors"),EmptyRadarIcon=({color:e=AppColors_1.AppColors.purple,size:t=32})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
2
2
|
<react_native_svg_1.Path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"stroke={e}strokeWidth="1.5"strokeLinecap="round"strokeLinejoin="round"/>
|
|
3
3
|
<react_native_svg_1.Circle cx="12"cy="11"r="3"stroke={e}strokeWidth="1.5"/>
|
|
4
4
|
<react_native_svg_1.Path d="M12 14v3"stroke={e}strokeWidth="1.5"strokeLinecap="round"/>
|
|
@@ -143,9 +143,9 @@
|
|
|
143
143
|
</react_native_svg_1.default>;exports.LayersIcon=LayersIcon;const UserIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
144
144
|
<react_native_svg_1.Path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
145
145
|
<react_native_svg_1.Circle cx="12"cy="7"r="4"stroke={e}strokeWidth="2"/>
|
|
146
|
-
</react_native_svg_1.default>;exports.UserIcon=UserIcon;const InfoCircleIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=
|
|
147
|
-
<react_native_svg_1.Circle cx="12"cy="12"r="
|
|
148
|
-
<react_native_svg_1.Path d="M12 16v-4M12
|
|
146
|
+
</react_native_svg_1.default>;exports.UserIcon=UserIcon;const InfoCircleIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=14})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
147
|
+
<react_native_svg_1.Circle cx="12"cy="12"r="9"stroke={e}strokeWidth="2"/>
|
|
148
|
+
<react_native_svg_1.Path d="M12 16v-4M12 8.5h.01"stroke={e}strokeWidth="2.2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
149
149
|
</react_native_svg_1.default>;exports.InfoCircleIcon=InfoCircleIcon;const WarningTriangleIcon=({color:e=AppColors_1.AppColors.grayTextWeak,size:t=12})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
150
150
|
<react_native_svg_1.Path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
151
151
|
<react_native_svg_1.Path d="M12 9v4M12 17h.01"stroke={e}strokeWidth="2"strokeLinecap="round"/>
|
|
@@ -754,4 +754,17 @@
|
|
|
754
754
|
<react_native_svg_1.Ellipse cx="12"cy="12"rx="6"ry="4.5"stroke={e}strokeWidth="1.8"strokeDasharray="2,2"/>
|
|
755
755
|
</react_native_svg_1.default>;exports.VignetteIcon=VignetteIcon;const ArrowForwardIcon=({color:e=AppColors_1.AppColors.white,size:t=16})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
756
756
|
<react_native_svg_1.Path d="M5 12h14M12 5l7 7-7 7"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
757
|
-
</react_native_svg_1.default>;exports.ArrowForwardIcon=ArrowForwardIcon;
|
|
757
|
+
</react_native_svg_1.default>;exports.ArrowForwardIcon=ArrowForwardIcon;const ScaleBalanceIcon=({color:e=AppColors_1.AppColors.white,size:t=16})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
758
|
+
<react_native_svg_1.Path d="M12 3v18"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
759
|
+
<react_native_svg_1.Path d="M4 6l8-3 8 3"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
760
|
+
<react_native_svg_1.Path d="M4 10l4 8H0l4-8z"stroke={e}strokeWidth="1.5"strokeLinecap="round"strokeLinejoin="round"/>
|
|
761
|
+
<react_native_svg_1.Path d="M20 10l4 8h-8l4-8z"stroke={e}strokeWidth="1.5"strokeLinecap="round"strokeLinejoin="round"/>
|
|
762
|
+
<react_native_svg_1.Path d="M8 21h8"stroke={e}strokeWidth="2"strokeLinecap="round"/>
|
|
763
|
+
</react_native_svg_1.default>;exports.ScaleBalanceIcon=ScaleBalanceIcon;const VolumeMuteIcon=({color:e=AppColors_1.AppColors.white,size:t=16})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
764
|
+
<react_native_svg_1.Polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
765
|
+
<react_native_svg_1.Line x1="23"y1="9"x2="17"y2="15"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
766
|
+
<react_native_svg_1.Line x1="17"y1="9"x2="23"y2="15"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
767
|
+
</react_native_svg_1.default>;exports.VolumeMuteIcon=VolumeMuteIcon;const ShieldBanIcon=({color:e=AppColors_1.AppColors.white,size:t=16})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
|
|
768
|
+
<react_native_svg_1.Path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
769
|
+
<react_native_svg_1.Line x1="4.5"y1="4.5"x2="19.5"y2="19.5"stroke={e}strokeWidth="2"strokeLinecap="round"/>
|
|
770
|
+
</react_native_svg_1.default>;exports.ShieldBanIcon=ShieldBanIcon;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const ENC_MID = "";
|
|
2
|
-
export declare const ENC_SEC = "";
|
|
3
|
-
export declare const TELEMETRY_SALT = "";
|
|
1
|
+
export declare const ENC_MID = "df8ace0290a695bd05986213";
|
|
2
|
+
export declare const ENC_SEC = "db93cb0186b1f7bb0ba63a0d0a64997586849455ce37";
|
|
3
|
+
export declare const TELEMETRY_SALT = "rn-inapp-inspector-telemetry-v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TELEMETRY_SALT=exports.ENC_SEC=exports.ENC_MID=void 0,exports.ENC_MID="",exports.ENC_SEC="",exports.TELEMETRY_SALT="";
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.TELEMETRY_SALT=exports.ENC_SEC=exports.ENC_MID=void 0,exports.ENC_MID="df8ace0290a695bd05986213",exports.ENC_SEC="db93cb0186b1f7bb0ba63a0d0a64997586849455ce37",exports.TELEMETRY_SALT="rn-inapp-inspector-telemetry-v1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "2.5.
|
|
1
|
+
export declare const LIB_VERSION = "2.5.11";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.5.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LIB_VERSION=void 0,exports.LIB_VERSION="2.5.11";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { A11yTelemetryState, ColorContrastResult, TouchTargetEvaluation, WcagRule } from '../types';
|
|
2
|
+
export declare const connectA11ySuite: (suiteInstance: any) => void;
|
|
3
|
+
export declare const getA11ySuiteInstance: () => any;
|
|
4
|
+
export declare const getA11yState: () => A11yTelemetryState;
|
|
5
|
+
export declare const subscribeA11yState: (listener: (state: A11yTelemetryState) => void) => (() => void);
|
|
6
|
+
export declare const syncA11yTelemetry: () => Promise<A11yTelemetryState>;
|
|
7
|
+
export declare const initA11yListeners: () => void;
|
|
8
|
+
export declare const announceA11y: (message: string) => boolean;
|
|
9
|
+
export declare const calculateContrastRatio: (fgHex: string, bgHex: string) => ColorContrastResult;
|
|
10
|
+
export declare const evaluateTouchTarget: (width: number, height: number) => TouchTargetEvaluation;
|
|
11
|
+
export declare const WCAG_RULES: WcagRule[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.WCAG_RULES=exports.evaluateTouchTarget=exports.calculateContrastRatio=exports.announceA11y=exports.initA11yListeners=exports.syncA11yTelemetry=exports.subscribeA11yState=exports.getA11yState=exports.getA11ySuiteInstance=exports.connectA11ySuite=void 0;const react_native_1=require("react-native");let customA11ySuite=null,cachedSuite;const connectA11ySuite=e=>{e&&(customA11ySuite=e,cachedSuite=e,notifyListeners())};exports.connectA11ySuite=connectA11ySuite;const getA11ySuiteInstance=()=>{if(customA11ySuite)return customA11ySuite;if(cachedSuite!==void 0)return cachedSuite;if(globalThis.A11ySuite)return cachedSuite=globalThis.A11ySuite,cachedSuite;if(globalThis.__A11Y_SUITE__)return cachedSuite=globalThis.__A11Y_SUITE__,cachedSuite;try{const e="react-native-a11y-suite",t=typeof require=="function"?require:null;if(t){const i=t(e);return cachedSuite=i?.default||i||null,cachedSuite}}catch{cachedSuite=null}return cachedSuite=null,null};exports.getA11ySuiteInstance=getA11ySuiteInstance;let currentState={isScreenReaderEnabled:!1,isReduceMotionEnabled:!1,isBoldTextEnabled:!1,isGrayscaleEnabled:!1,isInvertColorsEnabled:!1,isHighContrastEnabled:!1,fontScale:react_native_1.PixelRatio.getFontScale?react_native_1.PixelRatio.getFontScale():1,nativeModuleAvailable:!1,lastUpdated:Date.now()};const listeners=new Set,notifyListeners=()=>{listeners.forEach(e=>{try{e(currentState)}catch{}})},getA11yState=()=>({...currentState});exports.getA11yState=getA11yState;const subscribeA11yState=e=>(listeners.add(e),e(currentState),()=>{listeners.delete(e)});exports.subscribeA11yState=subscribeA11yState;const syncA11yTelemetry=async()=>{const e=(0,exports.getA11ySuiteInstance)(),t=react_native_1.PixelRatio.getFontScale?react_native_1.PixelRatio.getFontScale():1;let i=!1,a=!1,n=!1,s=!1,r=!1,l=!1;try{i=await react_native_1.AccessibilityInfo.isScreenReaderEnabled()}catch{}try{a=await react_native_1.AccessibilityInfo.isReduceMotionEnabled()}catch{}try{react_native_1.AccessibilityInfo.isBoldTextEnabled&&(n=await react_native_1.AccessibilityInfo.isBoldTextEnabled())}catch{}try{react_native_1.AccessibilityInfo.isGrayscaleEnabled&&(s=await react_native_1.AccessibilityInfo.isGrayscaleEnabled())}catch{}try{react_native_1.AccessibilityInfo.isInvertColorsEnabled&&(r=await react_native_1.AccessibilityInfo.isInvertColorsEnabled())}catch{}try{react_native_1.AccessibilityInfo.isHighTextContrastEnabled&&(l=await react_native_1.AccessibilityInfo.isHighTextContrastEnabled())}catch{}return currentState={isScreenReaderEnabled:i,isReduceMotionEnabled:a,isBoldTextEnabled:n,isGrayscaleEnabled:s,isInvertColorsEnabled:r,isHighContrastEnabled:l,fontScale:Math.round(t*100)/100,nativeModuleAvailable:!!e,lastUpdated:Date.now()},notifyListeners(),currentState};exports.syncA11yTelemetry=syncA11yTelemetry;let isInitialized=!1;const initA11yListeners=()=>{if(!isInitialized){isInitialized=!0,(0,exports.syncA11yTelemetry)();try{react_native_1.AccessibilityInfo.addEventListener("screenReaderChanged",e=>{currentState={...currentState,isScreenReaderEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}try{react_native_1.AccessibilityInfo.addEventListener("reduceMotionChanged",e=>{currentState={...currentState,isReduceMotionEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}try{react_native_1.AccessibilityInfo.addEventListener("boldTextChanged",e=>{currentState={...currentState,isBoldTextEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}try{react_native_1.AccessibilityInfo.addEventListener("grayscaleChanged",e=>{currentState={...currentState,isGrayscaleEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}try{react_native_1.AccessibilityInfo.addEventListener("invertColorsChanged",e=>{currentState={...currentState,isInvertColorsEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}try{react_native_1.AccessibilityInfo.addEventListener("highTextContrastChanged",e=>{currentState={...currentState,isHighContrastEnabled:!!e,lastUpdated:Date.now()},notifyListeners()})}catch{}}};exports.initA11yListeners=initA11yListeners;const announceA11y=e=>{if(!e||!e.trim())return!1;try{const t=(0,exports.getA11ySuiteInstance)();if(t&&typeof t.announce=="function")return t.announce(e),!0}catch{}try{return react_native_1.AccessibilityInfo.announceForAccessibility(e),!0}catch{return!1}};exports.announceA11y=announceA11y;const parseHex=e=>{let t=e.replace("#","").trim();if(t.length===3&&(t=t.split("").map(s=>s+s).join("")),t.length!==6)return null;const i=parseInt(t.substring(0,2),16),a=parseInt(t.substring(2,4),16),n=parseInt(t.substring(4,6),16);return isNaN(i)||isNaN(a)||isNaN(n)?null:[i,a,n]},getRelativeLuminance=(e,t,i)=>{const a=[e/255,t/255,i/255].map(n=>n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4));return .2126*a[0]+.7152*a[1]+.0722*a[2]},calculateContrastRatio=(e,t)=>{const i=parseHex(e),a=parseHex(t);if(!i||!a)return{fgHex:e,bgHex:t,ratio:1,aaNormal:!1,aaLarge:!1,aaaNormal:!1,aaaLarge:!1};const n=getRelativeLuminance(i[0],i[1],i[2]),s=getRelativeLuminance(a[0],a[1],a[2]),r=Math.max(n,s),l=Math.min(n,s),c=(r+.05)/(l+.05),o=Math.round(c*100)/100;return{fgHex:e,bgHex:t,ratio:o,aaNormal:o>=4.5,aaLarge:o>=3,aaaNormal:o>=7,aaaLarge:o>=4.5}};exports.calculateContrastRatio=calculateContrastRatio;const evaluateTouchTarget=(e,t)=>({width:e,height:t,iosMinMet:e>=44&&t>=44,androidMinMet:e>=48&&t>=48});exports.evaluateTouchTarget=evaluateTouchTarget,exports.WCAG_RULES=[{id:"1.1.1",title:"Non-text Content",level:"A",principle:"Perceivable",description:"All non-text content (icons, images, diagrams) must have a text alternative.",mobileRecommendation:"Provide accessibilityLabel or accessible={false} for purely decorative icons.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/non-text-content"},{id:"1.3.1",title:"Info and Relationships",level:"A",principle:"Perceivable",description:"Information, structure, and relationships conveyed through presentation can be programmatically determined.",mobileRecommendation:'Use accessibilityRole="header", accessibilityRole="button", or AccessibleHeading.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships"},{id:"1.4.3",title:"Contrast (Minimum)",level:"AA",principle:"Perceivable",description:"Visual presentation of text must have a contrast ratio of at least 4.5:1 (3:1 for large text).",mobileRecommendation:"Ensure high contrast between text and background on both light and dark themes.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum"},{id:"1.4.4",title:"Resize Text",level:"AA",principle:"Perceivable",description:"Text can be resized without assistive technology up to 200 percent without loss of content or functionality.",mobileRecommendation:"Avoid fixed height containers with overflow: hidden on Text elements. Test with max font scale.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/resize-text"},{id:"1.4.11",title:"Non-text Contrast",level:"AA",principle:"Perceivable",description:"The visual presentation of UI components and graphical objects has a contrast ratio of at least 3:1.",mobileRecommendation:"Ensure active borders, focus rings, and action icons meet 3:1 contrast against adjacent colors.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/non-text-contrast"},{id:"2.1.1",title:"Keyboard / Hardware Navigation",level:"A",principle:"Operable",description:"All functionality is operable through a keyboard or switch access interface.",mobileRecommendation:"Support external Bluetooth keyboards and accessibilityActions for gestures.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/keyboard"},{id:"2.4.3",title:"Focus Order",level:"A",principle:"Operable",description:"Components receive focus in an order that preserves meaning and operability.",mobileRecommendation:"Ensure modal dialogs trap focus and restore focus on dismissal.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/focus-order"},{id:"2.4.7",title:"Focus Visible",level:"AA",principle:"Operable",description:"Any keyboard operable user interface has an indicator of focus.",mobileRecommendation:"Highlight active focused items when keyboard/TalkBack navigation is used.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/focus-visible"},{id:"2.5.5",title:"Target Size (Enhanced)",level:"AAA",principle:"Operable",description:"The size of the target for pointer inputs is at least 44 by 44 CSS pixels.",mobileRecommendation:"Use AccessibleTouchTarget or hitSlop to ensure touch targets meet 44x44pt.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/target-size-enhanced"},{id:"2.5.8",title:"Target Size (Minimum) - WCAG 2.2",level:"AA",principle:"Operable",description:"Targets have an area of at least 24 by 24 CSS pixels with sufficient spacing.",mobileRecommendation:"Ensure buttons are separated and have at least 24x24 minimum target size.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum"},{id:"3.3.1",title:"Error Identification",level:"A",principle:"Understandable",description:"If an input error is automatically detected, the item is identified and described in text.",mobileRecommendation:'Set accessibilityRole="alert" or accessibilityInvalid on form fields with error messages.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/error-identification"},{id:"4.1.2",title:"Name, Role, Value",level:"A",principle:"Robust",description:"For all UI components, the name and role can be programmatically determined and state changes reported.",mobileRecommendation:"Use accessibilityRole, accessibilityState={{checked, disabled, selected}} on interactive elements.",wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/name-role-value"},{id:"4.1.3",title:"Status Messages",level:"AA",principle:"Robust",description:"Status messages can be programmatically determined through role or properties without receiving focus.",mobileRecommendation:'Use LiveRegion, accessibilityLiveRegion="polite" or announceA11y for asynchronous alerts.',wcagUrl:"https://www.w3.org/WAI/WCAG22/Understanding/status-messages"}];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CrashRecord, ParsedStackFrame, CrashBreadcrumb } from '../types';
|
|
1
|
+
import { CrashRecord, ParsedStackFrame, CrashBreadcrumb, CrashIgnoredTypes, CrashModalTriggerPolicy } from '../types';
|
|
2
2
|
import { CrashExportFormat, CrashType } from '../types/enums';
|
|
3
3
|
export interface CrashEventPayload {
|
|
4
4
|
error: Error | any;
|
|
@@ -8,9 +8,17 @@ export interface CrashEventPayload {
|
|
|
8
8
|
timestamp: number;
|
|
9
9
|
logId?: number;
|
|
10
10
|
crashRecord?: CrashRecord;
|
|
11
|
+
shouldShowModal?: boolean;
|
|
11
12
|
}
|
|
12
13
|
export { CrashExportFormat };
|
|
14
|
+
export declare const DEFAULT_CRASH_IGNORED_TYPES: CrashIgnoredTypes;
|
|
13
15
|
type CrashListener = (payload: CrashEventPayload) => void;
|
|
16
|
+
export declare const setCrashIgnoredTypesConfig: (config: Partial<CrashIgnoredTypes>) => void;
|
|
17
|
+
export declare const getCrashIgnoredTypesConfig: () => CrashIgnoredTypes;
|
|
18
|
+
export declare const setCrashModalTriggerPolicyConfig: (policy: CrashModalTriggerPolicy) => void;
|
|
19
|
+
export declare const getCrashModalTriggerPolicyConfig: () => CrashModalTriggerPolicy;
|
|
20
|
+
export declare const setCrashThrottleDuplicatesConfig: (throttle: boolean) => void;
|
|
21
|
+
export declare const applyCrashPolicyPreset: (preset: "balanced" | "max_shield" | "silent") => CrashIgnoredTypes;
|
|
14
22
|
export declare const setCrashModuleEnabled: (enabled: boolean) => void;
|
|
15
23
|
export declare const getCrashModuleEnabled: () => boolean;
|
|
16
24
|
export declare const setMaxCrashLogsLimit: (max: number) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupGlobalCrashHandler=exports.exportCrashReport=exports.simulateTestCrash=exports.triggerGlobalCrashScreen=exports.recordCustomCrash=exports.handleInterceptedCrash=exports.emitCrashEvent=exports.subscribeCrashEvents=exports.clearCrashRecords=exports.getCrashRecords=exports.computeCrashFingerprint=exports.parseCrashStackTrace=exports.getCrashBreadcrumbs=exports.clearCrashBreadcrumbs=exports.recordUserActionBreadcrumb=exports.recordReduxBreadcrumb=exports.recordNetworkBreadcrumb=exports.recordNavigationBreadcrumb=exports.addCrashBreadcrumb=exports.pruneCrashRecords=exports.getMaxCrashLogsLimit=exports.setMaxCrashLogsLimit=exports.getCrashModuleEnabled=exports.setCrashModuleEnabled=exports.CrashExportFormat=void 0;const react_native_1=require("react-native"),enums_1=require("../types/enums");Object.defineProperty(exports,"CrashExportFormat",{enumerable:!0,get:function(){return enums_1.CrashExportFormat}});const consoleLogger_1=require("./consoleLogger"),NativeInspector_1=require("../native/NativeInspector"),i18n_1=require("../i18n");let crashListeners=[],isCrashHandlerInitialized=!1,lastHandledErrorTimestamp=0,crashRecordsStore=[],breadcrumbsStore=[];const MAX_BREADCRUMBS=50;let maxStoredCrashes=100;const appStartTime=Date.now();let isCrashModuleEnabled=!1;const setCrashModuleEnabled=e=>{isCrashModuleEnabled=e};exports.setCrashModuleEnabled=setCrashModuleEnabled;const getCrashModuleEnabled=()=>isCrashModuleEnabled;exports.getCrashModuleEnabled=getCrashModuleEnabled;const setMaxCrashLogsLimit=e=>{maxStoredCrashes=Math.max(10,e),crashRecordsStore.length>maxStoredCrashes&&(crashRecordsStore=crashRecordsStore.slice(0,maxStoredCrashes))};exports.setMaxCrashLogsLimit=setMaxCrashLogsLimit;const getMaxCrashLogsLimit=()=>maxStoredCrashes;exports.getMaxCrashLogsLimit=getMaxCrashLogsLimit;const pruneCrashRecords=e=>{const r=e!==void 0?Math.max(0,e):Math.floor(crashRecordsStore.length/2),o=crashRecordsStore.length-r;return o>0&&(crashRecordsStore=crashRecordsStore.slice(0,r)),breadcrumbsStore.length>20&&(breadcrumbsStore=breadcrumbsStore.slice(0,20)),Math.max(0,o)};exports.pruneCrashRecords=pruneCrashRecords;const addCrashBreadcrumb=(e,r,o)=>{if(isCrashModuleEnabled)try{const s={type:e,message:r,timestamp:Date.now(),data:o};breadcrumbsStore.unshift(s),breadcrumbsStore.length>MAX_BREADCRUMBS&&(breadcrumbsStore=breadcrumbsStore.slice(0,MAX_BREADCRUMBS))}catch{}};exports.addCrashBreadcrumb=addCrashBreadcrumb;const recordNavigationBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("navigation",(0,i18n_1.t)("crash.breadcrumbNavigation",{from:e||"/",to:r||"/"}),{from:e,to:r})};exports.recordNavigationBreadcrumb=recordNavigationBreadcrumb;const recordNetworkBreadcrumb=(e,r,o,s)=>{const t=o!=null?` [${o}]`:"",a=s!=null?` (${Math.round(s)}ms)`:"";(0,exports.addCrashBreadcrumb)("network",`${r.toUpperCase()} ${e}${t}${a}`,{url:e,method:r,status:o,duration:s})};exports.recordNetworkBreadcrumb=recordNetworkBreadcrumb;const recordReduxBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("redux",(0,i18n_1.t)("crash.breadcrumbAction",{actionType:e}),{type:e,payloadSummary:typeof r=="object"&&r!==null?Object.keys(r):typeof r})};exports.recordReduxBreadcrumb=recordReduxBreadcrumb;const recordUserActionBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("user",e,r)};exports.recordUserActionBreadcrumb=recordUserActionBreadcrumb;const clearCrashBreadcrumbs=()=>{breadcrumbsStore=[]};exports.clearCrashBreadcrumbs=clearCrashBreadcrumbs;const getCrashBreadcrumbs=()=>[...breadcrumbsStore];exports.getCrashBreadcrumbs=getCrashBreadcrumbs;const parseCrashStackTrace=e=>{if(!e||typeof e!="string")return[];const r=e.split(`
|
|
2
|
-
`),o=[];for(const s of r){const t=s.trim();if(!t||t.includes("crashHandler.ts")||t.includes("handleInterceptedCrash")||t.includes("addLogFromCrash")||t.includes("setupGlobalCrashHandler"))continue;const a=t.match(/^([^@]+)@(.*):(\d+):(\d+)$/);if(a){const[,
|
|
3
|
-
`):
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupGlobalCrashHandler=exports.exportCrashReport=exports.simulateTestCrash=exports.triggerGlobalCrashScreen=exports.recordCustomCrash=exports.handleInterceptedCrash=exports.emitCrashEvent=exports.subscribeCrashEvents=exports.clearCrashRecords=exports.getCrashRecords=exports.computeCrashFingerprint=exports.parseCrashStackTrace=exports.getCrashBreadcrumbs=exports.clearCrashBreadcrumbs=exports.recordUserActionBreadcrumb=exports.recordReduxBreadcrumb=exports.recordNetworkBreadcrumb=exports.recordNavigationBreadcrumb=exports.addCrashBreadcrumb=exports.pruneCrashRecords=exports.getMaxCrashLogsLimit=exports.setMaxCrashLogsLimit=exports.getCrashModuleEnabled=exports.setCrashModuleEnabled=exports.applyCrashPolicyPreset=exports.setCrashThrottleDuplicatesConfig=exports.getCrashModalTriggerPolicyConfig=exports.setCrashModalTriggerPolicyConfig=exports.getCrashIgnoredTypesConfig=exports.setCrashIgnoredTypesConfig=exports.DEFAULT_CRASH_IGNORED_TYPES=exports.CrashExportFormat=void 0;const react_native_1=require("react-native"),enums_1=require("../types/enums");Object.defineProperty(exports,"CrashExportFormat",{enumerable:!0,get:function(){return enums_1.CrashExportFormat}});const consoleLogger_1=require("./consoleLogger"),NativeInspector_1=require("../native/NativeInspector"),i18n_1=require("../i18n");exports.DEFAULT_CRASH_IGNORED_TYPES={js:!0,native:!1,render:!0,promise:!1,custom:!1};let crashListeners=[],isCrashHandlerInitialized=!1,lastHandledErrorTimestamp=0,lastHandledErrorFingerprint="",crashRecordsStore=[],breadcrumbsStore=[];const MAX_BREADCRUMBS=50;let maxStoredCrashes=100;const appStartTime=Date.now();let isCrashModuleEnabled=!1,crashIgnoredTypesConfig={...exports.DEFAULT_CRASH_IGNORED_TYPES},crashModalTriggerPolicyConfig="fatal_only",crashThrottleDuplicatesConfig=!0;const setCrashIgnoredTypesConfig=e=>{crashIgnoredTypesConfig={...crashIgnoredTypesConfig,...e}};exports.setCrashIgnoredTypesConfig=setCrashIgnoredTypesConfig;const getCrashIgnoredTypesConfig=()=>({...crashIgnoredTypesConfig});exports.getCrashIgnoredTypesConfig=getCrashIgnoredTypesConfig;const setCrashModalTriggerPolicyConfig=e=>{crashModalTriggerPolicyConfig=e};exports.setCrashModalTriggerPolicyConfig=setCrashModalTriggerPolicyConfig;const getCrashModalTriggerPolicyConfig=()=>crashModalTriggerPolicyConfig;exports.getCrashModalTriggerPolicyConfig=getCrashModalTriggerPolicyConfig;const setCrashThrottleDuplicatesConfig=e=>{crashThrottleDuplicatesConfig=e};exports.setCrashThrottleDuplicatesConfig=setCrashThrottleDuplicatesConfig;const applyCrashPolicyPreset=e=>{switch(e){case"max_shield":crashIgnoredTypesConfig={js:!1,native:!1,render:!1,promise:!1,custom:!1};break;case"silent":crashIgnoredTypesConfig={js:!0,native:!0,render:!0,promise:!0,custom:!0};break;default:crashIgnoredTypesConfig={...exports.DEFAULT_CRASH_IGNORED_TYPES};break}return{...crashIgnoredTypesConfig}};exports.applyCrashPolicyPreset=applyCrashPolicyPreset;const setCrashModuleEnabled=e=>{isCrashModuleEnabled=e};exports.setCrashModuleEnabled=setCrashModuleEnabled;const getCrashModuleEnabled=()=>isCrashModuleEnabled;exports.getCrashModuleEnabled=getCrashModuleEnabled;const setMaxCrashLogsLimit=e=>{maxStoredCrashes=Math.max(10,e),crashRecordsStore.length>maxStoredCrashes&&(crashRecordsStore=crashRecordsStore.slice(0,maxStoredCrashes))};exports.setMaxCrashLogsLimit=setMaxCrashLogsLimit;const getMaxCrashLogsLimit=()=>maxStoredCrashes;exports.getMaxCrashLogsLimit=getMaxCrashLogsLimit;const pruneCrashRecords=e=>{const r=e!==void 0?Math.max(0,e):Math.floor(crashRecordsStore.length/2),o=crashRecordsStore.length-r;return o>0&&(crashRecordsStore=crashRecordsStore.slice(0,r)),breadcrumbsStore.length>20&&(breadcrumbsStore=breadcrumbsStore.slice(0,20)),Math.max(0,o)};exports.pruneCrashRecords=pruneCrashRecords;const addCrashBreadcrumb=(e,r,o)=>{if(isCrashModuleEnabled)try{const s={type:e,message:r,timestamp:Date.now(),data:o};breadcrumbsStore.unshift(s),breadcrumbsStore.length>MAX_BREADCRUMBS&&(breadcrumbsStore=breadcrumbsStore.slice(0,MAX_BREADCRUMBS))}catch{}};exports.addCrashBreadcrumb=addCrashBreadcrumb;const recordNavigationBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("navigation",(0,i18n_1.t)("crash.breadcrumbNavigation",{from:e||"/",to:r||"/"}),{from:e,to:r})};exports.recordNavigationBreadcrumb=recordNavigationBreadcrumb;const recordNetworkBreadcrumb=(e,r,o,s)=>{const t=o!=null?` [${o}]`:"",a=s!=null?` (${Math.round(s)}ms)`:"";(0,exports.addCrashBreadcrumb)("network",`${r.toUpperCase()} ${e}${t}${a}`,{url:e,method:r,status:o,duration:s})};exports.recordNetworkBreadcrumb=recordNetworkBreadcrumb;const recordReduxBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("redux",(0,i18n_1.t)("crash.breadcrumbAction",{actionType:e}),{type:e,payloadSummary:typeof r=="object"&&r!==null?Object.keys(r):typeof r})};exports.recordReduxBreadcrumb=recordReduxBreadcrumb;const recordUserActionBreadcrumb=(e,r)=>{(0,exports.addCrashBreadcrumb)("user",e,r)};exports.recordUserActionBreadcrumb=recordUserActionBreadcrumb;const clearCrashBreadcrumbs=()=>{breadcrumbsStore=[]};exports.clearCrashBreadcrumbs=clearCrashBreadcrumbs;const getCrashBreadcrumbs=()=>[...breadcrumbsStore];exports.getCrashBreadcrumbs=getCrashBreadcrumbs;const parseCrashStackTrace=e=>{if(!e||typeof e!="string")return[];const r=e.split(`
|
|
2
|
+
`),o=[];for(const s of r){const t=s.trim();if(!t||t.includes("crashHandler.ts")||t.includes("handleInterceptedCrash")||t.includes("addLogFromCrash")||t.includes("setupGlobalCrashHandler"))continue;const a=t.match(/^([^@]+)@(.*):(\d+):(\d+)$/);if(a){const[,i,n,u,h]=a,m=n.split("?")[0].split("/").pop()||n,f=!n.includes("node_modules")&&!n.includes("react-native")&&!n.includes("react-dom")&&!n.includes("hermes")&&!n.includes("internal");o.push({method:i.trim(),file:m,lineNumber:parseInt(u,10),column:parseInt(h,10),raw:t,isAppCode:f});continue}const p=t.match(/^at\s+(.+)\s+\((.+):(\d+):(\d+)\)$/);if(p){const[,i,n,u,h]=p,m=n.split("?")[0].split("/").pop()||n,f=!n.includes("node_modules")&&!n.includes("react-native")&&!n.includes("react-dom")&&!n.includes("internal");o.push({method:i.trim(),file:m,lineNumber:parseInt(u,10),column:parseInt(h,10),raw:t,isAppCode:f});continue}const d=t.match(/^at\s+(.+):(\d+):(\d+)$/);if(d){const[,i,n,u]=d,h=i.split("?")[0].split("/").pop()||i,m=!i.includes("node_modules")&&!i.includes("react-native");o.push({method:"<anonymous>",file:h,lineNumber:parseInt(n,10),column:parseInt(u,10),raw:t,isAppCode:m});continue}const l=t.match(/^at\s+([a-zA-Z0-9_$.]+)\(([a-zA-Z0-9_$]+\.java):(\d+)\)$/);if(l){const[,i,n,u]=l,h=!i.startsWith("com.facebook.react")&&!i.startsWith("android.");o.push({method:i,file:n,lineNumber:parseInt(u,10),column:0,raw:t,isAppCode:h});continue}const c=t.match(/^\d+\s+([^\s]+)\s+(0x[0-9a-fA-F]+)\s+(.+)$/);if(c){const[,i,,n]=c,u=!i.startsWith("lib")&&!i.startsWith("Core")&&!i.startsWith("React");o.push({method:n,file:i,lineNumber:0,column:0,raw:t,isAppCode:u});continue}o.push({method:t.startsWith("at ")?t.slice(3):t,file:"runtime",lineNumber:0,column:0,raw:t,isAppCode:!1})}return o};exports.parseCrashStackTrace=parseCrashStackTrace;const getMemoryDiagnostics=()=>{try{const e=globalThis.performance;if(e&&e.memory)return{usedJSHeapSize:Math.round(e.memory.usedJSHeapSize/(1024*1024)),totalJSHeapSize:Math.round(e.memory.totalJSHeapSize/(1024*1024))}}catch{}},getScreenDimensions=()=>{try{const e=react_native_1.Dimensions.get("window");return`${Math.round(e.width)}x${Math.round(e.height)} (${e.scale}x)`}catch{return(0,i18n_1.t)("crash.unknown")}},computeCrashFingerprint=e=>{const r=e.type||"js",o=e.name||"Error",s=e.parsedStack&&e.parsedStack.length>0?e.parsedStack[0]:null,t=s?`${s.file}:${s.lineNumber}`:"unknown";return`${r}_${o}_${t}`};exports.computeCrashFingerprint=computeCrashFingerprint;const getCrashRecords=()=>[...crashRecordsStore];exports.getCrashRecords=getCrashRecords;const clearCrashRecords=()=>{crashRecordsStore=[],(0,exports.emitCrashEvent)({error:null,message:"__CLEARED__",timestamp:Date.now()})};exports.clearCrashRecords=clearCrashRecords;const subscribeCrashEvents=e=>(crashListeners.push(e),()=>{crashListeners=crashListeners.filter(r=>r!==e)});exports.subscribeCrashEvents=subscribeCrashEvents;const emitCrashEvent=e=>{if(e.message!=="__CLEARED__"){const r=Date.now();if(r-lastHandledErrorTimestamp<250)return;lastHandledErrorTimestamp=r}crashListeners.forEach(r=>{try{r(e)}catch{}})};exports.emitCrashEvent=emitCrashEvent;const handleInterceptedCrash=(e,r,o=!1,s,t)=>{try{const a=e instanceof Error||typeof e=="object"&&e!==null?e:new Error(String(e||(0,i18n_1.t)("crash.runtimeException"))),p=a.message||(typeof e=="string"?e:(0,i18n_1.t)("crash.runtimeException"));let d="";typeof r=="string"?d=r:Array.isArray(r)?d=r.map(C=>`at ${C.methodName||"<anonymous>"} (${C.file||"unknown"}:${C.lineNumber||0}:${C.column||0})`).join(`
|
|
3
|
+
`):d=a.stack||new Error().stack||"";let l=s||enums_1.CrashType.Js;const c=p.toLowerCase();if(s||(c.includes("native")||c.includes("sigsegv")||c.includes("nsrange")||c.includes("nullpointerexception")||c.includes("fatal signal")?l=enums_1.CrashType.Native:c.includes("promise")||c.includes("unhandled rejection")||c.includes("unhandledrejection")?l=enums_1.CrashType.Promise:c.includes("render")||c.includes("errorboundary")||t?l=enums_1.CrashType.Render:l=enums_1.CrashType.Js),!!crashIgnoredTypesConfig[l])return{id:`crash_ignored_${Date.now()}`,isFatal:o,type:l,message:p,timestamp:Date.now(),dateStr:new Date().toLocaleDateString(),timeStr:new Date().toLocaleTimeString()};const n=new Date,u=n.toLocaleDateString(),h=n.toLocaleTimeString(),m=(0,exports.parseCrashStackTrace)(d),f=`${l}_${p}_${d.slice(0,80)}`,b=Date.now();if(crashThrottleDuplicatesConfig&&f===lastHandledErrorFingerprint&&b-lastHandledErrorTimestamp<500)return crashRecordsStore.length>0&&(crashRecordsStore[0].duplicateCount=(crashRecordsStore[0].duplicateCount||1)+1),crashRecordsStore[0];lastHandledErrorFingerprint=f,lastHandledErrorTimestamp=b;const y=(0,consoleLogger_1.addLogFromCrash)(a,`[${o?(0,i18n_1.t)("crash.logFatalCrash"):(0,i18n_1.t)("crash.logUnhandledError")}] ${p}`,d,o),$=typeof globalThis.HermesInternal<"u",S=typeof globalThis.nativeFabricUIManager<"u",x={id:`crash_${Date.now()}_${Math.random().toString(36).substr(2,6)}`,error:a,isFatal:o,type:l,message:p,name:a.name||(o?(0,i18n_1.t)("crash.errorNameFatal"):(0,i18n_1.t)("crash.errorNameUnhandled")),stack:d,parsedStack:m,componentStack:t||void 0,timestamp:Date.now(),dateStr:u,timeStr:h,deviceInfo:{platform:react_native_1.Platform.OS,osVersion:String(react_native_1.Platform.Version),rnVersion:react_native_1.Platform.constants?.reactNativeVersion?`${react_native_1.Platform.constants.reactNativeVersion.major}.${react_native_1.Platform.constants.reactNativeVersion.minor}.${react_native_1.Platform.constants.reactNativeVersion.patch}`:(0,i18n_1.t)("crash.unknown"),isHermes:$,isFabric:S,appState:react_native_1.AppState.currentState||"active"},memoryInfo:getMemoryDiagnostics(),breadcrumbs:[...breadcrumbsStore],logId:y?.id};crashRecordsStore.unshift(x),crashRecordsStore.length>maxStoredCrashes&&(crashRecordsStore=crashRecordsStore.slice(0,maxStoredCrashes));let g=!1;crashModalTriggerPolicyConfig==="all_errors"?g=!0:crashModalTriggerPolicyConfig==="fatal_only"?g=o||l===enums_1.CrashType.Native:crashModalTriggerPolicyConfig==="silent_tab_only"&&(g=!1),(0,exports.emitCrashEvent)({error:a,isFatal:o,message:`[${o?(0,i18n_1.t)("crash.logFatalCrash"):(0,i18n_1.t)("crash.logUnhandledError")}] ${p}`,stack:d,timestamp:Date.now(),logId:y?.id,crashRecord:x,shouldShowModal:g});try{(0,NativeInspector_1.showNativeFloatingButton)(),(0,NativeInspector_1.setNativeFloatingButtonBadge)(!0)}catch{}return x}catch{return{id:`crash_${Date.now()}`,isFatal:!0,type:enums_1.CrashType.Js,message:String(e||(0,i18n_1.t)("crash.unknownException")),timestamp:Date.now(),dateStr:new Date().toLocaleDateString(),timeStr:new Date().toLocaleTimeString()}}};exports.handleInterceptedCrash=handleInterceptedCrash;const recordCustomCrash=(e,r)=>(0,exports.handleInterceptedCrash)(e,typeof e=="object"?e.stack:void 0,r?.isFatal??!1,r?.type||enums_1.CrashType.Custom,r?.componentStack);exports.recordCustomCrash=recordCustomCrash;const triggerGlobalCrashScreen=e=>{(0,exports.emitCrashEvent)({error:e.error||new Error(e.message),isFatal:!0,message:e.message,stack:e.stack,timestamp:e.timestamp||Date.now(),logId:e.logId,crashRecord:e})};exports.triggerGlobalCrashScreen=triggerGlobalCrashScreen;const simulateTestCrash=(e=enums_1.CrashType.Js,r,o,s=!0)=>{const t=new Error(r||_defaultSimMessage(e));return(0,exports.handleInterceptedCrash)(e===enums_1.CrashType.Native?t.message:t,o||t.stack,s,e,e===enums_1.CrashType.Render?_buildComponentStack():void 0)};exports.simulateTestCrash=simulateTestCrash;const _defaultSimMessage=e=>{switch(e){case"native":return(0,i18n_1.t)("crash.simNativeMessage");case"promise":return(0,i18n_1.t)("crash.simPromiseMessage");case"render":return(0,i18n_1.t)("crash.simRenderMessage");default:return(0,i18n_1.t)("crash.simJsMessage")}},_buildComponentStack=()=>{try{const e=new Error;if(e.stack)return e.stack.split(`
|
|
4
4
|
`).slice(1,6).map(r=>` ${r.trim()}`).join(`
|
|
5
|
-
`)}catch{}},exportCrashReport=(e,r="text")=>{if(r==="json")return JSON.stringify(e,null,2);const o=Math.round((e.timestamp-appStartTime)/1e3);if(r==="markdown"){const t=[];return t.push(`## ${(0,i18n_1.t)("crash.mdReportTitle",{name:e.name||"Error"})}`),t.push(`> **${e.message}**`),t.push(""),t.push(`- **${(0,i18n_1.t)("crash.reportType")}** \`${e.type.toUpperCase()}\``),t.push(`- **${(0,i18n_1.t)("crash.reportFatal")}** \`${e.isFatal?(0,i18n_1.t)("crash.mdSeverityFatal"):(0,i18n_1.t)("crash.mdSeverityHandled")}\``),t.push(`- **${(0,i18n_1.t)("crash.reportTimestamp")}** ${e.dateStr} ${e.timeStr}`),t.push(`- **${(0,i18n_1.t)("crash.reportUptime")}** ${o}s`),t.push(`- **${(0,i18n_1.t)("crash.reportPlatform")}** ${e.deviceInfo?.platform?.toUpperCase()} (v${e.deviceInfo?.osVersion})`),t.push(`- **${(0,i18n_1.t)("crash.reportReactNative")}** v${e.deviceInfo?.rnVersion||"N/A"}`),t.push(`- **${(0,i18n_1.t)("crash.jsEngine")}** ${e.deviceInfo?.isHermes?(0,i18n_1.t)("crash.hermesEngine"):(0,i18n_1.t)("crash.jsc")}`),t.push(`- **${(0,i18n_1.t)("crash.reportArchitecture")}** ${e.deviceInfo?.isFabric?(0,i18n_1.t)("crash.reportFabricNew"):(0,i18n_1.t)("crash.reportPaperLegacy")}`),e.memoryInfo&&t.push(`- **${(0,i18n_1.t)("crash.reportJsMemory")}** ${e.memoryInfo.usedJSHeapSize} MB / ${e.memoryInfo.totalJSHeapSize} MB`),t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdStackTrace")}`),t.push("```"),t.push(e.stack||(0,i18n_1.t)("crash.reportNoStackTrace")),t.push("```"),e.componentStack&&(t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdComponentHierarchy")}`),t.push("```"),t.push(e.componentStack),t.push("```")),e.breadcrumbs&&e.breadcrumbs.length>0&&(t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdRecentBreadcrumbs")}`),e.breadcrumbs.forEach(a=>{const
|
|
5
|
+
`)}catch{}},exportCrashReport=(e,r="text")=>{if(r==="json")return JSON.stringify(e,null,2);const o=Math.round((e.timestamp-appStartTime)/1e3);if(r==="markdown"){const t=[];return t.push(`## ${(0,i18n_1.t)("crash.mdReportTitle",{name:e.name||"Error"})}`),t.push(`> **${e.message}**`),t.push(""),t.push(`- **${(0,i18n_1.t)("crash.reportType")}** \`${e.type.toUpperCase()}\``),t.push(`- **${(0,i18n_1.t)("crash.reportFatal")}** \`${e.isFatal?(0,i18n_1.t)("crash.mdSeverityFatal"):(0,i18n_1.t)("crash.mdSeverityHandled")}\``),t.push(`- **${(0,i18n_1.t)("crash.reportTimestamp")}** ${e.dateStr} ${e.timeStr}`),t.push(`- **${(0,i18n_1.t)("crash.reportUptime")}** ${o}s`),t.push(`- **${(0,i18n_1.t)("crash.reportPlatform")}** ${e.deviceInfo?.platform?.toUpperCase()} (v${e.deviceInfo?.osVersion})`),t.push(`- **${(0,i18n_1.t)("crash.reportReactNative")}** v${e.deviceInfo?.rnVersion||"N/A"}`),t.push(`- **${(0,i18n_1.t)("crash.jsEngine")}** ${e.deviceInfo?.isHermes?(0,i18n_1.t)("crash.hermesEngine"):(0,i18n_1.t)("crash.jsc")}`),t.push(`- **${(0,i18n_1.t)("crash.reportArchitecture")}** ${e.deviceInfo?.isFabric?(0,i18n_1.t)("crash.reportFabricNew"):(0,i18n_1.t)("crash.reportPaperLegacy")}`),e.memoryInfo&&t.push(`- **${(0,i18n_1.t)("crash.reportJsMemory")}** ${e.memoryInfo.usedJSHeapSize} MB / ${e.memoryInfo.totalJSHeapSize} MB`),t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdStackTrace")}`),t.push("```"),t.push(e.stack||(0,i18n_1.t)("crash.reportNoStackTrace")),t.push("```"),e.componentStack&&(t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdComponentHierarchy")}`),t.push("```"),t.push(e.componentStack),t.push("```")),e.breadcrumbs&&e.breadcrumbs.length>0&&(t.push(""),t.push(`### ${(0,i18n_1.t)("crash.mdRecentBreadcrumbs")}`),e.breadcrumbs.forEach(a=>{const p=new Date(a.timestamp).toLocaleTimeString();t.push(`- \`[${p}]\` **[${a.type.toUpperCase()}]** ${a.message}`)})),t.join(`
|
|
6
6
|
`)}const s=[];return s.push("===================================================="),s.push(` ${(0,i18n_1.t)("crash.reportTitle")} `),s.push("===================================================="),s.push(`${(0,i18n_1.t)("crash.reportErrorName")} ${e.name||"Error"}`),s.push(`${(0,i18n_1.t)("crash.reportMessage")} ${e.message}`),s.push(`${(0,i18n_1.t)("crash.reportType")} ${e.type.toUpperCase()}`),s.push(`${(0,i18n_1.t)("crash.reportFatal")} ${e.isFatal?(0,i18n_1.t)("crash.reportFatalYes"):(0,i18n_1.t)("crash.reportFatalNo")}`),s.push(`${(0,i18n_1.t)("crash.reportTimestamp")} ${e.dateStr} ${e.timeStr} (${e.timestamp})`),s.push(`${(0,i18n_1.t)("crash.reportUptime")} ${(0,i18n_1.t)("crash.reportUptimeValue",{seconds:o})}`),s.push(`${(0,i18n_1.t)("crash.reportPlatform")} ${e.deviceInfo?.platform?.toUpperCase()} (v${e.deviceInfo?.osVersion})`),s.push(`${(0,i18n_1.t)("crash.reportReactNative")} ${e.deviceInfo?.rnVersion||"N/A"}`),s.push(`${(0,i18n_1.t)("crash.reportHermes")} ${e.deviceInfo?.isHermes?(0,i18n_1.t)("crash.reportEnabled"):(0,i18n_1.t)("crash.reportDisabled")}`),s.push(`${(0,i18n_1.t)("crash.reportArchitecture")} ${e.deviceInfo?.isFabric?(0,i18n_1.t)("crash.reportFabricNew"):(0,i18n_1.t)("crash.reportPaperLegacy")}`),s.push(`${(0,i18n_1.t)("crash.reportScreenSize")} ${getScreenDimensions()}`),s.push(`${(0,i18n_1.t)("crash.reportAppState")} ${e.deviceInfo?.appState||"active"}`),e.memoryInfo&&s.push(`${(0,i18n_1.t)("crash.reportJsMemory")} ${e.memoryInfo.usedJSHeapSize} MB / ${e.memoryInfo.totalJSHeapSize} MB`),s.push("----------------------------------------------------"),s.push(`${(0,i18n_1.t)("crash.reportStackTrace")}`),s.push(e.stack||(0,i18n_1.t)("crash.reportNoStackTrace")),e.componentStack&&(s.push("----------------------------------------------------"),s.push(`${(0,i18n_1.t)("crash.reportComponentHierarchy")}`),s.push(e.componentStack)),e.breadcrumbs&&e.breadcrumbs.length>0&&(s.push("----------------------------------------------------"),s.push(`${(0,i18n_1.t)("crash.reportRecentBreadcrumbs")}`),e.breadcrumbs.forEach(t=>{const a=new Date(t.timestamp).toLocaleTimeString();s.push(` [${a}] [${t.type.toUpperCase()}] ${t.message}`)})),s.push("===================================================="),s.join(`
|
|
7
7
|
`)};exports.exportCrashReport=exportCrashReport;const setupGlobalCrashHandler=()=>{if(!isCrashHandlerInitialized){isCrashHandlerInitialized=!0;try{react_native_1.LogBox&&typeof react_native_1.LogBox.ignoreAllLogs=="function"&&react_native_1.LogBox.ignoreAllLogs(!0)}catch{}try{const e=require("react-native/Libraries/LogBox/Data/LogBoxData");e&&typeof e.setDisabled=="function"&&e.setDisabled(!0)}catch{}try{const e=react_native_1.NativeModules?.NetworkInspectorModule;e&&(typeof e.enableNativeCrashProtection=="function"&&e.enableNativeCrashProtection(),new react_native_1.NativeEventEmitter(e).addListener("onNativeCrash",o=>{const t=`[${(o?.platform||react_native_1.Platform.OS).toUpperCase()} ${(0,i18n_1.t)("crash.nativeCrashTitle")}] ${o?.message||(0,i18n_1.t)("crash.nativeUncaughtException")}`,a=o?.stack||"";(0,exports.handleInterceptedCrash)(t,a,!0,"native")}))}catch{}try{const e=react_native_1.TurboModuleRegistry||globalThis.__turboModuleProxy,r=react_native_1.NativeModules?.ExceptionsManager||(e?.get?e.get("ExceptionsManager"):null);if(r){r.reportFatalException=(s,t,a)=>{(0,exports.handleInterceptedCrash)(s,t,!0,"native");try{typeof r.dismissRedbox=="function"&&r.dismissRedbox()}catch{}},r.reportSoftException=(s,t,a)=>{(0,exports.handleInterceptedCrash)(s,t,!1,"js");try{typeof r.dismissRedbox=="function"&&r.dismissRedbox()}catch{}},r.reportException=s=>{const t=s?.message||s?.title||(0,i18n_1.t)("crash.nativeException"),a=s?.stack||s?.rawStack;(0,exports.handleInterceptedCrash)(t,a,s?.isFatal??!0,"js");try{typeof r.dismissRedbox=="function"&&r.dismissRedbox()}catch{}},r.updateExceptionMessage=()=>{};try{typeof r.dismissRedbox=="function"&&r.dismissRedbox()}catch{}}const o=react_native_1.NativeModules?.RedBox||react_native_1.NativeModules?.RCTRedBox||(e?.get?e.get("RedBox")||e.get("RCTRedBox"):null);o&&(typeof o.showErrorMessage=="function"&&(o.showErrorMessage=()=>{}),typeof o.showUserError=="function"&&(o.showUserError=()=>{}),typeof o.dismiss=="function"&&o.dismiss())}catch{}try{const r=globalThis.ErrorUtils;r&&(typeof r.setGlobalHandler=="function"&&r.setGlobalHandler((o,s)=>{(0,exports.handleInterceptedCrash)(o,o?.stack,s??!1,"js")}),typeof r.reportFatalError=="function"&&(r.reportFatalError=o=>{(0,exports.handleInterceptedCrash)(o,o?.stack,!0,"js")}),typeof r.reportError=="function"&&(r.reportError=o=>{(0,exports.handleInterceptedCrash)(o,o?.stack,!1,"js")}))}catch{}try{const e=globalThis,r=o=>{try{const s=o?.reason||o?.detail?.reason||o,t=s?.stack||(o?.stack??new Error().stack);(0,exports.handleInterceptedCrash)(s,t,!1,"promise")}catch{}};typeof e.addEventListener=="function"&&e.addEventListener("unhandledrejection",r),typeof e.onunhandledrejection<"u"&&(e.onunhandledrejection=r)}catch{}}};exports.setupGlobalCrashHandler=setupGlobalCrashHandler;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { ActiveTab } from '../types';
|
|
2
|
+
export interface InspectorRemoteConfigResult {
|
|
3
|
+
modules?: Partial<Record<ActiveTab, boolean>>;
|
|
4
|
+
sponsorPublisherId?: string;
|
|
5
|
+
sponsorEndpoint?: string;
|
|
6
|
+
captureWidgetEnabled?: boolean;
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
}
|
|
2
9
|
export declare function getFirebaseRemoteConfig(customInstance?: any): any;
|
|
3
10
|
export declare function isFirebaseRemoteConfigAvailable(customInstance?: any): boolean;
|
|
11
|
+
export declare function fetchRemoteConfigSettings(customInstance?: any, fetchTimeoutMs?: number): Promise<InspectorRemoteConfigResult | null>;
|
|
4
12
|
export declare function fetchRemoteConfigModuleStatus(customInstance?: any, fetchTimeoutMs?: number): Promise<Partial<Record<ActiveTab, boolean>> | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFirebaseRemoteConfig=getFirebaseRemoteConfig,exports.isFirebaseRemoteConfigAvailable=isFirebaseRemoteConfigAvailable,exports.fetchRemoteConfigModuleStatus=fetchRemoteConfigModuleStatus;const MODULE_KEYS=["apis","logs","analytics","redux","storage","device","crash","debugging"];let cachedRemoteConfigInstance=null;function getFirebaseRemoteConfig(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getFirebaseRemoteConfig=getFirebaseRemoteConfig,exports.isFirebaseRemoteConfigAvailable=isFirebaseRemoteConfigAvailable,exports.fetchRemoteConfigSettings=fetchRemoteConfigSettings,exports.fetchRemoteConfigModuleStatus=fetchRemoteConfigModuleStatus;const MODULE_KEYS=["apis","logs","analytics","redux","storage","device","crash","debugging","media","socket"];let cachedRemoteConfigInstance=null;function getFirebaseRemoteConfig(e){if(e&&typeof e=="object")return cachedRemoteConfigInstance=e,e;if(cachedRemoteConfigInstance)return cachedRemoteConfigInstance;try{const t=require("@react-native-firebase/remote-config"),n=typeof t.default=="function"?t.default():typeof t=="function"?t():t;return cachedRemoteConfigInstance=n,n}catch{return null}}function isFirebaseRemoteConfigAvailable(e){return!!getFirebaseRemoteConfig(e)}function extractValue(e){if(e!=null){if(typeof e=="boolean")return e;if(typeof e=="number")return e!==0;if(typeof e=="string"){const t=e.trim().toLowerCase();if(t==="true"||t==="1"||t==="enabled"||t==="on")return!0;if(t==="false"||t==="0"||t==="disabled"||t==="off")return!1;try{return JSON.parse(e)}catch{return}}if(typeof e.asBoolean=="function")return e.asBoolean();if(typeof e.asString=="function"){const t=e.asString(),n=t.trim().toLowerCase();if(n==="true"||n==="1"||n==="enabled"||n==="on")return!0;if(n==="false"||n==="0"||n==="disabled"||n==="off")return!1;try{return JSON.parse(t)}catch{return}}}}function extractStringValue(e){if(e!=null){if(typeof e=="string"&&e.trim().length>0)return e.trim();if(typeof e.asString=="function"){const t=e.asString();if(typeof t=="string"&&t.trim().length>0)return t.trim()}}}async function fetchRemoteConfigSettings(e,t=8e3){const n=getFirebaseRemoteConfig(e);if(!n)return null;try{const p=(async()=>{typeof n.fetchAndActivate=="function"?await n.fetchAndActivate():(typeof n.fetch=="function"&&await n.fetch(),typeof n.activate=="function"&&await n.activate())})(),d=new Promise((o,r)=>setTimeout(()=>r(new Error("Remote Config fetch timeout")),t));await Promise.race([p,d]).catch(()=>{});const s=o=>{if(typeof n.getValue=="function")try{return n.getValue(o)}catch{return}return n[o]},i={},f={},l=["inspector_modules","inapp_inspector_modules","react_native_inapp_inspector_modules"];for(const o of l){const r=s(o),c=extractValue(r);if(c&&typeof c=="object")for(const a of MODULE_KEYS)typeof c[a]=="boolean"&&(f[a]=c[a])}for(const o of MODULE_KEYS){const r=[`inspector_module_${o}`,`inapp_inspector_${o}`,`inspector_${o}`,`inapp_inspector_module_${o}`,`rn_inspector_${o}`];for(const c of r){const a=s(c),u=extractValue(a);if(typeof u=="boolean"){f[o]=u;break}}}Object.keys(f).length>0&&(f.apis===void 0&&(f.apis=!0),i.modules=f);const _=["inspector_sponsor_publisher_id","inapp_inspector_sponsor_publisher_id","inspector_publisher_id","ethicalads_publisher_id"];for(const o of _){const r=extractStringValue(s(o));if(r){i.sponsorPublisherId=r;break}}const y=["inspector_sponsor_endpoint","inapp_inspector_sponsor_endpoint","inspector_custom_sponsor_endpoint"];for(const o of y){const r=extractStringValue(s(o));if(r){i.sponsorEndpoint=r;break}}const b=["inspector_capture_widget_enabled","inapp_inspector_capture_widget","inspector_floating_capture_enabled"];for(const o of b){const r=extractValue(s(o));if(typeof r=="boolean"){i.captureWidgetEnabled=r;break}}const g=["inspector_enabled","inapp_inspector_enabled"];for(const o of g){const r=extractValue(s(o));if(typeof r=="boolean"){i.enabled=r;break}}return Object.keys(i).length>0?i:null}catch{return null}}async function fetchRemoteConfigModuleStatus(e,t=8e3){return(await fetchRemoteConfigSettings(e,t))?.modules||null}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DeveloperSponsorAd {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description: string;
|
|
5
|
+
ctaText: string;
|
|
6
|
+
ctaUrl: string;
|
|
7
|
+
badgeText?: string;
|
|
8
|
+
sponsorName?: string;
|
|
9
|
+
logoUrl?: string;
|
|
10
|
+
accentColor?: string;
|
|
11
|
+
impressionUrl?: string;
|
|
12
|
+
clickUrl?: string;
|
|
13
|
+
type?: 'ethicalads' | 'affiliate' | 'custom';
|
|
14
|
+
}
|
|
15
|
+
export declare const DEFAULT_ETHICALADS_PUBLISHER_ID = "";
|
|
16
|
+
export declare function setSponsorPublisherId(publisherId: string): void;
|
|
17
|
+
export declare function setCustomSponsorEndpoint(endpointUrl: string): void;
|
|
18
|
+
export declare function fetchDeveloperSponsor(publisherId?: string, customEndpoint?: string): Promise<DeveloperSponsorAd>;
|
|
19
|
+
export declare function trackSponsorImpression(ad: DeveloperSponsorAd): void;
|
|
20
|
+
export declare function handleSponsorClick(ad: DeveloperSponsorAd): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_ETHICALADS_PUBLISHER_ID=void 0,exports.setSponsorPublisherId=setSponsorPublisherId,exports.setCustomSponsorEndpoint=setCustomSponsorEndpoint,exports.fetchDeveloperSponsor=fetchDeveloperSponsor,exports.trackSponsorImpression=trackSponsorImpression,exports.handleSponsorClick=handleSponsorClick;const react_native_1=require("react-native");exports.DEFAULT_ETHICALADS_PUBLISHER_ID="";let _customPublisherId=null,_customEndpoint=null;function setSponsorPublisherId(o){_customPublisherId=o}function setCustomSponsorEndpoint(o){_customEndpoint=o}const FALLBACK_SPONSORS=[{id:"sentry-dev-partner",sponsorName:"Sentry",badgeText:"FEATURED PARTNER",title:"Code breaks. Fix it faster with Sentry.",description:"Real-time crash tracking, performance monitoring, and session replay for React Native.",ctaText:"Try Sentry Free",ctaUrl:"https://sentry.io/welcome/?utm_source=react-native-inapp-inspector&utm_medium=partner&utm_campaign=dev-tools",accentColor:"#6C5FC7",type:"affiliate"},{id:"requestly-api-mock",sponsorName:"Requestly",badgeText:"DEV SPOTLIGHT",title:"Intercept & Mock APIs directly in Mobile Apps",description:"Modify HTTP headers, redirect API endpoints, and simulate 500 errors on iOS & Android.",ctaText:"Explore Requestly",ctaUrl:"https://requestly.com/?utm_source=react-native-inapp-inspector&utm_medium=devtools&utm_campaign=mobile-inspect",accentColor:"#2563EB",type:"affiliate"},{id:"supabase-cloud-db",sponsorName:"Supabase",badgeText:"DEVELOPER CLOUD",title:"The Open Source Firebase Alternative",description:"Postgres database, Authentication, Instant APIs, Realtime subscriptions, and Edge Functions.",ctaText:"Start Free Project",ctaUrl:"https://supabase.com/?utm_source=react-native-inapp-inspector&utm_medium=partner&utm_campaign=rn-inspect",accentColor:"#3ECF8E",type:"affiliate"},{id:"digitalocean-cloud",sponsorName:"DigitalOcean",badgeText:"$200 FREE CREDIT",title:"Deploy React Native Backend & Nodes in Seconds",description:"Simple, scalable cloud hosting with managed databases, App Platform, and 99.99% uptime.",ctaText:"Claim $200 Credit",ctaUrl:"https://m.do.co/c/react-native-inapp-inspector",accentColor:"#0080FF",type:"affiliate"}];let _lastFetchedAd=null,_hasTrackedImpression=!1;async function fetchDeveloperSponsor(o,s){const i=o||_customPublisherId||exports.DEFAULT_ETHICALADS_PUBLISHER_ID,a=s||_customEndpoint;if(a)try{const r=await fetch(a,{headers:{Accept:"application/json"}});if(r.ok){const e=await r.json();if(e&&e.title&&e.ctaUrl)return _lastFetchedAd={id:e.id||"custom-sponsor",title:e.title,description:e.description||"",ctaText:e.ctaText||"Learn More",ctaUrl:e.ctaUrl,badgeText:e.badgeText||"SPONSORED",sponsorName:e.sponsorName||"Featured Partner",logoUrl:e.logoUrl,accentColor:e.accentColor||"#6366F1",impressionUrl:e.impressionUrl,clickUrl:e.clickUrl,type:"custom"},_hasTrackedImpression=!1,_lastFetchedAd}}catch{}if(i)try{const r=encodeURIComponent("react-native|mobile|javascript|typescript|ios|android|developer-tools|cloud"),e=`https://server.ethicalads.io/api/v1/decision/?publisher=${encodeURIComponent(i)}&ad_types=image-and-text&format=json&keywords=${r}&placements=app-inspector`,n=await fetch(e,{headers:{Accept:"application/json"}});if(n.ok){const t=await n.json();if(t&&(t.text||t.heading)&&(t.link||t.click_url))return _lastFetchedAd={id:`ethicalads-${t.id||Date.now()}`,title:t.heading||t.company||"Developer Spotlight",description:t.text||"",ctaText:"Learn More",ctaUrl:t.link||t.click_url,badgeText:"ETHICAL ADS",sponsorName:t.company||"Sponsored Tool",logoUrl:t.image,accentColor:"#10B981",impressionUrl:t.view_url,clickUrl:t.click_url,type:"ethicalads"},_hasTrackedImpression=!1,_lastFetchedAd}}catch{}const c=Math.floor(Math.random()*FALLBACK_SPONSORS.length);return _lastFetchedAd=FALLBACK_SPONSORS[c],_hasTrackedImpression=!1,_lastFetchedAd}function trackSponsorImpression(o){_hasTrackedImpression||(_hasTrackedImpression=!0,o.impressionUrl&&fetch(o.impressionUrl,{method:"GET"}).catch(()=>{}))}function handleSponsorClick(o){o.clickUrl&&fetch(o.clickUrl,{method:"GET"}).catch(()=>{}),o.ctaUrl&&react_native_1.Linking.openURL(o.ctaUrl).catch(()=>{})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var __importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setTelemetryEnabled=setTelemetryEnabled,exports.markSearchFilterUsed=markSearchFilterUsed,exports.trackActiveTelemetryHeartbeat=trackActiveTelemetryHeartbeat,exports.trackTelemetryEvent=trackTelemetryEvent,exports.trackInspectorTabView=trackInspectorTabView,exports.trackInspectorScreenView=trackInspectorScreenView,exports.trackInspectorScreenRecord=trackInspectorScreenRecord;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),version_1=require("../constants/version"),settingsStore_1=require("./settingsStore"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),networkLogger_1=require("../customHooks/networkLogger"),NativeInspector_1=require("../native/NativeInspector"),index_1=require("./index"),telemetryConfig_1=require("../constants/telemetryConfig"),PKG_NAME="react-native-inapp-inspector",KEY_MATERIAL=`${PKG_NAME}::${telemetryConfig_1.TELEMETRY_SALT}`;function getKeystream(t,o){const i=[];let r=1518500249;for(let a=0;a<o;a++){const e=t.charCodeAt(a%t.length);r=(r*31+e*17+a*13^r>>>7)&4294967295,i.push(r>>>a%24&255)}return i}function deobfuscate(t){if(!t)return"";const o=[];for(let a=0;a<t.length;a+=2)o.push(parseInt(t.substring(a,a+2),16));const i=getKeystream(KEY_MATERIAL,o.length),r=[];for(let a=0;a<o.length;a++){const e=i[a],l=telemetryConfig_1.TELEMETRY_SALT.charCodeAt(a%telemetryConfig_1.TELEMETRY_SALT.length),c=(o[a]^e^l)&255;r.push(String.fromCharCode(c))}return r.join("")}let _cachedMid=null,_cachedSec=null;function getCredentials(){if(_cachedMid!==null&&_cachedSec!==null)return{measurementId:_cachedMid,apiSecret:_cachedSec};if(!telemetryConfig_1.ENC_MID||!telemetryConfig_1.ENC_SEC||!telemetryConfig_1.TELEMETRY_SALT)return _cachedMid="",_cachedSec="",{measurementId:"",apiSecret:""};try{_cachedMid=deobfuscate(telemetryConfig_1.ENC_MID),_cachedSec=deobfuscate(telemetryConfig_1.ENC_SEC)}catch{_cachedMid="",_cachedSec=""}return{measurementId:_cachedMid,apiSecret:_cachedSec}}function getCollectUrl(){const{measurementId:t,apiSecret:o}=getCredentials();return!t||!o?"":`https://www.google-analytics.com/mp/collect?measurement_id=${t}&api_secret=${o}`}const PING_INTERVAL_MS=1440*60*1e3;let isTelemetryEnabled=!0,_hasSearchFilterBeenUsed=!1;function setTelemetryEnabled(t){isTelemetryEnabled=t}function markSearchFilterUsed(){_hasSearchFilterBeenUsed=!0}async function getOrCreateClientId(){try{const t=await(0,settingsStore_1.loadSettings)();if(t.telemetryClientId||t.telemetryDeviceId){const e=t.telemetryClientId||t.telemetryDeviceId||"";return t.telemetryDeviceId||await(0,settingsStore_1.saveSettings)({...t,telemetryDeviceId:e}),e}const o=Math.floor(1e8+Math.random()*9e8),i=Math.floor(1e9+Math.random()*9e9),r=`${o}.${i}`,a=Date.now();return await(0,settingsStore_1.saveSettings)({...t,telemetryClientId:r,telemetryDeviceId:r,deviceFirstSeen:t.deviceFirstSeen||a}),r}catch{return`${Math.floor(1e8+Math.random()*9e8)}.${Math.floor(1e9+Math.random()*9e9)}`}}function isDeviceEmulator(){try{if(react_native_1.Platform.OS==="android"){const t=react_native_1.Platform.constants||{},o=String(t.Model||"").toLowerCase(),i=String(t.Brand||"").toLowerCase(),r=String(t.Fingerprint||"").toLowerCase(),a=String(t.Hardware||"").toLowerCase(),e=String(t.Manufacturer||"").toLowerCase();return o.includes("emulator")||o.includes("sdk")||o.includes("google_sdk")||o.includes("vbox")||i.includes("generic")||r.startsWith("generic")||a.includes("goldfish")||a.includes("ranchu")||e.includes("genymotion")}if(react_native_1.Platform.OS==="ios"){const t=react_native_1.Platform.constants||{};return String(t.Model||"").toLowerCase().includes("simulator")||!!t.isSimulator}}catch{return!1}return!1}function getDeviceLocaleInfo(){try{const t=typeof Intl<"u"&&Intl.DateTimeFormat?Intl.DateTimeFormat().resolvedOptions():{},o=t.timeZone||"unknown",i=t.locale||"unknown";let r="unknown";if(i&&i!=="unknown"){const a=i.split(/[-_]/);a.length>1&&(r=a[a.length-1].toUpperCase())}return{countryCode:r,locale:i,timeZone:o}}catch{return{countryCode:"unknown",locale:"unknown",timeZone:"unknown"}}}function getSystemMetadata(t,o){const i=react_native_1.Platform.constants,r=i?.reactNativeVersion?`${i.reactNativeVersion.major}.${i.reactNativeVersion.minor}.${i.reactNativeVersion.patch}`:"unknown",a=typeof global.HermesInternal=="object"&&global.HermesInternal!==null,e=global?.nativeFabricUIManager!==void 0,l=!!(global?._rn_bridgeless||global?.RN$Bridgeless),c=!!(typeof __DEV__<"u"&&__DEV__),n=isDeviceEmulator(),{countryCode:_,locale:d,timeZone:L}=getDeviceLocaleInfo();let m="unknown",p=1,f=1,g="phone",h="portrait";try{const s=react_native_1.Dimensions.get("window");m=`${Math.round(s.width)}x${Math.round(s.height)}`,p=react_native_1.PixelRatio.get(),f=react_native_1.PixelRatio.getFontScale(),h=s.width>s.height?"landscape":"portrait",g=react_native_1.Platform.OS==="ios"&&!!react_native_1.Platform.isPad||Math.min(s.width,s.height)>=600?"tablet":"phone"}catch{}let b="unknown";try{b=react_native_1.Appearance?.getColorScheme?.()||"unknown"}catch{}const N=!!(globalThis?.expo||globalThis?.__expo||globalThis?.__turboModuleProxy?.name==="Expo"||react_native_1.Platform.constants?.ExpoVersion);let u="non_hermes",v="jsc";if(a){v="hermes";try{const s=global.HermesInternal?.getRuntimeProperties?.()||{};u=s["OSS Release Version"]||(s["Bytecode Version"]?`bc_v${s["Bytecode Version"]}`:"hermes")}catch{u="hermes"}}else globalThis?._v8&&(v="v8");let y=!1;try{y=(0,reduxLogger_1.isReduxConnected)()}catch{}let S=!1;try{S=(0,analyticsLogger_1.isFirebaseAnalyticsPatched)()}catch{}const k=(0,NativeInspector_1.isNativeModuleAvailable)(),P=!!(react_native_1.NativeModules?.RNMMKV||globalThis?.MMKV);let w=0;try{w=(0,crashHandler_1.getCrashRecords)().length}catch{}let I="0";try{const s=(0,networkLogger_1.getNetworkLogs)().length;I=s===0?"0":s<=10?"1-10":s<=50?"11-50":s<=100?"51-100":"100+"}catch{}let M=!1;try{M=(0,index_1.isLocalDebugEnvironment)()}catch{}const D=o?.defaultTab||"apis",V=k&&o?.useNativeFab!==!1?"native_ui_thread":"js_floating_button",A=String(i?.Brand||(react_native_1.Platform.OS==="ios"?"Apple":"unknown")),B=String(i?.Model||i?.systemName||(react_native_1.Platform.OS==="ios"?"iPhone/iPad":"unknown")),R=String(i?.Manufacturer||(react_native_1.Platform.OS==="ios"?"Apple":"unknown"));let C="App",E="unknown",T="unknown",x="unknown";try{C=(0,index_1.getAppName)()||"App",E=(0,index_1.getBundleIdentifier)()||"unknown";const s=(0,index_1.getAppVersionAndBuild)();T=s.version||"unknown",x=s.build||"unknown"}catch{}const O=typeof react_1.default<"u"&&react_1.default.version?react_1.default.version:"unknown";return{pkg_name:PKG_NAME,pkg_version:version_1.LIB_VERSION,lib_version:version_1.LIB_VERSION,install_type:c?"local_dev":"bundled_production",app_name:C,bundle_id:E,app_version:T,app_build:x,react_version:O,platform:react_native_1.Platform.OS,os_version:String(react_native_1.Platform.Version||"unknown"),rn_version:r,country_code:_,device_locale:d,time_zone:L,device_brand:A,device_model:B,device_manufacturer:R,device_form_factor:g,screen_resolution:m,screen_density:p,screen_orientation:h,font_scale:f,appearance_mode:b,is_expo:N,js_engine:v,hermes_version:u,is_hermes:a,is_fabric:e,is_bridgeless:l,has_native_module:k,has_mmkv:P,fab_mode:V,default_landing_tab:D,captured_crashes_count:w,captured_apis_bracket:I,search_filter_used:_hasSearchFilterBeenUsed,is_metro_connected:M,is_dev:c,is_emulator:n,device_type:n?"emulator":"real_device",app_mode:c?"local_mode":"bundled_application",redux_attached:y,analytics_attached:S,environment:t||(c?"DEV":"PROD"),engagement_time_msec:1e3}}async function trackActiveTelemetryHeartbeat(t=!0,o){if(t===!1){isTelemetryEnabled=!1;return}if(isTelemetryEnabled=!0,process.env.NODE_ENV==="test"||typeof globalThis.jest<"u")return;const i=getCollectUrl();if(i)try{const r=await(0,settingsStore_1.loadSettings)(),a=r.telemetryLastPing||0,e=Date.now(),l=!r.deviceRegistered;if(!l&&e-a<PING_INTERVAL_MS)return;const c=await getOrCreateClientId(),n=getSystemMetadata(o,r),_={...n,device_id:c,is_new_device:l,device_first_seen:r.deviceFirstSeen||e},d=l?[{name:"active_device",params:_},{name:"first_device_install",params:_},{name:"inspector_active_heartbeat",params:_}]:[{name:"active_device",params:_},{name:"inspector_active_heartbeat",params:_}];await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:c,user_id:c,non_personalized_ads:!0,user_properties:{device_id:{value:c},pkg_name:{value:n.pkg_name},pkg_version:{value:n.pkg_version},install_type:{value:n.install_type},app_name:{value:n.app_name},bundle_id:{value:n.bundle_id},app_version:{value:n.app_version},react_version:{value:n.react_version},country:{value:n.country_code},country_code:{value:n.country_code},locale:{value:n.device_locale},time_zone:{value:n.time_zone},device_brand:{value:n.device_brand},device_model:{value:n.device_model},device_form_factor:{value:n.device_form_factor},screen_resolution:{value:n.screen_resolution},appearance_mode:{value:n.appearance_mode},is_expo:{value:String(n.is_expo)},js_engine:{value:n.js_engine},is_fabric:{value:String(n.is_fabric)},is_bridgeless:{value:String(n.is_bridgeless)},has_native_module:{value:String(n.has_native_module)},has_mmkv:{value:String(n.has_mmkv)},fab_mode:{value:n.fab_mode},default_landing_tab:{value:n.default_landing_tab},captured_crashes_count:{value:String(n.captured_crashes_count)},captured_apis_bracket:{value:n.captured_apis_bracket},search_filter_used:{value:String(n.search_filter_used)},is_metro_connected:{value:String(n.is_metro_connected)},redux_attached:{value:String(n.redux_attached)},analytics_attached:{value:String(n.analytics_attached)},platform:{value:n.platform},rn_version:{value:n.rn_version},lib_version:{value:n.lib_version}},events:d})}),await(0,settingsStore_1.saveSettings)({...r,telemetryClientId:c,telemetryDeviceId:c,deviceRegistered:!0,deviceFirstSeen:r.deviceFirstSeen||e,telemetryLastPing:e,telemetryLastActive:e})}catch{}}async function trackTelemetryEvent(t,o){if(!isTelemetryEnabled)return;const i=getCollectUrl();if(i)try{const r=await getOrCreateClientId(),a=await(0,settingsStore_1.loadSettings)().catch(()=>({})),e=getSystemMetadata(void 0,a),l={...e,device_id:r,...o,engagement_time_msec:100};await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:r,user_id:r,non_personalized_ads:!0,user_properties:{device_id:{value:r},pkg_name:{value:e.pkg_name},pkg_version:{value:e.pkg_version},install_type:{value:e.install_type},app_name:{value:e.app_name},bundle_id:{value:e.bundle_id},app_version:{value:e.app_version},react_version:{value:e.react_version},country:{value:e.country_code},country_code:{value:e.country_code},locale:{value:e.device_locale},time_zone:{value:e.time_zone},device_brand:{value:e.device_brand},device_model:{value:e.device_model},device_form_factor:{value:e.device_form_factor},screen_resolution:{value:e.screen_resolution},appearance_mode:{value:e.appearance_mode},is_expo:{value:String(e.is_expo)},js_engine:{value:e.js_engine},is_fabric:{value:String(e.is_fabric)},is_bridgeless:{value:String(e.is_bridgeless)},has_native_module:{value:String(e.has_native_module)},has_mmkv:{value:String(e.has_mmkv)},fab_mode:{value:e.fab_mode},default_landing_tab:{value:e.default_landing_tab},captured_crashes_count:{value:String(e.captured_crashes_count)},captured_apis_bracket:{value:e.captured_apis_bracket},search_filter_used:{value:String(e.search_filter_used)},is_metro_connected:{value:String(e.is_metro_connected)},redux_attached:{value:String(e.redux_attached)},analytics_attached:{value:String(e.analytics_attached)},platform:{value:e.platform},rn_version:{value:e.rn_version},lib_version:{value:e.lib_version}},events:[{name:t,params:l}]})})}catch{}}function trackInspectorTabView(t){trackTelemetryEvent("inspector_tab_view",{tab_name:t,screen_name:`tab_${t}`,screen_class:"NetworkInspector"})}function trackInspectorScreenView(t){trackTelemetryEvent("screen_view",{screen_name:t,screen_class:"NetworkInspector"})}function trackInspectorScreenRecord(t,o="screen"){trackTelemetryEvent("inspector_screen_record",{action:t,recording_type:o})}
|
|
1
|
+
"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.setTelemetryEnabled=setTelemetryEnabled,exports.markSearchFilterUsed=markSearchFilterUsed,exports.trackActiveTelemetryHeartbeat=trackActiveTelemetryHeartbeat,exports.trackTelemetryEvent=trackTelemetryEvent,exports.trackInspectorTabView=trackInspectorTabView,exports.trackInspectorScreenView=trackInspectorScreenView,exports.trackInspectorScreenRecord=trackInspectorScreenRecord;const react_1=__importDefault(require("react")),react_native_1=require("react-native"),version_1=require("../constants/version"),settingsStore_1=require("./settingsStore"),reduxLogger_1=require("../customHooks/reduxLogger"),analyticsLogger_1=require("../customHooks/analyticsLogger"),crashHandler_1=require("../customHooks/crashHandler"),networkLogger_1=require("../customHooks/networkLogger"),NativeInspector_1=require("../native/NativeInspector"),index_1=require("./index"),telemetryConfig_1=require("../constants/telemetryConfig"),PKG_NAME="react-native-inapp-inspector",KEY_MATERIAL=`${PKG_NAME}::${telemetryConfig_1.TELEMETRY_SALT}`;function getKeystream(e,n){const i=[];let o=1518500249;for(let r=0;r<n;r++){const t=e.charCodeAt(r%e.length);o=(o*31+t*17+r*13^o>>>7)&4294967295,i.push(o>>>r%24&255)}return i}function deobfuscate(e){if(!e)return"";const n=[];for(let r=0;r<e.length;r+=2)n.push(parseInt(e.substring(r,r+2),16));const i=getKeystream(KEY_MATERIAL,n.length),o=[];for(let r=0;r<n.length;r++){const t=i[r],l=telemetryConfig_1.TELEMETRY_SALT.charCodeAt(r%telemetryConfig_1.TELEMETRY_SALT.length),c=(n[r]^t^l)&255;o.push(String.fromCharCode(c))}return o.join("")}let _cachedMid=null,_cachedSec=null;function getCredentials(){if(_cachedMid!==null&&_cachedSec!==null)return{measurementId:_cachedMid,apiSecret:_cachedSec};if(!telemetryConfig_1.ENC_MID||!telemetryConfig_1.ENC_SEC||!telemetryConfig_1.TELEMETRY_SALT)return _cachedMid="",_cachedSec="",{measurementId:"",apiSecret:""};try{_cachedMid=deobfuscate(telemetryConfig_1.ENC_MID),_cachedSec=deobfuscate(telemetryConfig_1.ENC_SEC)}catch{_cachedMid="",_cachedSec=""}return{measurementId:_cachedMid,apiSecret:_cachedSec}}function getCollectUrl(){const{measurementId:e,apiSecret:n}=getCredentials();return!e||!n?"":`https://www.google-analytics.com/mp/collect?measurement_id=${e}&api_secret=${n}`}function getPlatformUserAgent(e){try{const n=react_native_1.Platform.OS,i=String(e.os_version||(n==="ios"?"17.0":"13.0")),o=(e.device_locale||"en_US").replace("_","-");if(n==="android"){const r=e.device_model||"Android";return`Mozilla/5.0 (Linux; U; Android ${i}; ${o}; ${r}) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/120.0.0.0 Mobile Safari/537.36 (react-native-inapp-inspector/${version_1.LIB_VERSION})`}else if(n==="ios"){const r=i.replace(/\./g,"_");return`Mozilla/5.0 (${e.device_model||"iPhone"}; CPU iPhone OS ${r} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 (react-native-inapp-inspector/${version_1.LIB_VERSION})`}return`${e.app_name||"App"}/${e.app_version||"1.0"} (${n}; ${i}) react-native-inapp-inspector/${version_1.LIB_VERSION}`}catch{return`react-native-inapp-inspector/${version_1.LIB_VERSION}`}}function getClientCollectUrl(e,n,i){const{measurementId:o}=getCredentials();if(!o)return"";const r=String(Math.floor(Date.now()/1e3));return`https://www.google-analytics.com/g/collect?${new URLSearchParams({v:"2",tid:o,cid:i,en:e,_p:String(Math.floor(1e6+Math.random()*9e6)),ul:(n.device_locale||"en_US").toLowerCase().replace("_","-"),sr:n.screen_resolution||"1080x1920",_s:"1",_ee:"1",seg:"1",_et:"1000",sid:r,sct:"1",dl:`https://${n.bundle_id||"app.native"}/inspector`,dt:`${n.app_name||"App"} - Inspector`,"ep.country_code":n.country_code||"unknown","ep.app_name":n.app_name||"App","ep.platform":n.platform||react_native_1.Platform.OS,"ep.pkg_version":n.pkg_version||version_1.LIB_VERSION,"ep.install_type":n.install_type||"local_dev","ep.js_engine":n.js_engine||"hermes","ep.rn_version":n.rn_version||"","ep.device_brand":n.device_brand||"","ep.device_model":n.device_model||""}).toString()}`}const PING_INTERVAL_MS=1440*60*1e3;let isTelemetryEnabled=!0,_hasSearchFilterBeenUsed=!1;function setTelemetryEnabled(e){isTelemetryEnabled=e}function markSearchFilterUsed(){_hasSearchFilterBeenUsed=!0}async function getOrCreateClientId(){try{const e=await(0,settingsStore_1.loadSettings)();if(e.telemetryClientId||e.telemetryDeviceId){const t=e.telemetryClientId||e.telemetryDeviceId||"";return e.telemetryDeviceId||await(0,settingsStore_1.saveSettings)({...e,telemetryDeviceId:t}),t}const n=Math.floor(1e8+Math.random()*9e8),i=Math.floor(1e9+Math.random()*9e9),o=`${n}.${i}`,r=Date.now();return await(0,settingsStore_1.saveSettings)({...e,telemetryClientId:o,telemetryDeviceId:o,deviceFirstSeen:e.deviceFirstSeen||r}),o}catch{return`${Math.floor(1e8+Math.random()*9e8)}.${Math.floor(1e9+Math.random()*9e9)}`}}function isDeviceEmulator(){try{if(react_native_1.Platform.OS==="android"){const e=react_native_1.Platform.constants||{},n=String(e.Model||"").toLowerCase(),i=String(e.Brand||"").toLowerCase(),o=String(e.Fingerprint||"").toLowerCase(),r=String(e.Hardware||"").toLowerCase(),t=String(e.Manufacturer||"").toLowerCase();return n.includes("emulator")||n.includes("sdk")||n.includes("google_sdk")||n.includes("vbox")||i.includes("generic")||o.startsWith("generic")||r.includes("goldfish")||r.includes("ranchu")||t.includes("genymotion")}if(react_native_1.Platform.OS==="ios"){const e=react_native_1.Platform.constants||{};return String(e.Model||"").toLowerCase().includes("simulator")||!!e.isSimulator}}catch{return!1}return!1}function getDeviceLocaleInfo(){try{const e=typeof Intl<"u"&&Intl.DateTimeFormat?Intl.DateTimeFormat().resolvedOptions():{},n=e.timeZone||"unknown",i=e.locale||"unknown";let o="unknown";if(i&&i!=="unknown"){const r=i.split(/[-_]/);r.length>1&&(o=r[r.length-1].toUpperCase())}return{countryCode:o,locale:i,timeZone:n}}catch{return{countryCode:"unknown",locale:"unknown",timeZone:"unknown"}}}function getSystemMetadata(e,n){const i=react_native_1.Platform.constants,o=i?.reactNativeVersion?`${i.reactNativeVersion.major}.${i.reactNativeVersion.minor}.${i.reactNativeVersion.patch}`:"unknown",r=typeof global.HermesInternal=="object"&&global.HermesInternal!==null,t=global?.nativeFabricUIManager!==void 0,l=!!(global?._rn_bridgeless||global?.RN$Bridgeless),c=!!(typeof __DEV__<"u"&&__DEV__),a=isDeviceEmulator(),{countryCode:_,locale:u,timeZone:d}=getDeviceLocaleInfo();let m="unknown",f=1,g=1,h="phone",b="portrait";try{const s=react_native_1.Dimensions.get("window");m=`${Math.round(s.width)}x${Math.round(s.height)}`,f=react_native_1.PixelRatio.get(),g=react_native_1.PixelRatio.getFontScale(),b=s.width>s.height?"landscape":"portrait",h=react_native_1.Platform.OS==="ios"&&!!react_native_1.Platform.isPad||Math.min(s.width,s.height)>=600?"tablet":"phone"}catch{}let y="unknown";try{y=react_native_1.Appearance?.getColorScheme?.()||"unknown"}catch{}const x=!!(globalThis?.expo||globalThis?.__expo||globalThis?.__turboModuleProxy?.name==="Expo"||react_native_1.Platform.constants?.ExpoVersion);let p="non_hermes",v="jsc";if(r){v="hermes";try{const s=global.HermesInternal?.getRuntimeProperties?.()||{};p=s["OSS Release Version"]||(s["Bytecode Version"]?`bc_v${s["Bytecode Version"]}`:"hermes")}catch{p="hermes"}}else globalThis?._v8&&(v="v8");let S=!1;try{S=(0,reduxLogger_1.isReduxConnected)()}catch{}let k=!1;try{k=(0,analyticsLogger_1.isFirebaseAnalyticsPatched)()}catch{}const w=(0,NativeInspector_1.isNativeModuleAvailable)(),A=!!(react_native_1.NativeModules?.RNMMKV||globalThis?.MMKV);let I=0;try{I=(0,crashHandler_1.getCrashRecords)().length}catch{}let M="0";try{const s=(0,networkLogger_1.getNetworkLogs)().length;M=s===0?"0":s<=10?"1-10":s<=50?"11-50":s<=100?"51-100":"100+"}catch{}let E=!1;try{E=(0,index_1.isLocalDebugEnvironment)()}catch{}const N=n?.defaultTab||"apis",V=w&&n?.useNativeFab!==!1?"native_ui_thread":"js_floating_button",$=String(i?.Brand||(react_native_1.Platform.OS==="ios"?"Apple":"unknown")),O=String(i?.Model||i?.systemName||(react_native_1.Platform.OS==="ios"?"iPhone/iPad":"unknown")),D=String(i?.Manufacturer||(react_native_1.Platform.OS==="ios"?"Apple":"unknown"));let C="App",T="unknown",P="unknown",L="unknown";try{C=(0,index_1.getAppName)()||"App",T=(0,index_1.getBundleIdentifier)()||"unknown";const s=(0,index_1.getAppVersionAndBuild)();P=s.version||"unknown",L=s.build||"unknown"}catch{}const R=typeof react_1.default<"u"&&react_1.default.version?react_1.default.version:"unknown";return{pkg_name:PKG_NAME,pkg_version:version_1.LIB_VERSION,lib_version:version_1.LIB_VERSION,install_type:c?"local_dev":"bundled_production",app_name:C,bundle_id:T,app_version:P,app_build:L,react_version:R,platform:react_native_1.Platform.OS,os_version:String(react_native_1.Platform.Version||"unknown"),rn_version:o,country_code:_,device_locale:u,time_zone:d,device_brand:$,device_model:O,device_manufacturer:D,device_form_factor:h,screen_resolution:m,screen_density:f,screen_orientation:b,font_scale:g,appearance_mode:y,is_expo:x,js_engine:v,hermes_version:p,is_hermes:r,is_fabric:t,is_bridgeless:l,has_native_module:w,has_mmkv:A,fab_mode:V,default_landing_tab:N,captured_crashes_count:I,captured_apis_bracket:M,search_filter_used:_hasSearchFilterBeenUsed,is_metro_connected:E,is_dev:c,is_emulator:a,device_type:a?"emulator":"real_device",app_mode:c?"local_mode":"bundled_application",redux_attached:S,analytics_attached:k,environment:e||(c?"DEV":"PROD"),engagement_time_msec:1e3}}async function trackActiveTelemetryHeartbeat(e=!0,n){if(e===!1){isTelemetryEnabled=!1;return}if(isTelemetryEnabled=!0,process.env.NODE_ENV==="test"||typeof globalThis.jest<"u")return;const i=getCollectUrl();if(i)try{const o=await(0,settingsStore_1.loadSettings)(),r=o.telemetryLastPing||0,t=Date.now(),l=!o.deviceRegistered;if(!l&&t-r<PING_INTERVAL_MS)return;const c=await getOrCreateClientId(),a=getSystemMetadata(n,o),_={...a,device_id:c,is_new_device:l,device_first_seen:o.deviceFirstSeen||t},u=l?[{name:"first_open",params:_},{name:"first_device_install",params:_},{name:"session_start",params:_},{name:"active_device",params:_},{name:"inspector_active_heartbeat",params:_}]:[{name:"session_start",params:_},{name:"app_open",params:_},{name:"active_device",params:_},{name:"inspector_active_heartbeat",params:_}],d=getClientCollectUrl(l?"first_open":"session_start",a,c);d&&fetch(d,{method:"POST",headers:{"User-Agent":getPlatformUserAgent(a)}}).catch(()=>{}),await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:c,user_id:c,non_personalized_ads:!0,user_properties:{device_id:{value:c},pkg_name:{value:a.pkg_name},pkg_version:{value:a.pkg_version},install_type:{value:a.install_type},app_name:{value:a.app_name},bundle_id:{value:a.bundle_id},app_version:{value:a.app_version},react_version:{value:a.react_version},country:{value:a.country_code},country_code:{value:a.country_code},locale:{value:a.device_locale},time_zone:{value:a.time_zone},device_brand:{value:a.device_brand},device_model:{value:a.device_model},device_form_factor:{value:a.device_form_factor},screen_resolution:{value:a.screen_resolution},appearance_mode:{value:a.appearance_mode},is_expo:{value:String(a.is_expo)},js_engine:{value:a.js_engine},is_fabric:{value:String(a.is_fabric)},is_bridgeless:{value:String(a.is_bridgeless)},has_native_module:{value:String(a.has_native_module)},has_mmkv:{value:String(a.has_mmkv)},fab_mode:{value:a.fab_mode},default_landing_tab:{value:a.default_landing_tab},captured_crashes_count:{value:String(a.captured_crashes_count)},captured_apis_bracket:{value:a.captured_apis_bracket},search_filter_used:{value:String(a.search_filter_used)},is_metro_connected:{value:String(a.is_metro_connected)},redux_attached:{value:String(a.redux_attached)},analytics_attached:{value:String(a.analytics_attached)},platform:{value:a.platform},rn_version:{value:a.rn_version},lib_version:{value:a.lib_version}},events:u})}),await(0,settingsStore_1.saveSettings)({...o,telemetryClientId:c,telemetryDeviceId:c,deviceRegistered:!0,deviceFirstSeen:o.deviceFirstSeen||t,telemetryLastPing:t,telemetryLastActive:t})}catch{}}async function trackTelemetryEvent(e,n){if(!isTelemetryEnabled)return;const i=getCollectUrl();if(i)try{const o=await getOrCreateClientId(),r=await(0,settingsStore_1.loadSettings)().catch(()=>({})),t=getSystemMetadata(void 0,r),l={...t,device_id:o,...n,engagement_time_msec:100},c=getClientCollectUrl(e,l,o);c&&fetch(c,{method:"POST",headers:{"User-Agent":getPlatformUserAgent(t)}}).catch(()=>{}),await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:o,user_id:o,non_personalized_ads:!0,user_properties:{device_id:{value:o},pkg_name:{value:t.pkg_name},pkg_version:{value:t.pkg_version},install_type:{value:t.install_type},app_name:{value:t.app_name},bundle_id:{value:t.bundle_id},app_version:{value:t.app_version},react_version:{value:t.react_version},country:{value:t.country_code},country_code:{value:t.country_code},locale:{value:t.device_locale},time_zone:{value:t.time_zone},device_brand:{value:t.device_brand},device_model:{value:t.device_model},device_form_factor:{value:t.device_form_factor},screen_resolution:{value:t.screen_resolution},appearance_mode:{value:t.appearance_mode},is_expo:{value:String(t.is_expo)},js_engine:{value:t.js_engine},is_fabric:{value:String(t.is_fabric)},is_bridgeless:{value:String(t.is_bridgeless)},has_native_module:{value:String(t.has_native_module)},has_mmkv:{value:String(t.has_mmkv)},fab_mode:{value:t.fab_mode},default_landing_tab:{value:t.default_landing_tab},captured_crashes_count:{value:String(t.captured_crashes_count)},captured_apis_bracket:{value:t.captured_apis_bracket},search_filter_used:{value:String(t.search_filter_used)},is_metro_connected:{value:String(t.is_metro_connected)},redux_attached:{value:String(t.redux_attached)},analytics_attached:{value:String(t.analytics_attached)},platform:{value:t.platform},rn_version:{value:t.rn_version},lib_version:{value:t.lib_version}},events:[{name:e,params:l}]})})}catch{}}function trackInspectorTabView(e){trackTelemetryEvent("inspector_tab_view",{tab_name:e,screen_name:`tab_${e}`,screen_class:"NetworkInspector"})}function trackInspectorScreenView(e){trackTelemetryEvent("screen_view",{screen_name:e,screen_class:"NetworkInspector"})}function trackInspectorScreenRecord(e,n="screen"){trackTelemetryEvent("inspector_screen_record",{action:e,recording_type:n})}
|