devtools-tracing 1.1.1 → 1.2.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 (528) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.js +28854 -0
  4. package/package.json +11 -8
  5. package/generate.ts +0 -649
  6. package/index.ts +0 -17
  7. package/lib/extension-api/ExtensionAPI.d.ts +0 -357
  8. package/lib/front_end/core/common/App.ts +0 -7
  9. package/lib/front_end/core/common/AppProvider.ts +0 -32
  10. package/lib/front_end/core/common/Base64.ts +0 -47
  11. package/lib/front_end/core/common/CharacterIdMap.ts +0 -30
  12. package/lib/front_end/core/common/Color.ts +0 -2506
  13. package/lib/front_end/core/common/ColorConverter.ts +0 -402
  14. package/lib/front_end/core/common/ColorUtils.ts +0 -252
  15. package/lib/front_end/core/common/Console.ts +0 -114
  16. package/lib/front_end/core/common/Debouncer.ts +0 -15
  17. package/lib/front_end/core/common/EventTarget.ts +0 -52
  18. package/lib/front_end/core/common/Gzip.ts +0 -74
  19. package/lib/front_end/core/common/JavaScriptMetaData.ts +0 -29
  20. package/lib/front_end/core/common/Lazy.ts +0 -31
  21. package/lib/front_end/core/common/Linkifier.ts +0 -55
  22. package/lib/front_end/core/common/MapWithDefault.ts +0 -26
  23. package/lib/front_end/core/common/Mutex.ts +0 -55
  24. package/lib/front_end/core/common/Object.ts +0 -145
  25. package/lib/front_end/core/common/ParsedURL.ts +0 -554
  26. package/lib/front_end/core/common/Progress.ts +0 -180
  27. package/lib/front_end/core/common/QueryParamHandler.ts +0 -7
  28. package/lib/front_end/core/common/ResolverBase.ts +0 -85
  29. package/lib/front_end/core/common/ResourceType.ts +0 -588
  30. package/lib/front_end/core/common/ReturnToPanel.ts +0 -17
  31. package/lib/front_end/core/common/Revealer.ts +0 -192
  32. package/lib/front_end/core/common/Runnable.ts +0 -41
  33. package/lib/front_end/core/common/SegmentedRange.ts +0 -87
  34. package/lib/front_end/core/common/SettingRegistration.ts +0 -339
  35. package/lib/front_end/core/common/Settings.ts +0 -1497
  36. package/lib/front_end/core/common/SimpleHistoryManager.ts +0 -124
  37. package/lib/front_end/core/common/StringOutputStream.ts +0 -26
  38. package/lib/front_end/core/common/TextDictionary.ts +0 -48
  39. package/lib/front_end/core/common/Throttler.ts +0 -99
  40. package/lib/front_end/core/common/Trie.ts +0 -152
  41. package/lib/front_end/core/common/Worker.ts +0 -60
  42. package/lib/front_end/core/common/common.ts +0 -81
  43. package/lib/front_end/core/host/AidaClient.ts +0 -733
  44. package/lib/front_end/core/host/GdpClient.ts +0 -316
  45. package/lib/front_end/core/host/InspectorFrontendHost.ts +0 -648
  46. package/lib/front_end/core/host/InspectorFrontendHostAPI.ts +0 -551
  47. package/lib/front_end/core/host/Platform.ts +0 -76
  48. package/lib/front_end/core/host/ResourceLoader.ts +0 -282
  49. package/lib/front_end/core/host/UserMetrics.ts +0 -1230
  50. package/lib/front_end/core/host/host.ts +0 -23
  51. package/lib/front_end/core/i18n/ByteUtilities.ts +0 -82
  52. package/lib/front_end/core/i18n/DevToolsLocale.ts +0 -87
  53. package/lib/front_end/core/i18n/NumberFormatter.ts +0 -82
  54. package/lib/front_end/core/i18n/i18n.ts +0 -17
  55. package/lib/front_end/core/i18n/i18nImpl.ts +0 -204
  56. package/lib/front_end/core/i18n/i18nTypes.ts +0 -10
  57. package/lib/front_end/core/i18n/locales.js +0 -14
  58. package/lib/front_end/core/i18n/time-utilities.ts +0 -174
  59. package/lib/front_end/core/platform/ArrayUtilities.ts +0 -271
  60. package/lib/front_end/core/platform/Brand.ts +0 -23
  61. package/lib/front_end/core/platform/Constructor.ts +0 -10
  62. package/lib/front_end/core/platform/DOMUtilities.ts +0 -138
  63. package/lib/front_end/core/platform/DateUtilities.ts +0 -15
  64. package/lib/front_end/core/platform/DevToolsPath.ts +0 -53
  65. package/lib/front_end/core/platform/KeyboardUtilities.ts +0 -38
  66. package/lib/front_end/core/platform/MapUtilities.ts +0 -95
  67. package/lib/front_end/core/platform/MimeType.ts +0 -175
  68. package/lib/front_end/core/platform/NumberUtilities.ts +0 -80
  69. package/lib/front_end/core/platform/StringUtilities.ts +0 -588
  70. package/lib/front_end/core/platform/Timing.ts +0 -17
  71. package/lib/front_end/core/platform/TypedArrayUtilities.ts +0 -189
  72. package/lib/front_end/core/platform/TypescriptUtilities.ts +0 -86
  73. package/lib/front_end/core/platform/UIString.ts +0 -39
  74. package/lib/front_end/core/platform/UserVisibleError.ts +0 -28
  75. package/lib/front_end/core/platform/platform.ts +0 -45
  76. package/lib/front_end/core/protocol_client/ConnectionTransport.ts +0 -26
  77. package/lib/front_end/core/protocol_client/InspectorBackend.ts +0 -1050
  78. package/lib/front_end/core/protocol_client/NodeURL.ts +0 -42
  79. package/lib/front_end/core/protocol_client/protocol_client.ts +0 -13
  80. package/lib/front_end/core/root/Runtime.ts +0 -609
  81. package/lib/front_end/core/root/root.ts +0 -6
  82. package/lib/front_end/core/sdk/AccessibilityModel.ts +0 -353
  83. package/lib/front_end/core/sdk/AnimationModel.ts +0 -1041
  84. package/lib/front_end/core/sdk/AutofillModel.ts +0 -184
  85. package/lib/front_end/core/sdk/CPUProfilerModel.ts +0 -148
  86. package/lib/front_end/core/sdk/CPUThrottlingManager.ts +0 -282
  87. package/lib/front_end/core/sdk/CSSContainerQuery.ts +0 -139
  88. package/lib/front_end/core/sdk/CSSFontFace.ts +0 -40
  89. package/lib/front_end/core/sdk/CSSLayer.ts +0 -30
  90. package/lib/front_end/core/sdk/CSSMatchedStyles.ts +0 -1646
  91. package/lib/front_end/core/sdk/CSSMedia.ts +0 -121
  92. package/lib/front_end/core/sdk/CSSMetadata.ts +0 -1647
  93. package/lib/front_end/core/sdk/CSSModel.ts +0 -1128
  94. package/lib/front_end/core/sdk/CSSProperty.ts +0 -384
  95. package/lib/front_end/core/sdk/CSSPropertyParser.ts +0 -681
  96. package/lib/front_end/core/sdk/CSSPropertyParserMatchers.ts +0 -1395
  97. package/lib/front_end/core/sdk/CSSQuery.ts +0 -72
  98. package/lib/front_end/core/sdk/CSSRule.ts +0 -465
  99. package/lib/front_end/core/sdk/CSSScope.ts +0 -30
  100. package/lib/front_end/core/sdk/CSSStartingStyle.ts +0 -29
  101. package/lib/front_end/core/sdk/CSSStyleDeclaration.ts +0 -313
  102. package/lib/front_end/core/sdk/CSSStyleSheetHeader.ts +0 -196
  103. package/lib/front_end/core/sdk/CSSSupports.ts +0 -33
  104. package/lib/front_end/core/sdk/CategorizedBreakpoint.ts +0 -64
  105. package/lib/front_end/core/sdk/ChildTargetManager.ts +0 -314
  106. package/lib/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +0 -62
  107. package/lib/front_end/core/sdk/Connections.ts +0 -293
  108. package/lib/front_end/core/sdk/ConsoleModel.ts +0 -808
  109. package/lib/front_end/core/sdk/ConsoleModelTypes.ts +0 -15
  110. package/lib/front_end/core/sdk/Cookie.ts +0 -319
  111. package/lib/front_end/core/sdk/CookieModel.ts +0 -239
  112. package/lib/front_end/core/sdk/CookieParser.ts +0 -185
  113. package/lib/front_end/core/sdk/DOMDebuggerModel.ts +0 -787
  114. package/lib/front_end/core/sdk/DOMModel.ts +0 -1961
  115. package/lib/front_end/core/sdk/DebuggerModel.ts +0 -1605
  116. package/lib/front_end/core/sdk/EmulationModel.ts +0 -648
  117. package/lib/front_end/core/sdk/EnhancedTracesParser.ts +0 -515
  118. package/lib/front_end/core/sdk/EventBreakpointsModel.ts +0 -183
  119. package/lib/front_end/core/sdk/FrameAssociated.ts +0 -11
  120. package/lib/front_end/core/sdk/FrameManager.ts +0 -259
  121. package/lib/front_end/core/sdk/HeapProfilerModel.ts +0 -225
  122. package/lib/front_end/core/sdk/HttpReasonPhraseStrings.ts +0 -77
  123. package/lib/front_end/core/sdk/IOModel.ts +0 -91
  124. package/lib/front_end/core/sdk/IsolateManager.ts +0 -257
  125. package/lib/front_end/core/sdk/IssuesModel.ts +0 -70
  126. package/lib/front_end/core/sdk/LayerTreeBase.ts +0 -169
  127. package/lib/front_end/core/sdk/LogModel.ts +0 -56
  128. package/lib/front_end/core/sdk/NetworkManager.ts +0 -2823
  129. package/lib/front_end/core/sdk/NetworkRequest.ts +0 -2253
  130. package/lib/front_end/core/sdk/OverlayColorGenerator.ts +0 -52
  131. package/lib/front_end/core/sdk/OverlayModel.ts +0 -1011
  132. package/lib/front_end/core/sdk/OverlayPersistentHighlighter.ts +0 -522
  133. package/lib/front_end/core/sdk/PageLoad.ts +0 -35
  134. package/lib/front_end/core/sdk/PageResourceLoader.ts +0 -435
  135. package/lib/front_end/core/sdk/PaintProfiler.ts +0 -110
  136. package/lib/front_end/core/sdk/PerformanceMetricsModel.ts +0 -84
  137. package/lib/front_end/core/sdk/PreloadingModel.ts +0 -863
  138. package/lib/front_end/core/sdk/RehydratingConnection.ts +0 -386
  139. package/lib/front_end/core/sdk/RehydratingObject.ts +0 -66
  140. package/lib/front_end/core/sdk/RemoteObject.ts +0 -1160
  141. package/lib/front_end/core/sdk/Resource.ts +0 -232
  142. package/lib/front_end/core/sdk/ResourceTreeModel.ts +0 -1160
  143. package/lib/front_end/core/sdk/RuntimeModel.ts +0 -732
  144. package/lib/front_end/core/sdk/SDKModel.ts +0 -65
  145. package/lib/front_end/core/sdk/ScopeTreeCache.ts +0 -45
  146. package/lib/front_end/core/sdk/ScreenCaptureModel.ts +0 -255
  147. package/lib/front_end/core/sdk/Script.ts +0 -534
  148. package/lib/front_end/core/sdk/SecurityOriginManager.ts +0 -76
  149. package/lib/front_end/core/sdk/ServerSentEvents.ts +0 -80
  150. package/lib/front_end/core/sdk/ServerSentEventsProtocol.ts +0 -122
  151. package/lib/front_end/core/sdk/ServerTiming.ts +0 -260
  152. package/lib/front_end/core/sdk/ServiceWorkerCacheModel.ts +0 -377
  153. package/lib/front_end/core/sdk/ServiceWorkerManager.ts +0 -605
  154. package/lib/front_end/core/sdk/SourceMap.ts +0 -867
  155. package/lib/front_end/core/sdk/SourceMapCache.ts +0 -54
  156. package/lib/front_end/core/sdk/SourceMapFunctionRanges.ts +0 -156
  157. package/lib/front_end/core/sdk/SourceMapManager.ts +0 -239
  158. package/lib/front_end/core/sdk/SourceMapScopeChainEntry.ts +0 -189
  159. package/lib/front_end/core/sdk/SourceMapScopesInfo.ts +0 -508
  160. package/lib/front_end/core/sdk/StorageBucketsModel.ts +0 -204
  161. package/lib/front_end/core/sdk/StorageKeyManager.ts +0 -98
  162. package/lib/front_end/core/sdk/Target.ts +0 -332
  163. package/lib/front_end/core/sdk/TargetManager.ts +0 -453
  164. package/lib/front_end/core/sdk/TraceObject.ts +0 -61
  165. package/lib/front_end/core/sdk/WebAuthnModel.ts +0 -104
  166. package/lib/front_end/core/sdk/sdk.ts +0 -174
  167. package/lib/front_end/entrypoints/formatter_worker/FormatterActions.ts +0 -59
  168. package/lib/front_end/generated/InspectorBackendCommands.js +0 -1617
  169. package/lib/front_end/generated/SupportedCSSProperties.js +0 -7512
  170. package/lib/front_end/generated/protocol-proxy-api.d.ts +0 -5022
  171. package/lib/front_end/generated/protocol.ts +0 -22014
  172. package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +0 -318
  173. package/lib/front_end/models/bindings/CompilerScriptMapping.ts +0 -536
  174. package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +0 -187
  175. package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -1197
  176. package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -733
  177. package/lib/front_end/models/bindings/DefaultScriptMapping.ts +0 -141
  178. package/lib/front_end/models/bindings/FileUtils.ts +0 -228
  179. package/lib/front_end/models/bindings/LiveLocation.ts +0 -81
  180. package/lib/front_end/models/bindings/NetworkProject.ts +0 -157
  181. package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +0 -312
  182. package/lib/front_end/models/bindings/ResourceMapping.ts +0 -539
  183. package/lib/front_end/models/bindings/ResourceScriptMapping.ts +0 -491
  184. package/lib/front_end/models/bindings/ResourceUtils.ts +0 -103
  185. package/lib/front_end/models/bindings/SASSSourceMapping.ts +0 -222
  186. package/lib/front_end/models/bindings/StylesSourceMapping.ts +0 -316
  187. package/lib/front_end/models/bindings/TempFile.ts +0 -67
  188. package/lib/front_end/models/bindings/bindings.ts +0 -39
  189. package/lib/front_end/models/cpu_profile/CPUProfileDataModel.ts +0 -571
  190. package/lib/front_end/models/cpu_profile/ProfileTreeModel.ts +0 -103
  191. package/lib/front_end/models/cpu_profile/cpu_profile.ts +0 -11
  192. package/lib/front_end/models/formatter/FormatterWorkerPool.ts +0 -219
  193. package/lib/front_end/models/formatter/ScriptFormatter.ts +0 -112
  194. package/lib/front_end/models/formatter/formatter.ts +0 -8
  195. package/lib/front_end/models/source_map_scopes/NamesResolver.ts +0 -765
  196. package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +0 -84
  197. package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +0 -11
  198. package/lib/front_end/models/stack_trace/StackTrace.ts +0 -53
  199. package/lib/front_end/models/stack_trace/StackTraceImpl.ts +0 -85
  200. package/lib/front_end/models/stack_trace/StackTraceModel.ts +0 -128
  201. package/lib/front_end/models/stack_trace/Trie.ts +0 -163
  202. package/lib/front_end/models/stack_trace/stack_trace.ts +0 -9
  203. package/lib/front_end/models/stack_trace/stack_trace_impl.ts +0 -13
  204. package/lib/front_end/models/text_utils/CodeMirrorUtils.ts +0 -37
  205. package/lib/front_end/models/text_utils/ContentData.ts +0 -199
  206. package/lib/front_end/models/text_utils/ContentProvider.ts +0 -68
  207. package/lib/front_end/models/text_utils/StaticContentProvider.ts +0 -49
  208. package/lib/front_end/models/text_utils/StreamingContentData.ts +0 -108
  209. package/lib/front_end/models/text_utils/Text.ts +0 -90
  210. package/lib/front_end/models/text_utils/TextCursor.ts +0 -44
  211. package/lib/front_end/models/text_utils/TextRange.ts +0 -266
  212. package/lib/front_end/models/text_utils/TextUtils.ts +0 -401
  213. package/lib/front_end/models/text_utils/WasmDisassembly.ts +0 -87
  214. package/lib/front_end/models/text_utils/text_utils.ts +0 -27
  215. package/lib/front_end/models/trace/EntityMapper.ts +0 -141
  216. package/lib/front_end/models/trace/EventsSerializer.ts +0 -101
  217. package/lib/front_end/models/trace/LanternComputationData.ts +0 -438
  218. package/lib/front_end/models/trace/ModelImpl.ts +0 -236
  219. package/lib/front_end/models/trace/Name.ts +0 -136
  220. package/lib/front_end/models/trace/Processor.ts +0 -652
  221. package/lib/front_end/models/trace/Styles.ts +0 -1138
  222. package/lib/front_end/models/trace/extras/FilmStrip.ts +0 -78
  223. package/lib/front_end/models/trace/extras/MainThreadActivity.ts +0 -86
  224. package/lib/front_end/models/trace/extras/ScriptDuplication.ts +0 -236
  225. package/lib/front_end/models/trace/extras/StackTraceForEvent.ts +0 -203
  226. package/lib/front_end/models/trace/extras/ThirdParties.ts +0 -164
  227. package/lib/front_end/models/trace/extras/TraceFilter.ts +0 -62
  228. package/lib/front_end/models/trace/extras/TraceTree.ts +0 -701
  229. package/lib/front_end/models/trace/extras/extras.ts +0 -11
  230. package/lib/front_end/models/trace/handlers/AnimationFramesHandler.ts +0 -128
  231. package/lib/front_end/models/trace/handlers/AnimationHandler.ts +0 -36
  232. package/lib/front_end/models/trace/handlers/AsyncJSCallsHandler.ts +0 -239
  233. package/lib/front_end/models/trace/handlers/AuctionWorkletsHandler.ts +0 -183
  234. package/lib/front_end/models/trace/handlers/DOMStatsHandler.ts +0 -31
  235. package/lib/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +0 -306
  236. package/lib/front_end/models/trace/handlers/FlowsHandler.ts +0 -175
  237. package/lib/front_end/models/trace/handlers/FramesHandler.ts +0 -571
  238. package/lib/front_end/models/trace/handlers/GPUHandler.ts +0 -50
  239. package/lib/front_end/models/trace/handlers/ImagePaintingHandler.ts +0 -183
  240. package/lib/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -193
  241. package/lib/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -168
  242. package/lib/front_end/models/trace/handlers/LargestImagePaintHandler.ts +0 -109
  243. package/lib/front_end/models/trace/handlers/LargestTextPaintHandler.ts +0 -35
  244. package/lib/front_end/models/trace/handlers/LayerTreeHandler.ts +0 -123
  245. package/lib/front_end/models/trace/handlers/LayoutShiftsHandler.ts +0 -573
  246. package/lib/front_end/models/trace/handlers/MemoryHandler.ts +0 -31
  247. package/lib/front_end/models/trace/handlers/MetaHandler.ts +0 -525
  248. package/lib/front_end/models/trace/handlers/ModelHandlers.ts +0 -34
  249. package/lib/front_end/models/trace/handlers/NetworkRequestsHandler.ts +0 -672
  250. package/lib/front_end/models/trace/handlers/PageFramesHandler.ts +0 -52
  251. package/lib/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +0 -460
  252. package/lib/front_end/models/trace/handlers/RendererHandler.ts +0 -428
  253. package/lib/front_end/models/trace/handlers/SamplesHandler.ts +0 -271
  254. package/lib/front_end/models/trace/handlers/ScreenshotsHandler.ts +0 -122
  255. package/lib/front_end/models/trace/handlers/ScriptsHandler.ts +0 -336
  256. package/lib/front_end/models/trace/handlers/SelectorStatsHandler.ts +0 -110
  257. package/lib/front_end/models/trace/handlers/Threads.ts +0 -139
  258. package/lib/front_end/models/trace/handlers/UserInteractionsHandler.ts +0 -400
  259. package/lib/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -233
  260. package/lib/front_end/models/trace/handlers/WarningsHandler.ts +0 -162
  261. package/lib/front_end/models/trace/handlers/WorkersHandler.ts +0 -45
  262. package/lib/front_end/models/trace/handlers/handlers.ts +0 -8
  263. package/lib/front_end/models/trace/handlers/helpers.ts +0 -196
  264. package/lib/front_end/models/trace/handlers/types.ts +0 -75
  265. package/lib/front_end/models/trace/helpers/Extensions.ts +0 -54
  266. package/lib/front_end/models/trace/helpers/Network.ts +0 -129
  267. package/lib/front_end/models/trace/helpers/SamplesIntegrator.ts +0 -544
  268. package/lib/front_end/models/trace/helpers/SyntheticEvents.ts +0 -87
  269. package/lib/front_end/models/trace/helpers/Timing.ts +0 -248
  270. package/lib/front_end/models/trace/helpers/Trace.ts +0 -928
  271. package/lib/front_end/models/trace/helpers/TreeHelpers.ts +0 -320
  272. package/lib/front_end/models/trace/helpers/helpers.ts +0 -11
  273. package/lib/front_end/models/trace/insights/CLSCulprits.ts +0 -668
  274. package/lib/front_end/models/trace/insights/Cache.ts +0 -269
  275. package/lib/front_end/models/trace/insights/Common.ts +0 -453
  276. package/lib/front_end/models/trace/insights/DOMSize.ts +0 -223
  277. package/lib/front_end/models/trace/insights/DocumentLatency.ts +0 -319
  278. package/lib/front_end/models/trace/insights/DuplicatedJavaScript.ts +0 -126
  279. package/lib/front_end/models/trace/insights/FontDisplay.ts +0 -119
  280. package/lib/front_end/models/trace/insights/ForcedReflow.ts +0 -220
  281. package/lib/front_end/models/trace/insights/INPBreakdown.ts +0 -171
  282. package/lib/front_end/models/trace/insights/ImageDelivery.ts +0 -348
  283. package/lib/front_end/models/trace/insights/LCPBreakdown.ts +0 -268
  284. package/lib/front_end/models/trace/insights/LCPDiscovery.ts +0 -237
  285. package/lib/front_end/models/trace/insights/LegacyJavaScript.ts +0 -138
  286. package/lib/front_end/models/trace/insights/Models.ts +0 -22
  287. package/lib/front_end/models/trace/insights/ModernHTTP.ts +0 -257
  288. package/lib/front_end/models/trace/insights/NetworkDependencyTree.ts +0 -726
  289. package/lib/front_end/models/trace/insights/RenderBlocking.ts +0 -257
  290. package/lib/front_end/models/trace/insights/SlowCSSSelector.ts +0 -175
  291. package/lib/front_end/models/trace/insights/Statistics.ts +0 -101
  292. package/lib/front_end/models/trace/insights/ThirdParties.ts +0 -130
  293. package/lib/front_end/models/trace/insights/Viewport.ts +0 -138
  294. package/lib/front_end/models/trace/insights/insights.ts +0 -10
  295. package/lib/front_end/models/trace/insights/types.ts +0 -157
  296. package/lib/front_end/models/trace/lantern/core/LanternError.ts +0 -7
  297. package/lib/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +0 -619
  298. package/lib/front_end/models/trace/lantern/core/core.ts +0 -6
  299. package/lib/front_end/models/trace/lantern/graph/BaseNode.ts +0 -345
  300. package/lib/front_end/models/trace/lantern/graph/CPUNode.ts +0 -80
  301. package/lib/front_end/models/trace/lantern/graph/NetworkNode.ts +0 -101
  302. package/lib/front_end/models/trace/lantern/graph/PageDependencyGraph.ts +0 -636
  303. package/lib/front_end/models/trace/lantern/graph/graph.ts +0 -8
  304. package/lib/front_end/models/trace/lantern/lantern.ts +0 -17
  305. package/lib/front_end/models/trace/lantern/metrics/FirstContentfulPaint.ts +0 -187
  306. package/lib/front_end/models/trace/lantern/metrics/Interactive.ts +0 -88
  307. package/lib/front_end/models/trace/lantern/metrics/LargestContentfulPaint.ts +0 -92
  308. package/lib/front_end/models/trace/lantern/metrics/MaxPotentialFID.ts +0 -72
  309. package/lib/front_end/models/trace/lantern/metrics/Metric.ts +0 -126
  310. package/lib/front_end/models/trace/lantern/metrics/SpeedIndex.ts +0 -126
  311. package/lib/front_end/models/trace/lantern/metrics/TBTUtils.ts +0 -82
  312. package/lib/front_end/models/trace/lantern/metrics/TotalBlockingTime.ts +0 -112
  313. package/lib/front_end/models/trace/lantern/metrics/metrics.ts +0 -12
  314. package/lib/front_end/models/trace/lantern/simulation/ConnectionPool.ts +0 -150
  315. package/lib/front_end/models/trace/lantern/simulation/Constants.ts +0 -46
  316. package/lib/front_end/models/trace/lantern/simulation/DNSCache.ts +0 -61
  317. package/lib/front_end/models/trace/lantern/simulation/SimulationTimingMap.ts +0 -196
  318. package/lib/front_end/models/trace/lantern/simulation/Simulator.ts +0 -556
  319. package/lib/front_end/models/trace/lantern/simulation/TCPConnection.ts +0 -192
  320. package/lib/front_end/models/trace/lantern/simulation/simulation.ts +0 -10
  321. package/lib/front_end/models/trace/lantern/types/Lantern.ts +0 -220
  322. package/lib/front_end/models/trace/lantern/types/types.ts +0 -5
  323. package/lib/front_end/models/trace/trace.ts +0 -33
  324. package/lib/front_end/models/trace/types/Configuration.ts +0 -110
  325. package/lib/front_end/models/trace/types/Extensions.ts +0 -136
  326. package/lib/front_end/models/trace/types/File.ts +0 -281
  327. package/lib/front_end/models/trace/types/Overlays.ts +0 -138
  328. package/lib/front_end/models/trace/types/Timing.ts +0 -30
  329. package/lib/front_end/models/trace/types/TraceEvents.ts +0 -3277
  330. package/lib/front_end/models/trace/types/types.ts +0 -10
  331. package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +0 -240
  332. package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +0 -5
  333. package/lib/front_end/models/workspace/FileManager.ts +0 -97
  334. package/lib/front_end/models/workspace/IgnoreListManager.ts +0 -628
  335. package/lib/front_end/models/workspace/SearchConfig.ts +0 -149
  336. package/lib/front_end/models/workspace/UISourceCode.ts +0 -698
  337. package/lib/front_end/models/workspace/WorkspaceImpl.ts +0 -339
  338. package/lib/front_end/models/workspace/workspace.ts +0 -17
  339. package/lib/front_end/panels/timeline/TimelineUIUtils.ts +0 -1029
  340. package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +0 -49
  341. package/lib/front_end/panels/timeline/extensions/extensions.ts +0 -9
  342. package/lib/front_end/third_party/codemirror.next/LICENSE +0 -21
  343. package/lib/front_end/third_party/codemirror.next/README.chromium +0 -30
  344. package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +0 -24
  345. package/lib/front_end/third_party/codemirror.next/bundle.ts +0 -135
  346. package/lib/front_end/third_party/codemirror.next/chunk/angular.js +0 -2
  347. package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +0 -1
  348. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +0 -2
  349. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +0 -1
  350. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +0 -2
  351. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +0 -1
  352. package/lib/front_end/third_party/codemirror.next/chunk/css.js +0 -2
  353. package/lib/front_end/third_party/codemirror.next/chunk/html.js +0 -4
  354. package/lib/front_end/third_party/codemirror.next/chunk/java.js +0 -2
  355. package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +0 -1
  356. package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +0 -2
  357. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +0 -2
  358. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +0 -1
  359. package/lib/front_end/third_party/codemirror.next/chunk/less.js +0 -2
  360. package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +0 -1
  361. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +0 -2
  362. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +0 -1
  363. package/lib/front_end/third_party/codemirror.next/chunk/php.js +0 -2
  364. package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +0 -1
  365. package/lib/front_end/third_party/codemirror.next/chunk/python.js +0 -2
  366. package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +0 -1
  367. package/lib/front_end/third_party/codemirror.next/chunk/sass.js +0 -2
  368. package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +0 -1
  369. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +0 -2
  370. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +0 -1
  371. package/lib/front_end/third_party/codemirror.next/chunk/vue.js +0 -2
  372. package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +0 -1
  373. package/lib/front_end/third_party/codemirror.next/chunk/wast.js +0 -2
  374. package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +0 -1
  375. package/lib/front_end/third_party/codemirror.next/chunk/xml.js +0 -2
  376. package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +0 -1
  377. package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +0 -8057
  378. package/lib/front_end/third_party/codemirror.next/codemirror.next.js +0 -2
  379. package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +0 -1
  380. package/lib/front_end/third_party/codemirror.next/package.json +0 -43
  381. package/lib/front_end/third_party/codemirror.next/rebuild.sh +0 -6
  382. package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +0 -49
  383. package/lib/front_end/third_party/i18n/LICENSE +0 -202
  384. package/lib/front_end/third_party/i18n/README.chromium +0 -15
  385. package/lib/front_end/third_party/i18n/i18n-impl.ts +0 -61
  386. package/lib/front_end/third_party/i18n/i18n.ts +0 -11
  387. package/lib/front_end/third_party/i18n/localized-string-set.ts +0 -129
  388. package/lib/front_end/third_party/intl-messageformat/LICENSE +0 -33
  389. package/lib/front_end/third_party/intl-messageformat/README.chromium +0 -24
  390. package/lib/front_end/third_party/intl-messageformat/intl-messageformat-tsconfig.json +0 -16
  391. package/lib/front_end/third_party/intl-messageformat/intl-messageformat.ts +0 -6
  392. package/lib/front_end/third_party/intl-messageformat/package/LICENSE.md +0 -33
  393. package/lib/front_end/third_party/intl-messageformat/package/README.md +0 -3
  394. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts +0 -6
  395. package/lib/front_end/third_party/intl-messageformat/package/index.d.ts.map +0 -1
  396. package/lib/front_end/third_party/intl-messageformat/package/index.js +0 -13
  397. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.d.ts +0 -5
  398. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +0 -1710
  399. package/lib/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +0 -1815
  400. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts +0 -6
  401. package/lib/front_end/third_party/intl-messageformat/package/lib/index.d.ts.map +0 -1
  402. package/lib/front_end/third_party/intl-messageformat/package/lib/index.js +0 -10
  403. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts +0 -34
  404. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.d.ts.map +0 -1
  405. package/lib/front_end/third_party/intl-messageformat/package/lib/src/core.js +0 -229
  406. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts +0 -28
  407. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.d.ts.map +0 -1
  408. package/lib/front_end/third_party/intl-messageformat/package/lib/src/error.js +0 -48
  409. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts +0 -34
  410. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.d.ts.map +0 -1
  411. package/lib/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +0 -179
  412. package/lib/front_end/third_party/intl-messageformat/package/package.json +0 -42
  413. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts +0 -34
  414. package/lib/front_end/third_party/intl-messageformat/package/src/core.d.ts.map +0 -1
  415. package/lib/front_end/third_party/intl-messageformat/package/src/core.js +0 -230
  416. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts +0 -28
  417. package/lib/front_end/third_party/intl-messageformat/package/src/error.d.ts.map +0 -1
  418. package/lib/front_end/third_party/intl-messageformat/package/src/error.js +0 -51
  419. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts +0 -34
  420. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.d.ts.map +0 -1
  421. package/lib/front_end/third_party/intl-messageformat/package/src/formatters.js +0 -182
  422. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/error.d.ts +0 -79
  423. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/index.d.ts +0 -15
  424. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/parser.d.ts +0 -153
  425. package/lib/front_end/third_party/intl-messageformat/package/src/icu-messageformat-parser/types.d.ts +0 -139
  426. package/lib/front_end/third_party/legacy-javascript/LICENSE +0 -202
  427. package/lib/front_end/third_party/legacy-javascript/README.chromium +0 -13
  428. package/lib/front_end/third_party/legacy-javascript/legacy-javascript-tsconfig.json +0 -8
  429. package/lib/front_end/third_party/legacy-javascript/legacy-javascript.ts +0 -3
  430. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.d.ts +0 -18
  431. package/lib/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +0 -943
  432. package/lib/front_end/third_party/legacy-javascript/package.json +0 -8
  433. package/lib/front_end/third_party/legacy-javascript/rebuild.sh +0 -9
  434. package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +0 -26
  435. package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +0 -31
  436. package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +0 -33
  437. package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +0 -26
  438. package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +0 -64
  439. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +0 -62
  440. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +0 -1
  441. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +0 -37
  442. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +0 -1
  443. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +0 -29
  444. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +0 -1
  445. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +0 -8
  446. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +0 -1
  447. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +0 -6
  448. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +0 -1
  449. package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +0 -21
  450. package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +0 -14
  451. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +0 -196
  452. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +0 -1
  453. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +0 -262
  454. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +0 -235
  455. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +0 -1
  456. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +0 -359
  457. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +0 -39
  458. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +0 -1
  459. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +0 -53
  460. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +0 -438
  461. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +0 -1
  462. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +0 -539
  463. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +0 -23
  464. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +0 -1
  465. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +0 -35
  466. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +0 -257
  467. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +0 -1
  468. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +0 -348
  469. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +0 -8
  470. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +0 -1
  471. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +0 -20
  472. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +0 -8
  473. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +0 -184
  474. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +0 -9
  475. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +0 -1
  476. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +0 -12
  477. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +0 -82
  478. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +0 -1
  479. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +0 -99
  480. package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +0 -5
  481. package/lib/front_end/third_party/third-party-web/LICENSE +0 -20
  482. package/lib/front_end/third_party/third-party-web/README.chromium +0 -13
  483. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.d.ts +0 -2
  484. package/lib/front_end/third_party/third-party-web/lib/nostats-subset.js +0 -149
  485. package/lib/front_end/third_party/third-party-web/package/LICENSE +0 -20
  486. package/lib/front_end/third_party/third-party-web/package/README.md +0 -929
  487. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive-nostats.json +0 -1
  488. package/lib/front_end/third_party/third-party-web/package/dist/entities-httparchive.json +0 -1
  489. package/lib/front_end/third_party/third-party-web/package/dist/entities-nostats.json +0 -1
  490. package/lib/front_end/third_party/third-party-web/package/dist/entities.json +0 -1
  491. package/lib/front_end/third_party/third-party-web/package/facades.md +0 -46
  492. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.d.ts +0 -1
  493. package/lib/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +0 -1
  494. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.d.ts +0 -1
  495. package/lib/front_end/third_party/third-party-web/package/httparchive-subset.js +0 -1
  496. package/lib/front_end/third_party/third-party-web/package/lib/__snapshots__/index.test.js.snap +0 -1006
  497. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +0 -139
  498. package/lib/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +0 -44
  499. package/lib/front_end/third_party/third-party-web/package/lib/entities.test.js +0 -27
  500. package/lib/front_end/third_party/third-party-web/package/lib/index.d.ts +0 -34
  501. package/lib/front_end/third_party/third-party-web/package/lib/index.js +0 -3
  502. package/lib/front_end/third_party/third-party-web/package/lib/index.test.js +0 -246
  503. package/lib/front_end/third_party/third-party-web/package/lib/markdown/faqs.partial.md +0 -36
  504. package/lib/front_end/third_party/third-party-web/package/lib/markdown/goals.partial.md +0 -9
  505. package/lib/front_end/third_party/third-party-web/package/lib/markdown/methodology.partial.md +0 -5
  506. package/lib/front_end/third_party/third-party-web/package/lib/markdown/template.md +0 -151
  507. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-02-01.md +0 -1
  508. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-03-01.md +0 -1
  509. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-06.md +0 -1
  510. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2019-05-13.md +0 -14
  511. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2021-01-01.md +0 -1
  512. package/lib/front_end/third_party/third-party-web/package/lib/markdown/updates/2024-07-01.md +0 -3
  513. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.d.ts +0 -1
  514. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +0 -3
  515. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.d.ts +0 -1
  516. package/lib/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +0 -3
  517. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.d.ts +0 -1
  518. package/lib/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +0 -3
  519. package/lib/front_end/third_party/third-party-web/package/nostats-subset.d.ts +0 -1
  520. package/lib/front_end/third_party/third-party-web/package/nostats-subset.js +0 -1
  521. package/lib/front_end/third_party/third-party-web/package/package.json +0 -46
  522. package/lib/front_end/third_party/third-party-web/package.json +0 -8
  523. package/lib/front_end/third_party/third-party-web/rebuild.sh +0 -13
  524. package/lib/front_end/third_party/third-party-web/third-party-web-tsconfig.json +0 -8
  525. package/lib/front_end/third_party/third-party-web/third-party-web.ts +0 -3
  526. package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +0 -222
  527. package/lib/front_end/ui/legacy/theme_support/theme_support.ts +0 -5
  528. package/patches/chrome-devtools-frontend+1.0.1533544.patch +0 -1716
@@ -1,867 +0,0 @@
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
-
5
- import * as TextUtils from '../../models/text_utils/text_utils.js';
6
- import * as ScopesCodec from '../../third_party/source-map-scopes-codec/source-map-scopes-codec.js';
7
- import * as Common from '../common/common.js';
8
- import * as Platform from '../platform/platform.js';
9
- import * as Root from '../root/root.js';
10
-
11
- import type {CallFrame, ScopeChainEntry} from './DebuggerModel.js';
12
- import {scopeTreeForScript} from './ScopeTreeCache.js';
13
- import type {Script} from './Script.js';
14
- import {buildOriginalScopes, decodePastaRanges, type NamedFunctionRange} from './SourceMapFunctionRanges.js';
15
- import {SourceMapScopesInfo, type TranslatedFrame} from './SourceMapScopesInfo.js';
16
-
17
- /**
18
- * Type of the base source map JSON object, which contains the sources and the mappings at the very least, plus
19
- * some additional fields.
20
- *
21
- * @see {@link SourceMapV3}
22
- * @see {@link https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k Source Map Revision 3 Proposal}
23
- */
24
- export interface SourceMapV3Object {
25
- /* eslint-disable @typescript-eslint/naming-convention */
26
- version: number;
27
- sources: string[];
28
- mappings: string;
29
-
30
- file?: string;
31
- sourceRoot?: string;
32
- sourcesContent?: Array<string|null>;
33
-
34
- names?: string[];
35
- ignoreList?: number[];
36
- scopes?: string;
37
- debugId?: string;
38
- x_google_linecount?: number;
39
- x_google_ignoreList?: number[];
40
- x_com_bloomberg_sourcesFunctionMappings?: string[];
41
- /* eslint-enable @typescript-eslint/naming-convention */
42
- }
43
-
44
- /**
45
- * Type of JSON objects that classify as valid sourcemaps per version 3 of the specification.
46
- *
47
- * We support both possible formats, the traditional source map object (represented by the {@link SourceMapV3Object} type),
48
- * as well as the index map format, which consists of a sequence of sections that each hold source maps objects themselves
49
- * or URLs to external source map files.
50
- *
51
- * @see {@link SourceMapV3Object}
52
- * @see {@link https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k Source Map Revision 3 Proposal}
53
- */
54
- export type SourceMapV3 = SourceMapV3Object|{
55
- // clang-format off
56
- version: number,
57
- sections: Array<{
58
- offset: {line: number, column: number},
59
- map: SourceMapV3Object,
60
- } | {
61
- offset: {line: number, column: number},
62
- url: string,
63
- }>,
64
- file?: string,
65
- // clang-format on
66
- };
67
-
68
- /**
69
- * Parses the {@link content} as JSON, ignoring BOM markers in the beginning, and
70
- * also handling the CORB bypass prefix correctly.
71
- *
72
- * @param content the string representation of a sourcemap.
73
- * @returns the {@link SourceMapV3} representation of the {@link content}.
74
- */
75
- export function parseSourceMap(content: string): SourceMapV3 {
76
- if (content.startsWith(')]}')) {
77
- content = content.substring(content.indexOf('\n'));
78
- }
79
- if (content.charCodeAt(0) === 0xFEFF) {
80
- // Strip BOM at the beginning before parsing the JSON.
81
- content = content.slice(1);
82
- }
83
- return JSON.parse(content) as SourceMapV3;
84
- }
85
-
86
- export type DebugId = Platform.Brand.Brand<string, 'DebugId'>;
87
-
88
- export class SourceMapEntry {
89
- readonly lineNumber: number;
90
- readonly columnNumber: number;
91
- readonly sourceIndex?: number;
92
- readonly sourceURL: Platform.DevToolsPath.UrlString|undefined;
93
- readonly sourceLineNumber: number;
94
- readonly sourceColumnNumber: number;
95
- readonly name: string|undefined;
96
-
97
- constructor(
98
- lineNumber: number, columnNumber: number, sourceIndex?: number, sourceURL?: Platform.DevToolsPath.UrlString,
99
- sourceLineNumber?: number, sourceColumnNumber?: number, name?: string) {
100
- this.lineNumber = lineNumber;
101
- this.columnNumber = columnNumber;
102
- this.sourceIndex = sourceIndex;
103
- this.sourceURL = sourceURL;
104
- this.sourceLineNumber = (sourceLineNumber as number);
105
- this.sourceColumnNumber = (sourceColumnNumber as number);
106
- this.name = name;
107
- }
108
-
109
- static compare(entry1: SourceMapEntry, entry2: SourceMapEntry): number {
110
- if (entry1.lineNumber !== entry2.lineNumber) {
111
- return entry1.lineNumber - entry2.lineNumber;
112
- }
113
- return entry1.columnNumber - entry2.columnNumber;
114
- }
115
- }
116
-
117
- interface SourceInfo {
118
- sourceURL: Platform.DevToolsPath.UrlString;
119
- content: string|null;
120
- ignoreListHint: boolean;
121
- reverseMappings: number[]|null;
122
- }
123
-
124
- export class SourceMap {
125
- static retainRawSourceMaps = false;
126
-
127
- #json: SourceMapV3|null;
128
- readonly #compiledURL: Platform.DevToolsPath.UrlString;
129
- readonly #sourceMappingURL: Platform.DevToolsPath.UrlString;
130
- readonly #baseURL: Platform.DevToolsPath.UrlString;
131
- #mappings: SourceMapEntry[]|null;
132
-
133
- readonly #sourceInfos: SourceInfo[] = [];
134
- readonly #sourceInfoByURL = new Map<Platform.DevToolsPath.UrlString, SourceInfo>();
135
-
136
- readonly #script?: Script;
137
- #scopesInfo: SourceMapScopesInfo|null = null;
138
-
139
- readonly #debugId?: DebugId;
140
-
141
- scopesFallbackPromiseForTest?: Promise<unknown>;
142
-
143
- /**
144
- * Implements Source Map V3 model. See https://github.com/google/closure-compiler/wiki/Source-Maps
145
- * for format description.
146
- */
147
- constructor(
148
- compiledURL: Platform.DevToolsPath.UrlString, sourceMappingURL: Platform.DevToolsPath.UrlString,
149
- payload: SourceMapV3, script?: Script) {
150
- this.#json = payload;
151
- this.#script = script;
152
- this.#compiledURL = compiledURL;
153
- this.#sourceMappingURL = sourceMappingURL;
154
- this.#baseURL = (Common.ParsedURL.schemeIs(sourceMappingURL, 'data:')) ? compiledURL : sourceMappingURL;
155
- this.#debugId = 'debugId' in payload ? (payload.debugId as DebugId | undefined) : undefined;
156
-
157
- this.#mappings = null;
158
- if ('sections' in this.#json) {
159
- if (this.#json.sections.find(section => 'url' in section)) {
160
- Common.Console.Console.instance().warn(
161
- `SourceMap "${sourceMappingURL}" contains unsupported "URL" field in one of its sections.`);
162
- }
163
- }
164
- this.eachSection(this.parseSources.bind(this));
165
- }
166
-
167
- json(): SourceMapV3|null {
168
- return this.#json;
169
- }
170
-
171
- augmentWithScopes(scriptUrl: Platform.DevToolsPath.UrlString, ranges: NamedFunctionRange[]): void {
172
- this.#ensureSourceMapProcessed();
173
- if (this.#json && this.#json.version > 3) {
174
- throw new Error('Only support augmenting source maps up to version 3.');
175
- }
176
- // Ensure scriptUrl is associated with sourceMap sources
177
- const sourceIdx = this.#sourceIndex(scriptUrl);
178
- if (sourceIdx >= 0) {
179
- if (!this.#scopesInfo) {
180
- // First time seeing this sourcemap, create an new empty scopesInfo object
181
- this.#scopesInfo = new SourceMapScopesInfo(this, {scopes: [], ranges: []});
182
- }
183
- if (!this.#scopesInfo.hasOriginalScopes(sourceIdx)) {
184
- const originalScopes = buildOriginalScopes(ranges);
185
- this.#scopesInfo.addOriginalScopesAtIndex(sourceIdx, originalScopes);
186
- }
187
- } else {
188
- throw new Error(`Could not find sourceURL ${scriptUrl} in sourceMap`);
189
- }
190
- }
191
-
192
- #sourceIndex(sourceURL: Platform.DevToolsPath.UrlString): number {
193
- return this.#sourceInfos.findIndex(info => info.sourceURL === sourceURL);
194
- }
195
-
196
- compiledURL(): Platform.DevToolsPath.UrlString {
197
- return this.#compiledURL;
198
- }
199
-
200
- url(): Platform.DevToolsPath.UrlString {
201
- return this.#sourceMappingURL;
202
- }
203
-
204
- debugId(): DebugId|null {
205
- return this.#debugId ?? null;
206
- }
207
-
208
- sourceURLForSourceIndex(index: number): Platform.DevToolsPath.UrlString|undefined {
209
- return this.#sourceInfos[index]?.sourceURL;
210
- }
211
-
212
- sourceURLs(): Platform.DevToolsPath.UrlString[] {
213
- return [...this.#sourceInfoByURL.keys()];
214
- }
215
-
216
- embeddedContentByURL(sourceURL: Platform.DevToolsPath.UrlString): string|null {
217
- const entry = this.#sourceInfoByURL.get(sourceURL);
218
- if (!entry) {
219
- return null;
220
- }
221
- return entry.content;
222
- }
223
-
224
- hasScopeInfo(): boolean {
225
- this.#ensureSourceMapProcessed();
226
- return this.#scopesInfo !== null && !this.#scopesInfo.isEmpty();
227
- }
228
-
229
- findEntry(lineNumber: number, columnNumber: number, inlineFrameIndex?: number): SourceMapEntry|null {
230
- this.#ensureSourceMapProcessed();
231
- if (inlineFrameIndex && this.#scopesInfo !== null) {
232
- // For inlineFrameIndex != 0 we use the callsite info for the corresponding inlining site.
233
- // Note that the callsite for "inlineFrameIndex" is actually in the previous frame.
234
- const {inlinedFunctions} = this.#scopesInfo.findInlinedFunctions(lineNumber, columnNumber);
235
- const {callsite} = inlinedFunctions[inlineFrameIndex - 1];
236
- if (!callsite) {
237
- console.error('Malformed source map. Expected to have a callsite info for index', inlineFrameIndex);
238
- return null;
239
- }
240
- return {
241
- lineNumber,
242
- columnNumber,
243
- sourceIndex: callsite.sourceIndex,
244
- sourceURL: this.sourceURLs()[callsite.sourceIndex],
245
- sourceLineNumber: callsite.line,
246
- sourceColumnNumber: callsite.column,
247
- name: undefined,
248
- };
249
- }
250
- const mappings = this.mappings();
251
- const index = Platform.ArrayUtilities.upperBound(
252
- mappings, undefined, (_, entry) => lineNumber - entry.lineNumber || columnNumber - entry.columnNumber);
253
- return index ? mappings[index - 1] : null;
254
- }
255
-
256
- findEntryRanges(lineNumber: number, columnNumber: number): {
257
- range: TextUtils.TextRange.TextRange,
258
- sourceRange: TextUtils.TextRange.TextRange,
259
- sourceURL: Platform.DevToolsPath.UrlString,
260
- }|null {
261
- const mappings = this.mappings();
262
- const endIndex = Platform.ArrayUtilities.upperBound(
263
- mappings, undefined, (_, entry) => lineNumber - entry.lineNumber || columnNumber - entry.columnNumber);
264
- if (!endIndex) {
265
- // If the line and column are preceding all the entries, then there is nothing to map.
266
- return null;
267
- }
268
- // startIndex must be within mappings range because endIndex must be not falsy
269
- const startIndex = endIndex - 1;
270
- const sourceURL = mappings[startIndex].sourceURL;
271
- if (!sourceURL) {
272
- return null;
273
- }
274
-
275
- // Let us compute the range that contains the source position in the compiled code.
276
- const endLine = endIndex < mappings.length ? mappings[endIndex].lineNumber : 2 ** 31 - 1;
277
- const endColumn = endIndex < mappings.length ? mappings[endIndex].columnNumber : 2 ** 31 - 1;
278
- const range = new TextUtils.TextRange.TextRange(
279
- mappings[startIndex].lineNumber, mappings[startIndex].columnNumber, endLine, endColumn);
280
-
281
- // Now try to find the corresponding token in the original code.
282
- const reverseMappings = this.reversedMappings(sourceURL);
283
- const startSourceLine = mappings[startIndex].sourceLineNumber;
284
- const startSourceColumn = mappings[startIndex].sourceColumnNumber;
285
- const endReverseIndex = Platform.ArrayUtilities.upperBound(
286
- reverseMappings, undefined,
287
- (_, i) => startSourceLine - mappings[i].sourceLineNumber || startSourceColumn - mappings[i].sourceColumnNumber);
288
- if (!endReverseIndex) {
289
- return null;
290
- }
291
- const endSourceLine = endReverseIndex < reverseMappings.length ?
292
- mappings[reverseMappings[endReverseIndex]].sourceLineNumber :
293
- 2 ** 31 - 1;
294
- const endSourceColumn = endReverseIndex < reverseMappings.length ?
295
- mappings[reverseMappings[endReverseIndex]].sourceColumnNumber :
296
- 2 ** 31 - 1;
297
-
298
- const sourceRange =
299
- new TextUtils.TextRange.TextRange(startSourceLine, startSourceColumn, endSourceLine, endSourceColumn);
300
- return {range, sourceRange, sourceURL};
301
- }
302
-
303
- sourceLineMapping(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
304
- SourceMapEntry|null {
305
- const mappings = this.mappings();
306
- const reverseMappings = this.reversedMappings(sourceURL);
307
- const first = Platform.ArrayUtilities.lowerBound(reverseMappings, lineNumber, lineComparator);
308
- const last = Platform.ArrayUtilities.upperBound(reverseMappings, lineNumber, lineComparator);
309
- if (first >= reverseMappings.length || mappings[reverseMappings[first]].sourceLineNumber !== lineNumber) {
310
- return null;
311
- }
312
- const columnMappings = reverseMappings.slice(first, last);
313
- if (!columnMappings.length) {
314
- return null;
315
- }
316
- const index = Platform.ArrayUtilities.lowerBound(
317
- columnMappings, columnNumber, (columnNumber, i) => columnNumber - mappings[i].sourceColumnNumber);
318
- return index >= columnMappings.length ? mappings[columnMappings[columnMappings.length - 1]] :
319
- mappings[columnMappings[index]];
320
-
321
- function lineComparator(lineNumber: number, i: number): number {
322
- return lineNumber - mappings[i].sourceLineNumber;
323
- }
324
- }
325
-
326
- private findReverseIndices(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
327
- number[] {
328
- const mappings = this.mappings();
329
- const reverseMappings = this.reversedMappings(sourceURL);
330
- const endIndex = Platform.ArrayUtilities.upperBound(
331
- reverseMappings, undefined,
332
- (_, i) => lineNumber - mappings[i].sourceLineNumber || columnNumber - mappings[i].sourceColumnNumber);
333
- let startIndex = endIndex;
334
- while (startIndex > 0 &&
335
- mappings[reverseMappings[startIndex - 1]].sourceLineNumber ===
336
- mappings[reverseMappings[endIndex - 1]].sourceLineNumber &&
337
- mappings[reverseMappings[startIndex - 1]].sourceColumnNumber ===
338
- mappings[reverseMappings[endIndex - 1]].sourceColumnNumber) {
339
- --startIndex;
340
- }
341
-
342
- return reverseMappings.slice(startIndex, endIndex);
343
- }
344
-
345
- findReverseEntries(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
346
- SourceMapEntry[] {
347
- const mappings = this.mappings();
348
- return this.findReverseIndices(sourceURL, lineNumber, columnNumber).map(i => mappings[i]);
349
- }
350
-
351
- findReverseRanges(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
352
- TextUtils.TextRange.TextRange[] {
353
- const mappings = this.mappings();
354
- const indices = this.findReverseIndices(sourceURL, lineNumber, columnNumber);
355
- const ranges: TextUtils.TextRange.TextRange[] = [];
356
-
357
- for (let i = 0; i < indices.length; ++i) {
358
- const startIndex = indices[i];
359
-
360
- // Merge adjacent ranges.
361
- let endIndex = startIndex + 1;
362
- while (i + 1 < indices.length && endIndex === indices[i + 1]) {
363
- ++endIndex;
364
- ++i;
365
- }
366
-
367
- // Source maps don't contain end positions for entries, but each entry is assumed to
368
- // span until the following entry. This doesn't work however in case of the last
369
- // entry, where there's no following entry. We also don't know the number of lines
370
- // and columns in the original source code (which might not be available at all), so
371
- // for that case we store the maximum signed 32-bit integer, which is definitely going
372
- // to be larger than any script we can process and can safely be serialized as part of
373
- // the skip list we send to V8 with `Debugger.stepOver` (http://crbug.com/1305956).
374
- const startLine = mappings[startIndex].lineNumber;
375
- const startColumn = mappings[startIndex].columnNumber;
376
- const endLine = endIndex < mappings.length ? mappings[endIndex].lineNumber : 2 ** 31 - 1;
377
- const endColumn = endIndex < mappings.length ? mappings[endIndex].columnNumber : 2 ** 31 - 1;
378
- ranges.push(new TextUtils.TextRange.TextRange(startLine, startColumn, endLine, endColumn));
379
- }
380
-
381
- return ranges;
382
- }
383
-
384
- mappings(): SourceMapEntry[] {
385
- this.#ensureSourceMapProcessed();
386
- return this.#mappings ?? [];
387
- }
388
-
389
- /**
390
- * If the source map does not contain scope information by itself (e.g. "scopes proposal"
391
- * or "pasta" scopes), then we'll use this getter to calculate basic function name information from
392
- * the AST and mappings.
393
- */
394
- async #buildScopesFallback(): Promise<SourceMapScopesInfo|null> {
395
- const scopeTreeAndText = this.#script ? await scopeTreeForScript(this.#script) : null;
396
- if (!scopeTreeAndText) {
397
- return null;
398
- }
399
-
400
- const {scopeTree, text} = scopeTreeAndText;
401
- return SourceMapScopesInfo.createFromAst(this, scopeTree, text);
402
- }
403
-
404
- private reversedMappings(sourceURL: Platform.DevToolsPath.UrlString): number[] {
405
- this.#ensureSourceMapProcessed();
406
- return this.#sourceInfoByURL.get(sourceURL)?.reverseMappings ?? [];
407
- }
408
-
409
- #ensureSourceMapProcessed(): void {
410
- if (this.#mappings === null) {
411
- this.#mappings = [];
412
- try {
413
- this.eachSection(this.parseMap.bind(this));
414
- if (!this.hasScopeInfo()) {
415
- this.scopesFallbackPromiseForTest = this.#buildScopesFallback().then(info => {
416
- this.#scopesInfo = info;
417
- });
418
- }
419
- } catch (e) {
420
- console.error('Failed to parse source map', e);
421
- this.#mappings = [];
422
- }
423
-
424
- // As per spec, mappings are not necessarily sorted.
425
- this.mappings().sort(SourceMapEntry.compare);
426
-
427
- this.#computeReverseMappings(this.#mappings);
428
- }
429
-
430
- if (!SourceMap.retainRawSourceMaps) {
431
- this.#json = null;
432
- }
433
- }
434
-
435
- #computeReverseMappings(mappings: SourceMapEntry[]): void {
436
- const reverseMappingsPerUrl = new Map<Platform.DevToolsPath.UrlString, number[]>();
437
- for (let i = 0; i < mappings.length; i++) {
438
- const entryUrl = mappings[i].sourceURL;
439
- if (!entryUrl) {
440
- continue;
441
- }
442
- let reverseMap = reverseMappingsPerUrl.get(entryUrl);
443
- if (!reverseMap) {
444
- reverseMap = [];
445
- reverseMappingsPerUrl.set(entryUrl, reverseMap);
446
- }
447
- reverseMap.push(i);
448
- }
449
-
450
- for (const [url, reverseMap] of reverseMappingsPerUrl.entries()) {
451
- const info = this.#sourceInfoByURL.get(url);
452
- if (!info) {
453
- continue;
454
- }
455
- reverseMap.sort(sourceMappingComparator);
456
- info.reverseMappings = reverseMap;
457
- }
458
-
459
- function sourceMappingComparator(indexA: number, indexB: number): number {
460
- const a = mappings[indexA];
461
- const b = mappings[indexB];
462
- return a.sourceLineNumber - b.sourceLineNumber || a.sourceColumnNumber - b.sourceColumnNumber ||
463
- a.lineNumber - b.lineNumber || a.columnNumber - b.columnNumber;
464
- }
465
- }
466
-
467
- private eachSection(callback: (arg0: SourceMapV3Object, arg1: number, arg2: number, arg3: number) => void): void {
468
- if (!this.#json) {
469
- return;
470
- }
471
- if ('sections' in this.#json) {
472
- let sourcesIndex = 0;
473
- for (const section of this.#json.sections) {
474
- if ('map' in section) {
475
- callback(section.map, sourcesIndex, section.offset.line, section.offset.column);
476
- sourcesIndex += section.map.sources.length;
477
- }
478
- }
479
- } else {
480
- callback(this.#json, 0, 0, 0);
481
- }
482
- }
483
-
484
- private parseSources(sourceMap: SourceMapV3Object): void {
485
- const sourceRoot = sourceMap.sourceRoot ?? '';
486
- const ignoreList = new Set(sourceMap.ignoreList ?? sourceMap.x_google_ignoreList);
487
- for (let i = 0; i < sourceMap.sources.length; ++i) {
488
- let href = sourceMap.sources[i];
489
- // The source map v3 proposal says to prepend the sourceRoot to the source URL
490
- // and if the resulting URL is not absolute, then resolve the source URL against
491
- // the source map URL. Prepending the sourceRoot (if one exists) is not likely to
492
- // be meaningful or useful if the source URL is already absolute though. In this
493
- // case, use the source URL as is without prepending the sourceRoot.
494
- if (Common.ParsedURL.ParsedURL.isRelativeURL(href)) {
495
- if (sourceRoot && !sourceRoot.endsWith('/') && href && !href.startsWith('/')) {
496
- href = sourceRoot.concat('/', href);
497
- } else {
498
- href = sourceRoot.concat(href);
499
- }
500
- }
501
- const url =
502
- Common.ParsedURL.ParsedURL.completeURL(this.#baseURL, href) || (href as Platform.DevToolsPath.UrlString);
503
- const source = sourceMap.sourcesContent?.[i];
504
- const sourceInfo: SourceInfo = {
505
- sourceURL: url,
506
- content: source ?? null,
507
- ignoreListHint: ignoreList.has(i),
508
- reverseMappings: null,
509
- };
510
- this.#sourceInfos.push(sourceInfo);
511
- if (!this.#sourceInfoByURL.has(url)) {
512
- this.#sourceInfoByURL.set(url, sourceInfo);
513
- }
514
- }
515
- }
516
-
517
- private parseMap(map: SourceMapV3Object, baseSourceIndex: number, baseLineNumber: number, baseColumnNumber: number):
518
- void {
519
- let sourceIndex = baseSourceIndex;
520
- let lineNumber = baseLineNumber;
521
- let columnNumber = baseColumnNumber;
522
- let sourceLineNumber = 0;
523
- let sourceColumnNumber = 0;
524
- let nameIndex = 0;
525
- const names = map.names ?? [];
526
- const tokenIter = new TokenIterator(map.mappings);
527
- let sourceURL: Platform.DevToolsPath.UrlString|undefined = this.#sourceInfos[sourceIndex]?.sourceURL;
528
-
529
- while (true) {
530
- if (tokenIter.peek() === ',') {
531
- tokenIter.next();
532
- } else {
533
- while (tokenIter.peek() === ';') {
534
- lineNumber += 1;
535
- columnNumber = 0;
536
- tokenIter.next();
537
- }
538
- if (!tokenIter.hasNext()) {
539
- break;
540
- }
541
- }
542
-
543
- columnNumber += tokenIter.nextVLQ();
544
- if (!tokenIter.hasNext() || this.isSeparator(tokenIter.peek())) {
545
- this.mappings().push(new SourceMapEntry(lineNumber, columnNumber));
546
- continue;
547
- }
548
-
549
- const sourceIndexDelta = tokenIter.nextVLQ();
550
- if (sourceIndexDelta) {
551
- sourceIndex += sourceIndexDelta;
552
- sourceURL = this.#sourceInfos[sourceIndex]?.sourceURL;
553
- }
554
- sourceLineNumber += tokenIter.nextVLQ();
555
- sourceColumnNumber += tokenIter.nextVLQ();
556
-
557
- if (!tokenIter.hasNext() || this.isSeparator(tokenIter.peek())) {
558
- this.mappings().push(
559
- new SourceMapEntry(lineNumber, columnNumber, sourceIndex, sourceURL, sourceLineNumber, sourceColumnNumber));
560
- continue;
561
- }
562
-
563
- nameIndex += tokenIter.nextVLQ();
564
- this.mappings().push(new SourceMapEntry(
565
- lineNumber, columnNumber, sourceIndex, sourceURL, sourceLineNumber, sourceColumnNumber, names[nameIndex]));
566
- }
567
-
568
- if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.USE_SOURCE_MAP_SCOPES)) {
569
- if (!this.#scopesInfo) {
570
- this.#scopesInfo = new SourceMapScopesInfo(this, {scopes: [], ranges: []});
571
- }
572
- if (map.scopes) {
573
- const {scopes, ranges} = ScopesCodec.decode(
574
- map as ScopesCodec.SourceMapJson,
575
- {mode: ScopesCodec.DecodeMode.LAX, generatedOffset: {line: baseLineNumber, column: baseColumnNumber}});
576
- this.#scopesInfo.addOriginalScopes(scopes);
577
- this.#scopesInfo.addGeneratedRanges(ranges);
578
- } else if (map.x_com_bloomberg_sourcesFunctionMappings) {
579
- const originalScopes = this.parseBloombergScopes(map);
580
- this.#scopesInfo.addOriginalScopes(originalScopes);
581
- } else {
582
- // Keep the OriginalScope[] tree array consistent with sources.
583
- this.#scopesInfo.addOriginalScopes(new Array(map.sources.length).fill(null));
584
- }
585
- }
586
- }
587
-
588
- private parseBloombergScopes(map: SourceMapV3Object): Array<ScopesCodec.OriginalScope|null> {
589
- const scopeList = map.x_com_bloomberg_sourcesFunctionMappings;
590
- if (!scopeList) {
591
- throw new Error('Cant decode pasta scopes without x_com_bloomberg_sourcesFunctionMappings field');
592
- } else if (scopeList.length !== map.sources.length) {
593
- throw new Error(`x_com_bloomberg_sourcesFunctionMappings must have ${map.sources.length} scope trees`);
594
- }
595
- const names = map.names ?? [];
596
-
597
- return scopeList.map(rawScopes => {
598
- if (!rawScopes) {
599
- return null;
600
- }
601
- const ranges = decodePastaRanges(rawScopes, names);
602
- return buildOriginalScopes(ranges);
603
- });
604
- }
605
-
606
- private isSeparator(char: string): boolean {
607
- return char === ',' || char === ';';
608
- }
609
-
610
- /**
611
- * Finds all the reverse mappings that intersect with the given `textRange` within the
612
- * source entity identified by the `url`. If the `url` does not have any reverse mappings
613
- * within this source map, an empty array is returned.
614
- *
615
- * @param url the URL of the source entity to query.
616
- * @param textRange the range of text within the entity to check, considered `[start,end[`.
617
- * @returns the list of ranges in the generated file that map to locations overlapping the
618
- * {@link textRange} in the source file identified by the {@link url}, or `[]`
619
- * if the {@link url} does not identify an entity in this source map.
620
- */
621
- reverseMapTextRanges(url: Platform.DevToolsPath.UrlString, textRange: TextUtils.TextRange.TextRange):
622
- TextUtils.TextRange.TextRange[] {
623
- const reverseMappings = this.reversedMappings(url);
624
- const mappings = this.mappings();
625
- if (reverseMappings.length === 0) {
626
- return [];
627
- }
628
-
629
- // Determine the first reverse mapping that contains the starting point of the `textRange`.
630
- let startReverseIndex =
631
- Platform.ArrayUtilities.lowerBound(reverseMappings, textRange, ({startLine, startColumn}, index) => {
632
- const {sourceLineNumber, sourceColumnNumber} = mappings[index];
633
- return startLine - sourceLineNumber || startColumn - sourceColumnNumber;
634
- });
635
-
636
- // Check if the current mapping does not start on the exact start of the `textRange`, and if
637
- // so we know that a previous mapping entry (if any) would also overlap. If we reach the end
638
- // of the reverse mappings table, we just take the last entry and report that.
639
- while (startReverseIndex === reverseMappings.length ||
640
- startReverseIndex > 0 &&
641
- (mappings[reverseMappings[startReverseIndex]].sourceLineNumber > textRange.startLine ||
642
- mappings[reverseMappings[startReverseIndex]].sourceColumnNumber > textRange.startColumn)) {
643
- startReverseIndex--;
644
- }
645
-
646
- // Determine the last reverse mapping that contains the end point of the `textRange`.
647
- let endReverseIndex = startReverseIndex + 1;
648
- for (; endReverseIndex < reverseMappings.length; ++endReverseIndex) {
649
- const {sourceLineNumber, sourceColumnNumber} = mappings[reverseMappings[endReverseIndex]];
650
- if (sourceLineNumber < textRange.endLine ||
651
- (sourceLineNumber === textRange.endLine && sourceColumnNumber < textRange.endColumn)) {
652
- continue;
653
- }
654
- break;
655
- }
656
-
657
- // Create the ranges...
658
- const ranges = [];
659
- for (let reverseIndex = startReverseIndex; reverseIndex < endReverseIndex; ++reverseIndex) {
660
- const startIndex = reverseMappings[reverseIndex], endIndex = startIndex + 1;
661
- const range = TextUtils.TextRange.TextRange.createUnboundedFromLocation(
662
- mappings[startIndex].lineNumber, mappings[startIndex].columnNumber);
663
- if (endIndex < mappings.length) {
664
- range.endLine = mappings[endIndex].lineNumber;
665
- range.endColumn = mappings[endIndex].columnNumber;
666
- }
667
- ranges.push(range);
668
- }
669
-
670
- // ...sort them...
671
- ranges.sort(TextUtils.TextRange.TextRange.comparator);
672
-
673
- // ...and ensure they are maximally merged.
674
- let j = 0;
675
- for (let i = 1; i < ranges.length; ++i) {
676
- if (ranges[j].immediatelyPrecedes(ranges[i])) {
677
- ranges[j].endLine = ranges[i].endLine;
678
- ranges[j].endColumn = ranges[i].endColumn;
679
- } else {
680
- ranges[++j] = ranges[i];
681
- }
682
- }
683
- ranges.length = j + 1;
684
-
685
- return ranges;
686
- }
687
-
688
- mapsOrigin(): boolean {
689
- const mappings = this.mappings();
690
- if (mappings.length > 0) {
691
- const firstEntry = mappings[0];
692
- return firstEntry?.lineNumber === 0 || firstEntry.columnNumber === 0;
693
- }
694
- return false;
695
- }
696
-
697
- hasIgnoreListHint(sourceURL: Platform.DevToolsPath.UrlString): boolean {
698
- return this.#sourceInfoByURL.get(sourceURL)?.ignoreListHint ?? false;
699
- }
700
-
701
- /**
702
- * Returns a list of ranges in the generated script for original sources that
703
- * match a predicate. Each range is a [begin, end) pair, meaning that code at
704
- * the beginning location, up to but not including the end location, matches
705
- * the predicate.
706
- */
707
- findRanges(predicate: (sourceURL: Platform.DevToolsPath.UrlString) => boolean, options?: {isStartMatching: boolean}):
708
- TextUtils.TextRange.TextRange[] {
709
- const mappings = this.mappings();
710
- const ranges = [];
711
-
712
- if (!mappings.length) {
713
- return [];
714
- }
715
-
716
- let current: TextUtils.TextRange.TextRange|null = null;
717
-
718
- // If the first mapping isn't at the beginning of the original source, it's
719
- // up to the caller to decide if it should be considered matching the
720
- // predicate or not. By default, it's not.
721
- if ((mappings[0].lineNumber !== 0 || mappings[0].columnNumber !== 0) && options?.isStartMatching) {
722
- current = TextUtils.TextRange.TextRange.createUnboundedFromLocation(0, 0);
723
- ranges.push(current);
724
- }
725
-
726
- for (const {sourceURL, lineNumber, columnNumber} of mappings) {
727
- const ignoreListHint = sourceURL && predicate(sourceURL);
728
-
729
- if (!current && ignoreListHint) {
730
- current = TextUtils.TextRange.TextRange.createUnboundedFromLocation(lineNumber, columnNumber);
731
- ranges.push(current);
732
- continue;
733
- }
734
- if (current && !ignoreListHint) {
735
- current.endLine = lineNumber;
736
- current.endColumn = columnNumber;
737
- current = null;
738
- }
739
- }
740
-
741
- return ranges;
742
- }
743
-
744
- /**
745
- * Determines whether this and the {@link other} `SourceMap` agree on content and ignore-list hint
746
- * with respect to the {@link sourceURL}.
747
- *
748
- * @param sourceURL the URL to test for (might not be provided by either of the sourcemaps).
749
- * @param other the other `SourceMap` to check.
750
- * @returns `true` if both this and the {@link other} `SourceMap` either both have the ignore-list
751
- * hint for {@link sourceURL} or neither, and if both of them either provide the same
752
- * content for the {@link sourceURL} inline or both provide no `sourcesContent` entry
753
- * for it.
754
- */
755
- compatibleForURL(sourceURL: Platform.DevToolsPath.UrlString, other: SourceMap): boolean {
756
- return this.embeddedContentByURL(sourceURL) === other.embeddedContentByURL(sourceURL) &&
757
- this.hasIgnoreListHint(sourceURL) === other.hasIgnoreListHint(sourceURL);
758
- }
759
-
760
- expandCallFrame(frame: CallFrame): CallFrame[] {
761
- this.#ensureSourceMapProcessed();
762
- if (this.#scopesInfo === null) {
763
- return [frame];
764
- }
765
-
766
- return this.#scopesInfo.expandCallFrame(frame);
767
- }
768
-
769
- resolveScopeChain(frame: CallFrame): ScopeChainEntry[]|null {
770
- this.#ensureSourceMapProcessed();
771
- if (this.#scopesInfo === null) {
772
- return null;
773
- }
774
-
775
- return this.#scopesInfo.resolveMappedScopeChain(frame);
776
- }
777
-
778
- findOriginalFunctionName(position: ScopesCodec.Position): string|null {
779
- this.#ensureSourceMapProcessed();
780
- return this.#scopesInfo?.findOriginalFunctionName(position) ?? null;
781
- }
782
-
783
- isOutlinedFrame(generatedLine: number, generatedColumn: number): boolean {
784
- this.#ensureSourceMapProcessed();
785
- return this.#scopesInfo?.isOutlinedFrame(generatedLine, generatedColumn) ?? false;
786
- }
787
-
788
- hasInlinedFrames(generatedLine: number, generatedColumn: number): boolean {
789
- this.#ensureSourceMapProcessed();
790
- return this.#scopesInfo?.hasInlinedFrames(generatedLine, generatedColumn) ?? false;
791
- }
792
-
793
- translateCallSite(generatedLine: number, generatedColumn: number): TranslatedFrame[] {
794
- this.#ensureSourceMapProcessed();
795
- return this.#scopesInfo?.translateCallSite(generatedLine, generatedColumn) ?? [];
796
- }
797
- }
798
-
799
- const VLQ_BASE_SHIFT = 5;
800
- const VLQ_BASE_MASK = (1 << 5) - 1;
801
- const VLQ_CONTINUATION_MASK = 1 << 5;
802
-
803
- export class TokenIterator {
804
- readonly #string: string;
805
- #position: number;
806
-
807
- constructor(string: string) {
808
- this.#string = string;
809
- this.#position = 0;
810
- }
811
-
812
- next(): string {
813
- return this.#string.charAt(this.#position++);
814
- }
815
-
816
- /** Returns the unicode value of the next character and advances the iterator */
817
- nextCharCode(): number {
818
- return this.#string.charCodeAt(this.#position++);
819
- }
820
-
821
- peek(): string {
822
- return this.#string.charAt(this.#position);
823
- }
824
-
825
- hasNext(): boolean {
826
- return this.#position < this.#string.length;
827
- }
828
-
829
- nextVLQ(): number {
830
- // Read unsigned value.
831
- let result = 0;
832
- let shift = 0;
833
- let digit: number = VLQ_CONTINUATION_MASK;
834
- while (digit & VLQ_CONTINUATION_MASK) {
835
- if (!this.hasNext()) {
836
- throw new Error('Unexpected end of input while decodling VLQ number!');
837
- }
838
- const charCode = this.nextCharCode();
839
- digit = Common.Base64.BASE64_CODES[charCode];
840
- if (charCode !== 65 /* 'A' */ && digit === 0) {
841
- throw new Error(`Unexpected char '${String.fromCharCode(charCode)}' encountered while decoding`);
842
- }
843
- result += (digit & VLQ_BASE_MASK) << shift;
844
- shift += VLQ_BASE_SHIFT;
845
- }
846
-
847
- // Fix the sign.
848
- const negative = result & 1;
849
- result >>= 1;
850
- return negative ? -result : result;
851
- }
852
-
853
- /**
854
- * @returns the next VLQ number without iterating further. Or returns null if
855
- * the iterator is at the end or it's not a valid number.
856
- */
857
- peekVLQ(): null|number {
858
- const pos = this.#position;
859
- try {
860
- return this.nextVLQ();
861
- } catch {
862
- return null;
863
- } finally {
864
- this.#position = pos; // Reset the iterator.
865
- }
866
- }
867
- }