@mcp-b/chrome-devtools-mcp 1.1.0 → 1.1.1

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 (656) hide show
  1. package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/ByteUtilities.js +72 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/DevToolsLocale.js +64 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/NumberFormatter.js +67 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +73 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +51 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +9 -0
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nImpl.js +135 -0
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18nTypes.js +4 -0
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/locales.js +14 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/time-utilities.js +148 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +11 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +34 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/foundation/foundation.js +5 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +201 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +49 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CheckFormsIssuesTrigger.js +31 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +71 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +135 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +59 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +58 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +514 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +244 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +110 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +90 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +95 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +231 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +141 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +212 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +52 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +152 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +314 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueResolver.js +40 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManager.js +416 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssuesManagerEvents.js +4 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +48 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MarkdownIssueDescription.js +104 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +55 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +58 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +58 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +48 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/RelatedIssue.js +70 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +87 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +49 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +292 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SourceFrameIssuesManager.js +81 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +59 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +62 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md +4 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOrigin.md +8 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +18 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepCorpNotSameSite.md +7 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CoepFrameResourceNeedsCoepHeader.md +10 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CompatibilityModeQuirks.md +5 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/LowTextContrast.md +5 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeRead.md +8 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeContextDowngradeSet.md +8 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteExcludeNavigationContextDowngrade.md +8 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteInvalidSameParty.md +8 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorRead.md +8 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureErrorSet.md +8 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnRead.md +8 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteNoneInsecureWarnSet.md +8 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteSamePartyCrossPartyContextSet.md +10 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +9 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +9 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeRead.md +8 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnCrossDowngradeSet.md +8 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +8 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInsecureContext.md +7 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +5 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +5 -0
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +5 -0
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +5 -0
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +5 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +5 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +6 -0
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +5 -0
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +5 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +5 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +5 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +4 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +18 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +19 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +8 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +9 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arSourceIgnored.md +13 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +12 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +10 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +11 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/bounceTrackingMitigations.md +3 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagAllowListInvalidOrigin.md +4 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/clientHintMetaTagModifiedHTML.md +4 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieCrossSiteRedirectDowngrade.md +12 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +4 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeDomainNonAscii.md +11 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutRead.md +6 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieExcludeThirdPartyPhaseoutSet.md +6 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnDomainNonAscii.md +11 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantRead.md +4 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnMetadataGrantSet.md +4 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutRead.md +6 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cookieWarnThirdPartyPhaseoutSet.md +6 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsAllowCredentialsRequired.md +6 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisabledScheme.md +7 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsDisallowedByMode.md +7 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsHeaderDisallowedByPreflightResponse.md +5 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInsecurePrivateNetwork.md +10 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsInvalidHeaderValues.md +7 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsLocalNetworkAccessPermissionDenied.md +19 -0
  314. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsMethodDisallowedByPreflightResponse.md +5 -0
  315. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsNoCorsRedirectModeNotFollow.md +5 -0
  316. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsOriginMismatch.md +6 -0
  317. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightAllowPrivateNetworkError.md +10 -0
  318. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPreflightResponseInvalid.md +5 -0
  319. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsPrivateNetworkPermissionDenied.md +10 -0
  320. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsRedirectContainsCredentials.md +5 -0
  321. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/corsWildcardOriginNotAllowed.md +8 -0
  322. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspEvalViolation.md +9 -0
  323. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspInlineViolation.md +10 -0
  324. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesPolicyViolation.md +5 -0
  325. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspTrustedTypesSinkViolation.md +8 -0
  326. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/cspURLViolation.md +10 -0
  327. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/deprecation.md +3 -0
  328. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -0
  329. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -0
  330. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestAccountsNoResponse.md +1 -0
  331. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestApprovalDeclined.md +1 -0
  332. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestCanceled.md +1 -0
  333. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataHttpNotFound.md +1 -0
  334. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataInvalidResponse.md +1 -0
  335. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestClientMetadataNoResponse.md +1 -0
  336. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -0
  337. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestErrorIdToken.md +1 -0
  338. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -0
  339. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -0
  340. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -0
  341. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -0
  342. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -0
  343. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -0
  344. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -0
  345. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestManifestNoResponse.md +1 -0
  346. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthRequestTooManyRequests.md +1 -0
  347. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -0
  348. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -0
  349. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -0
  350. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -0
  351. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -0
  352. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -0
  353. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -0
  354. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -0
  355. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -0
  356. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/fetchingPartitionedBlobURL.md +7 -0
  357. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAriaLabelledByToNonExistingIdError.md +8 -0
  358. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormAutocompleteAttributeEmptyError.md +5 -0
  359. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormDuplicateIdForInputError.md +5 -0
  360. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +5 -0
  361. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +5 -0
  362. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +5 -0
  363. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormInputWithNoLabelError.md +5 -0
  364. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForMatchesNonExistingIdError.md +5 -0
  365. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelForNameError.md +5 -0
  366. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +5 -0
  367. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
  368. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericResponseWasBlockedByORB.md +4 -0
  369. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/heavyAd.md +10 -0
  370. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/mixedContent.md +5 -0
  371. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/navigatingPartitionedBlobURL.md +5 -0
  372. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/placeholderDescriptionForInvisibleIssues.md +3 -0
  373. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleInvalidNameIssue.md +3 -0
  374. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/propertyRuleIssue.md +7 -0
  375. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +7 -0
  376. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityDisallowedSelectChild.md +7 -0
  377. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +3 -0
  378. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +3 -0
  379. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +3 -0
  380. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +3 -0
  381. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedArrayBuffer.md +7 -0
  382. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -0
  383. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md +3 -0
  384. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +3 -0
  385. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -0
  386. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -0
  387. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -0
  388. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorExpiredResponse.md +3 -0
  389. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +3 -0
  390. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInsufficientResources.md +1 -0
  391. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidMatchField.md +1 -0
  392. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -0
  393. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  394. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNavigationRequest.md +3 -0
  395. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNoMatchField.md +1 -0
  396. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  397. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md +1 -0
  398. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonSecureContext.md +3 -0
  399. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringIdField.md +1 -0
  400. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md +1 -0
  401. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonStringMatchField.md +1 -0
  402. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md +1 -0
  403. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorRequestAborted.md +1 -0
  404. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorShuttingDown.md +1 -0
  405. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorTooLongIdField.md +3 -0
  406. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorUnsupportedType.md +3 -0
  407. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureHeader.md +14 -0
  408. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriInvalidSignatureInputHeader.md +15 -0
  409. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureHeader.md +8 -0
  410. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriMissingSignatureInputHeader.md +7 -0
  411. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsIncorrectLength.md +11 -0
  412. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsNotByteSequence.md +14 -0
  413. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureHeaderValueIsParameterized.md +15 -0
  414. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentName.md +8 -0
  415. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidComponentType.md +13 -0
  416. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +4 -0
  417. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +5 -0
  418. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderInvalidParameter.md +11 -0
  419. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderKeyIdLength.md +12 -0
  420. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingLabel.md +6 -0
  421. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +8 -0
  422. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueMissingComponents.md +11 -0
  423. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriSignatureInputHeaderValueNotInnerList.md +11 -0
  424. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedIntegrityMismatch.md +10 -0
  425. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedInvalidLength.md +5 -0
  426. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureExpired.md +6 -0
  427. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/sriValidationFailedSignatureMismatch.md +11 -0
  428. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetLateImport.md +4 -0
  429. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/stylesheetRequestFailed.md +3 -0
  430. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +3 -0
  431. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestLength.md +12 -0
  432. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestIncorrectDigestType.md +17 -0
  433. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestMalformedDictionary.md +14 -0
  434. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/unencodedDigestUnknownAlgorithm.md +15 -0
  435. package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/issues_manager.js +35 -0
  436. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  437. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  438. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  439. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  440. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  441. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  442. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  443. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
  444. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  445. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
  446. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
  447. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  448. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  449. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  450. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  451. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  452. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
  453. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  454. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  455. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  456. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  457. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  458. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  459. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  460. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  461. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  462. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  463. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
  464. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  465. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  466. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  467. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  468. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
  469. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
  470. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  471. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
  472. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  473. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  474. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  475. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  476. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  477. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  478. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  479. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
  480. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  481. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  482. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  483. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  484. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  485. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  486. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  487. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  488. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
  489. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  490. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  491. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  492. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  493. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  494. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  495. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  496. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
  497. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  498. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
  499. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  500. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
  501. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  502. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  503. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  504. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
  505. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
  506. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
  507. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  508. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  509. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
  510. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
  511. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  512. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  513. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  514. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  515. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  516. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  517. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  518. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
  519. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  520. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
  521. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
  522. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  523. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  524. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
  525. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
  526. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  527. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
  528. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
  529. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
  530. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
  531. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
  532. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
  533. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
  534. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
  535. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
  536. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
  537. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  538. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
  539. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
  540. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
  541. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
  542. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  543. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
  544. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
  545. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  546. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  547. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  548. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  549. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  550. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  551. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  552. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  553. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  554. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  555. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  556. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  557. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  558. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  559. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  560. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  561. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  562. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  563. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  564. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  565. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  566. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  567. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  568. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  569. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  570. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  571. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  572. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  573. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  574. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  575. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  576. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  577. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  578. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  579. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  580. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
  581. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  582. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
  583. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  584. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  585. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
  586. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  587. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
  588. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
  589. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  590. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  591. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  592. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/LICENSE +202 -0
  593. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n-impl.js +46 -0
  594. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/i18n.js +6 -0
  595. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/i18n/localized-string-set.js +122 -0
  596. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/LICENSE +33 -0
  597. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/intl-messageformat.js +5 -0
  598. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/index.js +13 -0
  599. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.esm.js +1725 -0
  600. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/intl-messageformat.iife.js +1840 -0
  601. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/index.js +10 -0
  602. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/core.js +233 -0
  603. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/error.js +48 -0
  604. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/lib/src/formatters.js +177 -0
  605. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/core.js +236 -0
  606. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/error.js +51 -0
  607. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/intl-messageformat/package/src/formatters.js +182 -0
  608. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  609. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
  610. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
  611. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/LICENSE +39 -0
  612. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/marked.js +2 -0
  613. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/main.js +255 -0
  614. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/bin/marked.js +11 -0
  615. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.esm.js +2695 -0
  616. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.js +2233 -0
  617. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/lib/marked.umd.js +2719 -0
  618. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Lexer.js +453 -0
  619. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Parser.js +233 -0
  620. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Renderer.js +137 -0
  621. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Slugger.js +46 -0
  622. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/TextRenderer.js +34 -0
  623. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/Tokenizer.js +683 -0
  624. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/defaults.js +27 -0
  625. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/helpers.js +240 -0
  626. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/marked.js +318 -0
  627. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/marked/package/src/rules.js +243 -0
  628. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  629. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  630. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  631. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  632. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  633. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  634. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  635. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  636. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  637. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  638. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  639. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  640. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
  641. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  642. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  643. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  644. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  645. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  646. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  647. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  648. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  649. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  650. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  651. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  652. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
  653. package/build/node_modules/chrome-devtools-frontend/mcp/HostBindings.js +222 -0
  654. package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +35 -0
  655. package/build/src/index.js +0 -0
  656. package/package.json +21 -20
@@ -0,0 +1,2695 @@
1
+ /**
2
+ * marked v13.0.1 - a markdown parser
3
+ * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)
4
+ * https://github.com/markedjs/marked
5
+ */
6
+ /**
7
+ * DO NOT EDIT THIS FILE
8
+ * The code in this file is generated from files in ./src/
9
+ */
10
+ /**
11
+ * Gets the original marked default options.
12
+ */
13
+ function _getDefaults() {
14
+ return {
15
+ async: false,
16
+ breaks: false,
17
+ extensions: null,
18
+ gfm: true,
19
+ hooks: null,
20
+ pedantic: false,
21
+ renderer: null,
22
+ silent: false,
23
+ tokenizer: null,
24
+ walkTokens: null
25
+ };
26
+ }
27
+ let _defaults = _getDefaults();
28
+ function changeDefaults(newDefaults) {
29
+ _defaults = newDefaults;
30
+ }
31
+ /**
32
+ * Helpers
33
+ */
34
+ const escapeTest = /[&<>"']/;
35
+ const escapeReplace = new RegExp(escapeTest.source, 'g');
36
+ const escapeTestNoEncode = /[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/;
37
+ const escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');
38
+ const escapeReplacements = {
39
+ '&': '&amp;',
40
+ '<': '&lt;',
41
+ '>': '&gt;',
42
+ '"': '&quot;',
43
+ "'": '&#39;'
44
+ };
45
+ const getEscapeReplacement = (ch) => escapeReplacements[ch];
46
+ function escape$1(html, encode) {
47
+ if (encode) {
48
+ if (escapeTest.test(html)) {
49
+ return html.replace(escapeReplace, getEscapeReplacement);
50
+ }
51
+ }
52
+ else {
53
+ if (escapeTestNoEncode.test(html)) {
54
+ return html.replace(escapeReplaceNoEncode, getEscapeReplacement);
55
+ }
56
+ }
57
+ return html;
58
+ }
59
+ const unescapeTest = /&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;
60
+ function unescape(html) {
61
+ // explicitly match decimal, hex, and named HTML entities
62
+ return html.replace(unescapeTest, (_, n) => {
63
+ n = n.toLowerCase();
64
+ if (n === 'colon')
65
+ return ':';
66
+ if (n.charAt(0) === '#') {
67
+ return n.charAt(1) === 'x'
68
+ ? String.fromCharCode(parseInt(n.substring(2), 16))
69
+ : String.fromCharCode(+n.substring(1));
70
+ }
71
+ return '';
72
+ });
73
+ }
74
+ const caret = /(^|[^\[])\^/g;
75
+ function edit(regex, opt) {
76
+ let source = typeof regex === 'string' ? regex : regex.source;
77
+ opt = opt || '';
78
+ const obj = {
79
+ replace: (name, val) => {
80
+ let valSource = typeof val === 'string' ? val : val.source;
81
+ valSource = valSource.replace(caret, '$1');
82
+ source = source.replace(name, valSource);
83
+ return obj;
84
+ },
85
+ getRegex: () => {
86
+ return new RegExp(source, opt);
87
+ }
88
+ };
89
+ return obj;
90
+ }
91
+ function cleanUrl(href) {
92
+ try {
93
+ href = encodeURI(href).replace(/%25/g, '%');
94
+ }
95
+ catch (e) {
96
+ return null;
97
+ }
98
+ return href;
99
+ }
100
+ const noopTest = { exec: () => null };
101
+ function splitCells(tableRow, count) {
102
+ // ensure that every cell-delimiting pipe has a space
103
+ // before it to distinguish it from an escaped pipe
104
+ const row = tableRow.replace(/\|/g, (match, offset, str) => {
105
+ let escaped = false;
106
+ let curr = offset;
107
+ while (--curr >= 0 && str[curr] === '\\')
108
+ escaped = !escaped;
109
+ if (escaped) {
110
+ // odd number of slashes means | is escaped
111
+ // so we leave it alone
112
+ return '|';
113
+ }
114
+ else {
115
+ // add space before unescaped |
116
+ return ' |';
117
+ }
118
+ }), cells = row.split(/ \|/);
119
+ let i = 0;
120
+ // First/last cell in a row cannot be empty if it has no leading/trailing pipe
121
+ if (!cells[0].trim()) {
122
+ cells.shift();
123
+ }
124
+ if (cells.length > 0 && !cells[cells.length - 1].trim()) {
125
+ cells.pop();
126
+ }
127
+ if (count) {
128
+ if (cells.length > count) {
129
+ cells.splice(count);
130
+ }
131
+ else {
132
+ while (cells.length < count)
133
+ cells.push('');
134
+ }
135
+ }
136
+ for (; i < cells.length; i++) {
137
+ // leading or trailing whitespace is ignored per the gfm spec
138
+ cells[i] = cells[i].trim().replace(/\\\|/g, '|');
139
+ }
140
+ return cells;
141
+ }
142
+ /**
143
+ * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').
144
+ * /c*$/ is vulnerable to REDOS.
145
+ *
146
+ * @param str
147
+ * @param c
148
+ * @param invert Remove suffix of non-c chars instead. Default falsey.
149
+ */
150
+ function rtrim(str, c, invert) {
151
+ const l = str.length;
152
+ if (l === 0) {
153
+ return '';
154
+ }
155
+ // Length of suffix matching the invert condition.
156
+ let suffLen = 0;
157
+ // Step left until we fail to match the invert condition.
158
+ while (suffLen < l) {
159
+ const currChar = str.charAt(l - suffLen - 1);
160
+ if (currChar === c && !invert) {
161
+ suffLen++;
162
+ }
163
+ else if (currChar !== c && invert) {
164
+ suffLen++;
165
+ }
166
+ else {
167
+ break;
168
+ }
169
+ }
170
+ return str.slice(0, l - suffLen);
171
+ }
172
+ function findClosingBracket(str, b) {
173
+ if (str.indexOf(b[1]) === -1) {
174
+ return -1;
175
+ }
176
+ let level = 0;
177
+ for (let i = 0; i < str.length; i++) {
178
+ if (str[i] === '\\') {
179
+ i++;
180
+ }
181
+ else if (str[i] === b[0]) {
182
+ level++;
183
+ }
184
+ else if (str[i] === b[1]) {
185
+ level--;
186
+ if (level < 0) {
187
+ return i;
188
+ }
189
+ }
190
+ }
191
+ return -1;
192
+ }
193
+ function outputLink(cap, link, raw, lexer) {
194
+ const href = link.href;
195
+ const title = link.title ? escape$1(link.title) : null;
196
+ const text = cap[1].replace(/\\([\[\]])/g, '$1');
197
+ if (cap[0].charAt(0) !== '!') {
198
+ lexer.state.inLink = true;
199
+ const token = {
200
+ type: 'link',
201
+ raw,
202
+ href,
203
+ title,
204
+ text,
205
+ tokens: lexer.inlineTokens(text)
206
+ };
207
+ lexer.state.inLink = false;
208
+ return token;
209
+ }
210
+ return {
211
+ type: 'image',
212
+ raw,
213
+ href,
214
+ title,
215
+ text: escape$1(text)
216
+ };
217
+ }
218
+ function indentCodeCompensation(raw, text) {
219
+ const matchIndentToCode = raw.match(/^(\s+)(?:```)/);
220
+ if (matchIndentToCode === null) {
221
+ return text;
222
+ }
223
+ const indentToCode = matchIndentToCode[1];
224
+ return text
225
+ .split('\n')
226
+ .map(node => {
227
+ const matchIndentInNode = node.match(/^\s+/);
228
+ if (matchIndentInNode === null) {
229
+ return node;
230
+ }
231
+ const [indentInNode] = matchIndentInNode;
232
+ if (indentInNode.length >= indentToCode.length) {
233
+ return node.slice(indentToCode.length);
234
+ }
235
+ return node;
236
+ })
237
+ .join('\n');
238
+ }
239
+ /**
240
+ * Tokenizer
241
+ */
242
+ class _Tokenizer {
243
+ options;
244
+ rules; // set by the lexer
245
+ lexer; // set by the lexer
246
+ constructor(options) {
247
+ this.options = options || _defaults;
248
+ }
249
+ space(src) {
250
+ const cap = this.rules.block.newline.exec(src);
251
+ if (cap && cap[0].length > 0) {
252
+ return {
253
+ type: 'space',
254
+ raw: cap[0]
255
+ };
256
+ }
257
+ }
258
+ code(src) {
259
+ const cap = this.rules.block.code.exec(src);
260
+ if (cap) {
261
+ const text = cap[0].replace(/^ {1,4}/gm, '');
262
+ return {
263
+ type: 'code',
264
+ raw: cap[0],
265
+ codeBlockStyle: 'indented',
266
+ text: !this.options.pedantic
267
+ ? rtrim(text, '\n')
268
+ : text
269
+ };
270
+ }
271
+ }
272
+ fences(src) {
273
+ const cap = this.rules.block.fences.exec(src);
274
+ if (cap) {
275
+ const raw = cap[0];
276
+ const text = indentCodeCompensation(raw, cap[3] || '');
277
+ return {
278
+ type: 'code',
279
+ raw,
280
+ lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],
281
+ text
282
+ };
283
+ }
284
+ }
285
+ heading(src) {
286
+ const cap = this.rules.block.heading.exec(src);
287
+ if (cap) {
288
+ let text = cap[2].trim();
289
+ // remove trailing #s
290
+ if (/#$/.test(text)) {
291
+ const trimmed = rtrim(text, '#');
292
+ if (this.options.pedantic) {
293
+ text = trimmed.trim();
294
+ }
295
+ else if (!trimmed || / $/.test(trimmed)) {
296
+ // CommonMark requires space before trailing #s
297
+ text = trimmed.trim();
298
+ }
299
+ }
300
+ return {
301
+ type: 'heading',
302
+ raw: cap[0],
303
+ depth: cap[1].length,
304
+ text,
305
+ tokens: this.lexer.inline(text)
306
+ };
307
+ }
308
+ }
309
+ hr(src) {
310
+ const cap = this.rules.block.hr.exec(src);
311
+ if (cap) {
312
+ return {
313
+ type: 'hr',
314
+ raw: rtrim(cap[0], '\n')
315
+ };
316
+ }
317
+ }
318
+ blockquote(src) {
319
+ const cap = this.rules.block.blockquote.exec(src);
320
+ if (cap) {
321
+ let lines = rtrim(cap[0], '\n').split('\n');
322
+ let raw = '';
323
+ let text = '';
324
+ const tokens = [];
325
+ while (lines.length > 0) {
326
+ let inBlockquote = false;
327
+ const currentLines = [];
328
+ let i;
329
+ for (i = 0; i < lines.length; i++) {
330
+ // get lines up to a continuation
331
+ if (/^ {0,3}>/.test(lines[i])) {
332
+ currentLines.push(lines[i]);
333
+ inBlockquote = true;
334
+ }
335
+ else if (!inBlockquote) {
336
+ currentLines.push(lines[i]);
337
+ }
338
+ else {
339
+ break;
340
+ }
341
+ }
342
+ lines = lines.slice(i);
343
+ const currentRaw = currentLines.join('\n');
344
+ const currentText = currentRaw
345
+ // precede setext continuation with 4 spaces so it isn't a setext
346
+ .replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g, '\n $1')
347
+ .replace(/^ {0,3}>[ \t]?/gm, '');
348
+ raw = raw ? `${raw}\n${currentRaw}` : currentRaw;
349
+ text = text ? `${text}\n${currentText}` : currentText;
350
+ // parse blockquote lines as top level tokens
351
+ // merge paragraphs if this is a continuation
352
+ const top = this.lexer.state.top;
353
+ this.lexer.state.top = true;
354
+ this.lexer.blockTokens(currentText, tokens, true);
355
+ this.lexer.state.top = top;
356
+ // if there is no continuation then we are done
357
+ if (lines.length === 0) {
358
+ break;
359
+ }
360
+ const lastToken = tokens[tokens.length - 1];
361
+ if (lastToken?.type === 'code') {
362
+ // blockquote continuation cannot be preceded by a code block
363
+ break;
364
+ }
365
+ else if (lastToken?.type === 'blockquote') {
366
+ // include continuation in nested blockquote
367
+ const oldToken = lastToken;
368
+ const newText = oldToken.raw + '\n' + lines.join('\n');
369
+ const newToken = this.blockquote(newText);
370
+ tokens[tokens.length - 1] = newToken;
371
+ raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;
372
+ text = text.substring(0, text.length - oldToken.text.length) + newToken.text;
373
+ break;
374
+ }
375
+ else if (lastToken?.type === 'list') {
376
+ // include continuation in nested list
377
+ const oldToken = lastToken;
378
+ const newText = oldToken.raw + '\n' + lines.join('\n');
379
+ const newToken = this.list(newText);
380
+ tokens[tokens.length - 1] = newToken;
381
+ raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;
382
+ text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;
383
+ lines = newText.substring(tokens[tokens.length - 1].raw.length).split('\n');
384
+ continue;
385
+ }
386
+ }
387
+ return {
388
+ type: 'blockquote',
389
+ raw,
390
+ tokens,
391
+ text
392
+ };
393
+ }
394
+ }
395
+ list(src) {
396
+ let cap = this.rules.block.list.exec(src);
397
+ if (cap) {
398
+ let bull = cap[1].trim();
399
+ const isordered = bull.length > 1;
400
+ const list = {
401
+ type: 'list',
402
+ raw: '',
403
+ ordered: isordered,
404
+ start: isordered ? +bull.slice(0, -1) : '',
405
+ loose: false,
406
+ items: []
407
+ };
408
+ bull = isordered ? `\\d{1,9}\\${bull.slice(-1)}` : `\\${bull}`;
409
+ if (this.options.pedantic) {
410
+ bull = isordered ? bull : '[*+-]';
411
+ }
412
+ // Get next list item
413
+ const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\t ][^\\n]*)?(?:\\n|$))`);
414
+ let raw = '';
415
+ let itemContents = '';
416
+ let endsWithBlankLine = false;
417
+ // Check if current bullet point can start a new List Item
418
+ while (src) {
419
+ let endEarly = false;
420
+ if (!(cap = itemRegex.exec(src))) {
421
+ break;
422
+ }
423
+ if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)
424
+ break;
425
+ }
426
+ raw = cap[0];
427
+ src = src.substring(raw.length);
428
+ let line = cap[2].split('\n', 1)[0].replace(/^\t+/, (t) => ' '.repeat(3 * t.length));
429
+ let nextLine = src.split('\n', 1)[0];
430
+ let indent = 0;
431
+ if (this.options.pedantic) {
432
+ indent = 2;
433
+ itemContents = line.trimStart();
434
+ }
435
+ else {
436
+ indent = cap[2].search(/[^ ]/); // Find first non-space char
437
+ indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent
438
+ itemContents = line.slice(indent);
439
+ indent += cap[1].length;
440
+ }
441
+ let blankLine = false;
442
+ if (!line && /^ *$/.test(nextLine)) { // Items begin with at most one blank line
443
+ raw += nextLine + '\n';
444
+ src = src.substring(nextLine.length + 1);
445
+ endEarly = true;
446
+ }
447
+ if (!endEarly) {
448
+ const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`);
449
+ const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`);
450
+ const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\`\`\`|~~~)`);
451
+ const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);
452
+ // Check if following lines should be included in List Item
453
+ while (src) {
454
+ const rawLine = src.split('\n', 1)[0];
455
+ nextLine = rawLine;
456
+ // Re-align to follow commonmark nesting rules
457
+ if (this.options.pedantic) {
458
+ nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');
459
+ }
460
+ // End list item if found code fences
461
+ if (fencesBeginRegex.test(nextLine)) {
462
+ break;
463
+ }
464
+ // End list item if found start of new heading
465
+ if (headingBeginRegex.test(nextLine)) {
466
+ break;
467
+ }
468
+ // End list item if found start of new bullet
469
+ if (nextBulletRegex.test(nextLine)) {
470
+ break;
471
+ }
472
+ // Horizontal rule found
473
+ if (hrRegex.test(src)) {
474
+ break;
475
+ }
476
+ if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible
477
+ itemContents += '\n' + nextLine.slice(indent);
478
+ }
479
+ else {
480
+ // not enough indentation
481
+ if (blankLine) {
482
+ break;
483
+ }
484
+ // paragraph continuation unless last line was a different block level element
485
+ if (line.search(/[^ ]/) >= 4) { // indented code block
486
+ break;
487
+ }
488
+ if (fencesBeginRegex.test(line)) {
489
+ break;
490
+ }
491
+ if (headingBeginRegex.test(line)) {
492
+ break;
493
+ }
494
+ if (hrRegex.test(line)) {
495
+ break;
496
+ }
497
+ itemContents += '\n' + nextLine;
498
+ }
499
+ if (!blankLine && !nextLine.trim()) { // Check if current line is blank
500
+ blankLine = true;
501
+ }
502
+ raw += rawLine + '\n';
503
+ src = src.substring(rawLine.length + 1);
504
+ line = nextLine.slice(indent);
505
+ }
506
+ }
507
+ if (!list.loose) {
508
+ // If the previous item ended with a blank line, the list is loose
509
+ if (endsWithBlankLine) {
510
+ list.loose = true;
511
+ }
512
+ else if (/\n *\n *$/.test(raw)) {
513
+ endsWithBlankLine = true;
514
+ }
515
+ }
516
+ let istask = null;
517
+ let ischecked;
518
+ // Check for task list items
519
+ if (this.options.gfm) {
520
+ istask = /^\[[ xX]\] /.exec(itemContents);
521
+ if (istask) {
522
+ ischecked = istask[0] !== '[ ] ';
523
+ itemContents = itemContents.replace(/^\[[ xX]\] +/, '');
524
+ }
525
+ }
526
+ list.items.push({
527
+ type: 'list_item',
528
+ raw,
529
+ task: !!istask,
530
+ checked: ischecked,
531
+ loose: false,
532
+ text: itemContents,
533
+ tokens: []
534
+ });
535
+ list.raw += raw;
536
+ }
537
+ // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic
538
+ list.items[list.items.length - 1].raw = raw.trimEnd();
539
+ (list.items[list.items.length - 1]).text = itemContents.trimEnd();
540
+ list.raw = list.raw.trimEnd();
541
+ // Item child tokens handled here at end because we needed to have the final item to trim it first
542
+ for (let i = 0; i < list.items.length; i++) {
543
+ this.lexer.state.top = false;
544
+ list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);
545
+ if (!list.loose) {
546
+ // Check if list should be loose
547
+ const spacers = list.items[i].tokens.filter(t => t.type === 'space');
548
+ const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\n.*\n/.test(t.raw));
549
+ list.loose = hasMultipleLineBreaks;
550
+ }
551
+ }
552
+ // Set all items to loose if list is loose
553
+ if (list.loose) {
554
+ for (let i = 0; i < list.items.length; i++) {
555
+ list.items[i].loose = true;
556
+ }
557
+ }
558
+ return list;
559
+ }
560
+ }
561
+ html(src) {
562
+ const cap = this.rules.block.html.exec(src);
563
+ if (cap) {
564
+ const token = {
565
+ type: 'html',
566
+ block: true,
567
+ raw: cap[0],
568
+ pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
569
+ text: cap[0]
570
+ };
571
+ return token;
572
+ }
573
+ }
574
+ def(src) {
575
+ const cap = this.rules.block.def.exec(src);
576
+ if (cap) {
577
+ const tag = cap[1].toLowerCase().replace(/\s+/g, ' ');
578
+ const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';
579
+ const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];
580
+ return {
581
+ type: 'def',
582
+ tag,
583
+ raw: cap[0],
584
+ href,
585
+ title
586
+ };
587
+ }
588
+ }
589
+ table(src) {
590
+ const cap = this.rules.block.table.exec(src);
591
+ if (!cap) {
592
+ return;
593
+ }
594
+ if (!/[:|]/.test(cap[2])) {
595
+ // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading
596
+ return;
597
+ }
598
+ const headers = splitCells(cap[1]);
599
+ const aligns = cap[2].replace(/^\||\| *$/g, '').split('|');
600
+ const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\n[ \t]*$/, '').split('\n') : [];
601
+ const item = {
602
+ type: 'table',
603
+ raw: cap[0],
604
+ header: [],
605
+ align: [],
606
+ rows: []
607
+ };
608
+ if (headers.length !== aligns.length) {
609
+ // header and align columns must be equal, rows can be different.
610
+ return;
611
+ }
612
+ for (const align of aligns) {
613
+ if (/^ *-+: *$/.test(align)) {
614
+ item.align.push('right');
615
+ }
616
+ else if (/^ *:-+: *$/.test(align)) {
617
+ item.align.push('center');
618
+ }
619
+ else if (/^ *:-+ *$/.test(align)) {
620
+ item.align.push('left');
621
+ }
622
+ else {
623
+ item.align.push(null);
624
+ }
625
+ }
626
+ for (let i = 0; i < headers.length; i++) {
627
+ item.header.push({
628
+ text: headers[i],
629
+ tokens: this.lexer.inline(headers[i]),
630
+ header: true,
631
+ align: item.align[i]
632
+ });
633
+ }
634
+ for (const row of rows) {
635
+ item.rows.push(splitCells(row, item.header.length).map((cell, i) => {
636
+ return {
637
+ text: cell,
638
+ tokens: this.lexer.inline(cell),
639
+ header: false,
640
+ align: item.align[i]
641
+ };
642
+ }));
643
+ }
644
+ return item;
645
+ }
646
+ lheading(src) {
647
+ const cap = this.rules.block.lheading.exec(src);
648
+ if (cap) {
649
+ return {
650
+ type: 'heading',
651
+ raw: cap[0],
652
+ depth: cap[2].charAt(0) === '=' ? 1 : 2,
653
+ text: cap[1],
654
+ tokens: this.lexer.inline(cap[1])
655
+ };
656
+ }
657
+ }
658
+ paragraph(src) {
659
+ const cap = this.rules.block.paragraph.exec(src);
660
+ if (cap) {
661
+ const text = cap[1].charAt(cap[1].length - 1) === '\n'
662
+ ? cap[1].slice(0, -1)
663
+ : cap[1];
664
+ return {
665
+ type: 'paragraph',
666
+ raw: cap[0],
667
+ text,
668
+ tokens: this.lexer.inline(text)
669
+ };
670
+ }
671
+ }
672
+ text(src) {
673
+ const cap = this.rules.block.text.exec(src);
674
+ if (cap) {
675
+ return {
676
+ type: 'text',
677
+ raw: cap[0],
678
+ text: cap[0],
679
+ tokens: this.lexer.inline(cap[0])
680
+ };
681
+ }
682
+ }
683
+ escape(src) {
684
+ const cap = this.rules.inline.escape.exec(src);
685
+ if (cap) {
686
+ return {
687
+ type: 'escape',
688
+ raw: cap[0],
689
+ text: escape$1(cap[1])
690
+ };
691
+ }
692
+ }
693
+ tag(src) {
694
+ const cap = this.rules.inline.tag.exec(src);
695
+ if (cap) {
696
+ if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {
697
+ this.lexer.state.inLink = true;
698
+ }
699
+ else if (this.lexer.state.inLink && /^<\/a>/i.test(cap[0])) {
700
+ this.lexer.state.inLink = false;
701
+ }
702
+ if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
703
+ this.lexer.state.inRawBlock = true;
704
+ }
705
+ else if (this.lexer.state.inRawBlock && /^<\/(pre|code|kbd|script)(\s|>)/i.test(cap[0])) {
706
+ this.lexer.state.inRawBlock = false;
707
+ }
708
+ return {
709
+ type: 'html',
710
+ raw: cap[0],
711
+ inLink: this.lexer.state.inLink,
712
+ inRawBlock: this.lexer.state.inRawBlock,
713
+ block: false,
714
+ text: cap[0]
715
+ };
716
+ }
717
+ }
718
+ link(src) {
719
+ const cap = this.rules.inline.link.exec(src);
720
+ if (cap) {
721
+ const trimmedUrl = cap[2].trim();
722
+ if (!this.options.pedantic && /^</.test(trimmedUrl)) {
723
+ // commonmark requires matching angle brackets
724
+ if (!(/>$/.test(trimmedUrl))) {
725
+ return;
726
+ }
727
+ // ending angle bracket cannot be escaped
728
+ const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\');
729
+ if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {
730
+ return;
731
+ }
732
+ }
733
+ else {
734
+ // find closing parenthesis
735
+ const lastParenIndex = findClosingBracket(cap[2], '()');
736
+ if (lastParenIndex > -1) {
737
+ const start = cap[0].indexOf('!') === 0 ? 5 : 4;
738
+ const linkLen = start + cap[1].length + lastParenIndex;
739
+ cap[2] = cap[2].substring(0, lastParenIndex);
740
+ cap[0] = cap[0].substring(0, linkLen).trim();
741
+ cap[3] = '';
742
+ }
743
+ }
744
+ let href = cap[2];
745
+ let title = '';
746
+ if (this.options.pedantic) {
747
+ // split pedantic href and title
748
+ const link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href);
749
+ if (link) {
750
+ href = link[1];
751
+ title = link[3];
752
+ }
753
+ }
754
+ else {
755
+ title = cap[3] ? cap[3].slice(1, -1) : '';
756
+ }
757
+ href = href.trim();
758
+ if (/^</.test(href)) {
759
+ if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {
760
+ // pedantic allows starting angle bracket without ending angle bracket
761
+ href = href.slice(1);
762
+ }
763
+ else {
764
+ href = href.slice(1, -1);
765
+ }
766
+ }
767
+ return outputLink(cap, {
768
+ href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,
769
+ title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title
770
+ }, cap[0], this.lexer);
771
+ }
772
+ }
773
+ reflink(src, links) {
774
+ let cap;
775
+ if ((cap = this.rules.inline.reflink.exec(src))
776
+ || (cap = this.rules.inline.nolink.exec(src))) {
777
+ const linkString = (cap[2] || cap[1]).replace(/\s+/g, ' ');
778
+ const link = links[linkString.toLowerCase()];
779
+ if (!link) {
780
+ const text = cap[0].charAt(0);
781
+ return {
782
+ type: 'text',
783
+ raw: text,
784
+ text
785
+ };
786
+ }
787
+ return outputLink(cap, link, cap[0], this.lexer);
788
+ }
789
+ }
790
+ emStrong(src, maskedSrc, prevChar = '') {
791
+ let match = this.rules.inline.emStrongLDelim.exec(src);
792
+ if (!match)
793
+ return;
794
+ // _ can't be between two alphanumerics. \p{L}\p{N} includes non-english alphabet/numbers as well
795
+ if (match[3] && prevChar.match(/[\p{L}\p{N}]/u))
796
+ return;
797
+ const nextChar = match[1] || match[2] || '';
798
+ if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {
799
+ // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)
800
+ const lLength = [...match[0]].length - 1;
801
+ let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;
802
+ const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;
803
+ endReg.lastIndex = 0;
804
+ // Clip maskedSrc to same section of string as src (move to lexer?)
805
+ maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
806
+ while ((match = endReg.exec(maskedSrc)) != null) {
807
+ rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
808
+ if (!rDelim)
809
+ continue; // skip single * in __abc*abc__
810
+ rLength = [...rDelim].length;
811
+ if (match[3] || match[4]) { // found another Left Delim
812
+ delimTotal += rLength;
813
+ continue;
814
+ }
815
+ else if (match[5] || match[6]) { // either Left or Right Delim
816
+ if (lLength % 3 && !((lLength + rLength) % 3)) {
817
+ midDelimTotal += rLength;
818
+ continue; // CommonMark Emphasis Rules 9-10
819
+ }
820
+ }
821
+ delimTotal -= rLength;
822
+ if (delimTotal > 0)
823
+ continue; // Haven't found enough closing delimiters
824
+ // Remove extra characters. *a*** -> *a*
825
+ rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
826
+ // char length can be >1 for unicode characters;
827
+ const lastCharLength = [...match[0]][0].length;
828
+ const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);
829
+ // Create `em` if smallest delimiter has odd char count. *a***
830
+ if (Math.min(lLength, rLength) % 2) {
831
+ const text = raw.slice(1, -1);
832
+ return {
833
+ type: 'em',
834
+ raw,
835
+ text,
836
+ tokens: this.lexer.inlineTokens(text)
837
+ };
838
+ }
839
+ // Create 'strong' if smallest delimiter has even char count. **a***
840
+ const text = raw.slice(2, -2);
841
+ return {
842
+ type: 'strong',
843
+ raw,
844
+ text,
845
+ tokens: this.lexer.inlineTokens(text)
846
+ };
847
+ }
848
+ }
849
+ }
850
+ codespan(src) {
851
+ const cap = this.rules.inline.code.exec(src);
852
+ if (cap) {
853
+ let text = cap[2].replace(/\n/g, ' ');
854
+ const hasNonSpaceChars = /[^ ]/.test(text);
855
+ const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);
856
+ if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {
857
+ text = text.substring(1, text.length - 1);
858
+ }
859
+ text = escape$1(text, true);
860
+ return {
861
+ type: 'codespan',
862
+ raw: cap[0],
863
+ text
864
+ };
865
+ }
866
+ }
867
+ br(src) {
868
+ const cap = this.rules.inline.br.exec(src);
869
+ if (cap) {
870
+ return {
871
+ type: 'br',
872
+ raw: cap[0]
873
+ };
874
+ }
875
+ }
876
+ del(src) {
877
+ const cap = this.rules.inline.del.exec(src);
878
+ if (cap) {
879
+ return {
880
+ type: 'del',
881
+ raw: cap[0],
882
+ text: cap[2],
883
+ tokens: this.lexer.inlineTokens(cap[2])
884
+ };
885
+ }
886
+ }
887
+ autolink(src) {
888
+ const cap = this.rules.inline.autolink.exec(src);
889
+ if (cap) {
890
+ let text, href;
891
+ if (cap[2] === '@') {
892
+ text = escape$1(cap[1]);
893
+ href = 'mailto:' + text;
894
+ }
895
+ else {
896
+ text = escape$1(cap[1]);
897
+ href = text;
898
+ }
899
+ return {
900
+ type: 'link',
901
+ raw: cap[0],
902
+ text,
903
+ href,
904
+ tokens: [
905
+ {
906
+ type: 'text',
907
+ raw: text,
908
+ text
909
+ }
910
+ ]
911
+ };
912
+ }
913
+ }
914
+ url(src) {
915
+ let cap;
916
+ if (cap = this.rules.inline.url.exec(src)) {
917
+ let text, href;
918
+ if (cap[2] === '@') {
919
+ text = escape$1(cap[0]);
920
+ href = 'mailto:' + text;
921
+ }
922
+ else {
923
+ // do extended autolink path validation
924
+ let prevCapZero;
925
+ do {
926
+ prevCapZero = cap[0];
927
+ cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';
928
+ } while (prevCapZero !== cap[0]);
929
+ text = escape$1(cap[0]);
930
+ if (cap[1] === 'www.') {
931
+ href = 'http://' + cap[0];
932
+ }
933
+ else {
934
+ href = cap[0];
935
+ }
936
+ }
937
+ return {
938
+ type: 'link',
939
+ raw: cap[0],
940
+ text,
941
+ href,
942
+ tokens: [
943
+ {
944
+ type: 'text',
945
+ raw: text,
946
+ text
947
+ }
948
+ ]
949
+ };
950
+ }
951
+ }
952
+ inlineText(src) {
953
+ const cap = this.rules.inline.text.exec(src);
954
+ if (cap) {
955
+ let text;
956
+ if (this.lexer.state.inRawBlock) {
957
+ text = cap[0];
958
+ }
959
+ else {
960
+ text = escape$1(cap[0]);
961
+ }
962
+ return {
963
+ type: 'text',
964
+ raw: cap[0],
965
+ text
966
+ };
967
+ }
968
+ }
969
+ }
970
+ /**
971
+ * Block-Level Grammar
972
+ */
973
+ const newline = /^(?: *(?:\n|$))+/;
974
+ const blockCode = /^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/;
975
+ const fences = /^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/;
976
+ const hr = /^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/;
977
+ const heading = /^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/;
978
+ const bullet = /(?:[*+-]|\d{1,9}[.)])/;
979
+ const lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/)
980
+ .replace(/bull/g, bullet) // lists can interrupt
981
+ .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt
982
+ .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt
983
+ .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt
984
+ .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt
985
+ .replace(/html/g, / {0,3}<[^\n>]+>\n/) // block html can interrupt
986
+ .getRegex();
987
+ const _paragraph = /^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/;
988
+ const blockText = /^[^\n]+/;
989
+ const _blockLabel = /(?!\s*\])(?:\\.|[^\[\]\\])+/;
990
+ const def = edit(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/)
991
+ .replace('label', _blockLabel)
992
+ .replace('title', /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/)
993
+ .getRegex();
994
+ const list = edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/)
995
+ .replace(/bull/g, bullet)
996
+ .getRegex();
997
+ const _tag = 'address|article|aside|base|basefont|blockquote|body|caption'
998
+ + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'
999
+ + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'
1000
+ + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'
1001
+ + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'
1002
+ + '|tr|track|ul';
1003
+ const _comment = /<!--(?:-?>|[\s\S]*?(?:-->|$))/;
1004
+ const html = edit('^ {0,3}(?:' // optional indentation
1005
+ + '<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)' // (1)
1006
+ + '|comment[^\\n]*(\\n+|$)' // (2)
1007
+ + '|<\\?[\\s\\S]*?(?:\\?>\\n*|$)' // (3)
1008
+ + '|<![A-Z][\\s\\S]*?(?:>\\n*|$)' // (4)
1009
+ + '|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)' // (5)
1010
+ + '|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (6)
1011
+ + '|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) open tag
1012
+ + '|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)' // (7) closing tag
1013
+ + ')', 'i')
1014
+ .replace('comment', _comment)
1015
+ .replace('tag', _tag)
1016
+ .replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/)
1017
+ .getRegex();
1018
+ const paragraph = edit(_paragraph)
1019
+ .replace('hr', hr)
1020
+ .replace('heading', ' {0,3}#{1,6}(?:\\s|$)')
1021
+ .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs
1022
+ .replace('|table', '')
1023
+ .replace('blockquote', ' {0,3}>')
1024
+ .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
1025
+ .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
1026
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)')
1027
+ .replace('tag', _tag) // pars can be interrupted by type (6) html blocks
1028
+ .getRegex();
1029
+ const blockquote = edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/)
1030
+ .replace('paragraph', paragraph)
1031
+ .getRegex();
1032
+ /**
1033
+ * Normal Block Grammar
1034
+ */
1035
+ const blockNormal = {
1036
+ blockquote,
1037
+ code: blockCode,
1038
+ def,
1039
+ fences,
1040
+ heading,
1041
+ hr,
1042
+ html,
1043
+ lheading,
1044
+ list,
1045
+ newline,
1046
+ paragraph,
1047
+ table: noopTest,
1048
+ text: blockText
1049
+ };
1050
+ /**
1051
+ * GFM Block Grammar
1052
+ */
1053
+ const gfmTable = edit('^ *([^\\n ].*)\\n' // Header
1054
+ + ' {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)' // Align
1055
+ + '(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)') // Cells
1056
+ .replace('hr', hr)
1057
+ .replace('heading', ' {0,3}#{1,6}(?:\\s|$)')
1058
+ .replace('blockquote', ' {0,3}>')
1059
+ .replace('code', ' {4}[^\\n]')
1060
+ .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
1061
+ .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
1062
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)')
1063
+ .replace('tag', _tag) // tables can be interrupted by type (6) html blocks
1064
+ .getRegex();
1065
+ const blockGfm = {
1066
+ ...blockNormal,
1067
+ table: gfmTable,
1068
+ paragraph: edit(_paragraph)
1069
+ .replace('hr', hr)
1070
+ .replace('heading', ' {0,3}#{1,6}(?:\\s|$)')
1071
+ .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs
1072
+ .replace('table', gfmTable) // interrupt paragraphs with table
1073
+ .replace('blockquote', ' {0,3}>')
1074
+ .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n')
1075
+ .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt
1076
+ .replace('html', '</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)')
1077
+ .replace('tag', _tag) // pars can be interrupted by type (6) html blocks
1078
+ .getRegex()
1079
+ };
1080
+ /**
1081
+ * Pedantic grammar (original John Gruber's loose markdown specification)
1082
+ */
1083
+ const blockPedantic = {
1084
+ ...blockNormal,
1085
+ html: edit('^ *(?:comment *(?:\\n|\\s*$)'
1086
+ + '|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)' // closed tag
1087
+ + '|<tag(?:"[^"]*"|\'[^\']*\'|\\s[^\'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))')
1088
+ .replace('comment', _comment)
1089
+ .replace(/tag/g, '(?!(?:'
1090
+ + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'
1091
+ + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'
1092
+ + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b')
1093
+ .getRegex(),
1094
+ def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,
1095
+ heading: /^(#{1,6})(.*)(?:\n+|$)/,
1096
+ fences: noopTest, // fences not supported
1097
+ lheading: /^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,
1098
+ paragraph: edit(_paragraph)
1099
+ .replace('hr', hr)
1100
+ .replace('heading', ' *#{1,6} *[^\n]')
1101
+ .replace('lheading', lheading)
1102
+ .replace('|table', '')
1103
+ .replace('blockquote', ' {0,3}>')
1104
+ .replace('|fences', '')
1105
+ .replace('|list', '')
1106
+ .replace('|html', '')
1107
+ .replace('|tag', '')
1108
+ .getRegex()
1109
+ };
1110
+ /**
1111
+ * Inline-Level Grammar
1112
+ */
1113
+ const escape = /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/;
1114
+ const inlineCode = /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/;
1115
+ const br = /^( {2,}|\\)\n(?!\s*$)/;
1116
+ const inlineText = /^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/;
1117
+ // list of unicode punctuation marks, plus any missing characters from CommonMark spec
1118
+ const _punctuation = '\\p{P}\\p{S}';
1119
+ const punctuation = edit(/^((?![*_])[\spunctuation])/, 'u')
1120
+ .replace(/punctuation/g, _punctuation).getRegex();
1121
+ // sequences em should skip over [title](link), `code`, <html>
1122
+ const blockSkip = /\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g;
1123
+ const emStrongLDelim = edit(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/, 'u')
1124
+ .replace(/punct/g, _punctuation)
1125
+ .getRegex();
1126
+ const emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)' // Skip orphan inside strong
1127
+ + '|[^*]+(?=[^*])' // Consume to delim
1128
+ + '|(?!\\*)[punct](\\*+)(?=[\\s]|$)' // (1) #*** can only be a Right Delimiter
1129
+ + '|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter
1130
+ + '|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])' // (3) #***a, ***a can only be Left Delimiter
1131
+ + '|[\\s](\\*+)(?!\\*)(?=[punct])' // (4) ***# can only be Left Delimiter
1132
+ + '|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter
1133
+ + '|[^punct\\s](\\*+)(?=[^punct\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter
1134
+ .replace(/punct/g, _punctuation)
1135
+ .getRegex();
1136
+ // (6) Not allowed for _
1137
+ const emStrongRDelimUnd = edit('^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)' // Skip orphan inside strong
1138
+ + '|[^_]+(?=[^_])' // Consume to delim
1139
+ + '|(?!_)[punct](_+)(?=[\\s]|$)' // (1) #___ can only be a Right Delimiter
1140
+ + '|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter
1141
+ + '|(?!_)[punct\\s](_+)(?=[^punct\\s])' // (3) #___a, ___a can only be Left Delimiter
1142
+ + '|[\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter
1143
+ + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter
1144
+ .replace(/punct/g, _punctuation)
1145
+ .getRegex();
1146
+ const anyPunctuation = edit(/\\([punct])/, 'gu')
1147
+ .replace(/punct/g, _punctuation)
1148
+ .getRegex();
1149
+ const autolink = edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/)
1150
+ .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)
1151
+ .replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/)
1152
+ .getRegex();
1153
+ const _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();
1154
+ const tag = edit('^comment'
1155
+ + '|^</[a-zA-Z][\\w:-]*\\s*>' // self-closing tag
1156
+ + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag
1157
+ + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. <?php ?>
1158
+ + '|^<![a-zA-Z]+\\s[\\s\\S]*?>' // declaration, e.g. <!DOCTYPE html>
1159
+ + '|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>') // CDATA section
1160
+ .replace('comment', _inlineComment)
1161
+ .replace('attribute', /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/)
1162
+ .getRegex();
1163
+ const _inlineLabel = /(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;
1164
+ const link = edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/)
1165
+ .replace('label', _inlineLabel)
1166
+ .replace('href', /<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/)
1167
+ .replace('title', /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/)
1168
+ .getRegex();
1169
+ const reflink = edit(/^!?\[(label)\]\[(ref)\]/)
1170
+ .replace('label', _inlineLabel)
1171
+ .replace('ref', _blockLabel)
1172
+ .getRegex();
1173
+ const nolink = edit(/^!?\[(ref)\](?:\[\])?/)
1174
+ .replace('ref', _blockLabel)
1175
+ .getRegex();
1176
+ const reflinkSearch = edit('reflink|nolink(?!\\()', 'g')
1177
+ .replace('reflink', reflink)
1178
+ .replace('nolink', nolink)
1179
+ .getRegex();
1180
+ /**
1181
+ * Normal Inline Grammar
1182
+ */
1183
+ const inlineNormal = {
1184
+ _backpedal: noopTest, // only used for GFM url
1185
+ anyPunctuation,
1186
+ autolink,
1187
+ blockSkip,
1188
+ br,
1189
+ code: inlineCode,
1190
+ del: noopTest,
1191
+ emStrongLDelim,
1192
+ emStrongRDelimAst,
1193
+ emStrongRDelimUnd,
1194
+ escape,
1195
+ link,
1196
+ nolink,
1197
+ punctuation,
1198
+ reflink,
1199
+ reflinkSearch,
1200
+ tag,
1201
+ text: inlineText,
1202
+ url: noopTest
1203
+ };
1204
+ /**
1205
+ * Pedantic Inline Grammar
1206
+ */
1207
+ const inlinePedantic = {
1208
+ ...inlineNormal,
1209
+ link: edit(/^!?\[(label)\]\((.*?)\)/)
1210
+ .replace('label', _inlineLabel)
1211
+ .getRegex(),
1212
+ reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/)
1213
+ .replace('label', _inlineLabel)
1214
+ .getRegex()
1215
+ };
1216
+ /**
1217
+ * GFM Inline Grammar
1218
+ */
1219
+ const inlineGfm = {
1220
+ ...inlineNormal,
1221
+ escape: edit(escape).replace('])', '~|])').getRegex(),
1222
+ url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/, 'i')
1223
+ .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)
1224
+ .getRegex(),
1225
+ _backpedal: /(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,
1226
+ del: /^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,
1227
+ text: /^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/
1228
+ };
1229
+ /**
1230
+ * GFM + Line Breaks Inline Grammar
1231
+ */
1232
+ const inlineBreaks = {
1233
+ ...inlineGfm,
1234
+ br: edit(br).replace('{2,}', '*').getRegex(),
1235
+ text: edit(inlineGfm.text)
1236
+ .replace('\\b_', '\\b_| {2,}\\n')
1237
+ .replace(/\{2,\}/g, '*')
1238
+ .getRegex()
1239
+ };
1240
+ /**
1241
+ * exports
1242
+ */
1243
+ const block = {
1244
+ normal: blockNormal,
1245
+ gfm: blockGfm,
1246
+ pedantic: blockPedantic
1247
+ };
1248
+ const inline = {
1249
+ normal: inlineNormal,
1250
+ gfm: inlineGfm,
1251
+ breaks: inlineBreaks,
1252
+ pedantic: inlinePedantic
1253
+ };
1254
+ /**
1255
+ * Block Lexer
1256
+ */
1257
+ class _Lexer {
1258
+ tokens;
1259
+ options;
1260
+ state;
1261
+ tokenizer;
1262
+ inlineQueue;
1263
+ constructor(options) {
1264
+ // TokenList cannot be created in one go
1265
+ this.tokens = [];
1266
+ this.tokens.links = Object.create(null);
1267
+ this.options = options || _defaults;
1268
+ this.options.tokenizer = this.options.tokenizer || new _Tokenizer();
1269
+ this.tokenizer = this.options.tokenizer;
1270
+ this.tokenizer.options = this.options;
1271
+ this.tokenizer.lexer = this;
1272
+ this.inlineQueue = [];
1273
+ this.state = {
1274
+ inLink: false,
1275
+ inRawBlock: false,
1276
+ top: true
1277
+ };
1278
+ const rules = {
1279
+ block: block.normal,
1280
+ inline: inline.normal
1281
+ };
1282
+ if (this.options.pedantic) {
1283
+ rules.block = block.pedantic;
1284
+ rules.inline = inline.pedantic;
1285
+ }
1286
+ else if (this.options.gfm) {
1287
+ rules.block = block.gfm;
1288
+ if (this.options.breaks) {
1289
+ rules.inline = inline.breaks;
1290
+ }
1291
+ else {
1292
+ rules.inline = inline.gfm;
1293
+ }
1294
+ }
1295
+ this.tokenizer.rules = rules;
1296
+ }
1297
+ /**
1298
+ * Expose Rules
1299
+ */
1300
+ static get rules() {
1301
+ return {
1302
+ block,
1303
+ inline
1304
+ };
1305
+ }
1306
+ /**
1307
+ * Static Lex Method
1308
+ */
1309
+ static lex(src, options) {
1310
+ const lexer = new _Lexer(options);
1311
+ return lexer.lex(src);
1312
+ }
1313
+ /**
1314
+ * Static Lex Inline Method
1315
+ */
1316
+ static lexInline(src, options) {
1317
+ const lexer = new _Lexer(options);
1318
+ return lexer.inlineTokens(src);
1319
+ }
1320
+ /**
1321
+ * Preprocessing
1322
+ */
1323
+ lex(src) {
1324
+ src = src
1325
+ .replace(/\r\n|\r/g, '\n');
1326
+ this.blockTokens(src, this.tokens);
1327
+ for (let i = 0; i < this.inlineQueue.length; i++) {
1328
+ const next = this.inlineQueue[i];
1329
+ this.inlineTokens(next.src, next.tokens);
1330
+ }
1331
+ this.inlineQueue = [];
1332
+ return this.tokens;
1333
+ }
1334
+ blockTokens(src, tokens = [], lastParagraphClipped = false) {
1335
+ if (this.options.pedantic) {
1336
+ src = src.replace(/\t/g, ' ').replace(/^ +$/gm, '');
1337
+ }
1338
+ else {
1339
+ src = src.replace(/^( *)(\t+)/gm, (_, leading, tabs) => {
1340
+ return leading + ' '.repeat(tabs.length);
1341
+ });
1342
+ }
1343
+ let token;
1344
+ let lastToken;
1345
+ let cutSrc;
1346
+ while (src) {
1347
+ if (this.options.extensions
1348
+ && this.options.extensions.block
1349
+ && this.options.extensions.block.some((extTokenizer) => {
1350
+ if (token = extTokenizer.call({ lexer: this }, src, tokens)) {
1351
+ src = src.substring(token.raw.length);
1352
+ tokens.push(token);
1353
+ return true;
1354
+ }
1355
+ return false;
1356
+ })) {
1357
+ continue;
1358
+ }
1359
+ // newline
1360
+ if (token = this.tokenizer.space(src)) {
1361
+ src = src.substring(token.raw.length);
1362
+ if (token.raw.length === 1 && tokens.length > 0) {
1363
+ // if there's a single \n as a spacer, it's terminating the last line,
1364
+ // so move it there so that we don't get unnecessary paragraph tags
1365
+ tokens[tokens.length - 1].raw += '\n';
1366
+ }
1367
+ else {
1368
+ tokens.push(token);
1369
+ }
1370
+ continue;
1371
+ }
1372
+ // code
1373
+ if (token = this.tokenizer.code(src)) {
1374
+ src = src.substring(token.raw.length);
1375
+ lastToken = tokens[tokens.length - 1];
1376
+ // An indented code block cannot interrupt a paragraph.
1377
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
1378
+ lastToken.raw += '\n' + token.raw;
1379
+ lastToken.text += '\n' + token.text;
1380
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
1381
+ }
1382
+ else {
1383
+ tokens.push(token);
1384
+ }
1385
+ continue;
1386
+ }
1387
+ // fences
1388
+ if (token = this.tokenizer.fences(src)) {
1389
+ src = src.substring(token.raw.length);
1390
+ tokens.push(token);
1391
+ continue;
1392
+ }
1393
+ // heading
1394
+ if (token = this.tokenizer.heading(src)) {
1395
+ src = src.substring(token.raw.length);
1396
+ tokens.push(token);
1397
+ continue;
1398
+ }
1399
+ // hr
1400
+ if (token = this.tokenizer.hr(src)) {
1401
+ src = src.substring(token.raw.length);
1402
+ tokens.push(token);
1403
+ continue;
1404
+ }
1405
+ // blockquote
1406
+ if (token = this.tokenizer.blockquote(src)) {
1407
+ src = src.substring(token.raw.length);
1408
+ tokens.push(token);
1409
+ continue;
1410
+ }
1411
+ // list
1412
+ if (token = this.tokenizer.list(src)) {
1413
+ src = src.substring(token.raw.length);
1414
+ tokens.push(token);
1415
+ continue;
1416
+ }
1417
+ // html
1418
+ if (token = this.tokenizer.html(src)) {
1419
+ src = src.substring(token.raw.length);
1420
+ tokens.push(token);
1421
+ continue;
1422
+ }
1423
+ // def
1424
+ if (token = this.tokenizer.def(src)) {
1425
+ src = src.substring(token.raw.length);
1426
+ lastToken = tokens[tokens.length - 1];
1427
+ if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {
1428
+ lastToken.raw += '\n' + token.raw;
1429
+ lastToken.text += '\n' + token.raw;
1430
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
1431
+ }
1432
+ else if (!this.tokens.links[token.tag]) {
1433
+ this.tokens.links[token.tag] = {
1434
+ href: token.href,
1435
+ title: token.title
1436
+ };
1437
+ }
1438
+ continue;
1439
+ }
1440
+ // table (gfm)
1441
+ if (token = this.tokenizer.table(src)) {
1442
+ src = src.substring(token.raw.length);
1443
+ tokens.push(token);
1444
+ continue;
1445
+ }
1446
+ // lheading
1447
+ if (token = this.tokenizer.lheading(src)) {
1448
+ src = src.substring(token.raw.length);
1449
+ tokens.push(token);
1450
+ continue;
1451
+ }
1452
+ // top-level paragraph
1453
+ // prevent paragraph consuming extensions by clipping 'src' to extension start
1454
+ cutSrc = src;
1455
+ if (this.options.extensions && this.options.extensions.startBlock) {
1456
+ let startIndex = Infinity;
1457
+ const tempSrc = src.slice(1);
1458
+ let tempStart;
1459
+ this.options.extensions.startBlock.forEach((getStartIndex) => {
1460
+ tempStart = getStartIndex.call({ lexer: this }, tempSrc);
1461
+ if (typeof tempStart === 'number' && tempStart >= 0) {
1462
+ startIndex = Math.min(startIndex, tempStart);
1463
+ }
1464
+ });
1465
+ if (startIndex < Infinity && startIndex >= 0) {
1466
+ cutSrc = src.substring(0, startIndex + 1);
1467
+ }
1468
+ }
1469
+ if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {
1470
+ lastToken = tokens[tokens.length - 1];
1471
+ if (lastParagraphClipped && lastToken?.type === 'paragraph') {
1472
+ lastToken.raw += '\n' + token.raw;
1473
+ lastToken.text += '\n' + token.text;
1474
+ this.inlineQueue.pop();
1475
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
1476
+ }
1477
+ else {
1478
+ tokens.push(token);
1479
+ }
1480
+ lastParagraphClipped = (cutSrc.length !== src.length);
1481
+ src = src.substring(token.raw.length);
1482
+ continue;
1483
+ }
1484
+ // text
1485
+ if (token = this.tokenizer.text(src)) {
1486
+ src = src.substring(token.raw.length);
1487
+ lastToken = tokens[tokens.length - 1];
1488
+ if (lastToken && lastToken.type === 'text') {
1489
+ lastToken.raw += '\n' + token.raw;
1490
+ lastToken.text += '\n' + token.text;
1491
+ this.inlineQueue.pop();
1492
+ this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;
1493
+ }
1494
+ else {
1495
+ tokens.push(token);
1496
+ }
1497
+ continue;
1498
+ }
1499
+ if (src) {
1500
+ const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
1501
+ if (this.options.silent) {
1502
+ console.error(errMsg);
1503
+ break;
1504
+ }
1505
+ else {
1506
+ throw new Error(errMsg);
1507
+ }
1508
+ }
1509
+ }
1510
+ this.state.top = true;
1511
+ return tokens;
1512
+ }
1513
+ inline(src, tokens = []) {
1514
+ this.inlineQueue.push({ src, tokens });
1515
+ return tokens;
1516
+ }
1517
+ /**
1518
+ * Lexing/Compiling
1519
+ */
1520
+ inlineTokens(src, tokens = []) {
1521
+ let token, lastToken, cutSrc;
1522
+ // String with links masked to avoid interference with em and strong
1523
+ let maskedSrc = src;
1524
+ let match;
1525
+ let keepPrevChar, prevChar;
1526
+ // Mask out reflinks
1527
+ if (this.tokens.links) {
1528
+ const links = Object.keys(this.tokens.links);
1529
+ if (links.length > 0) {
1530
+ while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {
1531
+ if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {
1532
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);
1533
+ }
1534
+ }
1535
+ }
1536
+ }
1537
+ // Mask out other blocks
1538
+ while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {
1539
+ maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);
1540
+ }
1541
+ // Mask out escaped characters
1542
+ while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {
1543
+ maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);
1544
+ }
1545
+ while (src) {
1546
+ if (!keepPrevChar) {
1547
+ prevChar = '';
1548
+ }
1549
+ keepPrevChar = false;
1550
+ // extensions
1551
+ if (this.options.extensions
1552
+ && this.options.extensions.inline
1553
+ && this.options.extensions.inline.some((extTokenizer) => {
1554
+ if (token = extTokenizer.call({ lexer: this }, src, tokens)) {
1555
+ src = src.substring(token.raw.length);
1556
+ tokens.push(token);
1557
+ return true;
1558
+ }
1559
+ return false;
1560
+ })) {
1561
+ continue;
1562
+ }
1563
+ // escape
1564
+ if (token = this.tokenizer.escape(src)) {
1565
+ src = src.substring(token.raw.length);
1566
+ tokens.push(token);
1567
+ continue;
1568
+ }
1569
+ // tag
1570
+ if (token = this.tokenizer.tag(src)) {
1571
+ src = src.substring(token.raw.length);
1572
+ lastToken = tokens[tokens.length - 1];
1573
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
1574
+ lastToken.raw += token.raw;
1575
+ lastToken.text += token.text;
1576
+ }
1577
+ else {
1578
+ tokens.push(token);
1579
+ }
1580
+ continue;
1581
+ }
1582
+ // link
1583
+ if (token = this.tokenizer.link(src)) {
1584
+ src = src.substring(token.raw.length);
1585
+ tokens.push(token);
1586
+ continue;
1587
+ }
1588
+ // reflink, nolink
1589
+ if (token = this.tokenizer.reflink(src, this.tokens.links)) {
1590
+ src = src.substring(token.raw.length);
1591
+ lastToken = tokens[tokens.length - 1];
1592
+ if (lastToken && token.type === 'text' && lastToken.type === 'text') {
1593
+ lastToken.raw += token.raw;
1594
+ lastToken.text += token.text;
1595
+ }
1596
+ else {
1597
+ tokens.push(token);
1598
+ }
1599
+ continue;
1600
+ }
1601
+ // em & strong
1602
+ if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {
1603
+ src = src.substring(token.raw.length);
1604
+ tokens.push(token);
1605
+ continue;
1606
+ }
1607
+ // code
1608
+ if (token = this.tokenizer.codespan(src)) {
1609
+ src = src.substring(token.raw.length);
1610
+ tokens.push(token);
1611
+ continue;
1612
+ }
1613
+ // br
1614
+ if (token = this.tokenizer.br(src)) {
1615
+ src = src.substring(token.raw.length);
1616
+ tokens.push(token);
1617
+ continue;
1618
+ }
1619
+ // del (gfm)
1620
+ if (token = this.tokenizer.del(src)) {
1621
+ src = src.substring(token.raw.length);
1622
+ tokens.push(token);
1623
+ continue;
1624
+ }
1625
+ // autolink
1626
+ if (token = this.tokenizer.autolink(src)) {
1627
+ src = src.substring(token.raw.length);
1628
+ tokens.push(token);
1629
+ continue;
1630
+ }
1631
+ // url (gfm)
1632
+ if (!this.state.inLink && (token = this.tokenizer.url(src))) {
1633
+ src = src.substring(token.raw.length);
1634
+ tokens.push(token);
1635
+ continue;
1636
+ }
1637
+ // text
1638
+ // prevent inlineText consuming extensions by clipping 'src' to extension start
1639
+ cutSrc = src;
1640
+ if (this.options.extensions && this.options.extensions.startInline) {
1641
+ let startIndex = Infinity;
1642
+ const tempSrc = src.slice(1);
1643
+ let tempStart;
1644
+ this.options.extensions.startInline.forEach((getStartIndex) => {
1645
+ tempStart = getStartIndex.call({ lexer: this }, tempSrc);
1646
+ if (typeof tempStart === 'number' && tempStart >= 0) {
1647
+ startIndex = Math.min(startIndex, tempStart);
1648
+ }
1649
+ });
1650
+ if (startIndex < Infinity && startIndex >= 0) {
1651
+ cutSrc = src.substring(0, startIndex + 1);
1652
+ }
1653
+ }
1654
+ if (token = this.tokenizer.inlineText(cutSrc)) {
1655
+ src = src.substring(token.raw.length);
1656
+ if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started
1657
+ prevChar = token.raw.slice(-1);
1658
+ }
1659
+ keepPrevChar = true;
1660
+ lastToken = tokens[tokens.length - 1];
1661
+ if (lastToken && lastToken.type === 'text') {
1662
+ lastToken.raw += token.raw;
1663
+ lastToken.text += token.text;
1664
+ }
1665
+ else {
1666
+ tokens.push(token);
1667
+ }
1668
+ continue;
1669
+ }
1670
+ if (src) {
1671
+ const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);
1672
+ if (this.options.silent) {
1673
+ console.error(errMsg);
1674
+ break;
1675
+ }
1676
+ else {
1677
+ throw new Error(errMsg);
1678
+ }
1679
+ }
1680
+ }
1681
+ return tokens;
1682
+ }
1683
+ }
1684
+ /**
1685
+ * Renderer
1686
+ */
1687
+ class _Renderer {
1688
+ options;
1689
+ parser; // set by the parser
1690
+ constructor(options) {
1691
+ this.options = options || _defaults;
1692
+ }
1693
+ space(token) {
1694
+ return '';
1695
+ }
1696
+ code({ text, lang, escaped }) {
1697
+ const langString = (lang || '').match(/^\S*/)?.[0];
1698
+ const code = text.replace(/\n$/, '') + '\n';
1699
+ if (!langString) {
1700
+ return '<pre><code>'
1701
+ + (escaped ? code : escape$1(code, true))
1702
+ + '</code></pre>\n';
1703
+ }
1704
+ return '<pre><code class="language-'
1705
+ + escape$1(langString)
1706
+ + '">'
1707
+ + (escaped ? code : escape$1(code, true))
1708
+ + '</code></pre>\n';
1709
+ }
1710
+ blockquote({ tokens }) {
1711
+ const body = this.parser.parse(tokens);
1712
+ return `<blockquote>\n${body}</blockquote>\n`;
1713
+ }
1714
+ html({ text }) {
1715
+ return text;
1716
+ }
1717
+ heading({ tokens, depth }) {
1718
+ return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\n`;
1719
+ }
1720
+ hr(token) {
1721
+ return '<hr>\n';
1722
+ }
1723
+ list(token) {
1724
+ const ordered = token.ordered;
1725
+ const start = token.start;
1726
+ let body = '';
1727
+ for (let j = 0; j < token.items.length; j++) {
1728
+ const item = token.items[j];
1729
+ body += this.listitem(item);
1730
+ }
1731
+ const type = ordered ? 'ol' : 'ul';
1732
+ const startAttr = (ordered && start !== 1) ? (' start="' + start + '"') : '';
1733
+ return '<' + type + startAttr + '>\n' + body + '</' + type + '>\n';
1734
+ }
1735
+ listitem(item) {
1736
+ let itemBody = '';
1737
+ if (item.task) {
1738
+ const checkbox = this.checkbox({ checked: !!item.checked });
1739
+ if (item.loose) {
1740
+ if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {
1741
+ item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
1742
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
1743
+ item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
1744
+ }
1745
+ }
1746
+ else {
1747
+ item.tokens.unshift({
1748
+ type: 'text',
1749
+ raw: checkbox + ' ',
1750
+ text: checkbox + ' '
1751
+ });
1752
+ }
1753
+ }
1754
+ else {
1755
+ itemBody += checkbox + ' ';
1756
+ }
1757
+ }
1758
+ itemBody += this.parser.parse(item.tokens, !!item.loose);
1759
+ return `<li>${itemBody}</li>\n`;
1760
+ }
1761
+ checkbox({ checked }) {
1762
+ return '<input '
1763
+ + (checked ? 'checked="" ' : '')
1764
+ + 'disabled="" type="checkbox">';
1765
+ }
1766
+ paragraph({ tokens }) {
1767
+ return `<p>${this.parser.parseInline(tokens)}</p>\n`;
1768
+ }
1769
+ table(token) {
1770
+ let header = '';
1771
+ // header
1772
+ let cell = '';
1773
+ for (let j = 0; j < token.header.length; j++) {
1774
+ cell += this.tablecell(token.header[j]);
1775
+ }
1776
+ header += this.tablerow({ text: cell });
1777
+ let body = '';
1778
+ for (let j = 0; j < token.rows.length; j++) {
1779
+ const row = token.rows[j];
1780
+ cell = '';
1781
+ for (let k = 0; k < row.length; k++) {
1782
+ cell += this.tablecell(row[k]);
1783
+ }
1784
+ body += this.tablerow({ text: cell });
1785
+ }
1786
+ if (body)
1787
+ body = `<tbody>${body}</tbody>`;
1788
+ return '<table>\n'
1789
+ + '<thead>\n'
1790
+ + header
1791
+ + '</thead>\n'
1792
+ + body
1793
+ + '</table>\n';
1794
+ }
1795
+ tablerow({ text }) {
1796
+ return `<tr>\n${text}</tr>\n`;
1797
+ }
1798
+ tablecell(token) {
1799
+ const content = this.parser.parseInline(token.tokens);
1800
+ const type = token.header ? 'th' : 'td';
1801
+ const tag = token.align
1802
+ ? `<${type} align="${token.align}">`
1803
+ : `<${type}>`;
1804
+ return tag + content + `</${type}>\n`;
1805
+ }
1806
+ /**
1807
+ * span level renderer
1808
+ */
1809
+ strong({ tokens }) {
1810
+ return `<strong>${this.parser.parseInline(tokens)}</strong>`;
1811
+ }
1812
+ em({ tokens }) {
1813
+ return `<em>${this.parser.parseInline(tokens)}</em>`;
1814
+ }
1815
+ codespan({ text }) {
1816
+ return `<code>${text}</code>`;
1817
+ }
1818
+ br(token) {
1819
+ return '<br>';
1820
+ }
1821
+ del({ tokens }) {
1822
+ return `<del>${this.parser.parseInline(tokens)}</del>`;
1823
+ }
1824
+ link({ href, title, tokens }) {
1825
+ const text = this.parser.parseInline(tokens);
1826
+ const cleanHref = cleanUrl(href);
1827
+ if (cleanHref === null) {
1828
+ return text;
1829
+ }
1830
+ href = cleanHref;
1831
+ let out = '<a href="' + href + '"';
1832
+ if (title) {
1833
+ out += ' title="' + title + '"';
1834
+ }
1835
+ out += '>' + text + '</a>';
1836
+ return out;
1837
+ }
1838
+ image({ href, title, text }) {
1839
+ const cleanHref = cleanUrl(href);
1840
+ if (cleanHref === null) {
1841
+ return text;
1842
+ }
1843
+ href = cleanHref;
1844
+ let out = `<img src="${href}" alt="${text}"`;
1845
+ if (title) {
1846
+ out += ` title="${title}"`;
1847
+ }
1848
+ out += '>';
1849
+ return out;
1850
+ }
1851
+ text(token) {
1852
+ return 'tokens' in token && token.tokens ? this.parser.parseInline(token.tokens) : token.text;
1853
+ }
1854
+ }
1855
+ /**
1856
+ * TextRenderer
1857
+ * returns only the textual part of the token
1858
+ */
1859
+ class _TextRenderer {
1860
+ // no need for block level renderers
1861
+ strong({ text }) {
1862
+ return text;
1863
+ }
1864
+ em({ text }) {
1865
+ return text;
1866
+ }
1867
+ codespan({ text }) {
1868
+ return text;
1869
+ }
1870
+ del({ text }) {
1871
+ return text;
1872
+ }
1873
+ html({ text }) {
1874
+ return text;
1875
+ }
1876
+ text({ text }) {
1877
+ return text;
1878
+ }
1879
+ link({ text }) {
1880
+ return '' + text;
1881
+ }
1882
+ image({ text }) {
1883
+ return '' + text;
1884
+ }
1885
+ br() {
1886
+ return '';
1887
+ }
1888
+ }
1889
+ /**
1890
+ * Parsing & Compiling
1891
+ */
1892
+ class _Parser {
1893
+ options;
1894
+ renderer;
1895
+ textRenderer;
1896
+ constructor(options) {
1897
+ this.options = options || _defaults;
1898
+ this.options.renderer = this.options.renderer || new _Renderer();
1899
+ this.renderer = this.options.renderer;
1900
+ this.renderer.options = this.options;
1901
+ this.renderer.parser = this;
1902
+ this.textRenderer = new _TextRenderer();
1903
+ }
1904
+ /**
1905
+ * Static Parse Method
1906
+ */
1907
+ static parse(tokens, options) {
1908
+ const parser = new _Parser(options);
1909
+ return parser.parse(tokens);
1910
+ }
1911
+ /**
1912
+ * Static Parse Inline Method
1913
+ */
1914
+ static parseInline(tokens, options) {
1915
+ const parser = new _Parser(options);
1916
+ return parser.parseInline(tokens);
1917
+ }
1918
+ /**
1919
+ * Parse Loop
1920
+ */
1921
+ parse(tokens, top = true) {
1922
+ let out = '';
1923
+ for (let i = 0; i < tokens.length; i++) {
1924
+ const anyToken = tokens[i];
1925
+ // Run any renderer extensions
1926
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {
1927
+ const genericToken = anyToken;
1928
+ const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);
1929
+ if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {
1930
+ out += ret || '';
1931
+ continue;
1932
+ }
1933
+ }
1934
+ const token = anyToken;
1935
+ switch (token.type) {
1936
+ case 'space': {
1937
+ out += this.renderer.space(token);
1938
+ continue;
1939
+ }
1940
+ case 'hr': {
1941
+ out += this.renderer.hr(token);
1942
+ continue;
1943
+ }
1944
+ case 'heading': {
1945
+ out += this.renderer.heading(token);
1946
+ continue;
1947
+ }
1948
+ case 'code': {
1949
+ out += this.renderer.code(token);
1950
+ continue;
1951
+ }
1952
+ case 'table': {
1953
+ out += this.renderer.table(token);
1954
+ continue;
1955
+ }
1956
+ case 'blockquote': {
1957
+ out += this.renderer.blockquote(token);
1958
+ continue;
1959
+ }
1960
+ case 'list': {
1961
+ out += this.renderer.list(token);
1962
+ continue;
1963
+ }
1964
+ case 'html': {
1965
+ out += this.renderer.html(token);
1966
+ continue;
1967
+ }
1968
+ case 'paragraph': {
1969
+ out += this.renderer.paragraph(token);
1970
+ continue;
1971
+ }
1972
+ case 'text': {
1973
+ let textToken = token;
1974
+ let body = this.renderer.text(textToken);
1975
+ while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {
1976
+ textToken = tokens[++i];
1977
+ body += '\n' + this.renderer.text(textToken);
1978
+ }
1979
+ if (top) {
1980
+ out += this.renderer.paragraph({
1981
+ type: 'paragraph',
1982
+ raw: body,
1983
+ text: body,
1984
+ tokens: [{ type: 'text', raw: body, text: body }]
1985
+ });
1986
+ }
1987
+ else {
1988
+ out += body;
1989
+ }
1990
+ continue;
1991
+ }
1992
+ default: {
1993
+ const errMsg = 'Token with "' + token.type + '" type was not found.';
1994
+ if (this.options.silent) {
1995
+ console.error(errMsg);
1996
+ return '';
1997
+ }
1998
+ else {
1999
+ throw new Error(errMsg);
2000
+ }
2001
+ }
2002
+ }
2003
+ }
2004
+ return out;
2005
+ }
2006
+ /**
2007
+ * Parse Inline Tokens
2008
+ */
2009
+ parseInline(tokens, renderer) {
2010
+ renderer = renderer || this.renderer;
2011
+ let out = '';
2012
+ for (let i = 0; i < tokens.length; i++) {
2013
+ const anyToken = tokens[i];
2014
+ // Run any renderer extensions
2015
+ if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {
2016
+ const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);
2017
+ if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {
2018
+ out += ret || '';
2019
+ continue;
2020
+ }
2021
+ }
2022
+ const token = anyToken;
2023
+ switch (token.type) {
2024
+ case 'escape': {
2025
+ out += renderer.text(token);
2026
+ break;
2027
+ }
2028
+ case 'html': {
2029
+ out += renderer.html(token);
2030
+ break;
2031
+ }
2032
+ case 'link': {
2033
+ out += renderer.link(token);
2034
+ break;
2035
+ }
2036
+ case 'image': {
2037
+ out += renderer.image(token);
2038
+ break;
2039
+ }
2040
+ case 'strong': {
2041
+ out += renderer.strong(token);
2042
+ break;
2043
+ }
2044
+ case 'em': {
2045
+ out += renderer.em(token);
2046
+ break;
2047
+ }
2048
+ case 'codespan': {
2049
+ out += renderer.codespan(token);
2050
+ break;
2051
+ }
2052
+ case 'br': {
2053
+ out += renderer.br(token);
2054
+ break;
2055
+ }
2056
+ case 'del': {
2057
+ out += renderer.del(token);
2058
+ break;
2059
+ }
2060
+ case 'text': {
2061
+ out += renderer.text(token);
2062
+ break;
2063
+ }
2064
+ default: {
2065
+ const errMsg = 'Token with "' + token.type + '" type was not found.';
2066
+ if (this.options.silent) {
2067
+ console.error(errMsg);
2068
+ return '';
2069
+ }
2070
+ else {
2071
+ throw new Error(errMsg);
2072
+ }
2073
+ }
2074
+ }
2075
+ }
2076
+ return out;
2077
+ }
2078
+ }
2079
+ class _Hooks {
2080
+ options;
2081
+ constructor(options) {
2082
+ this.options = options || _defaults;
2083
+ }
2084
+ static passThroughHooks = new Set([
2085
+ 'preprocess',
2086
+ 'postprocess',
2087
+ 'processAllTokens'
2088
+ ]);
2089
+ /**
2090
+ * Process markdown before marked
2091
+ */
2092
+ preprocess(markdown) {
2093
+ return markdown;
2094
+ }
2095
+ /**
2096
+ * Process HTML after marked is finished
2097
+ */
2098
+ postprocess(html) {
2099
+ return html;
2100
+ }
2101
+ /**
2102
+ * Process all tokens before walk tokens
2103
+ */
2104
+ processAllTokens(tokens) {
2105
+ return tokens;
2106
+ }
2107
+ }
2108
+ class Marked {
2109
+ defaults = _getDefaults();
2110
+ options = this.setOptions;
2111
+ parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);
2112
+ parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);
2113
+ Parser = _Parser;
2114
+ Renderer = _Renderer;
2115
+ TextRenderer = _TextRenderer;
2116
+ Lexer = _Lexer;
2117
+ Tokenizer = _Tokenizer;
2118
+ Hooks = _Hooks;
2119
+ constructor(...args) {
2120
+ this.use(...args);
2121
+ }
2122
+ /**
2123
+ * Run callback for every token
2124
+ */
2125
+ walkTokens(tokens, callback) {
2126
+ let values = [];
2127
+ for (const token of tokens) {
2128
+ values = values.concat(callback.call(this, token));
2129
+ switch (token.type) {
2130
+ case 'table': {
2131
+ const tableToken = token;
2132
+ for (const cell of tableToken.header) {
2133
+ values = values.concat(this.walkTokens(cell.tokens, callback));
2134
+ }
2135
+ for (const row of tableToken.rows) {
2136
+ for (const cell of row) {
2137
+ values = values.concat(this.walkTokens(cell.tokens, callback));
2138
+ }
2139
+ }
2140
+ break;
2141
+ }
2142
+ case 'list': {
2143
+ const listToken = token;
2144
+ values = values.concat(this.walkTokens(listToken.items, callback));
2145
+ break;
2146
+ }
2147
+ default: {
2148
+ const genericToken = token;
2149
+ if (this.defaults.extensions?.childTokens?.[genericToken.type]) {
2150
+ this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {
2151
+ const tokens = genericToken[childTokens].flat(Infinity);
2152
+ values = values.concat(this.walkTokens(tokens, callback));
2153
+ });
2154
+ }
2155
+ else if (genericToken.tokens) {
2156
+ values = values.concat(this.walkTokens(genericToken.tokens, callback));
2157
+ }
2158
+ }
2159
+ }
2160
+ }
2161
+ return values;
2162
+ }
2163
+ use(...args) {
2164
+ const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };
2165
+ args.forEach((pack) => {
2166
+ // copy options to new object
2167
+ const opts = { ...pack };
2168
+ // set async to true if it was set to true before
2169
+ opts.async = this.defaults.async || opts.async || false;
2170
+ // ==-- Parse "addon" extensions --== //
2171
+ if (pack.extensions) {
2172
+ pack.extensions.forEach((ext) => {
2173
+ if (!ext.name) {
2174
+ throw new Error('extension name required');
2175
+ }
2176
+ if ('renderer' in ext) { // Renderer extensions
2177
+ const prevRenderer = extensions.renderers[ext.name];
2178
+ if (prevRenderer) {
2179
+ // Replace extension with func to run new extension but fall back if false
2180
+ extensions.renderers[ext.name] = function (...args) {
2181
+ let ret = ext.renderer.apply(this, args);
2182
+ if (ret === false) {
2183
+ ret = prevRenderer.apply(this, args);
2184
+ }
2185
+ return ret;
2186
+ };
2187
+ }
2188
+ else {
2189
+ extensions.renderers[ext.name] = ext.renderer;
2190
+ }
2191
+ }
2192
+ if ('tokenizer' in ext) { // Tokenizer Extensions
2193
+ if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {
2194
+ throw new Error("extension level must be 'block' or 'inline'");
2195
+ }
2196
+ const extLevel = extensions[ext.level];
2197
+ if (extLevel) {
2198
+ extLevel.unshift(ext.tokenizer);
2199
+ }
2200
+ else {
2201
+ extensions[ext.level] = [ext.tokenizer];
2202
+ }
2203
+ if (ext.start) { // Function to check for start of token
2204
+ if (ext.level === 'block') {
2205
+ if (extensions.startBlock) {
2206
+ extensions.startBlock.push(ext.start);
2207
+ }
2208
+ else {
2209
+ extensions.startBlock = [ext.start];
2210
+ }
2211
+ }
2212
+ else if (ext.level === 'inline') {
2213
+ if (extensions.startInline) {
2214
+ extensions.startInline.push(ext.start);
2215
+ }
2216
+ else {
2217
+ extensions.startInline = [ext.start];
2218
+ }
2219
+ }
2220
+ }
2221
+ }
2222
+ if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens
2223
+ extensions.childTokens[ext.name] = ext.childTokens;
2224
+ }
2225
+ });
2226
+ opts.extensions = extensions;
2227
+ }
2228
+ // ==-- Parse "overwrite" extensions --== //
2229
+ if (pack.renderer) {
2230
+ const renderer = this.defaults.renderer || new _Renderer(this.defaults);
2231
+ for (const prop in pack.renderer) {
2232
+ if (!(prop in renderer)) {
2233
+ throw new Error(`renderer '${prop}' does not exist`);
2234
+ }
2235
+ if (['options', 'parser'].includes(prop)) {
2236
+ // ignore options property
2237
+ continue;
2238
+ }
2239
+ const rendererProp = prop;
2240
+ let rendererFunc = pack.renderer[rendererProp];
2241
+ const prevRenderer = renderer[rendererProp];
2242
+ // Replace renderer with func to run extension, but fall back if false
2243
+ renderer[rendererProp] = (...args) => {
2244
+ if (!pack.useNewRenderer) {
2245
+ // TODO: Remove this in next major version
2246
+ rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer);
2247
+ }
2248
+ let ret = rendererFunc.apply(renderer, args);
2249
+ if (ret === false) {
2250
+ ret = prevRenderer.apply(renderer, args);
2251
+ }
2252
+ return ret || '';
2253
+ };
2254
+ }
2255
+ opts.renderer = renderer;
2256
+ }
2257
+ if (pack.tokenizer) {
2258
+ const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);
2259
+ for (const prop in pack.tokenizer) {
2260
+ if (!(prop in tokenizer)) {
2261
+ throw new Error(`tokenizer '${prop}' does not exist`);
2262
+ }
2263
+ if (['options', 'rules', 'lexer'].includes(prop)) {
2264
+ // ignore options, rules, and lexer properties
2265
+ continue;
2266
+ }
2267
+ const tokenizerProp = prop;
2268
+ const tokenizerFunc = pack.tokenizer[tokenizerProp];
2269
+ const prevTokenizer = tokenizer[tokenizerProp];
2270
+ // Replace tokenizer with func to run extension, but fall back if false
2271
+ // @ts-expect-error cannot type tokenizer function dynamically
2272
+ tokenizer[tokenizerProp] = (...args) => {
2273
+ let ret = tokenizerFunc.apply(tokenizer, args);
2274
+ if (ret === false) {
2275
+ ret = prevTokenizer.apply(tokenizer, args);
2276
+ }
2277
+ return ret;
2278
+ };
2279
+ }
2280
+ opts.tokenizer = tokenizer;
2281
+ }
2282
+ // ==-- Parse Hooks extensions --== //
2283
+ if (pack.hooks) {
2284
+ const hooks = this.defaults.hooks || new _Hooks();
2285
+ for (const prop in pack.hooks) {
2286
+ if (!(prop in hooks)) {
2287
+ throw new Error(`hook '${prop}' does not exist`);
2288
+ }
2289
+ if (prop === 'options') {
2290
+ // ignore options property
2291
+ continue;
2292
+ }
2293
+ const hooksProp = prop;
2294
+ const hooksFunc = pack.hooks[hooksProp];
2295
+ const prevHook = hooks[hooksProp];
2296
+ if (_Hooks.passThroughHooks.has(prop)) {
2297
+ // @ts-expect-error cannot type hook function dynamically
2298
+ hooks[hooksProp] = (arg) => {
2299
+ if (this.defaults.async) {
2300
+ return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {
2301
+ return prevHook.call(hooks, ret);
2302
+ });
2303
+ }
2304
+ const ret = hooksFunc.call(hooks, arg);
2305
+ return prevHook.call(hooks, ret);
2306
+ };
2307
+ }
2308
+ else {
2309
+ // @ts-expect-error cannot type hook function dynamically
2310
+ hooks[hooksProp] = (...args) => {
2311
+ let ret = hooksFunc.apply(hooks, args);
2312
+ if (ret === false) {
2313
+ ret = prevHook.apply(hooks, args);
2314
+ }
2315
+ return ret;
2316
+ };
2317
+ }
2318
+ }
2319
+ opts.hooks = hooks;
2320
+ }
2321
+ // ==-- Parse WalkTokens extensions --== //
2322
+ if (pack.walkTokens) {
2323
+ const walkTokens = this.defaults.walkTokens;
2324
+ const packWalktokens = pack.walkTokens;
2325
+ opts.walkTokens = function (token) {
2326
+ let values = [];
2327
+ values.push(packWalktokens.call(this, token));
2328
+ if (walkTokens) {
2329
+ values = values.concat(walkTokens.call(this, token));
2330
+ }
2331
+ return values;
2332
+ };
2333
+ }
2334
+ this.defaults = { ...this.defaults, ...opts };
2335
+ });
2336
+ return this;
2337
+ }
2338
+ // TODO: Remove this in next major release
2339
+ #convertRendererFunction(func, prop, renderer) {
2340
+ switch (prop) {
2341
+ case 'heading':
2342
+ return function (token) {
2343
+ if (!token.type || token.type !== prop) {
2344
+ // @ts-ignore
2345
+ // eslint-disable-next-line prefer-rest-params
2346
+ return func.apply(this, arguments);
2347
+ }
2348
+ return func.call(this, renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));
2349
+ };
2350
+ case 'code':
2351
+ return function (token) {
2352
+ if (!token.type || token.type !== prop) {
2353
+ // @ts-ignore
2354
+ // eslint-disable-next-line prefer-rest-params
2355
+ return func.apply(this, arguments);
2356
+ }
2357
+ return func.call(this, token.text, token.lang, !!token.escaped);
2358
+ };
2359
+ case 'table':
2360
+ return function (token) {
2361
+ if (!token.type || token.type !== prop) {
2362
+ // @ts-ignore
2363
+ // eslint-disable-next-line prefer-rest-params
2364
+ return func.apply(this, arguments);
2365
+ }
2366
+ let header = '';
2367
+ // header
2368
+ let cell = '';
2369
+ for (let j = 0; j < token.header.length; j++) {
2370
+ cell += this.tablecell({
2371
+ text: token.header[j].text,
2372
+ tokens: token.header[j].tokens,
2373
+ header: true,
2374
+ align: token.align[j]
2375
+ });
2376
+ }
2377
+ header += this.tablerow({ text: cell });
2378
+ let body = '';
2379
+ for (let j = 0; j < token.rows.length; j++) {
2380
+ const row = token.rows[j];
2381
+ cell = '';
2382
+ for (let k = 0; k < row.length; k++) {
2383
+ cell += this.tablecell({
2384
+ text: row[k].text,
2385
+ tokens: row[k].tokens,
2386
+ header: false,
2387
+ align: token.align[k]
2388
+ });
2389
+ }
2390
+ body += this.tablerow({ text: cell });
2391
+ }
2392
+ return func.call(this, header, body);
2393
+ };
2394
+ case 'blockquote':
2395
+ return function (token) {
2396
+ if (!token.type || token.type !== prop) {
2397
+ // @ts-ignore
2398
+ // eslint-disable-next-line prefer-rest-params
2399
+ return func.apply(this, arguments);
2400
+ }
2401
+ const body = this.parser.parse(token.tokens);
2402
+ return func.call(this, body);
2403
+ };
2404
+ case 'list':
2405
+ return function (token) {
2406
+ if (!token.type || token.type !== prop) {
2407
+ // @ts-ignore
2408
+ // eslint-disable-next-line prefer-rest-params
2409
+ return func.apply(this, arguments);
2410
+ }
2411
+ const ordered = token.ordered;
2412
+ const start = token.start;
2413
+ const loose = token.loose;
2414
+ let body = '';
2415
+ for (let j = 0; j < token.items.length; j++) {
2416
+ const item = token.items[j];
2417
+ const checked = item.checked;
2418
+ const task = item.task;
2419
+ let itemBody = '';
2420
+ if (item.task) {
2421
+ const checkbox = this.checkbox({ checked: !!checked });
2422
+ if (loose) {
2423
+ if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {
2424
+ item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;
2425
+ if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {
2426
+ item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;
2427
+ }
2428
+ }
2429
+ else {
2430
+ item.tokens.unshift({
2431
+ type: 'text',
2432
+ text: checkbox + ' '
2433
+ });
2434
+ }
2435
+ }
2436
+ else {
2437
+ itemBody += checkbox + ' ';
2438
+ }
2439
+ }
2440
+ itemBody += this.parser.parse(item.tokens, loose);
2441
+ body += this.listitem({
2442
+ type: 'list_item',
2443
+ raw: itemBody,
2444
+ text: itemBody,
2445
+ task,
2446
+ checked: !!checked,
2447
+ loose,
2448
+ tokens: item.tokens
2449
+ });
2450
+ }
2451
+ return func.call(this, body, ordered, start);
2452
+ };
2453
+ case 'html':
2454
+ return function (token) {
2455
+ if (!token.type || token.type !== prop) {
2456
+ // @ts-ignore
2457
+ // eslint-disable-next-line prefer-rest-params
2458
+ return func.apply(this, arguments);
2459
+ }
2460
+ return func.call(this, token.text, token.block);
2461
+ };
2462
+ case 'paragraph':
2463
+ return function (token) {
2464
+ if (!token.type || token.type !== prop) {
2465
+ // @ts-ignore
2466
+ // eslint-disable-next-line prefer-rest-params
2467
+ return func.apply(this, arguments);
2468
+ }
2469
+ return func.call(this, this.parser.parseInline(token.tokens));
2470
+ };
2471
+ case 'escape':
2472
+ return function (token) {
2473
+ if (!token.type || token.type !== prop) {
2474
+ // @ts-ignore
2475
+ // eslint-disable-next-line prefer-rest-params
2476
+ return func.apply(this, arguments);
2477
+ }
2478
+ return func.call(this, token.text);
2479
+ };
2480
+ case 'link':
2481
+ return function (token) {
2482
+ if (!token.type || token.type !== prop) {
2483
+ // @ts-ignore
2484
+ // eslint-disable-next-line prefer-rest-params
2485
+ return func.apply(this, arguments);
2486
+ }
2487
+ return func.call(this, token.href, token.title, this.parser.parseInline(token.tokens));
2488
+ };
2489
+ case 'image':
2490
+ return function (token) {
2491
+ if (!token.type || token.type !== prop) {
2492
+ // @ts-ignore
2493
+ // eslint-disable-next-line prefer-rest-params
2494
+ return func.apply(this, arguments);
2495
+ }
2496
+ return func.call(this, token.href, token.title, token.text);
2497
+ };
2498
+ case 'strong':
2499
+ return function (token) {
2500
+ if (!token.type || token.type !== prop) {
2501
+ // @ts-ignore
2502
+ // eslint-disable-next-line prefer-rest-params
2503
+ return func.apply(this, arguments);
2504
+ }
2505
+ return func.call(this, this.parser.parseInline(token.tokens));
2506
+ };
2507
+ case 'em':
2508
+ return function (token) {
2509
+ if (!token.type || token.type !== prop) {
2510
+ // @ts-ignore
2511
+ // eslint-disable-next-line prefer-rest-params
2512
+ return func.apply(this, arguments);
2513
+ }
2514
+ return func.call(this, this.parser.parseInline(token.tokens));
2515
+ };
2516
+ case 'codespan':
2517
+ return function (token) {
2518
+ if (!token.type || token.type !== prop) {
2519
+ // @ts-ignore
2520
+ // eslint-disable-next-line prefer-rest-params
2521
+ return func.apply(this, arguments);
2522
+ }
2523
+ return func.call(this, token.text);
2524
+ };
2525
+ case 'del':
2526
+ return function (token) {
2527
+ if (!token.type || token.type !== prop) {
2528
+ // @ts-ignore
2529
+ // eslint-disable-next-line prefer-rest-params
2530
+ return func.apply(this, arguments);
2531
+ }
2532
+ return func.call(this, this.parser.parseInline(token.tokens));
2533
+ };
2534
+ case 'text':
2535
+ return function (token) {
2536
+ if (!token.type || token.type !== prop) {
2537
+ // @ts-ignore
2538
+ // eslint-disable-next-line prefer-rest-params
2539
+ return func.apply(this, arguments);
2540
+ }
2541
+ return func.call(this, token.text);
2542
+ };
2543
+ // do nothing
2544
+ }
2545
+ return func;
2546
+ }
2547
+ setOptions(opt) {
2548
+ this.defaults = { ...this.defaults, ...opt };
2549
+ return this;
2550
+ }
2551
+ lexer(src, options) {
2552
+ return _Lexer.lex(src, options ?? this.defaults);
2553
+ }
2554
+ parser(tokens, options) {
2555
+ return _Parser.parse(tokens, options ?? this.defaults);
2556
+ }
2557
+ #parseMarkdown(lexer, parser) {
2558
+ return (src, options) => {
2559
+ const origOpt = { ...options };
2560
+ const opt = { ...this.defaults, ...origOpt };
2561
+ // Show warning if an extension set async to true but the parse was called with async: false
2562
+ if (this.defaults.async === true && origOpt.async === false) {
2563
+ if (!opt.silent) {
2564
+ console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');
2565
+ }
2566
+ opt.async = true;
2567
+ }
2568
+ const throwError = this.#onError(!!opt.silent, !!opt.async);
2569
+ // throw error in case of non string input
2570
+ if (typeof src === 'undefined' || src === null) {
2571
+ return throwError(new Error('marked(): input parameter is undefined or null'));
2572
+ }
2573
+ if (typeof src !== 'string') {
2574
+ return throwError(new Error('marked(): input parameter is of type '
2575
+ + Object.prototype.toString.call(src) + ', string expected'));
2576
+ }
2577
+ if (opt.hooks) {
2578
+ opt.hooks.options = opt;
2579
+ }
2580
+ if (opt.async) {
2581
+ return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)
2582
+ .then(src => lexer(src, opt))
2583
+ .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)
2584
+ .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)
2585
+ .then(tokens => parser(tokens, opt))
2586
+ .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)
2587
+ .catch(throwError);
2588
+ }
2589
+ try {
2590
+ if (opt.hooks) {
2591
+ src = opt.hooks.preprocess(src);
2592
+ }
2593
+ let tokens = lexer(src, opt);
2594
+ if (opt.hooks) {
2595
+ tokens = opt.hooks.processAllTokens(tokens);
2596
+ }
2597
+ if (opt.walkTokens) {
2598
+ this.walkTokens(tokens, opt.walkTokens);
2599
+ }
2600
+ let html = parser(tokens, opt);
2601
+ if (opt.hooks) {
2602
+ html = opt.hooks.postprocess(html);
2603
+ }
2604
+ return html;
2605
+ }
2606
+ catch (e) {
2607
+ return throwError(e);
2608
+ }
2609
+ };
2610
+ }
2611
+ #onError(silent, async) {
2612
+ return (e) => {
2613
+ e.message += '\nPlease report this to https://github.com/markedjs/marked.';
2614
+ if (silent) {
2615
+ const msg = '<p>An error occurred:</p><pre>'
2616
+ + escape$1(e.message + '', true)
2617
+ + '</pre>';
2618
+ if (async) {
2619
+ return Promise.resolve(msg);
2620
+ }
2621
+ return msg;
2622
+ }
2623
+ if (async) {
2624
+ return Promise.reject(e);
2625
+ }
2626
+ throw e;
2627
+ };
2628
+ }
2629
+ }
2630
+ const markedInstance = new Marked();
2631
+ function marked(src, opt) {
2632
+ return markedInstance.parse(src, opt);
2633
+ }
2634
+ /**
2635
+ * Sets the default options.
2636
+ *
2637
+ * @param options Hash of options
2638
+ */
2639
+ marked.options =
2640
+ marked.setOptions = function (options) {
2641
+ markedInstance.setOptions(options);
2642
+ marked.defaults = markedInstance.defaults;
2643
+ changeDefaults(marked.defaults);
2644
+ return marked;
2645
+ };
2646
+ /**
2647
+ * Gets the original marked default options.
2648
+ */
2649
+ marked.getDefaults = _getDefaults;
2650
+ marked.defaults = _defaults;
2651
+ /**
2652
+ * Use Extension
2653
+ */
2654
+ marked.use = function (...args) {
2655
+ markedInstance.use(...args);
2656
+ marked.defaults = markedInstance.defaults;
2657
+ changeDefaults(marked.defaults);
2658
+ return marked;
2659
+ };
2660
+ /**
2661
+ * Run callback for every token
2662
+ */
2663
+ marked.walkTokens = function (tokens, callback) {
2664
+ return markedInstance.walkTokens(tokens, callback);
2665
+ };
2666
+ /**
2667
+ * Compiles markdown to HTML without enclosing `p` tag.
2668
+ *
2669
+ * @param src String of markdown source to be compiled
2670
+ * @param options Hash of options
2671
+ * @return String of compiled HTML
2672
+ */
2673
+ marked.parseInline = markedInstance.parseInline;
2674
+ /**
2675
+ * Expose
2676
+ */
2677
+ marked.Parser = _Parser;
2678
+ marked.parser = _Parser.parse;
2679
+ marked.Renderer = _Renderer;
2680
+ marked.TextRenderer = _TextRenderer;
2681
+ marked.Lexer = _Lexer;
2682
+ marked.lexer = _Lexer.lex;
2683
+ marked.Tokenizer = _Tokenizer;
2684
+ marked.Hooks = _Hooks;
2685
+ marked.parse = marked;
2686
+ const options = marked.options;
2687
+ const setOptions = marked.setOptions;
2688
+ const use = marked.use;
2689
+ const walkTokens = marked.walkTokens;
2690
+ const parseInline = marked.parseInline;
2691
+ const parse = marked;
2692
+ const parser = _Parser.parse;
2693
+ const lexer = _Lexer.lex;
2694
+ export { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };
2695
+ //# sourceMappingURL=marked.esm.js.map