react-native-inapp-inspector 2.3.13 → 2.3.15

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 (284) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/8.9/gc.properties +0 -0
  9. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  10. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  11. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  12. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  13. package/android/.gradle/9.2.0/gc.properties +0 -0
  14. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  15. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  16. package/android/.gradle/vcs-1/gc.properties +0 -0
  17. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/results.bin +1 -0
  18. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/transformed/classes/classes_dex/classes.dex +0 -0
  19. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/results.bin +1 -0
  20. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  21. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  22. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  23. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  24. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  25. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  26. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  27. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  28. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  29. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  30. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  31. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +104 -0
  32. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  33. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +128 -0
  34. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  35. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  36. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  37. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  38. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  39. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  40. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  41. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +177 -0
  42. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  43. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  44. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  45. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  46. package/android/build/generated/source/codegen/schema.json +1 -0
  47. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
  48. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  49. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  50. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  51. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  52. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  53. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  54. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  55. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  56. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  57. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  58. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  59. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  60. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  61. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  62. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  63. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  64. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  65. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  66. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
  67. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-react-native-inapp-inspector.jar +0 -0
  68. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
  69. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  70. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  71. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  82. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  171. package/android/build/outputs/aar/react-native-inapp-inspector-debug.aar +0 -0
  172. package/android/build/outputs/logs/manifest-merger-debug-report.txt +17 -0
  173. package/android/build/reports/problems/problems-report.html +659 -0
  174. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  175. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  176. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  177. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  178. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  179. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  183. package/bin/cli.js +6 -0
  184. package/dist/commonjs/components/AnimatedEntrance.js +3 -3
  185. package/dist/commonjs/components/ConsoleLogCard.js +174 -100
  186. package/dist/commonjs/components/Inspector/ConsoleTab.js +25 -16
  187. package/dist/commonjs/components/Inspector/CrashTab.js +19 -5
  188. package/dist/commonjs/components/Inspector/DebuggingTab.js +741 -438
  189. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +198 -98
  190. package/dist/commonjs/components/Inspector/InspectorHeader.js +2 -2
  191. package/dist/commonjs/components/Inspector/MainScreen.js +58 -55
  192. package/dist/commonjs/components/Inspector/NetworkTab.js +1 -335
  193. package/dist/commonjs/components/Inspector/PerformanceTab.js +32 -6
  194. package/dist/commonjs/components/Inspector/ReduxTab.js +3 -1
  195. package/dist/commonjs/components/Inspector/SettingsPanel.js +6 -4
  196. package/dist/commonjs/components/Inspector/StorageTab.js +23 -5
  197. package/dist/commonjs/components/Inspector/TabBar.js +6 -2
  198. package/dist/commonjs/components/JsonViewer.js +14 -2
  199. package/dist/commonjs/components/LogCard.js +428 -227
  200. package/dist/commonjs/components/QRCodeView.js +1 -1
  201. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  202. package/dist/commonjs/constants/telemetryConfig.js +3 -3
  203. package/dist/commonjs/constants/version.d.ts +1 -1
  204. package/dist/commonjs/constants/version.js +1 -1
  205. package/dist/commonjs/customHooks/analyticsLogger.js +1 -1
  206. package/dist/commonjs/customHooks/consoleLogger.js +34 -2
  207. package/dist/commonjs/customHooks/crashHandler.js +1 -1
  208. package/dist/commonjs/customHooks/networkLogger.js +184 -26
  209. package/dist/commonjs/helpers/index.d.ts +1 -0
  210. package/dist/commonjs/helpers/index.js +11 -1
  211. package/dist/commonjs/helpers/qrGenerator.d.ts +1 -0
  212. package/dist/commonjs/helpers/qrGenerator.js +356 -33
  213. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
  214. package/dist/commonjs/helpers/searchQueryParser.js +37 -291
  215. package/dist/commonjs/index.d.ts +1 -0
  216. package/dist/commonjs/index.js +146 -30
  217. package/dist/commonjs/metro.d.ts +25 -0
  218. package/dist/commonjs/metro.js +478 -0
  219. package/dist/esm/components/AnimatedEntrance.js +3 -3
  220. package/dist/esm/components/ConsoleLogCard.js +141 -100
  221. package/dist/esm/components/Inspector/ConsoleTab.js +25 -16
  222. package/dist/esm/components/Inspector/CrashTab.js +19 -5
  223. package/dist/esm/components/Inspector/DebuggingTab.js +744 -441
  224. package/dist/esm/components/Inspector/DeviceInfoTab.js +198 -98
  225. package/dist/esm/components/Inspector/InspectorHeader.js +3 -3
  226. package/dist/esm/components/Inspector/MainScreen.js +58 -55
  227. package/dist/esm/components/Inspector/NetworkTab.js +2 -336
  228. package/dist/esm/components/Inspector/PerformanceTab.js +32 -6
  229. package/dist/esm/components/Inspector/ReduxTab.js +3 -1
  230. package/dist/esm/components/Inspector/SettingsPanel.js +7 -5
  231. package/dist/esm/components/Inspector/StorageTab.js +23 -5
  232. package/dist/esm/components/Inspector/TabBar.js +7 -3
  233. package/dist/esm/components/JsonViewer.js +14 -2
  234. package/dist/esm/components/LogCard.js +422 -221
  235. package/dist/esm/components/QRCodeView.js +1 -1
  236. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  237. package/dist/esm/constants/telemetryConfig.js +3 -3
  238. package/dist/esm/constants/version.d.ts +1 -1
  239. package/dist/esm/constants/version.js +1 -1
  240. package/dist/esm/customHooks/analyticsLogger.js +1 -1
  241. package/dist/esm/customHooks/consoleLogger.js +34 -2
  242. package/dist/esm/customHooks/crashHandler.js +1 -1
  243. package/dist/esm/customHooks/networkLogger.js +184 -26
  244. package/dist/esm/helpers/index.d.ts +1 -0
  245. package/dist/esm/helpers/index.js +9 -0
  246. package/dist/esm/helpers/qrGenerator.d.ts +1 -0
  247. package/dist/esm/helpers/qrGenerator.js +356 -30
  248. package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
  249. package/dist/esm/helpers/searchQueryParser.js +37 -291
  250. package/dist/esm/index.d.ts +1 -0
  251. package/dist/esm/index.js +144 -29
  252. package/dist/esm/metro.d.ts +25 -0
  253. package/dist/esm/metro.js +469 -0
  254. package/metro.d.ts +1 -0
  255. package/metro.js +1 -0
  256. package/package.json +16 -5
  257. package/src/components/AnimatedEntrance.tsx +3 -3
  258. package/src/components/ConsoleLogCard.tsx +154 -103
  259. package/src/components/Inspector/ConsoleTab.tsx +27 -18
  260. package/src/components/Inspector/CrashTab.tsx +19 -5
  261. package/src/components/Inspector/DebuggingTab.tsx +842 -514
  262. package/src/components/Inspector/DeviceInfoTab.tsx +224 -102
  263. package/src/components/Inspector/InspectorHeader.tsx +5 -3
  264. package/src/components/Inspector/MainScreen.tsx +6 -4
  265. package/src/components/Inspector/NetworkTab.tsx +1 -402
  266. package/src/components/Inspector/PerformanceTab.tsx +36 -7
  267. package/src/components/Inspector/ReduxTab.tsx +9 -1
  268. package/src/components/Inspector/SettingsPanel.tsx +85 -75
  269. package/src/components/Inspector/StorageTab.tsx +27 -7
  270. package/src/components/Inspector/TabBar.tsx +16 -2
  271. package/src/components/JsonViewer.tsx +15 -2
  272. package/src/components/LogCard.tsx +528 -339
  273. package/src/components/QRCodeView.tsx +2 -2
  274. package/src/constants/telemetryConfig.ts +5 -3
  275. package/src/constants/version.ts +1 -1
  276. package/src/customHooks/analyticsLogger.ts +1 -1
  277. package/src/customHooks/consoleLogger.ts +36 -3
  278. package/src/customHooks/crashHandler.ts +1 -1
  279. package/src/customHooks/networkLogger.ts +214 -26
  280. package/src/helpers/index.ts +15 -0
  281. package/src/helpers/qrGenerator.ts +418 -37
  282. package/src/helpers/searchQueryParser.ts +40 -285
  283. package/src/index.tsx +337 -214
  284. package/src/metro.ts +598 -0
@@ -43,13 +43,14 @@ const AppColors_1 = require("../../styles/AppColors");
43
43
  const AppFonts_1 = require("../../styles/AppFonts");
44
44
  const QRCodeView_1 = __importDefault(require("../QRCodeView"));
45
45
  const TouchableScale_1 = __importDefault(require("../TouchableScale"));
46
- const helpers_1 = require("../../helpers");
47
46
  const toast_1 = require("../../helpers/toast");
48
- const i18n_1 = require("../../i18n");
47
+ const NativeInspector_1 = require("../../native/NativeInspector");
49
48
  const NetworkIcons_1 = require("../NetworkIcons");
50
- const COMMON_PORTS = [8081, 8082, 8083, 19000];
49
+ const react_native_svg_1 = __importStar(require("react-native-svg"));
50
+ const TerminalConsoleIcon = ({ color = AppColors_1.AppColors.purple, size = 13 }) => (<react_native_svg_1.default width={size} height={size} viewBox="0 0 24 24" fill="none">
51
+ <react_native_svg_1.Path d="M4 17l6-6-6-6M12 19h8" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
52
+ </react_native_svg_1.default>);
51
53
  const DebuggingTab = () => {
52
- const { t } = (0, i18n_1.useTranslation)();
53
54
  const detectedConfig = (0, react_1.useMemo)(() => {
54
55
  const scriptURL = react_native_1.NativeModules.SourceCode?.scriptURL || '';
55
56
  let host = 'localhost';
@@ -74,622 +75,924 @@ const DebuggingTab = () => {
74
75
  return { host, port, scriptURL };
75
76
  }, []);
76
77
  const [hostIp, setHostIp] = (0, react_1.useState)(() => {
77
- if (detectedConfig.host === 'localhost' ||
78
- detectedConfig.host === '127.0.0.1' ||
79
- detectedConfig.host === '10.0.2.2') {
80
- return '192.168.1.15';
78
+ if (detectedConfig.host &&
79
+ detectedConfig.host !== 'localhost' &&
80
+ detectedConfig.host !== '127.0.0.1' &&
81
+ detectedConfig.host !== '10.0.2.2') {
82
+ return detectedConfig.host;
81
83
  }
82
- return detectedConfig.host;
84
+ return '192.168.1.2';
83
85
  });
84
- const [selectedPort, setSelectedPort] = (0, react_1.useState)(detectedConfig.port);
85
- const [apkPath, setApkPath] = (0, react_1.useState)('app-debug.apk');
86
- const [activeQrTab, setActiveQrTab] = (0, react_1.useState)('metro');
87
- const [isAutoDetecting, setIsAutoDetecting] = (0, react_1.useState)(false);
88
- const [portsStatus, setPortsStatus] = (0, react_1.useState)({});
89
- const probePorts = (0, react_1.useCallback)(async () => {
90
- setIsAutoDetecting(true);
91
- const results = {};
92
- for (const p of COMMON_PORTS) {
93
- results[p] = { port: p, status: 'checking' };
86
+ const [port, setPort] = (0, react_1.useState)(detectedConfig.port || 8083);
87
+ const [apkFileName, setApkFileName] = (0, react_1.useState)('app-debug.apk');
88
+ const [apkSizeMb, setApkSizeMb] = (0, react_1.useState)(null);
89
+ const [selectedScheme, setSelectedScheme] = (0, react_1.useState)('assembleRelease');
90
+ const [isCleanBuild, setIsCleanBuild] = (0, react_1.useState)(true);
91
+ const [buildStatus, setBuildStatus] = (0, react_1.useState)({
92
+ status: 'idle',
93
+ scheme: 'assembleRelease',
94
+ clean: true,
95
+ progress: 0,
96
+ currentTask: '',
97
+ error: null,
98
+ apkName: null,
99
+ apkSize: null,
100
+ });
101
+ const pollingRef = (0, react_1.useRef)(null);
102
+ const progressAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
103
+ const [showVerboseLogs, setShowVerboseLogs] = (0, react_1.useState)(true);
104
+ const verboseScrollRef = (0, react_1.useRef)(null);
105
+ (0, react_1.useEffect)(() => {
106
+ react_native_1.Animated.timing(progressAnim, {
107
+ toValue: Math.max(0, Math.min(100, buildStatus.progress)),
108
+ duration: 350,
109
+ useNativeDriver: false,
110
+ }).start();
111
+ }, [buildStatus.progress, progressAnim]);
112
+ (0, react_1.useEffect)(() => {
113
+ if (buildStatus.logs && buildStatus.logs.length > 0) {
114
+ setTimeout(() => {
115
+ verboseScrollRef.current?.scrollToEnd({ animated: true });
116
+ }, 50);
94
117
  }
95
- setPortsStatus({ ...results });
96
- let foundActivePort = null;
97
- for (const p of COMMON_PORTS) {
98
- const startTime = Date.now();
99
- try {
100
- const controller = new AbortController();
101
- const timeoutId = setTimeout(() => controller.abort(), 1500);
102
- const res = await fetch(`http://localhost:${p}/status`, {
103
- signal: controller.signal,
104
- });
105
- clearTimeout(timeoutId);
106
- const text = await res.text();
107
- const latency = Date.now() - startTime;
108
- if (res.ok && text.includes('packager-status:running')) {
109
- results[p] = { port: p, status: 'active', latencyMs: latency };
110
- if (!foundActivePort)
111
- foundActivePort = p;
118
+ }, [buildStatus.logs]);
119
+ const fetchMetroTelemetry = (0, react_1.useCallback)(async () => {
120
+ const hostsToTry = Array.from(new Set([detectedConfig.host, '10.0.2.2', 'localhost', '127.0.0.1'].filter(Boolean)));
121
+ const portsToTry = Array.from(new Set([detectedConfig.port, 8083, 8081, 8082].filter(Boolean)));
122
+ for (const h of hostsToTry) {
123
+ for (const p of portsToTry) {
124
+ try {
125
+ const controller = new AbortController();
126
+ const timeoutId = setTimeout(() => controller.abort(), 1200);
127
+ const res = await fetch(`http://${h}:${p}/__inapp_inspector/apk-info`, {
128
+ signal: controller.signal,
129
+ });
130
+ clearTimeout(timeoutId);
131
+ if (res.ok) {
132
+ const data = await res.json();
133
+ if (data.hostIp &&
134
+ data.hostIp !== '127.0.0.1' &&
135
+ data.hostIp !== 'localhost' &&
136
+ data.hostIp !== '10.0.2.2') {
137
+ setHostIp(data.hostIp);
138
+ }
139
+ if (data.port) {
140
+ setPort(data.port);
141
+ }
142
+ if (data.apkName) {
143
+ setApkFileName(data.apkName);
144
+ }
145
+ if (data.apkSize) {
146
+ setApkSizeMb((data.apkSize / (1024 * 1024)).toFixed(1));
147
+ }
148
+ return;
149
+ }
112
150
  }
113
- else {
114
- results[p] = { port: p, status: 'inactive' };
151
+ catch { }
152
+ }
153
+ }
154
+ }, [detectedConfig.host, detectedConfig.port]);
155
+ (0, react_1.useEffect)(() => {
156
+ fetchMetroTelemetry();
157
+ }, [fetchMetroTelemetry]);
158
+ (0, react_1.useEffect)(() => {
159
+ return () => {
160
+ if (pollingRef.current) {
161
+ clearInterval(pollingRef.current);
162
+ }
163
+ };
164
+ }, []);
165
+ const pollBuildStatus = (0, react_1.useCallback)(() => {
166
+ if (pollingRef.current)
167
+ clearInterval(pollingRef.current);
168
+ const targetHost = detectedConfig.host || '10.0.2.2';
169
+ pollingRef.current = setInterval(async () => {
170
+ try {
171
+ const res = await fetch(`http://${targetHost}:${port}/__inapp_inspector/build-status`);
172
+ if (res.ok) {
173
+ const data = await res.json();
174
+ setBuildStatus(data);
175
+ if (data.status === 'completed') {
176
+ if (pollingRef.current)
177
+ clearInterval(pollingRef.current);
178
+ (0, NativeInspector_1.triggerNativeHaptic)('success');
179
+ (0, toast_1.showToast)('✓ APK Build Generated Successfully!');
180
+ if (data.apkSize) {
181
+ setApkSizeMb((data.apkSize / (1024 * 1024)).toFixed(1));
182
+ }
183
+ if (data.apkName) {
184
+ setApkFileName(data.apkName);
185
+ }
186
+ fetchMetroTelemetry();
187
+ }
188
+ else if (data.status === 'failed') {
189
+ if (pollingRef.current)
190
+ clearInterval(pollingRef.current);
191
+ (0, NativeInspector_1.triggerNativeHaptic)('error');
192
+ (0, toast_1.showToast)('✕ Build Failed: ' + (data.error || 'Gradle error'));
193
+ }
115
194
  }
116
195
  }
117
- catch {
118
- results[p] = { port: p, status: 'inactive' };
196
+ catch { }
197
+ }, 1000);
198
+ }, [detectedConfig.host, port, fetchMetroTelemetry]);
199
+ const handleStartBuild = async () => {
200
+ (0, NativeInspector_1.triggerNativeHaptic)('medium');
201
+ setBuildStatus({
202
+ status: 'running',
203
+ scheme: selectedScheme,
204
+ clean: isCleanBuild,
205
+ progress: 5,
206
+ currentTask: isCleanBuild ? 'Cleaning build cache...' : 'Initializing build...',
207
+ error: null,
208
+ apkName: null,
209
+ apkSize: null,
210
+ });
211
+ const hostsToTry = Array.from(new Set([detectedConfig.host, '10.0.2.2', 'localhost', '127.0.0.1'].filter(Boolean)));
212
+ const portsToTry = Array.from(new Set([port, 8083, 8081, 8082].filter(Boolean)));
213
+ let buildTriggered = false;
214
+ for (const h of hostsToTry) {
215
+ for (const p of portsToTry) {
216
+ try {
217
+ const controller = new AbortController();
218
+ const timeoutId = setTimeout(() => controller.abort(), 2000);
219
+ const res = await fetch(`http://${h}:${p}/__inapp_inspector/build-apk?scheme=${selectedScheme}&clean=${isCleanBuild}`, { signal: controller.signal });
220
+ clearTimeout(timeoutId);
221
+ if (res.ok) {
222
+ buildTriggered = true;
223
+ pollBuildStatus();
224
+ return;
225
+ }
226
+ }
227
+ catch { }
119
228
  }
120
- setPortsStatus({ ...results });
121
229
  }
122
- if (foundActivePort) {
123
- setSelectedPort(foundActivePort);
124
- (0, toast_1.showToast)(`Detected Metro running on Port ${foundActivePort}!`);
230
+ if (!buildTriggered) {
231
+ setBuildStatus(prev => ({
232
+ ...prev,
233
+ status: 'failed',
234
+ error: 'Cannot reach build server. Ensure npm start or npm run serve-apk is running on host.',
235
+ }));
125
236
  }
126
- setIsAutoDetecting(false);
127
- }, []);
128
- (0, react_1.useEffect)(() => {
129
- probePorts();
130
- }, [probePorts]);
131
- const metroBundleUrl = `http://${hostIp}:${selectedPort}/index.bundle?platform=android&dev=true`;
132
- const directServerUrl = `http://${hostIp}:${selectedPort}`;
133
- const apkDownloadUrl = `http://${hostIp}:${selectedPort}/${apkPath}`;
134
- const devSettingsHost = `${hostIp}:${selectedPort}`;
135
- const currentQrValue = (0, react_1.useMemo)(() => {
136
- if (activeQrTab === 'apk')
137
- return apkDownloadUrl;
138
- if (activeQrTab === 'host')
139
- return devSettingsHost;
140
- return directServerUrl;
141
- }, [activeQrTab, apkDownloadUrl, devSettingsHost, directServerUrl]);
142
- const activePortInfo = portsStatus[selectedPort];
143
- return (<react_native_1.ScrollView style={styles.container} contentContainerStyle={styles.content} showsVerticalScrollIndicator={false}>
237
+ };
238
+ const handleStopBuild = async () => {
239
+ (0, NativeInspector_1.triggerNativeHaptic)('warning');
240
+ if (pollingRef.current)
241
+ clearInterval(pollingRef.current);
242
+ const hostsToTry = Array.from(new Set([detectedConfig.host, '10.0.2.2', 'localhost', '127.0.0.1'].filter(Boolean)));
243
+ const portsToTry = Array.from(new Set([port, 8083, 8081, 8082].filter(Boolean)));
244
+ for (const h of hostsToTry) {
245
+ for (const p of portsToTry) {
246
+ try {
247
+ const controller = new AbortController();
248
+ const timeoutId = setTimeout(() => controller.abort(), 1500);
249
+ await fetch(`http://${h}:${p}/__inapp_inspector/stop-build`, {
250
+ signal: controller.signal,
251
+ });
252
+ clearTimeout(timeoutId);
253
+ }
254
+ catch { }
255
+ }
256
+ }
257
+ setBuildStatus(prev => ({
258
+ ...prev,
259
+ status: 'idle',
260
+ currentTask: 'Build cancelled by user',
261
+ logs: [...(prev.logs || []), '🛑 Build cancelled by user.'],
262
+ }));
263
+ (0, toast_1.showToast)('Build cancelled');
264
+ };
265
+ const apkDownloadUrl = `http://${hostIp}:${port}/${apkFileName.replace(/^\/+/, '')}`;
266
+ const handleShare = () => {
267
+ (0, NativeInspector_1.triggerNativeHaptic)('light');
268
+ react_native_1.Share.share({
269
+ message: apkDownloadUrl,
270
+ title: 'Install Android APK',
271
+ });
272
+ };
273
+ const isBuilding = buildStatus.status === 'running';
274
+ return (<react_native_1.ScrollView style={styles.scrollArea} contentContainerStyle={styles.scrollContent} showsVerticalScrollIndicator={false}>
144
275
 
145
- <react_native_1.View style={styles.serverCard}>
146
- <react_native_1.View style={styles.serverCardTop}>
147
- <react_native_1.View style={styles.serverStatusLeft}>
148
- <react_native_1.View style={[
149
- styles.statusDot,
150
- {
151
- backgroundColor: activePortInfo?.status === 'active'
152
- ? AppColors_1.AppColors.greenColor
153
- : activePortInfo?.status === 'checking'
154
- ? AppColors_1.AppColors.warningIconGold
155
- : AppColors_1.AppColors.errorColor,
156
- },
157
- ]}/>
158
- <react_native_1.View>
159
- <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
160
- <react_native_1.Text style={styles.serverTitle}>Metro Dev Server</react_native_1.Text>
161
- <react_native_1.View style={styles.portPill}>
162
- <react_native_1.Text style={styles.portPillText}>Port {selectedPort}</react_native_1.Text>
163
- </react_native_1.View>
164
- </react_native_1.View>
165
- <react_native_1.Text style={styles.serverSubtitle}>
166
- {activePortInfo?.status === 'active'
167
- ? `Active & Bundling (${activePortInfo.latencyMs}ms)`
168
- : activePortInfo?.status === 'checking'
169
- ? 'Probing Metro Ports...'
170
- : 'Standby / Select active port'}
171
- </react_native_1.Text>
172
- </react_native_1.View>
276
+ <react_native_1.View style={styles.heroCard}>
277
+ <react_native_1.View style={styles.heroHeader}>
278
+ <react_native_1.View style={styles.heroIconWrap}>
279
+ <NetworkIcons_1.AndroidIcon size={20} color={AppColors_1.AppColors.white}/>
280
+ </react_native_1.View>
281
+ <react_native_1.View style={{ flex: 1, minWidth: 0 }}>
282
+ <react_native_1.Text style={styles.heroTitle} numberOfLines={1}>
283
+ Multi-Device APK Installer
284
+ </react_native_1.Text>
285
+ <react_native_1.Text style={styles.heroSubtitle} numberOfLines={1}>
286
+ Scan QR code with another Android device to download
287
+ </react_native_1.Text>
288
+ </react_native_1.View>
289
+ <react_native_1.View style={styles.heroBadge}>
290
+ <react_native_1.View style={styles.pulseDot}/>
291
+ <react_native_1.Text style={styles.heroBadgeText}>Live Metro</react_native_1.Text>
173
292
  </react_native_1.View>
174
-
175
- <TouchableScale_1.default onPress={probePorts} style={styles.scanBtn} hitSlop={8}>
176
- <NetworkIcons_1.RepeatIcon size={12} color={AppColors_1.AppColors.purple}/>
177
- <react_native_1.Text style={styles.scanBtnText}>Re-scan</react_native_1.Text>
178
- </TouchableScale_1.default>
179
293
  </react_native_1.View>
180
294
 
181
295
 
182
- <react_native_1.View style={styles.portsRow}>
183
- {COMMON_PORTS.map(p => {
184
- const isSelected = selectedPort === p;
185
- const pInfo = portsStatus[p];
186
- const isActive = pInfo?.status === 'active';
187
- return (<react_native_1.TouchableOpacity key={p} activeOpacity={0.7} onPress={() => setSelectedPort(p)} style={[
188
- styles.portChip,
189
- isSelected && styles.portChipSelected,
190
- isActive && { borderColor: AppColors_1.AppColors.greenColor },
191
- ]}>
192
- <react_native_1.View style={[
193
- styles.portMiniDot,
194
- {
195
- backgroundColor: isActive
196
- ? AppColors_1.AppColors.greenColor
197
- : AppColors_1.AppColors.grayTextWeak,
198
- },
199
- ]}/>
200
- <react_native_1.Text style={[
201
- styles.portChipText,
202
- isSelected && styles.portChipTextSelected,
203
- ]}>
204
- {p}
205
- </react_native_1.Text>
206
- {isActive && (<react_native_1.View style={styles.liveBadge}>
207
- <react_native_1.Text style={styles.liveBadgeText}>LIVE</react_native_1.Text>
208
- </react_native_1.View>)}
209
- </react_native_1.TouchableOpacity>);
210
- })}
296
+ <react_native_1.View style={styles.heroMetricsStrip}>
297
+ <react_native_1.View style={styles.heroMetricItem}>
298
+ <react_native_1.Text style={styles.heroMetricLabel}>HOST IP</react_native_1.Text>
299
+ <react_native_1.Text style={styles.heroMetricValue} numberOfLines={1}>
300
+ {hostIp}
301
+ </react_native_1.Text>
302
+ </react_native_1.View>
303
+ <react_native_1.View style={styles.heroMetricDivider}/>
304
+ <react_native_1.View style={styles.heroMetricItem}>
305
+ <react_native_1.Text style={styles.heroMetricLabel}>PORT</react_native_1.Text>
306
+ <react_native_1.Text style={styles.heroMetricValue}>{port}</react_native_1.Text>
307
+ </react_native_1.View>
308
+ <react_native_1.View style={styles.heroMetricDivider}/>
309
+ <react_native_1.View style={styles.heroMetricItem}>
310
+ <react_native_1.Text style={styles.heroMetricLabel}>APK SIZE</react_native_1.Text>
311
+ <react_native_1.Text style={[
312
+ styles.heroMetricValue,
313
+ { color: apkSizeMb ? AppColors_1.AppColors.emerald500 : AppColors_1.AppColors.grayTextWeak },
314
+ ]}>
315
+ {apkSizeMb ? `${apkSizeMb} MB` : 'Detected'}
316
+ </react_native_1.Text>
317
+ </react_native_1.View>
318
+ <react_native_1.View style={styles.heroMetricDivider}/>
319
+ <react_native_1.View style={styles.heroMetricItem}>
320
+ <react_native_1.Text style={styles.heroMetricLabel}>STATUS</react_native_1.Text>
321
+ <react_native_1.Text style={[
322
+ styles.heroMetricValue,
323
+ { color: AppColors_1.AppColors.emerald500 },
324
+ ]}>
325
+ Ready
326
+ </react_native_1.Text>
327
+ </react_native_1.View>
211
328
  </react_native_1.View>
212
329
  </react_native_1.View>
213
330
 
214
331
 
215
- <react_native_1.View style={styles.card}>
216
- <react_native_1.View style={styles.cardHeader}>
217
- <react_native_1.Text style={styles.cardTitle}>HOST IP & BUNDLE LOCATION</react_native_1.Text>
218
- <react_native_1.TouchableOpacity onPress={() => {
219
- if (detectedConfig.host !== 'localhost' &&
220
- detectedConfig.host !== '127.0.0.1' &&
221
- detectedConfig.host !== '10.0.2.2') {
222
- setHostIp(detectedConfig.host);
223
- (0, toast_1.showToast)(`Reset to detected IP: ${detectedConfig.host}`);
224
- }
225
- }}>
226
- <react_native_1.Text style={styles.headerActionText}>Reset to Detected</react_native_1.Text>
332
+ <react_native_1.View style={styles.sectionCard}>
333
+ <react_native_1.View style={styles.sectionHeaderRow}>
334
+ <react_native_1.Text style={styles.sectionTitle}>QR CODE & DIRECT DOWNLOAD</react_native_1.Text>
335
+ <react_native_1.TouchableOpacity activeOpacity={0.7} onPress={fetchMetroTelemetry} style={styles.refreshBtn}>
336
+ <NetworkIcons_1.RepeatIcon size={12} color={AppColors_1.AppColors.purple}/>
337
+ <react_native_1.Text style={styles.refreshBtnText}>Refresh</react_native_1.Text>
227
338
  </react_native_1.TouchableOpacity>
228
339
  </react_native_1.View>
229
340
 
230
- <react_native_1.View style={styles.inputContainer}>
231
- <react_native_1.Text style={styles.inputPrefix}>http://</react_native_1.Text>
232
- <react_native_1.TextInput style={styles.input} value={hostIp} onChangeText={setHostIp} placeholder="192.168.1.15" placeholderTextColor={AppColors_1.AppColors.grayTextWeak} autoCapitalize="none" autoCorrect={false}/>
233
- <react_native_1.Text style={styles.inputSuffix}>:{selectedPort}</react_native_1.Text>
234
- </react_native_1.View>
235
- <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, marginTop: 6 }}>
236
- <NetworkIcons_1.InfoCircleIcon size={13} color={AppColors_1.AppColors.grayTextWeak}/>
237
- <react_native_1.Text style={[styles.inputHint, { marginTop: 0, flex: 1 }]}>
238
- Ensure your physical Android device and Mac are connected to the same Wi-Fi network.
239
- </react_native_1.Text>
341
+
342
+ <react_native_1.View style={styles.qrCenteredWrapper}>
343
+ <react_native_1.View style={styles.qrInnerFrame}>
344
+ <QRCodeView_1.default value={apkDownloadUrl} size={235} color={AppColors_1.AppColors.primaryBlack} backgroundColor={AppColors_1.AppColors.white}/>
345
+ </react_native_1.View>
240
346
  </react_native_1.View>
241
347
  </react_native_1.View>
242
348
 
243
349
 
244
- <react_native_1.View style={styles.qrCard}>
245
-
246
- <react_native_1.View style={styles.qrTabsRow}>
247
- <react_native_1.TouchableOpacity activeOpacity={0.7} onPress={() => setActiveQrTab('metro')} style={[
248
- styles.qrTab,
249
- activeQrTab === 'metro' && styles.qrTabActive,
250
- ]}>
251
- <NetworkIcons_1.BoltIcon size={13} color={activeQrTab === 'metro' ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>
252
- <react_native_1.Text style={[
253
- styles.qrTabText,
254
- activeQrTab === 'metro' && styles.qrTabTextActive,
255
- ]}>
256
- Metro Live Reload
257
- </react_native_1.Text>
258
- </react_native_1.TouchableOpacity>
350
+ <react_native_1.View style={styles.sectionCard}>
351
+ <react_native_1.View style={styles.sectionHeaderRow}>
352
+ <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
353
+ <NetworkIcons_1.BoltIcon size={13} color={AppColors_1.AppColors.purple}/>
354
+ <react_native_1.Text style={styles.sectionTitle}>BUILD GENERATOR (GRADLE)</react_native_1.Text>
355
+ </react_native_1.View>
356
+ {buildStatus.status === 'completed' && (<react_native_1.View style={styles.completedBadge}>
357
+ <NetworkIcons_1.CheckIcon size={10} color={AppColors_1.AppColors.emerald500}/>
358
+ <react_native_1.Text style={styles.completedBadgeText}>100% Ready</react_native_1.Text>
359
+ </react_native_1.View>)}
360
+ </react_native_1.View>
259
361
 
260
- <react_native_1.TouchableOpacity activeOpacity={0.7} onPress={() => setActiveQrTab('apk')} style={[
261
- styles.qrTab,
262
- activeQrTab === 'apk' && styles.qrTabActive,
362
+
363
+ <react_native_1.View style={styles.subTabStrip}>
364
+ <react_native_1.TouchableOpacity disabled={isBuilding} activeOpacity={0.7} onPress={() => {
365
+ (0, NativeInspector_1.triggerNativeHaptic)('light');
366
+ setSelectedScheme('assembleRelease');
367
+ }} style={[
368
+ styles.subTabItem,
369
+ selectedScheme === 'assembleRelease' && styles.subTabItemActive,
263
370
  ]}>
264
- <NetworkIcons_1.PackageIcon size={13} color={activeQrTab === 'apk' ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>
265
371
  <react_native_1.Text style={[
266
- styles.qrTabText,
267
- activeQrTab === 'apk' && styles.qrTabTextActive,
372
+ styles.subTabText,
373
+ selectedScheme === 'assembleRelease' && styles.subTabTextActive,
268
374
  ]}>
269
- Install Debug APK
375
+ Release (assembleRelease)
270
376
  </react_native_1.Text>
271
377
  </react_native_1.TouchableOpacity>
272
378
 
273
- <react_native_1.TouchableOpacity activeOpacity={0.7} onPress={() => setActiveQrTab('host')} style={[
274
- styles.qrTab,
275
- activeQrTab === 'host' && styles.qrTabActive,
379
+ <react_native_1.TouchableOpacity disabled={isBuilding} activeOpacity={0.7} onPress={() => {
380
+ (0, NativeInspector_1.triggerNativeHaptic)('light');
381
+ setSelectedScheme('assembleDebug');
382
+ }} style={[
383
+ styles.subTabItem,
384
+ selectedScheme === 'assembleDebug' && styles.subTabItemActive,
276
385
  ]}>
277
- <NetworkIcons_1.SmartphoneIcon size={13} color={activeQrTab === 'host' ? AppColors_1.AppColors.white : AppColors_1.AppColors.grayText}/>
278
386
  <react_native_1.Text style={[
279
- styles.qrTabText,
280
- activeQrTab === 'host' && styles.qrTabTextActive,
387
+ styles.subTabText,
388
+ selectedScheme === 'assembleDebug' && styles.subTabTextActive,
281
389
  ]}>
282
- Dev Host Info
390
+ 🛠 Debug (assembleDebug)
283
391
  </react_native_1.Text>
284
392
  </react_native_1.TouchableOpacity>
285
393
  </react_native_1.View>
286
394
 
287
395
 
288
- <react_native_1.View style={styles.qrWrapper}>
289
- <QRCodeView_1.default value={currentQrValue} size={190} color={AppColors_1.AppColors.primaryBlack} backgroundColor={AppColors_1.AppColors.white}/>
396
+ <react_native_1.TouchableOpacity disabled={isBuilding} activeOpacity={0.7} onPress={() => {
397
+ (0, NativeInspector_1.triggerNativeHaptic)('light');
398
+ setIsCleanBuild(!isCleanBuild);
399
+ }} style={styles.cleanRow}>
400
+ <react_native_1.View style={[
401
+ styles.checkboxBox,
402
+ isCleanBuild && styles.checkboxBoxActive,
403
+ ]}>
404
+ {isCleanBuild && <NetworkIcons_1.CheckIcon size={11} color={AppColors_1.AppColors.white}/>}
405
+ </react_native_1.View>
406
+ <react_native_1.Text style={styles.cleanLabel}>
407
+ Clean build cache <react_native_1.Text style={styles.cleanCode}>(./gradlew clean)</react_native_1.Text>
408
+ </react_native_1.Text>
409
+ </react_native_1.TouchableOpacity>
290
410
 
291
- <react_native_1.View style={styles.qrInfoBox}>
292
- <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 5, marginBottom: 2 }}>
293
- {activeQrTab === 'apk' ? (<NetworkIcons_1.PackageIcon size={14} color={AppColors_1.AppColors.purple}/>) : activeQrTab === 'host' ? (<NetworkIcons_1.SmartphoneIcon size={14} color={AppColors_1.AppColors.purple}/>) : (<NetworkIcons_1.BoltIcon size={14} color={AppColors_1.AppColors.amber500}/>)}
294
- <react_native_1.Text style={styles.qrTargetTitle}>
295
- {activeQrTab === 'apk'
296
- ? 'Direct APK Download URL'
297
- : activeQrTab === 'host'
298
- ? 'Dev Settings Bundle Host'
299
- : 'Live Metro Fast-Refresh Endpoint'}
411
+
412
+ {isBuilding && (<react_native_1.View style={styles.progressContainer}>
413
+ <react_native_1.View style={styles.progressTopRow}>
414
+ <react_native_1.View style={styles.progressTaskGroup}>
415
+ <react_native_1.ActivityIndicator size="small" color={AppColors_1.AppColors.purple}/>
416
+ <react_native_1.Text style={styles.progressTaskText} numberOfLines={1}>
417
+ {buildStatus.currentTask || 'Executing Gradle tasks...'}
418
+ </react_native_1.Text>
419
+ </react_native_1.View>
420
+ <react_native_1.Text style={styles.progressPercentageText}>
421
+ {buildStatus.progress}%
300
422
  </react_native_1.Text>
301
423
  </react_native_1.View>
302
- <react_native_1.Text style={styles.qrTargetUrl} numberOfLines={2} ellipsizeMode="middle">
303
- {currentQrValue}
304
- </react_native_1.Text>
305
- </react_native_1.View>
306
- </react_native_1.View>
307
424
 
308
-
309
- <react_native_1.View style={styles.qrActionsRow}>
310
- <TouchableScale_1.default onPress={() => (0, helpers_1.copyToClipboard)(currentQrValue, 'QR Link')} style={styles.actionBtn}>
311
- <react_native_1.Text style={styles.actionBtnText}>Copy Link</react_native_1.Text>
312
- </TouchableScale_1.default>
425
+
426
+ <react_native_1.View style={styles.progressBarTrack}>
427
+ <react_native_1.Animated.View style={[
428
+ styles.progressBarFill,
429
+ {
430
+ width: progressAnim.interpolate({
431
+ inputRange: [0, 100],
432
+ outputRange: ['5%', '100%'],
433
+ }),
434
+ },
435
+ ]}/>
436
+ </react_native_1.View>
437
+ </react_native_1.View>)}
313
438
 
314
- <TouchableScale_1.default onPress={() => {
315
- react_native_1.Share.share({
316
- message: currentQrValue,
317
- title: 'Metro Debug Link',
318
- });
319
- }} style={[styles.actionBtn, styles.actionBtnPrimary]}>
320
- <react_native_1.Text style={styles.actionBtnPrimaryText}>Share to Device</react_native_1.Text>
321
- </TouchableScale_1.default>
322
- </react_native_1.View>
323
- </react_native_1.View>
439
+
440
+ {buildStatus.status === 'failed' && (<react_native_1.View style={styles.errorContainer}>
441
+ <NetworkIcons_1.CircleXIcon size={13} color={AppColors_1.AppColors.errorColor}/>
442
+ <react_native_1.Text style={styles.errorText} numberOfLines={2}>
443
+ {buildStatus.error || 'Build execution failed.'}
444
+ </react_native_1.Text>
445
+ </react_native_1.View>)}
324
446
 
325
-
326
- <react_native_1.View style={styles.guideCard}>
327
- <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, marginBottom: 12 }}>
328
- <NetworkIcons_1.SmartphoneIcon size={15} color={AppColors_1.AppColors.primaryLight}/>
329
- <react_native_1.Text style={[styles.guideHeading, { marginBottom: 0 }]}>HOW TO CONNECT ANDROID DEVICE:</react_native_1.Text>
330
- </react_native_1.View>
447
+
448
+ {((buildStatus.logs && buildStatus.logs.length > 0) || isBuilding) && (<react_native_1.View style={styles.consoleContainer}>
449
+ <react_native_1.View style={styles.consoleHeaderRow}>
450
+ <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 6 }}>
451
+ <TerminalConsoleIcon color="#38BDF8" size={12}/>
452
+ <react_native_1.Text style={styles.consoleHeaderTitle}>GRADLE VERBOSE OUTPUT</react_native_1.Text>
453
+ </react_native_1.View>
454
+ <react_native_1.TouchableOpacity activeOpacity={0.7} onPress={() => setShowVerboseLogs(!showVerboseLogs)} style={styles.consoleToggleBtn}>
455
+ <react_native_1.Text style={styles.consoleToggleText}>
456
+ {showVerboseLogs ? 'Hide Console' : 'Show Console'}
457
+ </react_native_1.Text>
458
+ </react_native_1.TouchableOpacity>
459
+ </react_native_1.View>
331
460
 
332
- <react_native_1.View style={styles.stepRow}>
333
- <react_native_1.View style={styles.stepNumberBadge}>
334
- <react_native_1.Text style={styles.stepNumberText}>1</react_native_1.Text>
335
- </react_native_1.View>
336
- <react_native_1.View style={{ flex: 1 }}>
337
- <react_native_1.Text style={styles.stepTitle}>Connect to Same Wi-Fi</react_native_1.Text>
338
- <react_native_1.Text style={styles.stepDesc}>
339
- Make sure your Android phone is connected to the same Wi-Fi router or Mac Mobile Hotspot.
340
- </react_native_1.Text>
341
- </react_native_1.View>
342
- </react_native_1.View>
461
+ {showVerboseLogs && (<react_native_1.ScrollView ref={verboseScrollRef} style={styles.consoleLogBox} contentContainerStyle={styles.consoleLogContent} nestedScrollEnabled showsVerticalScrollIndicator>
462
+ {buildStatus.logs && buildStatus.logs.length > 0 ? (buildStatus.logs.map((logLine, idx) => {
463
+ let logColor = '#94A3B8';
464
+ if (logLine.startsWith('> Task :'))
465
+ logColor = '#38BDF8';
466
+ else if (logLine.includes('BUILD SUCCESSFUL'))
467
+ logColor = '#4ADE80';
468
+ else if (logLine.includes('FAILURE') || logLine.includes('error:'))
469
+ logColor = '#F87171';
470
+ else if (logLine.includes('UP-TO-DATE'))
471
+ logColor = '#A78BFA';
472
+ return (<react_native_1.Text key={idx} style={[styles.consoleLogLine, { color: logColor }]}>
473
+ {logLine}
474
+ </react_native_1.Text>);
475
+ })) : (<react_native_1.Text style={styles.consoleLogPlaceholder}>
476
+ Waiting for Gradle daemon output...
477
+ </react_native_1.Text>)}
478
+ </react_native_1.ScrollView>)}
479
+ </react_native_1.View>)}
343
480
 
344
- <react_native_1.View style={styles.stepRow}>
345
- <react_native_1.View style={styles.stepNumberBadge}>
346
- <react_native_1.Text style={styles.stepNumberText}>2</react_native_1.Text>
347
- </react_native_1.View>
348
- <react_native_1.View style={{ flex: 1 }}>
349
- <react_native_1.Text style={styles.stepTitle}>Scan to Install / Connect</react_native_1.Text>
350
- <react_native_1.Text style={styles.stepDesc}>
351
- Open Android Camera or browser, scan the QR code above to download the APK or connect Metro.
352
- </react_native_1.Text>
353
- </react_native_1.View>
354
- </react_native_1.View>
481
+
482
+ {isBuilding ? (<react_native_1.View style={styles.buildingActionsRow}>
483
+ <react_native_1.View style={styles.buildingStatusPill}>
484
+ <react_native_1.ActivityIndicator size="small" color={AppColors_1.AppColors.purple}/>
485
+ <react_native_1.Text style={styles.buildingStatusPillText} numberOfLines={1}>
486
+ Building ({buildStatus.progress}%)
487
+ </react_native_1.Text>
488
+ </react_native_1.View>
355
489
 
356
- <react_native_1.View style={styles.stepRow}>
357
- <react_native_1.View style={styles.stepNumberBadge}>
358
- <react_native_1.Text style={styles.stepNumberText}>3</react_native_1.Text>
359
- </react_native_1.View>
360
- <react_native_1.View style={{ flex: 1 }}>
361
- <react_native_1.View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
362
- <react_native_1.Text style={styles.stepTitle}>Simultaneous Live Fast-Refresh</react_native_1.Text>
363
- <NetworkIcons_1.BoltIcon size={13} color={AppColors_1.AppColors.amber500}/>
490
+ <TouchableScale_1.default onPress={handleStopBuild} style={styles.stopBtn}>
491
+ <NetworkIcons_1.CircleXIcon size={13} color={AppColors_1.AppColors.white}/>
492
+ <react_native_1.Text style={styles.stopBtnText}>Stop Build</react_native_1.Text>
493
+ </TouchableScale_1.default>
494
+ </react_native_1.View>) : (<TouchableScale_1.default onPress={handleStartBuild} style={styles.generateBtn}>
495
+ <react_native_1.View style={styles.ctaContentRow}>
496
+ <NetworkIcons_1.SparkleIcon size={14} color={AppColors_1.AppColors.white}/>
497
+ <react_native_1.Text style={styles.generateBtnText}>
498
+ {isCleanBuild ? 'Clean & Generate Build' : 'Generate Build'}
499
+ </react_native_1.Text>
364
500
  </react_native_1.View>
365
- <react_native_1.Text style={styles.stepDesc}>
366
- Any changes saved in VS Code will immediately update <react_native_1.Text style={{ fontWeight: '700' }}>both the iOS Simulator and physical Android phone</react_native_1.Text> in real-time!
367
- </react_native_1.Text>
368
- </react_native_1.View>
369
- </react_native_1.View>
501
+ </TouchableScale_1.default>)}
502
+ </react_native_1.View>
503
+
504
+
505
+ <react_native_1.View style={styles.footerNoteRow}>
506
+ <NetworkIcons_1.InfoCircleIcon size={13} color={AppColors_1.AppColors.grayTextWeak}/>
507
+ <react_native_1.Text style={styles.footerNoteText}>
508
+ Ensure both Android devices are connected to the same Wi-Fi network.
509
+ </react_native_1.Text>
370
510
  </react_native_1.View>
371
511
  </react_native_1.ScrollView>);
372
512
  };
373
513
  exports.DebuggingTab = DebuggingTab;
374
514
  const styles = react_native_1.StyleSheet.create({
375
- container: {
515
+ scrollArea: {
376
516
  flex: 1,
377
517
  backgroundColor: AppColors_1.AppColors.contentBg,
378
518
  },
379
- content: {
519
+ scrollContent: {
380
520
  padding: 12,
381
521
  gap: 12,
382
- paddingBottom: 40,
522
+ paddingBottom: 100,
383
523
  },
384
- serverCard: {
524
+ heroCard: {
385
525
  backgroundColor: AppColors_1.AppColors.primaryLight,
386
526
  borderRadius: 14,
387
- padding: 14,
388
527
  borderWidth: 1,
389
528
  borderColor: AppColors_1.AppColors.grayBorderSecondary,
529
+ padding: 14,
390
530
  shadowColor: AppColors_1.AppColors.black,
391
- shadowOffset: { width: 0, height: 2 },
392
- shadowOpacity: 0.05,
531
+ shadowOpacity: 0.04,
393
532
  shadowRadius: 4,
394
- elevation: 2,
533
+ shadowOffset: { width: 0, height: 2 },
534
+ elevation: 1,
395
535
  gap: 12,
396
536
  },
397
- serverCardTop: {
398
- flexDirection: 'row',
399
- alignItems: 'center',
400
- justifyContent: 'space-between',
401
- },
402
- serverStatusLeft: {
537
+ heroHeader: {
403
538
  flexDirection: 'row',
404
539
  alignItems: 'center',
405
540
  gap: 10,
406
- flex: 1,
407
541
  },
408
- statusDot: {
409
- width: 12,
410
- height: 12,
411
- borderRadius: 6,
542
+ heroIconWrap: {
543
+ width: 38,
544
+ height: 38,
545
+ borderRadius: 10,
546
+ backgroundColor: AppColors_1.AppColors.purple,
547
+ alignItems: 'center',
548
+ justifyContent: 'center',
549
+ shadowColor: AppColors_1.AppColors.purple,
550
+ shadowOpacity: 0.25,
551
+ shadowRadius: 4,
552
+ shadowOffset: { width: 0, height: 2 },
553
+ elevation: 2,
412
554
  },
413
- serverTitle: {
555
+ heroTitle: {
414
556
  fontFamily: AppFonts_1.AppFonts.interBold,
415
557
  fontSize: 15,
416
558
  color: AppColors_1.AppColors.primaryBlack,
559
+ letterSpacing: -0.2,
417
560
  },
418
- serverSubtitle: {
419
- fontFamily: AppFonts_1.AppFonts.interMedium,
420
- fontSize: 11,
561
+ heroSubtitle: {
562
+ fontFamily: AppFonts_1.AppFonts.interRegular,
563
+ fontSize: 11.5,
421
564
  color: AppColors_1.AppColors.grayText,
422
- marginTop: 2,
423
- },
424
- portPill: {
425
- backgroundColor: `${AppColors_1.AppColors.purple}18`,
426
- paddingHorizontal: 6,
427
- paddingVertical: 2,
428
- borderRadius: 6,
429
- },
430
- portPillText: {
431
- fontFamily: AppFonts_1.AppFonts.interBold,
432
- fontSize: 10,
433
- color: AppColors_1.AppColors.purple,
565
+ marginTop: 1,
434
566
  },
435
- scanBtn: {
567
+ heroBadge: {
436
568
  flexDirection: 'row',
437
569
  alignItems: 'center',
438
570
  gap: 4,
439
- paddingHorizontal: 8,
440
- paddingVertical: 4,
571
+ backgroundColor: `${AppColors_1.AppColors.emerald500}18`,
572
+ paddingHorizontal: 7,
573
+ paddingVertical: 3,
441
574
  borderRadius: 6,
442
- backgroundColor: `${AppColors_1.AppColors.purple}14`,
443
- borderWidth: 1,
444
- borderColor: `${AppColors_1.AppColors.purple}30`,
445
575
  },
446
- scanBtnText: {
447
- fontFamily: AppFonts_1.AppFonts.interBold,
448
- fontSize: 11,
449
- color: AppColors_1.AppColors.purple,
576
+ pulseDot: {
577
+ width: 6,
578
+ height: 6,
579
+ borderRadius: 3,
580
+ backgroundColor: AppColors_1.AppColors.emerald500,
450
581
  },
451
- portsRow: {
452
- flexDirection: 'row',
453
- gap: 8,
582
+ heroBadgeText: {
583
+ fontFamily: AppFonts_1.AppFonts.interBold,
584
+ fontSize: 9.5,
585
+ color: AppColors_1.AppColors.emerald500,
454
586
  },
455
- portChip: {
456
- flex: 1,
587
+ heroMetricsStrip: {
457
588
  flexDirection: 'row',
458
589
  alignItems: 'center',
459
- justifyContent: 'center',
460
- gap: 4,
461
- paddingVertical: 7,
462
- borderRadius: 8,
463
590
  backgroundColor: AppColors_1.AppColors.grayBackground,
464
- borderWidth: 1,
465
- borderColor: AppColors_1.AppColors.grayBorderSecondary,
591
+ borderRadius: 10,
592
+ paddingVertical: 8,
593
+ paddingHorizontal: 10,
466
594
  },
467
- portChipSelected: {
468
- backgroundColor: `${AppColors_1.AppColors.purple}18`,
469
- borderColor: AppColors_1.AppColors.purple,
595
+ heroMetricItem: {
596
+ flex: 1,
597
+ alignItems: 'center',
598
+ paddingHorizontal: 2,
599
+ minWidth: 0,
470
600
  },
471
- portMiniDot: {
472
- width: 5,
473
- height: 5,
474
- borderRadius: 2.5,
601
+ heroMetricLabel: {
602
+ fontFamily: AppFonts_1.AppFonts.interBold,
603
+ fontSize: 8.5,
604
+ color: AppColors_1.AppColors.grayTextWeak,
605
+ letterSpacing: 0.4,
475
606
  },
476
- portChipText: {
607
+ heroMetricValue: {
477
608
  fontFamily: AppFonts_1.AppFonts.interBold,
478
609
  fontSize: 11,
479
- color: AppColors_1.AppColors.grayTextStrong,
480
- },
481
- portChipTextSelected: {
482
- color: AppColors_1.AppColors.purple,
483
- },
484
- liveBadge: {
485
- backgroundColor: AppColors_1.AppColors.greenColor,
486
- paddingHorizontal: 3,
487
- paddingVertical: 0.5,
488
- borderRadius: 3,
610
+ color: AppColors_1.AppColors.primaryBlack,
611
+ marginTop: 2,
489
612
  },
490
- liveBadgeText: {
491
- fontFamily: AppFonts_1.AppFonts.interBold,
492
- fontSize: 7.5,
493
- color: AppColors_1.AppColors.white,
613
+ heroMetricDivider: {
614
+ width: 1,
615
+ height: 20,
616
+ backgroundColor: AppColors_1.AppColors.dividerColor,
494
617
  },
495
- card: {
618
+ sectionCard: {
496
619
  backgroundColor: AppColors_1.AppColors.primaryLight,
497
620
  borderRadius: 14,
498
- padding: 14,
499
621
  borderWidth: 1,
500
622
  borderColor: AppColors_1.AppColors.grayBorderSecondary,
623
+ padding: 14,
501
624
  shadowColor: AppColors_1.AppColors.black,
502
- shadowOffset: { width: 0, height: 2 },
503
- shadowOpacity: 0.05,
504
- shadowRadius: 4,
505
- elevation: 2,
506
- gap: 8,
625
+ shadowOpacity: 0.03,
626
+ shadowRadius: 3,
627
+ shadowOffset: { width: 0, height: 1 },
628
+ elevation: 1,
629
+ gap: 12,
507
630
  },
508
- cardHeader: {
631
+ sectionHeaderRow: {
509
632
  flexDirection: 'row',
510
633
  alignItems: 'center',
511
634
  justifyContent: 'space-between',
512
635
  },
513
- cardTitle: {
636
+ sectionTitle: {
514
637
  fontFamily: AppFonts_1.AppFonts.interBold,
515
- fontSize: 11,
638
+ fontSize: 10.5,
516
639
  color: AppColors_1.AppColors.grayTextWeak,
517
- letterSpacing: 0.6,
640
+ letterSpacing: 0.8,
641
+ textTransform: 'uppercase',
642
+ },
643
+ refreshBtn: {
644
+ flexDirection: 'row',
645
+ alignItems: 'center',
646
+ gap: 4,
647
+ paddingHorizontal: 7,
648
+ paddingVertical: 3,
649
+ borderRadius: 6,
650
+ backgroundColor: `${AppColors_1.AppColors.purple}12`,
518
651
  },
519
- headerActionText: {
652
+ refreshBtnText: {
520
653
  fontFamily: AppFonts_1.AppFonts.interBold,
521
- fontSize: 11,
654
+ fontSize: 10,
522
655
  color: AppColors_1.AppColors.purple,
523
656
  },
524
- inputContainer: {
657
+ qrCenteredWrapper: {
658
+ alignItems: 'center',
659
+ justifyContent: 'center',
660
+ backgroundColor: AppColors_1.AppColors.grayBackground,
661
+ padding: 12,
662
+ borderRadius: 12,
663
+ borderWidth: 1,
664
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
665
+ },
666
+ qrInnerFrame: {
667
+ backgroundColor: AppColors_1.AppColors.white,
668
+ padding: 6,
669
+ borderRadius: 8,
670
+ },
671
+ urlBox: {
525
672
  flexDirection: 'row',
526
673
  alignItems: 'center',
527
674
  backgroundColor: AppColors_1.AppColors.grayBackground,
528
675
  borderRadius: 10,
676
+ paddingLeft: 10,
677
+ paddingRight: 6,
678
+ paddingVertical: 6,
529
679
  borderWidth: 1,
530
680
  borderColor: AppColors_1.AppColors.grayBorderSecondary,
531
- paddingHorizontal: 10,
532
- height: 40,
681
+ gap: 8,
533
682
  },
534
- inputPrefix: {
683
+ urlText: {
684
+ flex: 1,
535
685
  fontFamily: AppFonts_1.AppFonts.interMedium,
536
- fontSize: 12.5,
537
- color: AppColors_1.AppColors.grayTextWeak,
686
+ fontSize: 11.5,
687
+ color: AppColors_1.AppColors.skyBlue,
688
+ },
689
+ actionsRow: {
690
+ flexDirection: 'row',
691
+ gap: 10,
538
692
  },
539
- input: {
693
+ actionBtnSecondary: {
540
694
  flex: 1,
541
- fontFamily: AppFonts_1.AppFonts.interBold,
542
- fontSize: 13,
543
- color: AppColors_1.AppColors.primaryBlack,
544
- paddingVertical: 0,
695
+ flexDirection: 'row',
696
+ alignItems: 'center',
697
+ justifyContent: 'center',
698
+ gap: 6,
699
+ paddingVertical: 9,
700
+ borderRadius: 10,
701
+ borderWidth: 1,
702
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
703
+ backgroundColor: AppColors_1.AppColors.grayBackground,
545
704
  },
546
- inputSuffix: {
705
+ actionBtnSecondaryText: {
547
706
  fontFamily: AppFonts_1.AppFonts.interBold,
548
- fontSize: 12.5,
549
- color: AppColors_1.AppColors.purple,
550
- },
551
- inputHint: {
552
- fontFamily: AppFonts_1.AppFonts.interRegular,
553
- fontSize: 11,
554
- color: AppColors_1.AppColors.grayTextWeak,
555
- lineHeight: 15,
707
+ fontSize: 12,
708
+ color: AppColors_1.AppColors.grayTextStrong,
556
709
  },
557
- qrCard: {
558
- backgroundColor: AppColors_1.AppColors.primaryLight,
559
- borderRadius: 14,
560
- padding: 14,
561
- borderWidth: 1,
562
- borderColor: AppColors_1.AppColors.grayBorderSecondary,
563
- shadowColor: AppColors_1.AppColors.black,
564
- shadowOffset: { width: 0, height: 2 },
565
- shadowOpacity: 0.05,
710
+ actionBtnPrimary: {
711
+ flex: 1,
712
+ flexDirection: 'row',
713
+ alignItems: 'center',
714
+ justifyContent: 'center',
715
+ gap: 6,
716
+ paddingVertical: 9,
717
+ borderRadius: 10,
718
+ backgroundColor: AppColors_1.AppColors.purple,
719
+ shadowColor: AppColors_1.AppColors.purple,
720
+ shadowOpacity: 0.25,
566
721
  shadowRadius: 4,
722
+ shadowOffset: { width: 0, height: 2 },
567
723
  elevation: 2,
724
+ },
725
+ actionBtnPrimaryText: {
726
+ fontFamily: AppFonts_1.AppFonts.interBold,
727
+ fontSize: 12,
728
+ color: AppColors_1.AppColors.white,
729
+ },
730
+ completedBadge: {
731
+ flexDirection: 'row',
568
732
  alignItems: 'center',
569
- gap: 14,
733
+ gap: 3,
734
+ backgroundColor: `${AppColors_1.AppColors.emerald500}18`,
735
+ paddingHorizontal: 6,
736
+ paddingVertical: 2,
737
+ borderRadius: 5,
738
+ },
739
+ completedBadgeText: {
740
+ fontFamily: AppFonts_1.AppFonts.interBold,
741
+ fontSize: 9.5,
742
+ color: AppColors_1.AppColors.emerald500,
570
743
  },
571
- qrTabsRow: {
744
+ subTabStrip: {
572
745
  flexDirection: 'row',
573
746
  backgroundColor: AppColors_1.AppColors.grayBackground,
574
- borderRadius: 10,
575
- padding: 3,
576
- width: '100%',
577
- gap: 4,
747
+ borderRadius: 8,
748
+ padding: 2,
749
+ borderWidth: 1,
750
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
578
751
  },
579
- qrTab: {
752
+ subTabItem: {
580
753
  flex: 1,
581
- flexDirection: 'row',
754
+ paddingVertical: 7,
755
+ borderRadius: 6,
582
756
  alignItems: 'center',
583
757
  justifyContent: 'center',
584
- gap: 4,
585
- paddingVertical: 7,
586
- borderRadius: 8,
587
758
  },
588
- qrTabActive: {
759
+ subTabItemActive: {
589
760
  backgroundColor: AppColors_1.AppColors.purple,
761
+ shadowColor: AppColors_1.AppColors.purple,
762
+ shadowOpacity: 0.2,
763
+ shadowRadius: 3,
764
+ shadowOffset: { width: 0, height: 1 },
765
+ elevation: 1,
590
766
  },
591
- qrTabText: {
767
+ subTabText: {
592
768
  fontFamily: AppFonts_1.AppFonts.interMedium,
593
769
  fontSize: 11,
594
770
  color: AppColors_1.AppColors.grayText,
595
771
  },
596
- qrTabTextActive: {
597
- color: AppColors_1.AppColors.white,
772
+ subTabTextActive: {
598
773
  fontFamily: AppFonts_1.AppFonts.interBold,
774
+ color: AppColors_1.AppColors.white,
599
775
  },
600
- qrWrapper: {
776
+ cleanRow: {
777
+ flexDirection: 'row',
601
778
  alignItems: 'center',
602
- gap: 12,
779
+ gap: 8,
780
+ paddingVertical: 2,
603
781
  },
604
- qrInfoBox: {
782
+ checkboxBox: {
783
+ width: 18,
784
+ height: 18,
785
+ borderRadius: 4,
786
+ borderWidth: 1.5,
787
+ borderColor: AppColors_1.AppColors.grayBorderSecondary,
788
+ backgroundColor: AppColors_1.AppColors.grayBackground,
605
789
  alignItems: 'center',
606
- maxWidth: 280,
607
- gap: 2,
790
+ justifyContent: 'center',
608
791
  },
609
- qrTargetTitle: {
610
- fontFamily: AppFonts_1.AppFonts.interBold,
792
+ checkboxBoxActive: {
793
+ backgroundColor: AppColors_1.AppColors.purple,
794
+ borderColor: AppColors_1.AppColors.purple,
795
+ },
796
+ cleanLabel: {
797
+ fontFamily: AppFonts_1.AppFonts.interMedium,
611
798
  fontSize: 11.5,
612
- color: AppColors_1.AppColors.primaryBlack,
799
+ color: AppColors_1.AppColors.grayTextStrong,
613
800
  },
614
- qrTargetUrl: {
801
+ cleanCode: {
615
802
  fontFamily: AppFonts_1.AppFonts.interRegular,
803
+ color: AppColors_1.AppColors.grayTextWeak,
616
804
  fontSize: 10.5,
617
- color: AppColors_1.AppColors.skyBlue,
618
- textAlign: 'center',
619
- },
620
- qrActionsRow: {
621
- flexDirection: 'row',
622
- gap: 10,
623
- width: '100%',
624
805
  },
625
- actionBtn: {
626
- flex: 1,
627
- paddingVertical: 10,
806
+ progressContainer: {
807
+ backgroundColor: AppColors_1.AppColors.grayBackground,
628
808
  borderRadius: 10,
809
+ padding: 10,
810
+ gap: 6,
629
811
  borderWidth: 1,
630
812
  borderColor: AppColors_1.AppColors.grayBorderSecondary,
631
- backgroundColor: AppColors_1.AppColors.grayBackground,
813
+ },
814
+ progressTopRow: {
815
+ flexDirection: 'row',
632
816
  alignItems: 'center',
633
- justifyContent: 'center',
817
+ justifyContent: 'space-between',
818
+ },
819
+ progressTaskGroup: {
820
+ flexDirection: 'row',
821
+ alignItems: 'center',
822
+ gap: 6,
823
+ flex: 1,
824
+ paddingRight: 8,
825
+ },
826
+ progressTaskText: {
827
+ fontFamily: AppFonts_1.AppFonts.interMedium,
828
+ fontSize: 11,
829
+ color: AppColors_1.AppColors.primaryBlack,
830
+ flex: 1,
634
831
  },
635
- actionBtnText: {
832
+ progressPercentageText: {
636
833
  fontFamily: AppFonts_1.AppFonts.interBold,
637
- fontSize: 12,
638
- color: AppColors_1.AppColors.grayTextStrong,
834
+ fontSize: 11.5,
835
+ color: AppColors_1.AppColors.purple,
639
836
  },
640
- actionBtnPrimary: {
837
+ progressBarTrack: {
838
+ width: '100%',
839
+ height: 6,
840
+ borderRadius: 3,
841
+ backgroundColor: AppColors_1.AppColors.grayBorderSecondary,
842
+ overflow: 'hidden',
843
+ },
844
+ progressBarFill: {
845
+ height: '100%',
641
846
  backgroundColor: AppColors_1.AppColors.purple,
642
- borderColor: AppColors_1.AppColors.purple,
847
+ borderRadius: 3,
643
848
  },
644
- actionBtnPrimaryText: {
645
- fontFamily: AppFonts_1.AppFonts.interBold,
646
- fontSize: 12,
647
- color: AppColors_1.AppColors.white,
849
+ errorContainer: {
850
+ flexDirection: 'row',
851
+ alignItems: 'center',
852
+ gap: 6,
853
+ backgroundColor: `${AppColors_1.AppColors.errorColor}12`,
854
+ padding: 8,
855
+ borderRadius: 8,
856
+ borderWidth: 1,
857
+ borderColor: `${AppColors_1.AppColors.errorColor}25`,
648
858
  },
649
- guideCard: {
650
- backgroundColor: AppColors_1.AppColors.primaryLight,
651
- borderRadius: 14,
652
- padding: 14,
859
+ errorText: {
860
+ fontFamily: AppFonts_1.AppFonts.interRegular,
861
+ fontSize: 11,
862
+ color: AppColors_1.AppColors.errorColor,
863
+ flex: 1,
864
+ },
865
+ consoleContainer: {
866
+ backgroundColor: '#0F172A',
867
+ borderRadius: 10,
653
868
  borderWidth: 1,
654
- borderColor: AppColors_1.AppColors.grayBorderSecondary,
655
- gap: 10,
869
+ borderColor: '#1E293B',
870
+ overflow: 'hidden',
871
+ marginTop: 4,
872
+ },
873
+ consoleHeaderRow: {
874
+ flexDirection: 'row',
875
+ alignItems: 'center',
876
+ justifyContent: 'space-between',
877
+ backgroundColor: '#1E293B',
878
+ paddingHorizontal: 10,
879
+ paddingVertical: 6,
656
880
  },
657
- guideHeading: {
881
+ consoleHeaderTitle: {
658
882
  fontFamily: AppFonts_1.AppFonts.interBold,
659
- fontSize: 11,
660
- color: AppColors_1.AppColors.grayTextWeak,
661
- letterSpacing: 0.6,
883
+ fontSize: 10,
884
+ color: '#38BDF8',
885
+ letterSpacing: 0.5,
886
+ },
887
+ consoleToggleBtn: {
888
+ paddingHorizontal: 6,
889
+ paddingVertical: 2,
890
+ borderRadius: 4,
891
+ backgroundColor: 'rgba(255,255,255,0.1)',
892
+ },
893
+ consoleToggleText: {
894
+ fontFamily: AppFonts_1.AppFonts.interMedium,
895
+ fontSize: 9.5,
896
+ color: '#94A3B8',
897
+ },
898
+ consoleLogBox: {
899
+ maxHeight: 140,
900
+ paddingHorizontal: 10,
901
+ paddingVertical: 8,
902
+ },
903
+ consoleLogContent: {
904
+ gap: 3,
905
+ },
906
+ consoleLogLine: {
907
+ fontFamily: react_native_1.Platform.OS === 'ios' ? 'Menlo' : 'monospace',
908
+ fontSize: 10,
909
+ lineHeight: 14,
910
+ },
911
+ consoleLogPlaceholder: {
912
+ fontFamily: react_native_1.Platform.OS === 'ios' ? 'Menlo' : 'monospace',
913
+ fontSize: 10,
914
+ color: '#64748B',
915
+ fontStyle: 'italic',
662
916
  },
663
- stepRow: {
917
+ generateBtn: {
918
+ backgroundColor: AppColors_1.AppColors.purple,
919
+ borderRadius: 10,
920
+ paddingVertical: 10,
921
+ alignItems: 'center',
922
+ justifyContent: 'center',
923
+ shadowColor: AppColors_1.AppColors.purple,
924
+ shadowOpacity: 0.25,
925
+ shadowRadius: 4,
926
+ shadowOffset: { width: 0, height: 2 },
927
+ elevation: 2,
928
+ },
929
+ generateBtnDisabled: {
930
+ opacity: 0.7,
931
+ },
932
+ buildingActionsRow: {
664
933
  flexDirection: 'row',
665
- alignItems: 'flex-start',
934
+ alignItems: 'center',
666
935
  gap: 10,
667
936
  },
668
- stepNumberBadge: {
669
- width: 22,
670
- height: 22,
671
- borderRadius: 11,
672
- backgroundColor: `${AppColors_1.AppColors.purple}18`,
937
+ buildingStatusPill: {
938
+ flex: 1,
939
+ flexDirection: 'row',
673
940
  alignItems: 'center',
674
941
  justifyContent: 'center',
675
- marginTop: 1,
942
+ gap: 8,
943
+ backgroundColor: `${AppColors_1.AppColors.purple}14`,
944
+ borderRadius: 10,
945
+ paddingVertical: 10,
946
+ borderWidth: 1,
947
+ borderColor: `${AppColors_1.AppColors.purple}30`,
676
948
  },
677
- stepNumberText: {
949
+ buildingStatusPillText: {
678
950
  fontFamily: AppFonts_1.AppFonts.interBold,
679
- fontSize: 11,
951
+ fontSize: 12,
680
952
  color: AppColors_1.AppColors.purple,
681
953
  },
682
- stepTitle: {
954
+ stopBtn: {
955
+ flexDirection: 'row',
956
+ alignItems: 'center',
957
+ justifyContent: 'center',
958
+ gap: 6,
959
+ backgroundColor: AppColors_1.AppColors.errorColor,
960
+ borderRadius: 10,
961
+ paddingHorizontal: 16,
962
+ paddingVertical: 10,
963
+ shadowColor: AppColors_1.AppColors.errorColor,
964
+ shadowOpacity: 0.25,
965
+ shadowRadius: 4,
966
+ shadowOffset: { width: 0, height: 2 },
967
+ elevation: 2,
968
+ },
969
+ stopBtnText: {
970
+ fontFamily: AppFonts_1.AppFonts.interBold,
971
+ fontSize: 12,
972
+ color: AppColors_1.AppColors.white,
973
+ },
974
+ ctaContentRow: {
975
+ flexDirection: 'row',
976
+ alignItems: 'center',
977
+ gap: 6,
978
+ },
979
+ generateBtnText: {
683
980
  fontFamily: AppFonts_1.AppFonts.interBold,
684
981
  fontSize: 12.5,
685
- color: AppColors_1.AppColors.primaryBlack,
982
+ color: AppColors_1.AppColors.white,
983
+ },
984
+ footerNoteRow: {
985
+ flexDirection: 'row',
986
+ alignItems: 'center',
987
+ gap: 6,
988
+ paddingHorizontal: 8,
686
989
  },
687
- stepDesc: {
990
+ footerNoteText: {
688
991
  fontFamily: AppFonts_1.AppFonts.interRegular,
689
992
  fontSize: 11,
690
- color: AppColors_1.AppColors.grayText,
691
- lineHeight: 16,
692
- marginTop: 1,
993
+ color: AppColors_1.AppColors.grayTextWeak,
994
+ textAlign: 'center',
995
+ flex: 1,
693
996
  },
694
997
  });
695
998
  exports.default = exports.DebuggingTab;