chrome-devtools-mcp 0.0.1 → 0.0.2

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 (354) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +196 -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 +2029 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +330 -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 +86 -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 +64 -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/Linkifier.js +34 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +20 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +459 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +137 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/QueryParamHandler.js +4 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +506 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +13 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +159 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +79 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1281 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +17 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Worker.js +44 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +44 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +415 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +161 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +510 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +66 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +59 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +232 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +953 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +12 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DOMUtilities.js +122 -0
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +536 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +800 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +31 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +13 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +1 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +5 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +846 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +220 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1279 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1518 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +902 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +315 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +572 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1316 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +361 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +232 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +242 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1610 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1231 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +346 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +125 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +73 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +83 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +1915 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1660 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +300 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +563 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +292 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +905 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +922 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +174 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +395 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +110 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +678 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +41 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +189 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +276 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +262 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +382 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +49 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1117 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +89 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +1513 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +339 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1558 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7473 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +260 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +1096 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +130 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +514 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +90 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +120 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +332 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +370 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +171 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +547 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +592 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +483 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +446 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +400 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +540 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +207 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +98 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +251 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +297 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +184 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +493 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +184 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +744 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +488 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +208 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +180 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +256 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +89 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +81 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +160 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +117 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +262 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +188 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +182 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +88 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +199 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +544 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +191 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +135 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +97 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +101 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +565 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +38 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +944 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  314. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  315. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  316. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  317. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +148 -0
  318. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  319. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  320. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  321. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  322. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  323. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  324. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  325. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  326. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  327. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  328. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  329. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +8 -0
  330. package/build/src/McpContext.js +204 -0
  331. package/build/src/McpResponse.js +178 -0
  332. package/build/src/Mutex.js +40 -0
  333. package/build/src/PageCollector.js +68 -0
  334. package/build/src/browser.js +105 -0
  335. package/build/src/formatters/consoleFormatter.js +71 -0
  336. package/build/src/formatters/networkFormatter.js +34 -0
  337. package/build/src/formatters/snapshotFormatter.js +75 -0
  338. package/build/src/index.js +206 -0
  339. package/build/src/logger.js +26 -0
  340. package/build/src/tools/ToolDefinition.js +8 -0
  341. package/build/src/tools/categories.js +14 -0
  342. package/build/src/tools/console.js +19 -0
  343. package/build/src/tools/emulation.js +61 -0
  344. package/build/src/tools/input.js +202 -0
  345. package/build/src/tools/network.js +35 -0
  346. package/build/src/tools/pages.js +181 -0
  347. package/build/src/tools/performance.js +116 -0
  348. package/build/src/tools/screenshot.js +65 -0
  349. package/build/src/tools/script.js +35 -0
  350. package/build/src/tools/snapshot.js +42 -0
  351. package/build/src/trace-processing/parse.js +73 -0
  352. package/build/src/waitForHelpers.js +109 -0
  353. package/package.json +53 -6
  354. package/README +0 -1
@@ -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
+ };
@@ -0,0 +1,69 @@
1
+ // Copyright 2016 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 { TextCursor } from './TextCursor.js';
6
+ import { SourceRange, TextRange } from './TextRange.js';
7
+ export class Text {
8
+ #value;
9
+ #lineEndings;
10
+ constructor(value) {
11
+ this.#value = value;
12
+ }
13
+ lineEndings() {
14
+ if (!this.#lineEndings) {
15
+ this.#lineEndings = Platform.StringUtilities.findLineEndingIndexes(this.#value);
16
+ }
17
+ return this.#lineEndings;
18
+ }
19
+ value() {
20
+ return this.#value;
21
+ }
22
+ lineCount() {
23
+ const lineEndings = this.lineEndings();
24
+ return lineEndings.length;
25
+ }
26
+ offsetFromPosition(lineNumber, columnNumber) {
27
+ return (lineNumber ? this.lineEndings()[lineNumber - 1] + 1 : 0) + columnNumber;
28
+ }
29
+ positionFromOffset(offset) {
30
+ const lineEndings = this.lineEndings();
31
+ const lineNumber = Platform.ArrayUtilities.lowerBound(lineEndings, offset, Platform.ArrayUtilities.DEFAULT_COMPARATOR);
32
+ return { lineNumber, columnNumber: offset - (lineNumber && (lineEndings[lineNumber - 1] + 1)) };
33
+ }
34
+ lineAt(lineNumber) {
35
+ const lineEndings = this.lineEndings();
36
+ const lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0;
37
+ const lineEnd = lineEndings[lineNumber];
38
+ let lineContent = this.#value.substring(lineStart, lineEnd);
39
+ if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === '\r') {
40
+ lineContent = lineContent.substring(0, lineContent.length - 1);
41
+ }
42
+ return lineContent;
43
+ }
44
+ toSourceRange(range) {
45
+ const start = this.offsetFromPosition(range.startLine, range.startColumn);
46
+ const end = this.offsetFromPosition(range.endLine, range.endColumn);
47
+ return new SourceRange(start, end - start);
48
+ }
49
+ toTextRange(sourceRange) {
50
+ const cursor = new TextCursor(this.lineEndings());
51
+ const result = TextRange.createFromLocation(0, 0);
52
+ cursor.resetTo(sourceRange.offset);
53
+ result.startLine = cursor.lineNumber();
54
+ result.startColumn = cursor.columnNumber();
55
+ cursor.advance(sourceRange.offset + sourceRange.length);
56
+ result.endLine = cursor.lineNumber();
57
+ result.endColumn = cursor.columnNumber();
58
+ return result;
59
+ }
60
+ replaceRange(range, replacement) {
61
+ const sourceRange = this.toSourceRange(range);
62
+ return this.#value.substring(0, sourceRange.offset) + replacement +
63
+ this.#value.substring(sourceRange.offset + sourceRange.length);
64
+ }
65
+ extract(range) {
66
+ const sourceRange = this.toSourceRange(range);
67
+ return this.#value.substr(sourceRange.offset, sourceRange.length);
68
+ }
69
+ }
@@ -0,0 +1,35 @@
1
+ // Copyright 2020 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
+ export class TextCursor {
6
+ #lineEndings;
7
+ #offset = 0;
8
+ #lineNumber = 0;
9
+ #columnNumber = 0;
10
+ constructor(lineEndings) {
11
+ this.#lineEndings = lineEndings;
12
+ }
13
+ advance(offset) {
14
+ this.#offset = offset;
15
+ while (this.#lineNumber < this.#lineEndings.length && this.#lineEndings[this.#lineNumber] < this.#offset) {
16
+ ++this.#lineNumber;
17
+ }
18
+ this.#columnNumber = this.#lineNumber ? this.#offset - this.#lineEndings[this.#lineNumber - 1] - 1 : this.#offset;
19
+ }
20
+ offset() {
21
+ return this.#offset;
22
+ }
23
+ resetTo(offset) {
24
+ this.#offset = offset;
25
+ this.#lineNumber =
26
+ Platform.ArrayUtilities.lowerBound(this.#lineEndings, offset, Platform.ArrayUtilities.DEFAULT_COMPARATOR);
27
+ this.#columnNumber = this.#lineNumber ? this.#offset - this.#lineEndings[this.#lineNumber - 1] - 1 : this.#offset;
28
+ }
29
+ lineNumber() {
30
+ return this.#lineNumber;
31
+ }
32
+ columnNumber() {
33
+ return this.#columnNumber;
34
+ }
35
+ }
@@ -0,0 +1,231 @@
1
+ // Copyright 2013 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
+ const MAX_SAFE_INT32 = 2 ** 31 - 1;
6
+ export class TextRange {
7
+ startLine;
8
+ startColumn;
9
+ endLine;
10
+ endColumn;
11
+ constructor(startLine, startColumn, endLine, endColumn) {
12
+ this.startLine = startLine;
13
+ this.startColumn = startColumn;
14
+ this.endLine = endLine;
15
+ this.endColumn = endColumn;
16
+ }
17
+ static createFromLocation(line, column) {
18
+ return new TextRange(line, column, line, column);
19
+ }
20
+ static createUnboundedFromLocation(line, column) {
21
+ return new TextRange(line, column, MAX_SAFE_INT32, MAX_SAFE_INT32);
22
+ }
23
+ static fromObject(serializedTextRange) {
24
+ return new TextRange(serializedTextRange.startLine, serializedTextRange.startColumn, serializedTextRange.endLine, serializedTextRange.endColumn);
25
+ }
26
+ static comparator(range1, range2) {
27
+ return range1.compareTo(range2);
28
+ }
29
+ static fromEdit(oldRange, newText) {
30
+ let endLine = oldRange.startLine;
31
+ let endColumn = oldRange.startColumn + newText.length;
32
+ const lineEndings = Platform.StringUtilities.findLineEndingIndexes(newText);
33
+ if (lineEndings.length > 1) {
34
+ endLine = oldRange.startLine + lineEndings.length - 1;
35
+ const len = lineEndings.length;
36
+ endColumn = lineEndings[len - 1] - lineEndings[len - 2] - 1;
37
+ }
38
+ return new TextRange(oldRange.startLine, oldRange.startColumn, endLine, endColumn);
39
+ }
40
+ isEmpty() {
41
+ return this.startLine === this.endLine && this.startColumn === this.endColumn;
42
+ }
43
+ immediatelyPrecedes(range) {
44
+ if (!range) {
45
+ return false;
46
+ }
47
+ return this.endLine === range.startLine && this.endColumn === range.startColumn;
48
+ }
49
+ immediatelyFollows(range) {
50
+ if (!range) {
51
+ return false;
52
+ }
53
+ return range.immediatelyPrecedes(this);
54
+ }
55
+ follows(range) {
56
+ return (range.endLine === this.startLine && range.endColumn <= this.startColumn) || range.endLine < this.startLine;
57
+ }
58
+ get linesCount() {
59
+ return this.endLine - this.startLine;
60
+ }
61
+ collapseToEnd() {
62
+ return new TextRange(this.endLine, this.endColumn, this.endLine, this.endColumn);
63
+ }
64
+ collapseToStart() {
65
+ return new TextRange(this.startLine, this.startColumn, this.startLine, this.startColumn);
66
+ }
67
+ normalize() {
68
+ if (this.startLine > this.endLine || (this.startLine === this.endLine && this.startColumn > this.endColumn)) {
69
+ return new TextRange(this.endLine, this.endColumn, this.startLine, this.startColumn);
70
+ }
71
+ return this.clone();
72
+ }
73
+ clone() {
74
+ return new TextRange(this.startLine, this.startColumn, this.endLine, this.endColumn);
75
+ }
76
+ serializeToObject() {
77
+ return {
78
+ startLine: this.startLine,
79
+ startColumn: this.startColumn,
80
+ endLine: this.endLine,
81
+ endColumn: this.endColumn,
82
+ };
83
+ }
84
+ compareTo(other) {
85
+ if (this.startLine > other.startLine) {
86
+ return 1;
87
+ }
88
+ if (this.startLine < other.startLine) {
89
+ return -1;
90
+ }
91
+ if (this.startColumn > other.startColumn) {
92
+ return 1;
93
+ }
94
+ if (this.startColumn < other.startColumn) {
95
+ return -1;
96
+ }
97
+ return 0;
98
+ }
99
+ compareToPosition(lineNumber, columnNumber) {
100
+ if (lineNumber < this.startLine || (lineNumber === this.startLine && columnNumber < this.startColumn)) {
101
+ return -1;
102
+ }
103
+ if (lineNumber > this.endLine || (lineNumber === this.endLine && columnNumber > this.endColumn)) {
104
+ return 1;
105
+ }
106
+ return 0;
107
+ }
108
+ equal(other) {
109
+ return this.startLine === other.startLine && this.endLine === other.endLine &&
110
+ this.startColumn === other.startColumn && this.endColumn === other.endColumn;
111
+ }
112
+ relativeTo(line, column) {
113
+ const relative = this.clone();
114
+ if (this.startLine === line) {
115
+ relative.startColumn -= column;
116
+ }
117
+ if (this.endLine === line) {
118
+ relative.endColumn -= column;
119
+ }
120
+ relative.startLine -= line;
121
+ relative.endLine -= line;
122
+ return relative;
123
+ }
124
+ relativeFrom(line, column) {
125
+ const relative = this.clone();
126
+ if (this.startLine === 0) {
127
+ relative.startColumn += column;
128
+ }
129
+ if (this.endLine === 0) {
130
+ relative.endColumn += column;
131
+ }
132
+ relative.startLine += line;
133
+ relative.endLine += line;
134
+ return relative;
135
+ }
136
+ rebaseAfterTextEdit(originalRange, editedRange) {
137
+ console.assert(originalRange.startLine === editedRange.startLine);
138
+ console.assert(originalRange.startColumn === editedRange.startColumn);
139
+ const rebase = this.clone();
140
+ if (!this.follows(originalRange)) {
141
+ return rebase;
142
+ }
143
+ const lineDelta = editedRange.endLine - originalRange.endLine;
144
+ const columnDelta = editedRange.endColumn - originalRange.endColumn;
145
+ rebase.startLine += lineDelta;
146
+ rebase.endLine += lineDelta;
147
+ if (rebase.startLine === editedRange.endLine) {
148
+ rebase.startColumn += columnDelta;
149
+ }
150
+ if (rebase.endLine === editedRange.endLine) {
151
+ rebase.endColumn += columnDelta;
152
+ }
153
+ return rebase;
154
+ }
155
+ toString() {
156
+ return JSON.stringify(this);
157
+ }
158
+ /**
159
+ * Checks whether this {@link TextRange} contains the location identified by the
160
+ * {@link lineNumber} and {@link columnNumber}. The beginning of the text range is
161
+ * considered inclusive while the end of the text range is considered exclusive
162
+ * for this comparison, meaning that for example a range `(0,1)-(1,4)` contains the
163
+ * location `(0,1)` but does not contain the location `(1,4)`.
164
+ *
165
+ * @param lineNumber the location's line offset.
166
+ * @param columnNumber the location's column offset.
167
+ * @returns `true` if the location identified by {@link lineNumber} and {@link columnNumber}
168
+ * is contained within this text range.
169
+ */
170
+ containsLocation(lineNumber, columnNumber) {
171
+ if (this.startLine === this.endLine) {
172
+ return this.startLine === lineNumber && this.startColumn <= columnNumber && columnNumber < this.endColumn;
173
+ }
174
+ if (this.startLine === lineNumber) {
175
+ return this.startColumn <= columnNumber;
176
+ }
177
+ if (this.endLine === lineNumber) {
178
+ return columnNumber < this.endColumn;
179
+ }
180
+ return this.startLine < lineNumber && lineNumber < this.endLine;
181
+ }
182
+ get start() {
183
+ return { lineNumber: this.startLine, columnNumber: this.startColumn };
184
+ }
185
+ get end() {
186
+ return { lineNumber: this.endLine, columnNumber: this.endColumn };
187
+ }
188
+ /**
189
+ * Checks whether this and `that` {@link TextRange} overlap and if they do, computes the
190
+ * intersection range. If they don't overlap an empty text range is returned instead (for
191
+ * which {@link #isEmpty()} yields `true`).
192
+ *
193
+ * The beginning of text ranges is considered to be includes while the end of the text
194
+ * ranges is considered exclusive for the intersection, meaning that for example intersecting
195
+ * `(0,1)-(1,4)` and `(1,4)-(1,6)` yields an empty range.
196
+ *
197
+ * @param that the other text range.
198
+ * @returns the intersection of this and `that` text range, which might be empty if their don't
199
+ * overlap.
200
+ */
201
+ intersection(that) {
202
+ let { startLine, startColumn } = this;
203
+ if (startLine < that.startLine) {
204
+ startLine = that.startLine;
205
+ startColumn = that.startColumn;
206
+ }
207
+ else if (startLine === that.startLine) {
208
+ startColumn = Math.max(startColumn, that.startColumn);
209
+ }
210
+ let { endLine, endColumn } = this;
211
+ if (endLine > that.endLine) {
212
+ endLine = that.endLine;
213
+ endColumn = that.endColumn;
214
+ }
215
+ else if (endLine === that.endLine) {
216
+ endColumn = Math.min(endColumn, that.endColumn);
217
+ }
218
+ if (startLine > endLine || (startLine === endLine && startColumn >= endColumn)) {
219
+ return new TextRange(0, 0, 0, 0);
220
+ }
221
+ return new TextRange(startLine, startColumn, endLine, endColumn);
222
+ }
223
+ }
224
+ export class SourceRange {
225
+ offset;
226
+ length;
227
+ constructor(offset, length) {
228
+ this.offset = offset;
229
+ this.length = length;
230
+ }
231
+ }