react-native-inapp-inspector 2.5.13 → 2.5.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -8
- 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$62$$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 +176 -0
- package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
- package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +236 -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 +337 -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 +19 -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 +1 -0
- package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_inappinspector_file_paths.xml.flat +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -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 +3 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +28 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +19 -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/packaged_res/debug/packageDebugResources/xml/inappinspector_file_paths.xml +7 -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$62$$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 +2 -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 +35 -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$62$$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/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +118 -31
- package/dist/commonjs/components/Inspector/ConsoleExportModal.js +1 -1
- package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
- package/dist/commonjs/components/Inspector/DebuggingTab.js +21 -21
- package/dist/commonjs/components/Inspector/FabLauncher.js +3 -3
- package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -30
- package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
- package/dist/commonjs/components/Inspector/NetworkExportModal.js +4 -4
- package/dist/commonjs/components/Inspector/NetworkTab.js +51 -51
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
- package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
- package/dist/commonjs/components/Inspector/SettingsPanel.js +40 -41
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
- package/dist/commonjs/components/Inspector/TabBar.js +9 -15
- package/dist/commonjs/components/Inspector/UiInspectorDetail.js +16 -16
- package/dist/commonjs/components/LogCard.js +7 -7
- package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
- package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/helpers/remoteConfig.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.js +14 -14
- package/dist/commonjs/helpers/uiInspectorEngine.js +9 -9
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/native/NativeInspector.d.ts +2 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/commonjs/styles/AppFonts.d.ts +4 -0
- package/dist/commonjs/styles/AppFonts.js +1 -1
- package/dist/commonjs/styles/index.d.ts +2 -0
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/enums.d.ts +0 -2
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/interfaces.d.ts +1 -1
- package/dist/esm/components/Inspector/BoxModelVisualizer.js +3 -3
- package/dist/esm/components/Inspector/ConsoleExportModal.js +1 -1
- package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
- package/dist/esm/components/Inspector/DebuggingTab.js +106 -106
- package/dist/esm/components/Inspector/FabLauncher.js +42 -42
- package/dist/esm/components/Inspector/InspectorHeader.js +50 -50
- package/dist/esm/components/Inspector/MainScreen.js +87 -124
- package/dist/esm/components/Inspector/NetworkExportModal.js +1 -1
- package/dist/esm/components/Inspector/NetworkTab.js +83 -83
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
- package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
- package/dist/esm/components/Inspector/SettingsPanel.js +106 -107
- package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
- package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
- package/dist/esm/components/Inspector/TabBar.js +35 -41
- package/dist/esm/components/Inspector/UiA11yAuditPanel.js +4 -4
- package/dist/esm/components/Inspector/UiInspectorDetail.js +141 -141
- package/dist/esm/components/Inspector/UiInspectorOverlay.js +81 -81
- package/dist/esm/components/Inspector/UiInspectorTab.js +10 -10
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +35 -35
- package/dist/esm/components/LogCard.js +53 -53
- package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
- package/dist/esm/components/SkeletonPlaceholder.js +42 -11
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/helpers/remoteConfig.js +1 -1
- package/dist/esm/helpers/shareFormatter.js +14 -14
- package/dist/esm/helpers/uiInspectorEngine.js +8 -8
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +8 -8
- package/dist/esm/native/NativeInspector.d.ts +2 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/esm/styles/AppFonts.d.ts +4 -0
- package/dist/esm/styles/AppFonts.js +1 -1
- package/dist/esm/styles/index.d.ts +2 -0
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/enums.d.ts +0 -2
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/interfaces.d.ts +1 -1
- package/ios/NetworkInspectorModule.mm +288 -325
- package/package.json +1 -1
- package/src/native/NativeInspector.ts +30 -0
- package/src/native/NativeNetworkInspector.ts +2 -0
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
import
|
|
1
|
+
import E,{useEffect as le,useRef as ae,useMemo as ie}from"react";import{Alert as U,Animated as O,Linking as se,View as C,Pressable as D,Text as T,StyleSheet as A}from"react-native";import Ce,{Path as Te}from"react-native-svg";import{AppColors as e}from"../styles/AppColors";import{METHOD_COLORS as q}from"../constants";import{getStatusColor as Se,getDurationColor as Be,formatDateTime as Re,getSize as He,getPath as Ve,getBaseUrl as ze,openWithPostman as N}from"../helpers";import{CalendarIcon as Ie,ClockIcon as G,SizeIcon as Le,CircleCheckIcon as Pe,CircleAlertIcon as $e,CircleXIcon as We,RepeatIcon as Oe,ForwardChevronIcon as De,GlobeIcon as Fe,PostmanIcon as Me}from"./NetworkIcons";import{AppFonts as S}from"../styles/AppFonts";import J from"./HighlightText";import Ee from"./TouchableScale";import{useTranslation as Ue}from"../i18n";function Ae({item:o,onPress:B,timelineMinStart:Ne,timelineTotalRange:Ge,isNew:L,isSelected:F,onToggleSelect:K,searchStr:j,testID:Q}){const{t:R}=Ue(),v=q[o.method]??q.ALL,V=ie(()=>{try{const r=new URL(o.url),W=r.host,M=r.pathname+(r.search?r.search:""),ne=r.protocol==="https:";return{host:W,path:M||"/",isHttps:ne}}catch{const r=o.url.toLowerCase().startsWith("https:"),W=Ve(o.url);return{host:ze(o.url).replace(/^https?:\/\//,""),path:W||o.url,isHttps:r}}},[o.url]),X=r=>{r?.stopPropagation?.(),U.alert(R("common.openInBrowser")||"Open URL",`${R("common.openInBrowserPrompt")||"Choose how you want to open or inspect this URL:"}
|
|
2
2
|
|
|
3
|
-
${
|
|
4
|
-
<Ee testID={
|
|
5
|
-
<C style={
|
|
3
|
+
${o.url}`,[{text:R("common.cancel")||"Cancel",style:"cancel"},{text:"Open in Postman",onPress:()=>N(o)},{text:R("common.open")||"Browser",onPress:()=>{se.openURL(o.url).catch(()=>{U.alert(R("common.error")||"Error",R("common.cannotOpenUrl")||"Could not open URL")})}}])},_=r=>{r?.stopPropagation?.(),N(o)},H=o.status===0||o.status!=null&&o.status>=400,z=o.status==null,P=Se(o.status),I=Be(o.duration),Y=z?e.darkOrange:H?e.errorColor:e.greenColor,$=ae(new O.Value(L?.35:0)).current;le(()=>{L&&O.timing($,{toValue:0,duration:1200,useNativeDriver:!0}).start()},[L,$]);const Z=()=>{if(z)return"...";if(o.status===0||o.status==null)return R("network.statusFailed")||"FAILED";const r=typeof o.status=="number"?o.status:parseInt(String(o.status||0),10);return r===200?"200 OK":r===201?"201 Created":r===204?"204 No Content":r===304?"304 Not Modified":r===400?"400 Bad Req":r===401?"401 Unauth":r===403?"403 Forbidden":r===404?"404 Not Found":r===500?"500 Error":String(o.status)},ee=()=>{if(z)return<G color={e.darkOrange}size={10}/>;const r=typeof o.status=="number"?o.status:parseInt(String(o.status||0),10);return r>=200&&r<300?<Pe color={e.greenColor}size={10}/>:r>=300&&r<400?<Oe color={e.amber700}size={10}/>:r>=400&&r<500?<$e color={e.darkOrange}size={10}/>:<We color={e.errorColor}size={10}/>},oe=Re(o.startTime),te=o.url.split("?")[0].toLowerCase().endsWith(".json"),re=E.useCallback(()=>{B?.(o)},[B,o]);return<C style={t.container}>
|
|
4
|
+
<Ee testID={Q}onPress={re}style={[t.card,{borderLeftWidth:3.5,borderLeftColor:Y,backgroundColor:H?e.errorCardBg:e.white}]}>
|
|
5
|
+
<C style={t.cardBody}>
|
|
6
6
|
|
|
7
|
-
<C style={
|
|
8
|
-
<C style={
|
|
9
|
-
<D onPress={()=>
|
|
7
|
+
<C style={t.cardHeaderRow}>
|
|
8
|
+
<C style={t.cardHeaderLeft}>
|
|
9
|
+
<D onPress={()=>K(o.id)}hitSlop={12}style={[t.smallCheckbox,F&&t.smallCheckboxChecked]}>
|
|
10
10
|
{F&&<Ce width={9}height={9}viewBox="0 0 24 24"fill="none">
|
|
11
11
|
<Te d="M20 6L9 17l-5-5"stroke={e.white}strokeWidth="4"strokeLinecap="round"strokeLinejoin="round"/>
|
|
12
12
|
</Ce>}
|
|
13
13
|
</D>
|
|
14
14
|
|
|
15
|
-
<T style={
|
|
15
|
+
<T style={t.serialNumber}>#{o.id+1}</T>
|
|
16
16
|
|
|
17
|
-
<C style={[
|
|
18
|
-
<T style={
|
|
19
|
-
{
|
|
17
|
+
<C style={[t.methodBadge,{backgroundColor:v}]}>
|
|
18
|
+
<T style={t.methodBadgeText}>
|
|
19
|
+
{o.method}
|
|
20
20
|
</T>
|
|
21
21
|
</C>
|
|
22
22
|
|
|
23
|
-
{
|
|
24
|
-
<T style={[
|
|
25
|
-
{
|
|
23
|
+
{o.client&&<C style={[t.chip,{backgroundColor:o.client==="axios"?`${e.purple}14`:o.client==="apollo"||o.client==="graphql"?`${e.pink500}14`:o.client==="xhr"?`${e.amber500}14`:`${e.sky500}14`,borderColor:o.client==="axios"?`${e.purple}30`:o.client==="apollo"||o.client==="graphql"?`${e.pink500}30`:o.client==="xhr"?`${e.amber500}30`:`${e.sky500}30`}]}>
|
|
24
|
+
<T style={[t.chipText,{color:o.client==="axios"?e.purple:o.client==="apollo"||o.client==="graphql"?e.pink500:o.client==="xhr"?e.amber700:e.sky600}]}>
|
|
25
|
+
{o.client.toUpperCase()}
|
|
26
26
|
</T>
|
|
27
27
|
</C>}
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
{(
|
|
31
|
-
<T style={[
|
|
30
|
+
{(o.url.toLowerCase().includes("graphql")||o.client==="apollo"||o.client==="graphql")&&<C style={[t.chip,{backgroundColor:e.roseBg,borderColor:e.roseBorder}]}>
|
|
31
|
+
<T style={[t.chipText,{color:e.pink600}]}>
|
|
32
32
|
GQL
|
|
33
33
|
</T>
|
|
34
34
|
</C>}
|
|
35
35
|
</C>
|
|
36
36
|
|
|
37
|
-
<C style={
|
|
38
|
-
<C style={[
|
|
39
|
-
{
|
|
40
|
-
<T style={[
|
|
41
|
-
{
|
|
37
|
+
<C style={t.cardHeaderRight}>
|
|
38
|
+
<C style={[t.statusPill,{backgroundColor:H?`${e.errorColor}14`:z?`${e.darkOrange}14`:`${P}14`,borderColor:H?`${e.errorColor}33`:z?`${e.darkOrange}33`:`${P}33`}]}>
|
|
39
|
+
{ee()}
|
|
40
|
+
<T style={[t.statusPillText,{color:H?e.errorColor:z?e.darkOrange:P}]}>
|
|
41
|
+
{Z()}
|
|
42
42
|
</T>
|
|
43
43
|
</C>
|
|
44
|
-
<D onPress={
|
|
44
|
+
<D onPress={X}hitSlop={{top:6,bottom:6,left:3,right:3}}style={t.globeBtn}accessibilityRole="button"accessibilityLabel="Open in Browser">
|
|
45
45
|
<Fe color={e.grayTextWeak}size={12}/>
|
|
46
46
|
</D>
|
|
47
|
-
<D onPress={
|
|
47
|
+
<D onPress={_}hitSlop={{top:6,bottom:6,left:3,right:3}}style={[t.globeBtn,{backgroundColor:"rgba(255, 108, 55, 0.12)",borderColor:"rgba(255, 108, 55, 0.28)"}]}accessibilityRole="button"accessibilityLabel="Open with Postman">
|
|
48
48
|
<Me color="#FF6C37"size={11}/>
|
|
49
49
|
</D>
|
|
50
|
-
<C style={
|
|
50
|
+
<C style={t.chevronWrapper}>
|
|
51
51
|
<De color={e.grayTextWeak}size={13}/>
|
|
52
52
|
</C>
|
|
53
53
|
</C>
|
|
54
54
|
</C>
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
<C style={
|
|
57
|
+
<C style={t.urlBox}>
|
|
58
58
|
|
|
59
|
-
<C style={
|
|
60
|
-
<C style={
|
|
61
|
-
<C style={[
|
|
62
|
-
<T style={[
|
|
59
|
+
<C style={t.urlMainRow}>
|
|
60
|
+
<C style={t.hostRow}>
|
|
61
|
+
<C style={[t.protoBadge,{backgroundColor:V.isHttps?`${e.emerald600}12`:`${e.amber600}12`,borderColor:V.isHttps?`${e.emerald600}2B`:`${e.amber600}2B`}]}>
|
|
62
|
+
<T style={[t.protoBadgeText,{color:V.isHttps?e.emerald600:e.amber700}]}>
|
|
63
63
|
{V.isHttps?"HTTPS":"HTTP"}
|
|
64
64
|
</T>
|
|
65
65
|
</C>
|
|
66
|
-
<
|
|
66
|
+
<J text={V.host||o.url}search={j}style={t.hostText}highlightStyle={t.highlight}numberOfLines={1}ellipsizeMode="tail"/>
|
|
67
67
|
</C>
|
|
68
|
-
<C style={
|
|
69
|
-
{te&&<C style={
|
|
70
|
-
<T style={
|
|
68
|
+
<C style={t.urlBadgeRow}>
|
|
69
|
+
{te&&<C style={t.jsonBadge}>
|
|
70
|
+
<T style={t.jsonBadgeText}>.json</T>
|
|
71
71
|
</C>}
|
|
72
|
-
{
|
|
73
|
-
<T style={
|
|
72
|
+
{o.duplicateCount!=null&&o.duplicateCount>1&&<C style={t.dupBadge}>
|
|
73
|
+
<T style={t.dupBadgeText}>×{o.duplicateCount}</T>
|
|
74
74
|
</C>}
|
|
75
75
|
</C>
|
|
76
76
|
</C>
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
<C style={
|
|
80
|
-
<
|
|
79
|
+
<C style={t.slugRow}>
|
|
80
|
+
<J text={V.path}search={j}style={t.pathText}highlightStyle={t.highlight}numberOfLines={1}ellipsizeMode="middle"/>
|
|
81
81
|
</C>
|
|
82
82
|
</C>
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
<C style={
|
|
86
|
-
<C style={
|
|
87
|
-
<C style={
|
|
85
|
+
<C style={t.cardFooterRow}>
|
|
86
|
+
<C style={t.footerLeft}>
|
|
87
|
+
<C style={t.cardDateRow}>
|
|
88
88
|
<Ie color={e.grayTextWeak}size={10}/>
|
|
89
|
-
<T style={
|
|
89
|
+
<T style={t.cardDateText}numberOfLines={1}>{oe}</T>
|
|
90
90
|
</C>
|
|
91
91
|
</C>
|
|
92
92
|
|
|
93
|
-
<C style={
|
|
94
|
-
{
|
|
93
|
+
<C style={t.footerRight}>
|
|
94
|
+
{o.response!=null&&<C style={t.metaStatChip}>
|
|
95
95
|
<Le color={e.purple}size={9}/>
|
|
96
|
-
<T style={
|
|
97
|
-
{He(
|
|
96
|
+
<T style={t.metaStatText}>
|
|
97
|
+
{He(o.response)}
|
|
98
98
|
</T>
|
|
99
99
|
</C>}
|
|
100
100
|
|
|
101
|
-
{
|
|
102
|
-
<
|
|
103
|
-
<T style={[
|
|
104
|
-
{
|
|
101
|
+
{o.duration!=null&&!H&&<C style={[t.metaStatChip,{backgroundColor:`${I}12`,borderColor:`${I}2E`}]}>
|
|
102
|
+
<G color={I}size={9}/>
|
|
103
|
+
<T style={[t.metaStatText,{color:I}]}>
|
|
104
|
+
{o.duration}ms
|
|
105
105
|
</T>
|
|
106
106
|
</C>}
|
|
107
107
|
</C>
|
|
108
108
|
</C>
|
|
109
109
|
|
|
110
110
|
|
|
111
|
-
<C style={
|
|
112
|
-
{typeof
|
|
111
|
+
<C style={t.waterfallContainer}>
|
|
112
|
+
{typeof o.duration=="number"&&o.duration>0&&!H&&<C style={[t.waterfallBar,{width:`${Math.min(100,Math.max(6,o.duration/1200*100))}%`,backgroundColor:I}]}/>}
|
|
113
113
|
</C>
|
|
114
114
|
</C>
|
|
115
115
|
|
|
116
|
-
{L&&<O.View pointerEvents="none"style={[
|
|
116
|
+
{L&&<O.View pointerEvents="none"style={[A.absoluteFill,{backgroundColor:v,opacity:$}]}/>}
|
|
117
117
|
</Ee>
|
|
118
|
-
</C>}const
|
|
118
|
+
</C>}const t=A.create({container:{paddingHorizontal:8,paddingVertical:4,height:126,justifyContent:"center"},card:{height:118,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:e.dividerColor,shadowColor:e.shadowColorString},cardBody:{height:"100%",paddingHorizontal:8,paddingTop:8,paddingBottom:6,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:4,gap:4.5,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:7,flexShrink:0},smallCheckbox:{width:15,height:15,borderRadius:4,borderWidth:1.5,borderColor:e.grayTextWeak,alignItems:"center",justifyContent:"center",backgroundColor:e.white},smallCheckboxChecked:{backgroundColor:e.purple,borderColor:e.purple},serialNumber:{fontFamily:S.interBold,color:e.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:6,paddingVertical:2,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:S.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:e.white},chip:{paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:S.interBold,fontSize:9,lineHeight:12},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:S.interBold,fontSize:9.5,lineHeight:12},globeBtn:{width:26,height:22,borderRadius:5,backgroundColor:`${e.grayTextWeak}14`,borderWidth:1,borderColor:`${e.grayTextWeak}28`,alignItems:"center",justifyContent:"center"},chevronWrapper:{paddingLeft:2,alignItems:"center",justifyContent:"center"},urlBox:{backgroundColor:e.grayBackground,borderRadius:7,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:7,paddingVertical:4.5,height:48,minHeight:48,maxHeight:48,justifyContent:"center",gap:2.5,overflow:"hidden"},urlMainRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:4,minHeight:16},hostRow:{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0},protoBadge:{paddingHorizontal:4,paddingVertical:1,borderRadius:3.5,borderWidth:1},protoBadgeText:{fontFamily:S.interBold,fontSize:8,lineHeight:10},hostText:{fontFamily:S.interBold,fontSize:11.5,lineHeight:15,color:e.primaryBlack,flex:1},urlBadgeRow:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},jsonBadge:{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},jsonBadgeText:{fontFamily:S.interBold,fontSize:8.5,color:e.darkOrange},dupBadge:{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},dupBadgeText:{fontFamily:S.interBold,fontSize:8.5,color:e.purple},slugRow:{flexDirection:"row",alignItems:"center",minHeight:15},pathText:{fontFamily:S.interMedium,fontSize:10.5,lineHeight:14,color:e.slate600||e.grayText,flex:1},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:4},footerLeft:{flexDirection:"row",alignItems:"center",gap:4.5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:S.interRegular,fontSize:10,lineHeight:13,color:e.slate400},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.violetSoftBg,borderColor:e.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:S.interBold,color:e.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:e.graySurface,borderRadius:1.5,overflow:"hidden",marginTop:2},waterfallBar:{height:"100%",borderRadius:1.5}});function qe(o,B){return o.item===B.item&&o.isSelected===B.isSelected&&o.isNew===B.isNew&&o.searchStr===B.searchStr&&o.onPress===B.onPress&&o.onToggleSelect===B.onToggleSelect}export default E.memo(Ae,qe);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { ActiveTab } from '../types';
|
|
2
3
|
export interface SkeletonPlaceholderProps {
|
|
4
|
+
tab?: ActiveTab;
|
|
5
|
+
type?: 'card' | 'detail' | 'list' | 'table';
|
|
3
6
|
cardCount?: number;
|
|
4
7
|
}
|
|
5
8
|
export declare const SkeletonPlaceholder: React.NamedExoticComponent<SkeletonPlaceholderProps>;
|
|
@@ -1,23 +1,54 @@
|
|
|
1
|
-
import x,{useEffect as
|
|
1
|
+
import x,{useEffect as A,useRef as D}from"react";import{Animated as L,StyleSheet as W,View as S}from"react-native";import{AppColors as V}from"../styles/AppColors";export const SkeletonPlaceholder=x.memo(function({tab:R="apis",type:v="card",cardCount:T=4}){const C=D(new L.Value(.4)).current;return A(()=>{const f=L.loop(L.sequence([L.timing(C,{toValue:.95,duration:700,useNativeDriver:!0}),L.timing(C,{toValue:.4,duration:700,useNativeDriver:!0})]));return f.start(),()=>f.stop()},[C]),v==="detail"?<S style={e.container}accessible={!0}accessibilityRole="progressbar"accessibilityLabel="Loading details, please wait"accessibilityLiveRegion="polite">
|
|
2
|
+
<L.View style={[e.detailHeader,{opacity:C}]}/>
|
|
3
|
+
<S style={e.chipStripSkeleton}>
|
|
4
|
+
<L.View style={[e.chipSkeleton,{width:70,opacity:C}]}/>
|
|
5
|
+
<L.View style={[e.chipSkeleton,{width:90,opacity:C}]}/>
|
|
6
|
+
<L.View style={[e.chipSkeleton,{width:80,opacity:C}]}/>
|
|
7
|
+
</S>
|
|
8
|
+
<L.View style={[e.detailCodeCard,{opacity:C}]}>
|
|
9
|
+
<S style={[e.urlLineLong,{width:"85%"}]}/>
|
|
10
|
+
<S style={[e.urlLineLong,{width:"70%",marginTop:8}]}/>
|
|
11
|
+
<S style={[e.urlLineLong,{width:"92%",marginTop:8}]}/>
|
|
12
|
+
<S style={[e.urlLineLong,{width:"60%",marginTop:8}]}/>
|
|
13
|
+
<S style={[e.urlLineLong,{width:"78%",marginTop:8}]}/>
|
|
14
|
+
</L.View>
|
|
15
|
+
</S>:R==="media"?<S style={e.container}accessible={!0}accessibilityRole="progressbar"accessibilityLabel="Loading media gallery, please wait"accessibilityLiveRegion="polite">
|
|
16
|
+
<S style={e.mediaGrid}>
|
|
17
|
+
{Array.from({length:6}).map((f,B)=><L.View key={`skeleton_media_${B}`}style={[e.mediaTile,{opacity:C}]}/>)}
|
|
18
|
+
</S>
|
|
19
|
+
</S>:R==="perf"?<S style={e.container}accessible={!0}accessibilityRole="progressbar"accessibilityLabel="Loading performance diagnostics, please wait"accessibilityLiveRegion="polite">
|
|
20
|
+
<L.View style={[e.heroCard,{opacity:C}]}>
|
|
21
|
+
<S style={e.cardTopRow}>
|
|
22
|
+
<S style={e.timeSkeleton}/>
|
|
23
|
+
<S style={e.statusBadgeSkeleton}/>
|
|
24
|
+
</S>
|
|
25
|
+
<S style={[e.urlLineLong,{height:32,marginTop:12}]}/>
|
|
26
|
+
</L.View>
|
|
27
|
+
<L.View style={[e.cardSkeleton,{opacity:C}]}>
|
|
28
|
+
<S style={[e.urlLineLong,{width:"40%"}]}/>
|
|
29
|
+
<S style={[e.urlLineShort,{marginTop:10}]}/>
|
|
30
|
+
<S style={[e.urlLineLong,{marginTop:8}]}/>
|
|
31
|
+
</L.View>
|
|
32
|
+
</S>:<S style={e.container}accessible={!0}accessibilityRole="progressbar"accessibilityLabel={`Loading ${R} data, please wait`}accessibilityLiveRegion="polite">
|
|
2
33
|
|
|
3
34
|
<S style={e.toolbarSkeleton}>
|
|
4
|
-
<
|
|
35
|
+
<L.View style={[e.searchBarSkeleton,{opacity:C}]}/>
|
|
5
36
|
<S style={e.actionButtonsRow}>
|
|
6
|
-
<
|
|
7
|
-
<
|
|
37
|
+
<L.View style={[e.iconButtonSkeleton,{opacity:C}]}/>
|
|
38
|
+
<L.View style={[e.iconButtonSkeleton,{opacity:C}]}/>
|
|
8
39
|
</S>
|
|
9
40
|
</S>
|
|
10
41
|
|
|
11
42
|
|
|
12
43
|
<S style={e.chipStripSkeleton}>
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
<
|
|
16
|
-
<
|
|
44
|
+
<L.View style={[e.chipSkeleton,{width:48,opacity:C}]}/>
|
|
45
|
+
<L.View style={[e.chipSkeleton,{width:68,opacity:C}]}/>
|
|
46
|
+
<L.View style={[e.chipSkeleton,{width:76,opacity:C}]}/>
|
|
47
|
+
<L.View style={[e.chipSkeleton,{width:58,opacity:C}]}/>
|
|
17
48
|
</S>
|
|
18
49
|
|
|
19
50
|
|
|
20
|
-
{Array.from({length:
|
|
51
|
+
{Array.from({length:T}).map((f,B)=><L.View key={`skeleton_card_${B}`}style={[e.cardSkeleton,{opacity:C}]}>
|
|
21
52
|
|
|
22
53
|
<S style={e.cardTopRow}>
|
|
23
54
|
<S style={e.badgeGroup}>
|
|
@@ -36,5 +67,5 @@ import x,{useEffect as v,useRef as D}from"react";import{Animated as f,StyleSheet
|
|
|
36
67
|
<S style={e.metaPillSkeleton}/>
|
|
37
68
|
<S style={e.metaPillSkeleton}/>
|
|
38
69
|
</S>
|
|
39
|
-
</
|
|
40
|
-
</S>});const e=
|
|
70
|
+
</L.View>)}
|
|
71
|
+
</S>});const e=W.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor},cardSkeleton:{backgroundColor:V.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:V.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:V.slate200},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:V.slate200},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:V.slate200},urlLineLong:{height:13,borderRadius:4,backgroundColor:V.slate200,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:V.slate200,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:V.slate200},heroCard:{backgroundColor:V.primaryLight,borderRadius:12,padding:16,marginBottom:12,borderWidth:1,borderColor:V.dividerColor},detailHeader:{height:48,borderRadius:8,backgroundColor:V.graySurface,marginBottom:12},detailCodeCard:{flex:1,backgroundColor:V.primaryLight,borderRadius:10,padding:14,borderWidth:1,borderColor:V.dividerColor},mediaGrid:{flexDirection:"row",flexWrap:"wrap",gap:8},mediaTile:{width:"31%",aspectRatio:1,borderRadius:8,backgroundColor:V.graySurface,borderWidth:1,borderColor:V.dividerColor}});export default SkeletonPlaceholder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "2.5.
|
|
1
|
+
export declare const LIB_VERSION = "2.5.14";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION="2.5.
|
|
1
|
+
export const LIB_VERSION="2.5.14";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const d=["apis","logs","perf","analytics","redux","storage","device","crash","
|
|
1
|
+
const d=["apis","logs","perf","analytics","redux","storage","device","crash","media","socket"];let u=null;export function getFirebaseRemoteConfig(e){if(e&&typeof e=="object")return u=e,e;if(u)return u;try{const n=require("@react-native-firebase/remote-config"),t=typeof n.default=="function"?n.default():typeof n=="function"?n():n;return u=t,t}catch{return null}}export function isFirebaseRemoteConfigAvailable(e){return!!getFirebaseRemoteConfig(e)}function l(e){if(e!=null){if(typeof e=="boolean")return e;if(typeof e=="number")return e!==0;if(typeof e=="string"){const n=e.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(e)}catch{return}}if(typeof e.asBoolean=="function")return e.asBoolean();if(typeof e.asString=="function"){const n=e.asString(),t=n.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(n)}catch{return}}}}export async function fetchRemoteConfigSettings(e,n=8e3){const t=getFirebaseRemoteConfig(e);if(!t)return null;try{const y=(async()=>{typeof t.fetchAndActivate=="function"?await t.fetchAndActivate():(typeof t.fetch=="function"&&await t.fetch(),typeof t.activate=="function"&&await t.activate())})(),_=new Promise((o,r)=>setTimeout(()=>r(new Error("Remote Config fetch timeout")),n));await Promise.race([y,_]).catch(()=>{});const s=o=>{if(typeof t.getValue=="function")try{return t.getValue(o)}catch{return}return t[o]},f={},i={},b=["inspector_modules","inapp_inspector_modules","react_native_inapp_inspector_modules"];for(const o of b){const r=s(o),c=l(r);if(c&&typeof c=="object")for(const a of d)typeof c[a]=="boolean"&&(i[a]=c[a])}for(const o of d){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),p=l(a);if(typeof p=="boolean"){i[o]=p;break}}}Object.keys(i).length>0&&(i.apis===void 0&&(i.apis=!0),f.modules=i);const m=["inspector_capture_widget_enabled","inapp_inspector_capture_widget","inspector_floating_capture_enabled"];for(const o of m){const r=l(s(o));if(typeof r=="boolean"){f.captureWidgetEnabled=r;break}}const g=["inspector_enabled","inapp_inspector_enabled"];for(const o of g){const r=l(s(o));if(typeof r=="boolean"){f.enabled=r;break}}return Object.keys(f).length>0?f:null}catch{return null}}export async function fetchRemoteConfigModuleStatus(e,n=8e3){return(await fetchRemoteConfigSettings(e,n))?.modules||null}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import{Alert as L,Share as b}from"react-native";import{writeNativeExportFile as D,shareNativeFile as k}from"../native/NativeInspector";import{formatDateTime as S,getCurlCommand as w}from"./index";function m(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}export function formatApiReport(e){const n=(e.method||"GET").toUpperCase(),t=e.status===0?"Failed / Network Error":e.status!=null?`${e.status} ${e.status===200?"OK":""}`.trim():"Pending",
|
|
2
|
-
`)}export function formatPushReport(e){const n=S(e.timestamp||Date.now()),t=(e.source||"push").toUpperCase(),
|
|
3
|
-
`)}export function formatCrashReport(e){const n=`${e.dateStr||""} ${e.timeStr||""}`.trim()||S(e.timestamp),t=["\u{1F4A5} CRASH REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u26A0\uFE0F Error: ${e.name||"Error"}: ${e.message||"Unknown error"}`,`\u{1F6A8} Fatal: ${e.isFatal?"YES (Fatal)":"NO (Caught)"}`,`\u{1F3F7}\uFE0F Type: ${(e.type||"js").toUpperCase()}`,`\u{1F552} Time: ${n}`];return e.deviceInfo&&t.push(`\u{1F4F1} Platform: ${e.deviceInfo.platform||"N/A"} (OS: ${e.deviceInfo.osVersion||"N/A"}, RN: ${e.deviceInfo.rnVersion||"N/A"})`),e.memoryInfo?.usedJSHeapSize&&t.push(`\u{1F4BE} Used Heap: ${Math.round(e.memoryInfo.usedJSHeapSize/(1024*1024))} MB`),t.push(""),e.stack&&(t.push("\u{1F4DC} Stack Trace:"),t.push(e.stack),t.push("")),e.breadcrumbs&&e.breadcrumbs.length>0&&(t.push(`\u{1F43E} Breadcrumbs (${e.breadcrumbs.length}):`),e.breadcrumbs.slice(-10).forEach(
|
|
1
|
+
import{Alert as L,Share as b}from"react-native";import{writeNativeExportFile as D,shareNativeFile as k}from"../native/NativeInspector";import{formatDateTime as S,getCurlCommand as w}from"./index";function m(e){if(e===void 0)return"undefined";if(e===null)return"null";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}export function formatApiReport(e){const n=(e.method||"GET").toUpperCase(),t=e.status===0?"Failed / Network Error":e.status!=null?`${e.status} ${e.status===200?"OK":""}`.trim():"Pending",r=e.duration!=null?`${e.duration}ms`:"N/A",p=S(e.startTime||Date.now()),s=w(e),o=["\u{1F680} API INSPECTION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Method: ${n}`,`\u{1F4CA} Status: ${t}`,`\u23F1\uFE0F Duration: ${r}`,`\u{1F552} Time: ${p}`];return e.client&&o.push(`\u{1F50C} Client: ${e.client.toUpperCase()}`),o.push(`\u{1F310} URL: ${e.url||"N/A"}`),o.push(""),e.requestHeaders&&Object.keys(e.requestHeaders).length>0&&(o.push("\u{1F4CB} Request Headers:"),o.push(m(e.requestHeaders)),o.push("")),e.request!=null&&e.request!==""&&(o.push("\u{1F4DD} Request Body:"),o.push(m(e.request)),o.push("")),e.responseHeaders&&Object.keys(e.responseHeaders).length>0&&(o.push("\u{1F4D1} Response Headers:"),o.push(m(e.responseHeaders)),o.push("")),e.response!=null&&e.response!==""&&(o.push("\u{1F4E5} Response Data:"),o.push(m(e.response)),o.push("")),s&&(o.push("\u{1F4BB} cURL Command:"),o.push(s),o.push("")),o.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),o.push("Generated by React Native InApp Inspector"),o.join(`
|
|
2
|
+
`)}export function formatPushReport(e){const n=S(e.timestamp||Date.now()),t=(e.source||"push").toUpperCase(),r=(e.appState||"unknown").toUpperCase(),p=(e.action||"received").toUpperCase(),s=["\u{1F514} PUSH NOTIFICATION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Title: ${e.title||"(No Title)"}`,`\u{1F4DD} Body: ${e.body||"(No Body)"}`,`\u{1F3E2} Source: ${t}${e.domain?` (${e.domain})`:""}`,`\u{1F194} Message ID: ${e.id||"N/A"}`,`\u{1F4F1} App State: ${r}`,`\u{1F3AF} Action: ${p}`,`\u{1F552} Time: ${n}`];return e.subtitle&&s.push(`\u{1F4D1} Subtitle: ${e.subtitle}`),e.channelId&&s.push(`\u{1F3F7}\uFE0F Channel: ${e.channelId}`),e.priority&&s.push(`\u26A1 Priority: ${e.priority}`),e.badge!=null&&s.push(`\u{1F522} Badge: ${e.badge}`),e.sound&&s.push(`\u{1F50A} Sound: ${e.sound}`),e.imageUrl&&s.push(`\u{1F5BC}\uFE0F Image: ${e.imageUrl}`),s.push(""),e.data&&Object.keys(e.data).length>0&&(s.push("\u{1F4E6} Custom Data Payload:"),s.push(m(e.data)),s.push("")),e.customDomainAttributes&&Object.keys(e.customDomainAttributes).length>0&&(s.push("\u{1F3E2} Domain Attributes:"),s.push(m(e.customDomainAttributes)),s.push("")),e.rawPayload!=null&&(s.push("\u2699\uFE0F Raw Payload:"),s.push(m(e.rawPayload)),s.push("")),s.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),s.push("Generated by React Native InApp Inspector"),s.join(`
|
|
3
|
+
`)}export function formatCrashReport(e){const n=`${e.dateStr||""} ${e.timeStr||""}`.trim()||S(e.timestamp),t=["\u{1F4A5} CRASH REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u26A0\uFE0F Error: ${e.name||"Error"}: ${e.message||"Unknown error"}`,`\u{1F6A8} Fatal: ${e.isFatal?"YES (Fatal)":"NO (Caught)"}`,`\u{1F3F7}\uFE0F Type: ${(e.type||"js").toUpperCase()}`,`\u{1F552} Time: ${n}`];return e.deviceInfo&&t.push(`\u{1F4F1} Platform: ${e.deviceInfo.platform||"N/A"} (OS: ${e.deviceInfo.osVersion||"N/A"}, RN: ${e.deviceInfo.rnVersion||"N/A"})`),e.memoryInfo?.usedJSHeapSize&&t.push(`\u{1F4BE} Used Heap: ${Math.round(e.memoryInfo.usedJSHeapSize/(1024*1024))} MB`),t.push(""),e.stack&&(t.push("\u{1F4DC} Stack Trace:"),t.push(e.stack),t.push("")),e.breadcrumbs&&e.breadcrumbs.length>0&&(t.push(`\u{1F43E} Breadcrumbs (${e.breadcrumbs.length}):`),e.breadcrumbs.slice(-10).forEach(r=>{t.push(` \u2022 [${r.type}] ${r.message} (${S(r.timestamp)})`)}),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
4
4
|
`)}export function formatAnalyticsReport(e){const n=S(e.timestamp),t=["\u{1F4CA} ANALYTICS EVENT REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Event Name: ${e.name||"Unknown"}`,`\u{1F3E2} Source: ${(e.source||"manual").toUpperCase()}`,`\u{1F552} Timestamp: ${n}`];return e.screenName&&t.push(`\u{1F4F1} Screen Name: ${e.screenName}`),e.userId&&t.push(`\u{1F464} User ID: ${e.userId}`),e.trackingId&&t.push(`\u{1F194} Tracking ID: ${e.trackingId}`),t.push(""),e.params&&Object.keys(e.params).length>0&&(t.push("\u{1F4E6} Event Parameters:"),t.push(m(e.params)),t.push("")),e.userProperties&&Object.keys(e.userProperties).length>0&&(t.push("\u{1F464} User Properties:"),t.push(m(e.userProperties)),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
5
5
|
`)}export function formatReduxReport(e){const n=typeof e.timestamp=="number"?S(e.timestamp):e.timestamp,t=["\u{1F504} REDUX ACTION REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Action Type: ${e.type||"UNKNOWN"}`,`\u{1F552} Timestamp: ${n}`];return e.caller&&t.push(`\u{1F4CD} Caller: ${e.caller}`),e.originType&&t.push(`\u2699\uFE0F Origin: ${e.originType}`),e.affectedSlices&&e.affectedSlices.length>0&&t.push(`\u{1F370} Slices: ${e.affectedSlices.join(", ")}`),t.push(""),t.push("\u{1F4E6} Action Payload:"),t.push(m(e.payload)),t.push(""),e.prevState!==void 0&&(t.push("\u23EE\uFE0F Previous State:"),t.push(m(e.prevState)),t.push("")),e.nextState!==void 0&&(t.push("\u23ED\uFE0F Next State:"),t.push(m(e.nextState)),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
6
6
|
`)}export function formatLogReport(e){const n=S(e.timestamp),t=["\u{1F4DC} CONSOLE LOG REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4CC} Level: ${(e.type||"info").toUpperCase()}`,`\u{1F552} Timestamp: ${n}`,`\u{1F4AC} Message: ${e.message||""}`];return e.caller&&t.push(`\u{1F4CD} Caller: ${e.caller}`),t.push(""),e.rawArgs&&e.rawArgs.length>0&&(t.push("\u{1F4E6} Arguments:"),t.push(m(e.rawArgs)),t.push("")),(e.stack||e.errorStack)&&(t.push("\u{1F4DC} Stack Trace:"),t.push(e.stack||e.errorStack||""),t.push("")),t.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),t.push("Generated by React Native InApp Inspector"),t.join(`
|
|
7
|
-
`)}async function y(e,n,t){try{const
|
|
8
|
-
`)}export async function shareSocketReport(e){const n=formatSocketReport(e),t=`socket_${e.id??Date.now()}.txt`,
|
|
9
|
-
`).map(
|
|
10
|
-
`);h.push(A)}return h.push(""),h.push(`/${
|
|
7
|
+
`)}async function y(e,n,t){try{const r=t||`export_${Date.now()}.txt`,p=await D(r,n);if(p){const s=r.endsWith(".json")?"application/json":(r.endsWith(".log")||r.endsWith(".txt"),"text/plain");if(await k(p,s,e))return}await b.share({title:e,message:n,url:p||void 0},{dialogTitle:e,subject:e})}catch(r){r?.message!=="User did not share"&&L.alert("Share Error",r?.message||"Failed to open share sheet")}}export async function shareApiReport(e){const n=formatApiReport(e),t=`api_${e.id??Date.now()}.txt`,r=`API: ${e.method||"GET"} ${e.url?.substring(0,40)||""}`;await y(r,n,t)}export async function sharePushReport(e){const n=formatPushReport(e),t=`push_${e.id??Date.now()}.txt`,r=`Push: ${e.title||e.id||"Notification"}`;await y(r,n,t)}export async function shareCrashReport(e){const n=formatCrashReport(e),t=`crash_${e.timestamp??Date.now()}.txt`,r=`Crash: ${e.name||e.message||"Error"}`;await y(r,n,t)}export async function shareAnalyticsReport(e){const n=formatAnalyticsReport(e),t=`analytics_${e.id??Date.now()}.txt`,r=`Analytics: ${e.name||"Event"}`;await y(r,n,t)}export async function shareReduxReport(e){const n=formatReduxReport(e),t=`redux_${e.id??Date.now()}.txt`,r=`Redux: ${e.type||"Action"}`;await y(r,n,t)}export async function shareLogReport(e){const n=formatLogReport(e),t=`log_${e.id??Date.now()}.txt`,r=`Log: ${(e.type||"info").toUpperCase()} - ${e.message?.substring(0,30)||""}`;await y(r,n,t)}export function formatSocketReport(e){const n=(e.client||"websocket").toUpperCase(),t=(e.status||"open").toUpperCase(),r=e.duration!=null?`${e.duration}ms`:"Active / Open",p=S(e.startTime||Date.now()),s=["\u{1F50C} WEBSOCKET / SOCKET.IO REPORT","\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501",`\u{1F4E1} Client: ${n}`,`\u{1F310} URL: ${e.url||"N/A"}`,`\u26A1 Status: ${t}`,`\u23F1\uFE0F Connected: ${p}`,`\u23F3 Duration: ${r}`,`\u{1F4E6} Total Frames: ${e.frames?.length||0} (${e.sentCount||0} sent, ${e.receivedCount||0} recvd)`,`\u{1F4CA} Data Size: ${(e.totalBytesSent||0)+(e.totalBytesReceived||0)} bytes`];return e.protocols&&s.push(`\u{1F4DC} Protocols: ${Array.isArray(e.protocols)?e.protocols.join(", "):e.protocols}`),e.closeCode!=null&&s.push(`\u{1F6D1} Close Code: ${e.closeCode} (${e.closeReason||"N/A"})`),e.error&&s.push(`\u274C Error: ${e.error}`),e.caller&&s.push(`\u{1F4CD} Caller: ${e.caller}`),e.query&&Object.keys(e.query).length>0&&(s.push(""),s.push("\u{1F50D} Query Parameters:"),s.push(m(e.query))),e.frames&&e.frames.length>0&&(s.push(""),s.push("\u{1F4AC} Recent Message Frames:"),e.frames.slice(-10).forEach((o,C)=>{const T=o.direction==="send"?"\u2B06\uFE0F SEND":"\u2B07\uFE0F RECV",R=o.eventName?` [${o.eventName}]`:"";s.push(`--- Frame #${C+1} (${T}${R}, ${o.type}, ${o.size||0}B) ---`),s.push(m(o.data))})),s.push(""),s.push("\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501"),s.push("Generated by React Native InApp Inspector"),s.join(`
|
|
8
|
+
`)}export async function shareSocketReport(e){const n=formatSocketReport(e),t=`socket_${e.id??Date.now()}.txt`,r=`Socket: ${e.client?.toUpperCase()||"WS"} ${e.url?.substring(0,35)||""}`;await y(r,n,t)}export const DEFAULT_CONSOLE_EXPORT_OPTIONS={includeStackTrace:!0,includeArguments:!0,includeCaller:!0,includeTimestamps:!0,includeAppInfo:!0,includeDuplicates:!1,ignorePattern:""};export function generateConsoleLogsFilename(e="txt"){const n=new Date,t=String(n.getDate()).padStart(2,"0"),r=String(n.getMonth()+1).padStart(2,"0"),p=String(n.getFullYear()).slice(-2),s=Math.random().toString(36).substring(2,8).padEnd(6,"0");return`log_${t}${r}${p}_${s}.${e==="log"?"log":"txt"}`}export function formatConsoleLogsExport(e,n="txt",t=DEFAULT_CONSOLE_EXPORT_OPTIONS){if(!e||e.length===0)return"No console logs to export.";const{includeStackTrace:r=!0,includeArguments:p=!0,includeCaller:s=!0,includeTimestamps:o=!0,includeAppInfo:C=!0,includeDuplicates:T=!1,ignorePattern:R=""}=t;let x=e;if(R&&R.trim().length>0)try{const c=new RegExp(R.trim(),"i");x=e.filter(a=>{const u=a.message||"",d=a.rawArgs?m(a.rawArgs):"",l=a.caller||"";return!c.test(u)&&!c.test(d)&&!c.test(l)})}catch{}if(x.length===0)return"No console logs to export (all filtered out).";const P=new Date().toLocaleString(),$="********************************************************************************",f=[];C&&f.push(`/${$}`,` * \u{1F4DC} CONSOLE LOGS EXPORT (${n.toUpperCase()})`,` * \u{1F552} Exported At: ${P}`,` * \u{1F4CA} Total Logs: ${e.length}`," * \u2699\uFE0F Generator: React Native InApp Inspector",` ${$}/`,"");const O=e.map((c,a)=>{const u=a+1,d=S(c.timestamp),l=(c.type||"info").toUpperCase(),g=T&&c.duplicateCount&&c.duplicateCount>1?` [DUPLICATES: \xD7${c.duplicateCount}]`:"",h=[`/${$}`,` * \u{1F4CC} LOG #${u} Starts [${l}]${o?` - ${d}`:""}${g}`,` ${$}/`];if(s&&c.caller&&h.push(`\u{1F4CD} Caller: ${c.caller}`),o&&h.push(`\u{1F552} Time: ${d}`),h.push(`\u{1F3F7}\uFE0F Level: ${l}`),c.sourceMethod&&c.sourceMethod!==c.type&&h.push(`\u2699\uFE0F Method: console.${c.sourceMethod}()`),h.push(""),h.push("\u{1F4AC} Message:"),h.push(c.message||"(Empty message)"),p&&c.rawArgs&&c.rawArgs.length>0&&(h.push(""),h.push("\u{1F4E6} Arguments / Data:"),h.push(m(c.rawArgs))),r&&(c.stack||c.errorStack)){h.push(""),h.push("\u{1F4DC} Stack Trace & Frames:");const A=(c.stack||c.errorStack||"").split(`
|
|
9
|
+
`).map(i=>` ${i}`).join(`
|
|
10
|
+
`);h.push(A)}return h.push(""),h.push(`/${$}`),h.push(` * \u{1F3C1} LOG #${u} Ends`),h.push(` ${$}/`),h.join(`
|
|
11
11
|
`)}).join(`
|
|
12
12
|
|
|
13
|
-
`),I=C?["",`/${
|
|
14
|
-
`):"";return`${
|
|
15
|
-
`)}${O}${I}`}export function estimateConsoleLogsExportSize(e,n="txt",t=DEFAULT_CONSOLE_EXPORT_OPTIONS){if(!e||e.length===0)return 0;const
|
|
16
|
-
`];return N.forEach((
|
|
17
|
-
`)}const O=[];R&&O.push(`/${
|
|
13
|
+
`),I=C?["",`/${$}`," * \u{1F3C1} END OF CONSOLE LOGS EXPORT",` ${$}/`].join(`
|
|
14
|
+
`):"";return`${f.join(`
|
|
15
|
+
`)}${O}${I}`}export function estimateConsoleLogsExportSize(e,n="txt",t=DEFAULT_CONSOLE_EXPORT_OPTIONS){if(!e||e.length===0)return 0;const r=Math.min(e.length,20),p=e.slice(0,r),o=formatConsoleLogsExport(p,n,t).length/r;return Math.round(o*e.length)}export async function shareConsoleLogs(e,n="txt",t=DEFAULT_CONSOLE_EXPORT_OPTIONS,r){const p=formatConsoleLogsExport(e,n,t),s=generateConsoleLogsFilename(n);await y(r||s,p,s)}export const DEFAULT_NETWORK_EXPORT_OPTIONS={includeRequestHeaders:!0,includeRequestBody:!0,includeResponseHeaders:!0,includeResponseBody:!0,includeCurlCommand:!0,includeTimestamps:!0,includeAppInfo:!0,ignorePattern:""};export function generateNetworkLogsFilename(e="txt"){const n=new Date,t=String(n.getDate()).padStart(2,"0"),r=String(n.getMonth()+1).padStart(2,"0"),p=String(n.getFullYear()).slice(-2),s=Math.random().toString(36).substring(2,8).padEnd(6,"0");return`api_${t}${r}${p}_${s}.${e==="log"?"log":"txt"}`}export function formatNetworkLogsExport(e,n="txt",t=DEFAULT_NETWORK_EXPORT_OPTIONS){if(!e||e.length===0)return"No API requests to export.";const{includeRequestHeaders:r=!0,includeRequestBody:p=!0,includeResponseHeaders:s=!0,includeResponseBody:o=!0,includeCurlCommand:C=!0,includeTimestamps:T=!0,includeAppInfo:R=!0,ignorePattern:x=""}=t;let N=e;if(x&&x.trim().length>0)try{const a=new RegExp(x.trim(),"i");N=e.filter(u=>{const d=u.url||"",l=u.method||"",g=u.client||"",h=u.request?m(u.request):"",A=u.response?m(u.response):"",i=u.requestHeaders?m(u.requestHeaders):"",E=u.responseHeaders?m(u.responseHeaders):"";return!a.test(d)&&!a.test(l)&&!a.test(g)&&!a.test(h)&&!a.test(A)&&!a.test(i)&&!a.test(E)})}catch{}if(N.length===0)return"No API requests to export (all filtered out).";const $=new Date().toLocaleString(),f="********************************************************************************";if(n==="json"){const a=N.map((u,d)=>{const l={index:d+1,id:u.id,url:u.url,method:(u.method||"GET").toUpperCase(),status:u.status,duration:u.duration,startTime:u.startTime,client:u.client};return r&&u.requestHeaders&&(l.requestHeaders=u.requestHeaders),p&&u.request!=null&&(l.request=u.request),s&&u.responseHeaders&&(l.responseHeaders=u.responseHeaders),o&&u.response!=null&&(l.response=u.response),C&&(l.curl=w(u)),l});return JSON.stringify(a,null,2)}if(n==="curl"){const a=["#!/usr/bin/env bash","# ============================================================================== ","# \u{1F680} API Network Logs - cURL Script Export",`# \u{1F552} Exported At: ${$}`,`# \u{1F4CA} Total Commands: ${N.length}`,"# \u2699\uFE0F Generator: React Native InApp Inspector",`# ==============================================================================
|
|
16
|
+
`];return N.forEach((u,d)=>{const l=d+1,g=(u.method||"GET").toUpperCase(),h=u.status===0?"Failed / Error":u.status!=null?String(u.status):"Pending",A=u.duration!=null?`${u.duration}ms`:"N/A",i=S(u.startTime||Date.now());a.push(`# Request #${l}: [${g}] ${u.url||"N/A"} (Status: ${h}, ${A}, ${i})`);const E=w(u);E?a.push(E):a.push(`curl -X ${g} "${u.url||""}"`),a.push("")}),a.join(`
|
|
17
|
+
`)}const O=[];R&&O.push(`/${f}`,` * \u{1F680} API NETWORK LOGS EXPORT (${n.toUpperCase()})`,` * \u{1F552} Exported At: ${$}`,` * \u{1F4CA} Total Requests: ${N.length}`," * \u2699\uFE0F Generator: React Native InApp Inspector",` ${f}/`,"");const I=N.map((a,u)=>{const d=u+1,l=S(a.startTime||Date.now()),g=(a.method||"GET").toUpperCase(),h=a.status===0?"Failed / Network Error":a.status!=null?`${a.status} ${a.status===200?"OK":""}`.trim():"Pending",A=a.duration!=null?`${a.duration}ms`:"N/A",i=[`/${f}`,` * \u{1F4CC} REQUEST #${d} Starts [${g}] [${h}] [${A}]${T?` - ${l}`:""}`,` ${f}/`];if(i.push(`\u{1F310} URL: ${a.url||"N/A"}`),i.push(`\u{1F4CC} Method: ${g}`),i.push(`\u{1F4CA} Status: ${h}`),i.push(`\u23F1\uFE0F Duration: ${A}`),T&&i.push(`\u{1F552} Time: ${l}`),a.client&&i.push(`\u{1F50C} Client: ${a.client.toUpperCase()}`),r&&a.requestHeaders&&Object.keys(a.requestHeaders).length>0&&(i.push(""),i.push("\u{1F4CB} Request Headers:"),i.push(m(a.requestHeaders))),p&&a.request!=null&&a.request!==""&&(i.push(""),i.push("\u{1F4DD} Request Body:"),i.push(m(a.request))),s&&a.responseHeaders&&Object.keys(a.responseHeaders).length>0&&(i.push(""),i.push("\u{1F4D1} Response Headers:"),i.push(m(a.responseHeaders))),o&&a.response!=null&&a.response!==""&&(i.push(""),i.push("\u{1F4E5} Response Data:"),i.push(m(a.response))),C){const E=w(a);E&&(i.push(""),i.push("\u{1F4BB} cURL Command:"),i.push(E))}return i.push(""),i.push(`/${f}`),i.push(` * \u{1F3C1} REQUEST #${d} Ends`),i.push(` ${f}/`),i.join(`
|
|
18
18
|
`)}).join(`
|
|
19
19
|
|
|
20
|
-
`),c=R?["",`/${
|
|
20
|
+
`),c=R?["",`/${f}`," * \u{1F3C1} END OF API NETWORK LOGS EXPORT",` ${f}/`].join(`
|
|
21
21
|
`):"";return`${O.join(`
|
|
22
|
-
`)}${I}${c}`}export function estimateNetworkLogsExportSize(e,n="txt",t=DEFAULT_NETWORK_EXPORT_OPTIONS){if(!e||e.length===0)return 0;const
|
|
22
|
+
`)}${I}${c}`}export function estimateNetworkLogsExportSize(e,n="txt",t=DEFAULT_NETWORK_EXPORT_OPTIONS){if(!e||e.length===0)return 0;const r=Math.min(e.length,10),p=e.slice(0,r),o=formatNetworkLogsExport(p,n,t).length/r;return Math.round(o*e.length)}export async function shareNetworkLogs(e,n="txt",t=DEFAULT_NETWORK_EXPORT_OPTIONS,r){const p=formatNetworkLogsExport(e,n,t),s=generateNetworkLogsFilename(n);await y(r||s,p,s)}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import{StyleSheet as S,Platform as j}from"react-native";export function getCleanComponentName(
|
|
2
|
-
`);if(typeof
|
|
1
|
+
import{StyleSheet as S,Platform as j}from"react-native";export function getCleanComponentName(e){if(!e)return"Unknown";if(typeof e=="string")return e==="RCTView"||e==="AndroidHorizontalScrollView"?"View":e==="RCTText"||e==="RCTRawText"||e==="RCTVirtualText"?"Text":e==="RCTImageView"||e==="RCTCxxImageView"?"Image":e==="RCTScrollView"?"ScrollView":e==="RCTModalHostView"?"Modal":e==="RCTSafeAreaView"?"SafeAreaView":e.replace(/^RCT/,"").replace(/^Android/,"");if(typeof e=="function")return e.displayName||e.name||"Component";if(typeof e=="object"){if(e.$$typeof?.toString().includes("memo")&&e.type)return`Memo(${getCleanComponentName(e.type)})`;if(e.$$typeof?.toString().includes("forward_ref")&&(e.render||e.type))return e.displayName||`ForwardRef(${getCleanComponentName(e.render||e.type)})`;if(e.displayName)return e.displayName;if(e.name)return e.name}return"Component"}function I(e){if(!e)return!0;const t=e.toLowerCase();return t.includes("provider")||t.includes("consumer")||t.includes("context")||t==="errorboundary"||t==="moduleerrorboundary"||t.includes("inspector")||t==="anonymous"}export function buildHierarchyFromFiber(e){const t=[];let o=e,a=0;for(;o&&a<25;){if(o.type){const r=getCleanComponentName(o.type),s=typeof o.type=="string",c=o.memoizedProps||{},n=c.style?S.flatten(c.style):void 0;(!I(r)||t.length===0)&&t.unshift({id:`breadcrumb_${a}_${r}`,displayName:r,componentName:r,depth:a,isHostComponent:s,props:c,styles:n})}o=o.return,a++}return t}export function getDynamicInspectorDataForPoint(e,t,o){return new Promise(a=>{let r=!1;const s=setTimeout(()=>{if(!r){r=!0;const n=O(e,t);a(n)}},120),c=n=>{if(!r&&n&&(n.frame||n.hierarchy&&n.hierarchy.length>0)){r=!0,clearTimeout(s);const{frame:l,props:i,hierarchy:p,selectedIndex:d,touchedViewTag:f,closestInstance:u}=n,g=[];Array.isArray(p)&&p.forEach((h,_)=>{const N=h?.type||h,m=h?.name||getCleanComponentName(N)||`View_${_}`;let y={};try{if(typeof h.getInspectorData=="function"){const H=h.getInspectorData();H?.props&&(y=H.props)}else h.props?y=h.props:h.memoizedProps&&(y=h.memoizedProps)}catch{}const R=y?.style||typeof h.getInspectorData=="function"&&h.getInspectorData()?.props?.style,A=R?S.flatten(R):void 0;g.push({id:`crumb_${_}_${m}`,displayName:getCleanComponentName(m),componentName:m,depth:_,isHostComponent:typeof m=="string"&&(m.startsWith("RCT")||m==="View"||m==="Text"||m==="Image"),props:y,styles:A})});const b=d!=null&&g[d]?g[d]:g[g.length-1],x=b?.componentName||(u?getCleanComponentName(u.type):"View"),$=getCleanComponentName(x),w=i&&Object.keys(i).length>0?i:b?.props||{},L=w.style?S.flatten(w.style):b?.styles||{},C={x:l?.left??e,y:l?.top??t,width:l?.width??0,height:l?.height??0,pageX:l?.left??e,pageY:l?.top??t},T=createInspectedElement($,w,C,g.length>0?g:void 0,f);a(T)}};try{const n=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__||typeof window<"u"&&window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(n&&n.renderers){const l=Array.from(n.renderers.values());let i=!1,p=o||null;if(!p&&n._fiberRoots)try{for(const d of n._fiberRoots.values())if(d&&d.size>0){const f=Array.from(d.values())[0];if(f?.containerInfo){p=f.containerInfo;break}}}catch{}for(const d of l){const f=d?.rendererConfig?.getInspectorDataForViewAtPoint;if(typeof f=="function")try{f(p,e,t,u=>(c(u),!0)),i=!0}catch{}}if(!i){clearTimeout(s),r=!0;const d=O(e,t);a(d)}}else{clearTimeout(s),r=!0;const l=O(e,t);a(l)}}catch{clearTimeout(s),r=!0;const n=O(e,t);a(n)}})}function O(e,t){try{const o=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__||typeof window<"u"&&window.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!o||!o._fiberRoots)return null;let a=null;for(const d of o._fiberRoots.values())if(d&&d.size>0){const f=Array.from(d.values())[0];if(f?.current){a=f.current;break}}if(!a)return null;const r=[];let s=a,c=0;for(;s&&c<30;){if(s.type){const d=getCleanComponentName(s.type),f=typeof s.type=="string",u=s.memoizedProps||s.pendingProps||{},g=u.style?S.flatten(u.style):void 0;I(d)||r.push({id:`fiber_crumb_${c}_${d}`,displayName:d,componentName:d,depth:c,isHostComponent:f,props:u,styles:g})}s=s.child,c++}if(r.length===0)return null;const n=r[r.length-1],l=n.props||{},i=n.styles||{},p={x:i.left??e,y:i.top??t,width:i.width??120,height:i.height??44,pageX:i.left??e,pageY:i.top??t};return createInspectedElement(n.componentName,l,p,r)}catch{return null}}export function extractBoxModel(e={},t={width:0,height:0}){const o=(y,R=0)=>{const A=typeof y=="number"?y:parseFloat(y);return isNaN(A)?R:A},a=o(e.margin,0),r=o(e.marginVertical,a),s=o(e.marginHorizontal,a),c=o(e.marginTop,r),n=o(e.marginBottom,r),l=o(e.marginLeft,s),i=o(e.marginRight,s),p=o(e.padding,0),d=o(e.paddingVertical,p),f=o(e.paddingHorizontal,p),u=o(e.paddingTop,d),g=o(e.paddingBottom,d),b=o(e.paddingLeft,f),x=o(e.paddingRight,f),$=o(e.borderWidth,0),w=o(e.borderTopWidth,$),L=o(e.borderBottomWidth,$),C=o(e.borderLeftWidth,$),T=o(e.borderRightWidth,$),h=t.width||o(e.width,0),_=t.height||o(e.height,0),N=Math.max(0,h-(b+x+C+T)),m=Math.max(0,_-(u+g+w+L));return{margin:{top:c,right:i,bottom:n,left:l},border:{top:w,right:T,bottom:L,left:C},padding:{top:u,right:x,bottom:g,left:b},content:{width:Math.round(N*10)/10,height:Math.round(m*10)/10}}}export function categorizeStyles(e={}){const t={layout:{},dimensions:{},position:{},spacing:{},typography:{},appearance:{},borders:{},transforms:{},other:{}},o=new Set(["flex","flexDirection","justifyContent","alignItems","alignSelf","alignContent","flexWrap","flexGrow","flexShrink","flexBasis","gap","rowGap","columnGap"]),a=new Set(["width","height","minWidth","maxWidth","minHeight","maxHeight","aspectRatio"]),r=new Set(["position","top","bottom","left","right","start","end","zIndex"]),s=new Set(["padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingHorizontal","paddingVertical","paddingStart","paddingEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginHorizontal","marginVertical","marginStart","marginEnd"]),c=new Set(["color","fontSize","fontWeight","fontFamily","fontStyle","lineHeight","letterSpacing","textAlign","textAlignVertical","textDecorationLine","textDecorationStyle","textDecorationColor","textTransform","includeFontPadding"]),n=new Set(["backgroundColor","opacity","overflow","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","backfaceVisibility"]),l=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderStyle"]);for(const[i,p]of Object.entries(e))p!==void 0&&(o.has(i)?t.layout[i]=p:a.has(i)?t.dimensions[i]=p:r.has(i)?t.position[i]=p:s.has(i)?t.spacing[i]=p:c.has(i)?t.typography[i]=p:n.has(i)?t.appearance[i]=p:l.has(i)?t.borders[i]=p:i==="transform"?t.transforms[i]=p:t.other[i]=p);return t}function v(e){const t=e.replace("#","");if(t.length<6)return .5;const o=parseInt(t.substring(0,2),16)/255,a=parseInt(t.substring(2,4),16)/255,r=parseInt(t.substring(4,6),16)/255,s=[o,a,r].map(c=>c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4));return .2126*s[0]+.7152*s[1]+.0722*s[2]}export function calculateContrastRatio(e,t){if(!e||!t||!e.startsWith("#")||!t.startsWith("#"))return{ratio:void 0,score:"N/A"};const o=v(e),a=v(t),r=Math.max(o,a),s=Math.min(o,a),c=(r+.05)/(s+.05),n=Math.round(c*100)/100;let l="Fail";return n>=7?l="AAA":n>=4.5&&(l="AA"),{ratio:n,score:l}}export function auditAccessibility(e={},t={width:0,height:0},o={}){const a=j.OS==="android",r=a?48:44,s=typeof e.onPress=="function"||typeof e.onLongPress=="function"||e.accessible===!0,c=t.width||o.width||0,n=t.height||o.height||0,l=[];let i=!0;s&&(c>0||n>0)&&(c<r||n<r)&&(i=!1,l.push(`Touch target is ${Math.round(c)}\xD7${Math.round(n)}pt. Recommended min is ${r}\xD7${r}pt for ${a?"Android Material Design":"Apple iOS HIG"}.`));const p=!!(e.accessibilityLabel||e["aria-label"]||e.accessibilityTitle);s&&!p&&!e.children&&typeof e.children!="string"&&l.push("Interactive element is missing an accessibilityLabel / aria-label.");const d=o.color,f=o.backgroundColor,u=calculateContrastRatio(d,f);return u.score==="Fail"&&u.ratio!==void 0&&l.push(`Contrast ratio is ${u.ratio}:1 (below WCAG AA minimum 4.5:1).`),{hasValidTouchTarget:i,touchTargetWidth:c,touchTargetHeight:n,recommendedMinSize:r,contrastRatio:u.ratio,contrastScore:u.score,textColor:d,backgroundColor:f,hasAccessibilityLabel:p,accessibilityRole:e.accessibilityRole||e.role,accessibilityHint:e.accessibilityHint,issues:l}}export function generateJsxSnippet(e,t={},o={}){return generateFullJsxSegmentSnippet(e,t,o).code}function D(e,t){return typeof t=="string"?`${e}="${t}"`:typeof t=="boolean"?t?e:`${e}={false}`:typeof t=="number"?`${e}={${t}}`:typeof t=="function"?`${e}={() => {}}`:typeof t=="object"&&t!==null?`${e}={${JSON.stringify(t)}}`:`${e}={${String(t)}}`}function V(e,t=1){if(e==null)return"";const o=" ".repeat(t);if(typeof e=="string"||typeof e=="number")return`${o}${e}`;if(Array.isArray(e))return e.map(a=>V(a,t)).filter(Boolean).join(`
|
|
2
|
+
`);if(typeof e=="object"&&e.type){const a=typeof e.type=="string"?e.type:e.type.displayName||e.type.name||"Component",r=e.props||{},s=[];for(const[n,l]of Object.entries(r))n==="children"||n==="__source"||n==="__self"||n==="_source"||s.push(D(n,l));const c=s.length?" "+s.join(" "):"";if(r.children){const n=V(r.children,t+1);return`${o}<${a}${c}>
|
|
3
3
|
${n}
|
|
4
|
-
${o}</${a}>`}return`${o}<${a}${
|
|
4
|
+
${o}</${a}>`}return`${o}<${a}${c} />`}return""}export function generateFullJsxSegmentSnippet(e,t={},o={}){const a=t.__source||t._source,r=a?.fileName,s=a?.lineNumber,c=a?.columnNumber,n=r?r.replace(/^.*[\\/]/,""):void 0,l=n&&s?`${n}:${s}${c?`:${c}`:""}`:void 0,i=[];for(const[f,u]of Object.entries(t))f==="children"||f==="style"||f==="key"||f==="__source"||f==="__self"||f==="_source"||i.push(D(f,u));Object.keys(o).length>0&&i.push(`style={styles.${e.toLowerCase()||"container"}}`);const p=V(t.children,1);let d="";return i.length<=1&&!p?d=`<${e}${i.length?" "+i.join(" "):""} />`:p?d=`<${e}${i.length?`
|
|
5
5
|
`+i.join(`
|
|
6
6
|
`):""}>
|
|
7
7
|
${p}
|
|
8
|
-
</${
|
|
8
|
+
</${e}>`:d=`<${e}
|
|
9
9
|
${i.join(`
|
|
10
10
|
`)}
|
|
11
|
-
/>`,{code:d,sourceFile:r,sourceLocation:
|
|
11
|
+
/>`,{code:d,sourceFile:r,sourceLocation:l,lineNumber:s,columnNumber:c}}export function generateStyleSheetSnippet(e,t={}){const o=" ",a=[];for(const[s,c]of Object.entries(t)){if(c===void 0)continue;const n=typeof c=="string"?`'${c}'`:typeof c=="object"?JSON.stringify(c):String(c);a.push(`${o}${s}: ${n},`)}const r=a.length>0?`{
|
|
12
12
|
${a.join(`
|
|
13
13
|
`)}
|
|
14
14
|
}`:"{}";return`const styles = StyleSheet.create({
|
|
15
|
-
${
|
|
16
|
-
});`}export function generateCssSnippet(t
|
|
15
|
+
${e.toLowerCase()}Container: ${r},
|
|
16
|
+
});`}export function generateCssSnippet(e,t={}){const o=[];for(const[r,s]of Object.entries(t)){if(s===void 0)continue;const c=r.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase(),n=typeof s=="number"?`${s}px`:String(s);o.push(` ${c}: ${n};`)}const a=o.length>0?`{
|
|
17
17
|
${o.join(`
|
|
18
18
|
`)}
|
|
19
|
-
}`:"{}";return`.${
|
|
19
|
+
}`:"{}";return`.${e.toLowerCase()}-element ${a}`}export function createInspectedElement(e,t={},o,a=[],r,s,c){const n=t.style?S.flatten(t.style)||{}:{},l={...n},i=extractBoxModel(l,o),p=auditAccessibility(t,o,l);return{id:`elem_${Date.now()}_${Math.random().toString(36).substring(2,6)}`,componentName:e,displayName:e,hierarchy:a.length>0?a:[{id:"root_app",displayName:"App",componentName:"App",depth:0,isHostComponent:!1},{id:"inspected_node",displayName:e,componentName:e,depth:1,isHostComponent:!0,props:t,styles:l}],props:t,originalStyles:n,flattenedStyles:l,tweakedStyles:{},layout:o,boxModel:i,a11y:p,nativeTag:r,snapshotUri:s,snapshotBase64:c,timestamp:Date.now()}}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export { default as GlobalCrashScreenModal } from './components/Inspector/Global
|
|
|
13
13
|
export { connectReduxStore, inspectorReduxMiddleware, getReduxState, subscribeReduxState, getActionHistory, clearActionHistory, getLastActionForReducer, setMaxReduxHistoryLimit, getMaxReduxHistoryLimit, pruneReduxHistory, isReduxConnected, } from './customHooks/reduxLogger';
|
|
14
14
|
export { getEventCategory, registerGAPlugin, type GAPlugin, } from './helpers/gaAnalyticsRegistry';
|
|
15
15
|
export { InspectLog, InspectTrackTime, InspectCatch, type InspectLogOptions, } from './decorators';
|
|
16
|
-
export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
|
|
16
|
+
export { getNativeDeviceMetrics, enableNativeCrashProtection, getLastNativeCrash, clearLastNativeCrash, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
|
|
17
17
|
export { setupMemoryWarningHandler, pruneAllLogs, subscribeMemoryWarning, type MemoryPruneSummary, } from './helpers';
|
|
18
18
|
export { recordPushNotification, recordSalesforcePush, getPushRecords, clearPushRecords, subscribePushEvents, simulateTestPush, autoSetupPushLogger, setMaxPushRecordsLimit, getDiscoveredPushSources, prunePushRecords, } from './customHooks/pushNotificationLogger';
|
|
19
19
|
export { setupSocketLogger, clearSocketRecords, subscribeSocketRecords, getSocketRecords, setSocketModuleEnabled, getSocketModuleEnabled, setMaxSocketRecordsLimit, getMaxSocketRecordsLimit, pruneSocketRecords, recordSocketConnection, recordSocketFrame, recordSocketClose, recordSocketError, simulateTestSocket, analyzeSocketPayload, } from './customHooks/socketLogger';
|