diff --git a/.changeset/bundle-rspress-plugins.md b/.changeset/bundle-rspress-plugins.md new file mode 100644 index 0000000..464bb64 --- /dev/null +++ b/.changeset/bundle-rspress-plugins.md @@ -0,0 +1,5 @@ +--- +'@zpress/ui': patch +--- + +Bundle rspress-plugin-{devkit,file-tree,katex,supersub} into UI output instead of externalizing them, fixing ERR_MODULE_NOT_FOUND on Node.js 24 caused by extensionless ESM imports in plugin dist files diff --git a/package.json b/package.json index 27d2eac..a45c73a 100644 --- a/package.json +++ b/package.json @@ -61,12 +61,6 @@ "onlyBuiltDependencies": [ "esbuild" ], - "patchedDependencies": { - "rspress-plugin-devkit@1.0.0": "patches/rspress-plugin-devkit@1.0.0.patch", - "rspress-plugin-supersub@1.0.0": "patches/rspress-plugin-supersub@1.0.0.patch", - "rspress-plugin-file-tree@1.0.4": "patches/rspress-plugin-file-tree@1.0.4.patch", - "rspress-plugin-katex@1.0.0": "patches/rspress-plugin-katex@1.0.0.patch" - }, "overrides": { "@rsbuild/core": "2.0.0-beta.9" } diff --git a/packages/ui/package.json b/packages/ui/package.json index 79d7059..621988f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -65,10 +65,6 @@ "mermaid": "^10.9.5", "openapi-sampler": "^1.7.2", "react-aria-components": "^1.16.0", - "rspress-plugin-devkit": "^1.0.0", - "rspress-plugin-file-tree": "^1.0.4", - "rspress-plugin-katex": "^1.0.0", - "rspress-plugin-supersub": "^1.0.0", "ts-pattern": "catalog:", "unist-util-visit": "^5.1.0" }, @@ -81,6 +77,10 @@ "geist": "^1.7.0", "react": "^19.2.4", "react-dom": "^19.2.4", + "rspress-plugin-devkit": "^1.0.0", + "rspress-plugin-file-tree": "^1.0.4", + "rspress-plugin-katex": "^1.0.0", + "rspress-plugin-supersub": "^1.0.0", "typescript": "catalog:", "vitest": "catalog:" }, diff --git a/packages/ui/rslib.config.ts b/packages/ui/rslib.config.ts index af8f868..56bdf7f 100644 --- a/packages/ui/rslib.config.ts +++ b/packages/ui/rslib.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ syntax: 'esnext', autoExtension: false, autoExternal: true, + shims: { esm: { __dirname: true, __filename: true, require: true } }, dts: { bundle: true }, source: { entry: { diff --git a/patches/rspress-plugin-devkit@1.0.0.patch b/patches/rspress-plugin-devkit@1.0.0.patch deleted file mode 100644 index d923254..0000000 --- a/patches/rspress-plugin-devkit@1.0.0.patch +++ /dev/null @@ -1,132 +0,0 @@ -diff --git a/dist/DirectivesTransformer/index.js b/dist/DirectivesTransformer/index.js -index da40a69af21dbbdfdb2c642eb49c52deef0e33b1..6b1a7e5f7b017ffd88149cdaf43486cc981a94cf 100644 ---- a/dist/DirectivesTransformer/index.js -+++ b/dist/DirectivesTransformer/index.js -@@ -1,9 +1,9 @@ - import _remarkParseDirective from 'remark-mdc'; - import { toString } from 'mdast-util-to-string'; --import { unistVisit } from '../Exports/Unist'; --import { createTuple } from '../Utils/createTuple'; --import { ensureArray } from '../Utils/ensureArray'; --import { MdxAttrNodeFactory } from '../NodeFactory/MdxAttrNodeFactory'; -+import { unistVisit } from '../Exports/Unist.js'; -+import { createTuple } from '../Utils/createTuple.js'; -+import { ensureArray } from '../Utils/ensureArray.js'; -+import { MdxAttrNodeFactory } from '../NodeFactory/MdxAttrNodeFactory.js'; - /** - * Directives can be transformed to: - * -diff --git a/dist/NodeFactory/ESTreeNodeFactory.js b/dist/NodeFactory/ESTreeNodeFactory.js -index 9e939d8a7478098201a6e5532b92c683bf377971..8a2aad81cf817249e20f719e9b5c2249f2ffc061 100644 ---- a/dist/NodeFactory/ESTreeNodeFactory.js -+++ b/dist/NodeFactory/ESTreeNodeFactory.js -@@ -1,4 +1,4 @@ --import { isObject } from '../Utils/is'; -+import { isObject } from '../Utils/is.js'; - export class ESTreeNodeFactory { - static createNamedImportSpecifierNode(name) { - return { -diff --git a/dist/NodeFactory/MdxAttrNodeFactory.js b/dist/NodeFactory/MdxAttrNodeFactory.js -index 10f31a4c27610a48508da7a6ca07cd6610760f3e..a3d545f224fa1adfe4a9c0ddb3bfb5e71ce8408c 100644 ---- a/dist/NodeFactory/MdxAttrNodeFactory.js -+++ b/dist/NodeFactory/MdxAttrNodeFactory.js -@@ -1,5 +1,5 @@ --import { ESTreeNodeFactory } from './ESTreeNodeFactory'; --import { isObject } from '../Utils/is'; -+import { ESTreeNodeFactory } from './ESTreeNodeFactory.js'; -+import { isObject } from '../Utils/is.js'; - export class MdxAttrNodeFactory { - static createMdxJsxAttributeNodes(attributes) { - var _a, _b; -diff --git a/dist/NodeFactory/MdxJsxElementFactory.js b/dist/NodeFactory/MdxJsxElementFactory.js -index 9ac64158bde8133a8732a9e9c9bb5c16f624f847..45339090a999042f4287830514dff96987f11d79 100644 ---- a/dist/NodeFactory/MdxJsxElementFactory.js -+++ b/dist/NodeFactory/MdxJsxElementFactory.js -@@ -1,6 +1,6 @@ --import { ensureArray } from '../Utils/ensureArray'; --import { ESTreeNodeFactory } from './ESTreeNodeFactory'; --import { MdxAttrNodeFactory } from './MdxAttrNodeFactory'; -+import { ensureArray } from '../Utils/ensureArray.js'; -+import { ESTreeNodeFactory } from './ESTreeNodeFactory.js'; -+import { MdxAttrNodeFactory } from './MdxAttrNodeFactory.js'; - export class MdxJsxElementFactory { - static createMdxJsxImportStatementNode(spcifiers, source) { - return { -diff --git a/dist/RemarkPluginFactory/CodeBlock2GlobalComponent.js b/dist/RemarkPluginFactory/CodeBlock2GlobalComponent.js -index e0b5b81d45de3f27343f0e4cb3f128c9729bc081..997360412c107970db23f3e0075ecb1c6638214f 100644 ---- a/dist/RemarkPluginFactory/CodeBlock2GlobalComponent.js -+++ b/dist/RemarkPluginFactory/CodeBlock2GlobalComponent.js -@@ -1,7 +1,7 @@ --import { RemarkPluginFactoryBase, } from './FactoryBase'; --import { unistVisit } from '../Exports/Unist'; --import { MdxJsxElementFactory } from '../NodeFactory/MdxJsxElementFactory'; --import { getComponentName } from '../Utils/registerComponent'; -+import { RemarkPluginFactoryBase, } from './FactoryBase.js'; -+import { unistVisit } from '../Exports/Unist.js'; -+import { MdxJsxElementFactory } from '../NodeFactory/MdxJsxElementFactory.js'; -+import { getComponentName } from '../Utils/registerComponent.js'; - export class RemarkCodeBlockToGlobalComponentPluginFactory extends RemarkPluginFactoryBase { - constructor(options) { - super(options); -diff --git a/dist/RemarkPluginFactory/FactoryBase.js b/dist/RemarkPluginFactory/FactoryBase.js -index 9666ab8fd15fdfd88f2d11e57a2f94e482b3abb2..4b0ce45f10cb5f2da4559b9a28da7605a8fb154b 100644 ---- a/dist/RemarkPluginFactory/FactoryBase.js -+++ b/dist/RemarkPluginFactory/FactoryBase.js -@@ -1,4 +1,4 @@ --import { uniqArray } from '../Utils/uniqArray'; -+import { uniqArray } from '../Utils/uniqArray.js'; - export class RemarkPluginFactoryBase { - constructor(baseOptions) { - this.baseOptions = baseOptions; -diff --git a/dist/RemarkPluginFactory/InsertComponent.js b/dist/RemarkPluginFactory/InsertComponent.js -index b208e82cebe1a5432bf05078b750660decdcbc98..6f702da15824ca23885cb8b00fff9e9fa699d224 100644 ---- a/dist/RemarkPluginFactory/InsertComponent.js -+++ b/dist/RemarkPluginFactory/InsertComponent.js -@@ -1,6 +1,6 @@ --import { MdxJsxElementFactory } from '../NodeFactory/MdxJsxElementFactory'; --import { RemarkPluginFactoryBase, } from './FactoryBase'; --import { getComponentName } from '../Utils/registerComponent'; -+import { MdxJsxElementFactory } from '../NodeFactory/MdxJsxElementFactory.js'; -+import { RemarkPluginFactoryBase, } from './FactoryBase.js'; -+import { getComponentName } from '../Utils/registerComponent.js'; - export class RemarkInsertComponentPluginFactory extends RemarkPluginFactoryBase { - constructor(options) { - super(options); -diff --git a/dist/index.js b/dist/index.js -index 31f38669846fa2e8ce2781039e70f9e711be3880..4060fa9be76865556f254ec7301071dbf8efdf40 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -1,17 +1,17 @@ --export { RemarkCodeBlockToGlobalComponentPluginFactory } from './RemarkPluginFactory/CodeBlock2GlobalComponent'; --export { RemarkInsertComponentPluginFactory } from './RemarkPluginFactory/InsertComponent'; --export { PresetConfigMutator } from './ConfigMutator/index'; --export * from './Exports/Unist'; --export { remarkTransformDirective, remarkParseDirective, } from './DirectivesTransformer'; --export { MDASTNodeFactory } from './NodeFactory/MdAstNodeFactory'; --export { ESTreeNodeFactory } from './NodeFactory/ESTreeNodeFactory'; --export { MdxAttrNodeFactory } from './NodeFactory/MdxAttrNodeFactory'; --export { MdxJsxElementFactory } from './NodeFactory/MdxJsxElementFactory'; -+export { RemarkCodeBlockToGlobalComponentPluginFactory } from './RemarkPluginFactory/CodeBlock2GlobalComponent.js'; -+export { RemarkInsertComponentPluginFactory } from './RemarkPluginFactory/InsertComponent.js'; -+export { PresetConfigMutator } from './ConfigMutator/index.js'; -+export * from './Exports/Unist.js'; -+export { remarkTransformDirective, remarkParseDirective, } from './DirectivesTransformer/index.js'; -+export { MDASTNodeFactory } from './NodeFactory/MdAstNodeFactory.js'; -+export { ESTreeNodeFactory } from './NodeFactory/ESTreeNodeFactory.js'; -+export { MdxAttrNodeFactory } from './NodeFactory/MdxAttrNodeFactory.js'; -+export { MdxJsxElementFactory } from './NodeFactory/MdxJsxElementFactory.js'; - export { TSSourceParser } from './SourceParser/TS.mjs'; --export { createTuple } from './Utils/createTuple'; --export { ensureArray } from './Utils/ensureArray'; --export { uniqArray } from './Utils/uniqArray'; --export { resolveSourcePath } from './Utils//resolveSourcePath'; --export * from './Utils/registerComponent'; --export * from './Utils/is'; --export * from './Shared/SharedPluginOptions'; -+export { createTuple } from './Utils/createTuple.js'; -+export { ensureArray } from './Utils/ensureArray.js'; -+export { uniqArray } from './Utils/uniqArray.js'; -+export { resolveSourcePath } from './Utils//resolveSourcePath.js'; -+export * from './Utils/registerComponent.js'; -+export * from './Utils/is.js'; -+export * from './Shared/SharedPluginOptions.js'; diff --git a/patches/rspress-plugin-file-tree@1.0.4.patch b/patches/rspress-plugin-file-tree@1.0.4.patch deleted file mode 100644 index 756c9d0..0000000 --- a/patches/rspress-plugin-file-tree@1.0.4.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/dist/index.js b/dist/index.js -index 5d1cfc5b8e35fa0aadf68db8c554e1cde956b7ce..a9f72b56c5c5d8c6e9a4c3a6f0d1e2b3c4d5e6f7 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -1,4 +1,6 @@ - import node_path from "node:path"; -+import { fileURLToPath } from "node:url"; - import { RemarkCodeBlockToGlobalComponentPluginFactory } from "rspress-plugin-devkit"; -+const __dirname = node_path.dirname(fileURLToPath(import.meta.url)); - function parseTreeContent(content) { - let lines = content.split('\n').filter((line)=>line.trim()); diff --git a/patches/rspress-plugin-katex@1.0.0.patch b/patches/rspress-plugin-katex@1.0.0.patch deleted file mode 100644 index 60a1876..0000000 --- a/patches/rspress-plugin-katex@1.0.0.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/dist/index.js b/dist/index.js -index 4c8b235b6a7429c552ec41755da7a7270949f780..c8f7ec148291a38c9501e1772b73bd1b09ab62eb 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -1,3 +1,4 @@ -+import { createRequire } from 'node:module'; - import remarkMath from 'remark-math'; - import rehypeKatex from 'rehype-katex'; - import { visit } from 'unist-util-visit'; -@@ -16,7 +17,8 @@ const remarkCodeBlockToMath = () => { - }; - }; - export default function rspressPluginKatex(options = {}) { -- const katexCss = require.resolve('katex/dist/katex.min.css'); -+ const _require = createRequire(import.meta.url); -+ const katexCss = _require.resolve('katex/dist/katex.min.css'); - return { - name: 'rspress-plugin-katex', - // config not needed for Rspress V2 diff --git a/patches/rspress-plugin-supersub@1.0.0.patch b/patches/rspress-plugin-supersub@1.0.0.patch deleted file mode 100644 index e271664..0000000 --- a/patches/rspress-plugin-supersub@1.0.0.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff --git a/dist/index.js b/dist/index.js -index 024fbe26f4b46af7c1a9d88022127086c43abec3..3d90ef5a3c091c214647077f1949fa9c1246bedc 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -1,4 +1,4 @@ --import { remarkParseSuperSubScript, } from './remark-plugins/parse-super-sub-script'; -+import { remarkParseSuperSubScript, } from './remark-plugins/parse-super-sub-script.js'; - export default function rspressPluginSupersub(options = {}) { - return { - name: 'rspress-plugin-supersub', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c5bd8ce..c1bf2d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,20 +37,6 @@ catalogs: overrides: '@rsbuild/core': 2.0.0-beta.9 -patchedDependencies: - rspress-plugin-devkit@1.0.0: - hash: 595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032 - path: patches/rspress-plugin-devkit@1.0.0.patch - rspress-plugin-file-tree@1.0.4: - hash: 69db8f95da53ec548ff7acc8e86c5aff49a8f436439d1b4febce1a023d9aa7a3 - path: patches/rspress-plugin-file-tree@1.0.4.patch - rspress-plugin-katex@1.0.0: - hash: 8c9dcd8aca1bbab93f2a13bb06f509e487f592ee764d14f025ecdbb226a0de67 - path: patches/rspress-plugin-katex@1.0.0.patch - rspress-plugin-supersub@1.0.0: - hash: 74c7104bb4976968c6fb2f4355788b6b4384427476f7b802f8d99b86c59ed787 - path: patches/rspress-plugin-supersub@1.0.0.patch - importers: .: @@ -376,18 +362,6 @@ importers: react-aria-components: specifier: ^1.16.0 version: 1.16.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - rspress-plugin-devkit: - specifier: ^1.0.0 - version: 1.0.0(patch_hash=595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) - rspress-plugin-file-tree: - specifier: ^1.0.4 - version: 1.0.4(patch_hash=69db8f95da53ec548ff7acc8e86c5aff49a8f436439d1b4febce1a023d9aa7a3)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) - rspress-plugin-katex: - specifier: ^1.0.0 - version: 1.0.0(patch_hash=8c9dcd8aca1bbab93f2a13bb06f509e487f592ee764d14f025ecdbb226a0de67)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) - rspress-plugin-supersub: - specifier: ^1.0.0 - version: 1.0.0(patch_hash=74c7104bb4976968c6fb2f4355788b6b4384427476f7b802f8d99b86c59ed787)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) ts-pattern: specifier: 'catalog:' version: 5.9.0 @@ -419,6 +393,18 @@ importers: react-dom: specifier: ^19.2.4 version: 19.2.4(react@19.2.4) + rspress-plugin-devkit: + specifier: ^1.0.0 + version: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-file-tree: + specifier: ^1.0.4 + version: 1.0.4(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-katex: + specifier: ^1.0.0 + version: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-supersub: + specifier: ^1.0.0 + version: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) typescript: specifier: 'catalog:' version: 5.9.3 @@ -11652,7 +11638,7 @@ snapshots: '@typescript/native-preview': 7.0.0-dev.20260320.1 typescript: 5.9.3 - rspress-plugin-devkit@1.0.0(patch_hash=595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): + rspress-plugin-devkit@1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): dependencies: '@rspress/core': 2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2) '@types/estree-jsx': 1.0.5 @@ -11677,28 +11663,28 @@ snapshots: transitivePeerDependencies: - supports-color - rspress-plugin-file-tree@1.0.4(patch_hash=69db8f95da53ec548ff7acc8e86c5aff49a8f436439d1b4febce1a023d9aa7a3)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): + rspress-plugin-file-tree@1.0.4(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): dependencies: '@rspress/core': 2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2) - rspress-plugin-devkit: 1.0.0(patch_hash=595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-devkit: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) transitivePeerDependencies: - supports-color - rspress-plugin-katex@1.0.0(patch_hash=8c9dcd8aca1bbab93f2a13bb06f509e487f592ee764d14f025ecdbb226a0de67)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): + rspress-plugin-katex@1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): dependencies: '@rspress/core': 2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2) katex: 0.16.40 rehype-katex: 7.0.1 remark-math: 6.0.0 - rspress-plugin-devkit: 1.0.0(patch_hash=595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-devkit: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) unist-util-visit: 5.1.0 transitivePeerDependencies: - supports-color - rspress-plugin-supersub@1.0.0(patch_hash=74c7104bb4976968c6fb2f4355788b6b4384427476f7b802f8d99b86c59ed787)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): + rspress-plugin-supersub@1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)): dependencies: '@rspress/core': 2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2) - rspress-plugin-devkit: 1.0.0(patch_hash=595a3e93835470899033307b339bc02b6888572da448053f2d6d898ce5bb7032)(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) + rspress-plugin-devkit: 1.0.0(@rspress/core@2.0.6(@types/mdast@4.0.4)(@types/react@19.2.14)(core-js@3.47.0)(micromark-util-types@2.0.2)(micromark@4.0.2)) throttle-debounce: 5.0.2 transitivePeerDependencies: - supports-color