react-native-inapp-inspector 2.5.13 → 2.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +0 -8
  2. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/results.bin +1 -0
  3. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  4. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  5. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  6. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  7. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  8. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$activityEventListener$1.dex +0 -0
  9. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  10. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.dex +0 -0
  11. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  12. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.dex +0 -0
  13. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  14. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  15. package/android/build/.transforms/ad628164ecef2a7cc593f0fd2f4050ce/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  16. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/results.bin +1 -0
  17. package/android/build/.transforms/c93e459e24d856bde563ebb048265732/transformed/classes/classes_dex/classes.dex +0 -0
  18. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +10 -0
  19. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +176 -0
  20. package/android/build/generated/source/codegen/jni/CMakeLists.txt +28 -0
  21. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +236 -0
  22. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +31 -0
  23. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +22 -0
  24. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +24 -0
  25. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +16 -0
  26. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +17 -0
  27. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +19 -0
  28. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +18 -0
  29. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +337 -0
  30. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +17 -0
  31. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +23 -0
  32. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +16 -0
  33. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +20 -0
  34. package/android/build/generated/source/codegen/schema.json +1 -0
  35. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +19 -0
  36. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  37. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  38. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  39. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  40. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  41. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  42. package/android/build/intermediates/compiled_local_resources/debug/compileDebugLibraryResources/out/xml_inappinspector_file_paths.xml.flat +0 -0
  43. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +2 -0
  44. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  45. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  46. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  47. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  48. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  49. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  50. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  51. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  52. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +28 -0
  53. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +19 -0
  54. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  55. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  56. package/android/build/intermediates/packaged_res/debug/packageDebugResources/xml/inappinspector_file_paths.xml +7 -0
  57. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  58. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  59. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  60. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  61. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  62. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  63. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  64. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  65. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  66. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  67. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  68. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  69. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  70. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  71. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  160. package/android/build/outputs/logs/manifest-merger-debug-report.txt +35 -0
  161. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  162. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  163. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  164. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  165. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  166. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$activityEventListener$1.class +0 -0
  167. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  168. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$getCapturedMedia$lambda$62$$inlined$sortedByDescending$1.class +0 -0
  169. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  170. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$startVideoRecording$2$1.class +0 -0
  171. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  172. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  173. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +118 -31
  174. package/dist/commonjs/components/Inspector/ConsoleExportModal.js +1 -1
  175. package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
  176. package/dist/commonjs/components/Inspector/DebuggingTab.js +21 -21
  177. package/dist/commonjs/components/Inspector/FabLauncher.js +3 -3
  178. package/dist/commonjs/components/Inspector/InspectorHeader.js +30 -30
  179. package/dist/commonjs/components/Inspector/MainScreen.js +38 -75
  180. package/dist/commonjs/components/Inspector/NetworkExportModal.js +4 -4
  181. package/dist/commonjs/components/Inspector/NetworkTab.js +51 -51
  182. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  183. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +17 -16
  184. package/dist/commonjs/components/Inspector/SettingsPanel.js +40 -41
  185. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  186. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +34 -3
  187. package/dist/commonjs/components/Inspector/TabBar.js +9 -15
  188. package/dist/commonjs/components/Inspector/UiInspectorDetail.js +16 -16
  189. package/dist/commonjs/components/LogCard.js +7 -7
  190. package/dist/commonjs/components/SkeletonPlaceholder.d.ts +3 -0
  191. package/dist/commonjs/components/SkeletonPlaceholder.js +34 -3
  192. package/dist/commonjs/constants/version.d.ts +1 -1
  193. package/dist/commonjs/constants/version.js +1 -1
  194. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  195. package/dist/commonjs/helpers/shareFormatter.js +14 -14
  196. package/dist/commonjs/helpers/uiInspectorEngine.js +9 -9
  197. package/dist/commonjs/index.d.ts +1 -1
  198. package/dist/commonjs/index.js +3 -3
  199. package/dist/commonjs/native/NativeInspector.d.ts +2 -0
  200. package/dist/commonjs/native/NativeInspector.js +1 -1
  201. package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
  202. package/dist/commonjs/styles/AppFonts.d.ts +4 -0
  203. package/dist/commonjs/styles/AppFonts.js +1 -1
  204. package/dist/commonjs/styles/index.d.ts +2 -0
  205. package/dist/commonjs/styles/index.js +1 -1
  206. package/dist/commonjs/types/enums.d.ts +0 -2
  207. package/dist/commonjs/types/enums.js +1 -1
  208. package/dist/commonjs/types/interfaces.d.ts +1 -1
  209. package/dist/esm/components/Inspector/BoxModelVisualizer.js +3 -3
  210. package/dist/esm/components/Inspector/ConsoleExportModal.js +1 -1
  211. package/dist/esm/components/Inspector/ConsoleTab.js +48 -48
  212. package/dist/esm/components/Inspector/DebuggingTab.js +106 -106
  213. package/dist/esm/components/Inspector/FabLauncher.js +42 -42
  214. package/dist/esm/components/Inspector/InspectorHeader.js +50 -50
  215. package/dist/esm/components/Inspector/MainScreen.js +87 -124
  216. package/dist/esm/components/Inspector/NetworkExportModal.js +1 -1
  217. package/dist/esm/components/Inspector/NetworkTab.js +83 -83
  218. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +1 -0
  219. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +23 -22
  220. package/dist/esm/components/Inspector/SettingsPanel.js +106 -107
  221. package/dist/esm/components/Inspector/SkeletonPlaceholder.d.ts +3 -0
  222. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +42 -11
  223. package/dist/esm/components/Inspector/TabBar.js +35 -41
  224. package/dist/esm/components/Inspector/UiA11yAuditPanel.js +4 -4
  225. package/dist/esm/components/Inspector/UiInspectorDetail.js +141 -141
  226. package/dist/esm/components/Inspector/UiInspectorOverlay.js +81 -81
  227. package/dist/esm/components/Inspector/UiInspectorTab.js +10 -10
  228. package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +35 -35
  229. package/dist/esm/components/LogCard.js +53 -53
  230. package/dist/esm/components/SkeletonPlaceholder.d.ts +3 -0
  231. package/dist/esm/components/SkeletonPlaceholder.js +42 -11
  232. package/dist/esm/constants/version.d.ts +1 -1
  233. package/dist/esm/constants/version.js +1 -1
  234. package/dist/esm/helpers/remoteConfig.js +1 -1
  235. package/dist/esm/helpers/shareFormatter.js +14 -14
  236. package/dist/esm/helpers/uiInspectorEngine.js +8 -8
  237. package/dist/esm/index.d.ts +1 -1
  238. package/dist/esm/index.js +8 -8
  239. package/dist/esm/native/NativeInspector.d.ts +2 -0
  240. package/dist/esm/native/NativeInspector.js +1 -1
  241. package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
  242. package/dist/esm/styles/AppFonts.d.ts +4 -0
  243. package/dist/esm/styles/AppFonts.js +1 -1
  244. package/dist/esm/styles/index.d.ts +2 -0
  245. package/dist/esm/styles/index.js +1 -1
  246. package/dist/esm/types/enums.d.ts +0 -2
  247. package/dist/esm/types/enums.js +1 -1
  248. package/dist/esm/types/interfaces.d.ts +1 -1
  249. package/ios/NetworkInspectorModule.mm +288 -325
  250. package/package.json +1 -1
  251. package/src/native/NativeInspector.ts +30 -0
  252. package/src/native/NativeNetworkInspector.ts +2 -0
@@ -197,37 +197,22 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
197
197
 
198
198
  defaultHandler = Thread.getDefaultUncaughtExceptionHandler()
199
199
 
200
- // 1. Intercept all uncaught exceptions on background/worker threads (prevents OS force-close)
200
+ // 1. Intercept all uncaught exceptions
201
201
  Thread.setDefaultUncaughtExceptionHandler { thread, throwable ->
202
202
  try {
203
203
  handleNativeCrash(thread, throwable)
204
204
  } catch (e: Exception) {
205
205
  Log.e(TAG, "Error in native crash handler", e)
206
206
  }
207
- // Suppress defaultHandler?.uncaughtException() to prevent OS killing the process
208
- }
209
-
210
- // 2. Main Looper Crash Shield: Protects UI thread from dying on uncaught exceptions
211
- try {
212
- android.os.Handler(android.os.Looper.getMainLooper()).post {
213
- while (true) {
214
- try {
215
- android.os.Looper.loop()
216
- } catch (e: Throwable) {
217
- try {
218
- handleNativeCrash(Thread.currentThread(), e)
219
- } catch (ex: Exception) {
220
- Log.e(TAG, "Error in Main Looper crash protection", ex)
221
- }
222
- }
223
- }
207
+ try {
208
+ defaultHandler?.uncaughtException(thread, throwable)
209
+ } catch (e: Exception) {
210
+ Log.e(TAG, "Error delegating to default handler", e)
224
211
  }
225
- } catch (e: Exception) {
226
- Log.w(TAG, "Failed to start Looper crash protection", e)
227
212
  }
228
213
 
229
214
  isProtectionEnabled = true
230
- Log.i(TAG, "Native Android Crash Shield enabled (Process kill prevention active)")
215
+ Log.i(TAG, "Native Android Crash Protection enabled")
231
216
  }
232
217
 
233
218
  private fun handleNativeCrash(thread: Thread, throwable: Throwable) {
@@ -251,6 +236,22 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
251
236
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
252
237
  .emit("onNativeCrash", params)
253
238
  }
239
+
240
+ // Also persist crash to disk synchronously
241
+ try {
242
+ val crashFile = File(getCapturesDirectory(), "last_native_crash.json")
243
+ val json = org.json.JSONObject().apply {
244
+ put("platform", "android")
245
+ put("error", throwable.message ?: "Unknown native exception")
246
+ put("name", throwable.javaClass.name)
247
+ put("stack", stackTrace)
248
+ put("threadName", thread.name)
249
+ put("timestamp", System.currentTimeMillis())
250
+ }
251
+ FileOutputStream(crashFile).use { fos ->
252
+ fos.write(json.toString(2).toByteArray(Charsets.UTF_8))
253
+ }
254
+ } catch (e: Exception) {}
254
255
  } catch (e: Exception) {
255
256
  Log.e(TAG, "Failed to emit onNativeCrash to JS", e)
256
257
  }
@@ -266,6 +267,43 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
266
267
  }
267
268
  }
268
269
 
270
+ @ReactMethod
271
+ fun getLastNativeCrash(promise: Promise) {
272
+ try {
273
+ val crashFile = File(getCapturesDirectory(), "last_native_crash.json")
274
+ if (crashFile.exists()) {
275
+ val jsonStr = crashFile.readText(Charsets.UTF_8)
276
+ val jsonObj = org.json.JSONObject(jsonStr)
277
+ val map = Arguments.createMap().apply {
278
+ putString("platform", jsonObj.optString("platform", "android"))
279
+ putString("error", jsonObj.optString("error", ""))
280
+ putString("name", jsonObj.optString("name", ""))
281
+ putString("stack", jsonObj.optString("stack", ""))
282
+ putString("threadName", jsonObj.optString("threadName", ""))
283
+ putDouble("timestamp", jsonObj.optDouble("timestamp", 0.0))
284
+ }
285
+ promise.resolve(map)
286
+ } else {
287
+ promise.resolve(null)
288
+ }
289
+ } catch (e: Exception) {
290
+ promise.reject("GET_CRASH_ERROR", e.message, e)
291
+ }
292
+ }
293
+
294
+ @ReactMethod
295
+ fun clearLastNativeCrash(promise: Promise) {
296
+ try {
297
+ val crashFile = File(getCapturesDirectory(), "last_native_crash.json")
298
+ if (crashFile.exists()) {
299
+ crashFile.delete()
300
+ }
301
+ promise.resolve(true)
302
+ } catch (e: Exception) {
303
+ promise.reject("CLEAR_CRASH_ERROR", e.message, e)
304
+ }
305
+ }
306
+
269
307
  @ReactMethod
270
308
  fun getDeviceMetrics(promise: Promise) {
271
309
  try {
@@ -398,7 +436,10 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
398
436
  val sizeDp = if (options != null && options.hasKey("size")) options.getDouble("size").toFloat() else 64f
399
437
  val sizePx = (sizeDp * density).toInt()
400
438
 
401
- if (floatingButton == null) {
439
+ if (floatingButton == null || floatingButton?.context != activity) {
440
+ floatingButton?.let { oldBtn ->
441
+ (oldBtn.parent as? android.view.ViewGroup)?.removeView(oldBtn)
442
+ }
402
443
  floatingButton = InAppInspectorFloatingView(activity) {
403
444
  emitFloatingButtonPress()
404
445
  }
@@ -417,7 +458,12 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
417
458
  floatingButton?.y = initialY
418
459
  decorView.addView(floatingButton, params)
419
460
  } else {
420
- if (floatingButton?.parent == null) {
461
+ val currentParent = floatingButton?.parent as? android.view.ViewGroup
462
+ if (currentParent == null) {
463
+ val params = android.widget.FrameLayout.LayoutParams(sizePx, sizePx)
464
+ decorView.addView(floatingButton, params)
465
+ } else if (currentParent != decorView) {
466
+ currentParent.removeView(floatingButton)
421
467
  val params = android.widget.FrameLayout.LayoutParams(sizePx, sizePx)
422
468
  decorView.addView(floatingButton, params)
423
469
  } else {
@@ -839,7 +885,25 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
839
885
  }
840
886
 
841
887
  private fun getActiveWindow(): Window? {
842
- return reactContext.currentActivity?.window
888
+ val activity = reactContext.currentActivity
889
+ if (activity == null || activity.isFinishing || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed)) {
890
+ return null
891
+ }
892
+ return activity.window
893
+ }
894
+
895
+ private fun getOrCreateCaptureHandler(): Handler {
896
+ synchronized(this) {
897
+ val handler = captureBackgroundHandler
898
+ if (handler != null && captureHandlerThread?.isAlive == true) {
899
+ return handler
900
+ }
901
+ val thread = HandlerThread("InAppInspector-PixelCopy").apply { start() }
902
+ captureHandlerThread = thread
903
+ val newHandler = Handler(thread.looper)
904
+ captureBackgroundHandler = newHandler
905
+ return newHandler
906
+ }
843
907
  }
844
908
 
845
909
  private fun captureWindowBitmap(window: Window?, scale: Float, callback: (Bitmap?) -> Unit) {
@@ -861,9 +925,12 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
861
925
 
862
926
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
863
927
  val destBitmap = Bitmap.createBitmap(targetWidth, targetHeight, Bitmap.Config.ARGB_8888)
864
- val copyHandler = captureBackgroundHandler ?: mainHandler
928
+ val copyHandler = getOrCreateCaptureHandler()
865
929
  try {
866
- PixelCopy.request(targetWindow, null, destBitmap, { copyResult ->
930
+ val srcRect = if (decorView.width > 0 && decorView.height > 0) {
931
+ android.graphics.Rect(0, 0, decorView.width, decorView.height)
932
+ } else null
933
+ PixelCopy.request(targetWindow, srcRect, destBitmap, { copyResult ->
867
934
  if (copyResult == PixelCopy.SUCCESS) {
868
935
  callback(destBitmap)
869
936
  } else {
@@ -2275,11 +2342,17 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
2275
2342
  addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
2276
2343
  }
2277
2344
 
2278
- val resInfoList = activity.packageManager.queryIntentActivities(chooser, android.content.pm.PackageManager.MATCH_DEFAULT_ONLY)
2279
- for (resolveInfo in resInfoList) {
2280
- val packageName = resolveInfo.activityInfo.packageName
2281
- activity.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
2282
- }
2345
+ try {
2346
+ val resInfoList = activity.packageManager.queryIntentActivities(chooser, android.content.pm.PackageManager.MATCH_DEFAULT_ONLY)
2347
+ for (resolveInfo in resInfoList) {
2348
+ val packageName = resolveInfo.activityInfo?.packageName
2349
+ if (!packageName.isNullOrEmpty()) {
2350
+ try {
2351
+ activity.grantUriPermission(packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
2352
+ } catch (e: Exception) {}
2353
+ }
2354
+ }
2355
+ } catch (e: Exception) {}
2283
2356
 
2284
2357
  activity.startActivity(chooser)
2285
2358
  promise.resolve(true)
@@ -2301,11 +2374,25 @@ class NetworkInspectorModule(private val reactContext: ReactApplicationContext)
2301
2374
  override fun invalidate() {
2302
2375
  super.invalidate()
2303
2376
  try {
2377
+ reactContext.removeActivityEventListener(activityEventListener)
2304
2378
  sensorManager?.unregisterListener(shakeListener)
2305
2379
  if (isFpsMonitoring) {
2306
2380
  isFpsMonitoring = false
2307
2381
  android.view.Choreographer.getInstance().removeFrameCallback(frameCallback)
2308
2382
  }
2383
+ if (isRecordingVideo) {
2384
+ isRecordingVideo = false
2385
+ recordingTimer?.cancel()
2386
+ recordingTimer = null
2387
+ isFrameCapturing.set(false)
2388
+ }
2389
+ captureHandlerThread?.quitSafely()
2390
+ captureHandlerThread = null
2391
+ captureBackgroundHandler = null
2392
+ synchronized(recordedFrames) {
2393
+ recordedFrames.forEach { it.recycle() }
2394
+ recordedFrames.clear()
2395
+ }
2309
2396
  floatingButton?.let { btn ->
2310
2397
  val parent = btn.parent as? android.view.ViewGroup
2311
2398
  parent?.post {
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,a,l){l===void 0&&(l=a);var t=Object.getOwnPropertyDescriptor(r,a);(!t||("get"in t?!r.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return r[a]}}),Object.defineProperty(i,l,t)}):(function(i,r,a,l){l===void 0&&(l=a),i[l]=r[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,r){Object.defineProperty(i,"default",{enumerable:!0,value:r})}):function(i,r){i.default=r}),__importStar=this&&this.__importStar||(function(){var i=function(r){return i=Object.getOwnPropertyNames||function(a){var l=[];for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&(l[l.length]=t);return l},i(r)};return function(r){if(r&&r.__esModule)return r;var a={};if(r!=null)for(var l=i(r),t=0;t<l.length;t++)l[t]!=="default"&&__createBinding(a,r,l[t]);return __setModuleDefault(a,r),a}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConsoleExportModal=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),NativeInspector_1=require("../../native/NativeInspector"),helpers_1=require("../../helpers"),shareFormatter_1=require("../../helpers/shareFormatter"),i18n_1=require("../../i18n"),ConsoleExportModal=({visible:i,onClose:r,filteredLogs:a,allLogs:l})=>{const{t}=(0,i18n_1.useTranslation)(),[T,B]=(0,react_1.useState)("config"),[y,q]=(0,react_1.useState)("filtered"),[v,G]=(0,react_1.useState)("info"),[s,L]=(0,react_1.useState)("all"),[E,U]=(0,react_1.useState)("50"),[_,K]=(0,react_1.useState)(""),[c,J]=(0,react_1.useState)("txt"),[P,X]=(0,react_1.useState)(!1),[O,Z]=(0,react_1.useState)(!1),[M,Q]=(0,react_1.useState)(!1),[W,Y]=(0,react_1.useState)(!1),[N,ee]=(0,react_1.useState)(!1),[ie,j]=(0,react_1.useState)(0),[le,$]=(0,react_1.useState)(0),[x,te]=(0,react_1.useState)(""),[p,oe]=(0,react_1.useState)(""),[ae,re]=(0,react_1.useState)(0),A=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,k=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,h=(0,react_1.useMemo)(()=>{if(!_||_.trim().length===0)return{isValid:!0,error:null,regex:null};try{return{isValid:!0,error:null,regex:new RegExp(_.trim(),"i")}}catch(e){return{isValid:!1,error:e?.message||"Invalid pattern",regex:null}}},[_]),I=(0,react_1.useMemo)(()=>({includeStackTrace:P,includeArguments:O,includeCaller:M,includeTimestamps:W,includeAppInfo:N,includeDuplicates:!1,ignorePattern:s==="custom"&&h.isValid?_.trim():void 0}),[P,O,M,W,N,s,h.isValid,_]);(0,react_1.useEffect)(()=>{if(T==="progress"){const e=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(k,{toValue:1.05,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0}),react_native_1.Animated.timing(k,{toValue:1,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()}},[T,k]),(0,react_1.useEffect)(()=>{i&&(B("config"),L("all"),G("info"),J("txt"),U("50"),K(""),X(!1),Z(!1),Q(!1),Y(!1),ee(!1),j(0),$(0),te(""),oe(""),re(0),A.setValue(0))},[i,A]);const b=(0,react_1.useMemo)(()=>y==="filtered"?a:l,[y,a,l]),F=(0,react_1.useMemo)(()=>v==="all"?b:b.filter(e=>v==="info"?e.type==="info"||e.sourceMethod==="log"||e.sourceMethod==="info":v==="warn"?e.type==="warn":v==="error"?e.type==="error":!0),[b,v]),R=(0,react_1.useMemo)(()=>{let e=0,o=0,C=0;return b.forEach(w=>{w.type==="error"?C++:w.type==="warn"?o++:e++}),{all:b.length,info:e,warn:o,error:C}},[b]),{selectedLogs:n,ignoredCount:z}=(0,react_1.useMemo)(()=>{if(F.length===0)return{selectedLogs:[],ignoredCount:0};let o=F,C=0;if(s==="custom"&&h.regex){const m=h.regex,H=o.length;o=o.filter(S=>{const ge=S.message||"",ue=S.rawArgs?JSON.stringify(S.rawArgs):"",fe=S.caller||"";return!m.test(ge)&&!m.test(ue)&&!m.test(fe)}),C=H-o.length}let w=o.length;if(s==="all")w=o.length;else if(s==="custom"){const m=parseInt(E,10);w=isNaN(m)||m<=0?o.length:Math.min(m,o.length)}return{selectedLogs:o.slice(-w),ignoredCount:C}},[F,s,E,h.regex]),D=(0,react_1.useMemo)(()=>(0,shareFormatter_1.estimateConsoleLogsExportSize)(n,c,I),[n,c,I]),V=e=>e<=0?"0 KB":e<1024?`${(e/1024).toFixed(2)} KB`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,ne=(0,react_1.useCallback)(()=>{if(n.length===0){(0,helpers_1.showToast)(t("console.noLogsToExport","No logs available to export"));return}(0,NativeInspector_1.triggerNativeHaptic)("medium"),B("progress"),j(0),$(0),A.setValue(0);const e=n.length,o=Math.max(1,Math.floor(e/10));let C=0;const w=setInterval(()=>{C=Math.min(C+o,e);const m=C/e;j(Math.round(m*100)),$(C),react_native_1.Animated.timing(A,{toValue:m,duration:120,easing:react_native_1.Easing.linear,useNativeDriver:!1}).start(),C>=e&&(clearInterval(w),setTimeout(()=>{const H=(0,shareFormatter_1.formatConsoleLogsExport)(n,c,I),S=(0,shareFormatter_1.generateConsoleLogsFilename)(c);te(H),oe(S),re(H.length),B("complete"),(0,NativeInspector_1.triggerNativeHaptic)("heavy")},180))},45)},[n,c,I,A,t]),se=(0,react_1.useCallback)(async()=>{if(x){(0,NativeInspector_1.triggerNativeHaptic)("light");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(p,x);if(e&&await(0,NativeInspector_1.shareNativeFile)(e,"text/plain",p))return;await react_native_1.Share.share({title:p,message:x,url:e||void 0},{dialogTitle:`Share ${p}`,subject:p})}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Failed to open share sheet")}}},[x,p,c]),ce=(0,react_1.useCallback)(async()=>{if(x){(0,NativeInspector_1.triggerNativeHaptic)("medium");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(p,x);if(e&&await(0,NativeInspector_1.shareNativeFile)(e,"text/plain",`Save ${p}`)){(0,helpers_1.showToast)(t("console.savePromptOpened","Opened save to disk dialog"));return}await react_native_1.Share.share({title:`Save ${p}`,message:x,url:e||void 0},{dialogTitle:`Save to Disk (${p})`,subject:p}),(0,helpers_1.showToast)(t("console.savePromptOpened","Opened save to disk dialog"))}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Save error")}}},[x,p,c,t]),pe=(0,react_1.useCallback)(()=>{x&&((0,NativeInspector_1.triggerNativeHaptic)("light"),(0,helpers_1.copyToClipboard)(x,"Console Logs"),(0,helpers_1.showToast)(t("console.copiedLogs","Logs copied to clipboard!")))},[x,t]),de=a.length!==l.length;return<react_native_1.Modal visible={i}transparent animationType="slide"onRequestClose={r}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,r,a,l){l===void 0&&(l=a);var t=Object.getOwnPropertyDescriptor(r,a);(!t||("get"in t?!r.__esModule:t.writable||t.configurable))&&(t={enumerable:!0,get:function(){return r[a]}}),Object.defineProperty(i,l,t)}):(function(i,r,a,l){l===void 0&&(l=a),i[l]=r[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,r){Object.defineProperty(i,"default",{enumerable:!0,value:r})}):function(i,r){i.default=r}),__importStar=this&&this.__importStar||(function(){var i=function(r){return i=Object.getOwnPropertyNames||function(a){var l=[];for(var t in a)Object.prototype.hasOwnProperty.call(a,t)&&(l[l.length]=t);return l},i(r)};return function(r){if(r&&r.__esModule)return r;var a={};if(r!=null)for(var l=i(r),t=0;t<l.length;t++)l[t]!=="default"&&__createBinding(a,r,l[t]);return __setModuleDefault(a,r),a}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ConsoleExportModal=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),NativeInspector_1=require("../../native/NativeInspector"),helpers_1=require("../../helpers"),shareFormatter_1=require("../../helpers/shareFormatter"),i18n_1=require("../../i18n"),ConsoleExportModal=({visible:i,onClose:r,filteredLogs:a,allLogs:l})=>{const{t}=(0,i18n_1.useTranslation)(),[T,B]=(0,react_1.useState)("config"),[y,q]=(0,react_1.useState)("filtered"),[v,G]=(0,react_1.useState)("info"),[s,L]=(0,react_1.useState)("all"),[E,U]=(0,react_1.useState)("50"),[_,K]=(0,react_1.useState)(""),[c,J]=(0,react_1.useState)("txt"),[P,X]=(0,react_1.useState)(!0),[O,Z]=(0,react_1.useState)(!0),[M,Q]=(0,react_1.useState)(!0),[W,Y]=(0,react_1.useState)(!0),[N,ee]=(0,react_1.useState)(!0),[ie,j]=(0,react_1.useState)(0),[le,$]=(0,react_1.useState)(0),[x,te]=(0,react_1.useState)(""),[p,oe]=(0,react_1.useState)(""),[ae,re]=(0,react_1.useState)(0),A=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,k=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,h=(0,react_1.useMemo)(()=>{if(!_||_.trim().length===0)return{isValid:!0,error:null,regex:null};try{return{isValid:!0,error:null,regex:new RegExp(_.trim(),"i")}}catch(e){return{isValid:!1,error:e?.message||"Invalid pattern",regex:null}}},[_]),I=(0,react_1.useMemo)(()=>({includeStackTrace:P,includeArguments:O,includeCaller:M,includeTimestamps:W,includeAppInfo:N,includeDuplicates:!1,ignorePattern:s==="custom"&&h.isValid?_.trim():void 0}),[P,O,M,W,N,s,h.isValid,_]);(0,react_1.useEffect)(()=>{if(T==="progress"){const e=react_native_1.Animated.loop(react_native_1.Animated.sequence([react_native_1.Animated.timing(k,{toValue:1.05,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0}),react_native_1.Animated.timing(k,{toValue:1,duration:600,easing:react_native_1.Easing.inOut(react_native_1.Easing.ease),useNativeDriver:!0})]));return e.start(),()=>e.stop()}},[T,k]),(0,react_1.useEffect)(()=>{i&&(B("config"),L("all"),G("info"),J("txt"),U("50"),K(""),X(!1),Z(!1),Q(!1),Y(!1),ee(!1),j(0),$(0),te(""),oe(""),re(0),A.setValue(0))},[i,A]);const b=(0,react_1.useMemo)(()=>y==="filtered"?a:l,[y,a,l]),F=(0,react_1.useMemo)(()=>v==="all"?b:b.filter(e=>v==="info"?e.type==="info"||e.sourceMethod==="log"||e.sourceMethod==="info":v==="warn"?e.type==="warn":v==="error"?e.type==="error":!0),[b,v]),R=(0,react_1.useMemo)(()=>{let e=0,o=0,C=0;return b.forEach(w=>{w.type==="error"?C++:w.type==="warn"?o++:e++}),{all:b.length,info:e,warn:o,error:C}},[b]),{selectedLogs:n,ignoredCount:z}=(0,react_1.useMemo)(()=>{if(F.length===0)return{selectedLogs:[],ignoredCount:0};let o=F,C=0;if(s==="custom"&&h.regex){const m=h.regex,H=o.length;o=o.filter(S=>{const ge=S.message||"",ue=S.rawArgs?JSON.stringify(S.rawArgs):"",fe=S.caller||"";return!m.test(ge)&&!m.test(ue)&&!m.test(fe)}),C=H-o.length}let w=o.length;if(s==="all")w=o.length;else if(s==="custom"){const m=parseInt(E,10);w=isNaN(m)||m<=0?o.length:Math.min(m,o.length)}return{selectedLogs:o.slice(-w),ignoredCount:C}},[F,s,E,h.regex]),D=(0,react_1.useMemo)(()=>(0,shareFormatter_1.estimateConsoleLogsExportSize)(n,c,I),[n,c,I]),V=e=>e<=0?"0 KB":e<1024?`${(e/1024).toFixed(2)} KB`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(2)} MB`,ne=(0,react_1.useCallback)(()=>{if(n.length===0){(0,helpers_1.showToast)(t("console.noLogsToExport","No logs available to export"));return}(0,NativeInspector_1.triggerNativeHaptic)("medium"),B("progress"),j(0),$(0),A.setValue(0);const e=n.length,o=Math.max(1,Math.floor(e/10));let C=0;const w=setInterval(()=>{C=Math.min(C+o,e);const m=C/e;j(Math.round(m*100)),$(C),react_native_1.Animated.timing(A,{toValue:m,duration:120,easing:react_native_1.Easing.linear,useNativeDriver:!1}).start(),C>=e&&(clearInterval(w),setTimeout(()=>{const H=(0,shareFormatter_1.formatConsoleLogsExport)(n,c,I),S=(0,shareFormatter_1.generateConsoleLogsFilename)(c);te(H),oe(S),re(H.length),B("complete"),(0,NativeInspector_1.triggerNativeHaptic)("heavy")},180))},45)},[n,c,I,A,t]),se=(0,react_1.useCallback)(async()=>{if(x){(0,NativeInspector_1.triggerNativeHaptic)("light");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(p,x);if(e&&await(0,NativeInspector_1.shareNativeFile)(e,"text/plain",p))return;await react_native_1.Share.share({title:p,message:x,url:e||void 0},{dialogTitle:`Share ${p}`,subject:p})}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Failed to open share sheet")}}},[x,p,c]),ce=(0,react_1.useCallback)(async()=>{if(x){(0,NativeInspector_1.triggerNativeHaptic)("medium");try{const e=await(0,NativeInspector_1.writeNativeExportFile)(p,x);if(e&&await(0,NativeInspector_1.shareNativeFile)(e,"text/plain",`Save ${p}`)){(0,helpers_1.showToast)(t("console.savePromptOpened","Opened save to disk dialog"));return}await react_native_1.Share.share({title:`Save ${p}`,message:x,url:e||void 0},{dialogTitle:`Save to Disk (${p})`,subject:p}),(0,helpers_1.showToast)(t("console.savePromptOpened","Opened save to disk dialog"))}catch(e){e?.message!=="User did not share"&&(0,helpers_1.showToast)(e?.message||"Save error")}}},[x,p,c,t]),pe=(0,react_1.useCallback)(()=>{x&&((0,NativeInspector_1.triggerNativeHaptic)("light"),(0,helpers_1.copyToClipboard)(x,"Console Logs"),(0,helpers_1.showToast)(t("console.copiedLogs","Logs copied to clipboard!")))},[x,t]),de=a.length!==l.length;return<react_native_1.Modal visible={i}transparent animationType="slide"onRequestClose={r}>
2
2
  <react_native_1.View style={styles.overlay}>
3
3
  <react_native_1.Pressable style={styles.backdrop}onPress={r}/>
4
4
 
@@ -1,6 +1,6 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,o,l,n){n===void 0&&(n=l);var a=Object.getOwnPropertyDescriptor(o,l);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(t,n,a)}):(function(t,o,l,n){n===void 0&&(n=l),t[n]=o[l]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,o){Object.defineProperty(t,"default",{enumerable:!0,value:o})}):function(t,o){t.default=o}),__importStar=this&&this.__importStar||(function(){var t=function(o){return t=Object.getOwnPropertyNames||function(l){var n=[];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(n[n.length]=a);return n},t(o)};return function(o){if(o&&o.__esModule)return o;var l={};if(o!=null)for(var n=t(o),a=0;a<n.length;a++)n[a]!=="default"&&__createBinding(l,o,n[a]);return __setModuleDefault(l,o),l}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),i18n_1=require("../../i18n"),TouchableScale_1=__importDefault(require("../TouchableScale")),AnimatedEntrance_1=__importDefault(require("../AnimatedEntrance")),ConsoleLogCard_1=require("../ConsoleLogCard"),EmptyState_1=__importDefault(require("../EmptyState")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),ConsoleExportModal_1=__importDefault(require("./ConsoleExportModal")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),types_1=require("../../types"),NetworkIcons_1=require("../NetworkIcons"),LOAD_MORE_STEP=10,ConsoleTab=react_1.default.memo(()=>{const{t}=(0,i18n_1.useTranslation)(),{logSearch:o,setLogSearch:l,logSortOrder:n,setLogSortOrder:a,handleDelete:B,logFilters:i,setLogFilters:A,logCounts:_,filteredConsoleLogs:c,visibleConsoleLogs:b,maxConsoleLogs:w,setSelectedLog:I,selectedConsoleLogs:S,toggleSelectConsoleLog:x}=(0,InspectorContext_1.useInspector)(),P=w||100,v=(0,react_1.useRef)(null),[L,V]=react_1.default.useState(P),[O,F]=react_1.default.useState(!1);react_1.default.useEffect(()=>{V(w||100),v.current?.scrollToOffset({offset:0,animated:!1})},[o,i,w]);const m=(0,react_1.useMemo)(()=>c.slice(0,L),[c,L]),E=(0,react_1.useCallback)(e=>{I(e)},[I]),M=(0,react_1.useCallback)(({item:e,index:r})=><AnimatedEntrance_1.default index={r}distance={8}>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,o,l,n){n===void 0&&(n=l);var a=Object.getOwnPropertyDescriptor(o,l);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[l]}}),Object.defineProperty(t,n,a)}):(function(t,o,l,n){n===void 0&&(n=l),t[n]=o[l]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,o){Object.defineProperty(t,"default",{enumerable:!0,value:o})}):function(t,o){t.default=o}),__importStar=this&&this.__importStar||(function(){var t=function(o){return t=Object.getOwnPropertyNames||function(l){var n=[];for(var a in l)Object.prototype.hasOwnProperty.call(l,a)&&(n[n.length]=a);return n},t(o)};return function(o){if(o&&o.__esModule)return o;var l={};if(o!=null)for(var n=t(o),a=0;a<n.length;a++)n[a]!=="default"&&__createBinding(l,o,n[a]);return __setModuleDefault(l,o),l}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),InspectorContext_1=require("./InspectorContext"),i18n_1=require("../../i18n"),TouchableScale_1=__importDefault(require("../TouchableScale")),AnimatedEntrance_1=__importDefault(require("../AnimatedEntrance")),ConsoleLogCard_1=require("../ConsoleLogCard"),EmptyState_1=__importDefault(require("../EmptyState")),EndOfListFooter_1=__importDefault(require("../EndOfListFooter")),ConsoleExportModal_1=__importDefault(require("./ConsoleExportModal")),styles_1=__importDefault(require("../../styles")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),types_1=require("../../types"),NetworkIcons_1=require("../NetworkIcons"),LOAD_MORE_STEP=10,ConsoleTab=react_1.default.memo(()=>{const{t}=(0,i18n_1.useTranslation)(),{logSearch:o,setLogSearch:l,logSortOrder:n,setLogSortOrder:a,handleDelete:B,logFilters:i,setLogFilters:A,logCounts:_,filteredConsoleLogs:c,visibleConsoleLogs:w,maxConsoleLogs:b,setSelectedLog:I,selectedConsoleLogs:S,toggleSelectConsoleLog:x}=(0,InspectorContext_1.useInspector)(),P=b||100,v=(0,react_1.useRef)(null),[L,V]=react_1.default.useState(P),[O,F]=react_1.default.useState(!1);react_1.default.useEffect(()=>{V(b||100),v.current?.scrollToOffset({offset:0,animated:!1})},[o,i,b]);const m=(0,react_1.useMemo)(()=>c.slice(0,L),[c,L]),E=(0,react_1.useCallback)(e=>{I(e)},[I]),M=(0,react_1.useCallback)(({item:e,index:r})=><AnimatedEntrance_1.default index={r}distance={8}>
2
2
  <ConsoleLogCard_1.ConsoleLogCard testID={`inspector.console.item.${r}`}item={e}searchStr={o}onPress={E}isSelected={S.has(e.id)}onToggleSelect={x}/>
3
- </AnimatedEntrance_1.default>,[o,E,S,x]),D=(0,react_1.useCallback)((e,r)=>({length:148,offset:148*r,index:r}),[]),H=(0,react_1.useCallback)((e,r)=>e?.id?.toString()??r.toString(),[]),$=(0,react_1.useMemo)(()=>{const e=b.length,r=c.length;if(i.has("all")||!Array.from(i).some(h=>h!=="all"))return<react_native_1.View style={{paddingHorizontal:8,paddingTop:8,paddingBottom:3}}>
3
+ </AnimatedEntrance_1.default>,[o,E,S,x]),D=(0,react_1.useCallback)((e,r)=>e?.id?.toString()??r.toString(),[]),H=(0,react_1.useMemo)(()=>{const e=w.length,r=c.length;if(i.has("all")||!Array.from(i).some(h=>h!=="all"))return<react_native_1.View style={{paddingHorizontal:8,paddingTop:8,paddingBottom:3}}>
4
4
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.2}}>
5
5
  {r===e?`Showing ${e} logs`:`Showing ${r} of ${e} logs`}
6
6
  </react_native_1.Text>
@@ -8,7 +8,7 @@
8
8
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.2}}>
9
9
  Filtered by {h.join(", ")} ({r} of {e} logs)
10
10
  </react_native_1.Text>
11
- </react_native_1.View>}},[b.length,c.length,i]),[T,z]=react_1.default.useState(!1),R=(0,react_1.useMemo)(()=>["[AXIOS]","[API]","[GRAPHQL]","[REDUX]","[ANALYTICS]","[AUTH]","[NAV]","[STORAGE]","[PERF]","[WS]","[PUSH]","[PAYMENT]","[SYNC]","[BLE]","[LOCATION]","[TEST]","[DEBUG]"],[]),k=(0,react_1.useMemo)(()=>[{id:types_1.LogFilter.All,label:t("common.all","All"),count:_.all?.split("/")?.[0]??"0",color:AppColors_1.AppColors.purple,Icon:NetworkIcons_1.LayersIcon},{id:types_1.LogFilter.UserLog,label:t("console.log","Log"),count:_["user-log"]?.split("/")?.[0]??"0",color:AppColors_1.AppColors.teal600,Icon:NetworkIcons_1.UserIcon},{id:types_1.LogFilter.Info,label:t("console.info","Info"),count:_.info?.split("/")?.[0]??"0",color:AppColors_1.AppColors.sky600,Icon:NetworkIcons_1.InfoCircleIcon},{id:types_1.LogFilter.Warn,label:t("console.warning","Warn"),count:_.warn?.split("/")?.[0]??"0",color:AppColors_1.AppColors.amber600,Icon:NetworkIcons_1.WarningTriangleIcon},{id:types_1.LogFilter.Error,label:t("console.error","Error"),count:_.error?.split("/")?.[0]??"0",color:AppColors_1.AppColors.errorColor,Icon:NetworkIcons_1.ErrorCircleIcon},{id:types_1.LogFilter.Analytics,label:t("console.analytics","Analytics"),count:_.analytics?.split("/")?.[0]??"0",color:AppColors_1.AppColors.violet600,Icon:NetworkIcons_1.AnalyticsIcon}],[_,t]);return<react_native_1.View style={{flex:1}}>
11
+ </react_native_1.View>}},[w.length,c.length,i]),[T,z]=react_1.default.useState(!1),$=(0,react_1.useMemo)(()=>["[AXIOS]","[API]","[GRAPHQL]","[REDUX]","[ANALYTICS]","[AUTH]","[NAV]","[STORAGE]","[PERF]","[WS]","[PUSH]","[PAYMENT]","[SYNC]","[BLE]","[LOCATION]","[TEST]","[DEBUG]"],[]),R=(0,react_1.useMemo)(()=>[{id:types_1.LogFilter.All,label:t("common.all","All"),count:_.all?.split("/")?.[0]??"0",color:AppColors_1.AppColors.purple,Icon:NetworkIcons_1.LayersIcon},{id:types_1.LogFilter.UserLog,label:t("console.log","Log"),count:_["user-log"]?.split("/")?.[0]??"0",color:AppColors_1.AppColors.teal600,Icon:NetworkIcons_1.UserIcon},{id:types_1.LogFilter.Info,label:t("console.info","Info"),count:_.info?.split("/")?.[0]??"0",color:AppColors_1.AppColors.sky600,Icon:NetworkIcons_1.InfoCircleIcon},{id:types_1.LogFilter.Warn,label:t("console.warning","Warn"),count:_.warn?.split("/")?.[0]??"0",color:AppColors_1.AppColors.amber600,Icon:NetworkIcons_1.WarningTriangleIcon},{id:types_1.LogFilter.Error,label:t("console.error","Error"),count:_.error?.split("/")?.[0]??"0",color:AppColors_1.AppColors.errorColor,Icon:NetworkIcons_1.ErrorCircleIcon},{id:types_1.LogFilter.Analytics,label:t("console.analytics","Analytics"),count:_.analytics?.split("/")?.[0]??"0",color:AppColors_1.AppColors.violet600,Icon:NetworkIcons_1.AnalyticsIcon}],[_,t]);return<react_native_1.View style={{flex:1}}>
12
12
  <react_native_1.View style={{backgroundColor:AppColors_1.AppColors.white,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingBottom:6}}>
13
13
  <react_native_1.View style={[styles_1.default.toolbarRow,{marginTop:12,marginBottom:8}]}>
14
14
  <react_native_1.View style={[styles_1.default.searchContainer,T&&{borderColor:AppColors_1.AppColors.purple,borderWidth:1.5}]}>
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
  {(T||o.length>0)&&<react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}style={{marginBottom:6,maxHeight:30}}contentContainerStyle={{paddingHorizontal:8,flexDirection:"row",alignItems:"center",gap:6}}>
49
- {R.map(e=>{const r=o.includes(e);return<TouchableScale_1.default key={e}onPress={()=>{l(r?s=>s.replace(e,"").trim():s=>s?`${s} ${e}`.trim():e)}}>
49
+ {$.map(e=>{const r=o.includes(e);return<TouchableScale_1.default key={e}onPress={()=>{l(r?s=>s.replace(e,"").trim():s=>s?`${s} ${e}`.trim():e)}}>
50
50
  <react_native_1.View style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:r?AppColors_1.AppColors.purple:`${AppColors_1.AppColors.purple}14`,borderWidth:1,borderColor:r?AppColors_1.AppColors.purple:`${AppColors_1.AppColors.purple}30`}}>
51
51
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10,color:r?AppColors_1.AppColors.white:AppColors_1.AppColors.purple}}>
52
52
  {e}
@@ -58,7 +58,7 @@
58
58
 
59
59
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:8,gap:6}}>
60
60
  <react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
61
- {k.map(e=>{const r=e.id==="all"?i.has("all"):i.has(e.id)&&!i.has("all"),s=e.color||AppColors_1.AppColors.purple,h=r?AppColors_1.AppColors.white:s,C=e.Icon;return<TouchableScale_1.default testID={`inspector.console.filter.${e.id}`}key={e.id}onPress={()=>{e.id==="all"?A(new Set(["all"])):A(q=>{const y=new Set(q);return y.delete("all"),y.has(e.id)?y.delete(e.id):y.add(e.id),y.size===0&&y.add("all"),y})}}>
61
+ {R.map(e=>{const r=e.id==="all"?i.has("all"):i.has(e.id)&&!i.has("all"),s=e.color||AppColors_1.AppColors.purple,h=r?AppColors_1.AppColors.white:s,C=e.Icon;return<TouchableScale_1.default testID={`inspector.console.filter.${e.id}`}key={e.id}onPress={()=>{e.id==="all"?A(new Set(["all"])):A(q=>{const y=new Set(q);return y.delete("all"),y.has(e.id)?y.delete(e.id):y.add(e.id),y.size===0&&y.add("all"),y})}}>
62
62
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:r?s:`${s}12`,borderWidth:1,borderColor:r?s:`${s}30`,gap:5}}>
63
63
  <C size={11}color={h}/>
64
64
  <react_native_1.Text style={{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:r?AppColors_1.AppColors.white:AppColors_1.AppColors.primaryBlack}}>
@@ -75,7 +75,7 @@
75
75
  </react_native_1.View>
76
76
  </react_native_1.View>
77
77
 
78
- <react_native_1.FlatList ref={v}data={m}keyExtractor={H}ListHeaderComponent={$}renderItem={M}getItemLayout={D}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<EmptyState_1.default isSearch={o.length>0||!i.has("all")}searchQuery={o}customTitle={o.length>0?"No matching console logs":"No console logs"}onClearSearch={()=>{l(""),A(new Set(["all"]))}}/>}ListFooterComponent={c.length>0?<EndOfListFooter_1.default count={m.length}totalCount={c.length}label="logs"loadMoreStep={LOAD_MORE_STEP}hasMore={m.length<c.length}onLoadMore={()=>V(e=>e+LOAD_MORE_STEP)}/>:null}style={{flex:1}}contentContainerStyle={[styles_1.default.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
78
+ <react_native_1.FlatList ref={v}data={m}keyExtractor={D}ListHeaderComponent={H}renderItem={M}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<EmptyState_1.default isSearch={o.length>0||!i.has("all")}searchQuery={o}customTitle={o.length>0?"No matching console logs":"No console logs"}onClearSearch={()=>{l(""),A(new Set(["all"]))}}/>}ListFooterComponent={c.length>0?<EndOfListFooter_1.default count={m.length}totalCount={c.length}label="logs"loadMoreStep={LOAD_MORE_STEP}hasMore={m.length<c.length}onLoadMore={()=>V(e=>e+LOAD_MORE_STEP)}/>:null}style={{flex:1}}contentContainerStyle={[styles_1.default.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
79
79
 
80
- <ConsoleExportModal_1.default visible={O}onClose={()=>F(!1)}filteredLogs={c}allLogs={b}/>
80
+ <ConsoleExportModal_1.default visible={O}onClose={()=>F(!1)}filteredLogs={c}allLogs={w}/>
81
81
  </react_native_1.View>});exports.default=ConsoleTab;
@@ -1,6 +1,6 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,a){a===void 0&&(a=n);var r=Object.getOwnPropertyDescriptor(t,n);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,r)}):(function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var a=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(a[a.length]=r);return a},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var a=e(t),r=0;r<a.length;r++)a[r]!=="default"&&__createBinding(n,t,a[r]);return __setModuleDefault(n,t),n}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DebuggingTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),QRCodeView_1=__importDefault(require("../QRCodeView")),TouchableScale_1=__importDefault(require("../TouchableScale")),toast_1=require("../../helpers/toast"),NativeInspector_1=require("../../native/NativeInspector"),NetworkIcons_1=require("../NetworkIcons"),react_native_svg_1=__importStar(require("react-native-svg")),TerminalConsoleIcon=({color:e=AppColors_1.AppColors.purple,size:t=13})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,t,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}):(function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),__importStar=this&&this.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var i=e(t),r=0;r<i.length;r++)i[r]!=="default"&&__createBinding(n,t,i[r]);return __setModuleDefault(n,t),n}})(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DebuggingTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),QRCodeView_1=__importDefault(require("../QRCodeView")),TouchableScale_1=__importDefault(require("../TouchableScale")),toast_1=require("../../helpers/toast"),NativeInspector_1=require("../../native/NativeInspector"),NetworkIcons_1=require("../NetworkIcons"),react_native_svg_1=__importStar(require("react-native-svg")),TerminalConsoleIcon=({color:e=AppColors_1.AppColors.purple,size:t=13})=><react_native_svg_1.default width={t}height={t}viewBox="0 0 24 24"fill="none">
2
2
  <react_native_svg_1.Path d="M4 17l6-6-6-6M12 19h8"stroke={e}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
3
- </react_native_svg_1.default>,DebuggingTab=()=>{const{t:e}=(0,i18n_1.useTranslation)(),t=(0,react_1.useMemo)(()=>{const i=react_native_1.NativeModules.SourceCode?.scriptURL||"";let s="localhost",o=8081;try{if(i.includes("://")){const d=i.split("://")[1].split("/")[0];if(d.includes(":")){const u=d.split(":");s=u[0];const b=parseInt(u[1],10);isNaN(b)||(o=b)}else s=d}}catch{}return{host:s,port:o,scriptURL:i}},[]),[n,a]=(0,react_1.useState)(()=>t.host&&t.host!=="localhost"&&t.host!=="127.0.0.1"&&t.host!=="10.0.2.2"?t.host:"192.168.1.2"),[r,B]=(0,react_1.useState)(t.port||8083),[V,m]=(0,react_1.useState)("app-debug.apk"),[T,x]=(0,react_1.useState)(null),[g,v]=(0,react_1.useState)("assembleRelease"),[f,k]=(0,react_1.useState)(!0),[l,w]=(0,react_1.useState)({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),p=(0,react_1.useRef)(null),_=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,[A,I]=(0,react_1.useState)(!0),S=(0,react_1.useRef)(null);(0,react_1.useEffect)(()=>{react_native_1.Animated.timing(_,{toValue:Math.max(0,Math.min(100,l.progress)),duration:350,useNativeDriver:!1}).start()},[l.progress,_]),(0,react_1.useEffect)(()=>{l.logs&&l.logs.length>0&&setTimeout(()=>{S.current?.scrollToEnd({animated:!0})},50)},[l.logs]);const C=(0,react_1.useCallback)(async()=>{const i=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([t.port,8083,8081,8082].filter(Boolean)));for(const o of i)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1200),b=await fetch(`http://${o}:${h}/__inapp_inspector/apk-info`,{signal:d.signal});if(clearTimeout(u),b.ok){const c=await b.json();c.hostIp&&c.hostIp!=="127.0.0.1"&&c.hostIp!=="localhost"&&c.hostIp!=="10.0.2.2"&&a(c.hostIp),c.port&&B(c.port),c.apkName&&m(c.apkName),c.apkSize&&x((c.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[t.host,t.port]);(0,react_1.useEffect)(()=>{C()},[C]),(0,react_1.useEffect)(()=>()=>{p.current&&clearInterval(p.current)},[]);const R=(0,react_1.useCallback)(()=>{p.current&&clearInterval(p.current);const i=t.host||"10.0.2.2";p.current=setInterval(async()=>{try{const s=await fetch(`http://${i}:${r}/__inapp_inspector/build-status`);if(s.ok){const o=await s.json();w(o),o.status==="completed"?(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("success"),(0,toast_1.showToast)(e("debugging.buildSuccess","APK Build Generated Successfully!")),o.apkSize&&x((o.apkSize/(1024*1024)).toFixed(1)),o.apkName&&m(o.apkName),C()):o.status==="failed"&&(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("error"),(0,toast_1.showToast)(e("debugging.buildFailed",{error:o.error||"Gradle error"})))}}catch{}},1e3)},[t.host,r,C]),F=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("medium"),w({status:"running",scheme:g,clean:f,progress:5,currentTask:f?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const i=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));let o=!1;for(const h of i)for(const d of s)try{const u=new AbortController,b=setTimeout(()=>u.abort(),2e3),c=await fetch(`http://${h}:${d}/__inapp_inspector/build-apk?scheme=${g}&clean=${f}`,{signal:u.signal});if(clearTimeout(b),c.ok){o=!0,R();return}}catch{}o||w(h=>({...h,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},D=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("warning"),p.current&&clearInterval(p.current);const i=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));for(const o of i)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1500);await fetch(`http://${o}:${h}/__inapp_inspector/stop-build`,{signal:d.signal}),clearTimeout(u)}catch{}w(o=>({...o,status:"idle",currentTask:e("debugging.buildCancelled","Build cancelled by user"),logs:[...o.logs||[],`[Build] ${e("debugging.buildCancelled","Build cancelled by user")}.`]})),(0,toast_1.showToast)(e("debugging.buildCancelled","Build cancelled"))},z=`http://${n}:${r}/${V.replace(/^\/+/,"")}`,y=l.status==="running";return<react_native_1.ScrollView style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}>
3
+ </react_native_svg_1.default>,DebuggingTab=()=>{const{t:e}=(0,i18n_1.useTranslation)(),t=(0,react_1.useMemo)(()=>{const a=react_native_1.NativeModules.SourceCode?.scriptURL||"";let s="localhost",o=8081;try{if(a.includes("://")){const d=a.split("://")[1].split("/")[0];if(d.includes(":")){const u=d.split(":");s=u[0];const g=parseInt(u[1],10);isNaN(g)||(o=g)}else s=d}}catch{}return{host:s,port:o,scriptURL:a}},[]),[n,i]=(0,react_1.useState)(()=>t.host&&t.host!=="localhost"&&t.host!=="127.0.0.1"&&t.host!=="10.0.2.2"?t.host:"192.168.1.2"),[r,B]=(0,react_1.useState)(t.port||8083),[V,A]=(0,react_1.useState)("app-debug.apk"),[_,x]=(0,react_1.useState)(null),[h,v]=(0,react_1.useState)("assembleRelease"),[b,k]=(0,react_1.useState)(!0),[l,C]=(0,react_1.useState)({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),p=(0,react_1.useRef)(null),T=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,[m,R]=(0,react_1.useState)(!0),S=(0,react_1.useRef)(null);(0,react_1.useEffect)(()=>{react_native_1.Animated.timing(T,{toValue:Math.max(0,Math.min(100,l.progress)),duration:350,useNativeDriver:!1}).start()},[l.progress,T]),(0,react_1.useEffect)(()=>{l.logs&&l.logs.length>0&&setTimeout(()=>{S.current?.scrollToEnd({animated:!0})},50)},[l.logs]);const f=(0,react_1.useCallback)(async()=>{const a=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([t.port,8083,8081,8082].filter(Boolean)));for(const o of a)for(const d of s)try{const u=new AbortController,g=setTimeout(()=>u.abort(),1200),w=await fetch(`http://${o}:${d}/__inapp_inspector/apk-info`,{signal:u.signal});if(clearTimeout(g),w.ok){const c=await w.json();c.hostIp&&c.hostIp!=="127.0.0.1"&&c.hostIp!=="localhost"&&c.hostIp!=="10.0.2.2"&&i(c.hostIp),c.port&&B(c.port),c.apkName&&A(c.apkName),c.apkSize&&x((c.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[t.host,t.port]);(0,react_1.useEffect)(()=>{f()},[f]),(0,react_1.useEffect)(()=>()=>{p.current&&clearInterval(p.current)},[]);const I=(0,react_1.useCallback)(()=>{p.current&&clearInterval(p.current);const a=t.host||"10.0.2.2";p.current=setInterval(async()=>{try{const s=await fetch(`http://${a}:${r}/__inapp_inspector/build-status`);if(s.ok){const o=await s.json();C(o),o.status==="completed"?(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("success"),(0,toast_1.showToast)(e("debugging.buildSuccess","APK Build Generated Successfully!")),o.apkSize&&x((o.apkSize/(1024*1024)).toFixed(1)),o.apkName&&A(o.apkName),f()):o.status==="failed"&&(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("error"),(0,toast_1.showToast)(e("debugging.buildFailed",{error:o.error||"Gradle error"})))}}catch{}},1e3)},[t.host,r,f]),F=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("medium"),C({status:"running",scheme:h,clean:b,progress:5,currentTask:b?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const a=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));let o=!1;for(const d of a)for(const u of s)try{const g=new AbortController,w=setTimeout(()=>g.abort(),2e3),c=await fetch(`http://${d}:${u}/__inapp_inspector/build-apk?scheme=${h}&clean=${b}`,{signal:g.signal});if(clearTimeout(w),c.ok){o=!0,I();return}}catch{}o||C(d=>({...d,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},D=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("warning"),p.current&&clearInterval(p.current);const a=Array.from(new Set([t.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));for(const o of a)for(const d of s)try{const u=new AbortController,g=setTimeout(()=>u.abort(),1500);await fetch(`http://${o}:${d}/__inapp_inspector/stop-build`,{signal:u.signal}),clearTimeout(g)}catch{}C(o=>({...o,status:"idle",currentTask:e("debugging.buildCancelled","Build cancelled by user"),logs:[...o.logs||[],`[Build] ${e("debugging.buildCancelled","Build cancelled by user")}.`]})),(0,toast_1.showToast)(e("debugging.buildCancelled","Build cancelled"))},z=`http://${n}:${r}/${V.replace(/^\/+/,"")}`,y=l.status==="running";return<react_native_1.ScrollView style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}>
4
4
 
5
5
  <react_native_1.View style={styles.heroCard}>
6
6
  <react_native_1.View style={styles.heroHeader}>
@@ -37,8 +37,8 @@
37
37
  <react_native_1.View style={styles.heroMetricDivider}/>
38
38
  <react_native_1.View style={styles.heroMetricItem}>
39
39
  <react_native_1.Text style={styles.heroMetricLabel}>APK SIZE</react_native_1.Text>
40
- <react_native_1.Text style={[styles.heroMetricValue,{color:T?AppColors_1.AppColors.emerald500:AppColors_1.AppColors.grayTextWeak}]}>
41
- {T?`${T} MB`:"Detected"}
40
+ <react_native_1.Text style={[styles.heroMetricValue,{color:_?AppColors_1.AppColors.emerald500:AppColors_1.AppColors.grayTextWeak}]}>
41
+ {_?`${_} MB`:"Detected"}
42
42
  </react_native_1.Text>
43
43
  </react_native_1.View>
44
44
  <react_native_1.View style={styles.heroMetricDivider}/>
@@ -55,7 +55,7 @@
55
55
  <react_native_1.View style={styles.sectionCard}>
56
56
  <react_native_1.View style={styles.sectionHeaderRow}>
57
57
  <react_native_1.Text style={styles.sectionTitle}>{e("debugging.qrCodeTitle","QR CODE & DIRECT DOWNLOAD")}</react_native_1.Text>
58
- <react_native_1.TouchableOpacity activeOpacity={.7}onPress={C}style={styles.refreshBtn}>
58
+ <react_native_1.TouchableOpacity activeOpacity={.7}onPress={f}style={styles.refreshBtn}>
59
59
  <NetworkIcons_1.RepeatIcon size={12}color={AppColors_1.AppColors.purple}/>
60
60
  <react_native_1.Text style={styles.refreshBtnText}>Refresh</react_native_1.Text>
61
61
  </react_native_1.TouchableOpacity>
@@ -84,19 +84,19 @@
84
84
 
85
85
 
86
86
  <react_native_1.View style={styles.subTabStrip}>
87
- <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleRelease")}}style={[styles.subTabItem,g==="assembleRelease"&&styles.subTabItemActive]}>
87
+ <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleRelease")}}style={[styles.subTabItem,h==="assembleRelease"&&styles.subTabItemActive]}>
88
88
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5}}>
89
- <NetworkIcons_1.BoltIcon size={12}color={g==="assembleRelease"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
90
- <react_native_1.Text style={[styles.subTabText,g==="assembleRelease"&&styles.subTabTextActive]}>
89
+ <NetworkIcons_1.BoltIcon size={12}color={h==="assembleRelease"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
90
+ <react_native_1.Text style={[styles.subTabText,h==="assembleRelease"&&styles.subTabTextActive]}>
91
91
  {e("debugging.releaseBuild","Release (assembleRelease)")}
92
92
  </react_native_1.Text>
93
93
  </react_native_1.View>
94
94
  </react_native_1.TouchableOpacity>
95
95
 
96
- <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleDebug")}}style={[styles.subTabItem,g==="assembleDebug"&&styles.subTabItemActive]}>
96
+ <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),v("assembleDebug")}}style={[styles.subTabItem,h==="assembleDebug"&&styles.subTabItemActive]}>
97
97
  <react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:5}}>
98
- <NetworkIcons_1.WrenchIcon size={12}color={g==="assembleDebug"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
99
- <react_native_1.Text style={[styles.subTabText,g==="assembleDebug"&&styles.subTabTextActive]}>
98
+ <NetworkIcons_1.WrenchIcon size={12}color={h==="assembleDebug"?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText}/>
99
+ <react_native_1.Text style={[styles.subTabText,h==="assembleDebug"&&styles.subTabTextActive]}>
100
100
  {e("debugging.debugBuild","Debug (assembleDebug)")}
101
101
  </react_native_1.Text>
102
102
  </react_native_1.View>
@@ -104,9 +104,9 @@
104
104
  </react_native_1.View>
105
105
 
106
106
 
107
- <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),k(!f)}}style={styles.cleanRow}>
108
- <react_native_1.View style={[styles.checkboxBox,f&&styles.checkboxBoxActive]}>
109
- {f&&<NetworkIcons_1.CheckIcon size={11}color={AppColors_1.AppColors.white}/>}
107
+ <react_native_1.TouchableOpacity disabled={y}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),k(!b)}}style={styles.cleanRow}>
108
+ <react_native_1.View style={[styles.checkboxBox,b&&styles.checkboxBoxActive]}>
109
+ {b&&<NetworkIcons_1.CheckIcon size={11}color={AppColors_1.AppColors.white}/>}
110
110
  </react_native_1.View>
111
111
  <react_native_1.Text style={styles.cleanLabel}>
112
112
  Clean build cache <react_native_1.Text style={styles.cleanCode}>{e("debugging.cleanBuild","(./gradlew clean)")}</react_native_1.Text>
@@ -129,7 +129,7 @@
129
129
 
130
130
 
131
131
  <react_native_1.View style={styles.progressBarTrack}>
132
- <react_native_1.Animated.View style={[styles.progressBarFill,{width:_.interpolate({inputRange:[0,100],outputRange:["5%","100%"]})}]}/>
132
+ <react_native_1.Animated.View style={[styles.progressBarFill,{width:T.interpolate({inputRange:[0,100],outputRange:["5%","100%"]})}]}/>
133
133
  </react_native_1.View>
134
134
  </react_native_1.View>}
135
135
 
@@ -148,16 +148,16 @@
148
148
  <TerminalConsoleIcon color={AppColors_1.AppColors.sky400}size={12}/>
149
149
  <react_native_1.Text style={styles.consoleHeaderTitle}>{e("debugging.gradleVerboseOutput","GRADLE VERBOSE OUTPUT")}</react_native_1.Text>
150
150
  </react_native_1.View>
151
- <react_native_1.TouchableOpacity activeOpacity={.7}onPress={()=>I(!A)}style={styles.consoleToggleBtn}>
151
+ <react_native_1.TouchableOpacity activeOpacity={.7}onPress={()=>R(!m)}style={styles.consoleToggleBtn}>
152
152
  <react_native_1.Text style={styles.consoleToggleText}>
153
- {A?"Hide Console":"Show Console"}
153
+ {m?"Hide Console":"Show Console"}
154
154
  </react_native_1.Text>
155
155
  </react_native_1.TouchableOpacity>
156
156
  </react_native_1.View>
157
157
 
158
- {A&&<react_native_1.ScrollView ref={S}style={styles.consoleLogBox}contentContainerStyle={styles.consoleLogContent}nestedScrollEnabled showsVerticalScrollIndicator>
159
- {l.logs&&l.logs.length>0?l.logs.map((i,s)=>{let o=AppColors_1.AppColors.slate400;return i.startsWith("> Task :")?o=AppColors_1.AppColors.sky400:i.includes("BUILD SUCCESSFUL")?o=AppColors_1.AppColors.buildSuccessGreen:i.includes("FAILURE")||i.includes("error:")?o=AppColors_1.AppColors.buildFailureRed:i.includes("UP-TO-DATE")&&(o=AppColors_1.AppColors.purple400),<react_native_1.Text key={s}style={[styles.consoleLogLine,{color:o}]}>
160
- {i}
158
+ {m&&<react_native_1.ScrollView ref={S}style={styles.consoleLogBox}contentContainerStyle={styles.consoleLogContent}nestedScrollEnabled showsVerticalScrollIndicator>
159
+ {l.logs&&l.logs.length>0?l.logs.map((a,s)=>{let o=AppColors_1.AppColors.slate400;return a.startsWith("> Task :")?o=AppColors_1.AppColors.sky400:a.includes("BUILD SUCCESSFUL")?o=AppColors_1.AppColors.buildSuccessGreen:a.includes("FAILURE")||a.includes("error:")?o=AppColors_1.AppColors.buildFailureRed:a.includes("UP-TO-DATE")&&(o=AppColors_1.AppColors.purple400),<react_native_1.Text key={s}style={[styles.consoleLogLine,{color:o}]}>
160
+ {a}
161
161
  </react_native_1.Text>}):<react_native_1.Text style={styles.consoleLogPlaceholder}>
162
162
  {e("debugging.waitingForGradle","Waiting for Gradle daemon output...")}
163
163
  </react_native_1.Text>}
@@ -181,7 +181,7 @@
181
181
  <react_native_1.View style={styles.ctaContentRow}>
182
182
  <NetworkIcons_1.SparkleIcon size={14}color={AppColors_1.AppColors.white}/>
183
183
  <react_native_1.Text style={styles.generateBtnText}>
184
- {f?"Clean & Generate Build":"Generate Build"}
184
+ {b?"Clean & Generate Build":"Generate Build"}
185
185
  </react_native_1.Text>
186
186
  </react_native_1.View>
187
187
  </TouchableScale_1.default>}
@@ -1,4 +1,4 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,o,a,s){s===void 0&&(s=a);var c=Object.getOwnPropertyDescriptor(o,a);(!c||("get"in c?!o.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(i,s,c)}):(function(i,o,a,s){s===void 0&&(s=a),i[s]=o[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}):function(i,o){i.default=o}),__importStar=this&&this.__importStar||(function(){var i=function(o){return i=Object.getOwnPropertyNames||function(a){var s=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(s[s.length]=c);return s},i(o)};return function(o){if(o&&o.__esModule)return o;var a={};if(o!=null)for(var s=i(o),c=0;c<s.length;c++)s[c]!=="default"&&__createBinding(a,o,s[c]);return __setModuleDefault(a,o),a}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),NetworkIcons_1=require("../NetworkIcons"),capture_1=require("../../capture"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast"),helpers_1=require("../../helpers"),constants_1=require("../../constants"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),styles_1=__importDefault(require("../../styles")),i18n_1=require("../../i18n"),MediaPreviewModal_1=require("./MediaPreviewModal"),FabLauncher=()=>{const{setVisible:i,isMinimized:o,setIsMinimized:a,dismissInspector:s,appIcon:c,fabPan:l,fabPanResponder:ie,fabDraggedRef:T,pulseAnim:k,fabShineAnim:oe,refreshMediaCount:h,captureFps:L,captureScale:E,captureBitrate:O,captureMaxDurationSeconds:q,captureAudioMode:H,previewMediaItem:W,setPreviewMediaItem:b}=(0,InspectorContext_1.useInspector)(),{width:S,height:v}=(0,react_native_1.useWindowDimensions)(),{t:n}=(0,i18n_1.useTranslation)(),[X]=(0,react_1.useState)(()=>(0,helpers_1.getAppVersionAndBuild)().formatted),[p,I]=(0,react_1.useState)(!1),[Z,D]=(0,react_1.useState)(0),y=(0,react_1.useRef)(null),[G,B]=(0,react_1.useState)(!1),[z,_]=(0,react_1.useState)(!1),f=(0,react_1.useRef)(!1),x=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,P=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,w=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=l.x.addListener(r=>w.current.x=r.value),t=l.y.addListener(r=>w.current.y=r.value);return()=>{l.x.removeListener(e),l.y.removeListener(t)}},[l]);const u=68,V=8,U=(0,react_1.useCallback)(()=>{const e=w.current.x,t=w.current.y,r=20,R=180,m=S-r-u/2+e,M=v-R-u/2+t;let N=e,F=t,A=!1;m<V+u/2?(N=e+(V+u/2-m),A=!0):m>S-V-u/2&&(N=e-(m-(S-V-u/2)),A=!0);const Y=react_native_1.Platform.OS==="ios"?60:40,$=react_native_1.Platform.OS==="ios"?40:24;M<Y+u/2?(F=t+(Y+u/2-M),A=!0):M>v-$-u/2&&(F=t-(M-(v-$-u/2)),A=!0),A&&react_native_1.Animated.spring(l,{toValue:{x:N,y:F},useNativeDriver:!1,tension:80,friction:8}).start()},[l,S,v]),K=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{T.current=!0,l.setOffset({x:w.current.x,y:w.current.y}),l.setValue({x:0,y:0}),f.current=!1,_(!1),B(!0),P.setValue(1),react_native_1.Animated.spring(x,{toValue:1,useNativeDriver:!0,tension:80,friction:8}).start()},onPanResponderMove:(e,t)=>{l.setValue({x:t.dx,y:t.dy});const r=t.moveY,R=t.moveX,m=r>v-140&&Math.abs(R-S/2)<85;m&&!f.current?(f.current=!0,_(!0),(0,NativeInspector_1.triggerNativeHaptic)("medium"),react_native_1.Animated.spring(P,{toValue:1.25,useNativeDriver:!0,tension:100,friction:6}).start()):!m&&f.current&&(f.current=!1,_(!1),react_native_1.Animated.spring(P,{toValue:1,useNativeDriver:!0,tension:100,friction:6}).start())},onPanResponderRelease:()=>{const e=f.current;l.flattenOffset(),react_native_1.Animated.timing(x,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{B(!1),_(!1),f.current=!1}),e?((0,NativeInspector_1.triggerNativeHaptic)("heavy"),s(),(0,toast_1.showToast)(n("common.inspectorDismissed","In-App Inspector closed for this session"))):U(),setTimeout(()=>{T.current=!1},100)},onPanResponderTerminate:()=>{l.flattenOffset(),T.current=!1,react_native_1.Animated.timing(x,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{B(!1),_(!1),f.current=!1})}})).current,d=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,C=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=d.x.addListener(r=>C.current.x=r.value),t=d.y.addListener(r=>C.current.y=r.value);return()=>{d.x.removeListener(e),d.y.removeListener(t)}},[d]);const g=(0,react_1.useRef)(!1),J=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{g.current=!0,d.setOffset({x:C.current.x,y:C.current.y}),d.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:d.x,dy:d.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{d.flattenOffset();const e=C.current.y,t=-(v-(react_native_1.Platform.OS==="ios"?34:18)-70),r=react_native_1.Platform.OS==="ios"?34:18;if(e<t||e>r){const R=Math.max(t,Math.min(r,e));react_native_1.Animated.spring(d,{toValue:{x:C.current.x,y:R},useNativeDriver:!1,tension:80,friction:8}).start()}setTimeout(()=>{g.current=!1},50)},onPanResponderTerminate:()=>{d.flattenOffset(),g.current=!1}})).current;(0,react_1.useEffect)(()=>{capture_1.ScreenCapture.isRecording().then(e=>{I(!!e)}).catch(()=>{})},[]),(0,react_1.useEffect)(()=>(p?(D(0),y.current=setInterval(()=>{D(e=>e+1)},1e3)):(y.current&&(clearInterval(y.current),y.current=null),D(0)),()=>{y.current&&clearInterval(y.current)}),[p]);const Q=(0,react_1.useCallback)(async()=>{if(!g.current)try{(0,NativeInspector_1.triggerNativeHaptic)("light");const e=await capture_1.ScreenCapture.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){(0,NativeInspector_1.triggerNativeHaptic)("success");const t=(0,capture_1.generateCaptureId)("screenshot",e.format||"png"),r={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};b(r),h?.().catch(()=>{}),(0,toast_1.showToast)(n("header.screenshotCaptured","Screenshot captured"))}else(0,toast_1.showToast)(n("header.screenshotFailed","Failed to capture screenshot"))}catch{(0,toast_1.showToast)(n("header.screenshotError","Error capturing screenshot"))}},[h,n]),ee=(0,react_1.useCallback)(async()=>{if(!g.current)try{if(p){(0,NativeInspector_1.triggerNativeHaptic)("medium");const e=await capture_1.ScreenCapture.stopRecording();if(I(!1),e){(0,NativeInspector_1.triggerNativeHaptic)("success");const t=(0,capture_1.generateCaptureId)("video",e.format),r={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};b(r),h?.().catch(()=>{}),(0,toast_1.showToast)(n("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else(0,NativeInspector_1.triggerNativeHaptic)("medium"),await capture_1.ScreenCapture.startRecording({fps:L,scale:E,audioSource:H,bitrate:O>0?O:void 0,maxDurationSeconds:q})?(I(!0),(0,toast_1.showToast)(n("header.recordingStarted","Recording started"))):(0,toast_1.showToast)(n("header.recordingStartFailed","Failed to start recording"))}catch{(0,toast_1.showToast)(n("header.recordingError","Error during screen recording")),I(!1)}},[p,L,E,O,q,H,h,n]),j=(0,react_1.useCallback)(()=>{g.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),i(!0))},[a,i]),te=(0,react_1.useCallback)(()=>{g.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),i(!1))},[a,i]),re=e=>{const t=Math.floor(e/60),r=e%60;return`${t}:${r<10?"0":""}${r}`};return<>
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,o,a,s){s===void 0&&(s=a);var c=Object.getOwnPropertyDescriptor(o,a);(!c||("get"in c?!o.__esModule:c.writable||c.configurable))&&(c={enumerable:!0,get:function(){return o[a]}}),Object.defineProperty(i,s,c)}):(function(i,o,a,s){s===void 0&&(s=a),i[s]=o[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,o){Object.defineProperty(i,"default",{enumerable:!0,value:o})}):function(i,o){i.default=o}),__importStar=this&&this.__importStar||(function(){var i=function(o){return i=Object.getOwnPropertyNames||function(a){var s=[];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(s[s.length]=c);return s},i(o)};return function(o){if(o&&o.__esModule)return o;var a={};if(o!=null)for(var s=i(o),c=0;c<s.length;c++)s[c]!=="default"&&__createBinding(a,o,s[c]);return __setModuleDefault(a,o),a}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),NetworkIcons_1=require("../NetworkIcons"),capture_1=require("../../capture"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast"),helpers_1=require("../../helpers"),constants_1=require("../../constants"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),styles_1=__importDefault(require("../../styles")),i18n_1=require("../../i18n"),MediaPreviewModal_1=require("./MediaPreviewModal"),FabLauncher=()=>{const{setVisible:i,isMinimized:o,setIsMinimized:a,dismissInspector:s,appIcon:c,fabPan:l,fabPanResponder:ie,fabDraggedRef:T,pulseAnim:$,fabShineAnim:oe,refreshMediaCount:h,captureFps:F,captureScale:H,captureBitrate:M,captureMaxDurationSeconds:E,captureAudioMode:q,previewMediaItem:W,setPreviewMediaItem:b}=(0,InspectorContext_1.useInspector)(),{width:S,height:y}=(0,react_native_1.useWindowDimensions)(),{t:n}=(0,i18n_1.useTranslation)(),[X]=(0,react_1.useState)(()=>(0,helpers_1.getAppVersionAndBuild)().formatted),[p,I]=(0,react_1.useState)(!1),[Z,D]=(0,react_1.useState)(0),v=(0,react_1.useRef)(null),[G,B]=(0,react_1.useState)(!1),[z,_]=(0,react_1.useState)(!1),f=(0,react_1.useRef)(!1),x=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,P=(0,react_1.useRef)(new react_native_1.Animated.Value(1)).current,w=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=l.x.addListener(r=>w.current.x=r.value),t=l.y.addListener(r=>w.current.y=r.value);return()=>{l.x.removeListener(e),l.y.removeListener(t)}},[l]);const u=68,V=8,U=(0,react_1.useCallback)(()=>{const e=w.current.x,t=w.current.y,r=20,R=180,m=S-r-u/2+e,O=y-R-u/2+t;let N=e,L=t,A=!1;m<V+u/2?(N=e+(V+u/2-m),A=!0):m>S-V-u/2&&(N=e-(m-(S-V-u/2)),A=!0);const k=react_native_1.Platform.OS==="ios"?60:40,Y=react_native_1.Platform.OS==="ios"?40:24;O<k+u/2?(L=t+(k+u/2-O),A=!0):O>y-Y-u/2&&(L=t-(O-(y-Y-u/2)),A=!0),A&&react_native_1.Animated.spring(l,{toValue:{x:N,y:L},useNativeDriver:!1,tension:80,friction:8}).start()},[l,S,y]),K=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{T.current=!0,l.setOffset({x:w.current.x,y:w.current.y}),l.setValue({x:0,y:0}),f.current=!1,_(!1),B(!0),P.setValue(1),react_native_1.Animated.spring(x,{toValue:1,useNativeDriver:!0,tension:80,friction:8}).start()},onPanResponderMove:(e,t)=>{l.setValue({x:t.dx,y:t.dy});const r=t.moveY,R=t.moveX,m=r>y-140&&Math.abs(R-S/2)<85;m&&!f.current?(f.current=!0,_(!0),(0,NativeInspector_1.triggerNativeHaptic)("medium"),react_native_1.Animated.spring(P,{toValue:1.25,useNativeDriver:!0,tension:100,friction:6}).start()):!m&&f.current&&(f.current=!1,_(!1),react_native_1.Animated.spring(P,{toValue:1,useNativeDriver:!0,tension:100,friction:6}).start())},onPanResponderRelease:()=>{const e=f.current;l.flattenOffset(),react_native_1.Animated.timing(x,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{B(!1),_(!1),f.current=!1}),e?((0,NativeInspector_1.triggerNativeHaptic)("heavy"),s(),(0,toast_1.showToast)(n("common.inspectorDismissed","In-App Inspector closed for this session"))):U(),setTimeout(()=>{T.current=!1},100)},onPanResponderTerminate:()=>{l.flattenOffset(),T.current=!1,react_native_1.Animated.timing(x,{toValue:0,duration:180,useNativeDriver:!0}).start(()=>{B(!1),_(!1),f.current=!1})}})).current,d=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,C=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=d.x.addListener(r=>C.current.x=r.value),t=d.y.addListener(r=>C.current.y=r.value);return()=>{d.x.removeListener(e),d.y.removeListener(t)}},[d]);const g=(0,react_1.useRef)(!1),J=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{g.current=!0,d.setOffset({x:C.current.x,y:C.current.y}),d.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:d.x,dy:d.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{d.flattenOffset();const e=C.current.y,t=-(y-(react_native_1.Platform.OS==="ios"?34:18)-70),r=react_native_1.Platform.OS==="ios"?34:18;if(e<t||e>r){const R=Math.max(t,Math.min(r,e));react_native_1.Animated.spring(d,{toValue:{x:C.current.x,y:R},useNativeDriver:!1,tension:80,friction:8}).start()}setTimeout(()=>{g.current=!1},50)},onPanResponderTerminate:()=>{d.flattenOffset(),g.current=!1}})).current;(0,react_1.useEffect)(()=>{capture_1.ScreenCapture.isRecording().then(e=>{I(!!e)}).catch(()=>{})},[]),(0,react_1.useEffect)(()=>(p?(D(0),v.current=setInterval(()=>{D(e=>e+1)},1e3)):(v.current&&(clearInterval(v.current),v.current=null),D(0)),()=>{v.current&&clearInterval(v.current)}),[p]);const Q=(0,react_1.useCallback)(async()=>{if(!g.current)try{(0,NativeInspector_1.triggerNativeHaptic)("light");const e=await capture_1.ScreenCapture.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){(0,NativeInspector_1.triggerNativeHaptic)("success");const t=(0,capture_1.generateCaptureId)("screenshot",e.format||"png"),r={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};b(r),h?.().catch(()=>{}),(0,toast_1.showToast)(n("header.screenshotCaptured","Screenshot captured"))}else(0,toast_1.showToast)(n("header.screenshotFailed","Failed to capture screenshot"))}catch{(0,toast_1.showToast)(n("header.screenshotError","Error capturing screenshot"))}},[h,n]),ee=(0,react_1.useCallback)(async()=>{if(!g.current)try{if(p){(0,NativeInspector_1.triggerNativeHaptic)("medium");const e=await capture_1.ScreenCapture.stopRecording();if(I(!1),e){(0,NativeInspector_1.triggerNativeHaptic)("success");const t=(0,capture_1.generateCaptureId)("video",e.format),r={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};b(r),h?.().catch(()=>{}),(0,toast_1.showToast)(n("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else(0,NativeInspector_1.triggerNativeHaptic)("medium"),await capture_1.ScreenCapture.startRecording({fps:F,scale:H,audioSource:q,bitrate:M>0?M:void 0,maxDurationSeconds:E})?(I(!0),(0,toast_1.showToast)(n("header.recordingStarted","Recording started"))):(0,toast_1.showToast)(n("header.recordingStartFailed","Failed to start recording"))}catch{(0,toast_1.showToast)(n("header.recordingError","Error during screen recording")),I(!1)}},[p,F,H,M,E,q,h,n]),j=(0,react_1.useCallback)(()=>{g.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),i(!0))},[a,i]),te=(0,react_1.useCallback)(()=>{g.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),i(!1))},[a,i]),re=e=>{const t=Math.floor(e/60),r=e%60;return`${t}:${r<10?"0":""}${r}`};return<>
2
2
 
3
3
  {o?<react_native_1.Animated.View style={[fabStyles.playerContainer,{transform:d.getTranslateTransform()}]}{...J.panHandlers}>
4
4
 
@@ -60,8 +60,8 @@
60
60
  </TouchableScale_1.default>
61
61
  </react_native_1.View>
62
62
  </react_native_1.Animated.View>:<react_native_1.Animated.View style={[styles_1.default.fabWrapper,{transform:l.getTranslateTransform()}]}{...K.panHandlers}>
63
- <TouchableScale_1.default testID="inspector.fab.launcher"style={{width:68,height:68,borderRadius:34,alignItems:"center",justifyContent:"center"}}onPress={()=>{T.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),i(!0))}}hitSlop={10}>
64
- <react_native_1.Animated.View style={[styles_1.default.fabPulseRing,{transform:[{scale:k}]}]}/>
63
+ <TouchableScale_1.default testID="inspector.fab.launcher"accessible={!0}accessibilityRole="button"accessibilityLabel={n("accessibility.openInspector","Open In-App Network and System Inspector")}accessibilityHint={n("accessibility.openInspectorHint","Double tap to open the full debug inspector")}style={{width:68,height:68,borderRadius:34,alignItems:"center",justifyContent:"center"}}onPress={()=>{T.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),i(!0))}}hitSlop={10}>
64
+ <react_native_1.Animated.View style={[styles_1.default.fabPulseRing,{transform:[{scale:$}]}]}/>
65
65
  <AppHeaderLogo_1.default size={68}customIcon={c}shape="circle"/>
66
66
  </TouchableScale_1.default>
67
67
  </react_native_1.Animated.View>}