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