chrome-ai-bridge 1.0.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 (443) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +252 -0
  3. package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +60 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +4 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
  314. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
  315. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  316. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  317. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  318. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  319. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  320. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  321. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  322. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  323. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  324. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  325. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  326. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  327. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  328. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  329. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  330. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  331. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  332. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  333. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  334. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  335. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  336. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  337. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  338. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  339. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  340. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  341. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  342. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  343. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  344. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  345. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  346. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  347. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  348. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  349. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  350. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
  351. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  352. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
  353. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  354. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  355. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
  356. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  357. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
  358. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
  359. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  360. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  361. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  362. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  363. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
  364. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
  365. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  366. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  367. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  368. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  369. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  370. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  371. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  372. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  373. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  374. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  375. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  376. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  377. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
  378. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  379. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  380. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  381. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  382. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  383. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  384. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  385. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  386. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  387. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  388. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  389. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
  390. package/build/src/McpContext.js +400 -0
  391. package/build/src/McpResponse.js +237 -0
  392. package/build/src/Mutex.js +40 -0
  393. package/build/src/PageCollector.js +68 -0
  394. package/build/src/WaitForHelper.js +134 -0
  395. package/build/src/browser-connection-manager.js +373 -0
  396. package/build/src/browser.js +719 -0
  397. package/build/src/cli.js +120 -0
  398. package/build/src/client-detector.js +93 -0
  399. package/build/src/config.js +38 -0
  400. package/build/src/formatters/consoleFormatter.js +73 -0
  401. package/build/src/formatters/extensionsPageFormatter.js +184 -0
  402. package/build/src/formatters/networkFormatter.js +34 -0
  403. package/build/src/formatters/snapshotFormatter.js +80 -0
  404. package/build/src/graceful.js +125 -0
  405. package/build/src/index.js +13 -0
  406. package/build/src/logger.js +27 -0
  407. package/build/src/login-helper.js +431 -0
  408. package/build/src/main.js +268 -0
  409. package/build/src/plugin-api.js +189 -0
  410. package/build/src/profile-migration.js +82 -0
  411. package/build/src/profile-resolver.js +555 -0
  412. package/build/src/project-detector.js +71 -0
  413. package/build/src/project-root-state.js +18 -0
  414. package/build/src/roots-manager.js +253 -0
  415. package/build/src/selectors/chatgpt.json +61 -0
  416. package/build/src/selectors/gemini.json +24 -0
  417. package/build/src/selectors/loader.js +128 -0
  418. package/build/src/stable-identity.js +193 -0
  419. package/build/src/startup-check.js +147 -0
  420. package/build/src/system-profile.js +181 -0
  421. package/build/src/tools/ToolDefinition.js +9 -0
  422. package/build/src/tools/bookmarks.js +170 -0
  423. package/build/src/tools/categories.js +15 -0
  424. package/build/src/tools/chatgpt-web.js +507 -0
  425. package/build/src/tools/console.js +19 -0
  426. package/build/src/tools/core-tools.js +65 -0
  427. package/build/src/tools/diagnose-ui.js +328 -0
  428. package/build/src/tools/emulation.js +67 -0
  429. package/build/src/tools/extensions.js +185 -0
  430. package/build/src/tools/gemini-web.js +491 -0
  431. package/build/src/tools/iframe-popup-tools.js +204 -0
  432. package/build/src/tools/input.js +185 -0
  433. package/build/src/tools/network.js +68 -0
  434. package/build/src/tools/optional-tools.js +69 -0
  435. package/build/src/tools/pages.js +172 -0
  436. package/build/src/tools/performance.js +127 -0
  437. package/build/src/tools/screenshot.js +48 -0
  438. package/build/src/tools/script.js +39 -0
  439. package/build/src/tools/snapshot.js +45 -0
  440. package/build/src/trace-processing/parse.js +93 -0
  441. package/build/src/utils/pagination.js +49 -0
  442. package/package.json +90 -0
  443. package/scripts/cli.mjs +49 -0
@@ -0,0 +1,67 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as Common from '../../core/common/common.js';
5
+ export class StackTraceImpl extends Common.ObjectWrapper.ObjectWrapper {
6
+ syncFragment;
7
+ asyncFragments;
8
+ constructor(syncFragment, asyncFragments) {
9
+ super();
10
+ this.syncFragment = syncFragment;
11
+ this.asyncFragments = asyncFragments;
12
+ syncFragment.stackTraces.add(this);
13
+ this.asyncFragments.forEach(asyncFragment => asyncFragment.fragment.stackTraces.add(this));
14
+ }
15
+ }
16
+ export class FragmentImpl {
17
+ node;
18
+ stackTraces = new Set();
19
+ /**
20
+ * Fragments are deduplicated based on the node.
21
+ *
22
+ * In turn, each fragment can be part of multiple stack traces.
23
+ */
24
+ static getOrCreate(node) {
25
+ if (!node.fragment) {
26
+ node.fragment = new FragmentImpl(node);
27
+ }
28
+ return node.fragment;
29
+ }
30
+ constructor(node) {
31
+ this.node = node;
32
+ }
33
+ get frames() {
34
+ const frames = [];
35
+ for (const node of this.node.getCallStack()) {
36
+ frames.push(...node.frames);
37
+ }
38
+ return frames;
39
+ }
40
+ }
41
+ export class AsyncFragmentImpl {
42
+ description;
43
+ fragment;
44
+ constructor(description, fragment) {
45
+ this.description = description;
46
+ this.fragment = fragment;
47
+ }
48
+ get frames() {
49
+ return this.fragment.frames;
50
+ }
51
+ }
52
+ export class FrameImpl {
53
+ url;
54
+ uiSourceCode;
55
+ name;
56
+ line;
57
+ column;
58
+ missingDebugInfo;
59
+ constructor(url, uiSourceCode, name, line, column, missingDebugInfo) {
60
+ this.url = url;
61
+ this.uiSourceCode = uiSourceCode;
62
+ this.name = name;
63
+ this.line = line;
64
+ this.column = column;
65
+ this.missingDebugInfo = missingDebugInfo;
66
+ }
67
+ }
@@ -0,0 +1,97 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as SDK from '../../core/sdk/sdk.js';
5
+ // eslint-disable-next-line @devtools/es-modules-import
6
+ import * as StackTrace from './stack_trace.js';
7
+ import { AsyncFragmentImpl, FragmentImpl, FrameImpl, StackTraceImpl } from './StackTraceImpl.js';
8
+ import { Trie } from './Trie.js';
9
+ /**
10
+ * The {@link StackTraceModel} is a thin wrapper around a fragment trie.
11
+ *
12
+ * We want to store stack trace fragments per target so a SDKModel is the natural choice.
13
+ */
14
+ export class StackTraceModel extends SDK.SDKModel.SDKModel {
15
+ #trie = new Trie();
16
+ /** @returns the {@link StackTraceModel} for the target, or the model for the primaryPageTarget when passing null/undefined */
17
+ static #modelForTarget(target) {
18
+ const model = (target ?? SDK.TargetManager.TargetManager.instance().primaryPageTarget())?.model(StackTraceModel);
19
+ if (!model) {
20
+ throw new Error('Unable to find StackTraceModel');
21
+ }
22
+ return model;
23
+ }
24
+ async createFromProtocolRuntime(stackTrace, rawFramesToUIFrames) {
25
+ const translatePromises = [];
26
+ const fragment = this.#createFragment(stackTrace.callFrames);
27
+ translatePromises.push(this.#translateFragment(fragment, rawFramesToUIFrames));
28
+ const asyncFragments = [];
29
+ const debuggerModel = this.target().model(SDK.DebuggerModel.DebuggerModel);
30
+ if (debuggerModel) {
31
+ for await (const { stackTrace: asyncStackTrace, target } of debuggerModel.iterateAsyncParents(stackTrace)) {
32
+ const model = StackTraceModel.#modelForTarget(target);
33
+ const asyncFragment = model.#createFragment(asyncStackTrace.callFrames);
34
+ translatePromises.push(model.#translateFragment(asyncFragment, rawFramesToUIFrames));
35
+ asyncFragments.push(new AsyncFragmentImpl(asyncStackTrace.description ?? '', asyncFragment));
36
+ }
37
+ }
38
+ await Promise.all(translatePromises);
39
+ return new StackTraceImpl(fragment, asyncFragments);
40
+ }
41
+ /** Trigger re-translation of all fragments with the provide script in their call stack */
42
+ async scriptInfoChanged(script, translateRawFrames) {
43
+ const translatePromises = [];
44
+ let stackTracesToUpdate = new Set();
45
+ for (const fragment of this.#affectedFragments(script)) {
46
+ // We trigger re-translation only for fragments of leaf-nodes. Any fragment along the ancestor-chain
47
+ // is re-translated as a side-effect.
48
+ // We just need to remember the stack traces of the skipped over fragments, so we can send the
49
+ // UPDATED event also to them.
50
+ if (fragment.node.children.length === 0) {
51
+ translatePromises.push(this.#translateFragment(fragment, translateRawFrames));
52
+ }
53
+ stackTracesToUpdate = stackTracesToUpdate.union(fragment.stackTraces);
54
+ }
55
+ await Promise.all(translatePromises);
56
+ for (const stackTrace of stackTracesToUpdate) {
57
+ stackTrace.dispatchEventToListeners("UPDATED" /* StackTrace.StackTrace.Events.UPDATED */);
58
+ }
59
+ }
60
+ #createFragment(frames) {
61
+ return FragmentImpl.getOrCreate(this.#trie.insert(frames));
62
+ }
63
+ async #translateFragment(fragment, rawFramesToUIFrames) {
64
+ const rawFrames = fragment.node.getCallStack().map(node => node.rawFrame).toArray();
65
+ const uiFrames = await rawFramesToUIFrames(rawFrames, this.target());
66
+ console.assert(rawFrames.length === uiFrames.length, 'Broken rawFramesToUIFrames implementation');
67
+ let i = 0;
68
+ for (const node of fragment.node.getCallStack()) {
69
+ node.frames = uiFrames[i++].map(frame => new FrameImpl(frame.url, frame.uiSourceCode, frame.name, frame.line, frame.column, frame.missingDebugInfo));
70
+ }
71
+ }
72
+ #affectedFragments(script) {
73
+ // 1. Collect branches with the matching script.
74
+ const affectedBranches = new Set();
75
+ this.#trie.walk(null, node => {
76
+ // scriptId has precedence, but if the frame does not have one, check the URL.
77
+ if (node.rawFrame.scriptId === script.scriptId ||
78
+ (!node.rawFrame.scriptId && node.rawFrame.url === script.sourceURL)) {
79
+ affectedBranches.add(node);
80
+ return false;
81
+ }
82
+ return true;
83
+ });
84
+ // 2. For each branch collect all the fragments.
85
+ const fragments = new Set();
86
+ for (const branch of affectedBranches) {
87
+ this.#trie.walk(branch, node => {
88
+ if (node.fragment) {
89
+ fragments.add(node.fragment);
90
+ }
91
+ return true;
92
+ });
93
+ }
94
+ return fragments;
95
+ }
96
+ }
97
+ SDK.SDKModel.SDKModel.register(StackTraceModel, { capabilities: 0 /* SDK.Target.Capability.NONE */, autostart: false });
@@ -0,0 +1,121 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ /**
5
+ * @returns whether the frame is a V8 builtin frame e.g. Array.map. Builtin frames
6
+ * have neither source position nor script or URL. They only have a name.
7
+ */
8
+ export function isBuiltinFrame(rawFrame) {
9
+ return rawFrame.lineNumber === -1 && rawFrame.columnNumber === -1 && !Boolean(rawFrame.scriptId) &&
10
+ !Boolean(rawFrame.url);
11
+ }
12
+ export class FrameNode {
13
+ parent;
14
+ children = [];
15
+ rawFrame;
16
+ frames = [];
17
+ fragment;
18
+ constructor(rawFrame, parent) {
19
+ this.rawFrame = rawFrame;
20
+ this.parent = parent;
21
+ }
22
+ /**
23
+ * Produces the ancestor chain. Including `this` but excluding the `RootFrameNode`.
24
+ */
25
+ *getCallStack() {
26
+ // The `RootFrameNode` doesn't have an actual frame attached, that's why we check for `node.parent` instead of `node`.
27
+ for (let node = this; node.parent; node = node.parent) {
28
+ yield node;
29
+ }
30
+ }
31
+ }
32
+ /**
33
+ * Stores stack trace fragments in a trie, but does not own them/keep them alive.
34
+ */
35
+ export class Trie {
36
+ #root = { parent: null, children: [] };
37
+ /**
38
+ * Most sources produce stack traces in "top-to-bottom" order, so that is what this method expects.
39
+ *
40
+ * @returns The {@link FrameNode} corresponding to the top-most stack frame.
41
+ */
42
+ insert(frames) {
43
+ if (frames.length === 0) {
44
+ throw new Error('Trie.insert called with an empty frames array.');
45
+ }
46
+ let currentNode = this.#root;
47
+ for (let i = frames.length - 1; i >= 0; --i) {
48
+ currentNode = this.#insert(currentNode, frames[i]);
49
+ }
50
+ return currentNode;
51
+ }
52
+ /**
53
+ * Inserts `rawFrame` into the children of the provided node if not already there.
54
+ *
55
+ * @returns the child node corresponding to `rawFrame`.
56
+ */
57
+ #insert(node, rawFrame) {
58
+ let i = 0;
59
+ for (; i < node.children.length; ++i) {
60
+ const maybeChild = node.children[i];
61
+ const child = maybeChild instanceof WeakRef ? maybeChild.deref() : maybeChild;
62
+ if (!child) {
63
+ continue;
64
+ }
65
+ const compareResult = compareRawFrames(child.rawFrame, rawFrame);
66
+ if (compareResult === 0) {
67
+ return child;
68
+ }
69
+ if (compareResult > 0) {
70
+ break;
71
+ }
72
+ }
73
+ const newNode = new FrameNode(rawFrame, node);
74
+ if (node.parent) {
75
+ node.children.splice(i, 0, newNode);
76
+ }
77
+ else {
78
+ node.children.splice(i, 0, new WeakRef(newNode));
79
+ }
80
+ return newNode;
81
+ }
82
+ /**
83
+ * Traverses the trie in pre-order.
84
+ *
85
+ * @param node Start at `node` or `null` to start with the children of the root.
86
+ * @param visit Called on each node in the trie. Return `true` if the visitor should descend into child nodes of the provided node.
87
+ */
88
+ walk(node, visit) {
89
+ const stack = node ? [node] : [...this.#root.children].map(ref => ref.deref()).filter(node => Boolean(node));
90
+ for (let node = stack.pop(); node; node = stack.pop()) {
91
+ const visitChildren = visit(node);
92
+ if (visitChildren) {
93
+ // Pushing the children in reverse means the "left-most" child is visited first (i.e. pre-order).
94
+ for (let i = node.children.length - 1; i >= 0; --i) {
95
+ stack.push(node.children[i]);
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * @returns a number < 0, 0 or > 0, if the `a` is smaller then, equal or greater then `b`.
103
+ */
104
+ export function compareRawFrames(a, b) {
105
+ const scriptIdCompare = (a.scriptId ?? '').localeCompare(b.scriptId ?? '');
106
+ if (scriptIdCompare !== 0) {
107
+ return scriptIdCompare;
108
+ }
109
+ const urlCompare = (a.url ?? '').localeCompare(b.url ?? '');
110
+ if (urlCompare !== 0) {
111
+ return urlCompare;
112
+ }
113
+ const nameCompare = (a.functionName ?? '').localeCompare(b.functionName ?? '');
114
+ if (nameCompare !== 0) {
115
+ return nameCompare;
116
+ }
117
+ if (a.lineNumber !== b.lineNumber) {
118
+ return a.lineNumber - b.lineNumber;
119
+ }
120
+ return a.columnNumber - b.columnNumber;
121
+ }
@@ -0,0 +1,5 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as StackTrace from './StackTrace.js';
5
+ export { StackTrace, };
@@ -0,0 +1,7 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as StackTraceImpl from './StackTraceImpl.js';
5
+ import * as StackTraceModel from './StackTraceModel.js';
6
+ import * as Trie from './Trie.js';
7
+ export { StackTraceImpl, StackTraceModel, Trie, };
@@ -0,0 +1,32 @@
1
+ // Copyright 2022 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
5
+ export function createCssTokenizer() {
6
+ async function tokenize(line, callback) {
7
+ const streamParser = await CodeMirror.cssStreamParser();
8
+ const stream = new CodeMirror.StringStream(line, 4, 2);
9
+ const state = streamParser.startState(2);
10
+ let lastPos = stream.pos;
11
+ while (!stream.eol()) {
12
+ stream.start = lastPos;
13
+ let tokenType = streamParser.token(stream, state);
14
+ /**
15
+ * We expect unknown properties (like `unknownProp: unknownPropVal`) to still be
16
+ * formatted correctly. However, `tokenType` for such properties are marked
17
+ * as `error` from CodeMirror side and the internal state of the parser becomes `maybeprop`.
18
+ *
19
+ * So, we handle that specific keyword to be marked as `property` even though it is
20
+ * not a known property. We do this because for our formatting purposes it doesn't matter
21
+ * whether a property is a known CSS property or not.
22
+ */
23
+ if (tokenType === 'error' && state.state === 'maybeprop') {
24
+ tokenType = 'property';
25
+ }
26
+ const segment = stream.current();
27
+ callback(segment, tokenType);
28
+ lastPos = stream.pos;
29
+ }
30
+ }
31
+ return tokenize;
32
+ }
@@ -0,0 +1,173 @@
1
+ // Copyright 2023 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as Platform from '../../core/platform/platform.js';
5
+ import { contentAsDataURL } from './ContentProvider.js';
6
+ import { Text } from './Text.js';
7
+ /**
8
+ * This class is a small wrapper around either raw binary or text data.
9
+ * As the binary data can actually contain textual data, we also store the
10
+ * MIME type and if applicable, the charset.
11
+ *
12
+ * This information should be generally kept together, as interpreting text
13
+ * from raw bytes requires an encoding.
14
+ *
15
+ * Note that we only rarely have to decode text ourselves in the frontend,
16
+ * this is mostly handled by the backend. There are cases though (e.g. SVG,
17
+ * or streaming response content) where we receive text data in
18
+ * binary (base64-encoded) form.
19
+ *
20
+ * The class only implements decoding. We currently don't have a use-case
21
+ * to re-encode text into base64 bytes using a specified charset.
22
+ */
23
+ export class ContentData {
24
+ mimeType;
25
+ charset;
26
+ #contentAsBase64;
27
+ #contentAsText;
28
+ #contentAsTextObj;
29
+ constructor(data, isBase64, mimeType, charset) {
30
+ this.charset = charset || 'utf-8';
31
+ if (isBase64) {
32
+ this.#contentAsBase64 = data;
33
+ }
34
+ else {
35
+ this.#contentAsText = data;
36
+ }
37
+ this.mimeType = mimeType;
38
+ if (!this.mimeType) {
39
+ // Tests or broken requests might pass an empty/undefined mime type. Fallback to
40
+ // "default" mime types.
41
+ this.mimeType = isBase64 ? 'application/octet-stream' : 'text/plain';
42
+ }
43
+ }
44
+ /**
45
+ * Returns the data as base64.
46
+ *
47
+ * @throws if this `ContentData` was constructed from text content.
48
+ */
49
+ get base64() {
50
+ if (this.#contentAsBase64 === undefined) {
51
+ throw new Error('Encoding text content as base64 is not supported');
52
+ }
53
+ return this.#contentAsBase64;
54
+ }
55
+ /**
56
+ * Returns the content as text. If this `ContentData` was constructed with base64
57
+ * encoded bytes, it will use the provided charset to attempt to decode the bytes.
58
+ *
59
+ * @throws if `mimeType` is not a text type.
60
+ */
61
+ get text() {
62
+ if (this.#contentAsText !== undefined) {
63
+ return this.#contentAsText;
64
+ }
65
+ if (!this.isTextContent) {
66
+ throw new Error('Cannot interpret binary data as text');
67
+ }
68
+ const binaryString = window.atob(this.#contentAsBase64);
69
+ const len = binaryString.length;
70
+ const bytes = new Uint8Array(len);
71
+ for (let i = 0; i < len; i++) {
72
+ bytes[i] = binaryString.charCodeAt(i);
73
+ }
74
+ this.#contentAsText = new TextDecoder(this.charset).decode(bytes);
75
+ return this.#contentAsText;
76
+ }
77
+ /** @returns true, if this `ContentData` was constructed from text content or the mime type indicates text that can be decoded */
78
+ get isTextContent() {
79
+ return this.#createdFromText || Platform.MimeType.isTextType(this.mimeType);
80
+ }
81
+ get isEmpty() {
82
+ // Don't trigger unnecessary decoding. Only check if both of the strings are empty.
83
+ return !Boolean(this.#contentAsBase64) && !Boolean(this.#contentAsText);
84
+ }
85
+ get createdFromBase64() {
86
+ return this.#contentAsBase64 !== undefined;
87
+ }
88
+ get #createdFromText() {
89
+ return this.#contentAsBase64 === undefined;
90
+ }
91
+ /**
92
+ * Returns the text content as a `Text` object. The returned object is always the same to
93
+ * minimize the number of times we have to calculate the line endings array.
94
+ *
95
+ * @throws if `mimeType` is not a text type.
96
+ */
97
+ get textObj() {
98
+ if (this.#contentAsTextObj === undefined) {
99
+ this.#contentAsTextObj = new Text(this.text);
100
+ }
101
+ return this.#contentAsTextObj;
102
+ }
103
+ /**
104
+ * @returns True, iff the contents (base64 or text) are equal.
105
+ * Does not compare mime type and charset, but will decode base64 data if both
106
+ * mime types indicate that it's text content.
107
+ */
108
+ contentEqualTo(other) {
109
+ if (this.#contentAsBase64 !== undefined && other.#contentAsBase64 !== undefined) {
110
+ return this.#contentAsBase64 === other.#contentAsBase64;
111
+ }
112
+ if (this.#contentAsText !== undefined && other.#contentAsText !== undefined) {
113
+ return this.#contentAsText === other.#contentAsText;
114
+ }
115
+ if (this.isTextContent && other.isTextContent) {
116
+ return this.text === other.text;
117
+ }
118
+ return false;
119
+ }
120
+ asDataUrl() {
121
+ // To keep with existing behavior we prefer to return the content
122
+ // encoded if that is how this ContentData was constructed with.
123
+ if (this.#contentAsBase64 !== undefined) {
124
+ const charset = this.isTextContent ? this.charset : null;
125
+ return contentAsDataURL(this.#contentAsBase64, this.mimeType ?? '', true, charset);
126
+ }
127
+ return contentAsDataURL(this.text, this.mimeType ?? '', false, 'utf-8');
128
+ }
129
+ /**
130
+ * @deprecated Used during migration from `DeferredContent` to `ContentData`.
131
+ */
132
+ asDeferedContent() {
133
+ // To prevent encoding mistakes, we'll return text content already decoded.
134
+ if (this.isTextContent) {
135
+ return { content: this.text, isEncoded: false };
136
+ }
137
+ if (this.#contentAsText !== undefined) {
138
+ // Unknown text mime type, this should not really happen.
139
+ return { content: this.#contentAsText, isEncoded: false };
140
+ }
141
+ if (this.#contentAsBase64 !== undefined) {
142
+ return { content: this.#contentAsBase64, isEncoded: true };
143
+ }
144
+ throw new Error('Unreachable');
145
+ }
146
+ static isError(contentDataOrError) {
147
+ return 'error' in contentDataOrError;
148
+ }
149
+ /** @returns `value` if the passed `ContentDataOrError` is an error, or the text content otherwise */
150
+ static textOr(contentDataOrError, value) {
151
+ if (ContentData.isError(contentDataOrError)) {
152
+ return value;
153
+ }
154
+ return contentDataOrError.text;
155
+ }
156
+ /** @returns an empty 'text/plain' content data if the passed `ContentDataOrError` is an error, or the content data itself otherwise */
157
+ static contentDataOrEmpty(contentDataOrError) {
158
+ if (ContentData.isError(contentDataOrError)) {
159
+ return EMPTY_TEXT_CONTENT_DATA;
160
+ }
161
+ return contentDataOrError;
162
+ }
163
+ /**
164
+ * @deprecated Used during migration from `DeferredContent` to `ContentData`.
165
+ */
166
+ static asDeferredContent(contentDataOrError) {
167
+ if (ContentData.isError(contentDataOrError)) {
168
+ return { error: contentDataOrError.error, content: null, isEncoded: false };
169
+ }
170
+ return contentDataOrError.asDeferedContent();
171
+ }
172
+ }
173
+ export const EMPTY_TEXT_CONTENT_DATA = new ContentData('', /* isBase64 */ false, 'text/plain');
@@ -0,0 +1,30 @@
1
+ // Copyright 2012 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ export class SearchMatch {
5
+ lineNumber;
6
+ lineContent;
7
+ columnNumber;
8
+ matchLength;
9
+ constructor(lineNumber, lineContent, columnNumber, matchLength) {
10
+ this.lineNumber = lineNumber;
11
+ this.lineContent = lineContent;
12
+ this.columnNumber = columnNumber;
13
+ this.matchLength = matchLength;
14
+ }
15
+ static comparator(a, b) {
16
+ return a.lineNumber - b.lineNumber || a.columnNumber - b.columnNumber;
17
+ }
18
+ }
19
+ export const contentAsDataURL = function (content, mimeType, contentEncoded, charset, limitSize = true) {
20
+ const maxDataUrlSize = 1024 * 1024;
21
+ if (content === undefined || content === null || (limitSize && content.length > maxDataUrlSize)) {
22
+ return null;
23
+ }
24
+ content = contentEncoded ? content : encodeURIComponent(content);
25
+ return 'data:' + mimeType + (charset ? ';charset=' + charset : '') + (contentEncoded ? ';base64' : '') + ',' +
26
+ content;
27
+ };
28
+ export const isStreamingContentProvider = function (provider) {
29
+ return 'requestStreamingContent' in provider;
30
+ };
@@ -0,0 +1,32 @@
1
+ // Copyright 2014 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import { ContentData } from './ContentData.js';
5
+ import { performSearchInContentData } from './TextUtils.js';
6
+ export class StaticContentProvider {
7
+ #contentURL;
8
+ #contentType;
9
+ #lazyContent;
10
+ constructor(contentURL, contentType, lazyContent) {
11
+ this.#contentURL = contentURL;
12
+ this.#contentType = contentType;
13
+ this.#lazyContent = lazyContent;
14
+ }
15
+ static fromString(contentURL, contentType, content) {
16
+ const lazyContent = () => Promise.resolve(new ContentData(content, /* isBase64 */ false, contentType.canonicalMimeType()));
17
+ return new StaticContentProvider(contentURL, contentType, lazyContent);
18
+ }
19
+ contentURL() {
20
+ return this.#contentURL;
21
+ }
22
+ contentType() {
23
+ return this.#contentType;
24
+ }
25
+ requestContentData() {
26
+ return this.#lazyContent();
27
+ }
28
+ async searchInContent(query, caseSensitive, isRegex) {
29
+ const contentData = await this.requestContentData();
30
+ return performSearchInContentData(contentData, query, caseSensitive, isRegex);
31
+ }
32
+ }
@@ -0,0 +1,79 @@
1
+ // Copyright 2024 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as Common from '../../core/common/common.js';
5
+ import * as Platform from '../../core/platform/platform.js';
6
+ import { ContentData } from './ContentData.js';
7
+ /**
8
+ * Usage of this class is mostly intended for content that is never "complete".
9
+ * E.g. streaming XHR/fetch requests.
10
+ *
11
+ * Due to the streaming nature this class only supports base64-encoded binary data.
12
+ * Decoding to text only happens on-demand by clients. This ensures that at most we have
13
+ * incomplete unicode at the end and not in-between chunks.
14
+ */
15
+ export class StreamingContentData extends Common.ObjectWrapper.ObjectWrapper {
16
+ mimeType;
17
+ #charset;
18
+ #disallowStreaming;
19
+ #chunks = [];
20
+ #contentData;
21
+ constructor(mimeType, charset, initialContent) {
22
+ super();
23
+ this.mimeType = mimeType;
24
+ this.#charset = charset;
25
+ this.#disallowStreaming = Boolean(initialContent && !initialContent.createdFromBase64);
26
+ this.#contentData = initialContent;
27
+ }
28
+ /**
29
+ * Creates a new StreamingContentData with the given MIME type/charset.
30
+ */
31
+ static create(mimeType, charset) {
32
+ return new StreamingContentData(mimeType, charset);
33
+ }
34
+ /**
35
+ * Creates a new StringContentData from an existing ContentData instance.
36
+ *
37
+ * Calling `addChunk` is on the resulting `StreamingContentData` is illegal if
38
+ * `content` was not created from base64 data. The reason is that JavaScript TextEncoder
39
+ * only supports UTF-8. We can't convert text with arbitrary encoding back to base64 for concatenation.
40
+ */
41
+ static from(content) {
42
+ return new StreamingContentData(content.mimeType, content.charset, content);
43
+ }
44
+ /** @returns true, if this `ContentData` was constructed from text content or the mime type indicates text that can be decoded */
45
+ get isTextContent() {
46
+ if (this.#contentData) {
47
+ return this.#contentData.isTextContent;
48
+ }
49
+ return Platform.MimeType.isTextType(this.mimeType);
50
+ }
51
+ /** @param chunk base64 encoded data */
52
+ addChunk(chunk) {
53
+ if (this.#disallowStreaming) {
54
+ throw new Error('Cannot add base64 data to a text-only ContentData.');
55
+ }
56
+ this.#chunks.push(chunk);
57
+ this.dispatchEventToListeners("ChunkAdded" /* Events.CHUNK_ADDED */, { content: this, chunk });
58
+ }
59
+ /** @returns An immutable ContentData with all the bytes received so far */
60
+ content() {
61
+ if (this.#contentData && this.#chunks.length === 0) {
62
+ return this.#contentData;
63
+ }
64
+ const initialBase64 = this.#contentData?.base64 ?? '';
65
+ const base64Content = this.#chunks.reduce((acc, chunk) => Platform.StringUtilities.concatBase64(acc, chunk), initialBase64);
66
+ this.#contentData = new ContentData(base64Content, /* isBase64=*/ true, this.mimeType, this.#charset);
67
+ this.#chunks = [];
68
+ return this.#contentData;
69
+ }
70
+ }
71
+ export const isError = function (contentDataOrError) {
72
+ return 'error' in contentDataOrError;
73
+ };
74
+ export const asContentDataOrError = function (contentDataOrError) {
75
+ if (isError(contentDataOrError)) {
76
+ return contentDataOrError;
77
+ }
78
+ return contentDataOrError.content();
79
+ };