react-native-inapp-inspector 2.3.12 → 2.3.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.
Files changed (232) hide show
  1. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/results.bin +1 -0
  2. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/transformed/classes/classes_dex/classes.dex +0 -0
  3. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/results.bin +1 -0
  4. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  5. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  6. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  7. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  8. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  9. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  10. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  11. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  12. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  13. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  14. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  15. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +104 -0
  16. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  17. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +128 -0
  18. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  19. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  20. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  21. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  22. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  23. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  24. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  25. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +177 -0
  26. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  27. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  28. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  29. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  30. package/android/build/generated/source/codegen/schema.json +1 -0
  31. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  32. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  33. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  34. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  35. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  36. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  37. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  38. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  39. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  40. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  41. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  42. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  43. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  44. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  45. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  46. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  47. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  48. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  49. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  50. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  51. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-react-native-inapp-inspector.jar +0 -0
  52. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  53. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  54. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  55. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  56. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  57. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  58. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  59. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  60. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  61. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  62. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  63. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  64. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  65. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  66. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  155. package/android/build/outputs/aar/react-native-inapp-inspector-debug.aar +0 -0
  156. package/android/build/outputs/logs/manifest-merger-debug-report.txt +17 -0
  157. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  158. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  159. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  160. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  161. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  162. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  163. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  164. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  165. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  166. package/bin/cli.js +6 -0
  167. package/dist/commonjs/components/HeadersSection.js +3 -2
  168. package/dist/commonjs/components/Inspector/BundleTab.js +4 -4
  169. package/dist/commonjs/components/Inspector/DebuggingTab.js +742 -427
  170. package/dist/commonjs/components/Inspector/MainScreen.js +4 -1
  171. package/dist/commonjs/components/Inspector/NetworkDetail.js +2 -2
  172. package/dist/commonjs/components/Inspector/NetworkFilterModal.js +18 -12
  173. package/dist/commonjs/components/Inspector/SettingsPanel.js +6 -4
  174. package/dist/commonjs/components/Inspector/StorageTab.js +10 -4
  175. package/dist/commonjs/components/Inspector/TabBar.js +6 -2
  176. package/dist/commonjs/components/JsonViewer.js +3 -2
  177. package/dist/commonjs/components/NetworkIcons.d.ts +4 -1
  178. package/dist/commonjs/components/NetworkIcons.js +26 -3
  179. package/dist/commonjs/components/QRCodeView.js +1 -1
  180. package/dist/commonjs/constants/version.d.ts +1 -1
  181. package/dist/commonjs/constants/version.js +1 -1
  182. package/dist/commonjs/helpers/index.d.ts +1 -0
  183. package/dist/commonjs/helpers/index.js +11 -1
  184. package/dist/commonjs/helpers/qrGenerator.d.ts +1 -0
  185. package/dist/commonjs/helpers/qrGenerator.js +356 -33
  186. package/dist/commonjs/index.d.ts +1 -0
  187. package/dist/commonjs/index.js +5 -3
  188. package/dist/commonjs/metro.d.ts +25 -0
  189. package/dist/commonjs/metro.js +478 -0
  190. package/dist/esm/components/HeadersSection.js +3 -2
  191. package/dist/esm/components/Inspector/BundleTab.js +5 -5
  192. package/dist/esm/components/Inspector/DebuggingTab.js +745 -430
  193. package/dist/esm/components/Inspector/MainScreen.js +4 -1
  194. package/dist/esm/components/Inspector/NetworkDetail.js +2 -2
  195. package/dist/esm/components/Inspector/NetworkFilterModal.js +19 -13
  196. package/dist/esm/components/Inspector/SettingsPanel.js +7 -5
  197. package/dist/esm/components/Inspector/StorageTab.js +11 -5
  198. package/dist/esm/components/Inspector/TabBar.js +7 -3
  199. package/dist/esm/components/JsonViewer.js +4 -3
  200. package/dist/esm/components/NetworkIcons.d.ts +4 -1
  201. package/dist/esm/components/NetworkIcons.js +22 -2
  202. package/dist/esm/components/QRCodeView.js +1 -1
  203. package/dist/esm/constants/version.d.ts +1 -1
  204. package/dist/esm/constants/version.js +1 -1
  205. package/dist/esm/helpers/index.d.ts +1 -0
  206. package/dist/esm/helpers/index.js +9 -0
  207. package/dist/esm/helpers/qrGenerator.d.ts +1 -0
  208. package/dist/esm/helpers/qrGenerator.js +356 -30
  209. package/dist/esm/index.d.ts +1 -0
  210. package/dist/esm/index.js +3 -2
  211. package/dist/esm/metro.d.ts +25 -0
  212. package/dist/esm/metro.js +469 -0
  213. package/metro.d.ts +1 -0
  214. package/metro.js +1 -0
  215. package/package.json +16 -5
  216. package/src/components/HeadersSection.tsx +7 -2
  217. package/src/components/Inspector/BundleTab.tsx +9 -4
  218. package/src/components/Inspector/DebuggingTab.tsx +845 -498
  219. package/src/components/Inspector/MainScreen.tsx +4 -1
  220. package/src/components/Inspector/NetworkDetail.tsx +2 -2
  221. package/src/components/Inspector/NetworkFilterModal.tsx +32 -12
  222. package/src/components/Inspector/SettingsPanel.tsx +85 -75
  223. package/src/components/Inspector/StorageTab.tsx +15 -4
  224. package/src/components/Inspector/TabBar.tsx +16 -2
  225. package/src/components/JsonViewer.tsx +8 -3
  226. package/src/components/NetworkIcons.tsx +71 -1
  227. package/src/components/QRCodeView.tsx +2 -2
  228. package/src/constants/version.ts +1 -1
  229. package/src/helpers/index.ts +15 -0
  230. package/src/helpers/qrGenerator.ts +418 -37
  231. package/src/index.tsx +5 -3
  232. package/src/metro.ts +598 -0
@@ -36,6 +36,7 @@ import Toast from '../Toast';
36
36
  import styles from '../../styles';
37
37
  import {AppColors} from '../../styles/AppColors';
38
38
  import NavigationTracker from './NavigationTracker';
39
+ import {isLocalDebugEnvironment} from '../../helpers';
39
40
 
40
41
  const MainScreen = () => {
41
42
  const {
@@ -171,7 +172,9 @@ const MainScreen = () => {
171
172
  {activeTab === 'crash' && <CrashTab />}
172
173
  {activeTab === 'device' && <DeviceInfoTab />}
173
174
  {activeTab === 'storage' && <StorageTab />}
174
- {activeTab === 'debugging' && <DebuggingTab />}
175
+ {Platform.OS === 'android' &&
176
+ isLocalDebugEnvironment() &&
177
+ activeTab === 'debugging' && <DebuggingTab />}
175
178
  </Animated.View>
176
179
 
177
180
  {/* Detail View Layer - Rendered on top with smooth slide & spring transition */}
@@ -432,7 +432,7 @@ const NetworkDetail = React.memo(() => {
432
432
  letterSpacing: 0.4,
433
433
  textTransform: 'uppercase',
434
434
  }}>
435
- ENDPOINT URL
435
+ ENDPOINT URL
436
436
  </Text>
437
437
  </View>
438
438
 
@@ -473,7 +473,7 @@ const NetworkDetail = React.memo(() => {
473
473
  fontSize: 9,
474
474
  color: AppColors.sky600,
475
475
  }}>
476
- Open
476
+ Open
477
477
  </Text>
478
478
  </View>
479
479
  </View>
@@ -27,6 +27,11 @@ import {
27
27
  BoltIcon,
28
28
  GlobeIcon,
29
29
  LockIcon,
30
+ UnlockIcon,
31
+ RocketIcon,
32
+ TurtleIcon,
33
+ HourglassIcon,
34
+ PackageIcon,
30
35
  } from '../NetworkIcons';
31
36
  import TouchableScale from '../TouchableScale';
32
37
 
@@ -405,12 +410,13 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
405
410
  <Text style={styles.sectionTitle}>LATENCY & SPEED</Text>
406
411
  <View style={styles.chipsWrap}>
407
412
  {[
408
- {key: 'all' as const, label: 'All Speeds', color: AppColors.purple},
409
- {key: 'fast' as const, label: 'Fast (<200ms)', color: AppColors.greenColor, count: counts.fastCount},
410
- {key: 'normal' as const, label: '⏱️ Normal (200-500ms)', color: AppColors.skyBlue, count: counts.normalCount},
411
- {key: 'slow' as const, label: '⚠️ Slow (>500ms)', color: AppColors.errorColor, count: counts.slowCount},
413
+ {key: 'all' as const, label: 'All Speeds', color: AppColors.purple, icon: LayersIcon},
414
+ {key: 'fast' as const, label: 'Fast (<200ms)', color: AppColors.greenColor, icon: BoltIcon, count: counts.fastCount},
415
+ {key: 'normal' as const, label: 'Normal (200-500ms)', color: AppColors.skyBlue, icon: ClockIcon, count: counts.normalCount},
416
+ {key: 'slow' as const, label: 'Slow (>500ms)', color: AppColors.errorColor, icon: CircleAlertIcon, count: counts.slowCount},
412
417
  ].map(item => {
413
418
  const isSelected = draft.latency === item.key;
419
+ const IconComp = item.icon;
414
420
  return (
415
421
  <TouchableOpacity
416
422
  key={item.key}
@@ -423,6 +429,10 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
423
429
  borderColor: item.color,
424
430
  },
425
431
  ]}>
432
+ <IconComp
433
+ size={13}
434
+ color={isSelected ? item.color : AppColors.grayTextWeak}
435
+ />
426
436
  <Text
427
437
  style={[
428
438
  styles.chipLabel,
@@ -448,11 +458,12 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
448
458
  <Text style={styles.sectionTitle}>PROTOCOL</Text>
449
459
  <View style={styles.chipsWrap}>
450
460
  {[
451
- {key: 'all' as const, label: 'All Protocols', color: AppColors.purple},
452
- {key: 'https' as const, label: '🔒 HTTPS Secure', color: AppColors.mintGreenText, count: counts.httpsCount},
453
- {key: 'http' as const, label: '🔓 HTTP Insecure', color: AppColors.amber700, count: counts.httpCount},
461
+ {key: 'all' as const, label: 'All Protocols', color: AppColors.purple, icon: GlobeIcon},
462
+ {key: 'https' as const, label: 'HTTPS Secure', color: AppColors.mintGreenText, icon: LockIcon, count: counts.httpsCount},
463
+ {key: 'http' as const, label: 'HTTP Insecure', color: AppColors.amber700, icon: UnlockIcon, count: counts.httpCount},
454
464
  ].map(item => {
455
465
  const isSelected = draft.protocol === item.key;
466
+ const IconComp = item.icon;
456
467
  return (
457
468
  <TouchableOpacity
458
469
  key={item.key}
@@ -465,6 +476,10 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
465
476
  borderColor: item.color,
466
477
  },
467
478
  ]}>
479
+ <IconComp
480
+ size={13}
481
+ color={isSelected ? item.color : AppColors.grayTextWeak}
482
+ />
468
483
  <Text
469
484
  style={[
470
485
  styles.chipLabel,
@@ -490,13 +505,14 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
490
505
  <Text style={styles.sectionTitle}>SORT BY</Text>
491
506
  <View style={styles.chipsWrap}>
492
507
  {[
493
- {key: 'time_desc' as const, label: '⏱️ Newest First (Default)'},
494
- {key: 'time_asc' as const, label: 'Oldest First'},
495
- {key: 'duration_desc' as const, label: '🐢 Slowest Response'},
496
- {key: 'duration_asc' as const, label: '🚀 Fastest Response'},
497
- {key: 'size_desc' as const, label: '📦 Largest Response Size'},
508
+ {key: 'time_desc' as const, label: 'Newest First (Default)', icon: ClockIcon},
509
+ {key: 'time_asc' as const, label: 'Oldest First', icon: HourglassIcon},
510
+ {key: 'duration_desc' as const, label: 'Slowest Response', icon: TurtleIcon},
511
+ {key: 'duration_asc' as const, label: 'Fastest Response', icon: RocketIcon},
512
+ {key: 'size_desc' as const, label: 'Largest Response Size', icon: PackageIcon},
498
513
  ].map(item => {
499
514
  const isSelected = draft.sortBy === item.key;
515
+ const IconComp = item.icon;
500
516
  return (
501
517
  <TouchableOpacity
502
518
  key={item.key}
@@ -509,6 +525,10 @@ export const NetworkFilterModal: React.FC<NetworkFilterModalProps> = ({
509
525
  borderColor: AppColors.purple,
510
526
  },
511
527
  ]}>
528
+ <IconComp
529
+ size={13}
530
+ color={isSelected ? AppColors.purple : AppColors.grayTextWeak}
531
+ />
512
532
  <Text
513
533
  style={[
514
534
  styles.chipLabel,
@@ -59,7 +59,7 @@ import {
59
59
  QrCodeIcon,
60
60
  } from '../NetworkIcons';
61
61
  import {LIB_VERSION} from '../../constants';
62
- import {copyToClipboard} from '../../helpers';
62
+ import {copyToClipboard, isLocalDebugEnvironment} from '../../helpers';
63
63
  import {showToast} from '../../helpers/toast';
64
64
  import {pruneAllLogs} from '../../helpers/memoryManager';
65
65
 
@@ -131,78 +131,88 @@ const SettingsPanel = () => {
131
131
  Platform.OS === 'android' ? StatusBar.currentHeight || 24 : 44;
132
132
  const headerTopPadding = modalHeightPercent >= 95 ? statusBarHeight : 0;
133
133
 
134
- const allModules = [
135
- {
136
- key: 'apis',
137
- label: 'APIs (Network)',
138
- category: 'core',
139
- icon: 'apis',
140
- desc: 'HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector',
141
- },
142
- {
143
- key: 'logs',
144
- label: 'Console Logs',
145
- category: 'core',
146
- icon: 'logs',
147
- desc: 'Terminal console logs, warnings, errors & stack traces',
148
- },
149
- {
150
- key: 'performance',
151
- label: 'Performance Tracker',
152
- category: 'diagnostic',
153
- icon: 'performance',
154
- desc: '60 FPS monitor, Hermes memory telemetry & re-render profiler',
155
- },
156
- {
157
- key: 'bundle',
158
- label: 'Bundle Analyzer',
159
- category: 'diagnostic',
160
- icon: 'bundle',
161
- desc: 'Metro packager dependencies, source maps & asset breakdown',
162
- },
163
- {
164
- key: 'crash',
165
- label: 'Crash Protection',
166
- category: 'diagnostic',
167
- icon: 'crash',
168
- desc: 'Runtime exception guard, breadcrumbs & memory snapshot',
169
- },
170
- {
171
- key: 'analytics',
172
- label: 'Analytics Logger',
173
- category: 'telemetry',
174
- icon: 'analytics',
175
- desc: 'Firebase & custom analytics events, user properties & params',
176
- },
177
- {
178
- key: 'redux',
179
- label: 'Redux Inspector',
180
- category: 'telemetry',
181
- icon: 'redux',
182
- desc: 'Store state diffing, action history & reducer timeline',
183
- },
184
- {
185
- key: 'device',
186
- label: 'Device Info',
187
- category: 'diagnostic',
188
- icon: 'device',
189
- desc: 'Hardware specs, IP address, screen metrics, UDID & runtime stats',
190
- },
191
- {
192
- key: 'storage',
193
- label: 'Storage Inspector',
194
- category: 'telemetry',
195
- icon: 'storage',
196
- desc: 'AsyncStorage & MMKV key-value store viewer with full CRUD support',
197
- },
198
- {
199
- key: 'debugging',
200
- label: 'Multi-Device Debugging',
201
- category: 'diagnostic',
202
- icon: 'debugging',
203
- desc: 'QR Code bridge for direct Debug APK download & Metro live-reload sync',
204
- },
205
- ] as const;
134
+ const allModules = useMemo(
135
+ () =>
136
+ (
137
+ [
138
+ {
139
+ key: 'apis',
140
+ label: 'APIs (Network)',
141
+ category: 'core',
142
+ icon: 'apis',
143
+ desc: 'HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector',
144
+ },
145
+ {
146
+ key: 'logs',
147
+ label: 'Console Logs',
148
+ category: 'core',
149
+ icon: 'logs',
150
+ desc: 'Terminal console logs, warnings, errors & stack traces',
151
+ },
152
+ {
153
+ key: 'performance',
154
+ label: 'Performance Tracker',
155
+ category: 'diagnostic',
156
+ icon: 'performance',
157
+ desc: '60 FPS monitor, Hermes memory telemetry & re-render profiler',
158
+ },
159
+ {
160
+ key: 'bundle',
161
+ label: 'Bundle Analyzer',
162
+ category: 'diagnostic',
163
+ icon: 'bundle',
164
+ desc: 'Metro packager dependencies, source maps & asset breakdown',
165
+ },
166
+ {
167
+ key: 'crash',
168
+ label: 'Crash Protection',
169
+ category: 'diagnostic',
170
+ icon: 'crash',
171
+ desc: 'Runtime exception guard, breadcrumbs & memory snapshot',
172
+ },
173
+ {
174
+ key: 'analytics',
175
+ label: 'Analytics Logger',
176
+ category: 'telemetry',
177
+ icon: 'analytics',
178
+ desc: 'Firebase & custom analytics events, user properties & params',
179
+ },
180
+ {
181
+ key: 'redux',
182
+ label: 'Redux Inspector',
183
+ category: 'telemetry',
184
+ icon: 'redux',
185
+ desc: 'Store state diffing, action history & reducer timeline',
186
+ },
187
+ {
188
+ key: 'device',
189
+ label: 'Device Info',
190
+ category: 'diagnostic',
191
+ icon: 'device',
192
+ desc: 'Hardware specs, IP address, screen metrics, UDID & runtime stats',
193
+ },
194
+ {
195
+ key: 'storage',
196
+ label: 'Storage Inspector',
197
+ category: 'telemetry',
198
+ icon: 'storage',
199
+ desc: 'AsyncStorage & MMKV key-value store viewer with full CRUD support',
200
+ },
201
+ {
202
+ key: 'debugging',
203
+ label: 'Multi-Device Debugging',
204
+ category: 'diagnostic',
205
+ icon: 'debugging',
206
+ desc: 'QR Code bridge for direct Debug APK download & Metro live-reload sync',
207
+ },
208
+ ] as const
209
+ ).filter(m =>
210
+ m.key === 'debugging'
211
+ ? Platform.OS === 'android' && isLocalDebugEnvironment()
212
+ : true,
213
+ ),
214
+ [],
215
+ );
206
216
 
207
217
  // Staged selection state for checkboxes before clicking "Save Changes"
208
218
  const [stagedTabVisibility, setStagedTabVisibility] = useState<
@@ -217,7 +227,7 @@ const SettingsPanel = () => {
217
227
  crash: Boolean(tabVisibility?.crash),
218
228
  device: Boolean(tabVisibility?.device),
219
229
  storage: Boolean(tabVisibility?.storage),
220
- debugging: Boolean(tabVisibility?.debugging ?? true),
230
+ debugging: Boolean(tabVisibility?.debugging),
221
231
  }));
222
232
 
223
233
  // Synchronize staged state with tabVisibility when tabVisibility updates
@@ -232,7 +242,7 @@ const SettingsPanel = () => {
232
242
  crash: Boolean(tabVisibility?.crash),
233
243
  device: Boolean(tabVisibility?.device),
234
244
  storage: Boolean(tabVisibility?.storage),
235
- debugging: Boolean(tabVisibility?.debugging ?? true),
245
+ debugging: Boolean(tabVisibility?.debugging),
236
246
  });
237
247
  }, [tabVisibility]);
238
248
 
@@ -30,6 +30,7 @@ import {
30
30
  LayersIcon,
31
31
  ResetIcon,
32
32
  ChevronIcon,
33
+ WarningTriangleIcon,
33
34
  } from '../NetworkIcons';
34
35
  import {
35
36
  fetchStorageEntries,
@@ -162,9 +163,16 @@ const StorageEntryCard = React.memo(function StorageEntryCard({
162
163
  {displayValue}
163
164
  </Text>
164
165
  {entry.value.length > 80 && (
165
- <Text style={styles.expandHint}>
166
- {isExpanded ? '▲ Collapse' : '▼ Expand'}
167
- </Text>
166
+ <View style={{flexDirection: 'row', alignItems: 'center', gap: 4, marginTop: 4}}>
167
+ <Text style={styles.expandHint}>
168
+ {isExpanded ? 'Collapse' : 'Expand'}
169
+ </Text>
170
+ <ChevronIcon
171
+ direction={isExpanded ? 'up' : 'down'}
172
+ size={10}
173
+ color={AppColors.purple}
174
+ />
175
+ </View>
168
176
  )}
169
177
  </TouchableScale>
170
178
  </View>
@@ -710,7 +718,10 @@ export const StorageTab = React.memo(() => {
710
718
  autoCapitalize="none"
711
719
  />
712
720
  {jsonError && (
713
- <Text style={styles.errorText}>⚠️ {jsonError}</Text>
721
+ <View style={{flexDirection: 'row', alignItems: 'center', gap: 5, marginTop: 4}}>
722
+ <WarningTriangleIcon size={12} color={AppColors.errorColor} />
723
+ <Text style={styles.errorText}>{jsonError}</Text>
724
+ </View>
714
725
  )}
715
726
  </View>
716
727
 
@@ -1,5 +1,12 @@
1
1
  import React from 'react';
2
- import {Animated, ScrollView, Text, TouchableOpacity, View} from 'react-native';
2
+ import {
3
+ Animated,
4
+ Platform,
5
+ ScrollView,
6
+ Text,
7
+ TouchableOpacity,
8
+ View,
9
+ } from 'react-native';
3
10
  import {useInspector} from './InspectorContext';
4
11
  import styles from '../../styles';
5
12
  import {AppColors} from '../../styles/AppColors';
@@ -20,6 +27,7 @@ import {
20
27
  import {isReduxConnected} from '../../customHooks/reduxLogger';
21
28
  import {isAnalyticsConnected} from '../../customHooks/analyticsLogger';
22
29
  import {triggerNativeHaptic} from '../../native/NativeInspector';
30
+ import {isLocalDebugEnvironment} from '../../helpers';
23
31
 
24
32
  const TabBar = React.memo(() => {
25
33
  const {
@@ -110,7 +118,13 @@ const TabBar = React.memo(() => {
110
118
  ] as const
111
119
  )
112
120
  .filter(tab => {
113
- if (tab.key === 'debugging') return true;
121
+ if (tab.key === 'debugging') {
122
+ return (
123
+ Platform.OS === 'android' &&
124
+ isLocalDebugEnvironment() &&
125
+ Boolean(tabVisibility?.debugging)
126
+ );
127
+ }
114
128
  if (!tabVisibility?.[tab.key]) return false;
115
129
  if (tab.key === 'redux' && !isReduxAvail) return false;
116
130
  if (tab.key === 'analytics' && !isAnalyticsAvail) return false;
@@ -7,7 +7,7 @@ import TreeNode from './TreeNode';
7
7
  import SegmentedTabs from './SegmentedTabs';
8
8
  import HighlightText from './HighlightText';
9
9
  import CopyButton from './CopyButton';
10
- import {PrettyIcon, RawIcon, TableIcon} from './NetworkIcons';
10
+ import {PrettyIcon, RawIcon, TableIcon, ChevronIcon} from './NetworkIcons';
11
11
 
12
12
  // Styles
13
13
  import {AppColors} from '../styles/AppColors';
@@ -77,10 +77,15 @@ const JsonTableRow = React.memo(({
77
77
  <TouchableOpacity
78
78
  onPress={() => setExpanded(prev => !prev)}
79
79
  hitSlop={6}
80
- style={localStyles.showMoreBtn}>
80
+ style={[localStyles.showMoreBtn, {flexDirection: 'row', alignItems: 'center', gap: 4}]}>
81
81
  <Text style={localStyles.showMoreText}>
82
- {expanded ? 'Show less' : 'Show more'}
82
+ {expanded ? 'Show less' : 'Show more'}
83
83
  </Text>
84
+ <ChevronIcon
85
+ direction={expanded ? 'up' : 'down'}
86
+ size={10}
87
+ color={AppColors.purple}
88
+ />
84
89
  </TouchableOpacity>
85
90
  )}
86
91
  </View>
@@ -570,11 +570,16 @@ export const SortArrowIcon = ({
570
570
  export const ChevronIcon = ({
571
571
  color = AppColors.grayTextWeak,
572
572
  size = 14,
573
+ direction = 'down',
573
574
  }: IconProps) => {
575
+ let path = 'M6 9l6 6 6-6';
576
+ if (direction === 'up') path = 'M18 15l-6-6-6 6';
577
+ else if (direction === 'right') path = 'M9 18l6-6-6-6';
578
+ else if (direction === 'left') path = 'M15 18l-6-6 6-6';
574
579
  return (
575
580
  <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
576
581
  <Path
577
- d="M6 9l6 6 6-6"
582
+ d={path}
578
583
  stroke={color}
579
584
  strokeWidth="2.5"
580
585
  strokeLinecap="round"
@@ -2285,3 +2290,68 @@ export const QrCodeIcon = ({
2285
2290
  </Svg>
2286
2291
  );
2287
2292
 
2293
+ export const UnlockIcon = ({
2294
+ color = AppColors.grayTextWeak,
2295
+ size = 14,
2296
+ }: IconProps) => (
2297
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
2298
+ <Rect
2299
+ x="3"
2300
+ y="11"
2301
+ width="18"
2302
+ height="11"
2303
+ rx="2"
2304
+ ry="2"
2305
+ stroke={color}
2306
+ strokeWidth="2"
2307
+ strokeLinecap="round"
2308
+ strokeLinejoin="round"
2309
+ />
2310
+ <Path
2311
+ d="M7 11V7a5 5 0 0 1 9.9-1"
2312
+ stroke={color}
2313
+ strokeWidth="2"
2314
+ strokeLinecap="round"
2315
+ strokeLinejoin="round"
2316
+ />
2317
+ </Svg>
2318
+ );
2319
+
2320
+ export const RocketIcon = ({
2321
+ color = AppColors.grayTextWeak,
2322
+ size = 14,
2323
+ }: IconProps) => (
2324
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
2325
+ <Path
2326
+ d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09zM12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6.05 11a22.35 22.35 0 0 1-3.95 2z"
2327
+ stroke={color}
2328
+ strokeWidth="2"
2329
+ strokeLinecap="round"
2330
+ strokeLinejoin="round"
2331
+ />
2332
+ <Path
2333
+ d="M9 12l-4 4M15 6l-3 3"
2334
+ stroke={color}
2335
+ strokeWidth="2"
2336
+ strokeLinecap="round"
2337
+ strokeLinejoin="round"
2338
+ />
2339
+ </Svg>
2340
+ );
2341
+
2342
+ export const TurtleIcon = ({
2343
+ color = AppColors.grayTextWeak,
2344
+ size = 14,
2345
+ }: IconProps) => (
2346
+ <Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
2347
+ <Ellipse cx="12" cy="14" rx="7" ry="5" stroke={color} strokeWidth="2" />
2348
+ <Circle cx="12" cy="6" r="3" stroke={color} strokeWidth="2" />
2349
+ <Path
2350
+ d="M5 12l-2-2M19 12l2-2M6 18l-2 2M18 18l2 2"
2351
+ stroke={color}
2352
+ strokeWidth="2"
2353
+ strokeLinecap="round"
2354
+ />
2355
+ </Svg>
2356
+ );
2357
+
@@ -19,8 +19,8 @@ export const QRCodeView: React.FC<QRCodeViewProps> = ({
19
19
  }) => {
20
20
  const matrix = useMemo(() => generateQRMatrix(value || 'http://localhost:8081'), [value]);
21
21
  const numCells = matrix.length || 21;
22
- // Add a 3-module quiet zone (white border) required by QR scanners
23
- const margin = 3;
22
+ // Standard 4-module quiet zone (white border) for 100% instant phone camera / Google Lens recognition
23
+ const margin = 4;
24
24
  const totalCells = numCells + margin * 2;
25
25
  const cellSize = size / totalCells;
26
26
 
@@ -1,3 +1,3 @@
1
1
  // AUTO-GENERATED FILE — do not edit by hand.
2
2
  // Regenerated from package.json on every build by scripts/gen-version.js.
3
- export const LIB_VERSION = '2.3.12';
3
+ export const LIB_VERSION = '2.3.14';
@@ -25,6 +25,21 @@ import {
25
25
  export * from './searchQueryParser';
26
26
  export * from './memoryManager';
27
27
 
28
+ /**
29
+ * Returns true if running in local debug environment (connected to Metro/dev server, __DEV__ is true).
30
+ * Returns false in standalone release / signed APKs.
31
+ */
32
+ export const isLocalDebugEnvironment = (): boolean => {
33
+ const isDev = typeof __DEV__ !== 'undefined' && Boolean(__DEV__);
34
+ const scriptURL: string = NativeModules.SourceCode?.scriptURL || '';
35
+ const hasDevServer =
36
+ scriptURL.startsWith('http://') ||
37
+ scriptURL.startsWith('https://') ||
38
+ scriptURL.includes(':8081') ||
39
+ scriptURL.includes(':8082');
40
+ return isDev || hasDevServer;
41
+ };
42
+
28
43
  export const getDomainColor = (domain: string): string => {
29
44
  if (!domain) return DOMAIN_COLORS[0];
30
45
  let hash = 0;