capdebug 0.1.0 → 0.3.0

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 (135) hide show
  1. package/README.md +69 -1
  2. package/android/build/.transforms/105231053f5053e70f17f15178bed793/results.bin +1 -0
  3. package/android/build/.transforms/7c2b02c40854250ff97be5e9e723091e/results.bin +1 -0
  4. package/android/build/.transforms/ca1c0f6bb67b5238fd83a40c3a1c0ddd/results.bin +1 -0
  5. package/android/build/.transforms/ca1c0f6bb67b5238fd83a40c3a1c0ddd/transformed/classes/classes_dex/classes.dex +0 -0
  6. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +9 -0
  7. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +18 -0
  8. package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +6 -0
  9. package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +1 -0
  10. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  11. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  12. package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -0
  13. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  14. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  15. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  16. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  17. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  18. package/android/build/intermediates/java_res/debug/out/META-INF/capdebug_debug.kotlin_module +0 -0
  19. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +2 -0
  20. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +11 -0
  21. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +9 -0
  22. package/android/build/intermediates/navigation_json/debug/navigation.json +1 -0
  23. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  24. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +1 -0
  25. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  26. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  27. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  28. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  29. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  30. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  31. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  32. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  33. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  34. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  35. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  36. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  37. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  38. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  39. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  40. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  41. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  42. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  43. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  44. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  45. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  46. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  47. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  48. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  49. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  50. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  51. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  52. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  53. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  54. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  55. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  56. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  57. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  58. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  59. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  60. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  61. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  62. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  63. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  64. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  65. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  66. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  67. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  68. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  69. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  70. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  71. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  72. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  73. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  74. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  75. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  76. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  77. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  78. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  79. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  80. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  81. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  82. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  105. package/android/build/outputs/logs/manifest-merger-debug-report.txt +20 -0
  106. package/android/build/tmp/kotlin-classes/debug/META-INF/capdebug_debug.kotlin_module +0 -0
  107. package/android/build/tmp/kotlin-classes/debug/com/capdebug/plugin/CapDebugPlugin$Companion.class +0 -0
  108. package/android/build/tmp/kotlin-classes/debug/com/capdebug/plugin/CapDebugPlugin.class +0 -0
  109. package/android/src/main/java/com/capdebug/plugin/CapDebugPlugin.kt +54 -0
  110. package/bin/capdebug.js +8 -0
  111. package/dist/capacitor/deep-link.d.ts +4 -0
  112. package/dist/cli/index.d.ts +1 -0
  113. package/dist/cli/qr.d.ts +15 -0
  114. package/dist/cli/server.d.ts +34 -0
  115. package/dist/cli.js +1868 -0
  116. package/dist/cli.js.map +1 -0
  117. package/dist/index.d.ts +13 -0
  118. package/dist/plugin.cjs.js +2639 -1912
  119. package/dist/plugin.cjs.js.map +1 -1
  120. package/dist/plugin.js +2749 -2022
  121. package/dist/plugin.js.map +1 -1
  122. package/dist/plugin.mjs +2632 -1913
  123. package/dist/plugin.mjs.map +1 -1
  124. package/dist/remote/buffer.d.ts +13 -0
  125. package/dist/remote/desktop-viewer-html.d.ts +10 -0
  126. package/dist/remote/pairing-page-html.d.ts +8 -0
  127. package/dist/remote/pairing.d.ts +34 -0
  128. package/dist/remote/protocol.d.ts +14 -0
  129. package/dist/remote/remote-manager.d.ts +19 -0
  130. package/dist/remote/signaling.d.ts +27 -0
  131. package/dist/remote/transport.d.ts +15 -0
  132. package/dist/remote/types.d.ts +69 -0
  133. package/dist/remote/webrtc-transport.d.ts +47 -0
  134. package/ios/Sources/CapDebugPlugin/CapDebugPlugin.swift +41 -0
  135. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["../src/sanitizer.ts","../src/store.ts","../src/collectors/console.collector.ts","../src/collectors/error.collector.ts","../src/collectors/network.collector.ts","../src/collectors/custom-event.collector.ts","../src/collectors/browser-event.collector.ts","../src/collectors/bridge.collector.ts","../src/ui/styles.ts","../src/ui/floating-button.ts","../src/ui/json-viewer.ts","../src/definitions.ts","../src/ui/panel.ts","../src/ui/viewer.element.ts","../src/index.ts","../src/web.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["../src/sanitizer.ts","../src/store.ts","../src/collectors/console.collector.ts","../src/collectors/error.collector.ts","../src/collectors/network.collector.ts","../src/collectors/custom-event.collector.ts","../src/collectors/browser-event.collector.ts","../src/collectors/bridge.collector.ts","../src/ui/styles.ts","../src/ui/floating-button.ts","../src/ui/json-viewer.ts","../src/definitions.ts","../src/ui/panel.ts","../src/ui/viewer.element.ts","../src/remote/signaling.ts","../src/remote/protocol.ts","../src/remote/buffer.ts","../src/remote/webrtc-transport.ts","../src/remote/pairing.ts","../src/remote/remote-manager.ts","../src/capacitor/deep-link.ts","../src/index.ts","../src/web.ts"],"sourcesContent":["const DEFAULT_SENSITIVE_KEYS = new Set([\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'password',\n 'passwd',\n 'pass',\n 'token',\n 'access_token',\n 'accesstoken',\n 'refresh_token',\n 'refreshtoken',\n 'api_key',\n 'apikey',\n 'secret',\n 'client_secret',\n 'clientsecret',\n 'bearer',\n 'private_key',\n 'privatekey',\n 'session_id',\n 'sessionid',\n 'jwt',\n 'credit_card',\n 'creditcard',\n 'cvv',\n 'ssn',\n]);\n\nconst MASK_VALUE = '********';\n\nexport interface SanitizeOptions {\n customMaskKeys?: string[];\n maxDepth?: number;\n maxArrayLength?: number;\n}\n\nexport class DataSanitizer {\n private maskKeys: Set<string>;\n private maxDepth: number;\n private maxArrayLength: number;\n\n constructor(options: SanitizeOptions = {}) {\n this.maskKeys = new Set([\n ...DEFAULT_SENSITIVE_KEYS,\n ...(options.customMaskKeys || []).map(k => k.toLowerCase().trim()),\n ]);\n this.maxDepth = options.maxDepth ?? 10;\n this.maxArrayLength = options.maxArrayLength ?? 100;\n }\n\n private isSensitiveKey(key: string): boolean {\n const normalized = key.toLowerCase().replace(/[-_]/g, '');\n if (this.maskKeys.has(key.toLowerCase()) || this.maskKeys.has(normalized)) {\n return true;\n }\n for (const sensitive of this.maskKeys) {\n const cleanSensitive = sensitive.replace(/[-_]/g, '');\n if (normalized.includes(cleanSensitive) && cleanSensitive.length >= 4) {\n return true;\n }\n }\n return false;\n }\n\n public sanitize<T = unknown>(value: unknown): T {\n const seen = new WeakSet<object>();\n return this.sanitizeRecursive(value, 0, seen) as T;\n }\n\n private sanitizeRecursive(\n value: unknown,\n depth: number,\n seen: WeakSet<object>\n ): unknown {\n if (value === null || value === undefined) {\n return value;\n }\n\n if (depth > this.maxDepth) {\n return '[Max Depth Reached]';\n }\n\n const type = typeof value;\n\n if (type === 'string' || type === 'number' || type === 'boolean') {\n return value;\n }\n\n if (type === 'bigint') {\n return value.toString() + 'n';\n }\n\n if (type === 'symbol') {\n return value.toString();\n }\n\n if (type === 'function') {\n return `[Function: ${(value as Function).name || 'anonymous'}]`;\n }\n\n if (typeof value === 'object') {\n // Check circular reference\n if (seen.has(value as object)) {\n return '[Circular Reference]';\n }\n seen.add(value as object);\n\n // Error handling\n if (value instanceof Error) {\n return {\n name: value.name,\n message: value.message,\n stack: value.stack,\n ...(value as any),\n };\n }\n\n // Date handling\n if (value instanceof Date) {\n return value.toISOString();\n }\n\n // RegExp handling\n if (value instanceof RegExp) {\n return value.toString();\n }\n\n // DOM Node handling\n if (typeof Element !== 'undefined' && value instanceof Element) {\n const id = value.id ? `#${value.id}` : '';\n const className = value.className ? `.${String(value.className).trim().replace(/\\s+/g, '.')}` : '';\n return `<${value.tagName.toLowerCase()}${id}${className}>`;\n }\n\n // Array handling\n if (Array.isArray(value)) {\n const arr = value.slice(0, this.maxArrayLength).map(item =>\n this.sanitizeRecursive(item, depth + 1, seen)\n );\n if (value.length > this.maxArrayLength) {\n arr.push(`[... ${value.length - this.maxArrayLength} more items]` as any);\n }\n return arr;\n }\n\n // Map handling\n if (value instanceof Map) {\n const entries: Record<string, unknown> = {};\n for (const [k, v] of value.entries()) {\n const keyStr = String(k);\n entries[keyStr] = this.isSensitiveKey(keyStr)\n ? MASK_VALUE\n : this.sanitizeRecursive(v, depth + 1, seen);\n }\n return entries;\n }\n\n // Set handling\n if (value instanceof Set) {\n return Array.from(value).map(item =>\n this.sanitizeRecursive(item, depth + 1, seen)\n );\n }\n\n // Plain Object handling\n const result: Record<string, unknown> = {};\n const obj = value as Record<string, unknown>;\n\n for (const [key, val] of Object.entries(obj)) {\n if (this.isSensitiveKey(key)) {\n result[key] = MASK_VALUE;\n } else {\n result[key] = this.sanitizeRecursive(val, depth + 1, seen);\n }\n }\n\n return result;\n }\n\n return String(value);\n }\n}\n\nexport const defaultSanitizer = new DataSanitizer();\n\nexport function sanitize<T = unknown>(value: unknown, options?: SanitizeOptions): T {\n if (!options) {\n return defaultSanitizer.sanitize<T>(value);\n }\n return new DataSanitizer(options).sanitize<T>(value);\n}\n","import type {\n CapDebugEvent,\n CapDebugLevel,\n CapDebugSource,\n CapDebugTab,\n} from './types';\nimport { sanitize } from './sanitizer';\n\nexport interface StoreFilterState {\n tab: CapDebugTab;\n search: string;\n level: CapDebugLevel | 'all';\n source: CapDebugSource | 'all';\n}\n\nexport type StoreListener = (events: CapDebugEvent[], store: CapDebugStore) => void;\n\nexport class CapDebugStore {\n private buffer: CapDebugEvent[] = [];\n private maxEvents: number;\n private paused: boolean = false;\n private listeners: Set<StoreListener> = new Set();\n private rafId: number | null = null;\n private customMaskKeys: string[] = [];\n\n private filterState: StoreFilterState = {\n tab: 'all',\n search: '',\n level: 'all',\n source: 'all',\n };\n\n constructor(maxEvents = 500, customMaskKeys: string[] = []) {\n this.maxEvents = Math.max(1, maxEvents);\n this.customMaskKeys = customMaskKeys;\n }\n\n public setMaxEvents(max: number): void {\n this.maxEvents = Math.max(1, max);\n if (this.buffer.length > this.maxEvents) {\n this.buffer = this.buffer.slice(this.buffer.length - this.maxEvents);\n this.notify();\n }\n }\n\n public setCustomMaskKeys(keys: string[]): void {\n this.customMaskKeys = keys;\n }\n\n public add(event: Partial<CapDebugEvent> & { type: string }): CapDebugEvent | null {\n if (this.paused) {\n return null;\n }\n\n const sanitizedData = event.data !== undefined\n ? sanitize(event.data, { customMaskKeys: this.customMaskKeys })\n : undefined;\n\n const fullEvent: CapDebugEvent = {\n id: event.id || this.generateId(),\n timestamp: event.timestamp || Date.now(),\n source: event.source || 'web',\n type: event.type,\n level: event.level || 'info',\n message: event.message,\n data: sanitizedData,\n duration: event.duration,\n platform: event.platform,\n };\n\n if (this.buffer.length >= this.maxEvents) {\n this.buffer.shift(); // Evict oldest FIFO\n }\n\n this.buffer.push(fullEvent);\n this.notify();\n\n return fullEvent;\n }\n\n public clear(): void {\n this.buffer = [];\n this.notify();\n }\n\n public pause(): void {\n this.paused = true;\n this.notify();\n }\n\n public resume(): void {\n this.paused = false;\n this.notify();\n }\n\n public togglePause(): boolean {\n this.paused = !this.paused;\n this.notify();\n return this.paused;\n }\n\n public isPaused(): boolean {\n return this.paused;\n }\n\n public setFilter(partial: Partial<StoreFilterState>): void {\n this.filterState = { ...this.filterState, ...partial };\n this.notify();\n }\n\n public getFilter(): Readonly<StoreFilterState> {\n return this.filterState;\n }\n\n public getAll(): CapDebugEvent[] {\n return [...this.buffer];\n }\n\n public getCounts(): Record<CapDebugTab, number> {\n const counts: Record<CapDebugTab, number> = {\n all: this.buffer.length,\n console: 0,\n errors: 0,\n events: 0,\n native: 0,\n device: 0,\n network: 0,\n bridge: 0,\n };\n\n for (const ev of this.buffer) {\n if (ev.source === 'console') counts.console++;\n if (ev.level === 'error') counts.errors++;\n if (ev.source === 'web' || ev.source === 'system') counts.events++;\n if (ev.source === 'native') counts.native++;\n if (ev.source === 'network') counts.network++;\n if (ev.source === 'bridge') counts.bridge++;\n }\n\n return counts;\n }\n\n public getFiltered(): CapDebugEvent[] {\n const { tab, search, level, source } = this.filterState;\n const query = search.trim().toLowerCase();\n\n return this.buffer.filter(event => {\n // 1. Tab filtering\n if (tab === 'console' && event.source !== 'console') return false;\n if (tab === 'errors' && event.level !== 'error') return false;\n if (tab === 'events' && (event.source !== 'web' && event.source !== 'system')) return false;\n if (tab === 'native' && event.source !== 'native') return false;\n if (tab === 'network' && event.source !== 'network') return false;\n if (tab === 'bridge' && event.source !== 'bridge') return false;\n\n // 2. Level filter\n if (level !== 'all' && event.level !== level) return false;\n\n // 3. Source filter\n if (source !== 'all' && event.source !== source) return false;\n\n // 4. Search query\n if (query) {\n const typeMatch = event.type.toLowerCase().includes(query);\n const msgMatch = event.message ? event.message.toLowerCase().includes(query) : false;\n const sourceMatch = event.source.toLowerCase().includes(query);\n if (typeMatch || msgMatch || sourceMatch) return true;\n\n if (event.data) {\n try {\n const dataStr = typeof event.data === 'string'\n ? event.data.toLowerCase()\n : JSON.stringify(event.data).toLowerCase();\n return dataStr.includes(query);\n } catch {\n return false;\n }\n }\n return false;\n }\n\n return true;\n });\n }\n\n public exportJson(): string {\n return JSON.stringify(\n {\n exportedAt: new Date().toISOString(),\n totalEvents: this.buffer.length,\n events: this.buffer,\n },\n null,\n 2\n );\n }\n\n public subscribe(listener: StoreListener): () => void {\n this.listeners.add(listener);\n listener(this.getFiltered(), this);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n private notify(): void {\n if (typeof window !== 'undefined' && typeof window.requestAnimationFrame === 'function') {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n }\n this.rafId = requestAnimationFrame(() => {\n this.rafId = null;\n this.dispatchToListeners();\n });\n } else {\n this.dispatchToListeners();\n }\n }\n\n private dispatchToListeners(): void {\n const filtered = this.getFiltered();\n for (const listener of this.listeners) {\n try {\n listener(filtered, this);\n } catch (err) {\n // Prevent subscriber errors from halting store\n }\n }\n }\n\n private generateId(): string {\n return 'ev_' + Math.random().toString(36).substring(2, 9) + '_' + Date.now().toString(36);\n }\n}\n","import type { CapDebugCollector, CapDebugLevel } from '../types';\n\ntype ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'debug';\n\nexport class ConsoleCollector implements CapDebugCollector {\n public readonly id = 'console';\n private running = false;\n private originalMethods: Partial<Record<ConsoleMethod, (...args: any[]) => void>> = {};\n\n public start(): void {\n if (this.running || typeof console === 'undefined') return;\n\n const methods: { method: ConsoleMethod; level: CapDebugLevel }[] = [\n { method: 'log', level: 'info' },\n { method: 'info', level: 'info' },\n { method: 'warn', level: 'warn' },\n { method: 'error', level: 'error' },\n { method: 'debug', level: 'debug' },\n ];\n\n for (const { method, level } of methods) {\n const original = console[method]?.bind(console);\n this.originalMethods[method] = original;\n\n console[method] = (...args: any[]) => {\n // 1. Call original console method\n if (original) {\n try {\n original(...args);\n } catch {\n // ignore\n }\n }\n\n // 2. Dispatch CapDebug event safely\n try {\n this.emitConsoleEvent(method, level, args);\n } catch {\n // ignore to prevent crashing host application\n }\n };\n }\n\n this.running = true;\n }\n\n public stop(): void {\n if (!this.running || typeof console === 'undefined') return;\n\n for (const method of Object.keys(this.originalMethods) as ConsoleMethod[]) {\n const original = this.originalMethods[method];\n if (original) {\n console[method] = original;\n }\n }\n\n this.originalMethods = {};\n this.running = false;\n }\n\n private emitConsoleEvent(method: ConsoleMethod, level: CapDebugLevel, args: any[]): void {\n if (typeof window === 'undefined') return;\n\n let message = '';\n let data: unknown = undefined;\n\n if (args.length === 1) {\n const arg = args[0];\n if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {\n message = String(arg);\n } else if (arg instanceof Error) {\n message = `${arg.name}: ${arg.message}`;\n data = { name: arg.name, message: arg.message, stack: arg.stack };\n } else {\n message = `[${typeof arg}]`;\n data = arg;\n }\n } else if (args.length > 1) {\n // Multiple arguments\n const first = args[0];\n if (typeof first === 'string') {\n message = first;\n data = args.slice(1);\n } else {\n message = args.map(a => (typeof a === 'object' && a !== null ? '[Object]' : String(a))).join(' ');\n data = args;\n }\n }\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'console',\n type: `console.${method}`,\n level,\n message,\n data,\n timestamp: Date.now(),\n },\n })\n );\n }\n}\n","import type { CapDebugCollector } from '../types';\n\nexport class ErrorCollector implements CapDebugCollector {\n public readonly id = 'error';\n private running = false;\n private errorHandler: ((event: ErrorEvent) => void) | null = null;\n private rejectionHandler: ((event: PromiseRejectionEvent) => void) | null = null;\n\n public start(): void {\n if (this.running || typeof window === 'undefined') return;\n\n this.errorHandler = (event: ErrorEvent) => {\n try {\n const error = event.error;\n const message = event.message || (error && error.message) || 'Uncaught Error';\n const stack = error && error.stack ? error.stack : undefined;\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'web',\n type: 'window.error',\n level: 'error',\n message,\n data: {\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n stack,\n errorName: error?.name,\n },\n timestamp: Date.now(),\n },\n })\n );\n } catch {\n // ignore\n }\n };\n\n this.rejectionHandler = (event: PromiseRejectionEvent) => {\n try {\n const reason = event.reason;\n let message = 'Unhandled Promise Rejection';\n let stack: string | undefined = undefined;\n let data: unknown = reason;\n\n if (reason instanceof Error) {\n message = `Unhandled Rejection: ${reason.message}`;\n stack = reason.stack;\n data = {\n name: reason.name,\n message: reason.message,\n stack,\n };\n } else if (typeof reason === 'string') {\n message = `Unhandled Rejection: ${reason}`;\n }\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'web',\n type: 'unhandledrejection',\n level: 'error',\n message,\n data: {\n reason: data,\n stack,\n },\n timestamp: Date.now(),\n },\n })\n );\n } catch {\n // ignore\n }\n };\n\n window.addEventListener('error', this.errorHandler);\n window.addEventListener('unhandledrejection', this.rejectionHandler);\n this.running = true;\n }\n\n public stop(): void {\n if (!this.running || typeof window === 'undefined') return;\n\n if (this.errorHandler) {\n window.removeEventListener('error', this.errorHandler);\n this.errorHandler = null;\n }\n\n if (this.rejectionHandler) {\n window.removeEventListener('unhandledrejection', this.rejectionHandler);\n this.rejectionHandler = null;\n }\n\n this.running = false;\n }\n}\n","import type { CapDebugCollector, CapDebugLevel, NetworkCaptureOptions } from '../types';\n\nexport class NetworkCollector implements CapDebugCollector {\n public readonly id = 'network';\n private running = false;\n private originalFetch: typeof window.fetch | null = null;\n private options: NetworkCaptureOptions;\n\n constructor(options: NetworkCaptureOptions = {}) {\n this.options = {\n body: false,\n ...options,\n };\n }\n\n public setOptions(options: NetworkCaptureOptions): void {\n this.options = { ...this.options, ...options };\n }\n\n public start(): void {\n if (this.running || typeof window === 'undefined' || !window.fetch) return;\n\n this.originalFetch = window.fetch;\n const self = this;\n\n window.fetch = async function (\n input: RequestInfo | URL,\n init?: RequestInit\n ): Promise<Response> {\n const startTime = performance.now();\n const timestamp = Date.now();\n\n let url = '';\n let method = 'GET';\n\n if (typeof input === 'string') {\n url = input;\n } else if (input instanceof URL) {\n url = input.toString();\n } else if (typeof Request !== 'undefined' && input instanceof Request) {\n url = input.url;\n method = input.method;\n }\n\n if (init && init.method) {\n method = init.method.toUpperCase();\n }\n\n let requestHeaders: Record<string, string> = {};\n if (init && init.headers) {\n if (typeof Headers !== 'undefined' && init.headers instanceof Headers) {\n init.headers.forEach((value, key) => {\n requestHeaders[key] = value;\n });\n } else if (Array.isArray(init.headers)) {\n for (const [k, v] of init.headers) {\n requestHeaders[k] = v;\n }\n } else if (typeof init.headers === 'object') {\n requestHeaders = { ...(init.headers as Record<string, string>) };\n }\n }\n\n let requestBody: unknown = undefined;\n if (self.options.body && init && init.body) {\n try {\n if (typeof init.body === 'string') {\n try {\n requestBody = JSON.parse(init.body);\n } catch {\n requestBody = init.body;\n }\n } else {\n requestBody = '[Binary/Stream Body]';\n }\n } catch {\n requestBody = '[Unreadable Body]';\n }\n }\n\n try {\n const response = await self.originalFetch!.call(this, input, init);\n const duration = Math.round(performance.now() - startTime);\n\n let level: CapDebugLevel = 'info';\n if (response.status >= 500) {\n level = 'error';\n } else if (response.status >= 400) {\n level = 'warn';\n }\n\n let responseBody: unknown = undefined;\n if (self.options.body) {\n try {\n const clone = response.clone();\n const contentType = clone.headers.get('content-type') || '';\n if (contentType.includes('application/json')) {\n responseBody = await clone.json();\n } else if (contentType.includes('text/')) {\n responseBody = await clone.text();\n }\n } catch {\n responseBody = '[Could not clone response body]';\n }\n }\n\n const responseHeaders: Record<string, string> = {};\n response.headers.forEach((v, k) => {\n responseHeaders[k] = v;\n });\n\n self.emitNetworkEvent({\n type: `fetch ${method}`,\n level,\n message: `${method} ${url} → ${response.status} ${response.statusText} (${duration}ms)`,\n duration,\n timestamp,\n data: {\n method,\n url,\n status: response.status,\n statusText: response.statusText,\n ok: response.ok,\n duration,\n requestHeaders,\n responseHeaders,\n requestBody,\n responseBody,\n },\n });\n\n return response;\n } catch (err: any) {\n const duration = Math.round(performance.now() - startTime);\n\n self.emitNetworkEvent({\n type: `fetch ${method}`,\n level: 'error',\n message: `${method} ${url} → Failed: ${err?.message || 'Network Error'} (${duration}ms)`,\n duration,\n timestamp,\n data: {\n method,\n url,\n error: err?.message || String(err),\n duration,\n requestHeaders,\n requestBody,\n },\n });\n\n throw err;\n }\n };\n\n this.running = true;\n }\n\n public stop(): void {\n if (!this.running || typeof window === 'undefined') return;\n\n if (this.originalFetch) {\n window.fetch = this.originalFetch;\n this.originalFetch = null;\n }\n\n this.running = false;\n }\n\n private emitNetworkEvent(detail: {\n type: string;\n level: CapDebugLevel;\n message: string;\n duration: number;\n timestamp: number;\n data: unknown;\n }): void {\n if (typeof window === 'undefined') return;\n\n try {\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'network',\n ...detail,\n },\n })\n );\n } catch {\n // ignore\n }\n }\n}\n","import type { CapDebugCollector, CapDebugEventInput } from '../types';\nimport type { CapDebugStore } from '../store';\n\nexport class CustomEventCollector implements CapDebugCollector {\n public readonly id = 'custom-event';\n private store: CapDebugStore;\n private running = false;\n private handler: ((event: Event) => void) | null = null;\n\n constructor(store: CapDebugStore) {\n this.store = store;\n }\n\n public start(): void {\n if (this.running || typeof window === 'undefined') return;\n\n this.handler = (event: Event) => {\n const customEvent = event as CustomEvent<CapDebugEventInput>;\n if (customEvent && customEvent.detail) {\n const detail = customEvent.detail;\n this.store.add({\n id: detail.id,\n timestamp: detail.timestamp || Date.now(),\n source: detail.source || 'web',\n type: detail.type || 'custom-event',\n level: detail.level || 'info',\n message: detail.message,\n data: detail.data,\n duration: detail.duration,\n platform: detail.platform,\n });\n }\n };\n\n window.addEventListener('capdebug', this.handler as EventListener);\n this.running = true;\n }\n\n public stop(): void {\n if (!this.running || typeof window === 'undefined') return;\n if (this.handler) {\n window.removeEventListener('capdebug', this.handler as EventListener);\n this.handler = null;\n }\n this.running = false;\n }\n}\n","import type { CapDebugCollector } from '../types';\n\nexport class BrowserEventCollector implements CapDebugCollector {\n public readonly id = 'browser-event';\n private running = false;\n private observedEvents = new Map<string, EventListener>();\n\n public start(): void {\n this.running = true;\n }\n\n public observe(eventName: string): void {\n if (!this.running || typeof window === 'undefined' || this.observedEvents.has(eventName)) return;\n\n const listener = (event: Event) => {\n let data: Record<string, unknown> = {\n type: event.type,\n timeStamp: event.timeStamp,\n };\n\n if (event.type === 'visibilitychange' && typeof document !== 'undefined') {\n data.visibilityState = document.visibilityState;\n data.hidden = document.hidden;\n } else if (event.type === 'online' || event.type === 'offline') {\n data.onLine = typeof navigator !== 'undefined' ? navigator.onLine : undefined;\n }\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'system',\n type: `event.${eventName}`,\n level: 'info',\n message: `Browser event fired: ${eventName}`,\n data,\n timestamp: Date.now(),\n },\n })\n );\n };\n\n const target: EventTarget =\n eventName === 'visibilitychange' && typeof document !== 'undefined'\n ? document\n : window;\n\n target.addEventListener(eventName, listener);\n this.observedEvents.set(eventName, listener);\n }\n\n public unobserve(eventName: string): void {\n const listener = this.observedEvents.get(eventName);\n if (!listener) return;\n\n const target: EventTarget =\n eventName === 'visibilitychange' && typeof document !== 'undefined'\n ? document\n : window;\n\n target.removeEventListener(eventName, listener);\n this.observedEvents.delete(eventName);\n }\n\n public stop(): void {\n for (const [eventName, listener] of this.observedEvents.entries()) {\n const target: EventTarget =\n eventName === 'visibilitychange' && typeof document !== 'undefined'\n ? document\n : window;\n\n target.removeEventListener(eventName, listener);\n }\n this.observedEvents.clear();\n this.running = false;\n }\n}\n","import type { CapDebugCollector } from '../types';\n\nexport class BridgeCollector implements CapDebugCollector {\n public readonly id = 'bridge';\n private running = false;\n\n public start(): void {\n if (this.running) return;\n // Reserved for non-intrusive Capacitor bridge telemetry\n this.running = true;\n }\n\n public stop(): void {\n this.running = false;\n }\n\n public emitBridgeCall(pluginName: string, methodName: string, options?: unknown, duration?: number): void {\n if (!this.running || typeof window === 'undefined') return;\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n source: 'bridge',\n type: `${pluginName}.${methodName}`,\n level: 'debug',\n message: `Bridge call: ${pluginName}.${methodName}`,\n data: options,\n duration,\n timestamp: Date.now(),\n },\n })\n );\n }\n}\n","export const VIEWER_STYLES = `\n:host {\n --cd-bg-base: #0d1117;\n --cd-bg-surface: #161b22;\n --cd-bg-surface-elevated: #21262d;\n --cd-bg-hover: #30363d;\n --cd-border: #30363d;\n --cd-border-subtle: #21262d;\n \n --cd-text-primary: #f0f6fc;\n --cd-text-secondary: #8b949e;\n --cd-text-muted: #6e7681;\n \n --cd-color-brand: #58a6ff;\n --cd-color-brand-rgb: 88, 166, 255;\n --cd-color-info: #38bdf8;\n --cd-color-warn: #fbbf24;\n --cd-color-error: #f87171;\n --cd-color-debug: #c084fc;\n --cd-color-success: #34d399;\n\n --cd-font-sans: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n --cd-font-mono: ui-monospace, SFMono-Regular, \"SF Mono\", Menlo, Monaco, Consolas, monospace;\n \n --cd-z-index: 2147483647;\n \n all: initial;\n font-family: var(--cd-font-sans);\n font-size: 13px;\n line-height: 1.4;\n color: var(--cd-text-primary);\n box-sizing: border-box;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n/* Floating Trigger Button */\n.cd-floating-btn {\n position: fixed;\n z-index: var(--cd-z-index);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n height: 38px;\n padding: 0 12px;\n background: rgba(22, 27, 34, 0.88);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n border: 1px solid rgba(240, 246, 252, 0.15);\n border-radius: 9999px;\n color: var(--cd-text-primary);\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n touch-action: none;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.3);\n transition: transform 0.15s ease, background-color 0.2s ease, border-color 0.2s ease;\n}\n\n.cd-floating-btn:active {\n transform: scale(0.94);\n}\n\n.cd-floating-btn.dragging {\n opacity: 0.85;\n transform: scale(1.05);\n box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);\n}\n\n.cd-btn-logo {\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 700;\n font-size: 11px;\n letter-spacing: 0.5px;\n color: #38bdf8;\n font-family: var(--cd-font-mono);\n}\n\n.cd-btn-badge {\n display: none;\n align-items: center;\n justify-content: center;\n min-width: 18px;\n height: 18px;\n padding: 0 5px;\n font-size: 10px;\n font-weight: 700;\n font-family: var(--cd-font-mono);\n background: var(--cd-color-error);\n color: #ffffff;\n border-radius: 9999px;\n}\n\n.cd-btn-badge.visible {\n display: flex;\n}\n\n/* Backdrop */\n.cd-backdrop {\n position: fixed;\n inset: 0;\n z-index: calc(var(--cd-z-index) - 1);\n background: rgba(0, 0, 0, 0.45);\n backdrop-filter: blur(2px);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.cd-backdrop.open {\n opacity: 1;\n pointer-events: auto;\n}\n\n/* Main Drawer Panel */\n.cd-panel {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: var(--cd-z-index);\n height: 80vh;\n max-height: 85vh;\n background: var(--cd-bg-base);\n border-top: 1px solid var(--cd-border);\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.6);\n display: flex;\n flex-direction: column;\n transform: translateY(100%);\n transition: transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);\n padding-bottom: env(safe-area-inset-bottom, 12px);\n}\n\n@media (min-width: 768px) {\n .cd-panel {\n bottom: 12px;\n right: 12px;\n left: auto;\n width: 480px;\n height: calc(100vh - 24px);\n max-height: 880px;\n border-radius: 16px;\n border: 1px solid var(--cd-border);\n transform: translateX(calc(100% + 24px));\n padding-bottom: 0;\n }\n}\n\n.cd-panel.open {\n transform: translateY(0);\n}\n\n@media (min-width: 768px) {\n .cd-panel.open {\n transform: translateX(0);\n }\n}\n\n/* Panel Header */\n.cd-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--cd-border);\n background: var(--cd-bg-surface);\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n user-select: none;\n}\n\n.cd-header-left {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cd-header-title {\n font-weight: 700;\n font-size: 13px;\n font-family: var(--cd-font-mono);\n color: var(--cd-text-primary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cd-status-indicator {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--cd-color-success);\n}\n\n.cd-status-indicator.paused {\n background: var(--cd-color-warn);\n}\n\n.cd-header-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cd-btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--cd-text-secondary);\n cursor: pointer;\n transition: all 0.15s ease;\n padding: 0;\n}\n\n.cd-btn-icon:hover {\n background: var(--cd-bg-hover);\n color: var(--cd-text-primary);\n border-color: var(--cd-border);\n}\n\n.cd-btn-icon.active {\n background: rgba(251, 191, 36, 0.15);\n color: var(--cd-color-warn);\n border-color: rgba(251, 191, 36, 0.3);\n}\n\n/* Tabs Bar */\n.cd-tabs-bar {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n background: var(--cd-bg-surface);\n border-bottom: 1px solid var(--cd-border);\n overflow-x: auto;\n scrollbar-width: none;\n -webkit-overflow-scrolling: touch;\n}\n\n.cd-tabs-bar::-webkit-scrollbar {\n display: none;\n}\n\n.cd-tab {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 5px 10px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px;\n color: var(--cd-text-secondary);\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n white-space: nowrap;\n transition: all 0.15s ease;\n}\n\n.cd-tab:hover {\n background: var(--cd-bg-hover);\n color: var(--cd-text-primary);\n}\n\n.cd-tab.active {\n background: var(--cd-bg-surface-elevated);\n border-color: var(--cd-border);\n color: var(--cd-text-primary);\n font-weight: 600;\n}\n\n.cd-tab-badge {\n font-size: 10px;\n font-family: var(--cd-font-mono);\n padding: 1px 5px;\n background: var(--cd-bg-hover);\n border-radius: 10px;\n color: var(--cd-text-muted);\n}\n\n.cd-tab.active .cd-tab-badge {\n background: rgba(88, 166, 255, 0.2);\n color: var(--cd-color-brand);\n}\n\n/* Toolbar */\n.cd-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background: var(--cd-bg-base);\n border-bottom: 1px solid var(--cd-border-subtle);\n}\n\n.cd-search-input {\n flex: 1;\n height: 28px;\n padding: 0 8px;\n background: var(--cd-bg-surface);\n border: 1px solid var(--cd-border);\n border-radius: 6px;\n color: var(--cd-text-primary);\n font-size: 12px;\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.cd-search-input:focus {\n border-color: var(--cd-color-brand);\n}\n\n.cd-search-input::placeholder {\n color: var(--cd-text-muted);\n}\n\n.cd-level-filters {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.cd-level-pill {\n padding: 3px 7px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n background: transparent;\n border: 1px solid var(--cd-border-subtle);\n color: var(--cd-text-muted);\n cursor: pointer;\n transition: all 0.12s ease;\n}\n\n.cd-level-pill:hover {\n border-color: var(--cd-border);\n color: var(--cd-text-secondary);\n}\n\n.cd-level-pill.active {\n background: var(--cd-bg-surface-elevated);\n border-color: var(--cd-border);\n color: var(--cd-text-primary);\n}\n\n.cd-level-pill[data-level=\"error\"].active {\n background: rgba(248, 113, 113, 0.15);\n border-color: rgba(248, 113, 113, 0.3);\n color: var(--cd-color-error);\n}\n\n.cd-level-pill[data-level=\"warn\"].active {\n background: rgba(251, 191, 36, 0.15);\n border-color: rgba(251, 191, 36, 0.3);\n color: var(--cd-color-warn);\n}\n\n/* Event List */\n.cd-content {\n flex: 1;\n overflow-y: auto;\n position: relative;\n -webkit-overflow-scrolling: touch;\n}\n\n.cd-event-list {\n display: flex;\n flex-direction: column;\n}\n\n.cd-event-row {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n padding: 8px 12px;\n border-bottom: 1px solid var(--cd-border-subtle);\n cursor: pointer;\n transition: background-color 0.12s ease;\n font-family: var(--cd-font-mono);\n font-size: 11.5px;\n}\n\n.cd-event-row:hover {\n background: var(--cd-bg-surface);\n}\n\n.cd-event-level-dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n margin-top: 5px;\n flex-shrink: 0;\n background: var(--cd-text-muted);\n}\n\n.cd-event-row[data-level=\"info\"] .cd-event-level-dot { background: var(--cd-color-info); }\n.cd-event-row[data-level=\"warn\"] .cd-event-level-dot { background: var(--cd-color-warn); }\n.cd-event-row[data-level=\"error\"] .cd-event-level-dot { background: var(--cd-color-error); }\n.cd-event-row[data-level=\"debug\"] .cd-event-level-dot { background: var(--cd-color-debug); }\n\n.cd-event-time {\n color: var(--cd-text-muted);\n font-size: 10.5px;\n flex-shrink: 0;\n margin-top: 1px;\n}\n\n.cd-event-source {\n padding: 1px 5px;\n border-radius: 3px;\n background: var(--cd-bg-surface-elevated);\n color: var(--cd-text-secondary);\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n flex-shrink: 0;\n}\n\n.cd-event-main {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.cd-event-type {\n font-weight: 600;\n color: var(--cd-text-primary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.cd-event-msg {\n color: var(--cd-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 11px;\n}\n\n.cd-event-duration {\n font-size: 10px;\n padding: 1px 4px;\n border-radius: 3px;\n background: rgba(88, 166, 255, 0.1);\n color: var(--cd-color-brand);\n flex-shrink: 0;\n}\n\n.cd-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: var(--cd-text-muted);\n gap: 8px;\n font-size: 12px;\n}\n\n/* Detail Modal Overlay */\n.cd-detail-overlay {\n position: absolute;\n inset: 0;\n background: var(--cd-bg-base);\n z-index: 10;\n display: flex;\n flex-direction: column;\n transform: translateX(100%);\n transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.cd-detail-overlay.open {\n transform: translateX(0);\n}\n\n.cd-detail-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n border-bottom: 1px solid var(--cd-border);\n background: var(--cd-bg-surface);\n}\n\n.cd-detail-back {\n display: flex;\n align-items: center;\n gap: 6px;\n background: transparent;\n border: none;\n color: var(--cd-color-brand);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n padding: 4px 6px;\n border-radius: 4px;\n}\n\n.cd-detail-back:hover {\n background: var(--cd-bg-hover);\n}\n\n.cd-detail-body {\n flex: 1;\n overflow-y: auto;\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n font-family: var(--cd-font-mono);\n font-size: 12px;\n}\n\n.cd-meta-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 8px;\n padding: 10px;\n background: var(--cd-bg-surface);\n border: 1px solid var(--cd-border-subtle);\n border-radius: 8px;\n}\n\n.cd-meta-item {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.cd-meta-label {\n font-size: 10px;\n text-transform: uppercase;\n color: var(--cd-text-muted);\n font-weight: 600;\n}\n\n.cd-meta-val {\n font-size: 11.5px;\n color: var(--cd-text-primary);\n word-break: break-all;\n}\n\n.cd-section-title {\n font-size: 11px;\n text-transform: uppercase;\n color: var(--cd-text-muted);\n font-weight: 700;\n margin-top: 6px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.cd-msg-block {\n padding: 10px;\n background: var(--cd-bg-surface);\n border: 1px solid var(--cd-border-subtle);\n border-radius: 8px;\n color: var(--cd-text-primary);\n white-space: pre-wrap;\n word-break: break-word;\n line-height: 1.5;\n}\n\n/* Device Tab View */\n.cd-device-view {\n padding: 14px;\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.cd-device-card {\n background: var(--cd-bg-surface);\n border: 1px solid var(--cd-border);\n border-radius: 8px;\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.cd-device-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-weight: 700;\n font-size: 12px;\n color: var(--cd-color-brand);\n border-bottom: 1px solid var(--cd-border-subtle);\n padding-bottom: 6px;\n}\n\n.cd-device-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 8px;\n}\n\n/* Collapsible JSON Viewer */\n.cd-json-tree {\n background: var(--cd-bg-surface);\n border: 1px solid var(--cd-border-subtle);\n border-radius: 8px;\n padding: 10px;\n font-family: var(--cd-font-mono);\n font-size: 11.5px;\n line-height: 1.5;\n overflow-x: auto;\n}\n\n.cd-json-node {\n display: block;\n}\n\n.cd-json-row {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n padding: 1px 0;\n}\n\n.cd-json-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 14px;\n height: 14px;\n cursor: pointer;\n user-select: none;\n color: var(--cd-text-muted);\n font-size: 9px;\n transition: transform 0.1s ease;\n}\n\n.cd-json-toggle.collapsed {\n transform: rotate(-90deg);\n}\n\n.cd-json-key {\n color: #7ee787;\n}\n\n.cd-json-colon {\n color: var(--cd-text-muted);\n}\n\n.cd-json-string {\n color: #a5d6ff;\n word-break: break-all;\n}\n\n.cd-json-number {\n color: #79c0ff;\n}\n\n.cd-json-boolean {\n color: #ff7b72;\n}\n\n.cd-json-null {\n color: var(--cd-text-muted);\n font-style: italic;\n}\n\n.cd-json-copy-btn {\n opacity: 0;\n padding: 1px 4px;\n font-size: 9px;\n background: var(--cd-bg-hover);\n border: 1px solid var(--cd-border);\n border-radius: 3px;\n color: var(--cd-text-secondary);\n cursor: pointer;\n margin-left: 6px;\n}\n\n.cd-json-row:hover .cd-json-copy-btn {\n opacity: 1;\n}\n\n.cd-json-children {\n padding-left: 14px;\n border-left: 1px solid var(--cd-border-subtle);\n margin-left: 6px;\n}\n\n.cd-json-children.hidden {\n display: none;\n}\n\n/* Small UI helpers */\n.cd-copy-btn-sm {\n background: var(--cd-bg-surface-elevated);\n border: 1px solid var(--cd-border);\n border-radius: 4px;\n color: var(--cd-text-secondary);\n font-size: 10px;\n padding: 3px 8px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.cd-copy-btn-sm:hover {\n background: var(--cd-bg-hover);\n color: var(--cd-text-primary);\n}\n`;\n","export interface FloatingButtonOptions {\n position?: 'right' | 'left' | { x: number; y: number };\n persistPosition?: boolean;\n onClick?: () => void;\n}\n\nconst STORAGE_KEY = 'capdebug_btn_pos';\n\nexport class FloatingButton {\n private element: HTMLElement;\n private badgeElement: HTMLElement;\n private options: FloatingButtonOptions;\n private isDragging = false;\n private hasMoved = false;\n private startX = 0;\n private startY = 0;\n private initialLeft = 0;\n private initialTop = 0;\n\n constructor(options: FloatingButtonOptions = {}) {\n this.options = {\n position: 'right',\n persistPosition: true,\n ...options,\n };\n\n this.element = document.createElement('div');\n this.element.className = 'cd-floating-btn';\n this.element.setAttribute('role', 'button');\n this.element.setAttribute('aria-label', 'Open CapDebug');\n\n const logo = document.createElement('span');\n logo.className = 'cd-btn-logo';\n logo.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 4px\"><path d=\"m8 2 1.88 1.88\"/><path d=\"M14.12 3.88 16 2\"/><path d=\"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1\"/><path d=\"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6\"/><path d=\"M12 20v-9\"/><path d=\"M6.53 9C4.6 8.8 3 7.1 3 5\"/><path d=\"M6 13H2\"/><path d=\"M3 21c0-2.1 1.7-3.9 3.8-4\"/><path d=\"M20.97 5c0 2.1-1.6 3.8-3.5 4\"/><path d=\"M22 13h-4\"/><path d=\"M17.2 17c2.1.1 3.8 1.9 3.8 4\"/></svg>CAP`;\n\n this.badgeElement = document.createElement('span');\n this.badgeElement.className = 'cd-btn-badge';\n this.badgeElement.textContent = '0';\n\n this.element.appendChild(logo);\n this.element.appendChild(this.badgeElement);\n\n this.initPosition();\n this.bindEvents();\n }\n\n public getElement(): HTMLElement {\n return this.element;\n }\n\n public setErrorCount(count: number): void {\n if (count > 0) {\n this.badgeElement.textContent = count > 99 ? '99+' : String(count);\n this.badgeElement.classList.add('visible');\n } else {\n this.badgeElement.classList.remove('visible');\n }\n }\n\n public show(): void {\n this.element.style.display = 'flex';\n }\n\n public hide(): void {\n this.element.style.display = 'none';\n }\n\n private initPosition(): void {\n let savedPos: { x: number; y: number } | null = null;\n if (this.options.persistPosition && typeof localStorage !== 'undefined') {\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n savedPos = JSON.parse(stored);\n }\n } catch {\n // ignore\n }\n }\n\n const windowWidth = typeof window !== 'undefined' ? window.innerWidth : 400;\n const windowHeight = typeof window !== 'undefined' ? window.innerHeight : 800;\n\n let x = windowWidth - 76;\n let y = Math.max(80, windowHeight * 0.4);\n\n if (savedPos && typeof savedPos.x === 'number' && typeof savedPos.y === 'number') {\n x = Math.min(Math.max(10, savedPos.x), windowWidth - 76);\n y = Math.min(Math.max(60, savedPos.y), windowHeight - 60);\n } else if (typeof this.options.position === 'object') {\n x = this.options.position.x;\n y = this.options.position.y;\n } else if (this.options.position === 'left') {\n x = 12;\n }\n\n this.setPosition(x, y);\n }\n\n private setPosition(x: number, y: number): void {\n this.element.style.left = `${x}px`;\n this.element.style.top = `${y}px`;\n this.element.style.right = 'auto';\n this.element.style.bottom = 'auto';\n }\n\n private bindEvents(): void {\n const onPointerDown = (e: PointerEvent) => {\n this.isDragging = true;\n this.hasMoved = false;\n this.startX = e.clientX;\n this.startY = e.clientY;\n\n const rect = this.element.getBoundingClientRect();\n this.initialLeft = rect.left;\n this.initialTop = rect.top;\n\n this.element.classList.add('dragging');\n this.element.setPointerCapture(e.pointerId);\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (!this.isDragging) return;\n\n const deltaX = e.clientX - this.startX;\n const deltaY = e.clientY - this.startY;\n\n if (Math.abs(deltaX) > 4 || Math.abs(deltaY) > 4) {\n this.hasMoved = true;\n }\n\n let newX = this.initialLeft + deltaX;\n let newY = this.initialTop + deltaY;\n\n const maxX = window.innerWidth - this.element.offsetWidth - 8;\n const maxY = window.innerHeight - this.element.offsetHeight - 8;\n\n newX = Math.max(8, Math.min(newX, maxX));\n newY = Math.max(40, Math.min(newY, maxY));\n\n this.setPosition(newX, newY);\n };\n\n const onPointerUp = (e: PointerEvent) => {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.element.classList.remove('dragging');\n\n try {\n this.element.releasePointerCapture(e.pointerId);\n } catch {\n // ignore\n }\n\n if (!this.hasMoved) {\n // Tap / Click action\n if (this.options.onClick) {\n this.options.onClick();\n }\n } else {\n // Snap to nearest edge (left or right)\n this.snapToEdge();\n }\n };\n\n this.element.addEventListener('pointerdown', onPointerDown);\n this.element.addEventListener('pointermove', onPointerMove);\n this.element.addEventListener('pointerup', onPointerUp);\n this.element.addEventListener('pointercancel', onPointerUp);\n }\n\n private snapToEdge(): void {\n const rect = this.element.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const snapLeft = 12;\n const snapRight = windowWidth - rect.width - 12;\n\n const targetX = rect.left + rect.width / 2 < windowWidth / 2 ? snapLeft : snapRight;\n const targetY = Math.max(50, Math.min(rect.top, windowHeight - rect.height - 50));\n\n this.element.style.transition = 'left 0.2s cubic-bezier(0.16, 1, 0.3, 1), top 0.2s cubic-bezier(0.16, 1, 0.3, 1)';\n this.setPosition(targetX, targetY);\n\n setTimeout(() => {\n this.element.style.transition = '';\n }, 200);\n\n if (this.options.persistPosition && typeof localStorage !== 'undefined') {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify({ x: targetX, y: targetY }));\n } catch {\n // ignore\n }\n }\n }\n}\n","export class JsonViewer {\n public static render(data: unknown, initialExpandedDepth = 2): HTMLElement {\n const container = document.createElement('div');\n container.className = 'cd-json-tree';\n\n if (data === undefined) {\n const undefinedSpan = document.createElement('span');\n undefinedSpan.className = 'cd-json-null';\n undefinedSpan.textContent = 'undefined';\n container.appendChild(undefinedSpan);\n return container;\n }\n\n const rootNode = JsonViewer.renderNode('', data, 0, initialExpandedDepth);\n container.appendChild(rootNode);\n\n return container;\n }\n\n private static renderNode(\n key: string | number,\n value: unknown,\n depth: number,\n maxExpandedDepth: number\n ): HTMLElement {\n const node = document.createElement('div');\n node.className = 'cd-json-node';\n\n const row = document.createElement('div');\n row.className = 'cd-json-row';\n\n const isObject = typeof value === 'object' && value !== null;\n const isArray = Array.isArray(value);\n\n // Toggle button for objects/arrays\n if (isObject) {\n const toggle = document.createElement('span');\n toggle.className = 'cd-json-toggle';\n toggle.innerHTML = '▼';\n row.appendChild(toggle);\n } else {\n const spacer = document.createElement('span');\n spacer.style.width = '14px';\n spacer.style.display = 'inline-block';\n row.appendChild(spacer);\n }\n\n // Key (if present)\n if (key !== '') {\n const keySpan = document.createElement('span');\n keySpan.className = 'cd-json-key';\n keySpan.textContent = typeof key === 'number' ? `[${key}]` : `\"${key}\"`;\n row.appendChild(keySpan);\n\n const colonSpan = document.createElement('span');\n colonSpan.className = 'cd-json-colon';\n colonSpan.textContent = ': ';\n row.appendChild(colonSpan);\n }\n\n // Value preview or primitive\n if (isObject) {\n const entries = isArray\n ? (value as unknown[]).map((v, i) => [i, v] as [number, unknown])\n : Object.entries(value as Record<string, unknown>);\n\n const bracketOpen = isArray ? '[' : '{';\n const bracketClose = isArray ? ']' : '}';\n\n const previewSpan = document.createElement('span');\n previewSpan.className = 'cd-json-colon';\n previewSpan.textContent = `${bracketOpen} ${entries.length} ${isArray ? 'items' : 'keys'} ${bracketClose}`;\n row.appendChild(previewSpan);\n\n // Copy object JSON button\n const copyBtn = document.createElement('button');\n copyBtn.className = 'cd-json-copy-btn';\n copyBtn.textContent = 'copy';\n copyBtn.title = 'Copy branch JSON';\n copyBtn.addEventListener('click', e => {\n e.stopPropagation();\n JsonViewer.copyToClipboard(JSON.stringify(value, null, 2), copyBtn);\n });\n row.appendChild(copyBtn);\n\n node.appendChild(row);\n\n // Children container\n const childrenContainer = document.createElement('div');\n childrenContainer.className = 'cd-json-children';\n\n const isInitiallyExpanded = depth < maxExpandedDepth;\n if (!isInitiallyExpanded) {\n childrenContainer.classList.add('hidden');\n const toggle = row.querySelector('.cd-json-toggle');\n if (toggle) toggle.classList.add('collapsed');\n }\n\n for (const [childKey, childVal] of entries) {\n childrenContainer.appendChild(\n JsonViewer.renderNode(childKey, childVal, depth + 1, maxExpandedDepth)\n );\n }\n\n node.appendChild(childrenContainer);\n\n // Toggle collapse on row or toggle click\n row.addEventListener('click', e => {\n if ((e.target as HTMLElement).tagName.toLowerCase() === 'button') return;\n const toggle = row.querySelector('.cd-json-toggle');\n const isHidden = childrenContainer.classList.toggle('hidden');\n if (toggle) {\n toggle.classList.toggle('collapsed', isHidden);\n }\n });\n } else {\n // Primitive value\n const valSpan = document.createElement('span');\n const valType = typeof value;\n\n if (value === null) {\n valSpan.className = 'cd-json-null';\n valSpan.textContent = 'null';\n } else if (valType === 'string') {\n valSpan.className = 'cd-json-string';\n valSpan.textContent = `\"${value}\"`;\n } else if (valType === 'number') {\n valSpan.className = 'cd-json-number';\n valSpan.textContent = String(value);\n } else if (valType === 'boolean') {\n valSpan.className = 'cd-json-boolean';\n valSpan.textContent = String(value);\n } else {\n valSpan.className = 'cd-json-null';\n valSpan.textContent = String(value);\n }\n\n row.appendChild(valSpan);\n\n // Copy primitive value button\n const copyBtn = document.createElement('button');\n copyBtn.className = 'cd-json-copy-btn';\n copyBtn.textContent = 'copy';\n copyBtn.title = 'Copy value';\n copyBtn.addEventListener('click', e => {\n e.stopPropagation();\n JsonViewer.copyToClipboard(String(value), copyBtn);\n });\n row.appendChild(copyBtn);\n\n node.appendChild(row);\n }\n\n return node;\n }\n\n public static async copyToClipboard(text: string, triggerBtn?: HTMLElement): Promise<boolean> {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n const textarea = document.createElement('textarea');\n textarea.value = text;\n textarea.style.position = 'fixed';\n textarea.style.left = '-9999px';\n textarea.style.top = '-9999px';\n document.body.appendChild(textarea);\n textarea.focus();\n textarea.select();\n document.execCommand('copy');\n document.body.removeChild(textarea);\n }\n\n if (triggerBtn) {\n const originalText = triggerBtn.textContent;\n triggerBtn.textContent = 'copied!';\n triggerBtn.style.color = '#34d399';\n setTimeout(() => {\n triggerBtn.textContent = originalText;\n triggerBtn.style.color = '';\n }, 1500);\n }\n return true;\n } catch {\n return false;\n }\n }\n}\n","import { registerPlugin } from '@capacitor/core';\nimport type { DeviceInfo, MemoryInfo, WebViewInfo, AppInfo, NetworkInfo } from './types';\n\nexport interface CapDebugNativePlugin {\n getDeviceInfo(): Promise<DeviceInfo>;\n getMemoryInfo(): Promise<MemoryInfo>;\n getWebViewInfo(): Promise<WebViewInfo>;\n getAppInfo(): Promise<AppInfo>;\n getNetworkInfo(): Promise<NetworkInfo>;\n}\n\nexport const CapDebugNative = registerPlugin<CapDebugNativePlugin>('CapDebug', {\n web: () => import('./web').then(m => new m.CapDebugWeb()),\n});\n","import type { CapDebugEvent, CapDebugLevel, CapDebugTab } from '../types';\nimport type { CapDebugStore } from '../store';\nimport { JsonViewer } from './json-viewer';\nimport { CapDebugNative } from '../definitions';\n\nexport interface PanelOptions {\n defaultTab?: CapDebugTab;\n onClose?: () => void;\n}\n\nexport class DebugPanel {\n private element: HTMLElement;\n private backdrop: HTMLElement;\n private store: CapDebugStore;\n private options: PanelOptions;\n private isOpen = false;\n\n // Header UI\n private statusIndicator!: HTMLElement;\n private titleCountSpan!: HTMLElement;\n private pauseBtn!: HTMLButtonElement;\n\n // Tab elements\n private tabElements: Map<CapDebugTab, HTMLElement> = new Map();\n private tabBadgeElements: Map<CapDebugTab, HTMLElement> = new Map();\n\n // Search & Filter UI\n private searchInput!: HTMLInputElement;\n private levelPills: Map<string, HTMLElement> = new Map();\n\n // Content\n private contentContainer!: HTMLElement;\n private eventListContainer!: HTMLElement;\n private deviceViewContainer!: HTMLElement;\n\n // Detail Overlay\n private detailOverlay!: HTMLElement;\n private selectedEvent: CapDebugEvent | null = null;\n\n // Device tab state\n private isDeviceLoading = false;\n private deviceData: Record<string, unknown> | null = null;\n\n constructor(store: CapDebugStore, options: PanelOptions = {}) {\n this.store = store;\n this.options = {\n defaultTab: 'all',\n ...options,\n };\n\n this.backdrop = document.createElement('div');\n this.backdrop.className = 'cd-backdrop';\n\n this.element = document.createElement('div');\n this.element.className = 'cd-panel';\n\n this.buildUI();\n this.bindStore();\n\n if (this.options.defaultTab) {\n this.store.setFilter({ tab: this.options.defaultTab });\n }\n }\n\n public getElement(): HTMLElement {\n return this.element;\n }\n\n public getBackdrop(): HTMLElement {\n return this.backdrop;\n }\n\n public open(): void {\n this.isOpen = true;\n this.element.classList.add('open');\n this.backdrop.classList.add('open');\n\n // If device tab is active, trigger lazy load\n if (this.store.getFilter().tab === 'device') {\n this.loadDeviceDiagnostics();\n }\n }\n\n public close(): void {\n this.isOpen = false;\n this.element.classList.remove('open');\n this.backdrop.classList.remove('open');\n this.closeDetail();\n\n if (this.options.onClose) {\n this.options.onClose();\n }\n }\n\n public toggle(): boolean {\n if (this.isOpen) {\n this.close();\n return false;\n } else {\n this.open();\n return true;\n }\n }\n\n public isPanelOpen(): boolean {\n return this.isOpen;\n }\n\n private buildUI(): void {\n this.backdrop.addEventListener('click', () => this.close());\n\n // 1. Header\n const header = document.createElement('div');\n header.className = 'cd-header';\n\n const headerLeft = document.createElement('div');\n headerLeft.className = 'cd-header-left';\n\n this.statusIndicator = document.createElement('div');\n this.statusIndicator.className = 'cd-status-indicator';\n this.statusIndicator.title = 'CapDebug Active';\n\n const headerTitle = document.createElement('div');\n headerTitle.className = 'cd-header-title';\n headerTitle.innerHTML = `<span>CapDebug</span>`;\n\n this.titleCountSpan = document.createElement('span');\n this.titleCountSpan.style.color = 'var(--cd-text-muted)';\n this.titleCountSpan.style.fontSize = '11px';\n this.titleCountSpan.textContent = '(0)';\n headerTitle.appendChild(this.titleCountSpan);\n\n headerLeft.appendChild(this.statusIndicator);\n headerLeft.appendChild(headerTitle);\n\n const headerActions = document.createElement('div');\n headerActions.className = 'cd-header-actions';\n\n // Pause/Resume Button\n this.pauseBtn = document.createElement('button');\n this.pauseBtn.className = 'cd-btn-icon';\n this.pauseBtn.title = 'Pause/Resume capture';\n this.pauseBtn.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"/><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"/></svg>`;\n this.pauseBtn.addEventListener('click', () => {\n const isPaused = this.store.togglePause();\n this.updatePauseState(isPaused);\n });\n\n // Clear Button\n const clearBtn = document.createElement('button');\n clearBtn.className = 'cd-btn-icon';\n clearBtn.title = 'Clear events';\n clearBtn.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"/></svg>`;\n clearBtn.addEventListener('click', () => {\n this.store.clear();\n this.closeDetail();\n });\n\n // Export Button\n const exportBtn = document.createElement('button');\n exportBtn.className = 'cd-btn-icon';\n exportBtn.title = 'Export JSON to clipboard';\n exportBtn.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"/><polyline points=\"7 10 12 15 17 10\"/><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"/></svg>`;\n exportBtn.addEventListener('click', async () => {\n const json = this.store.exportJson();\n await JsonViewer.copyToClipboard(json, exportBtn);\n });\n\n // Close Button\n const closeBtn = document.createElement('button');\n closeBtn.className = 'cd-btn-icon';\n closeBtn.title = 'Close viewer';\n closeBtn.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/></svg>`;\n closeBtn.addEventListener('click', () => this.close());\n\n headerActions.appendChild(this.pauseBtn);\n headerActions.appendChild(clearBtn);\n headerActions.appendChild(exportBtn);\n headerActions.appendChild(closeBtn);\n\n header.appendChild(headerLeft);\n header.appendChild(headerActions);\n this.element.appendChild(header);\n\n // 2. Tabs Bar\n const tabsBar = document.createElement('div');\n tabsBar.className = 'cd-tabs-bar';\n\n const tabs: { id: CapDebugTab; label: string }[] = [\n { id: 'all', label: 'All' },\n { id: 'console', label: 'Console' },\n { id: 'errors', label: 'Errors' },\n { id: 'events', label: 'Events' },\n { id: 'native', label: 'Native' },\n { id: 'device', label: 'Device' },\n { id: 'network', label: 'Network' },\n { id: 'bridge', label: 'Bridge' },\n ];\n\n for (const { id, label } of tabs) {\n const tabBtn = document.createElement('button');\n tabBtn.className = 'cd-tab';\n if (id === this.options.defaultTab) {\n tabBtn.classList.add('active');\n }\n\n const labelSpan = document.createElement('span');\n labelSpan.textContent = label;\n\n const badgeSpan = document.createElement('span');\n badgeSpan.className = 'cd-tab-badge';\n badgeSpan.textContent = '0';\n\n tabBtn.appendChild(labelSpan);\n tabBtn.appendChild(badgeSpan);\n\n tabBtn.addEventListener('click', () => {\n this.selectTab(id);\n });\n\n this.tabElements.set(id, tabBtn);\n this.tabBadgeElements.set(id, badgeSpan);\n tabsBar.appendChild(tabBtn);\n }\n\n this.element.appendChild(tabsBar);\n\n // 3. Toolbar (Search & Level Filters)\n const toolbar = document.createElement('div');\n toolbar.className = 'cd-toolbar';\n\n this.searchInput = document.createElement('input');\n this.searchInput.className = 'cd-search-input';\n this.searchInput.type = 'text';\n this.searchInput.placeholder = 'Filter logs, types, payloads...';\n this.searchInput.addEventListener('input', () => {\n this.store.setFilter({ search: this.searchInput.value });\n });\n\n const levelFilters = document.createElement('div');\n levelFilters.className = 'cd-level-filters';\n\n const levels: (CapDebugLevel | 'all')[] = ['all', 'error', 'warn', 'info', 'debug'];\n for (const lvl of levels) {\n const pill = document.createElement('button');\n pill.className = 'cd-level-pill';\n pill.setAttribute('data-level', lvl);\n pill.textContent = lvl === 'all' ? 'All' : lvl.toUpperCase();\n if (lvl === 'all') pill.classList.add('active');\n\n pill.addEventListener('click', () => {\n this.selectLevel(lvl);\n });\n\n this.levelPills.set(lvl, pill);\n levelFilters.appendChild(pill);\n }\n\n toolbar.appendChild(this.searchInput);\n toolbar.appendChild(levelFilters);\n this.element.appendChild(toolbar);\n\n // 4. Content Area\n this.contentContainer = document.createElement('div');\n this.contentContainer.className = 'cd-content';\n\n this.eventListContainer = document.createElement('div');\n this.eventListContainer.className = 'cd-event-list';\n\n this.deviceViewContainer = document.createElement('div');\n this.deviceViewContainer.className = 'cd-device-view';\n this.deviceViewContainer.style.display = 'none';\n\n this.contentContainer.appendChild(this.eventListContainer);\n this.contentContainer.appendChild(this.deviceViewContainer);\n this.element.appendChild(this.contentContainer);\n\n // 5. Detail Overlay\n this.buildDetailOverlay();\n }\n\n private selectTab(tab: CapDebugTab): void {\n for (const [id, el] of this.tabElements.entries()) {\n el.classList.toggle('active', id === tab);\n }\n\n this.store.setFilter({ tab });\n this.closeDetail();\n\n if (tab === 'device') {\n this.eventListContainer.style.display = 'none';\n this.deviceViewContainer.style.display = 'flex';\n this.loadDeviceDiagnostics();\n } else {\n this.eventListContainer.style.display = 'flex';\n this.deviceViewContainer.style.display = 'none';\n }\n }\n\n private selectLevel(level: CapDebugLevel | 'all'): void {\n for (const [lvl, pill] of this.levelPills.entries()) {\n pill.classList.toggle('active', lvl === level);\n }\n this.store.setFilter({ level });\n }\n\n private updatePauseState(isPaused: boolean): void {\n this.statusIndicator.classList.toggle('paused', isPaused);\n this.pauseBtn.classList.toggle('active', isPaused);\n this.pauseBtn.title = isPaused ? 'Resume capture' : 'Pause capture';\n }\n\n private bindStore(): void {\n this.store.subscribe((events, store) => {\n this.renderEventList(events);\n this.renderCounts(store.getCounts());\n this.updatePauseState(store.isPaused());\n });\n }\n\n private renderCounts(counts: Record<CapDebugTab, number>): void {\n this.titleCountSpan.textContent = `(${counts.all})`;\n\n for (const [tab, badge] of this.tabBadgeElements.entries()) {\n if (tab === 'device') {\n badge.style.display = 'none';\n } else {\n const count = counts[tab] || 0;\n badge.textContent = count > 999 ? '999+' : String(count);\n }\n }\n }\n\n private renderEventList(events: CapDebugEvent[]): void {\n if (this.store.getFilter().tab === 'device') {\n return;\n }\n\n this.eventListContainer.innerHTML = '';\n\n if (events.length === 0) {\n const empty = document.createElement('div');\n empty.className = 'cd-empty-state';\n empty.innerHTML = `\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/></svg>\n <span>No events match current filter</span>\n `;\n this.eventListContainer.appendChild(empty);\n return;\n }\n\n // Render newest items at the top\n for (let i = events.length - 1; i >= 0; i--) {\n const event = events[i];\n const row = this.createEventRow(event);\n this.eventListContainer.appendChild(row);\n }\n }\n\n private createEventRow(event: CapDebugEvent): HTMLElement {\n const row = document.createElement('div');\n row.className = 'cd-event-row';\n row.setAttribute('data-level', event.level || 'info');\n\n const dot = document.createElement('div');\n dot.className = 'cd-event-level-dot';\n\n const time = document.createElement('div');\n time.className = 'cd-event-time';\n time.textContent = this.formatTime(event.timestamp);\n\n const source = document.createElement('div');\n source.className = 'cd-event-source';\n source.textContent = event.source;\n\n const main = document.createElement('div');\n main.className = 'cd-event-main';\n\n const type = document.createElement('div');\n type.className = 'cd-event-type';\n type.textContent = event.type;\n\n main.appendChild(type);\n\n if (event.message) {\n const msg = document.createElement('div');\n msg.className = 'cd-event-msg';\n msg.textContent = event.message;\n main.appendChild(msg);\n }\n\n row.appendChild(dot);\n row.appendChild(time);\n row.appendChild(source);\n row.appendChild(main);\n\n if (event.duration !== undefined) {\n const duration = document.createElement('div');\n duration.className = 'cd-event-duration';\n duration.textContent = `${event.duration}ms`;\n row.appendChild(duration);\n }\n\n row.addEventListener('click', () => {\n this.showDetail(event);\n });\n\n return row;\n }\n\n private buildDetailOverlay(): void {\n this.detailOverlay = document.createElement('div');\n this.detailOverlay.className = 'cd-detail-overlay';\n\n const header = document.createElement('div');\n header.className = 'cd-detail-header';\n\n const backBtn = document.createElement('button');\n backBtn.className = 'cd-detail-back';\n backBtn.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"/><polyline points=\"12 19 5 12 12 5\"/></svg> Back`;\n backBtn.addEventListener('click', () => this.closeDetail());\n\n const copyAllBtn = document.createElement('button');\n copyAllBtn.className = 'cd-copy-btn-sm';\n copyAllBtn.textContent = 'Copy JSON';\n copyAllBtn.addEventListener('click', async () => {\n if (this.selectedEvent) {\n await JsonViewer.copyToClipboard(\n JSON.stringify(this.selectedEvent, null, 2),\n copyAllBtn\n );\n }\n });\n\n header.appendChild(backBtn);\n header.appendChild(copyAllBtn);\n this.detailOverlay.appendChild(header);\n\n const body = document.createElement('div');\n body.className = 'cd-detail-body';\n this.detailOverlay.appendChild(body);\n\n this.contentContainer.appendChild(this.detailOverlay);\n }\n\n private showDetail(event: CapDebugEvent): void {\n this.selectedEvent = event;\n const body = this.detailOverlay.querySelector('.cd-detail-body') as HTMLElement;\n body.innerHTML = '';\n\n // 1. Meta Grid\n const metaGrid = document.createElement('div');\n metaGrid.className = 'cd-meta-grid';\n\n const addMeta = (label: string, value: string | number | undefined) => {\n if (value === undefined) return;\n const item = document.createElement('div');\n item.className = 'cd-meta-item';\n item.innerHTML = `\n <span class=\"cd-meta-label\">${label}</span>\n <span class=\"cd-meta-val\">${value}</span>\n `;\n metaGrid.appendChild(item);\n };\n\n addMeta('Type', event.type);\n addMeta('Source', event.source);\n addMeta('Level', event.level);\n addMeta('Time', `${this.formatTime(event.timestamp)} (${new Date(event.timestamp).toLocaleTimeString()})`);\n addMeta('ID', event.id);\n if (event.duration !== undefined) addMeta('Duration', `${event.duration}ms`);\n if (event.platform) addMeta('Platform', event.platform);\n\n body.appendChild(metaGrid);\n\n // 2. Message\n if (event.message) {\n const msgSection = document.createElement('div');\n msgSection.innerHTML = `<div class=\"cd-section-title\">Message</div>`;\n const msgBlock = document.createElement('div');\n msgBlock.className = 'cd-msg-block';\n msgBlock.textContent = event.message;\n msgSection.appendChild(msgBlock);\n body.appendChild(msgSection);\n }\n\n // 3. Data Payload / JSON Viewer\n if (event.data !== undefined) {\n const dataSection = document.createElement('div');\n dataSection.innerHTML = `<div class=\"cd-section-title\">Data Payload</div>`;\n const jsonTree = JsonViewer.render(event.data, 3);\n dataSection.appendChild(jsonTree);\n body.appendChild(dataSection);\n }\n\n this.detailOverlay.classList.add('open');\n }\n\n private closeDetail(): void {\n this.selectedEvent = null;\n this.detailOverlay.classList.remove('open');\n }\n\n private async loadDeviceDiagnostics(): Promise<void> {\n if (this.isDeviceLoading) return;\n this.isDeviceLoading = true;\n\n this.deviceViewContainer.innerHTML = `\n <div class=\"cd-empty-state\">\n <span>Querying native device diagnostics...</span>\n </div>\n `;\n\n try {\n const [device, memory, webView, app, network] = await Promise.allSettled([\n CapDebugNative.getDeviceInfo(),\n CapDebugNative.getMemoryInfo(),\n CapDebugNative.getWebViewInfo(),\n CapDebugNative.getAppInfo(),\n CapDebugNative.getNetworkInfo(),\n ]);\n\n this.deviceData = {\n device: device.status === 'fulfilled' ? device.value : { error: String((device as any).reason) },\n memory: memory.status === 'fulfilled' ? memory.value : { error: String((memory as any).reason) },\n webView: webView.status === 'fulfilled' ? webView.value : { error: String((webView as any).reason) },\n app: app.status === 'fulfilled' ? app.value : { error: String((app as any).reason) },\n network: network.status === 'fulfilled' ? network.value : { error: String((network as any).reason) },\n };\n\n // Emit native diagnostics event into the store as well\n this.store.add({\n source: 'native',\n type: 'device.diagnostics',\n level: 'info',\n message: 'Device diagnostics loaded',\n data: this.deviceData,\n });\n\n this.renderDeviceView();\n } catch (err: any) {\n this.deviceViewContainer.innerHTML = `\n <div class=\"cd-empty-state\">\n <span style=\"color: var(--cd-color-error)\">Failed to load diagnostics: ${err?.message || String(err)}</span>\n </div>\n `;\n } finally {\n this.isDeviceLoading = false;\n }\n }\n\n private renderDeviceView(): void {\n if (!this.deviceData) return;\n this.deviceViewContainer.innerHTML = '';\n\n // Refresh action bar\n const topBar = document.createElement('div');\n topBar.style.display = 'flex';\n topBar.style.justifyContent = 'space-between';\n topBar.style.alignItems = 'center';\n\n const infoLabel = document.createElement('span');\n infoLabel.style.fontSize = '11px';\n infoLabel.style.color = 'var(--cd-text-muted)';\n infoLabel.textContent = `Diagnostic snapshot: ${new Date().toLocaleTimeString()}`;\n\n const refreshBtn = document.createElement('button');\n refreshBtn.className = 'cd-copy-btn-sm';\n refreshBtn.textContent = '↻ Refresh Live Data';\n refreshBtn.addEventListener('click', () => this.loadDeviceDiagnostics());\n\n topBar.appendChild(infoLabel);\n topBar.appendChild(refreshBtn);\n this.deviceViewContainer.appendChild(topBar);\n\n const sections = [\n { title: 'Device Information', data: this.deviceData.device },\n { title: 'Memory & Heap', data: this.deviceData.memory },\n { title: 'Application Info', data: this.deviceData.app },\n { title: 'WebView & User Agent', data: this.deviceData.webView },\n { title: 'Network State', data: this.deviceData.network },\n ];\n\n for (const { title, data } of sections) {\n const card = document.createElement('div');\n card.className = 'cd-device-card';\n\n const cardHeader = document.createElement('div');\n cardHeader.className = 'cd-device-card-header';\n cardHeader.textContent = title;\n card.appendChild(cardHeader);\n\n if (typeof data === 'object' && data !== null) {\n const grid = document.createElement('div');\n grid.className = 'cd-device-grid';\n\n for (const [k, v] of Object.entries(data as Record<string, unknown>)) {\n if (typeof v === 'object' && v !== null) continue;\n const item = document.createElement('div');\n item.className = 'cd-meta-item';\n item.innerHTML = `\n <span class=\"cd-meta-label\">${k}</span>\n <span class=\"cd-meta-val\">${v !== undefined && v !== null ? String(v) : '—'}</span>\n `;\n grid.appendChild(item);\n }\n\n card.appendChild(grid);\n\n // Render nested objects if present\n for (const [k, v] of Object.entries(data as Record<string, unknown>)) {\n if (typeof v === 'object' && v !== null) {\n const nestedSection = document.createElement('div');\n nestedSection.innerHTML = `<div style=\"font-size: 10px; color: var(--cd-text-muted); font-weight: 600; margin-top: 6px;\">${k.toUpperCase()}</div>`;\n nestedSection.appendChild(JsonViewer.render(v, 2));\n card.appendChild(nestedSection);\n }\n }\n } else {\n card.textContent = String(data);\n }\n\n this.deviceViewContainer.appendChild(card);\n }\n }\n\n private formatTime(timestamp: number): string {\n const d = new Date(timestamp);\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n const s = String(d.getSeconds()).padStart(2, '0');\n const ms = String(d.getMilliseconds()).padStart(3, '0');\n return `${h}:${m}:${s}.${ms}`;\n }\n}\n","import type { CapDebugOptions } from '../types';\nimport type { CapDebugStore } from '../store';\nimport { VIEWER_STYLES } from './styles';\nimport { FloatingButton } from './floating-button';\nimport { DebugPanel } from './panel';\n\nexport class CapDebugViewerElement extends HTMLElement {\n public static readonly TAG = 'cap-debug-viewer';\n\n private shadowRootNode!: ShadowRoot;\n private floatingButton: FloatingButton | null = null;\n private debugPanel: DebugPanel | null = null;\n private store: CapDebugStore | null = null;\n private unsubscribeStore: (() => void) | null = null;\n\n constructor() {\n super();\n this.shadowRootNode = this.attachShadow({ mode: 'open' });\n }\n\n public getStore(): CapDebugStore | null {\n return this.store;\n }\n\n public init(store: CapDebugStore, options: CapDebugOptions = {}): void {\n this.store = store;\n\n // Inject isolated styles\n const styleEl = document.createElement('style');\n styleEl.textContent = VIEWER_STYLES;\n this.shadowRootNode.appendChild(styleEl);\n\n // Create Panel\n this.debugPanel = new DebugPanel(store, {\n defaultTab: options.defaultTab || 'all',\n onClose: () => {\n // Can handle panel close events if needed\n },\n });\n\n this.shadowRootNode.appendChild(this.debugPanel.getBackdrop());\n this.shadowRootNode.appendChild(this.debugPanel.getElement());\n\n // Create Floating Button (if enabled)\n if (options.button !== false) {\n this.floatingButton = new FloatingButton({\n position: options.position,\n persistPosition: options.persistPosition !== false,\n onClick: () => {\n this.toggle();\n },\n });\n\n this.shadowRootNode.appendChild(this.floatingButton.getElement());\n }\n\n // Subscribe to error counts for the button badge\n this.unsubscribeStore = store.subscribe((_events, s) => {\n const counts = s.getCounts();\n if (this.floatingButton) {\n this.floatingButton.setErrorCount(counts.errors);\n }\n });\n }\n\n public show(): void {\n if (this.debugPanel) {\n this.debugPanel.open();\n }\n }\n\n public hide(): void {\n if (this.debugPanel) {\n this.debugPanel.close();\n }\n }\n\n public toggle(): boolean {\n if (this.debugPanel) {\n return this.debugPanel.toggle();\n }\n return false;\n }\n\n public showButton(): void {\n if (this.floatingButton) {\n this.floatingButton.show();\n }\n }\n\n public hideButton(): void {\n if (this.floatingButton) {\n this.floatingButton.hide();\n }\n }\n\n public disconnectedCallback(): void {\n if (this.unsubscribeStore) {\n this.unsubscribeStore();\n this.unsubscribeStore = null;\n }\n }\n}\n\nexport function registerCustomElement(): void {\n if (typeof customElements !== 'undefined' && !customElements.get(CapDebugViewerElement.TAG)) {\n customElements.define(CapDebugViewerElement.TAG, CapDebugViewerElement);\n }\n}\n","import type { PairingSessionInfo, SignalingMessage } from './types';\n\nexport interface SignalingTransport {\n createSession(ttlSeconds?: number): Promise<PairingSessionInfo>;\n joinSession(sessionId: string, secret: string): Promise<void>;\n send(message: SignalingMessage): Promise<void>;\n onMessage(callback: (message: SignalingMessage) => void): () => void;\n close(): void;\n}\n\nexport class HttpSseSignalingClient implements SignalingTransport {\n private baseUrl: string;\n private sessionId = '';\n private secret = '';\n private role: 'host' | 'peer' = 'peer';\n private eventSource: EventSource | null = null;\n private listeners: Set<(message: SignalingMessage) => void> = new Set();\n private isClosed = false;\n private pollTimer: any = null;\n\n constructor(baseUrl: string) {\n this.baseUrl = baseUrl.replace(/\\/+$/, '');\n }\n\n public async createSession(ttlSeconds = 300): Promise<PairingSessionInfo> {\n this.role = 'host';\n const res = await fetch(`${this.baseUrl}/api/pair/create`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ ttl: ttlSeconds }),\n });\n\n if (!res.ok) {\n throw new Error(`Failed to create pairing session: ${res.statusText}`);\n }\n\n const data = await res.json();\n this.sessionId = data.sessionId;\n this.secret = data.secret;\n\n this.connectEventStream();\n return data;\n }\n\n public async joinSession(sessionId: string, secret: string): Promise<void> {\n this.role = 'peer';\n this.sessionId = sessionId;\n this.secret = secret;\n\n const res = await fetch(`${this.baseUrl}/api/pair/join`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ sessionId, secret }),\n });\n\n if (!res.ok) {\n const err = await res.text().catch(() => '');\n throw new Error(`Failed to join pairing session: ${err || res.statusText}`);\n }\n\n this.connectEventStream();\n }\n\n public async send(message: SignalingMessage): Promise<void> {\n if (this.isClosed) return;\n\n message.sessionId = this.sessionId;\n message.secret = this.secret;\n message.sender = this.role;\n message.timestamp = Date.now();\n\n await fetch(`${this.baseUrl}/api/pair/signal`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(message),\n });\n }\n\n public onMessage(callback: (message: SignalingMessage) => void): () => void {\n this.listeners.add(callback);\n return () => {\n this.listeners.delete(callback);\n };\n }\n\n public close(): void {\n this.isClosed = true;\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n this.pollTimer = null;\n }\n this.listeners.clear();\n }\n\n private connectEventStream(): void {\n if (typeof EventSource !== 'undefined') {\n const sseUrl = `${this.baseUrl}/api/pair/events?session=${encodeURIComponent(this.sessionId)}&secret=${encodeURIComponent(this.secret)}&role=${this.role}`;\n this.eventSource = new EventSource(sseUrl);\n\n this.eventSource.onmessage = (event) => {\n if (!event.data) return;\n try {\n const msg = JSON.parse(event.data) as SignalingMessage;\n this.dispatchMessage(msg);\n } catch {\n // ignore malformed JSON\n }\n };\n\n this.eventSource.onerror = () => {\n // EventSource will auto-reconnect or fallback to polling\n };\n } else {\n // Fallback polling for environments without EventSource\n this.startPolling();\n }\n }\n\n private startPolling(): void {\n if (this.pollTimer) return;\n this.pollTimer = setInterval(async () => {\n if (this.isClosed || !this.sessionId) return;\n try {\n const res = await fetch(\n `${this.baseUrl}/api/pair/poll?session=${encodeURIComponent(this.sessionId)}&secret=${encodeURIComponent(this.secret)}&role=${this.role}`\n );\n if (res.ok) {\n const messages = (await res.json()) as SignalingMessage[];\n if (Array.isArray(messages)) {\n for (const msg of messages) {\n this.dispatchMessage(msg);\n }\n }\n }\n } catch {\n // ignore network hiccups\n }\n }, 1000);\n }\n\n private dispatchMessage(message: SignalingMessage): void {\n for (const listener of this.listeners) {\n try {\n listener(message);\n } catch (err) {\n console.error('[CapDebug Signaling] Listener error:', err);\n }\n }\n }\n}\n","import type { CapDebugEvent } from '../types';\nimport type { ControlCommand, RemoteMessage } from './types';\n\nexport const PROTOCOL_VERSION = 1;\n\nexport class RemoteProtocol {\n public static createHello(capdebugVersion = '0.2.0', platform = 'web', deviceName?: string): RemoteMessage {\n return {\n v: 1,\n type: 'hello',\n payload: {\n capdebugVersion,\n platform,\n deviceName: deviceName || (typeof navigator !== 'undefined' ? navigator.userAgent : 'Unknown Device'),\n },\n timestamp: Date.now(),\n };\n }\n\n public static createHelloAck(): RemoteMessage {\n return {\n v: 1,\n type: 'hello-ack',\n payload: {\n serverTime: Date.now(),\n },\n timestamp: Date.now(),\n };\n }\n\n public static createEvent(event: CapDebugEvent): RemoteMessage {\n return {\n v: 1,\n type: 'event',\n event,\n timestamp: Date.now(),\n };\n }\n\n public static createBatch(events: CapDebugEvent[]): RemoteMessage {\n return {\n v: 1,\n type: 'events-batch',\n events,\n timestamp: Date.now(),\n };\n }\n\n public static createControl(command: ControlCommand): RemoteMessage {\n return {\n v: 1,\n type: 'control',\n command,\n timestamp: Date.now(),\n };\n }\n\n public static createPing(timestamp: number = Date.now()): RemoteMessage {\n return {\n v: 1,\n type: 'ping',\n timestamp,\n };\n }\n\n public static createPong(pingTimestamp: number): RemoteMessage {\n return {\n v: 1,\n type: 'pong',\n payload: { pingTimestamp },\n timestamp: Date.now(),\n };\n }\n\n public static serialize(message: RemoteMessage): string {\n return JSON.stringify(message);\n }\n\n public static parse(raw: string): RemoteMessage | null {\n try {\n const parsed = JSON.parse(raw);\n if (!parsed || typeof parsed !== 'object') {\n return null;\n }\n if (parsed.v !== PROTOCOL_VERSION) {\n console.warn(`[CapDebug Remote] Unsupported protocol version: ${parsed.v}`);\n return null;\n }\n return parsed as RemoteMessage;\n } catch {\n return null;\n }\n }\n}\n","import type { CapDebugEvent } from '../types';\n\nexport class RemoteEventBuffer {\n private buffer: CapDebugEvent[] = [];\n private maxCapacity: number;\n private droppedCount = 0;\n\n constructor(maxCapacity = 100) {\n this.maxCapacity = Math.max(1, maxCapacity);\n }\n\n public push(event: CapDebugEvent): void {\n if (this.buffer.length >= this.maxCapacity) {\n this.buffer.shift(); // FIFO eviction\n }\n this.buffer.push(event);\n }\n\n public flush(): CapDebugEvent[] {\n const items = [...this.buffer];\n this.buffer = [];\n return items;\n }\n\n public clear(): void {\n this.buffer = [];\n this.droppedCount = 0;\n }\n\n public size(): number {\n return this.buffer.length;\n }\n\n public getDroppedCount(): number {\n return this.droppedCount;\n }\n\n public incrementDropped(): void {\n this.droppedCount++;\n }\n}\n","import type { CapDebugEvent } from '../types';\nimport type { CapDebugTransport } from './transport';\nimport type {\n ConnectionDiagnostics,\n ControlCommand,\n PairingConfig,\n SignalingMessage,\n TransportStatus,\n} from './types';\nimport { HttpSseSignalingClient, type SignalingTransport } from './signaling';\nimport { RemoteProtocol } from './protocol';\nimport { RemoteEventBuffer } from './buffer';\n\nexport class WebRTCTransport implements CapDebugTransport {\n public readonly id = 'webrtc';\n\n private pc: RTCPeerConnection | null = null;\n private signaling: SignalingTransport | null = null;\n private config: PairingConfig | null = null;\n\n private eventsChannel: RTCDataChannel | null = null;\n private controlChannel: RTCDataChannel | null = null;\n\n private status: TransportStatus = 'disconnected';\n private buffer = new RemoteEventBuffer(100);\n\n private eventListeners: Set<(event: CapDebugEvent) => void> = new Set();\n private controlListeners: Set<(command: ControlCommand) => void> = new Set();\n private statusListeners: Set<(status: TransportStatus) => void> = new Set();\n private diagnosticsListeners: Set<(diag: ConnectionDiagnostics) => void> = new Set();\n\n private pingTimer: any = null;\n private statsTimer: any = null;\n private rttMs = 0;\n\n private totalEventsSent = 0;\n private totalEventsReceived = 0;\n private connectedAt = 0;\n private remoteDeviceName = 'Unknown Device';\n private remotePlatform = 'unknown';\n\n private diagnostics: ConnectionDiagnostics = {\n transport: 'webrtc',\n status: 'disconnected',\n route: 'unknown',\n };\n\n public async connect(config: PairingConfig): Promise<void> {\n this.config = config;\n this.setStatus('connecting');\n\n const signalingUrl = config.signalingUrl || (typeof window !== 'undefined' ? window.location.origin : 'http://localhost:4783');\n this.signaling = new HttpSseSignalingClient(signalingUrl);\n\n this.signaling.onMessage((msg) => this.handleSignalingMessage(msg));\n\n if (config.isHost) {\n // Host mode: wait for peer to join\n this.setStatus('signaling');\n // Host already created session via CLI server or will receive peer-joined\n } else {\n // Mobile / Peer mode: join the pairing session\n this.setStatus('signaling');\n await this.signaling.joinSession(config.sessionId, config.secret);\n }\n }\n\n public send(event: CapDebugEvent): void {\n if (this.eventsChannel && this.eventsChannel.readyState === 'open') {\n // Check backpressure (if bufferedAmount > 256KB, drop debug logs to protect app)\n if (this.eventsChannel.bufferedAmount > 256 * 1024) {\n if (event.level === 'debug' || event.level === 'info') {\n this.buffer.incrementDropped();\n return;\n }\n }\n\n const msg = RemoteProtocol.createEvent(event);\n try {\n this.eventsChannel.send(RemoteProtocol.serialize(msg));\n this.totalEventsSent++;\n } catch (err) {\n console.error('[CapDebug Remote] Send error:', err);\n }\n } else {\n // Buffer event until connection opens\n this.buffer.push(event);\n }\n }\n\n public sendControl(command: ControlCommand): void {\n if (this.controlChannel && this.controlChannel.readyState === 'open') {\n const msg = RemoteProtocol.createControl(command);\n try {\n this.controlChannel.send(RemoteProtocol.serialize(msg));\n } catch (err) {\n console.error('[CapDebug Remote] Control send error:', err);\n }\n }\n }\n\n public disconnect(): void {\n this.stopTimers();\n\n if (this.controlChannel) {\n try {\n this.sendControl({ type: 'disconnect' });\n } catch {\n // ignore\n }\n }\n\n if (this.signaling) {\n this.signaling.close();\n this.signaling = null;\n }\n\n if (this.eventsChannel) {\n this.eventsChannel.close();\n this.eventsChannel = null;\n }\n\n if (this.controlChannel) {\n this.controlChannel.close();\n this.controlChannel = null;\n }\n\n if (this.pc) {\n this.pc.close();\n this.pc = null;\n }\n\n this.setStatus('disconnected');\n }\n\n public getStatus(): TransportStatus {\n return this.status;\n }\n\n public getDiagnostics(): ConnectionDiagnostics {\n return {\n ...this.diagnostics,\n status: this.status,\n rttMs: this.rttMs,\n bufferedAmountBytes: this.eventsChannel?.bufferedAmount || 0,\n droppedEventsCount: this.buffer.getDroppedCount(),\n totalEventsSent: this.totalEventsSent,\n totalEventsReceived: this.totalEventsReceived,\n connectedAt: this.connectedAt,\n deviceName: this.remoteDeviceName,\n platform: this.remotePlatform,\n };\n }\n\n public onEvent(callback: (event: CapDebugEvent) => void): () => void {\n this.eventListeners.add(callback);\n return () => this.eventListeners.delete(callback);\n }\n\n public onControl(callback: (command: ControlCommand) => void): () => void {\n this.controlListeners.add(callback);\n return () => this.controlListeners.delete(callback);\n }\n\n public onStatusChange(callback: (status: TransportStatus) => void): () => void {\n this.statusListeners.add(callback);\n callback(this.status);\n return () => this.statusListeners.delete(callback);\n }\n\n public onDiagnostics(callback: (diag: ConnectionDiagnostics) => void): () => void {\n this.diagnosticsListeners.add(callback);\n return () => this.diagnosticsListeners.delete(callback);\n }\n\n private async handleSignalingMessage(msg: SignalingMessage): Promise<void> {\n switch (msg.type) {\n case 'peer-joined':\n if (this.config?.isHost) {\n // Peer has joined! Now start WebRTC handshake by creating offer\n await this.startHandshakeAsInitiator();\n }\n break;\n\n case 'offer':\n if (!this.config?.isHost) {\n // Mobile peer receives offer\n await this.handleOffer(msg.payload);\n }\n break;\n\n case 'answer':\n if (this.config?.isHost && this.pc) {\n // Host receives answer\n await this.pc.setRemoteDescription(new RTCSessionDescription(msg.payload));\n }\n break;\n\n case 'ice-candidate':\n if (this.pc && msg.payload) {\n try {\n await this.pc.addIceCandidate(new RTCIceCandidate(msg.payload));\n } catch (err) {\n console.warn('[CapDebug Remote] ICE Candidate error:', err);\n }\n }\n break;\n\n case 'disconnect':\n this.disconnect();\n break;\n }\n }\n\n private initPeerConnection(): RTCPeerConnection {\n const iceServers = this.config?.iceServers || [\n { urls: 'stun:stun.l.google.com:19302' },\n { urls: 'stun:global.stun.twilio.com:3478' },\n ];\n\n const pc = new RTCPeerConnection({ iceServers });\n\n pc.onicecandidate = (event) => {\n if (event.candidate && this.signaling) {\n this.signaling.send({\n sessionId: this.config!.sessionId,\n secret: this.config!.secret,\n type: 'ice-candidate',\n sender: this.config!.isHost ? 'host' : 'peer',\n payload: event.candidate.toJSON(),\n });\n }\n };\n\n pc.onconnectionstatechange = () => {\n this.updateDiagnostics();\n if (pc.connectionState === 'failed') {\n this.setStatus('failed');\n } else if (pc.connectionState === 'closed' || pc.connectionState === 'disconnected') {\n this.setStatus('disconnected');\n }\n };\n\n pc.oniceconnectionstatechange = () => {\n this.updateDiagnostics();\n };\n\n this.pc = pc;\n return pc;\n }\n\n private async startHandshakeAsInitiator(): Promise<void> {\n const pc = this.initPeerConnection();\n\n // Create DataChannels\n this.eventsChannel = pc.createDataChannel('events', { ordered: true });\n this.controlChannel = pc.createDataChannel('control', { ordered: true });\n\n this.setupDataChannel(this.eventsChannel, 'events');\n this.setupDataChannel(this.controlChannel, 'control');\n\n const offer = await pc.createOffer();\n await pc.setLocalDescription(offer);\n\n if (this.signaling) {\n await this.signaling.send({\n sessionId: this.config!.sessionId,\n secret: this.config!.secret,\n type: 'offer',\n sender: 'host',\n payload: offer,\n });\n }\n }\n\n private async handleOffer(offerSdp: RTCSessionDescriptionInit): Promise<void> {\n const pc = this.initPeerConnection();\n\n pc.ondatachannel = (event) => {\n const channel = event.channel;\n if (channel.label === 'events') {\n this.eventsChannel = channel;\n this.setupDataChannel(channel, 'events');\n } else if (channel.label === 'control') {\n this.controlChannel = channel;\n this.setupDataChannel(channel, 'control');\n }\n };\n\n await pc.setRemoteDescription(new RTCSessionDescription(offerSdp));\n const answer = await pc.createAnswer();\n await pc.setLocalDescription(answer);\n\n if (this.signaling) {\n await this.signaling.send({\n sessionId: this.config!.sessionId,\n secret: this.config!.secret,\n type: 'answer',\n sender: 'peer',\n payload: answer,\n });\n }\n }\n\n private setupDataChannel(channel: RTCDataChannel, label: 'events' | 'control'): void {\n channel.onopen = () => {\n if (this.eventsChannel?.readyState === 'open' && this.controlChannel?.readyState === 'open') {\n this.connectedAt = Date.now();\n this.setStatus('connected');\n this.startTimers();\n\n // Exchange Hello handshake\n if (!this.config?.isHost) {\n // Peer sends Hello\n const hello = RemoteProtocol.createHello('0.2.0', 'mobile');\n channel.send(RemoteProtocol.serialize(hello));\n\n // Flush buffered events\n const buffered = this.buffer.flush();\n if (buffered.length > 0 && this.eventsChannel?.readyState === 'open') {\n const batch = RemoteProtocol.createBatch(buffered);\n this.eventsChannel.send(RemoteProtocol.serialize(batch));\n this.totalEventsSent += buffered.length;\n }\n }\n }\n };\n\n channel.onclose = () => {\n this.setStatus('disconnected');\n };\n\n channel.onmessage = (e) => {\n const raw = e.data;\n if (typeof raw !== 'string') return;\n\n const message = RemoteProtocol.parse(raw);\n if (!message) return;\n\n if (label === 'events') {\n if (message.type === 'event' && message.event) {\n this.totalEventsReceived++;\n for (const listener of this.eventListeners) {\n listener(message.event);\n }\n } else if (message.type === 'events-batch' && Array.isArray(message.events)) {\n this.totalEventsReceived += message.events.length;\n for (const ev of message.events) {\n for (const listener of this.eventListeners) {\n listener(ev);\n }\n }\n }\n } else if (label === 'control') {\n this.handleControlMessage(message);\n }\n };\n }\n\n private handleControlMessage(message: any): void {\n if (message.type === 'control' && message.command) {\n for (const listener of this.controlListeners) {\n listener(message.command);\n }\n } else if (message.type === 'hello') {\n this.remoteDeviceName = message.payload?.deviceName || 'Mobile Device';\n this.remotePlatform = message.payload?.platform || 'mobile';\n if (this.controlChannel?.readyState === 'open') {\n this.controlChannel.send(RemoteProtocol.serialize(RemoteProtocol.createHelloAck()));\n }\n this.updateDiagnostics();\n } else if (message.type === 'hello-ack') {\n this.updateDiagnostics();\n } else if (message.type === 'ping') {\n if (this.controlChannel?.readyState === 'open') {\n const pong = RemoteProtocol.createPong(message.timestamp || Date.now());\n this.controlChannel.send(RemoteProtocol.serialize(pong));\n }\n } else if (message.type === 'pong') {\n const pingTime = message.payload?.pingTimestamp || message.timestamp;\n if (pingTime) {\n this.rttMs = Math.max(1, Date.now() - pingTime);\n this.updateDiagnostics();\n }\n }\n }\n\n private startTimers(): void {\n this.stopTimers();\n\n // Periodic Ping for RTT measurement\n this.pingTimer = setInterval(() => {\n if (this.controlChannel?.readyState === 'open') {\n this.controlChannel.send(RemoteProtocol.serialize(RemoteProtocol.createPing(Date.now())));\n }\n }, 2000);\n\n // Periodic Stats query for ICE / LAN Diagnostics\n this.statsTimer = setInterval(() => {\n this.queryWebRTCStats();\n }, 3000);\n }\n\n private stopTimers(): void {\n if (this.pingTimer) {\n clearInterval(this.pingTimer);\n this.pingTimer = null;\n }\n if (this.statsTimer) {\n clearInterval(this.statsTimer);\n this.statsTimer = null;\n }\n }\n\n private async queryWebRTCStats(): Promise<void> {\n if (!this.pc) return;\n try {\n const stats = await this.pc.getStats();\n let candidateType = 'unknown';\n let protocol = 'UDP';\n let route: 'direct / LAN' | 'STUN / WAN' | 'relay / TURN' | 'unknown' = 'unknown';\n\n stats.forEach((report) => {\n if (report.type === 'candidate-pair' && (report.selected || report.state === 'succeeded')) {\n const localCandidate = stats.get(report.localCandidateId);\n if (localCandidate) {\n candidateType = localCandidate.candidateType || 'host';\n protocol = localCandidate.protocol || 'UDP';\n if (candidateType === 'host') {\n route = 'direct / LAN';\n } else if (candidateType === 'srflx' || candidateType === 'prflx') {\n route = 'STUN / WAN';\n } else if (candidateType === 'relay') {\n route = 'relay / TURN';\n }\n }\n if (report.currentRoundTripTime) {\n this.rttMs = Math.round(report.currentRoundTripTime * 1000);\n }\n }\n });\n\n this.diagnostics = {\n ...this.diagnostics,\n candidateType,\n protocol,\n route,\n };\n this.updateDiagnostics();\n } catch {\n // ignore\n }\n }\n\n private setStatus(status: TransportStatus): void {\n this.status = status;\n this.updateDiagnostics();\n for (const listener of this.statusListeners) {\n listener(status);\n }\n }\n\n private updateDiagnostics(): void {\n if (this.pc) {\n this.diagnostics.connectionState = this.pc.connectionState;\n this.diagnostics.iceConnectionState = this.pc.iceConnectionState;\n this.diagnostics.iceGatheringState = this.pc.iceGatheringState;\n this.diagnostics.signalingState = this.pc.signalingState;\n }\n const fullDiag = this.getDiagnostics();\n for (const listener of this.diagnosticsListeners) {\n listener(fullDiag);\n }\n }\n}\n","import type { PairingSession } from './types';\n\nexport interface ParsedPairingInfo {\n sessionId: string;\n secret: string;\n signalingUrl?: string;\n rawUrl: string;\n}\n\nexport class PairingHelper {\n /**\n * Creates a new pairing session with given TTL (default 5 minutes).\n */\n public static createSession(ttlMs: number = 5 * 60 * 1000): PairingSession {\n const now = Date.now();\n return {\n id: this.generateSessionId(),\n createdAt: now,\n expiresAt: now + ttlMs,\n status: 'waiting',\n };\n }\n\n /**\n * Generates a short, human-readable session ID (e.g. \"K7P4-M2\" or \"7HQ2-9X\").\n */\n public static generateSessionId(): string {\n const chars = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';\n const bytes = this.getRandomBytes(4);\n let id = '';\n for (let i = 0; i < 4; i++) {\n id += chars[bytes[i] % chars.length];\n }\n const suffix = this.getRandomBytes(2);\n id += '-' + chars[suffix[0] % chars.length] + chars[suffix[1] % chars.length];\n return id;\n }\n\n /**\n * Generates a cryptographically strong 128-bit random secret string.\n */\n public static generateSecret(): string {\n const bytes = this.getRandomBytes(16); // 128 bits entropy\n return Array.from(bytes)\n .map(b => b.toString(16).padStart(2, '0'))\n .join('');\n }\n\n /**\n * Formats a web pairing URL where the secret is stored strictly in the URL fragment (#SECRET).\n */\n public static formatPairingUrl(baseUrl: string, sessionId: string, secret: string): string {\n const cleanBase = baseUrl.replace(/\\/+$/, '');\n return `${cleanBase}/pair?s=${encodeURIComponent(sessionId)}#${secret}`;\n }\n\n /**\n * Formats a Capacitor mobile deep link URL.\n */\n public static formatDeepLinkUrl(sessionId: string, secret: string, signalingUrl?: string): string {\n let url = `capdebug://pair?session=${encodeURIComponent(sessionId)}&secret=${encodeURIComponent(secret)}`;\n if (signalingUrl) {\n url += `&server=${encodeURIComponent(signalingUrl)}`;\n }\n return url;\n }\n\n /**\n * Parses a web pairing URL or Capacitor deep-link URL into session and secret components.\n */\n public static parseUrl(urlStr: string): ParsedPairingInfo | null {\n if (!urlStr || typeof urlStr !== 'string') return null;\n\n try {\n // 1. Check for custom scheme (capdebug://pair?...)\n if (urlStr.startsWith('capdebug://')) {\n const queryIdx = urlStr.indexOf('?');\n if (queryIdx === -1) return null;\n const search = urlStr.substring(queryIdx + 1);\n const params = new URLSearchParams(search);\n const sessionId = params.get('session') || params.get('s');\n const secret = params.get('secret') || params.get('sec') || '';\n const signalingUrl = params.get('server') || params.get('sig') || undefined;\n\n if (sessionId && secret) {\n return { sessionId, secret, signalingUrl, rawUrl: urlStr };\n }\n return null;\n }\n\n // 2. Standard HTTP/HTTPS URL\n const url = new URL(urlStr);\n let sessionId = url.searchParams.get('s') || url.searchParams.get('session');\n\n // Check path segment if not in searchParams (e.g. /s/K7P4-M2)\n if (!sessionId && url.pathname.includes('/s/')) {\n const parts = url.pathname.split('/s/');\n if (parts[1]) {\n sessionId = decodeURIComponent(parts[1].split('/')[0]);\n }\n }\n\n // Extract secret from hash fragment (preferred) or query param fallback\n let secret = url.hash.replace(/^#/, '');\n if (!secret) {\n secret = url.searchParams.get('secret') || url.searchParams.get('sec') || '';\n }\n\n const signalingUrl = url.searchParams.get('server') || `${url.protocol}//${url.host}`;\n\n if (sessionId && secret) {\n return {\n sessionId: sessionId.trim(),\n secret: secret.trim(),\n signalingUrl,\n rawUrl: urlStr,\n };\n }\n\n return null;\n } catch {\n return null;\n }\n }\n\n private static getRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n if (typeof crypto !== 'undefined' && crypto.getRandomValues) {\n crypto.getRandomValues(bytes);\n } else {\n // Fallback for older environments\n for (let i = 0; i < length; i++) {\n bytes[i] = Math.floor(Math.random() * 256);\n }\n }\n return bytes;\n }\n}\n","import type { CapDebugStore } from '../store';\nimport type { ConnectionDiagnostics, PairingConfig, TransportStatus } from './types';\nimport { WebRTCTransport } from './webrtc-transport';\nimport { PairingHelper } from './pairing';\nimport { CapDebugNative } from '../definitions';\n\nexport class RemoteManager {\n private transport: WebRTCTransport;\n private store: CapDebugStore;\n private isListening = false;\n private eventListener: ((e: Event) => void) | null = null;\n\n constructor(store: CapDebugStore) {\n this.store = store;\n this.transport = new WebRTCTransport();\n this.setupControlHandler();\n }\n\n public get activeTransport(): WebRTCTransport {\n return this.transport;\n }\n\n public async connect(config: PairingConfig): Promise<void> {\n this.startEventListener();\n await this.transport.connect(config);\n }\n\n public disconnect(): void {\n this.transport.disconnect();\n this.stopEventListener();\n }\n\n public status(): TransportStatus {\n return this.transport.getStatus();\n }\n\n public getDiagnostics(): ConnectionDiagnostics {\n return this.transport.getDiagnostics();\n }\n\n public async handlePairingUrl(url: string): Promise<boolean> {\n const parsed = PairingHelper.parseUrl(url);\n if (!parsed) {\n console.warn('[CapDebug Remote] Invalid pairing URL:', url);\n return false;\n }\n\n try {\n await this.connect({\n sessionId: parsed.sessionId,\n secret: parsed.secret,\n signalingUrl: parsed.signalingUrl,\n isHost: false,\n });\n return true;\n } catch (err) {\n console.error('[CapDebug Remote] Failed to connect via pairing URL:', err);\n return false;\n }\n }\n\n private startEventListener(): void {\n if (this.isListening || typeof window === 'undefined') return;\n\n this.eventListener = (event: Event) => {\n const customEvent = event as CustomEvent;\n if (customEvent.detail) {\n this.transport.send(customEvent.detail);\n }\n };\n\n window.addEventListener('capdebug', this.eventListener);\n this.isListening = true;\n }\n\n private stopEventListener(): void {\n if (!this.isListening || typeof window === 'undefined') return;\n\n if (this.eventListener) {\n window.removeEventListener('capdebug', this.eventListener);\n this.eventListener = null;\n }\n this.isListening = false;\n }\n\n private setupControlHandler(): void {\n this.transport.onControl(async (cmd) => {\n switch (cmd.type) {\n case 'pause':\n this.store.pause();\n break;\n case 'resume':\n this.store.resume();\n break;\n case 'clear':\n this.store.clear();\n break;\n case 'snapshot.request':\n try {\n const [device, memory, webView, app, network] = await Promise.allSettled([\n CapDebugNative.getDeviceInfo(),\n CapDebugNative.getMemoryInfo(),\n CapDebugNative.getWebViewInfo(),\n CapDebugNative.getAppInfo(),\n CapDebugNative.getNetworkInfo(),\n ]);\n\n const snapshot = {\n device: device.status === 'fulfilled' ? device.value : null,\n memory: memory.status === 'fulfilled' ? memory.value : null,\n webView: webView.status === 'fulfilled' ? webView.value : null,\n app: app.status === 'fulfilled' ? app.value : null,\n network: network.status === 'fulfilled' ? network.value : null,\n };\n\n this.transport.send({\n id: 'diag_' + Date.now(),\n timestamp: Date.now(),\n source: 'native',\n type: 'device.snapshot',\n level: 'info',\n message: 'Live native diagnostics snapshot',\n data: snapshot,\n });\n } catch (err) {\n console.error('[CapDebug Remote] Failed snapshot:', err);\n }\n break;\n case 'disconnect':\n this.disconnect();\n break;\n }\n });\n }\n}\n","import { PairingHelper, type ParsedPairingInfo } from '../remote/pairing';\n\nexport class DeepLinkHandler {\n public static parse(url: string): ParsedPairingInfo | null {\n return PairingHelper.parseUrl(url);\n }\n}\n","import type {\n CapDebugEventInput,\n CapDebugOptions,\n NetworkCaptureOptions,\n} from './types';\nimport { CapDebugStore } from './store';\nimport { ConsoleCollector } from './collectors/console.collector';\nimport { ErrorCollector } from './collectors/error.collector';\nimport { NetworkCollector } from './collectors/network.collector';\nimport { CustomEventCollector } from './collectors/custom-event.collector';\nimport { BrowserEventCollector } from './collectors/browser-event.collector';\nimport { BridgeCollector } from './collectors/bridge.collector';\nimport { CapDebugViewerElement, registerCustomElement } from './ui/viewer.element';\nimport { CapDebugNative } from './definitions';\nimport { RemoteManager } from './remote/remote-manager';\n\nexport * from './types';\nexport * from './definitions';\nexport * from './sanitizer';\nexport * from './store';\nexport * from './collectors/collector';\nexport * from './collectors/console.collector';\nexport * from './collectors/error.collector';\nexport * from './collectors/network.collector';\nexport * from './collectors/custom-event.collector';\nexport * from './collectors/browser-event.collector';\nexport * from './collectors/bridge.collector';\nexport * from './ui/viewer.element';\nexport * from './ui/json-viewer';\nexport * from './remote/types';\nexport * from './remote/protocol';\nexport * from './remote/buffer';\nexport * from './remote/pairing';\nexport * from './remote/transport';\nexport * from './remote/webrtc-transport';\nexport * from './remote/signaling';\nexport * from './remote/remote-manager';\nexport * from './capacitor/deep-link';\n\nexport class CapDebugManager {\n private store: CapDebugStore;\n private viewerElement: CapDebugViewerElement | null = null;\n private isMounted = false;\n private remoteManager: RemoteManager;\n\n private customEventCollector: CustomEventCollector;\n private consoleCollector: ConsoleCollector;\n private errorCollector: ErrorCollector;\n private networkCollector: NetworkCollector;\n private browserEventCollector: BrowserEventCollector;\n private bridgeCollector: BridgeCollector;\n\n constructor() {\n this.store = new CapDebugStore();\n this.remoteManager = new RemoteManager(this.store);\n this.customEventCollector = new CustomEventCollector(this.store);\n this.consoleCollector = new ConsoleCollector();\n this.errorCollector = new ErrorCollector();\n this.networkCollector = new NetworkCollector();\n this.browserEventCollector = new BrowserEventCollector();\n this.bridgeCollector = new BridgeCollector();\n }\n\n public get remote(): RemoteManager {\n return this.remoteManager;\n }\n\n public async handlePairingUrl(url: string): Promise<boolean> {\n return this.remoteManager.handlePairingUrl(url);\n }\n\n public get native() {\n return CapDebugNative;\n }\n\n public get currentStore(): CapDebugStore {\n return this.store;\n }\n\n /**\n * Mounts the CapDebug UI into the DOM and activates collectors.\n */\n public mount(options: CapDebugOptions = {}): void {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n\n if (this.isMounted) {\n this.unmount();\n }\n\n // Configure store\n if (options.maxEvents) {\n this.store.setMaxEvents(options.maxEvents);\n }\n if (options.customMaskKeys) {\n this.store.setCustomMaskKeys(options.customMaskKeys);\n }\n\n // 1. Start core CustomEvent bus listener\n this.customEventCollector.start();\n\n // 2. Start optional collectors\n if (options.console !== false) {\n this.consoleCollector.start();\n }\n\n if (options.errors !== false) {\n this.errorCollector.start();\n }\n\n if (options.network) {\n const netOpts: NetworkCaptureOptions =\n typeof options.network === 'object' ? options.network : {};\n this.networkCollector.setOptions(netOpts);\n this.networkCollector.start();\n }\n\n if (options.bridge) {\n this.bridgeCollector.start();\n }\n\n this.browserEventCollector.start();\n\n // 3. Register and create Web Component\n registerCustomElement();\n\n this.viewerElement = document.createElement(CapDebugViewerElement.TAG) as CapDebugViewerElement;\n this.viewerElement.init(this.store, options);\n\n document.body.appendChild(this.viewerElement);\n this.isMounted = true;\n }\n\n /**\n * Unmounts CapDebug UI and stops all collectors.\n */\n public unmount(): void {\n if (!this.isMounted) return;\n\n if (this.viewerElement && this.viewerElement.parentNode) {\n this.viewerElement.parentNode.removeChild(this.viewerElement);\n this.viewerElement = null;\n }\n\n this.customEventCollector.stop();\n this.consoleCollector.stop();\n this.errorCollector.stop();\n this.networkCollector.stop();\n this.browserEventCollector.stop();\n this.bridgeCollector.stop();\n\n this.isMounted = false;\n }\n\n /**\n * Opens the debug viewer drawer.\n */\n public show(): void {\n if (this.viewerElement) {\n this.viewerElement.show();\n }\n }\n\n /**\n * Closes the debug viewer drawer.\n */\n public hide(): void {\n if (this.viewerElement) {\n this.viewerElement.hide();\n }\n }\n\n /**\n * Toggles the debug viewer drawer open/closed.\n */\n public toggle(): boolean {\n if (this.viewerElement) {\n return this.viewerElement.toggle();\n }\n return false;\n }\n\n /**\n * Dispatches a debug event through the CustomEvent bus.\n */\n public emit(event: CapDebugEventInput): void {\n if (typeof window === 'undefined') return;\n\n window.dispatchEvent(\n new CustomEvent('capdebug', {\n detail: {\n id: event.id,\n timestamp: event.timestamp || Date.now(),\n source: event.source || 'web',\n type: event.type,\n level: event.level || 'info',\n message: event.message,\n data: event.data,\n duration: event.duration,\n platform: event.platform,\n },\n })\n );\n }\n\n /**\n * Clears all recorded events from the store.\n */\n public clear(): void {\n this.store.clear();\n }\n\n /**\n * Pauses capturing new events.\n */\n public pause(): void {\n this.store.pause();\n }\n\n /**\n * Resumes capturing events.\n */\n public resume(): void {\n this.store.resume();\n }\n\n public captureConsole(): void {\n this.consoleCollector.start();\n }\n\n public releaseConsole(): void {\n this.consoleCollector.stop();\n }\n\n public captureErrors(): void {\n this.errorCollector.start();\n }\n\n public releaseErrors(): void {\n this.errorCollector.stop();\n }\n\n public captureFetch(options?: NetworkCaptureOptions): void {\n if (options) {\n this.networkCollector.setOptions(options);\n }\n this.networkCollector.start();\n }\n\n public releaseFetch(): void {\n this.networkCollector.stop();\n }\n\n public observeEvent(eventName: string): void {\n this.browserEventCollector.observe(eventName);\n }\n\n public unobserveEvent(eventName: string): void {\n this.browserEventCollector.unobserve(eventName);\n }\n}\n\nexport const CapDebug = new CapDebugManager();\nexport default CapDebug;\n","import { WebPlugin } from '@capacitor/core';\nimport type { CapDebugNativePlugin } from './definitions';\nimport type { DeviceInfo, MemoryInfo, WebViewInfo, AppInfo, NetworkInfo } from './types';\n\nfunction formatBytes(bytes: number): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n}\n\nexport class CapDebugWeb extends WebPlugin implements CapDebugNativePlugin {\n async getDeviceInfo(): Promise<DeviceInfo> {\n const nav = typeof navigator !== 'undefined' ? navigator : ({} as any);\n return {\n manufacturer: 'Web Browser',\n model: nav.userAgentData?.brands?.[0]?.brand || nav.appName || 'Browser',\n device: (nav as any).platform || 'Web',\n systemVersion: nav.appVersion || 'Unknown',\n architecture: (nav as any).userAgentData?.architecture || 'Unknown',\n availableProcessors: nav.hardwareConcurrency || 1,\n isEmulator: false,\n platform: 'web',\n };\n }\n\n async getMemoryInfo(): Promise<MemoryInfo> {\n const perf = typeof window !== 'undefined' ? (window.performance as any) : null;\n const memory = perf && perf.memory ? perf.memory : null;\n\n if (memory) {\n return {\n appMemoryUsage: memory.usedJSHeapSize,\n appMemoryUsageFormatted: formatBytes(memory.usedJSHeapSize),\n totalHeap: memory.totalJSHeapSize,\n totalHeapFormatted: formatBytes(memory.totalJSHeapSize),\n maxHeap: memory.jsHeapSizeLimit,\n maxHeapFormatted: formatBytes(memory.jsHeapSizeLimit),\n freeHeap: memory.totalJSHeapSize - memory.usedJSHeapSize,\n freeHeapFormatted: formatBytes(memory.totalJSHeapSize - memory.usedJSHeapSize),\n lowMemory: false,\n };\n }\n\n return {\n appMemoryUsageFormatted: 'N/A (Browser non-Chrome)',\n lowMemory: false,\n };\n }\n\n async getWebViewInfo(): Promise<WebViewInfo> {\n const nav = typeof navigator !== 'undefined' ? navigator : ({} as any);\n return {\n userAgent: nav.userAgent || 'Unknown',\n version: nav.appVersion || 'Unknown',\n packageName: typeof window !== 'undefined' ? window.location.hostname : 'localhost',\n debugEnabled: true,\n };\n }\n\n async getAppInfo(): Promise<AppInfo> {\n return {\n applicationId: typeof window !== 'undefined' ? window.location.host : 'localhost',\n version: '1.0.0',\n versionName: '1.0.0 (Web)',\n versionCode: 1,\n buildType: typeof process !== 'undefined' && process.env?.NODE_ENV ? process.env.NODE_ENV : 'development',\n };\n }\n\n async getNetworkInfo(): Promise<NetworkInfo> {\n const nav = typeof navigator !== 'undefined' ? navigator : ({} as any);\n const conn = (nav as any).connection || (nav as any).mozConnection || (nav as any).webkitConnection;\n\n return {\n connected: nav.onLine ?? true,\n connectionType: conn ? conn.effectiveType || conn.type || 'unknown' : (nav.onLine ? 'online' : 'offline'),\n metered: conn ? conn.saveData ?? false : false,\n };\n }\n}\n"],"names":["registerPlugin","sessionId","secret","signalingUrl","WebPlugin"],"mappings":"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;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA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"}