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,538 @@
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
+ export const escapeCharacters = (inputString, charsToEscape) => {
5
+ let foundChar = false;
6
+ for (let i = 0; i < charsToEscape.length; ++i) {
7
+ if (inputString.indexOf(charsToEscape.charAt(i)) !== -1) {
8
+ foundChar = true;
9
+ break;
10
+ }
11
+ }
12
+ if (!foundChar) {
13
+ return String(inputString);
14
+ }
15
+ let result = '';
16
+ for (let i = 0; i < inputString.length; ++i) {
17
+ if (charsToEscape.indexOf(inputString.charAt(i)) !== -1) {
18
+ result += '\\';
19
+ }
20
+ result += inputString.charAt(i);
21
+ }
22
+ return result;
23
+ };
24
+ const toHexadecimal = (charCode, padToLength) => {
25
+ return charCode.toString(16).toUpperCase().padStart(padToLength, '0');
26
+ };
27
+ // Remember to update the third group in the regexps patternsToEscape and
28
+ // patternsToEscapePlusSingleQuote when adding new entries in this map.
29
+ const escapedReplacements = new Map([
30
+ ['\b', '\\b'],
31
+ ['\f', '\\f'],
32
+ ['\n', '\\n'],
33
+ ['\r', '\\r'],
34
+ ['\t', '\\t'],
35
+ ['\v', '\\v'],
36
+ ['\'', '\\\''],
37
+ ['\\', '\\\\'],
38
+ ['<!--', '\\x3C!--'],
39
+ ['<script', '\\x3Cscript'],
40
+ ['</script', '\\x3C/script'],
41
+ ]);
42
+ export const formatAsJSLiteral = (content) => {
43
+ const patternsToEscape = /(\\|<(?:!--|\/?script))|(\p{Control})|(\p{Surrogate})/gu;
44
+ const patternsToEscapePlusSingleQuote = /(\\|'|<(?:!--|\/?script))|(\p{Control})|(\p{Surrogate})/gu;
45
+ const escapePattern = (match, pattern, controlChar, loneSurrogate) => {
46
+ if (controlChar) {
47
+ if (escapedReplacements.has(controlChar)) {
48
+ // @ts-expect-error https://github.com/microsoft/TypeScript/issues/13086
49
+ return escapedReplacements.get(controlChar);
50
+ }
51
+ const twoDigitHex = toHexadecimal(controlChar.charCodeAt(0), 2);
52
+ return '\\x' + twoDigitHex;
53
+ }
54
+ if (loneSurrogate) {
55
+ const fourDigitHex = toHexadecimal(loneSurrogate.charCodeAt(0), 4);
56
+ return '\\u' + fourDigitHex;
57
+ }
58
+ if (pattern) {
59
+ return escapedReplacements.get(pattern) || '';
60
+ }
61
+ return match;
62
+ };
63
+ let escapedContent = '';
64
+ let quote = '';
65
+ if (!content.includes('\'')) {
66
+ quote = '\'';
67
+ escapedContent = content.replaceAll(patternsToEscape, escapePattern);
68
+ }
69
+ else if (!content.includes('"')) {
70
+ quote = '"';
71
+ escapedContent = content.replaceAll(patternsToEscape, escapePattern);
72
+ }
73
+ else if (!content.includes('`') && !content.includes('${')) {
74
+ quote = '`';
75
+ escapedContent = content.replaceAll(patternsToEscape, escapePattern);
76
+ }
77
+ else {
78
+ quote = '\'';
79
+ escapedContent = content.replaceAll(patternsToEscapePlusSingleQuote, escapePattern);
80
+ }
81
+ return `${quote}${escapedContent}${quote}`;
82
+ };
83
+ /**
84
+ * This implements a subset of the sprintf() function described in the Single UNIX
85
+ * Specification. It supports the %s, %f, %d, and %% formatting specifiers, and
86
+ * understands the %m$d notation to select the m-th parameter for this substitution,
87
+ * as well as the optional precision for %s, %f, and %d.
88
+ *
89
+ * @param fmt format string.
90
+ * @param args parameters to the format string.
91
+ * @returns the formatted output string.
92
+ */
93
+ export const sprintf = (fmt, ...args) => {
94
+ let argIndex = 0;
95
+ const RE = /%(?:(\d+)\$)?(?:\.(\d*))?([%dfs])/g;
96
+ return fmt.replaceAll(RE, (_, index, precision, specifier) => {
97
+ if (specifier === '%') {
98
+ return '%';
99
+ }
100
+ if (index !== undefined) {
101
+ argIndex = parseInt(index, 10) - 1;
102
+ if (argIndex < 0) {
103
+ throw new RangeError(`Invalid parameter index ${argIndex + 1}`);
104
+ }
105
+ }
106
+ if (argIndex >= args.length) {
107
+ throw new RangeError(`Expected at least ${argIndex + 1} format parameters, but only ${args.length} where given.`);
108
+ }
109
+ if (specifier === 's') {
110
+ const argValue = String(args[argIndex++]);
111
+ if (precision !== undefined) {
112
+ return argValue.substring(0, Number(precision));
113
+ }
114
+ return argValue;
115
+ }
116
+ let argValue = Number(args[argIndex++]);
117
+ if (isNaN(argValue)) {
118
+ argValue = 0;
119
+ }
120
+ if (specifier === 'd') {
121
+ return String(Math.floor(argValue)).padStart(Number(precision), '0');
122
+ }
123
+ if (precision !== undefined) {
124
+ return argValue.toFixed(Number(precision));
125
+ }
126
+ return String(argValue);
127
+ });
128
+ };
129
+ export const toBase64 = (inputString) => {
130
+ /* note to the reader: we can't use btoa here because we need to
131
+ * support Unicode correctly. See the test cases for this function and
132
+ * also
133
+ * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem
134
+ */
135
+ function encodeBits(b) {
136
+ return b < 26 ? b + 65 : b < 52 ? b + 71 : b < 62 ? b - 4 : b === 62 ? 43 : b === 63 ? 47 : 65;
137
+ }
138
+ const encoder = new TextEncoder();
139
+ const data = encoder.encode(inputString.toString());
140
+ const n = data.length;
141
+ let encoded = '';
142
+ if (n === 0) {
143
+ return encoded;
144
+ }
145
+ let shift;
146
+ let v = 0;
147
+ for (let i = 0; i < n; i++) {
148
+ shift = i % 3;
149
+ v |= data[i] << (16 >>> shift & 24);
150
+ if (shift === 2) {
151
+ encoded += String.fromCharCode(encodeBits(v >>> 18 & 63), encodeBits(v >>> 12 & 63), encodeBits(v >>> 6 & 63), encodeBits(v & 63));
152
+ v = 0;
153
+ }
154
+ }
155
+ if (shift === 0) {
156
+ encoded += String.fromCharCode(encodeBits(v >>> 18 & 63), encodeBits(v >>> 12 & 63), 61, 61);
157
+ }
158
+ else if (shift === 1) {
159
+ encoded += String.fromCharCode(encodeBits(v >>> 18 & 63), encodeBits(v >>> 12 & 63), encodeBits(v >>> 6 & 63), 61);
160
+ }
161
+ return encoded;
162
+ };
163
+ export const findIndexesOfSubString = (inputString, searchString) => {
164
+ const matches = [];
165
+ let i = inputString.indexOf(searchString);
166
+ while (i !== -1) {
167
+ matches.push(i);
168
+ i = inputString.indexOf(searchString, i + searchString.length);
169
+ }
170
+ return matches;
171
+ };
172
+ export const findLineEndingIndexes = (inputString) => {
173
+ const endings = findIndexesOfSubString(inputString, '\n');
174
+ endings.push(inputString.length);
175
+ return endings;
176
+ };
177
+ export const isWhitespace = (inputString) => {
178
+ return /^\s*$/.test(inputString);
179
+ };
180
+ export const trimURL = (url, baseURLDomain) => {
181
+ let result = url.replace(/^(https|http|file):\/\//i, '');
182
+ if (baseURLDomain) {
183
+ if (result.toLowerCase().startsWith(baseURLDomain.toLowerCase())) {
184
+ result = result.substr(baseURLDomain.length);
185
+ }
186
+ }
187
+ return result;
188
+ };
189
+ export const collapseWhitespace = (inputString) => {
190
+ return inputString.replace(/[\s\xA0]+/g, ' ');
191
+ };
192
+ export const reverse = (inputString) => {
193
+ return inputString.split('').reverse().join('');
194
+ };
195
+ export const replaceControlCharacters = (inputString) => {
196
+ // Replace C0 and C1 control character sets with replacement character.
197
+ // Do not replace '\t', \n' and '\r'.
198
+ return inputString.replace(/[\0-\x08\x0B\f\x0E-\x1F\x80-\x9F]/g, '\uFFFD');
199
+ };
200
+ export const countWtf8Bytes = (inputString) => {
201
+ let count = 0;
202
+ for (let i = 0; i < inputString.length; i++) {
203
+ const c = inputString.charCodeAt(i);
204
+ if (c <= 0x7F) {
205
+ count++;
206
+ }
207
+ else if (c <= 0x07FF) {
208
+ count += 2;
209
+ }
210
+ else if (c < 0xD800 || 0xDFFF < c) {
211
+ count += 3;
212
+ }
213
+ else {
214
+ if (c <= 0xDBFF && i + 1 < inputString.length) {
215
+ // The current character is a leading surrogate, and there is a
216
+ // next character.
217
+ const next = inputString.charCodeAt(i + 1);
218
+ if (0xDC00 <= next && next <= 0xDFFF) {
219
+ // The next character is a trailing surrogate, meaning this
220
+ // is a surrogate pair.
221
+ count += 4;
222
+ i++;
223
+ continue;
224
+ }
225
+ }
226
+ count += 3;
227
+ }
228
+ }
229
+ return count;
230
+ };
231
+ export const stripLineBreaks = (inputStr) => {
232
+ return inputStr.replace(/(\r)?\n/g, '');
233
+ };
234
+ const EXTENDED_KEBAB_CASE_REGEXP = /^([a-z0-9]+(?:-[a-z0-9]+)*\.)*[a-z0-9]+(?:-[a-z0-9]+)*$/;
235
+ /**
236
+ * Tests if the `inputStr` is following the extended Kebab Case naming convention,
237
+ * where words are separated with either a dash (`-`) or a dot (`.`), and all
238
+ * characters must be lower-case alphanumeric.
239
+ *
240
+ * For example, it will yield `true` for `'my.amazing-string.literal'`, but `false`
241
+ * for `'Another.AmazingLiteral'` or '`another_amazing_literal'`.
242
+ *
243
+ * @param inputStr the input string to test.
244
+ * @returns `true` if the `inputStr` follows the extended Kebab Case convention.
245
+ */
246
+ export const isExtendedKebabCase = (inputStr) => {
247
+ return EXTENDED_KEBAB_CASE_REGEXP.test(inputStr);
248
+ };
249
+ export const toTitleCase = (inputStr) => {
250
+ return inputStr.substring(0, 1).toUpperCase() + inputStr.substring(1);
251
+ };
252
+ export const removeURLFragment = (inputStr) => {
253
+ const url = new URL(inputStr);
254
+ url.hash = '';
255
+ return url.toString();
256
+ };
257
+ const SPECIAL_REGEX_CHARACTERS = '^[]{}()\\.^$*+?|-,';
258
+ export const regexSpecialCharacters = function () {
259
+ return SPECIAL_REGEX_CHARACTERS;
260
+ };
261
+ export const filterRegex = function (query) {
262
+ let regexString = '^(?:.*\\0)?'; // Start from beginning or after a \0
263
+ for (let i = 0; i < query.length; ++i) {
264
+ let c = query.charAt(i);
265
+ if (SPECIAL_REGEX_CHARACTERS.indexOf(c) !== -1) {
266
+ c = '\\' + c;
267
+ }
268
+ regexString += '[^\\0' + c + ']*' + c;
269
+ }
270
+ return new RegExp(regexString, 'i');
271
+ };
272
+ export const createSearchRegex = function (query, caseSensitive, isRegex, matchWholeWord = false) {
273
+ const regexFlags = caseSensitive ? 'g' : 'gi';
274
+ let regexObject;
275
+ if (isRegex) {
276
+ try {
277
+ regexObject = new RegExp(query, regexFlags);
278
+ }
279
+ catch {
280
+ // Silent catch.
281
+ }
282
+ }
283
+ if (!regexObject) {
284
+ regexObject = createPlainTextSearchRegex(query, regexFlags);
285
+ }
286
+ if (matchWholeWord && regexObject) {
287
+ regexObject = new RegExp(`\\b${regexObject.source}\\b`, regexFlags);
288
+ }
289
+ return regexObject;
290
+ };
291
+ export const caseInsensetiveComparator = function (a, b) {
292
+ a = a.toUpperCase();
293
+ b = b.toUpperCase();
294
+ if (a === b) {
295
+ return 0;
296
+ }
297
+ return a > b ? 1 : -1;
298
+ };
299
+ export const hashCode = function (string) {
300
+ if (!string) {
301
+ return 0;
302
+ }
303
+ // Hash algorithm for substrings is described in "Über die Komplexität der Multiplikation in
304
+ // eingeschränkten Branchingprogrammmodellen" by Woelfe.
305
+ // http://opendatastructures.org/versions/edition-0.1d/ods-java/node33.html#SECTION00832000000000000000
306
+ const p = ((1 << 30) * 4 - 5); // prime: 2^32 - 5
307
+ const z = 0x5033d967; // 32 bits from random.org
308
+ const z2 = 0x59d2f15d; // random odd 32 bit number
309
+ let s = 0;
310
+ let zi = 1;
311
+ for (let i = 0; i < string.length; i++) {
312
+ const xi = string.charCodeAt(i) * z2;
313
+ s = (s + zi * xi) % p;
314
+ zi = (zi * z) % p;
315
+ }
316
+ s = (s + zi * (p - 1)) % p;
317
+ return Math.abs(s | 0);
318
+ };
319
+ export const compare = (a, b) => {
320
+ if (a > b) {
321
+ return 1;
322
+ }
323
+ if (a < b) {
324
+ return -1;
325
+ }
326
+ return 0;
327
+ };
328
+ export const trimMiddle = (str, maxLength) => {
329
+ if (str.length <= maxLength) {
330
+ return String(str);
331
+ }
332
+ let leftHalf = maxLength >> 1;
333
+ let rightHalf = maxLength - leftHalf - 1;
334
+ if (str.codePointAt(str.length - rightHalf - 1) >= 0x10000) {
335
+ --rightHalf;
336
+ ++leftHalf;
337
+ }
338
+ if (leftHalf > 0 && str.codePointAt(leftHalf - 1) >= 0x10000) {
339
+ --leftHalf;
340
+ }
341
+ return str.substr(0, leftHalf) + '…' + str.substr(str.length - rightHalf, rightHalf);
342
+ };
343
+ export const trimEndWithMaxLength = (str, maxLength) => {
344
+ if (str.length <= maxLength) {
345
+ return String(str);
346
+ }
347
+ return str.substr(0, maxLength - 1) + '…';
348
+ };
349
+ export const escapeForRegExp = (str) => {
350
+ return escapeCharacters(str, SPECIAL_REGEX_CHARACTERS);
351
+ };
352
+ export const naturalOrderComparator = (a, b) => {
353
+ const chunk = /^\d+|^\D+/;
354
+ let chunkA, chunkB, numA, numB;
355
+ while (true) {
356
+ if (a) {
357
+ if (!b) {
358
+ return 1;
359
+ }
360
+ }
361
+ else {
362
+ if (b) {
363
+ return -1;
364
+ }
365
+ return 0;
366
+ }
367
+ chunkA = a.match(chunk)[0];
368
+ chunkB = b.match(chunk)[0];
369
+ numA = !Number.isNaN(Number(chunkA));
370
+ numB = !Number.isNaN(Number(chunkB));
371
+ if (numA && !numB) {
372
+ return -1;
373
+ }
374
+ if (numB && !numA) {
375
+ return 1;
376
+ }
377
+ if (numA && numB) {
378
+ const diff = Number(chunkA) - Number(chunkB);
379
+ if (diff) {
380
+ return diff;
381
+ }
382
+ if (chunkA.length !== chunkB.length) {
383
+ if (!Number(chunkA) && !Number(chunkB)) { // chunks are strings of all 0s (special case)
384
+ return chunkA.length - chunkB.length;
385
+ }
386
+ return chunkB.length - chunkA.length;
387
+ }
388
+ }
389
+ else if (chunkA !== chunkB) {
390
+ return (chunkA < chunkB) ? -1 : 1;
391
+ }
392
+ a = a.substring(chunkA.length);
393
+ b = b.substring(chunkB.length);
394
+ }
395
+ };
396
+ export const base64ToSize = function (content) {
397
+ if (!content) {
398
+ return 0;
399
+ }
400
+ let size = content.length * 3 / 4;
401
+ if (content[content.length - 1] === '=') {
402
+ size--;
403
+ }
404
+ if (content.length > 1 && content[content.length - 2] === '=') {
405
+ size--;
406
+ }
407
+ return size;
408
+ };
409
+ export const SINGLE_QUOTE = '\'';
410
+ export const DOUBLE_QUOTE = '"';
411
+ const BACKSLASH = '\\';
412
+ export const findUnclosedCssQuote = function (str) {
413
+ let unmatchedQuote = '';
414
+ for (let i = 0; i < str.length; ++i) {
415
+ const char = str[i];
416
+ if (char === BACKSLASH) {
417
+ i++;
418
+ continue;
419
+ }
420
+ if (char === SINGLE_QUOTE || char === DOUBLE_QUOTE) {
421
+ if (unmatchedQuote === char) {
422
+ unmatchedQuote = '';
423
+ }
424
+ else if (unmatchedQuote === '') {
425
+ unmatchedQuote = char;
426
+ }
427
+ }
428
+ }
429
+ return unmatchedQuote;
430
+ };
431
+ export const countUnmatchedLeftParentheses = (str) => {
432
+ const stringLiteralRegex = /'(?:\\.|[^'\\])*'|"(?:\\.|[^"\\])*"/g;
433
+ // Remove all matched string literals from the original string.
434
+ const strWithoutStrings = str.replace(stringLiteralRegex, '');
435
+ let unmatchedCount = 0;
436
+ for (const c of strWithoutStrings) {
437
+ if (c === '(') {
438
+ unmatchedCount++;
439
+ }
440
+ else if (c === ')' && unmatchedCount > 0) {
441
+ unmatchedCount--;
442
+ }
443
+ }
444
+ return unmatchedCount;
445
+ };
446
+ export const createPlainTextSearchRegex = function (query, flags) {
447
+ // This should be kept the same as the one in StringUtil.cpp.
448
+ let regex = '';
449
+ for (let i = 0; i < query.length; ++i) {
450
+ const c = query.charAt(i);
451
+ if (regexSpecialCharacters().indexOf(c) !== -1) {
452
+ regex += '\\';
453
+ }
454
+ regex += c;
455
+ }
456
+ return new RegExp(regex, flags || '');
457
+ };
458
+ export const toLowerCaseString = function (input) {
459
+ return input.toLowerCase();
460
+ };
461
+ /**
462
+ * 1: two or more consecutive uppercase letters. This is useful for identifying acronyms
463
+ * 2: lookahead assertion that matches a word boundary
464
+ * 3: numeronym: single letter followed by number and another letter
465
+ * 4: word starting with an optional uppercase letter
466
+ * 5: single digit followed by word to handle '3D' or '2px' (this might be controverial)
467
+ * 6: single uppercase letter or number
468
+ * 7: a dot character. We extract it into a separate word and remove dashes around it later.
469
+ * This is makes more sense conceptually and allows accounting for all possible word variants.
470
+ * Making dot a part of a word prevent us from handling acronyms or numeronyms after the word
471
+ * correctly without making the RegExp prohibitively complicated.
472
+ * https://regex101.com/r/FhMVKc/1
473
+ * <---1---><------------2-----------> <---------3--------> <-----4----> <------5-----> <-----6----> <7>
474
+ */
475
+ const WORD = /[A-Z]{2,}(?=[A-Z0-9][a-z0-9]+|\b|_)|[A-Za-z][0-9]+[a-z]?|[A-Z]?[a-z]+|[0-9][A-Za-z]+|[A-Z]|[0-9]+|[.]/g;
476
+ export const toKebabCase = function (input) {
477
+ return (input.match?.(WORD)?.map(w => w.toLowerCase()).join('-').replaceAll('-.-', '.') || input);
478
+ };
479
+ export function toKebabCaseKeys(settingValue) {
480
+ return Object.fromEntries(Object.entries(settingValue).map(([key, value]) => [toKebabCase(key), value]));
481
+ }
482
+ /**
483
+ * Converts a given string to snake_case.
484
+ * This function handles camelCase, PascalCase, and acronyms, including transitions between letters and numbers.
485
+ * It uses Unicode-aware regular expressions (`\p{L}`, `\p{N}`, `\p{Lu}`, `\p{Ll}` with the `u` flag)
486
+ * to correctly process letters and numbers from various languages.
487
+ *
488
+ * @param text The input string to convert to snake_case.
489
+ * @returns The snake_case version of the input string.
490
+ */
491
+ export function toSnakeCase(text) {
492
+ if (!text) {
493
+ return '';
494
+ }
495
+ // First, handle case-based transformations to insert underscores correctly.
496
+ // 1. Add underscore between a letter and a number.
497
+ // e.g., "version2" -> "version_2"
498
+ // 2. Add underscore between an uppercase letter sequence and a following uppercase+lowercase sequence.
499
+ // e.g., "APIFlags" -> "API_Flags"
500
+ // 3. Add underscore between a lowercase/number and an uppercase letter.
501
+ // e.g., "lastName" -> "last_Name", "version_2Update" -> "version_2_Update"
502
+ // 4. Replace sequences of non-alphanumeric with a single underscore
503
+ // 5. Remove any leading or trailing underscores.
504
+ const result = text.replace(/(\p{L})(\p{N})/gu, '$1_$2') // 1
505
+ .replace(/(\p{Lu}+)(\p{Lu}\p{Ll})/gu, '$1_$2') // 2
506
+ .replace(/(\p{Ll}|\p{N})(\p{Lu})/gu, '$1_$2') // 3
507
+ .toLowerCase()
508
+ .replace(/[^\p{L}\p{N}]+/gu, '_') // 4
509
+ .replace(/^_|_$/g, ''); // 5
510
+ return result;
511
+ }
512
+ /** Replaces the last occurrence of parameter `search` with parameter `replacement` in `input` **/
513
+ export const replaceLast = function (input, search, replacement) {
514
+ const replacementStartIndex = input.lastIndexOf(search);
515
+ if (replacementStartIndex === -1) {
516
+ return input;
517
+ }
518
+ return input.slice(0, replacementStartIndex) + input.slice(replacementStartIndex).replace(search, replacement);
519
+ };
520
+ export const stringifyWithPrecision = function stringifyWithPrecision(s, precision = 2) {
521
+ if (precision === 0) {
522
+ return s.toFixed(0);
523
+ }
524
+ const string = s.toFixed(precision).replace(/\.?0*$/, '');
525
+ return string === '-0' ? '0' : string;
526
+ };
527
+ /**
528
+ * Somewhat efficiently concatenates 2 base64 encoded strings.
529
+ */
530
+ export const concatBase64 = function (lhs, rhs) {
531
+ if (lhs.length === 0 || !lhs.endsWith('=')) {
532
+ // Empty string or no padding, we can straight-up concatenate.
533
+ return lhs + rhs;
534
+ }
535
+ const lhsLeaveAsIs = lhs.substring(0, lhs.length - 4);
536
+ const lhsToDecode = lhs.substring(lhs.length - 4);
537
+ return lhsLeaveAsIs + globalThis.btoa(globalThis.atob(lhsToDecode) + globalThis.atob(rhs));
538
+ };
@@ -0,0 +1,9 @@
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
+ export function milliSecondsToSeconds(x) {
5
+ return (x / 1000);
6
+ }
7
+ export function microSecondsToMilliSeconds(x) {
8
+ return (x / 1000);
9
+ }
@@ -0,0 +1,157 @@
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
+ /**
5
+ * @returns A BigUint32Array implementation which is based on Array.
6
+ * This means that its length automatically expands to include the highest index
7
+ * used, and asArrayOrFail will succeed.
8
+ */
9
+ export function createExpandableBigUint32Array() {
10
+ return new ExpandableBigUint32ArrayImpl();
11
+ }
12
+ /**
13
+ * @returns A BigUint32Array implementation which is based on Uint32Array.
14
+ * If the length is small enough to fit in a single Uint32Array, then
15
+ * asUint32ArrayOrFail will succeed. Otherwise, it will throw an exception.
16
+ */
17
+ export function createFixedBigUint32Array(length, maxLengthForTesting) {
18
+ try {
19
+ if (maxLengthForTesting !== undefined && length > maxLengthForTesting) {
20
+ // Simulate allocation failure.
21
+ throw new RangeError();
22
+ }
23
+ return new BasicBigUint32ArrayImpl(length);
24
+ }
25
+ catch {
26
+ // We couldn't allocate a big enough ArrayBuffer.
27
+ return new SplitBigUint32ArrayImpl(length, maxLengthForTesting);
28
+ }
29
+ }
30
+ class BasicBigUint32ArrayImpl extends Uint32Array {
31
+ getValue(index) {
32
+ return this[index];
33
+ }
34
+ setValue(index, value) {
35
+ this[index] = value;
36
+ }
37
+ asUint32ArrayOrFail() {
38
+ return this;
39
+ }
40
+ asArrayOrFail() {
41
+ throw new Error('Not an array');
42
+ }
43
+ }
44
+ class SplitBigUint32ArrayImpl {
45
+ #data;
46
+ #partLength;
47
+ length;
48
+ constructor(length, maxLengthForTesting) {
49
+ this.#data = [];
50
+ this.length = length;
51
+ let partCount = 1;
52
+ while (true) {
53
+ partCount *= 2;
54
+ this.#partLength = Math.ceil(length / partCount);
55
+ try {
56
+ if (maxLengthForTesting !== undefined && this.#partLength > maxLengthForTesting) {
57
+ // Simulate allocation failure.
58
+ throw new RangeError();
59
+ }
60
+ for (let i = 0; i < partCount; ++i) {
61
+ this.#data[i] = new Uint32Array(this.#partLength);
62
+ }
63
+ return;
64
+ }
65
+ catch (e) {
66
+ if (this.#partLength < 1e6) {
67
+ // The length per part is already small, so continuing to subdivide it
68
+ // will probably not help.
69
+ throw e;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ getValue(index) {
75
+ if (index >= 0 && index < this.length) {
76
+ const partLength = this.#partLength;
77
+ return this.#data[Math.floor(index / partLength)][index % partLength];
78
+ }
79
+ // On out-of-bounds accesses, match the behavior of Uint32Array: return an
80
+ // undefined value that's incorrectly typed as number.
81
+ return this.#data[0][-1];
82
+ }
83
+ setValue(index, value) {
84
+ if (index >= 0 && index < this.length) {
85
+ const partLength = this.#partLength;
86
+ this.#data[Math.floor(index / partLength)][index % partLength] = value;
87
+ }
88
+ // Attempting to set a value out of bounds does nothing, like Uint32Array.
89
+ }
90
+ asUint32ArrayOrFail() {
91
+ throw new Error('Not a Uint32Array');
92
+ }
93
+ asArrayOrFail() {
94
+ throw new Error('Not an array');
95
+ }
96
+ }
97
+ class ExpandableBigUint32ArrayImpl extends Array {
98
+ getValue(index) {
99
+ return this[index];
100
+ }
101
+ setValue(index, value) {
102
+ this[index] = value;
103
+ }
104
+ asUint32ArrayOrFail() {
105
+ throw new Error('Not a Uint32Array');
106
+ }
107
+ asArrayOrFail() {
108
+ return this;
109
+ }
110
+ }
111
+ export function createBitVector(lengthOrBuffer) {
112
+ return new BitVectorImpl(lengthOrBuffer);
113
+ }
114
+ class BitVectorImpl extends Uint8Array {
115
+ constructor(lengthOrBuffer) {
116
+ if (typeof lengthOrBuffer === 'number') {
117
+ super(Math.ceil(lengthOrBuffer / 8));
118
+ }
119
+ else {
120
+ super(lengthOrBuffer);
121
+ }
122
+ }
123
+ getBit(index) {
124
+ const value = this[index >> 3] & (1 << (index & 7));
125
+ return value !== 0;
126
+ }
127
+ setBit(index) {
128
+ this[index >> 3] |= (1 << (index & 7));
129
+ }
130
+ clearBit(index) {
131
+ this[index >> 3] &= ~(1 << (index & 7));
132
+ }
133
+ previous(index) {
134
+ // First, check for more bits in the current byte.
135
+ while (index !== ((index >> 3) << 3)) {
136
+ --index;
137
+ if (this.getBit(index)) {
138
+ return index;
139
+ }
140
+ }
141
+ // Next, iterate by bytes to skip over ranges of zeros.
142
+ let byteIndex = (index >> 3) - 1;
143
+ while (byteIndex >= 0 && this[byteIndex] === 0) {
144
+ --byteIndex;
145
+ }
146
+ if (byteIndex < 0) {
147
+ return -1;
148
+ }
149
+ // Finally, iterate the nonzero byte to find the highest bit.
150
+ for (index = (byteIndex << 3) + 7; index >= (byteIndex << 3); --index) {
151
+ if (this.getBit(index)) {
152
+ return index;
153
+ }
154
+ }
155
+ throw new Error('Unreachable');
156
+ }
157
+ }